Linux 宝塔面板免费版开启 waf 防火墙的方法

mengkun 31K 43
补充说明

当前宝塔面板的应用商店中已经上线了“Nginx免费防火墙”,可以免费安装使用,功能更强大!
本文章内所述方法不再建议使用。仅留作存档。

宝塔面板在 6.x 之前的版本中自带了 Nginx 防火墙功能(Nginx管理 > 过滤器),到了 6.x 之后,,,为了推行收费版的防火墙插件,宝塔官方把这个免费的防火墙入口给隐藏了。[aru_19]今天,就来说说如何开启这个隐藏的 Nginx 防火墙![aru_129]

警告:以下内容在改动前一定要备份原文件!否则……[aru_3]

Here we go! [aru_47]

1、进入宝塔面板,打开 软件管理 > Nginx > 设置 > 配置修改

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

3、恭喜你,已经成功开启了防火墙![aru_50]可以试着访问 http://你的网址/?id=../etc/passwd,页面会弹出拦截提示,如下图:

Linux 宝塔面板免费版开启 waf 防火墙的方法

那么问题来了:该怎么自定义这个防火墙的防护规则呢?[aru_27]别急,请跟我一起来![aru_48]

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

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

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

args        --GET 参数拦截规则
blockip     --无作用
cookie      --Cookie 拦截规则
denycc      --无作用
post        --POST 参数拦截规则
returnhtml  --被拦截后的提示页面(HTML)
url         --url 拦截规则
user-agent  --UA 拦截规则
whiteip     --无作用
whiteurl    --白名单网址

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

如果改动了其中的内容,记得要重启 Nginx 才会生效哦~

后记

1、其实这个“免费”的防火墙就是大名鼎鼎的 ngx_lua_waf。非宝塔面板用户也可以自己动手安装。详情请参阅:https://github.com/loveshell/ngx_lua_waf

2、宝塔面板那个收费的防火墙跟这个还是完全不一样的。功能上更加完善,使用起来更加方便。如果你有钱,也可以直接买个收费版~[aru_67]

3、[AD] 宝塔面板当前正在搞活动,如果想要购买专业版的宝塔面板,可以 点我 领取专属优惠券![aru_22]

参考资料

[1]基于 ngx_lua 的 web 应用防火墙.loveshell.https://github.com/loveshell/ngx_lua_waf

[2].安装nginx+ngx_lua支持WAF防护功能.love19791125.https://www.cnblogs.com/love19791125/p/5114101.html

