使用 iptables 防范 DOS

使用 iptables 防范 DOS

有没有办法通过分析某个 IP 在某个端口上建立了多少连接而不限制整体流量来防范 DoS?

例如,假设我不希望某个 IP 每 10 秒发出超过 10 个 http 请求,我该怎么做?如果 10 秒内有 100 个请求,并且每个请求都有不同的 IP,则不会被禁止(仅针对 DOS 而不是 DDOS 进行保护)。

答案1

查看https://www.fail2ban.org/wiki/index.php/Main_Page. 这是一个使用 IP 表的软件速率限制器

答案2

您可以使用它来做到这一点。

iptables -A INPUT -p tcp -m state --state NEW --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 10/second --limit-burst 12 -j ACCEPT 

无论如何也要启用 syncookies。将此行添加到 /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1 

然后运行 ​​sysctl -p 或重新启动以应用。

相关内容