这篇文章完全是偶然间生产出的 出于官方论坛上的一个提问

虽然互联网上很大大佬博客已经公开了这个方案 但是不知道的还是不知道 所以我发出来

以下全部照搬  我把废话剔除 只留着有用的 一针见血

现在由于有了宝塔开心版 这个免费的防火墙毕竟功能有限我们可以用宝塔的企业版里面的Nginx防火墙 功能那叫一个强大 而且是免费白嫖 何乐而不为 如果不想绑定账号也可以使用宝塔开心版 这个已经非常成熟 博主已用于生产环境 无风险点击获取

默认的宝塔面板是安装了ngx_lua_waf模块(nginx简易版web防火墙)的,在5.9版本中面板集成了这个简易waf,所以我们可以在5.9版本的nginx中看到过滤器这个功能,并且可以设置。可惜在新版本 6.X版本中,宝塔面板阉割了这个好用的过滤器。但是宝塔面板还是编译了ngx_lua_waf模块,今天研究下 如何在宝塔面板6.X中开启隐藏的nginx防火墙。 本文系精华博文

打开 软件管理 > Nginx > 设置 > 配置修改;

找到大约在第 13 行的 #include luawaf.conf;,去掉前面的 # 符号(“#”代表注释),保存并重启 Nginx。

其实到这里已经开启了 具体的访问一个有问题的链接 出现拦截说明开启成功 下面还需要配置 具体就一个文件 里面很多参数

打开面板的文件管理,进入 /www/server/nginx/waf 目录,里面的 config.lua 文件就是防火墙的配置文件。每一项的具体含义如下所示:

  1. RulePath = "/www/server/panel/vhost/wafconf/" --waf 详细规则存放目录(一般无需修改)
  2. attacklog = "on" --是否开启攻击日志记录(on 代表开启,off 代表关闭。下同)
  3. logdir = "/www/wwwlogs/waf/" --攻击日志文件存放目录(一般无需修改)
  4. UrlDeny="on" --是否开启恶意 url 拦截
  5. Redirect="on" --拦截后是否重定向
  6. CookieMatch="off" --是否开启恶意 Cookie 拦截
  7. postMatch="off" --是否开启 POST 攻击拦截
  8. whiteModule="on" --是否开启 url 白名单
  9. black_fileExt={"PHP","jsp"} --文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{"后缀名1","后缀名2","后缀名3"……}
  10. ipWhitelist={"127.0.0.1"} --白名单 IP,如有多个则用英文逗号分隔。如:{"127.0.0.1","127.0.0.2","127.0.0.3"……} 下同
  11. ipBlocklist={"1.0.0.1"} --黑名单 IP
  12. CCDeny="off" --是否开启 CC 攻击拦截
  13. CCrate="300/60" --CC 攻击拦截阈值,单位为秒。"300/60" 代表 60 秒内如果同一个 IP 访问了 300 次则拉黑

配置文件中,RulePath 项对应的文件夹里存放的是具体的拦截规则。打开这个文件夹,可以看到里面有一些无后缀名的规则文件。其中每一个文件的作用如下:

  1. args --GET 参数拦截规则
  2. blockip --无作用
  3. cookie --Cookie 拦截规则
  4. denycc --无作用
  5. post --POST 参数拦截规则
  6. returnhtml --被拦截后的提示页面(HTML
  7. url --url 拦截规则
  8. user-agent --UA 拦截规则
  9. whiteip --无作用
  10. whiteurl --白名单网址

这些文件里,除了 returnhtml(拦截提示页面)以外,其它的内容都最好不要改动,除非你正则学的比较好……否则很容易改出问题来。

改完记得重启nginx

就这么多 自己看吧   更专业的自己搜索

参考资料

BT面板6 nginx过滤器 include luawaf.conf

www.daniao.org/3900.html

mkblog.cn/1793/

www.think3.cc/?id=9

 

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。