IP 表,是否可以限制每分钟的请求数和超时 IP?

IP 表,是否可以限制每分钟的请求数和超时 IP?

我正在尝试设置一个防火墙,限制每个 IP 最多 3 个连接,并且如果一分钟内连接尝试次数超过 30 次,则禁止该 IP 一小时。这仅适用于端口 80。使用 iptables 可以实现这一切吗?我也使用 fail2ban。

到目前为止,我仅使用以下命令限制每个 IP 的连接数

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 --connlimit-mask 32 -j REJECT --reject-with tcp-reset 

有什么想法我需要什么模块来做到这一点?

这是我当前的规则

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 3 --connlimit-mask 32 --connlimit-saddr -j REJECT --reject-with tcp-reset
-A fail2ban-ssh -j RETURN
-A fail2ban-ssh -j RETURN

答案1

IPtables 本身可以很好地管理 INPUT、OUTPUT、MASQ 等,但它仅限于管理服务、协议和超时源。

您必须安装 Fail2ban 并为您想要管理的不同类型的服务创建链。

检查此链接并完成。

https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-ubuntu-14-04

答案2

检查 iptables最近的模块,

以下是一些很好的例子 -http://thiemonagel.de/2006/02/preventing-brute-force-attacks-using-iptables-recent-matching/

相关内容