Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4826379
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类:

2009-05-04 11:04:07

来源于cu上的一个问题:

dmesg | grep "bad"
UDP: bad checksum. From 60.11.207.170:13329 to 222.134.54.142:13217 ulen 1056
UDP: bad checksum. From 60.11.207.150:13329 to 222.134.54.142:13217 ulen 1056
UDP: bad checksum. From 220.11.207.171:13329 to 222.134.54.142:13217 ulen 1056
UDP: bad checksum. From 213.121.7.152:13329 to 222.134.54.142:13217 ulen 1056

如何取出其中的ip地址?(这是路由器日志里的,我想做个动态屏蔽问题ip)


[1-255].[0-255].[0-255].[0-255] 不要冒号和以后的东西,也不要数字前的内容


然后将取出的数值  生成以下格式文件
iptables -A INPUT -s 124.64.142.69/32 -j DROP
iptables -A INPUT -s 117.57.192.115/32 -j DROP


一.
   awk的FS可以或者正则表达式(以前只用过[xx ]+):
 awk -F 'From|:' '/bad checksum/&&!a[$3]++{print "iptables -A INPUT -s"$3"/32 -j DROP"}' file

二.
  iptables添加rule,这种东东应该是定时的吧ok,放如crontab可是问题出现了,每次都crontab那肯定要重复拉...
 
  iptables -L | awk '/DROP/{print $4}' >/tmp/droped.list
dmesg |awk -F 'From|:' '/bad checksum/&&!a[$3]++{print $3}' >/tmp/needdrop.list
awk 'NR==FNR{a[$1]=1}NR>FNR&&!($1 in a){print "iptables -A INPUT -s "$1"/32 -j DROP"}' /tmp/droped.list /tmp/needdrop.list |sh
rm -rf /tmp/droped.list /tmp/needdrop.list
  
三.
  不过用route防止DDOS居然听说也不错
  route del -host bbs.chinaunix.net reject

呵呵  当然这些都是上层的,效果效率不谈...DDOS还是c kernel module强大.俺的本行 
 
阅读(2280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~