iptables限制单个IP连接数

11 年 ago jony iptables限制单个IP连接数已关闭评论

限制与80端口连接的IP最大连接数为20,可自定义修改。

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP

或者在/etc/syscnfig/iptables加入:

-A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j DROP
-A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j REJECT --reject-with icmp-port-unreachable

使用recent模块限制同IP时间内新请求连接数,recent更多功能请参考:Iptables模块recent应用。

 代码如下 复制代码
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j LOG --log-prefix 'DDOS:' --log-ip-options
#60秒10个新连接,超过记录日志。
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP
#60秒10个新连接,超过丢弃数据包。
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --set -j ACCEPT
#范围内允许通过。

 

iptables-save >/etc/sysconfig/iptables

 

其它:

#每秒钟最多允许100个新连接
/sbin/iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
#防止ping洪水攻击,限制每秒的ping包不超过10个
/sbin/iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 10 -j ACCEPT
#防止各种端口扫描,将SYN及ACK SYN限制为每秒钟不超过200个,免得把数务器带宽耗尽了
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT
#放开指定主机的访问,比如是入侵检测的主机IP
#/sbin/iptables -A INPUT -s 122.70.x.x -j ACCEPT

 

https://www.cnblogs.com/cheyunhua/p/8151115.html