服务器被DDOS攻击防御的SHELL脚本

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

你可能感兴趣的:(服务器被DDOS攻击防御的SHELL脚本)