我正在尝试设置一个防火墙,限制每个 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
IPtables 本身可以很好地管理 INPUT、OUTPUT、MASQ 等,但它仅限于管理器服务、协议和超时源。
您必须安装 Fail2ban 并为要管理的不同类型的服务创建链。
检查此链接并完成它。
https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-ubuntu-14-04
检查 iptables最近的模块,
这是一些很好的例子-http: //thiemonagel.de/2006/02/preventing-brute-force-attacks-using-iptables-recent-matching/