我在运行 Apache2 的 Ubuntu 服务器上。我想保护自己免受 (d)dos 和 syn 洪水攻击,因此尝试限制每个客户端 IP 的并行连接数。
我听说 iptables 可以完成这项工作,并且我查看了不同的命令。我想听听您的意见。据我所知,如果客户端与端口 80 建立超过 100 个并发/并行连接,以下命令都会阻止客户端 60 秒。这是正确的吗?两者之间有什么区别吗?
命令 1
iptables -A INPUT -p tcp -m recent --rcheck --seconds 60 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -m recent --set -j REJECT
命令 2
iptables -A 输入 -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 100 -j REJECT
我的设置
我的服务器上运行着多个 Wordpress 网站。我认为每个客户端 100 个并发连接应该足够了 - 任何超过此数量的连接都将被阻止。这是一个合理的限制吗?
答案1
您可能需要重新考虑在 Apache 前面放置一个反向代理(Lighttpd、Nginx、Varnish 等),以便在发生攻击时减轻它的负载。