我正在考虑将以下规则添加到我的 IP 表中:
-A INPUT -p tcp -m state --state NEW -m recent --update --dport 80 --seconds 5 --hitcount 10 -j DROP
-A INPUT -p tcp -m state --state NEW -m recent --set --dport 80 -j ACCEPT
以避免基于 Ajax 的意外滥用(太多请求)我的 Web API。
由于端口 80 请求的普遍性(与限制端口 22 之类的东西相比,它会导致更少的状态),这种状态过滤是否被认为是资源密集型或其他浪费?我意识到在专用防火墙中执行此操作是理想的,但我正在尝试查看我可以在我的服务器中完成什么。
我不知道使用状态模块与过滤 SYN 数据包的性能(这会有效地做同样的事情)。
也许您可以测试一下...尝试添加您的规则 - 然后使用 Apache Bench 或类似工具生成尽可能多的请求,同时监控服务器的 CPU 和内存使用情况。然后尝试添加以下规则:
...并对其进行基准测试。