我试图build立一个防火墙,限制每个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本身非常适合pipe理INPUT,OUTPUT,MASQ等,但是它仅限于pipe理器服务,协议和超时源。
您必须安装Fail2ban并为您要pipe理的各种服务创build链。
检查这个链接,并完成它。
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/