#!/bin/bash #第一次運行建立記錄文件 -f 1.txt || touch 1.txt while : do #查看日誌中登錄失敗的ip次數超過10次的用戶ip fip=`awk '/Failed/{ip[$11]++;}END{for (i in ip){if (ip[i]>10){print i}}}' /var/log/secure` #循環取出登錄失敗超過十次的ip進行處理 for i in $fip do #查看處理記錄文件若是該ip沒有存在處理記錄中說明是沒有處理過該ip a=`awk -F: -v i=$i '$2==i{print}' 1.txt | wc -l` #若是有查到結果則說明已經處理過該ip if [ "$a" -ne 0 ] then echo "服務器安全" else #將新的***ip加入防火牆阻止(方入drop的區域則該ip發送的數據包會馬上丟棄不作迴應)區域 firewall-cmd --zone=drop --add-source=$i && echo "成功將:$i:加入防火牆block區域" >> 1.txt fi done #120s執行一次 sleep 120 done