在日常的工作中,总会碰到异常IP创建大量的TCP连接,导致服务器响应速度慢或者无法访问;

此时可以利用脚本将这些异常的IP加入iptables黑名单;

统计异常IP并加入黑名单脚本:

#!/bin/bash
netstat -na | grep ESTAB | awk '{print $5}' | awk -F: '{print $1}' | egrep -v '192.168|127.0' | uniq -c | awk '{if($2!=null && $1>1){print $2}}' > /root/dropip.txt
for i in $(cat /root/dropip.txt)
do
/sbin/iptables -A INPUT -s $i -j DROP
echo "$i" >> /root/dropip.log
done

结合任务计划每隔3分钟自动执行:

[root@lvs02 account_tcp]# crontab -l
#tcp connection is limit
*/3 * * * * /root/account_tcp/drop_ip.sh &> /dev/null