用宝塔面板(BT Panel)搭建 WordPress 网站后,很多人以为装好就万事大吉。实际上,不做安全防护的网站每天都面临大量扫描、暴力破解和恶意请求。本文详细介绍用宝塔面板保护 WordPress 网站的完整安全策略。
一、为什么要做网站安全防护?
新上线的 WordPress 网站通常会遇到以下威胁:
- 暴力破解后台登录:黑客通过字典攻击反复尝试 wp-admin 登录页,每天可达数百次
- 扫描漏洞:自动扫描工具探测主题/插件版本漏洞
- CC / DDoS 攻击:大量请求耗尽服务器资源
- 垃圾评论:大量机器评论,影响网站SEO和用户体验
- 数据丢失:未备份的网站一旦被黑或误删,恢复成本极高
宝塔面板提供了完善的安全工具,大部分配置可在可视化界面完成,无需复杂命令。
二、修改WordPress默认后台登录地址
WordPress 默认登录地址是 wp-admin,黑客脚本批量扫描这个路径。要做的第一步就是把后台路径改掉。
方法一:使用 WPS Hide Login 插件(推荐,最简单)
- WordPress 后台 → 插件 → 安装插件,搜索「WPS Hide Login」
- 安装并启用
- 进入「设置」→「WPS Hide Login」
- 将「Login URL」改为自定义地址(如
mylogin) - 将「Redirection URL」改为你想让访问旧登录页的用户跳转的地址(如首页)
- 点击「保存更改」
记住新登录地址!一旦丢失只能通过 FTP 或数据库重置。
方法二:Nginx 规则直接屏蔽 wp-admin
在宝塔面板的 Nginx 配置中加入以下规则,只允许指定 IP 访问 wp-admin:
location /wp-admin {
allow 你的IP;
deny all;
# 将「你的IP」替换为你当前上网的公网IP
}
设置方法:宝塔面板 → 网站 → 找到你的站点 → 设置 → 配置文 件,找到 server { 块,在合适位置插入上述规则,然后重载 Nginx。
三、宝塔面板防火墙配置
3.1 开启宝塔系统防火墙
宝塔面板 → 安全 → 系统防火墙,开启并设置规则:
- SSH 端口:改为非 22 端口(宝塔面板自带修改功能)
- 只放行必要端口:22(改后端口)、80(HTTP)、443(HTTPS)、8888(宝塔面板)
- 禁止 Ping:防止服务器被探测
3.2 Nginx 防火墙:禁止敏感路径访问
宝塔面板 → 软件商店 → Nginx → 设置 → 配置修改,在 server { 块中加入:
# 禁止访问 XML-RPC(WordPress 默认接口,常被攻击者利用)
location /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
# 禁止访问 wp-config.php(数据库配置文件)
location /wp-config.php {
deny all;
}
# 禁止访问 .ht 文件(Nginx 不识别 .htaccess)
location ~ /\.ht {
deny all;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
修改后点击「重载配置」→「重载 Nginx」。
3.3 限制单个IP请求频率(防CC攻击)
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
server {
limit_req zone=req_limit burst=20 nodelay;
}
这段代码将单个 IP 的请求频率限制为每秒 10 次,超过 20 次将返回 503 错误页面。
四、WordPress 登录安全:双重保护
4.1 安装 Wordfence 安全插件
Wordfence 是 WordPress 最受欢迎的安全插件:
- 插件 → 安装插件,搜索「Wordfence」
- 安装并启用
- 首次使用需注册免费账号(可选,不注册也能用基础功能)
- 进入 Wordfence → All Options,配置以下关键项:
| 选项 | 推荐设置 | 说明 |
|---|---|---|
| Brute Force Protection | 启用,锁定5次失败 | 登录失败5次后封禁该IP 30分钟 |
| Prevent CSRF | 启用 | 防止跨站请求伪造攻击 |
| Block login IPs trying to use username "admin" | 启用 | 直接封禁尝试用admin用户名登录的IP |
| Enable login security | 启用 | 记录登录日志 |
4.2 开启双因素认证(2FA)
强烈推荐为 WordPress 后台开启 2FA,即使密码泄露也能防止账号被盗:
- 插件 → 安装插件,搜索「Two Factor」或「WP 2FA」
- 推荐使用 WP 2FA(免费,支持验证码和邮箱验证)
- 安装后进入「WP 2FA → 设置」
- 选择验证方式:手机 App(Google Authenticator)或邮件验证码
- 设置为所有用户强制开启
- 记得保存备用恢复码!
4.3 宝塔禁止xmlrpc.php批量请求
WordPress 的 xmlrpc.php 接口经常被黑客利用进行「pingback」攻击,在宝塔 Nginx 配置中加入:
# 禁用 XML-RPC pingback 攻击
location /xmlrpc.php {
limit_req zone=req_limit burst=1 nodelay;
deny all;
}
五、数据备份:最重要的安全防线
5.1 宝塔一键备份网站和数据库
宝塔面板 → 网站 → 找到你的站点 → 备份 → 一键备份,支持同时备份网站文件和数据库。
推荐备份频率:
- 数据库:每天自动备份
- 网站文件:每周至少 1–2 次
5.2 配置自动备份到远程存储
- 宝塔面板 → 计划任务
- 添加备份计划:选择「网站备份」+「数据库备份」
- 备份保留份数:建议 3–5 份(超出自动清理旧备份)
- 备份到:可选择「又拍云OSS」「阿里云OSS」「腾讯云COS」等远程存储
5.3 UpdraftPlus 插件:WordPress 内置备份
WordPress 备份插件 UpdraftPlus 支持直接备份到云端:
- 插件 → 安装「UpdraftPlus」
- 设置 → UpdraftPlus → 备份/恢复
- 配置远程存储:推荐选择「Google Drive」或「阿里云盘」(免费额度充足)
- 设置自动备份计划:每周一次完整备份 + 每天一次数据库增量备份
六、Fail2ban 自动封禁恶意IP
Fail2ban 是 Linux 服务器级别的安全工具,可以自动检测并封禁恶意 IP,比宝塔面板更底层,防护更及时。
6.1 安装 Fail2ban
apt install fail2ban -y
systemctl start fail2ban
systemctl enable fail2ban
6.2 创建 WordPress 防护规则
vi /etc/fail2ban/filter.d/wordpress.conf
填入以下内容:
[Definition]
failregex = ^<HOST> .* "POST /wp-login.php HTTP/.*" 401
^<HOST> .* "POST /xmlrpc.php HTTP/.*" 400
^<HOST> .* "/wp-admin/.*" 403
vi /etc/fail2ban/jail.local
填入:
[wordpress]
enabled = true
port = http,https
filter = wordpress
action = iptables-allports[name=wordpress]
logpath = /www/wwwlogs/你的站点域名.log
maxretry = 5
findtime = 10m
bantime = 1h
systemctl restart fail2ban
这段配置含义:10 分钟内 5 次登录失败,封禁该 IP 1 小时。
七、定期安全维护清单
建议每月执行一次以下安全维护:
- ✅ 检查宝塔面板登录日志,看是否有异常IP登录
- ✅ 查看 Wordfence / Fail2ban 封禁记录
- ✅ 检查 WordPress 更新,主题/插件/核心程序全部更新到最新版
- ✅ 确认备份是否正常运行,测试从备份恢复流程
- ✅ 检查 SSL 证书有效期,提前续期
- ✅ 更换一次 WordPress 管理员密码
- ✅ 检查网站是否被百度/Google 标记为不安全
八、总结
网站安全是建站后最重要的工作之一,做好防护能将 99% 的恶意攻击挡在门外。核心配置总结:
- 改 wp-admin 默认路径,防止脚本扫描
- 宝塔 Nginx 禁用 xmlrpc.php、wp-config.php
- Wordfence + 双因素认证(2FA)保护登录
- Fail2ban 自动封禁暴力破解 IP
- UpdraftPlus + 宝塔自动备份,备份到云端
- 定期更新主题/插件/核心程序
以上配置完成后,你的 WordPress 网站安全等级将大幅提升。有问题欢迎在评论区留言。

评论(0)