如何防止 xmlrpc.php 遭受 DOS 攻击

如何防止 xmlrpc.php 遭受 DOS 攻击

我们最近遇到了一个问题,我们的主网站受到了 DOS 攻击,该网站使用 Apache httpd 2.2.9 和 Drupal 6.35 运行。这次攻击是针对 Dupal 的 xmlrpc.php 的一条帖子,这是一个已知漏洞,已在最新版本的 Drupal 中进行了修补。但是,由于它是旧版本,因此漏洞的修复程序不在我们的 Drupal 安装中 - 而且不会有,因为我们将在三个月内迁移到托管平台。

我最初尝试通过重命名 xmlrpc.php 来抵消 DOS,这会返回 404,但这仍然足以为每个帖子创建一个 apache 线程。结果是多个线程结合起来消耗了大量的内存,所以仍然存在问题。

因此,基于更多的谷歌搜索,我刚刚修改了 .htaccess 以下内容:

<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>

从这里开始,大概不会再为每个调用创建一个 httpd 线程。

您觉得这样就够了吗?我可以更进一步,启用跟踪 VPC 上的流量的功能,查找并阻止原始 IP 地址,但我不知道这是否有效,因为这些攻击可能来自一堆被劫持的系统。虽然我很好奇。有什么想法吗?

答案1

拒绝块仍然需要 apache 来处理请求,以便查看它是否与拒绝匹配,并且“成本”很可能与 404 相等。

你说的是“DOS”,但你是指真正的攻击还是随机扫描?随机扫描通常不会带来足够的流量,因此 404/403 不会成为问题。

这是在 ELB 后面吗?如果不是,您应该能够在访问日志中看到源地址。您可以考虑实施 Fail2Ban 之类的工具来监视此模式,并放入临时 iptables 规则以在一段时间内阻止对该 IP 的访问。

如果它位于 ELB 后面,您可以做类似的事情,除了编写自定义垫片来针对包含 ELB 的 VPC 子网 ACL 进行操作。

相关内容