【说站】宝塔面板如何添加免费的waf防火墙?

2022-11-24 17:50:59 浏览数 (1)

目前除了用付费的宝塔防火墙插件之外,其实还有两种方式可以使用免费的Nginx防火墙功能:一个是可以在面板插件里面搜索“防火墙”可以找到第三方的免费防火墙插件,登陆面板安装就可以使用。还有一种方式是开启被隐藏的nginx防火墙模块,下面重点讲下如何开启隐藏的防火墙。

默认的宝塔面板是安装了ngx_lua_waf模块的,在5.9版本中面板集成了这个简易waf防火墙,所以我们可以在5.9版本的nginx中看到过滤器这个功能,并且可以设置。

在宝塔面板后期的版本6.X、7.X中,阉割了很多功能,但宝塔面板还是编译了ngx_lua_waf模块,品自行今天主要说一下如何在宝塔面板7.8.0中开启隐藏的nginx防火墙waf防火墙。

第一步:Nginx配置修改

1、打开宝塔面板,打开左侧“软件商店”,在“已安装”下面找到Nginx,点击后面的“设置”》“配置修改”;

2、找到大约在第 25 行的 #include luawaf.conf;去掉前面的 # 符号(“#”代表注释),保存。如图:

3、保存以后,在上图的Nginx管理里面,选择“服务”重启即可;

4、上面更改完,我们就成功开启了waf防火墙!可以试着访问 http://你的网址/?id=../etc/passwd,页面会弹出以下拦截提示:

第二步:配置waf防火墙规则

waf防火墙开启以后,我们还需要配置防火墙规则,那么规则在哪里?

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

代码语言:javascript复制
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 项后面对应的文件目录里存放的是具体的防火墙拦截规则。打开这个文件夹/www/server/panel/vhost/wafconf/,可以看到里面有一些无后缀名的规则文件。其中每一个文件的作用如下:

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

配置文件中除 returnhtml(拦截提示页面)以外,其它的内容都是正则规则的,除非对正则规则的写法比较熟悉,否则就不要随便更改。如图:

完成上述修改后,我们重启Nginx就完成了waf防火墙的开启。

收藏 | 0点赞 | 0打赏

0 人点赞