Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172064
  • 博文数量: 12
  • 博客积分: 333
  • 博客等级: 二等列兵
  • 技术积分: 208
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-11 10:41
文章分类
文章存档

2012年(12)

分类: LINUX

2012-07-08 12:54:02

  本文只是利用iptables的recent模块来抵御简单的DOS攻击。下面以限制ssh远程连接为例,具体步骤如下:
  (1)#iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
  (2)#iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
  (3)#iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds  300 --hitcount 3 --name SSH -j DROP
  以上三条规则的解释如下:
  1.利用connlimit模块将单IP的并发设置为3;会误杀使用NAT上网的用户,可以根据实际情况增大该值;
  2.利用recent和state模块限制单IP在300s内只能与本机建立3个新连接。被限制一分钟后即可恢复访问。 
  3.第一句是记录访问tcp 22端口的新连接,记录名称为SSH
   --set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目
  4.第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接。
   --update 是指每次建立连接都更新列表;
   --seconds必须与--update同时使用
   --hitcount必须与--update同时使用
  5.可以使用下面的这句记录日志:
   iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --name SSH --second 300 --hitcount 3 -j LOG --log-prefix "SSH Attack"
阅读(8131) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

higkoo2013-07-22 10:40:53

只要第1句就可以了呀,后面2句相对第1句有什么优点或特别作用?