自动甄别黑白名单的iptables安全脚本-阿里云开发者社区

开发者社区> 余二五> 正文

自动甄别黑白名单的iptables安全脚本

简介:
+关注继续查看

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

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

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

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

⑤25是mail端口的,其它可依次类推,比如22,再比如80等,具体看你的服务器的应用;目前发现子链接过多的Web站点效果不好,我们这个时候可以用iptables的recent模块来解决,其它非Web应用效果还是不错的;

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

脚本内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#/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 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分,用下列命令监控时:

1
2
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 -nv -L验证,所以将此安全脚本写进crontab里,每10分钟运行一次,结果如下所示:

1
*/10 * * * * root /bin/sh /root/deny_100.sh









本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/622704,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
性能测试脚本的编写和调试
性能测试是一个入门简单,但是精通难,很依赖实践经验的技术活。如何编写压测脚本只是小术,而如何快速找到问题的原因,压出瓶颈却是大有学问。这次,云享团的专家从“术”入手,对一个自己临时写的的一个网站进行压测,希望能帮大家更好理解性能测试产品,特别是脚本编写的部分。
7432 0
阿里安全猎户座实验室首创的“自动逆向机器人”,了解一下?
阿里安全猎户座实验室首度向外界展示了最新的研究成果——“自动逆向机器人”。该机器人可以像医生一样“望闻问切”,对程序进行显微镜级别的勘察,并完整“回放”其运作过程,因此,可以侦测出程序中的漏洞或隐蔽行为。
3032 0
linux crontab执行脚本中文乱码问题
在linux中写了个定时脚本,其中包含中文字符。脚本手动运行一切正常,但是使用crontab运行后发现日志中应该出现中文的地方全是???等乱码。 分析出原因肯定是环境变量的问题。
915 0
+关注
20382
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载