Chinaunix首页 | 论坛 | 博客
  • 博客访问: 550818
  • 博文数量: 48
  • 博客积分: 1249
  • 博客等级: 中尉
  • 技术积分: 1926
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-04 10:22
文章存档

2012年(3)

2011年(45)

分类: 网络与安全

2011-12-15 11:44:24

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

①此脚本能自动过滤掉企业中通过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@gmail.com。

脚本内容如下所示:

  1. #/bin/bash 
  2. 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  
  3. $1,$2}' > /root/black.txt 
  4. #!/bin/bash 
  5. for i in `awk '{print $2}' /root/black.txt` 
  6. do 
  7. COUNT=`grep $i /root/black.txt | awk '{print \$1}'` 
  8. DEFINE="100" 
  9. ZERO="0" 
  10. if [ $COUNT -gt $DEFINE ]; 
  11. then 
  12. grep $i /root/white.txt > /dev/null 
  13. if [ $? -gt $ZERO ]; 
  14. then 
  15. echo "$COUNT $i" 
  16. iptables -I INPUT -p tcp -s $i -j DROP  
  17. fi 
  18. fi 
  19. 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

一查,发现

ip138.com IP查询(搜索IP地址的地理位置)

您查询的IP:219.136.163.207

本站主数据:广东省广州市 电信(荔湾区)

参考数据一:广东省广州市 电信(荔湾区)

参考数据二:广东省广州市荔湾区 电信ADSL

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

阅读(3583) | 评论(1) | 转发(4) |
给主人留下些什么吧!~~

哇哦哇2011-12-15 23:51:39

挺不错的脚本\(^o^)/~