Linux iptables简单防攻击脚本(自动过滤白名单)

这里自动分析黑名单及白名单的iptables 脚本(此脚本直接从生产服务器上下载)即/root/deny_100.sh,脚本内容如下(white.txt为企业外 网合法IP)

[root@mail ~]# cat /root/deny_100.sh 
#/bin/bash
netstat -an| grep :80 | grep -v 127.0.0.1 |awk '{ print $5 }' | sort|awk -F: '{print $1}' | uniq -c | awk '$1 >100' > /root/black.txt
for i in `awk '{print $2}' /root/black.txt`
do
        COUNT=`grep $i /root/black.txt | awk '{print \$1}'`
        DEFINE="100"
        ZERO="0"
        if [ $COUNT -gt $DEFINE ];
        then
                grep $i /root/white.txt > /dev/null
                if [ $? -gt $ZERO ];
                then
                echo "$COUNT $i"
                iptables -I INPUT -p tcp -s $i -j DROP 
                fi
        fi
done

2009年3月30日下午14:25分,用下列命令监控时:
netstat -an| grep :25 | grep -v 127.0.0.1 |awk '{ print $5 }' | sort|awk -F: '{print $1}' | uniq -c | awk '$1 >100'
1122 219.136.163.207
17 61.144.157.236

http://www.ip138.com一查,发现
ip138.com IP查询(搜索IP地址的地理位置)
您查询的IP:219.136.163.207
本站主数据:广东省广州市 电信(荔湾区) 
参考数据一:广东省广州市 电信(荔湾区) 
参考数据二:广东省广州市荔湾区 电信ADSL

调用deny_100.sh后将此IP Drop掉,再运行./root/count.sh后无显示,显示成功,可用iptables –nL验证,所以将此安全脚本写进crontab里
*/1 * * * * root /bin/sh /root/deny_100.sh

※在这里衷心感谢3158的技术总监,谢谢您的帮助;监视端口视服务器性质而 定,web是80,mail25,其它以此类推;局域网下要测试此iptables的脚本的同志可用webbench模拟并发环境,然后启动此脚本检测其 有效性。好了,关于iptables的技巧及其它使用问题,欢迎来信交流