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