centos6.9安装wordpress最佳实践:避开坑位,从零到安全部署
找建站公司怕被坑高价?别被那些“打包价”“全包服务”忽悠瘸了,自己动手安装WordPress反而更省钱、更透明。尤其是像CentOS 6.9这类老旧系统,很多公司不接,但如果你能掌握最佳实践,省下的不只是钱,还有时间。下面我一步步教你搞定CentOS 6.9安装WordPress,全程避开常见的坑,连安全配置都给你安排上。
威胁场景:建站不安全,等于白搭
别以为装个WordPress就完事了,CentOS 6.9本身系统老旧,再加上WordPress自身存在各种漏洞,如果不加防护,你的网站可能在上线后第一天就被黑。常见威胁场景包括:
- SQL注入:恶意用户通过表单输入恶意SQL语句,直接操作数据库;
- 文件上传漏洞:用户上传带有恶意脚本的图片或文件,绕过权限控制;
- XSS攻击:通过评论或表单注入恶意脚本,劫持用户会话;
- 弱密码漏洞:管理员账号使用简单密码,被暴力破解;
- 插件漏洞:WordPress插件更新不及时,导致系统暴露在已知漏洞中。
这些威胁可能让你的网站被黑、数据泄露,甚至被用来做DDoS攻击。别小看CentOS 6.9,它的安全更新已经停止,如果你不主动加固,那就等于给自己挖坑。
漏洞原理:WordPress + CentOS 6.9的致命组合
WordPress本身是一个开源CMS系统,虽然功能强大,但它的核心代码库和第三方插件经常成为攻击者的“香饽饽”。而CentOS 6.9作为一个早已停止维护的系统,它的内核版本、软件包和安全补丁都停留在2017年左右,存在很多已知漏洞。
例如,CentOS 6.9的OpenSSH版本是6.6p1,而目前最新的OpenSSH已经修复了很多漏洞,比如允许远程代码执行(RCE)的漏洞。如果用户没有及时更新,攻击者就可以通过SSH暴力破解进入服务器,进而控制WordPress系统。
在WordPress方面,比如wp-login.php页面是攻击者最常攻击的入口,如果管理员密码过弱,或者没有开启两步验证,攻击者可以轻松暴力破解进入后台。此外,wp-admin和wp-content目录如果没有正确的权限设置,攻击者也可能通过上传恶意文件来植入后门。
这些漏洞的根源在于配置不当、依赖项过时和安全意识薄弱。如果你不想被黑,就必须从系统和应用两方面入手,进行安全加固。
防护方案:从代码到配置,安全加固每一步
1. 安装前的准备:环境安全是基础
在安装WordPress之前,确保CentOS 6.9环境是“干净”的。虽然官方不再支持CentOS 6.9,但你可以通过EPEL(Extra Packages for Enterprise Linux)和Remi仓库来获取最新的软件包。
安装EPEL和Remi仓库
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-6.rpm
安装Apache、MySQL和PHP
sudo yum install -y httpd mysql-server php php-mysqlnd
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl start mysqld
sudo systemctl enable mysqld
配置MySQL安全
安装完MySQL后,必须运行mysql_secure_installation,设置强密码、移除匿名用户、禁止远程root登录等。
mysql_secure_installation
安装PHP扩展(如需)
sudo yum install -y php-gd php-xml php-mbstring php-curl
2. 安装WordPress:确保下载源安全
WordPress官方推荐从WordPress官网下载最新版本。切勿使用第三方源或镜像站,避免被植入恶意代码。
下载并解压WordPress
cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo chown -R apache:apache /var/www/html/wordpress
3. 配置WordPress:权限、密码和安全设置
创建数据库
mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
exit;
配置wp-config.php
WordPress的配置文件wp-config.php必须设置好数据库连接、安全密钥等。建议使用WordPress官方提供的密钥生成器。
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'StrongPass123!');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');define('AUTH_KEY', '你的密钥');
define('SECURE_AUTH_KEY', '你的密钥');
define('LOGGED_IN_KEY', '你的密钥');
define('NONCE_KEY', '你的密钥');
define('AUTH_SALT', '你的密钥');
define('SECURE_AUTH_SALT', '你的密钥');
define('LOGGED_IN_SALT', '你的密钥');
define('NONCE_SALT', '你的密钥');
设置文件权限
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;
sudo chown -R apache:apache /var/www/html/wordpress
4. 配置Apache虚拟主机
sudo vi /etc/httpd/conf.d/wordpress.conf
配置如下:
<VirtualHost *:80>ServerAdmin admin@example.comDocumentRoot /var/www/html/wordpressServerName example.comServerAlias www.example.com<Directory /var/www/html/wordpress>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory>ErrorLog /var/log/httpd/wordpress_error.logCustomLog /var/log/httpd/wordpress_access.log combined
</VirtualHost>
重启Apache:
sudo systemctl restart httpd
5. 安装SSL证书(推荐Let's Encrypt)
sudo yum install -y epel-release
sudo yum install -y certbot python2-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
选择“Yes”重启Apache服务,确保SSL证书生效。
检测与修复:别等被黑才知道问题
安装完毕后,必须进行安全检测和漏洞修复。
1. 使用安全扫描工具
你可以使用像WPSecScan、Nessus、OpenVAS等工具对网站进行扫描,发现可能存在的漏洞。
例如,使用WPSecScan:
sudo git clone https://github.com/m0r1337/wpscan.git
cd wpscan
sudo gem install bundler
bundle install
./wpscan.rb --url http://example.com
这会输出WordPress的版本、插件、用户信息等,帮助你判断是否暴露敏感信息。
2. 修复已知漏洞
如果发现存在过时插件或主题,立刻更新或更换。例如,如果你的WordPress版本是4.5,而最新是6.3,必须升级。
使用WordPress后台更新
登录WordPress后台,点击“更新”菜单,更新核心、插件和主题。
手动升级
cd /var/www/html/wordpress
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo chown -R apache:apache /var/www/html/wordpress
更新后记得清理旧文件。
3. 配置防火墙(iptables)
使用iptables配置防火墙,限制不必要的端口访问。
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo iptables -A INPUT -j DROP
sudo service iptables save
sudo service iptables restart
安全加固清单:从代码到配置,每一步都重要
以下是CentOS 6.9 + WordPress安装后的安全加固清单,建议全部执行:
| 项目 | 说明 |
|---|---|
| 1 | 安装EPEL和Remi仓库,获取最新软件包 |
| 2 | 更新所有系统软件包 |
| 3 | 配置MySQL安全,禁用root远程登录 |
| 4 | 为WordPress数据库创建独立用户 |
| 5 | 设置强密码,并定期更换 |
| 6 | 安装Let's Encrypt SSL证书 |
| 7 | 使用.htaccess限制文件访问权限 |
| 8 | 禁用WordPress XML-RPC接口 |
| 9 | 禁用wp-login.php暴力破解攻击 |
| 10 | 配置WordPress后台安全设置(如登录限制) |
| 11 | 禁止直接访问wp-admin/wp-login.php |
| 12 | 安装安全插件(如Wordfence) |
| 13 | 定期备份网站和数据库 |
| 14 | 配置防火墙(iptables) |
| 15 | 定期扫描网站漏洞 |
代码示例:禁用XML-RPC(防止DDoS攻击)
// 添加到wp-config.php底部
define('XMLRPC_ENABLED', false);
代码示例:限制登录尝试次数(防止暴力破解)
// 添加到wp-config.php底部
define('WP_MAX_LOGIN_ATTEMPTS', 3);