此处默认你有一定的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)"
写目录时末尾不需要加/
安装完成后访问你的服务器ip:9443即可进入后台
由于使用自签名证书,所以无视ssl提示直接进入即可
绑定好动态密钥后,即可进入后台
可以使用谷歌身份验证器,或者微软的验证器都可以,FteeOTP+也可以
在通用设置-其他中勾选强制HTTPS(即HSTS),强制使用HTTP/2(默认为1.1),传递客户端连接的 host 和协议(方便上游服务器)
在添加站点时,雷池的配置方式大致分为两部分
上部分是配置雷池的,域名即网站访问时用的域名,端口即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 来访问,同时,你也可以同时监听两个端口的访问,即再添加一个端口
此时,无论http还是https均可访问,此时就可以实现先http访问,之后由服务器301至https连接
当WAF在使用CDN时
在通用设置-其他中,将源 IP 获取方式改为“从 HTTP Header 中获取” 并且在下方填写X-Real-IP
后,点击此模块下方的“保存”按钮
随后在通用设置-IP组中放通 CDN IP
之后需要在防护配置-黑白名单中新建一个规则并进行如下设置
建议将语义分析全部改为“高强度防护”
可以在对应页面的右上角快速批量设置
因为有人反映在平衡防护模式下某些目录穿透(/index.php?=.////…////…////…////bin//bash)请求无法被拦截
高级配置方法
如果需要用到HSTS,那你不得不通过配置文件来更改一些参数
vim /server/safeline/resources/nginx/nginx.conf
编辑nginx主配置文件(需根据你的实际选择来寻找配置文件,我先前设置的安装目录为“/server/safeline”)
出于安全性和过检测考虑,删除这里的“TLSv1”
虽说WAF也有抗攻击的作用,但还是配置一下防扫ip比较好
先随便新建一个站点,必须选择使用SSL,和一个非SSL端口,证书选择一个特殊证书
ok啊证书自己找吧,我传不上来
之后修改已添加的站点配置
这里的IF_backend_2要根据实际情况修改,IF_backend_x,x就是你第几个创建用于防扫描站点的
vim /server/safeline/resources/nginx/sites-enabled/IF_backend_2
将第一个server这里的域名改成一个下划线
下面的443端口同理
并分别添加/修改为return 444
然后重启一下这个容器即可