吾爱源码分享论坛

 找回密码
 注册[Register]
查看: 38|回复: 0

宝塔面板开启隐藏的 waf 防火墙的通用方法

[复制链接]
  • TA的每日心情
    开心
    2020-2-15 14:27
  • 87

    主题

    91

    帖子

    295

    爱币

    管理员

    Rank: 12Rank: 12Rank: 12

    积分
    2858

    突出贡献荣誉管理

    发表于 2019-10-26 00:44:54 | 显示全部楼层 |阅读模式
    • 第一:NGINX配置修改
    • 第二:配置规则
    • 第三:总结
    目录  今天配置NGINX,无意中发现了一行代码,额,我一阵激动,默认的宝塔面板是安装了ngx_lua_waf模块的,在5.9版本中面板集成了这个简易waf,所以我们可以在5.9版本的nginx中看到过滤器这个功能,并且可以设置。
      可惜在6.X以后版本中,宝塔面板阉割了很多功能,包括好用的过滤器,等等。但是宝塔面板还是编译了ngx_lua_waf模块,我们今天看看如何在宝塔面板6.X中开启隐藏的nginx防火墙。
      先看看我发现的是什么代码:
    1. http  {
    2.   include       mime.types;
    3.   #include luawaf.conf;
    复制代码

      聪明的你一定发现了什么,对宝塔面板注释了#include luawaf.conf,我们只需要去掉#即可开启隐藏的防火墙。
    第一:NGINX配置修改  1、打开 软件管理 > Nginx > 设置 > 配置修改;
      2、找到大约在第 13 行的 #include luawaf.conf;,去掉前面的 # 符号(“#”代表注释),保存并重启 Nginx。如图:
    bt-panel-luawaf-1.png
      3、恭喜你,已经成功开启了防火墙!可以试着访问 http://你的网址/?id=../etc/passwd,页面会弹出拦截提示,如下图:
    bt-panel-luawaf-2-min.png
    第二:配置规则  既然,已经开启了防火墙,那么规则在哪里?
      打开面板的文件管理,进入 /www/server/nginx/waf 目录,里面的 config.lua 文件就是防火墙的配置文件。每一项的具体含义如下所示:
    1. RulePath = "/www/server/panel/vhost/wafconf/"   --waf 详细规则存放目录(一般无需修改)  attacklog = "on"                                --是否开启攻击日志记录(on 代表开启,off 代表关闭。下同)
    2.   logdir = "/www/wwwlogs/waf/"                    --攻击日志文件存放目录(一般无需修改)
    3.   UrlDeny="on"                                    --是否开启恶意 url 拦截
    4.   Redirect="on"                                   --拦截后是否重定向
    5.   CookieMatch="off"                               --是否开启恶意 Cookie 拦截
    6.   postMatch="off"                                 --是否开启 POST 攻击拦截
    7.   whiteModule="on"                                --是否开启 url 白名单
    8.   black_fileExt={"php","jsp"}                     --文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{"后缀名1","后缀名2","后缀名3"……}
    9.   ipWhitelist={"127.0.0.1"}                       --白名单 IP,如有多个则用英文逗号分隔。如:{"127.0.0.1","127.0.0.2","127.0.0.3"……} 下同
    10.   ipBlocklist={"1.0.0.1"}                         --黑名单 IP
    11.   CCDeny="off"                                    --是否开启 CC 攻击拦截
    12.   CCrate="300/60"                                 --CC 攻击拦截阈值,单位为秒。"300/60" 代表 60 秒内如果同一个 IP 访问了 300 次则拉黑
    复制代码

      配置文件中,RulePath 项对应的文件夹里存放的是具体的拦截规则。打开这个文件夹,可以看到里面有一些无后缀名的规则文件。其中每一个文件的作用如下:
    1. args        --GET 参数拦截规则  blockip     --无作用
    2.   cookie      --Cookie 拦截规则
    3.   denycc      --无作用
    4.   post        --POST 参数拦截规则
    5.   returnhtml  --被拦截后的提示页面(HTML)
    6.   url         --url 拦截规则
    7.   user-agent  --UA 拦截规则
    8.   whiteip     --无作用
    9.   whiteurl    --白名单网址
    复制代码

      这些文件里,除了 returnhtml(拦截提示页面)以外,其它的内容都最好不要改动,除非你正则学的比较好……否则很容易改出问题来。如图:
    bt-panel-luawaf-3-min.png
      如果改动了其中的内容,记得要重启 Nginx 才会生效哦!!!!
    第三:总结  其实这个免费的防火墙就是 ngx_lua_waf。宝塔面板nginx带自编译 ngx_lua_waf web 应用防火墙模块 !其他面板用户,也可以自己安装这个个模块,功能非常强大。
      额,宝塔面板那个收费的防火墙跟这个还是完全不一样的。功能上更加完善,使用起来更加方便。如果你有钱,也可以直接买个收费版,没必要用这个了,而且用起来还挺麻烦的。
      想要折腾下的,赶紧去试试吧,也赶紧用上这个免费的防火墙。
      文章参考:
      https://github.com/loveshell/ngx_lua_waf
      https://www.cnblogs.com/love19791125/p/5114101.html




    上一篇:如何安装PHPCMS
    下一篇:discuz增强后台安全性,仅管理员可以访问后台的方法
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册[Register]

    本版积分规则

    网站地图|小黑屋|吾爱源码分享论坛 ( 鲁ICP备09035195号-1 )

    GMT+8, 2020-2-25 04:44 , Processed in 0.170029 second(s), 29 queries , Gzip On, Redis On.

    Powered by Discuz!

    Copyright © 2019-2020, 吾爱源码分享论坛.

    快速回复 返回顶部 返回列表