我是怎么维护服务器上几十个 WordPress 站点的安全的

文 / @WordPress主题

我的服务器上如何保护WordPress

我经营着一些WordPress网站,很多客户的WordPress网站是在我的服务器上托管的,维护这些站点的安全是一个不小的挑战。

针对WordPress的攻击类型

针对WordPress的攻击一般是通过工具扫描批量站点WordPress站点,然后进行相应攻击,世界上WordPress站点太多了,针对某个站点逐个攻击的效率太低了。

暴力破解FTP,服务器账号和网站管理员账号

暴力破解帐号是最原始、最初级、也是最没有技术含量的攻击类型。只要能找到合适的工具,甚至电脑小白都能发起这种攻击。当然这种攻击防御起来也比较简单。

  • FTP密码是通过明文传输的,这是一个很大的漏洞。对于FTP,我们采取的措施是不开放FTP,所有代码通过Git提交。
  • 对于暴力破解服务器账号,我们所有的服务器都是CentOS系统,通过banhost,登录几次失败后,就屏蔽掉这个IP。
  • 对于暴力破解网站管理员帐号,我们会建议客户采用复杂的密码,用户名不使用默认的admin。只要遵循这两条措施,网站管理员帐号基本就破解不了了。除此之外,我们还可以使用Fail2ban服务屏蔽暴力破解行为。即使这样,WordPress的管理员密码还是可能泄露出去,怎么能在泄露了密码后,最大程度的保证安全,我们会在下面说。

通过服务器或WordPress漏洞注入代码

这种攻击类型很常见,大部分是挂一些广告链接到WordPress站点上。而根据我们的经验,大部分针对WordPress的广告链接植入类型的攻击是来自俄罗斯的流量。

我们采取的措施是,给所有的WordPress内核文件、主题、插件加只读属性,就算WordPress有尚未发现或没有及时修复的漏洞,攻击者也不能修改程序文件。而WordPress的uploads/wp-content文件夹,则是可以修改内容的。这样既保证WordPress安全,又不会影响用户的正常使用。

拒绝服务(DDoS)攻击

这种攻击恶劣,一般是针对某个站点的。有时候是站点的相关人员得罪了某个不该得罪的人,更多的时候是竞争对手恶意竞争雇人发起的。原理是制造很多虚假的网络访问,让正常的网站用户访问不了网站。虽然可以在服务器上进行一些设置,屏蔽掉一部分攻击,但效果不大。针对这种类型的攻击,一般需要求助服务器提供商进行解决了。

修改wp-config.php,禁用后台代码编辑功能

如果网站管理员密码泄露了,怎么保证安全?我们采取的措施是禁用WordPress后台的主题和插件安装、编辑功能。用户可以在后台看到所有已经安装的主题和插件,可以自行启用和禁用插件,切换使用的主题,却不能在后台安装或编辑主题或插件。需要安装插件的时候,可以通过Git上传的方式进行安装。

这样也能比较经验不足的用户在后台编辑主题或插件出现致命错误而导致的网站不可访问,把下面两行代码添加到WordPress的wp-config.php文件中即可。

//不允许编辑和修改文件
define('DISALLOW_FILE_EDIT',true);
define('DISALLOW_FILE_MODS',true);

大部分暴力破解攻击是为了在目标站点上添加广告链接,有些甚至做得很隐蔽,正常的用户根本看不出来。虽然这些攻击不会破坏网站的正常运行,还是建议禁用后台代码编辑修改功能,防患于未然。

定期检测用户生成的内容,清理不应该出现的文件。

比如uploads目录中,如果是普通用户正常使用,肯定不应该出现PHP文件,如果出现了,这些文件肯定是不坏好意的,先备份到一个Web目录之外的地方,再删之。

因为我们服务器上的站点都是启用了URL重定向的,所以正常的用户访问应该很少有直接访问PHP文件的。定期检测一下网站的访问日志,重点检查针对PHP文件的访问,从中很容易看出问题,找到被植入的代码问题。

定时异地备份,防止灾难性事故发生

我们在服务器上的备份策略是程序文件每周异地备份,数据库每天异

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。