发表评论 取消回复
表情 图片 链接 代码

  1. 11
    11 Lv 1

    报错了呜呜 nginx: [emerg] CreateFile() "C:\BtSoft\nginx/conf/luawaf.conf" failed (2: The system cannot find the file specified) in C:\BtSoft\nginx/conf/nginx.conf:10 nginx: configuration file C:\BtSoft\nginx/conf/nginx.conf test failed

  2. 晗雅星空
    晗雅星空 Lv 1

    老哥,推荐一个vps,或者你的网站用的什么vps?我的用景安的免费的,图片加载太慢,而且没法发外挂和酸酸奶,头疼[aru_15]

    • mengkun
      mengkun 站长

      @晗雅星空国内的服务器/域名都不能发非法内容,否则会被请喝茶。

      我用的是腾讯云服务器(1H1G1M)。现在刚好有活动很便宜,有需要可以入手。地址: http://t.cn/AiQKjDso

  3. 2470756008
    2470756008 Lv 1

    膜拜大佬[aru_18][aru_18]

  4. 孟垂博
    孟垂博 Lv 1

    留个言,问一下你也是姓孟吗

  5. 疆飞
    疆飞 Lv 2

    为此 我买了永久授权,辣么问题又来了!怎么开启防篡改呢!?

  6. 承诺
    承诺 Lv 1

    查看图片
    老哥,这个开关和配置在这里,也不需要收费[aru_61]

    • mengkun
      mengkun 站长

      @承诺请仔细阅读文章第一句话……[aru_39]

      • 承诺
        承诺 Lv 1

        @mengkun噢买尬!才发现我用的还是5.9[aru_61]

  7. 台庄资讯
    台庄资讯 Lv 1

    膜拜大佬![aru_27]

  8. 完美者
    完美者 Lv 5

    66那个问题好了没?

    • key
      key Lv 1

      @完美者bt本来就有免费的waf提供[aru_1]

  9. 明月清风
    明月清风 Lv 4

    本身看到这片文章正准备问一下那个url白名单的正则的,结果孟大佬,来了一句不懂最好不要乱动。

    • mengkun
      mengkun 站长

      @明月清风默认的规则已经比较完善了,所以不建议改动[aru_125]

      • 明月清风
        明月清风 Lv 4

        @mengkun是上次开了post之后,上传附件会被抓

      • mengkun
        mengkun 站长

        @明月清风打开 POST 规则,删除这行,保存,并重启 Nginx 试试
        查看图片

      • 明月清风
        明月清风 Lv 4

        @mengkun还是500

      • mengkun
        mengkun 站长

        @明月清风/www/wwwlogs/waf 里日志文件的末尾有记录触发了哪条规则,删掉对应的规则即可

  10. Langlangago
    Langlangago Lv 1

    GitHub下载加速什么时候才能恢复呢?@mengkun[aru_12]

    • mengkun
      mengkun 站长

      @Langlangago用于转发的服务器被封了[aru_15]可能无法恢复了

      • 365cent
        365cent Lv 3

        @mengkun在这里粘贴你的下载链接就行了http://proxy.qnid.cc

      • mengkun
        mengkun 站长

        @365cent[强][强][强]已换上

  11. 何敏杰
    何敏杰 Lv 1

    网站风格不错,有很多地方值得借鉴[aru_3][aru_3]

  12. Smile
    Smile Lv 1

    忽然发现你首页改版了

    • mengkun
      mengkun 站长

      @Smile换个排版,换种心情[wb_并不简单]

      • 完美者
        完美者 Lv 5

        @mengkun又换回来了,说明换的不满意

  13. 沈唁志
    沈唁志 Lv 1

    测试了一下,[aru_1]

  14. Tomyoy
    Tomyoy Lv 2

    可以参考一下这个,宝塔5.9.1专业版免费开启的办法
    https://****.net/bt.html

    • mengkun
      mengkun 站长

      @Tomyoy这个太内个啥了,给你打个码#(挖鼻)

      • Tomoyo
        Tomoyo Lv 2

        @mengkun对不起我错了,下次不敢了[aru_2]

      • mengkun
        mengkun 站长

        @Tomoyo没事没事[wb_dog13]

  15. 杨小杰博客
    杨小杰博客 Lv 3

    这都被你发现了

  16. 完美者
    完美者 Lv 5

    不敢试

  17. 龙笑天
    龙笑天 Lv 3

    [aru_17] 果断把你的跳转页面扣走~

    • mengkun
      mengkun 站长

      @龙笑天收好…… http://sc.chinaz.com/jiaoben/160704178190.htm

      • 龙笑天
        龙笑天 Lv 3

        @mengkun[aru_2] 另一个页面~

  18. Meayair
    Meayair Lv 1

    最近忙不,我这有一个教育平台开发的项目,有没有时间接?

    • mengkun
      mengkun 站长

      @Meayair暂时没时间[wb_二哈]

  19. 惶心
    惶心 Lv 2

    另外宝塔面板虽然有一定的便利性,但是 Bug 巨多,之前就发生过在我生产环境下出现 Bug 然后全线 SSL down 掉的情况

    • mengkun
      mengkun 站长

      @惶心面板只是一个工具,起辅助作用而已。因为各种服务器环境太复杂,出点问题也正常#(滑稽)

  20. 惶心
    惶心 Lv 2

    孟坤好久不见;刚刚用香港的流量中继服务打不开你的站点,感觉可能是国内服务器线路问题,可以在海外加个 Cloudflare

    • mengkun
      mengkun 站长

      @惶心何止是海外,我自己都经常打不开[aru_1]

分享