当前位置: 首页 > news >正文

从零搭建雷池WAF:环境配置、安装部署与Web防护实战

从零搭建雷池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_64aarch64(对应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 versiondocker-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 curlapt install curl安装curl):

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

重复执行两次,若还是不行,则手动安装Docker
image
image

安装成功判断

若终端输出类似“雷池WAF安装完成,可访问控制台”的提示,且无errorfailed字样,则代表安装成功。
image

常见报错处理

  • 报错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 usernameInitial password(密码为随机字符串,建议保存到记事本):

[SafeLine] Initial username:admin
[SafeLine] Initial password:Xx123456!
[SafeLine] Done

image

四、访问雷池控制台:配置端口与浏览器访问

雷池控制台默认通过HTTPS协议和9443端口访问,需先确保服务器放行9443端口,再通过浏览器登录。

image

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端口被其他服务占用(访问时提示“无法连接”),需修改雷池端口:

  1. 进入雷池安装目录(默认/safeline):cd /safeline
  2. 编辑docker-compose.yml文件:vim docker-compose.yml
  3. 找到ports配置项,将9443:443改为自定义端口:443(如9444:443);
  4. 重启雷池服务:docker compose down && docker compose up -d

4.3 登录控制台

  1. 打开本地浏览器(推荐Chrome、Edge),输入地址:https://雷池服务器IP:9443(如https://192.168.110.99:9443);
  2. 首次访问会提示“证书不安全”(雷池使用自签证书),点击“高级”→“继续访问”(生产环境建议替换为CA证书);
  3. 输入步骤3.2获取的admin账号和密码,点击“登录”,进入雷池控制台首页。
    image

五、实战:搭建Web服务并配置雷池防护

为验证雷池防护效果,我们先在另一台服务器(本文用192.168.110.100)搭建简单Web服务,再通过雷池配置防护规则,最后测试防护效果。
image

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

image

步骤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服务搭建成功。
image

5.2 雷池防护配置:添加Web服务保护

登录雷池控制台后,需将搭建好的Web服务(192.168.110.100:80)添加到雷池防护中,具体步骤如下:

步骤1:进入“网站管理”页面

登录雷池控制台后,点击左侧菜单栏「防护应用」→ 右上角「添加应用」。
image

步骤2:填写网站信息

  • 网站域名/IP:输入Web服务的IP(192.168.110.100);
  • 服务器地址:默认与“网站域名/IP”一致(若Web服务在其他服务器,需填写实际IP);
  • 端口:填写Web服务端口(81,HTTP协议),前面提示80端口被占用我们就换81
  • 其他配置:默认即可(高级用户可配置HTTPS、缓存等);
  • 点击「保存」,完成网站添加。
    image

步骤3:配置防护规则(默认开启基础防护)

雷池默认开启SQL注入、XSS、命令注入等基础防护规则,无需手动配置。若需自定义规则(如放行特定IP、屏蔽特定URL),可在「防护规则」页面调整。

六、防护效果验证:测试攻击拦截与日志查看

配置完成后,需测试雷池是否能正常拦截恶意请求,同时查看防护日志确认效果。

6.1 测试1:正常访问Web服务

通过雷池代理访问Web服务:在浏览器输入http://雷池服务器IP:自定义端口(本文雷池服务器IP为192.168.110.99,自定义端口为81),即http://192.168.110.99:81
image

预期结果:能正常显示Web页面(与直接访问192.168.110.100一致),说明雷池代理正常。

image

6.2 测试2:恶意请求拦截(SQL注入测试)

在浏览器地址栏输入恶意请求(模拟SQL注入):

http://192.168.110.99:81/?id=1' or '1'='1

预期结果:页面提示“请求被拦截”(雷池触发SQL注入防护规则),说明防护生效。

6.3 查看防护日志与统计

  1. 登录雷池控制台,点击左侧菜单栏「日志中心」→「防护日志」,可查看被拦截的恶意请求详情(包括请求IP、URL、攻击类型、拦截时间);
  2. 点击「仪表盘」,可查看实时防护统计(如拦截次数、攻击类型分布、Top攻击IP),本文测试后可看到“SQL注入”类型的拦截记录。

image
这里就不过多演示了,很多功能要授权才行,懂得读懂哈哈哈

七、总结与注意事项

  1. 环境检查是前提:务必确保CPU支持ssse3、Docker版本达标,否则会导致安装失败或防护性能下降;
  2. 端口放行不可漏:雷池控制台(9443)和Web服务(80/自定义端口)需同时放行防火墙,否则无法访问;
  3. 生产环境优化
    • 替换雷池自签证书为CA证书(避免浏览器提示不安全);
    • 配置雷池日志存储到外部服务(如ELK),方便长期分析;
    • 定期升级雷池版本(执行cd /safeline && ./manager.sh upgrade),修复安全漏洞;
  4. 故障排查:若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

http://www.hskmm.com/?act=detail&tid=23203

相关文章:

  • 论文速读记录 | 2025.10
  • 【Rust GUI开发入门】编写一个本地音乐播放器(15. 记录运行日志) - Jordan
  • 6 种常见 AI 编程协作便捷的方法总结
  • DeploySharp开源发布:让C#部署深度学习模型更加简单
  • 别样的国庆作业大战
  • ROS2之服务
  • macOS上优雅运行Docker容器
  • 题解:CF1770H Koxia, Mahiru and Winter Festival
  • HarmonyOS之LocalStorage - 详解
  • Spring Boot Logback:实现定时任务日志与业务日志隔离 - Higurashi
  • 网络流 最小割 Dinic算法
  • 15.VLANIF(2025年9月30日) - 教程
  • 树莓派搭建NAS之一:安装系统
  • 新手Markdown学习
  • 马云归来,“新零售”不死 - 指南
  • RNN
  • 10.2笔记
  • Shell / Bash 学习
  • 【Linux 架构探幽:从入门到内核・系统编程开篇】基础指令与权限精讲,筑牢框架制作根基
  • 使用 Dart 进行验证码识别
  • 用 Rust 进行验证码识别
  • teset3
  • Java并发编程(5)
  • 定时任务详解
  • 华为wlan无线配置 - 教程
  • PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
  • 可持久化数据结构
  • 2025.10.2——1黄
  • 图的匹配
  • Tarjan 算法