Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176161
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-26 14:22
个人简介

做最Low逼的DBA

文章分类

全部博文(46)

文章存档

2017年(46)

我的朋友

分类: LINUX

2017-04-26 23:07:39


--转载于其他大神博客,如有侵权,请联系我删除
利用iptables的recent模块来抵御DOS攻击



ssh: 远程连接,


iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP

iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

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个新连接。被限制五分钟后即可恢复访问。


下面对最后两句做一个说明:


1.第二句是记录访问tcp 22端口的新连接,记录名称为SSH

--set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目


2.第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接。

--update 是指每次建立连接都更新列表;

--seconds必须与--rcheck或者--update同时使用

--hitcount必须与--rcheck或者--update同时使用


3.iptables的记录:/proc/net/ipt_recent/SSH



也可以使用下面的这句记录日志:

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"

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