雷池WAF的安装及配置教程

此处默认你有一定的Linux使用基础,一些基础命令不再详细说明,如果你看不懂部署环节,说明你基本上不适合使用这款防火墙

官方文档:雷池简介 | 雷池 WAF 社区版

其余参考文献:
Nginx配置文件详解 - 程序员自由之路 - 博客园

权威参考: Strict-Transport-Security - HTTP | MDN (mozilla.org)


本机系统:Ubuntu server 22.04 BBR
2cores+2GB RAM+20GB disk
首先,雷池是基于docker-compose的,如果是全新系统也无妨,一键安装即可

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

image

写目录时末尾不需要加/

安装完成后访问你的服务器ip:9443即可进入后台

由于使用自签名证书,所以无视ssl提示直接进入即可
绑定好动态密钥后,即可进入后台
可以使用谷歌身份验证器,或者微软的验证器都可以,FteeOTP+也可以

在通用设置-其他中勾选强制HTTPS(即HSTS),强制使用HTTP/2(默认为1.1),传递客户端连接的 host 和协议(方便上游服务器)

在添加站点时,雷池的配置方式大致分为两部分

image

上部分是配置雷池的,域名即网站访问时用的域名,端口即WAF需要监听哪个端口
eg:要给 https://www.biliwind.com 接入雷池防火墙,那么域名填写 www.biliwind.com 端口填写443并勾选“SSL”
要给 http://example.com 接入雷池防火墙,那么域名填写 example.com 端口填写80
区别在于使用80端口时是http协议,使用443端口时是https协议

特例:如果当前部署WAF的服务器封80/443,你选择监听180/1443作为http/https端口,那么需要域名填写为 example.com 端口填写为180,这是需要通过 http://example.com:180 来访问,同时,你也可以同时监听两个端口的访问,即再添加一个端口

image

此时,无论http还是https均可访问,此时就可以实现先http访问,之后由服务器301至https连接

当WAF在使用CDN时

image

在通用设置-其他中,将源 IP 获取方式改为“从 HTTP Header 中获取” 并且在下方填写X-Real-IP后,点击此模块下方的“保存”按钮

随后在通用设置-IP组中放通 CDN IP

之后需要在防护配置-黑白名单中新建一个规则并进行如下设置

建议将语义分析全部改为“高强度防护”

可以在对应页面的右上角快速批量设置

因为有人反映在平衡防护模式下某些目录穿透(/index.php?=.////…////…////…////bin//bash)请求无法被拦截

高级配置方法

如果需要用到HSTS,那你不得不通过配置文件来更改一些参数

vim /server/safeline/resources/nginx/nginx.conf

编辑nginx主配置文件(需根据你的实际选择来寻找配置文件,我先前设置的安装目录为“/server/safeline”)

image

出于安全性和过检测考虑,删除这里的“TLSv1”

虽说WAF也有抗攻击的作用,但还是配置一下防扫ip比较好

image

先随便新建一个站点,必须选择使用SSL,和一个非SSL端口,证书选择一个特殊证书

image

ok啊证书自己找吧,我传不上来

之后修改已添加的站点配置

这里的IF_backend_2要根据实际情况修改,IF_backend_x,x就是你第几个创建用于防扫描站点的

vim /server/safeline/resources/nginx/sites-enabled/IF_backend_2

将第一个server这里的域名改成一个下划线

image

下面的443端口同理

image

并分别添加/修改为return 444

image

然后重启一下这个容器即可