Nginx防火墙需先安装插件(仅专业版支持),再从首页底部盾牌图标进入,开启全局防护、启用扫描类规则并设为“拦截”,配置自动封禁(如5次/24小时),手动补充正则URL规则并验证日志拦截效果。

确认 Nginx 防火墙插件已安装并可访问
宝塔面板本身不自带 Web 层防火墙,Nginx 防火墙 是一个独立插件,没装就完全起不了作用——很多用户卡在这一步,反复点“开启”却毫无反应,其实是因为插件压根没装上。
- 进宝塔 → 左侧「软件商店」→ 搜索
Nginx防火墙→ 看状态是不是「已安装」;如果不是,先点安装(注意:仅专业版支持,免费版会提示不可用) - 安装完成后,别从「网站」或「安全」页找入口,要回到首页,在左侧菜单底部找图标(通常标着「Nginx 防火墙」或盾牌符号),点击进入才是正路
- 如果菜单里根本看不到这个图标,说明安装失败或版本不匹配,此时执行
bt 18命令手动检查插件状态,或重装插件
打开全局防护开关并启用扫描识别规则
插件装好了,但默认是关闭状态,所有规则都不生效。所谓“防扫描”,核心就是靠它对 Nginx 日志里高频异常路径(比如 /wp-admin/、/phpmyadmin/、/.git/)的实时匹配和拦截。
- 进入插件主界面,顶部右侧有个大开关,显示「关闭」就点一下,变成蓝色「已开启」才算激活
- 点左侧「规则管理」→ 找到名称含「扫描」的规则,例如
防目录扫描、防SQL注入扫描,确保它们右侧的开关是开启的,且动作设为「拦截」,不是「记录」 - 特别注意:
记录模式只会写日志,不会阻断请求,看起来像开了实则白开;生产环境必须选「拦截」
配置自动封禁 IP 的触发条件
单次扫描拦住没用,真正的恶意行为是持续试探。自动封禁机制能让同一个 IP 在短时间触发多次扫描规则后,直接拉黑 24 小时,大幅降低后续攻击压力。
- 左侧点「黑名单设置」→ 勾选「开启自动封禁」
-
单位时间内触发次数建议设为5(太低容易误伤爬虫,太高失去意义) -
封禁时长推荐填86400(即 24 小时),避免永久封禁导致运维疏漏 - 保存后页面下方应出现「自动封禁策略已激活」提示,否则说明配置未写入成功,需检查插件权限或重启 Nginx
手动补充高危路径规则防绕过
默认规则覆盖常见 CMS 路径,但新型扫描器常换路径绕过,比如扫 /api/debug 或 /test/env.php,这时候就得自己加规则补漏。
- 在「规则管理」里点「添加规则」→ 类型选「URL 过滤」
- 匹配模式填正则,例如
^/.*\.(env|bak|swp|git)$可挡常见备份文件泄露路径 - 动作选「拦截」,优先级建议调高(数字小优先级高),避免被其他规则覆盖
- 别一股脑加几十条,每条都要验证:改完点「测试规则」,再用 curl 模拟请求看是否真拦截,否则可能因语法错误导致整条规则失效
/www/wwwlogs/xxx.log 里有没有拦截记录,也不确认 Nginx 错误日志里是否有 lua filter 相关报错——没日志,等于没防护。

















