如果你的做网站用的是NGINX配置服务器的,那默认的宝塔面板NGINX服务器,是安装了ngx_lua_waf模块的,NGINX面板集成了这个简易waf,所以我们可以在nginx中看到过滤器这个功能,并且可以设置。
宝塔面板阉割了很多功能,包括好用的过滤器等等。但是宝塔面板还是编译了ngx_lua_waf模块,下面来介绍下开启隐藏的nginx防火墙。
第一:NGINX配置修改
1、打开
软件管理 > Nginx > 设置 > 配置修改
2、找到大约在第 17 行左右的,如下:
#include luawaf.conf;
去掉前面的 # 符号(“#”代表注释),保存并重启 Nginx。如图:
以上截图是去掉了#号,然后可以测试下:http://你的网址/?cid=../etc/username,页面会弹出拦截提示,如下图:
第二:配置规则
如果已经开启了防火墙,那么规则在哪里?
打开面板的文件管理,进入 /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 才会生效哦!!!!如果设置以上操作后,进行网站添加资料时失败的话,请把以上设置取消掉即可,或者再加上#号,如#include luawaf.conf。