雷池(SafeLine)社区版是一款完全免费的 Web 应用防火墙(WAF),核心思路是通过 反向代理模式 接入流量,实现对 SQL 注入、XSS、CC 攻击等常见 Web 威胁的实时防护。
下面是雷池的官方文档
雷池 WAF 帮助文档
在部署前需要检查一下环境,演示就使用虚拟机进行演示,使用方法可以通用到真实的物理机上
一、环境要求
1、系统与资源要求
- 操作系统:Linux
- CPU 指令架构:x86_64, arm64
- CPU 指令架构:x86_64 架构必须支持 ssse3, 推荐支持 avx2指令集
- 软件依赖:Docker 20.10.14 版本以上
- 软件依赖:Docker Compose 2.0.0 版本以上
- 最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘
本文使用的是CentOS7,4核心,8GB内存,20G硬盘
2、网络拓扑(两种主流方式)
waf直接对外
访问链路:外网 ---> waf --->后端 wab 应用
优点:简单,传递真实ip,防护完整
适用于:新部署的环境,独立的服务器
Nginx前置
访问链路:外网 ---> Nginx ---> waf --->后端 web 应用
优点:保留Nginx的静态缓存/多域名管理/SSL证书统一管理
适用于:已经部署过的(Nginx)项目
本文就直接演示waf直接对外的安装方式,SafeLine 的安装需要借助 docker ,推荐读者自行先在目标机上安装docker,让Safeline跳过docker的安装,因为SafeLine自动安装docker比较慢
二、安装
1、自动安装
下面这个命令可以让雷池自动安装
bash
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"
如果没有安装 python3 会进行提示,安装即可

如果命令执行成功会出现下面的提示:

选择对应步骤即可,后面的步骤也是中文提示的,这里就不做过多演示了
后续也可以执行这个命令来更新,卸载修复和重启SafeLine
当安装完成后会显示下面的页面

能够访问到对应的后台页面,即安装成功
2、手动安装
手动安装对比自动安装多了许多可控点,但也多了一些麻烦,接下来演示一下
手动安装需要先准备docker compose安装
1、创建SafeLine工作目录
bash
mkdir -p "/data/safeline"
需要保证 /data/safeline 目录至少有5GB空间,如果流量比较大还需要更多的空间
2、下载docker-compose编排脚本并配置环境变量
使用下面的命令获取到 docker-compose 的脚本文件
bash
cd "/data/safeline"
wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml"
使用下面的命令创建.env文件
bash
touch .env
使用文本编辑器写入以下内容
yaml
SAFELINE_DIR=/data/safeline
IMAGE_TAG=latest
MGT_PORT=9443 #端口号
POSTGRES_PASSWORD=yourpassword #-------(自定义密码使用数字+英文大小写组合,勿使用特殊字符)
SUBNET_PREFIX=172.22.222
IMAGE_PREFIX=swr.cn-east-3.myhuaweicloud.com/chaitin-safeline
ARCH_SUFFIX=
RELEASE=
REGION=
MGT_PROXY=0
配置文件的格式如下:
- SAFELINE_DIR : 雷池安装目录,如
/data/safeline - IMAGE_TAG : 要安装的雷池版本,保持默认的
latest即可 - MGT_PORT : 雷池控制台的端口,保持默认的
9443即可 - POSTGRES_PASSWORD: 雷池所需数据库的初始化密码,请随机生成一个
- SUBNET_PREFIX : 雷池内部网络的网段,保持默认的
172.22.222即可 - IMAGE_PREFIX: 雷池镜像源的前缀,建议根据服务器地理位置选择合适的源
- ARCH_SUFFIX : 雷池架构的后缀,ARM 服务器需要配置为
-arm - RELEASE : 更新通道,LTS 版本需要配置为
-lts - MGT_PROXY: 控制台代理层数,只有在为控制台配置代理时使用,默认为 0 不配置代理
需要特别注意以下几点:
如果是ARM服务器,则需要把ARCH_SUFFIX改成-arm
env
ARCH_SUFFIX=-arm
如果需要安装LTS版本则需要把RELEASE改成-lts
env
RELEASE=-lts
最后使用docker启动即可
bash
docker compose up -d
运行成功不会弹出提示,使用docker ps 查看,访问对应后台端口,查看,如果显示如下界面,则安装完成:

按照指示登录之后就可以使用了
三、SafeLine的基本使用
因为文章是写的这篇文章的前导文章,所以,本文不会过多的演示如何使用,具体使用方法请参考官方文档,下面使用另外一台部署了 sqliabs 的服务器作为 web 应用来保护
需要保护的web应用基本信息:
- ip地址: 192.168.170.96
- 端口号: 1024
接下来进行配置


然后我们可以访问waf的地址,实现waf对网站的安全防护

注意,如果不通过waf使用原本 web应用的地址访问,则没有waf的保护
接下来使用 sql注入语句 测试一下

会发现访问被拦截,waf的基本使用和安装也就完成了
如果有错误欢迎读者在评论区指出,同时欢迎访问博主的个人博客网站
AZERL的博客