Answers:
Slowloris攻击通过尽可能慢地发送请求数据来起作用。因此,如果您可以测量每个ip地址的带宽使用量,那么如果它低于某个阈值(通过测量已知的Lowloris攻击中的带宽即可找到),那么您就知道自己正在受到攻击。
为防止受到攻击,建议您切换网络服务器软件。我使用切诺基,它的默认配置具有抵抗力。我无法确定nginx是否容易受到攻击,但是lighttpd是易受攻击的。我也不确定使用抗性的Web服务器作为代理是否会有所作为。
这是更多信息:http : //ha.ckers.org/blog/20090617/slowloris-http-dos/
1级:简单的lowloloris DOS
要查找slowloris攻击者的IP地址,我使用以下命令行:
netstat -ntu -4 -6 | awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' | sort | uniq -c | sort -n
这将为您提供每个已连接IP的活动连接数
如果您遭受的是简单的DOS攻击,那么一个拥有一个或几个IP的小孩子,一个拥有50-100个连接(或更多个IP)的IP,很可能是您可以丢下的慢速攻击者。
如果您在攻击过程中连接在服务器上,则这是“实时”检测并丢弃(使用iptables或您首选的hlfw)。
在您的apache日志中添加处理时间(%D或%T参数)还可以通过分析日志来帮助检测慢速龙虾攻击“事后调查”,如果您的日志中没有此信息,则您将找不到任何有趣的信息。有关日志配置,请参见http://httpd.apache.org/docs/current/mod/mod_log_config.html。
第2级:真正的大慢速龙DDOS
netstat(使用watch netstat进行刷新)仍然可以帮助您看到某些IP始终处于连接状态
要对抗慢速龙,请在apache上安装reqtimeout模块并进行设置,例如:
之后,您在access_log中看到的每个408都确保有99.999%的慢速攻击者ip。
使用reqtimeout apache模块,您可以轻松地在体面的专用服务器上承受数千个ips和数千个数据包/秒。
iptables也可以提供一些帮助:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP