前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上保护WordPress免受XML-RPC攻击

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

原创
作者头像
一步
修改2018-10-22 11:59:32
8020
修改2018-10-22 11:59:32
举报

介绍

WordPress是一个流行且功能强大的CMS(内容管理系统)平台。它的受欢迎程度可能会以专门针对WordPress网站的恶意流量形式引起不必要的关注。

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

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

准备

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

  • 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

我们假设你已经在Ubuntu 14.04 腾讯云CVM上安装了WordPress。

本教程中的所有命令都应以非root用户身份运行。如果命令需要root访问权限,则前面会有sudo

什么是XML-RPC?

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

识别XML-RPC攻击

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

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

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

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

代码语言:javascript
复制
grep xmlrpc /var/log/apache2/access.log

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

代码语言:javascript
复制
grep xmlrpc /var/log/nginx/access.log

如果上面的命令导致多行输出,则您的WordPress站点正在接收XML-RPC攻击,类似于此示例:

代码语言:javascript
复制
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攻击的三种不同方法。

方法1:安装Jetpack插件

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

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

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

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

单击立即安装按钮以下载,解压缩并安装Jetpack。成功安装后,页面上会出现一个Activate Plugin链接。单击“ 激活插件”链接。您将返回到插件页面,顶部会显示一个绿色标题,表示您的Jetpack已准备就绪!。单击“ 连接到Wordpress.com”按钮以完成Jetpack的激活。

现在,使用WordPress.com帐户登录。您还可以根据需要创建帐户。

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

即使您跳过Jump Start过程,也会自动启用Protect功能。您现在可以看到一个Jetpack仪表板,它还将Protect功能显示为Active。通过单击“ 保护”名称旁边的齿轮,可以通过“ 保护”阻止白名单IP地址。

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

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

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

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

代码语言:javascript
复制
sudo nano /etc/apache2/sites-available/000-default.conf

<VirtualHost>标签之间添加下面突出显示的行。

代码语言:javascript
复制
<VirtualHost>
…    
    <files xmlrpc.php>
      order allow,deny
      deny from all
    </files>
</VirtualHost>

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

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

代码语言:javascript
复制
sudo service apache2 restart

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

代码语言:javascript
复制
sudo nano /etc/nginx/sites-available/example.com

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

代码语言:javascript
复制
server {
…
 location /xmlrpc.php {
      deny all;
    }
}

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

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

代码语言:javascript
复制
sudo service nginx restart

警告:此方法将阻止任何利用XML-RPC运行的东西,包括Jetpack或WordPress移动应用程序。

验证攻击缓解步骤

无论您选择哪种方法来防止攻击,都应该验证它是否正常工作。

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

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

代码语言:javascript
复制
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站点保持联机状态。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Protect WordPress from XML-RPC Attacks on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 什么是XML-RPC?
        • 识别XML-RPC攻击
          • 方法1:安装Jetpack插件
            • 方法2:手动阻止所有XML-RPC流量
              • 验证攻击缓解步骤
                • 结论
                相关产品与服务
                网站建设
                网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档