Apache上的Slowloris:mod_reqtimeout + mod_qos是否够用?

我几天前检测到我的服务器正在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插槽。