从零搭建雷池WAF:环境配置、安装部署与Web防护实战
在Web安全领域,WAF(Web应用防火墙)是抵御SQL注入、XSS、文件上传等攻击的关键防线。雷池(SafeLine)作为一款开源且易用的WAF工具,能有效保护Web服务安全。本文将从环境检查、雷池安装、Web服务搭建到防护验证,手把手教你完成雷池WAF的全流程部署,适用于Linux新手及运维人员。
一、环境依赖检查:确保系统符合部署要求
在安装雷池前,必须先验证服务器环境是否满足条件,避免后续安装报错。以下是详细的检查步骤和命令,建议逐一执行并记录结果。
1.1 核心环境要求
检查项 | 最低要求 | 推荐配置 |
---|---|---|
操作系统 | Linux(CentOS 7+/Ubuntu 20.04+) | CentOS 7.9 / Ubuntu 22.04 |
CPU架构 | x86_64 或 arm64 | x86_64(支持avx2指令集) |
CPU指令集(x86_64) | 必须支持 ssse3 | 支持 avx2(性能更优) |
Docker版本 | 20.10.14 及以上 | 24.0.0+ |
Docker Compose版本 | 2.0.0 及以上 | 2.20.0+ |
资源需求 | 1核CPU / 1GB内存 / 5GB磁盘 | 2核CPU / 4GB内存 / 20GB磁盘 |
1.2 环境检查命令(附结果解读)
通过以下Linux命令查看系统信息,若某项不满足需先修复(如升级Docker、更换服务器等):
检查目的 | 执行命令 | 结果解读 |
---|---|---|
查看CPU架构 | uname -m |
输出 x86_64 或 aarch64 (对应arm64)为正常 |
查看CPU核心数 | `cat /proc/cpuinfo | grep "processor" |
验证ssse3指令集(必选) | `lscpu | grep ssse3` |
验证avx2指令集(推荐) | `lscpu | grep avx2` |
查看Docker版本 | docker version |
需显示 Version: 20.10.14 及以上;无Docker需先安装 |
查看Docker Compose版本 | docker compose version 或 docker-compose version |
需显示 v2.0.0 及以上;版本低需执行 sudo pip install --upgrade docker-compose 升级 |
查看内存信息 | free -h |
需 available 列≥1GB;内存不足可关闭无用服务或升级配置 |
查看磁盘信息 | df -h |
选择剩余空间≥5GB的分区(推荐/var或/data目录) |
二、雷池WAF安装:3种方式任选(新手推荐自动安装)
雷池提供自动安装、手动安装、离线安装三种方式,可根据服务器联网状态和个人技术水平选择。本文重点讲解新手友好的自动安装,手动/离线安装可参考官方文档。
2.1 自动安装:一条命令搞定(推荐新手)
自动安装会自动检测环境、拉取镜像、配置服务,全程约3分钟,无需手动干预。
执行安装命令
在Linux终端输入以下命令(若提示curl: command not found
,需先执行yum install curl
或apt install curl
安装curl):
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"
重复执行两次,若还是不行,则手动安装Docker
安装成功判断
若终端输出类似“雷池WAF安装完成,可访问控制台”的提示,且无error
或failed
字样,则代表安装成功。
常见报错处理
- 报错1:
Docker version too low
→ 升级Docker(参考Docker官方文档); - 报错2:
Network error
→ 检查服务器联网状态,或重复执行安装命令(网络波动导致镜像拉取失败); - 报错3:
Permission denied
→ 给当前用户Docker权限(sudo usermod -aG docker $USER
),重启终端后重试。
2.2 手动安装/离线安装(进阶用户)
- 手动安装:适合熟悉Docker的用户,需手动下载
docker-compose.yml
文件,修改配置(如端口、存储路径)后执行docker compose up -d
启动服务; - 离线安装:适合无联网环境,需先在有网机器下载离线安装包(雷池官方下载页),传输到目标服务器后解压执行
./install.sh
。
三、雷池控制台登录:获取管理员账号密码
安装成功后,需先获取管理员账号密码,才能登录雷池控制台进行防护配置。
3.1 自动初始化账号(首次安装)
雷池首次安装会自动初始化admin
账号,若终端未显示密码,需手动执行以下命令重置密码:
docker exec safeline-mgt resetadmin
3.2 查看账号密码
执行命令后,终端会输出类似以下内容,记录Initial username
和Initial password
(密码为随机字符串,建议保存到记事本):
[SafeLine] Initial username:admin
[SafeLine] Initial password:Xx123456!
[SafeLine] Done
四、访问雷池控制台:配置端口与浏览器访问
雷池控制台默认通过HTTPS
协议和9443
端口访问,需先确保服务器放行9443
端口,再通过浏览器登录。
4.1 放行9443端口(关键步骤)
若服务器开启了防火墙(如firewalld、ufw),需先放行9443
端口,否则无法访问控制台:
- CentOS/RHEL系统(firewalld):
firewall-cmd --add-port=9443/tcp --permanent # 永久放行9443端口 firewall-cmd --reload # 重新加载防火墙规则
- Ubuntu/Debian系统(ufw):
ufw allow 9443/tcp # 放行9443端口 ufw reload # 重新加载防火墙
4.2 端口冲突处理
若9443
端口被其他服务占用(访问时提示“无法连接”),需修改雷池端口:
- 进入雷池安装目录(默认
/safeline
):cd /safeline
; - 编辑
docker-compose.yml
文件:vim docker-compose.yml
; - 找到
ports
配置项,将9443:443
改为自定义端口:443
(如9444:443
); - 重启雷池服务:
docker compose down && docker compose up -d
。
4.3 登录控制台
- 打开本地浏览器(推荐Chrome、Edge),输入地址:
https://雷池服务器IP:9443
(如https://192.168.110.99:9443
); - 首次访问会提示“证书不安全”(雷池使用自签证书),点击“高级”→“继续访问”(生产环境建议替换为CA证书);
- 输入步骤3.2获取的
admin
账号和密码,点击“登录”,进入雷池控制台首页。
五、实战:搭建Web服务并配置雷池防护
为验证雷池防护效果,我们先在另一台服务器(本文用192.168.110.100
)搭建简单Web服务,再通过雷池配置防护规则,最后测试防护效果。
5.1 搭建Web服务(CentOS 7为例)
步骤1:配置yum源(加速软件安装)
# 备份默认yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里云CentOS 7 yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理并生成缓存
yum clean all && yum makecache
步骤2:安装并启动httpd服务
# 安装httpd(Apache)
yum install httpd -y
# 启动httpd服务
systemctl start httpd
# 设置开机自启(可选)
systemctl enable httpd
步骤3:创建Web页面
# 进入httpd默认网站根目录
cd /var/www/html
# 创建index.html文件(自定义Web内容)
vim index.html
在index.html
中写入以下内容(简单测试页面):
<!DOCTYPE html>
<html>
<head><title>测试Web服务</title><meta charset="utf-8">
</head>
<body><h1>Hello, 雷池WAF防护测试页!</h1><p>服务器IP:192.168.110.100</p>
</body>
</html>
保存退出(按Esc
,输入:wq
)。
步骤4:放行80端口(Web服务默认端口)
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
验证Web服务
一下页面的代码是我豆包生成的,所以你们只需要显示有内容就行,不一定要和我一致,下同
在本地浏览器访问http://192.168.110.100
,若能看到“测试Web服务”页面,则Web服务搭建成功。
5.2 雷池防护配置:添加Web服务保护
登录雷池控制台后,需将搭建好的Web服务(192.168.110.100:80
)添加到雷池防护中,具体步骤如下:
步骤1:进入“网站管理”页面
登录雷池控制台后,点击左侧菜单栏「防护应用」→ 右上角「添加应用」。
步骤2:填写网站信息
- 网站域名/IP:输入Web服务的IP(
192.168.110.100
); - 服务器地址:默认与“网站域名/IP”一致(若Web服务在其他服务器,需填写实际IP);
- 端口:填写Web服务端口(
81
,HTTP协议),前面提示80端口被占用我们就换81; - 其他配置:默认即可(高级用户可配置HTTPS、缓存等);
- 点击「保存」,完成网站添加。
步骤3:配置防护规则(默认开启基础防护)
雷池默认开启SQL注入、XSS、命令注入等基础防护规则,无需手动配置。若需自定义规则(如放行特定IP、屏蔽特定URL),可在「防护规则」页面调整。
六、防护效果验证:测试攻击拦截与日志查看
配置完成后,需测试雷池是否能正常拦截恶意请求,同时查看防护日志确认效果。
6.1 测试1:正常访问Web服务
通过雷池代理访问Web服务:在浏览器输入http://雷池服务器IP:自定义端口
(本文雷池服务器IP为192.168.110.99
,自定义端口为81
),即http://192.168.110.99:81
。
预期结果:能正常显示Web页面(与直接访问192.168.110.100
一致),说明雷池代理正常。
6.2 测试2:恶意请求拦截(SQL注入测试)
在浏览器地址栏输入恶意请求(模拟SQL注入):
http://192.168.110.99:81/?id=1' or '1'='1
预期结果:页面提示“请求被拦截”(雷池触发SQL注入防护规则),说明防护生效。
6.3 查看防护日志与统计
- 登录雷池控制台,点击左侧菜单栏「日志中心」→「防护日志」,可查看被拦截的恶意请求详情(包括请求IP、URL、攻击类型、拦截时间);
- 点击「仪表盘」,可查看实时防护统计(如拦截次数、攻击类型分布、Top攻击IP),本文测试后可看到“SQL注入”类型的拦截记录。
这里就不过多演示了,很多功能要授权才行,懂得读懂哈哈哈
七、总结与注意事项
- 环境检查是前提:务必确保CPU支持ssse3、Docker版本达标,否则会导致安装失败或防护性能下降;
- 端口放行不可漏:雷池控制台(9443)和Web服务(80/自定义端口)需同时放行防火墙,否则无法访问;
- 生产环境优化:
- 替换雷池自签证书为CA证书(避免浏览器提示不安全);
- 配置雷池日志存储到外部服务(如ELK),方便长期分析;
- 定期升级雷池版本(执行
cd /safeline && ./manager.sh upgrade
),修复安全漏洞;
- 故障排查:若Web服务无法访问,可先检查雷池服务状态(
docker compose ps
),确保safeline-*
容器均为up
状态。
通过本文的步骤,你已成功搭建雷池WAF并实现Web服务防护。若需进一步配置高级规则(如CC攻击防护、爬虫拦截),可参考雷池官方文档或社区教程。
目前常驻:CSDN、博客园、微信公众号、稀土掘金
持续更新中:IT系统运维、shell脚本、容器、python、网络安全等
引用链接
Docker官方文档: https://docs.docker.com/engine/install/
雷池官方下载页: https://waf-ce.chaitin.cn/download