在 Linux 用一行指令自動封鎖惡意攻擊的 IP

今天下午一點半時,主機不知道什麼原因竟然自己關機
還好兩點半的時候就發現了
查了一下 log 看不出個所以然
倒是在 secure.log 發現有一個 IP 不停的在 try ssh login
Mowd 用了以下方法來解決:
1. 換 ssh port
2. 上網找了一個 shell script 來自動 ban 惡意 IP
這個 script 只有一行,放在 crontab 裡面每分鐘排程執行非常方便


指令如下
其中的「:22 」指的是檢查是否被攻擊的 port
40 指的是同時連線的數量
可以根據自己的需求來修改

netstat -npa –inet | grep :22 | sed ‘s/:/ /g’ | awk ‘{print $6}’ | sort | uniq -c | sort -n | while read line; do one=`echo $line | awk ‘{print $1}’`; two=`echo $line | awk ‘{print $2}’`; if [ $one -gt 40 ]; then iptables -I INPUT -s $two -j DROP; fi; done; iptables-save | grep -P ‘^-A INPUT’ | sort | uniq -c | sort -n | while read line; do oneIp=`echo $line | awk ‘{print $1}’`; twoIp=`echo $line | awk ‘{print $5}’`; if [ $oneIp -gt 1 ]; then iptables -D INPUT -s $twoIp -j DROP; fi; done

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *