天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧安全 >> 正文

自动分析黑名单及白名单的iptables脚本

2010-5-31不详佚名
62563">

本文介绍的是一个自动分析黑名单和白名单的iptables 脚本,即/root/deny_100.sh,脚本实现功能如下:

①此脚本能自动过滤掉企业中通过NAT出去的白名单IP,很多企业都是通过NAT软路由上网,我们可以将一些与我们有往来的公司及本公司的安全IP添加进白名单,以防误剔;

②阀值DEFIIN这里定义的是100,其实这个值应该根据具体生产环境而定,50-100之间较好;

③此脚本原理其实很简单,判断瞬间连接数是否大于100,如果是白名单里的IP则跳过;如果不是,则用iptables -I来自动剔除,这里不能用-A,A是在iptables的规则的最后添加,往往达不到即时剔除的效果;

④此脚本最后更新时间为2010年5月24日,这里衷心感谢3158.com的技术总监唐老师,谢谢您在安全相关的指导;

⑤25是mail端口的,其它可依次类推,比如22,再比如80等,具体看你的服务器的应用;

⑥如有疑问,请联系抚琴煮酒yuhongchun027@163.com。

[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,$4}' | uniq -c | awk '$1 >50 {print $1,$2}' > /root/black.txt

for i in `awk '{print $2}' /root/black.txt`

do

COUNT=`grep $i /root/black.txt | awk '{print \$1}'`

DEFINE="50"

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

效果如下:

工作中的Linux防火墙经验心得

一、iptables防火墙并不能阻止DDOS攻击,建议在项目实施中采购硬件防火墙,置于整个系统之前,用于防DDOS攻击和端口映射;如果对安全有特殊要求,可再加上应用层级的防火墙,比如天泰防火墙,其功能强大如此:①天泰WEB应用防火墙基于对数据报文头部和载荷完整的检测,对WEB应用客户端输入进行验证,从而对各类已知的及新兴的WEB应用威胁提供全方位的防护,如SQL注入、跨站脚本、蠕虫、黑客扫描和攻击等;②天泰WEB应用防火墙提供对目前国内比较泛滥的DDOS攻击的防护。针对WEB应用进行的带宽和资源耗尽型DDOS攻击,都可轻松应对。尤其针对应用层的DDOS攻击,提供细粒度的防护,其它优点这里不一一介绍了。

二、在项目实施中建议关闭服务器的iptables防火墙,目的为:①更好的提高后端服务器网络性能;②方便数据流在整个业务系统内部流通,安全方面工作由硬件防火墙来承担。

三、我目前主要将iptables用于内部作NAT防火墙,它的性能和方便管理性确实强悍,经迅雷测试可发现,公司内部的10M带宽能被利用得一丝无余;武汉地区比较常用的软件路由器是海蜘蛛,这个其实也是iptables的二次开发;前二年替朋友网吧布署网吧的路由器,我强烈推荐的是让iptables作NAT路由转发,事实证明效果很好。

四、iptables的L是命令,而-v和-n只是作为选项,它们不能进行组合,如-Lvn;如果要列出防火墙详细规则,可采用iptables -nv -L;

五、如果是使用远程来调试iptables防火墙,最好是设置crontab作业是定时停止防火墙,以防自己被锁定,5分钟停止一次iptables即可,等整个脚本完全稳定后再关闭此crontab作业。

六、如果使用默认禁止一切策略,即应立即使用回环接口lo(因为禁止一切包括了lo);附注:回环接口lo在Linux系统中被用来提供本地、基于网络的服务的专用网络接口,不用把本地数据流通过网络接口驱动器发送,而是采用操作系统通过回环接口发送,采取的捷径,大大提高了性能。

七、如果是电信或双线机房托管的服务器,在没有配置前端硬件防火墙的情况下,Linux主机一定要开启iptables防火墙,windows2003主机开启它自带的系统防火墙,并禁ping。

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行