WordPress Linux服务器强化教程

时间:2020-03-21 11:48:47  来源:igfitidea点击:

根据Wikipedia的说法,全球目前有超过59%的由WordPress提供支持。
所有功劳归功于用户友好的简单创新GUI。
这是关于WordPress的最好的事情之一。
它具有一些要点,其中包括新手Web用户可以轻松地使用其功能轻松地创建一些专业。
WordPress Web Server安全性的主要考虑因素。
我们需要遵循本教程,它有助于使WordPress Web服务器更安全。

处理WordPress安全性时,我们需要了解几件事。
由于WordPress面临许多类型的安全性问题,错误和漏洞。
根据安全研究人员的报告,WordPress是最具针对性和最受攻击的CMS。
它已经通过使用某些WordPress漏洞,SQL Injection,XSS等进行了攻击。
但是,为了实时保护Web服务器,同时,我们需要仔细遵循所有WordPress强化技巧。

准备工作

  • 我们必须在安装了WordPress的LAMP Stack上运行基于Ubuntu或者Debian的Linux发行版。
  • 我们需要具有sudo权限的普通用户帐户

提示1-禁用目录浏览

目录浏览是攻击者/用户用来从系统访问敏感信息的方法。
它还显示了目录结构,这对攻击者浏览整个系统很有用。
除非并且直到我们需要预先使用此功能,否则应将其禁用。

目录浏览图示如下:

步骤1-修改虚拟主机配置文件。

编辑Apache虚拟主机配置文件。

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

我们将看到给定的行

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

找到以下行:

Options Indexes FollowSymLinks

更改为:

Options FollowSymLinks

之后,保存并退出配置文件。

最后重启Apache服务

$sudo service apache2 restart

目录浏览图示如下:

第2步-修改Apache默认配置文件
编辑Apache默认配置文件。

$sudo nano /etc/apache2/apache2.conf

我们将看到给定的行

<Directory /var/www
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

找到以下行:

Options Indexes FollowSymLinks

更改为:

Options FollowSymLinks

之后,保存并退出配置文件。

最后,重新启动Apache服务

$sudo service apache2 restart

技巧2-关闭服务器签名

攻击者想了解服务器签名,包括PHP版本和Apache Web服务器版本。
这有助于攻击者发现系统中的漏洞并启动与之相关的攻击。
建议关闭服务器签名。

第1步-隐藏PHP版本
转到php.ini文件以隐藏PHP版本

$sudo nano /etc/php5/apache2/php.ini

找到以下行:

expose_php = On

更改为:

expose_php = Off

之后,保存并退出php.ini文件。

最后,重新启动Apache服务

$sudo service apache2 restart

第2步-隐藏Apache版本
检查上的服务器签名

$curl --head http://www.theitroad.com

输出示例

HTTP/1.1 200 OK
Date: Sat, 16 May 2015 11:12:17 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Server: Apache/2.4.7 (Ubuntu)

它显示了服务器签名服务器:Apache/2.4.7(Ubuntu)
关闭Apache服务器签名

$sudo nano /etc/apache2/apache2.conf

将这些行添加到最后几行

ServerSignature Off

之后,保存并退出配置文件。

$sudo service apache2 restart

最后,重新启动Apache服务

$curl --head http://www.theitroad.com

检查以进行测试

HTTP/1.1 200 OK
Date: Sat, 16 May 2015 11:12:17 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive

输出示例

我们将看不到服务器签名。这意味着服务器签名已关闭。

提示3-为基于Ubuntu或者Debian的发行版启用自动安全更新。

$sudo apt-get install unattended-upgrades

通过在基于Ubuntu或者Debian的发行版上实施自动更新,保护Web服务器免受现有安全漏洞补丁的侵害,并定期更新服务器软件。
服务器软件,操作系统和Web应用程序中的错误会导致Web服务器受到攻击者的侵害。
基于主要和次要应用所有安全更新。
集成自动更新的方法有很多,其中一种是无人值守升级方法,可以对基于Ubuntu或者Debian的发行版进行自动更新。
始终使用最新的稳定的Web服务器软件,并需要定期更新或者修补OS和Web服务器软件。
用户适当的补丁程序管理可保护Web服务器并定期对软件进行补丁程序。

使用“无人值守升级”包

$sudo dpkg-reconfigure --priority=low unattended-upgrades

激活无人值守的升级

之后,点击“是”以启用自动更新

$cat /etc/apt/apt.conf.d/20auto-upgrades

检查它是否被激活

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
$sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

它表明我们已经成功启用了自动安全更新
注意:这是可选步骤(如何在未经确认的情况下完成升级后自动重启Ubuntu或者Debian)

Unattended-Upgrade::Automatic-Reboot "false";

找到以下行:

Unattended-Upgrade::Automatic-Reboot "true";

更改为:

之后,保存并退出配置文件。

提示4-启用自动WordPress更新

$sudo nano /var/www/html/wp-config.php

通过使用wp-config文件启用自动更新

/** Automatically Updates the WordPress Core, Plugins and Themes. */
add_filter( 'auto_update_core', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

添加给定的行

之后,保存并退出配置文件。

提示5-删除信息痕迹

$sudo rm -rf /var/www/html/info.php

删除包含有关系统信息的文件。
这使攻击者能够成功识别系统。
必须先删除此信息文件,然后再进行操作。

删除PHP信息文件。

$sudo rm -rf /etc/motd.tail

删除那些显示WordPress数据库密码的痕迹Motd.tail文件。

$sudo rm -rf /var/www/html/readme.html

删除包含WordPress版本的WordPress自述文件。

提示6-整合一些WordPress调整

$sudo nano /var/www/html/robots.txt

第1步-创建Robot.txt文件
这是使网络搜寻器/蜘蛛停止访问敏感目录的重要步骤。
这样可以阻止对不需要的Web爬网程序的访问。

User-agent: *
Disallow: /wp-admin/

添加给定的行

$sudo nano /var/www/html/.htaccess

之后,保存并退出配置文件。

步骤2-使用.htaccess文件限制和保护WP-config文件
WP-config是包含数据库凭据的文件,并且包含WordPress CMS的wp-salts。
我们必须先阻止重要文件,然后才能落入不法之徒手中。

<files wp-config.php>
order allow,deny
deny from all
</files>

添加给定的行

$sudo mysql_secure_installation

之后,保存并退出配置文件。

第3步-执行MySQL安全安装
在进入使服务器安全的生产环境之前,需要运行mysql_secure_installation。