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

原创
安全 网站安全
本文介绍的是一个自动分析黑名单和白名单的iptables脚本,后面有作者工作中的Linux防火墙经验心得。

本文介绍的是一个自动分析黑名单和白名单的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。
 

责任编辑:王文文 来源: 51CTO.com
相关推荐

2011-01-21 17:53:44

Zimbra

2011-06-02 10:52:11

Android BroadCast 黑名单

2012-02-09 09:40:37

虚拟化虚拟桌面VDI

2013-08-27 10:56:24

2015-06-04 11:11:15

2013-09-16 09:57:52

2010-11-11 13:20:41

2014-05-12 09:08:19

2016-12-01 15:43:45

2010-10-14 12:09:28

2009-10-29 08:39:14

Windows 7系统激活

2018-06-10 09:04:28

2019-07-29 08:41:33

算法黑名单ip

2011-03-18 13:14:01

2011-07-28 11:10:58

2011-01-19 13:11:25

Zimbra白名单证书

2012-11-23 17:13:59

2010-11-01 09:17:21

超级黑名单腾讯QQ360安全中心

2014-06-06 09:38:22

工信部应用软件黑名单

2017-07-18 09:15:23

Python Craw数据爬取
点赞
收藏

51CTO技术栈公众号