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的技巧及其它使用问题,欢迎来信交流