我几天前检测到我的服务器正在slowloris攻击下(我在access.log中发现了很多“ – ”408 0“ – ”“ – ”“值)。
我改变了我的configuration,如下所示:
在mod_reqtimeout中:
RequestReadTimeout header=5-20,minrate=20
我安装了mod_qos并像这样configuration它:
QS_SrvMaxConnPerIP 50 QS_SrvMinDataRate 120 1500
够了吗? 大多数可用的教程只是在configuration文件中保留默认值。
我注意到现在“ – ”408 0“ – ”的值增加了很多。 我认为这很好,因为这意味着更多的连接被检测为恶意的,这意味着它们被closures,会损害服务器。 对?
我能再做点什么吗? 阻止ips?
提前感谢任何反馈!
阅读这个错误报告 ,我发现它不应该使用QS_SrvMinDataRate
选项,因为:
连接清理需要很长时间。
他们build议您只使用RequestReadTimeout
选项(至less在Apache 2.4以上版本,但由于之前提供了RequestReadTimeout
选项,因此可能不需要该选项)。
清理花费太长时间不会导致这些错误。 但这只是我的猜测。
请注意,Slowloris很难清除,除非您可以阻止防火墙中的IP地址。 不幸的是Apache2 / QoS不提供。 攻击者在接收到408时创build一个新的连接非常容易,因此会吃掉另一个打开的Apache2插槽。