宝塔 + WordPress 安全加固完整方案
宝塔 + WordPress 安全加固完整方案
2026-07-21 0 评论 1 阅读 0 点赞

宝塔 + WordPress 安全加固完整方案

daimafengzi
2026-07-21 / 0 评论 / 1 阅读 / 正在检测是否收录...

宝塔 + WordPress 安全加固完整方案

从「面板 → 系统 → 网站/PHP → WordPress → 数据库 → 备份 → 监控 → 应急」8 层纵深防御。
优先级:必须 > 推荐 > 可选

① 宝塔面板自身(必须)

面板被破 = 整台服务器沦陷,是第一道防线。

  • 面板设置 → 修改端口:默认 8888 改高位非常用端口(如 35821)。
  • 面板设置 → 安全入口:设复杂随机路径,如 /bt_8f3k(默认 /btpanel 立即失效)。
  • 面板设置 → 绑定授权 IP:只放行你自己的固定 IP(无固定 IP 则跳过,别锁死自己)。
  • 面板设置 → 开启面板 SSL:用 https 访问面板。
  • 面板设置 → 两步验证(2FA):手机令牌,强烈建议开。
  • 面板设置 → 修改管理员用户名 + 强密码(16 位以上,含大小写数字符号)。
  • 软件商店 → phpMyAdmin:不用时关闭,或加「基础认证」密码;不要长期公开。

② 服务器系统层(推荐)

  • 安全(左侧)→ 系统防火墙:只放行 22 / 80 / 443 / 面板端口,其余拒绝。
  • 安全 → SSH 管理:改默认 22 端口;禁用 root 直接登录;改用密钥登录
  • 软件商店 → 安装 fail2ban(或宝塔「系统防火墙」的防暴力破解):自动封禁爆破 IP。
  • 定期执行系统补丁更新(yum update / apt update)。

③ 网站 / PHP 层(必须,最关键,锁死破坏面)

  • 网站 → 设置 → 防跨站攻击 → ✅ 开启:本质是给 PHP 设 open_basedir,黑客拿到 shell 也出不了网站目录。这一项最重要。
  • 软件商店 → PHP 升级到 8.1 / 8.2(旧版漏洞多)。
  • PHP → 设置 → 禁用函数:加入以下函数(WordPress 正常运行不需要):

    exec, system, passthru, proc_open, popen, shell_exec, pcntl_exec, proc_get_status, proc_close, eval
  • 网站 → 设置 → 伪静态:追加「禁止 uploads 执行 PHP」规则(见下方配置区)。
  • 文件管理:目录 755、文件 644wp-config.php 设为 600
  • 网站 → SSL → Let's Encrypt 一键申请,开启「强制 HTTPS」。

④ WordPress 应用层(必须)

  • 清理陌生管理员:后台「用户」确认无陌生账号;改掉默认 admin 用户名。
  • Limit Login Attempts Reloaded:限制登录失败次数,挡暴破。
  • wp-config.php 加两行,关闭后台主题/插件在线编辑(防黑客改主题挂马):

    define( 'DISALLOW_FILE_EDIT', true );
    define( 'DISALLOW_FILE_MODS', false );  // 想彻底禁止自动改文件改 true
  • 删掉 cholame222 副本、所有停用主题/插件(只留 active 的 cholame + 在用的插件)。
  • 更新 WP 核心 + 主题 + 插件到最新。
  • Wordfence / Sucuri(免费版足够):文件完整性监控 + 恶意流量拦截。
  • 不用就禁用 XML-RPC(黑客暴破常用):用安全插件关,或 nginx 规则 denyxmlrpc.php

⑤ 数据库安全(推荐)

  • 强口令wp-config.php 里的 DB_PASSWORD 用 16 位以上随机串。
  • 表前缀:新装站用非常规前缀(如 kr_ 而非 wp_);已建站可用插件修改(有风险,先备份)。
  • phpMyAdmin 用独立强口令,平时关闭。

⑥ 备份(必须,被黑后能秒回滚)

  • 计划任务 → 建两条:网站备份 + 数据库备份,每日自动跑。
  • 备份存储到云存储(阿里云 OSS / 腾讯云 COS / FTP 异地),不要只存本机
  • 保留至少 7 天滚动备份。
  • 也可用 UpdraftPlus 插件自动备份到云端。

⑦ 监控告警(可选)

  • 监控(左侧)→ 开启,定期看 CPU/带宽异常。
  • 安全插件的邮件/微信告警打开,文件变更/登录异常即通知你。

⑧ 应急响应(必须,怀疑被黑时)

  • 立即改全站密码(WP 管理员 / 主机 / 数据库 / phpMyAdmin),并撤销所有用户会话
  • 从干净备份恢复,或按「正确重装核心」:只重传 wp-admin/ + wp-includes/ + 根目录 php 文件,不要动 wp-content(那会冲掉你的主题/插件/上传)。
  • 活动主题若被破坏:把你本地这份干净的 cholame 整目录重新传上去覆盖。
  • 扫描 wp-content/uploads/ 下有无异常 .php(正常不该有)。
  • 查数据库 wp_options 是否被注入跳转 JS、wp_users 有无陌生管理员。

附:可直接复制的配置

Nginx 伪静态(禁止 uploads 执行 PHP + 封 xmlrpc)

# 禁止 uploads / cache / languages 执行 PHP(防挂马后门)
location ~* ^/wp-content/(uploads|cache|languages)/.*\.(php|php3|php4|php5|phtml|pht)$ {
    deny all;
    return 403;
}
# 禁用 XML-RPC(防暴破)
location = /xmlrpc.php {
    deny all;
    return 403;
}

Apache(.htaccess 放 uploads 目录)

<FilesMatch "\.(?i:php|php3|php4|php5|phtml|pht)$">
    Require all denied
</FilesMatch>
php_flag engine off

wp-config.php 加固片段

define( 'DISALLOW_FILE_EDIT', true );
define( 'FORCE_SSL_ADMIN', true );
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

验证 uploads 禁执行是否生效

  1. wp-content/uploads/ 新建 test.php,写 <?php echo "PHP_STILL_RUNS"; ?>
  2. 访问 https://你的域名/wp-content/uploads/test.php
  3. ✅ 正确:显示 403 Forbidden(看不到 PHP_STILL_RUNS
    ❌ 错误:直接显示了 PHP_STILL_RUNS → 规则未生效,检查服务器类型
  4. 测完删掉 test.php

⚠️ 最高性价比三件事(10 分钟,挡掉 80% 自动攻击)

  1. 面板改端口 + 安全入口 + 2FA
  2. 网站开防跨站攻击 + PHP 禁用危险函数 + uploads 禁执行 PHP
  3. 宝塔设每日自动备份到云

⚠️ 重装核心的正确姿势(避免再次白屏)

只重传 wp-admin/wp-includes/ 和根目录几个 php 文件。不要重传 wp-content/——里面装的是你的主题、插件和上传的图片,重传会覆盖/冲掉它们,正是上次前台白屏的原因。

0

评论 (0)

取消