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

Here we go!
1、进入宝塔面板,打开 软件管理 > Nginx > 设置 > 配置修改
;
2、找到大约在第 13 行的 #include luawaf.conf;
,去掉前面的 #
符号(“#”代表注释),保存并重启 Nginx。
3、恭喜你,已经成功开启了防火墙!可以试着访问
http://你的网址/?id=../etc/passwd
,页面会弹出拦截提示,如下图:
那么问题来了:该怎么自定义这个防火墙的防护规则呢?别急,请跟我一起来!
还是在宝塔面板里头,打开面板的文件管理,进入 /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"} --黑名单 IPCCDeny="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
(拦截提示页面)以外,其它的内容都最好不要改动,除非你正则学的比较好……否则很容易改出问题来。
如果改动了其中的内容,记得要重启 Nginx 才会生效哦~
后记
1、其实这个“免费”的防火墙就是大名鼎鼎的 ngx_lua_waf
。非宝塔面板用户也可以自己动手安装。详情请参阅:https://github.com/loveshell/ngx_lua_waf
2、宝塔面板那个收费的防火墙跟这个还是完全不一样的。功能上更加完善,使用起来更加方便。如果你有钱,也可以直接买个收费版~
3、[AD] 宝塔面板当前正在搞活动,如果想要购买专业版的宝塔面板,可以 点我 领取专属优惠券!
参考资料
[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
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/10360.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~