如何在 Ubuntu 14.04 上保护 WordPress 免受 XML-RPC 攻击如何在 Ubuntu 14.04 上保护 WordPress 免受 XML-RPC 攻击如何在 Ubuntu 14.04 上保护 WordPress 免受 XML-RPC 攻击如何在 Ubuntu 14.04 上保护 WordPress 免受 XML-RPC 攻击
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 14.04 上保护 WordPress 免受 XML-RPC 攻击

介绍

WordPress 是一个流行且功能强大的 CMS(内容管理系统)平台。它的流行会以专门针对 WordPress 站点的恶意流量的形式带来不必要的关注。

在许多情况下,未受保护或优化的服务器在收到少量恶意流量后可能会遇到问题或错误。这些攻击导致系统资源耗尽,导致 MySQL 等服务无响应。最常见的视觉提示是 Error connecting to database 消息。 Web 控制台也可能显示 Out of Memory 错误。

本指南将向您展示如何在 Ubuntu 14.04 系统上保护 WordPress 免受 XML-RPC 攻击。

先决条件

对于本指南,您需要以下内容:

  • Ubuntu 14.04 Droplet
  • 具有 sudo 权限的非根用户(Ubuntu 14.04 的初始服务器设置说明了如何进行设置。)

我们假设您已经在 Ubuntu 14.04 Droplet 上安装了 WordPress。安装WordPress的方法有很多种,这里介绍两种常用的方法:

  • 如何在 Ubuntu 14.04 上安装 WordPress
  • 使用 DigitalOcean 在 Ubuntu 14.04 上一键安装 WordPress

本教程中的所有命令都应以非根用户身份运行。如果该命令需要 root 访问权限,则它前面会加上 sudo。 Ubuntu 14.04 的初始服务器设置说明了如何添加用户并为他们提供 sudo 访问权限。

什么是 XML-RPC?

WordPress 使用函数。流行的插件 JetPack 和 WordPress 移动应用程序是 WordPress 如何使用 XML-RPC 的两个很好的例子。同样的功能也可以被利用在短时间内向 WordPress 发送数千个请求。这种情况实际上是蛮力攻击。

识别 XML-RPC 攻击

识别XML-RPC攻击的两种主要方式如下:

  1. 当您的 WordPress 网站关闭时看到“错误连接到数据库”消息
  2. 在您的 Web 服务器日志中找到许多类似于 “POST /xmlrpc.php HTTP/1.0” 的条目

Web 服务器日志文件的位置取决于您正在运行的 Linux 发行版和正在运行的 Web 服务器。

对于 Ubuntu 14.04 上的 Apache,使用此命令搜索 XML-RPC 攻击:

  1. grep xmlrpc /var/log/apache2/access.log

对于 Ubuntu 14.04 上的 Nginx,使用此命令搜索 XML-RPC 攻击:

  1. grep xmlrpc /var/log/nginx/access.log

如果上述命令导致多行输出,您的 WordPress 站点将受到 XML-RPC 攻击,类似于此示例:

111.222.333.444:80 555.666.777.888 - - [01/Jan/2016:16:33:50 -0500] "POST /xmlrpc.php HTTP/1.0" 200 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

本文的其余部分重点介绍三种不同的方法来防止进一步的 XML-RPC 攻击。

方法一:安装Jetpack插件

理想情况下,您希望在 XML-RPC 攻击发生之前阻止它们。 WordPress 的 Jetpack 插件可以使用其 Protect 功能阻止 XML-RPC 多调用方法请求。在启用 Jetpack 的情况下,您仍会在 Web 服务器日志中看到 XML-RPC 条目。但是,Jetpack 会将这些恶意登录尝试对数据库的负载降低近 90%。

注意:激活 Jetpack 插件需要 WordPress.com 帐户。

Jetpack 可以从 WordPress 后端轻松安装。首先,登录到您的 WordPress 控制面板,然后在左侧菜单中选择插件 -> 添加新插件。

Jetpack 应该会自动列在添加新页面的特色插件部分。如果您没有看到它,您可以使用搜索框搜索 Jetpack。

