几天前我发现我的服务器受到了 slowloris 攻击(我在我的 access.log 中发现了很多“-” 408 0“-” “-” 值)。
我像这样更改了配置:
在 mod_reqtimeout 中:
RequestReadTimeout header=5-20,minrate=20
我安装了 mod_qos 并对其进行了如下配置:
QS_SrvMaxConnPerIP 50
QS_SrvMinDataRate 120 1500
这够了吗?大多数可用的教程只是保留配置文件中的默认值。
我注意到现在“-”408 0“-”值增加了很多。我想这很好,因为这意味着更多的连接被检测为恶意的,这意味着它们被关闭,因为它们可以“损坏”服务器。对吗?
我还能做点什么吗?阻止 IP?...
提前感谢任何反馈!
答案1
阅读此错误报告,我发现它说你不应该使用该QS_SrvMinDataRate
选项,因为:
连接清理花费的时间太长。
他们建议您只使用该RequestReadTimeout
选项(至少在 Apache 2.4+ 上,但由于该RequestReadTimeout
选项之前可用,因此可能不需要该选项的 QoS 选项)。
清理时间过长很可能是导致这些 408 错误的原因。但这只是我的猜测。
请注意,除非您能在防火墙中阻止 IP 地址,否则 Slowloris 很难消除。遗憾的是,Apache2/QoS 无法提供此功能。当攻击者收到 408 时,它很容易创建新连接,从而占用您另一个开放的 Apache2 插槽。