Ric*_*ard 5 security mod-rewrite .htaccess ddos apache-2.2
对于少数几个月,现在我们的共享托管服务器中的一个已经坚持经常通过什么必须是成千上万的个人IP地址的“POST /”请求敲定。在许多情况下,这已经使服务器不堪重负,并导致拒绝服务型中断。目标域非常无聊(一个小型地产代理),因此虽然这看起来是恶意的,但我无法理解这种长期运行且 99% 不成功的攻击的动机。
一个典型的请求(取自 TCPDUMP)如下所示:
POST / HTTP/1.1
Accept: */*
Accept-Language: en-us
Content-Type: application/octet-stream
Content-Length: 570
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: xxx.co.uk
Connection: Keep-Alive
Cache-Control: no-cache
2+cIPSyYVJFqB9xPFzWoLj9seNyEKIcuIJz/yfkc9tVP+orXgjDk8ywglufcXsMz
bVP4XLcowz/fQtsn2kceQEj/EaEWx/GEbcC3eTbCbTube0suAfEGje3qISKQJ+ka
HaChqun3whii3OTh7vCayGV72lh4raLRandKC5g/73wgQ9Jzh2OLIzNvsiEMSJco
yG+4i35XJMvX7ovx8qJkyByHUIeE5G5M2Kp97O4sOT4jTAK2y/KAMjf6oFgtAJhI
K4/HdcnyfNdI3/4RJXlrSfhUQAc+qhGMEL7AZdtzgRub7lnu+hbuPGZvS3rF1MvL
WK1q4mrnZr0Q3m0bWkzsMZCndQ7fqOBafchjprhn4JKPsjO+upRm2m+irvmJjqnl
sDiR3fnD6pzbWyLTm2qonMJPCll3p6zg06gEfIaW04t9r89/PdHgz8AU8nzO4BX8
qwTG6dSjgbowHyJQmud8Ro+ZT+gHfw/YQUrBqKm7RoFmfJzUoOCKaP1LTwHfI1Gc
E+L8bwQV6ztKBwVn2NqbE83SAXYr9E0QkpaxGg==
Run Code Online (Sandbox Code Playgroud)
我们无法确定 POST 请求中的内容,因为它看起来像垃圾,但我不确定它是否相关。它不是 base64 编码的。
为了减少对此请求的响应所占用的带宽量,我们禁止在 Apache2 配置中使用 POST 请求:
<Location />
<Limit POST>
Order deny,allow
Deny from all
</Limit>
</Location>
Run Code Online (Sandbox Code Playgroud)
这将响应大小限制为一个简单的 403 Forbidden 消息,而不是客户端通常的主页。
为了尝试阻止这样做的 IP,我们尝试通过管道传输访问日志,过滤 POST 请求,并将其直接提供给 iptables:
tail -f /var/www/vhosts/xxx.co.uk/statistics/logs/access_log | grep "POST / " | awk '{print $1}' | xargs -I{} iptables -A INPUT -s {} -j DROP
Run Code Online (Sandbox Code Playgroud)
这样效果很好,减少了问题的影响,但它是无情的,由于iptables/内核问题,我们通常必须在达到50-60k时清除iptables规则集。这不是一个解决方案,因为我不能让它运行几个星期,直到负责的人收到消息并放弃。
我们也为这个特定的 VirtualHost 关闭了 KeepAlive,以将占用的 Apache 工作人员的数量保持在最低限度,这有所帮助,但这不是解决方案。
关于如何在数十万个远程 IP 的范围内隐藏这些请求,或者将对 Apache 的影响降至绝对最低,是否有人有更好的想法?目前我能做的最好的事情是将其配置为发送 403 Forbidden,并结合 IP 阻塞几个小时......
谢谢!
如果您拥有该计算机的 root 访问权限,您可以使用有限的规则集部署 snort/suricata,例如检测并阻止 POST 请求。
亲:
缺点:
更简单:在 apache 前面设置 nginx 并从那里处理 403,同时将有效请求传递给 apache
亲:
缺点:
归档时间: |
|
查看次数: |
169 次 |
最近记录: |