单击立即安装按钮以下载、解压缩和安装 Jetpack。安装成功后,页面上会出现激活插件链接。单击该激活插件链接。您将返回到插件页面,顶部会出现一个绿色标题,表明您的 Jetpack 几乎准备就绪!。单击连接到 WordPress.com 按钮以完成 Jetpack 的激活。

现在,使用 WordPress.com 帐户登录。如果需要,您还可以创建一个帐户。

在您登录到您的 WordPress.com 帐户后,Jetpack 将被激活。您将看到一个运行 Jump Start 的选项,它将自动启用 Jetpack 的常用功能。在此步骤单击跳过链接。

即使您跳过 Jump Start 过程,保护功能也会自动启用。您现在可以看到 Jetpack 仪表板,其中还显示 Protect 功能处于活动状态。白名单 IP 地址可能被 Protect 阻止,方法是单击 Protect 名称旁边的齿轮。

输入要列入白名单的 IPv4 或 IPv6 地址,然后单击“保存”按钮以更新保护 白名单。

方法 2:使用 a2enconf 启用 block-xmlrpc

a2enconf block-xmlrpc 功能已于 2015 年 12 月添加到 DigitalOcean WordPress 一键映像中。有了它,您可以在 Web 服务器级别阻止所有 XML-RPC 请求。

注意:此方法仅适用于 2015 年 12 月及之后创建的 DigitalOcean 一键式 WordPress 安装。

要启用 XML-RPC 块脚本,请在安装了 DO WordPress 一键式图像的 Droplet 上运行以下命令:

  1. sudo a2enconf block-xmlrpc

重新启动 Apache 以启用更改:

  1. sudo service apache2 restart

警告:此方法将停止任何使用 XML-RPC 的功能,包括 Jetpack 或 WordPress 移动应用程序。

方法 3:手动阻止所有 XML-RPC 流量

或者,可以手动将 XML-RPC 块应用于您的 Apache 或 Nginx 配置。

对于 Ubuntu 14.04 上的 Apache,使用以下命令编辑配置文件:

  1. sudo nano /etc/apache2/sites-available/000-default.conf

在 标记之间添加下面突出显示的行。

<VirtualHost>
…    
    <files xmlrpc.php>
      order allow,deny
      deny from all
    </files>
</VirtualHost>

完成后保存并关闭此文件。

重新启动 Web 服务器以启用更改:

  1. sudo service apache2 restart

对于 Ubuntu 14.04 上的 Nginx,使用以下命令编辑配置文件(更改路径以反映您的配置文件):

  1. sudo nano /etc/nginx/sites-available/example.com

在服务器块中添加下面突出显示的行:

server {
…
 location /xmlrpc.php {
      deny all;
    }
}

完成后保存并关闭此文件。

重新启动 Web 服务器以启用更改:

  1. sudo service nginx restart

警告:此方法将停止任何使用 XML-RPC 的功能,包括 Jetpack 或 WordPress 移动应用程序。

验证攻击缓解步骤

无论您选择何种方法来防止攻击,您都应该验证它是否有效。

如果启用 Jetpack Protect 功能,您将在 Web 服务器日志中看到 XML-RPC 请求继续。频率应该更低,Jetpack 将减少攻击可能对数据库服务器进程施加的负载。 Jetpack 还将逐步阻止攻击 IP 地址。

如果您手动阻止所有 XML-RPC 流量,您的日志仍会显示尝试,但生成的错误代码不是 200。例如,Apache access.log 文件中的条目可能如下所示:

111.222.333.444:80 555.666.777.888 - - [01/Jan/2016:16:33:50 -0500] "POST /xmlrpc.php HTTP/1.0" 500 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

结论

通过采取措施减轻恶意 XML-RPC 流量,您的 WordPress 站点将消耗更少的系统资源。耗尽系统资源是 WordPress 站点在 VPS 上离线的最常见原因。本文中提到的防止 XML-RPC 攻击的方法将确保您的 WordPress 网站保持在线。

要了解有关对 WordPress XML-RPC 的暴力攻击的更多信息,请阅读 Sucuri.net — 针对 WordPress XMLRPC 的暴力放大攻击。

©2015-2025 艾丽卡 support@alaica.com