# 宝塔面板生产环境安全加固与防篡改全景指南（WAF + 防篡改 + 容灾备份）

> 从防 CC 攻击、防 SQL 注入、内核级防木马暗链篡改到跨云 OSS/COS 自动备份，梳理宝塔企业版与专业版生产服务器四层纵深安全加固标准流程与防误杀清单。

加固结论：正式上线的网站单靠修改端口或装杀毒脚本远远不够，推荐按**「应用层 WAF 拦截恶意请求 → 内核级防篡改锁死源码目录 → 系统加固防 SSH 爆破 → 跨云对象存储自动备份」**四层顺序配置，15 分钟内建立生产级闭环防线。

## 为什么网站删了木马、改了密码还是反复被黑？

在日常运维中，绝大多数“删完暗链第二天又冒出来”或“服务器半夜 CPU 满载数据库自动停止”的事故，根源在于只做了事后清理，却缺少前置拦截与底层目录写保护：

| 常见线上故障 | 真实攻击/触发链路 | 对应宝塔企业版根治组件 |
| --- | --- | --- |
| CPU 满载、网站 502/504 打不开 | 恶意爬虫或肉鸡发起高频 CC 请求打穿 PHP-FPM 与 MySQL 连接池 | **Nginx / Apache 网站防火墙（WAF）** + **任务管理器** |
| 首页标题变菠菜词、反复被挂暗链 | 老旧 CMS/插件漏洞被上传 WebShell 后门，定时任务自动重写模板 | **企业级网站防篡改** + **木马查杀** |
| 服务器被植入挖矿进程 | 弱口令 SSH 22 端口被暴力破解，或 Redis 6379 空密码暴露公网 | **宝塔系统加固** + 安全组最小端口放行 |
| 云硬盘故障或误删导致数据归零 | 计划任务仅备份在服务器同一块本地磁盘，未做异地隔离 | **企业级防灾备份 / OSS·COS 对象存储插件** |
| 搞不清百度蜘蛛到底有没有来抓 | 前端 JS 统计无法记录搜索引擎爬虫与 500/404 异常请求 | **网站监控报表**（Web 日志底层解析） |

## 第一层：开启 Nginx / Apache 网站防火墙（WAF）并放行白名单

网站防火墙运行在 Nginx Lua 层，在恶意 SQL 注入、一句话木马上传或 CC 洪峰进入 PHP 之前直接返回 403/444 阻断，极省 CPU 与内存。

1. 在宝塔企业版/专业版「软件商店 → 专业版/企业版插件」安装并开启 **Nginx 网站防火墙**。
2. **先加白名单再开严苛规则**：进入「全局配置 → URL 白名单」，先把微信/支付宝异步回调接口（如 `/pay/notify`）、Webhook 接口及管理员固定办公 IP 加入白名单。
3. 在「站点配置」中启用 CC 防护（平时用普通模式，遭遇攻击时一键切换增强/人机验证），并确保不误封百度（Baiduspider）、必应（bingbot）等官方搜索引擎蜘蛛。

:::warn 防误杀黄金准则
遇到网站后台富文本保存被拦或接口报错时，**切勿直接关闭整站 WAF 开关**！先打开防火墙右侧「拦截日志」，找到具体命中的规则与 URL，针对该 URL 单独添加白名单即可。
:::

## 第二层：启用企业级网站防篡改（锁死代码，放行上传与缓存）

即使开源程序（如 WordPress、ThinkPHP 老项目）存在未知 0day 漏洞，只要开启内核级目录保护，攻击脚本也无法往磁盘写入任何新的 `.php` 文件或修改首页模板。

1. 打开「软件商店 → 企业版插件 → 网站防篡改」，为线上站点开启保护开关。
2. **受保护后缀与目录**：确保 `.php`、`.html`、`.js`、`.sh`、`nginx.conf` 及 `/src`、`/app`、`/templates`、`/includes` 处于锁定状态。
3. **排除动态写入目录**：将用户上传目录（如 `/public/uploads`、`/wp-content/uploads`）和运行缓存目录（如 `/runtime`、`/storage`、`/cache`、`/data`）加入排除名单。
4. **禁止上传目录执行 PHP**：在宝塔「网站设置 → 安全 / 伪静态」中关闭 `uploads` 目录的 PHP 执行权限，彻底堵死“传图变木马”路径。

:::tip 正常更新网站代码时怎么操作？
当站长自己需要升级程序或修改模板时，先在「网站防篡改」面板临时关闭对应站点开关 → 发布代码 → 立即重新开启保护即可，全程只需几秒钟。
:::

## 第三层：系统加固、端口收敛与网站监控报表

1. **修改默认面板入口**：在「面板设置」修改默认 `8888` 端口与安全入口路径；若不慎被挡在门外，可在 SSH 终端输入 `bt` 调出命令行菜单查看或重置。
2. **SSH 防爆破**：开启「宝塔系统加固」中的 SSH 防护策略，连续多次输错密码自动封锁来源 IP，并确保 Redis `6379` 与 MySQL `3306` 端口仅监听 `127.0.0.1` 或限定内网安全组。
3. **每日巡检蜘蛛与异常状态码**：安装「网站监控报表」，每天花 1 分钟查看百度/必应蜘蛛抓取趋势以及是否存在突增的 `404`/`500`/`502` 请求。

## 第四层：配置跨云 OSS / COS 异地自动备份

1. 在阿里云 OSS 或腾讯云 COS 创建私有读写的专用备份存储桶（Bucket），并使用仅限该 Bucket 权限的子账号密钥。
2. 在宝塔「软件商店」配置对象存储插件后，前往「计划任务」分别创建每日凌晨错峰执行的**备份数据库**与**备份网站**任务，备份目标选对象存储，保留最新 14–30 份。

如需一站式解锁上述全部企业版与专业版安全插件，可先阅读[宝塔永久企业版与专业版完全选型指南](/guide/baota-enterprise-complete-guide)或直接前往[授权开通首页](/?from=baota-security-waf-hardening-guide&cta=bottom)绑定服务器公网 IPv4 激活。
