伺服器被DDOS攻擊防禦的SHELL指令碼

weixin_34162695發表於2016-04-12

1.編寫指令碼

mkdir /root/bin

vi /root/bin/dropip.sh

#!/bin/bash

/bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if ($2!=null && $1>4) {print $2}}’>/tmp/dropip

for i in $(cat /tmp/dropip)

do

/sbin/iptables -A INPUT -s $i -j DROP

echo “$i kill at `date`”>>/var/log/ddos

done

2.增加執行許可權

chmod +x /root/bin/dropip.sh

3.新增到計劃任務,每分鐘執行一次

crontab -e

*/1 * * * * /root/bin/dropip.sh

說明:

最重要的是第二行,獲取ESTABLISHED連線數最多的前10個ip並寫入臨時檔案/tmp/dropip,排除了內部ip段192.168|127.0開頭的.通過for迴圈將dropip裡面的ip通過iptables全部drop掉,然後寫到日誌檔案/var/log/ddos

相關文章