CentOS7 下一個利用安全日誌和防火牆防止暴力破解的SHELL腳本

#!/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
相關文章
相關標籤/搜索