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

news/2025/10/2 23:07:46/文章来源:https://www.cnblogs.com/zhaomibubai/p/19124090

从零搭建雷池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.mzph.cn/news/925399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何免费建设网站免费logo设计在线生成器官网

贴一篇源码分析的好文章&#xff1a;https://blog.csdn.net/qq_30905661/article/details/114400417 本质&#xff1a; 一个事务对应一个数据库连接。 通过 this 来调用某个带有 Transactional 注解的方法时&#xff0c;这个注解是失效的&#xff0c;可以看做这个方法&#x…

让别人做网站需要提供什么企业黄页网站源码

前言&#xff1a;当设计师通过photoshop工具设计完设计稿导出psd文件时&#xff0c;我们前端工程师该如何进行切图转换成网页的所需的图片呢&#xff0c;接下来讲讲如何利用photoshop工具快速简洁的切图&#xff0c;因为ps工具用到的行业很多&#xff0c;涉及到的各个行业&…

使用Java将Word文件转换为PNG图片 - 指南

使用Java将Word文件转换为PNG图片 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

论文速读记录 | 2025.10

2025.10 | 速读文章纪录目录Horizon Generalization in Reinforcement LearningHIQL: Offline Goal-Conditioned RL with Latent States as ActionsContrastive Preference Learning: Learning from Human Feedback wi…

【Rust GUI开发入门】编写一个本地音乐播放器(15. 记录运行日志) - Jordan

本系列教程对应的代码已开源在 Github zeedle 本篇文章介绍如何将音乐播放器的运行情况持久化记录到日志文件中,这对分析程序意外情况出现的原因很有帮助! 使用最常用的env_logger,将其添加到Cargo.toml中: env_lo…

成都网站建设 3ewordpress简单投稿

在现代社会中&#xff0c;电力是我们生活和工作不可或缺的一部分。大楼宾馆作为城市中繁忙生活的一部分&#xff0c;依赖于可靠的电力供应来支持各种设施和服务&#xff0c;从客房照明到电梯运行&#xff0c;无一不离电。然而&#xff0c;大楼宾馆电力分配系统的稳定性和安全性…

6 种常见 AI 编程协作便捷的方法总结

6 种常见 AI 编程协作便捷的方法总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

可以做产品推广的网站flash网站整站下载

目录 1.1 关于版本控制 1.1.1 本地版本控制 1.1.2 集中化的版本控制系统 1.1.3 分布式版本控制系统 1.2 Git简介 1.2.1 Git历史 1.3 安装git 1.3.1 环境说明 1.3.2 Yum安装Git 1.3.3 编译安装 1.4 初次运行 Git 前的配置 1.4.1 配置git 1.4.2 获取帮助 1.5 获取 G…

DeploySharp开源发布:让C#部署深度学习模型更加简单

DeploySharp:面向C#开发者的跨平台模型部署框架 DeploySharp是一款专为C#开发者设计的深度学习模型部署框架,支持OpenVINO和ONNX Runtime推理引擎,兼容YOLOv5-v12全系列模型以及Anomalib等主流模型。该框架采用模块…

光伏电站建设的国家网站湖南网站托管

java之NIO 1 什么是NIO Java NIO (New IO&#xff0c;Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO的三大核心部分&#xff1a;通道(Channel)&#xff0c;缓冲区(Buffer), 选择器(Selector)&#xff0c;数据总是从…

视频多的网站建设如何建设一个静态网站

什么是柔性数组 什么是柔性数组&#xff1f;柔性数组其实也是动态内存管理部分的内容。这节主要来复习柔性数组的知识点。 当结构体的最后一个成员为数组&#xff0c; 且这个数组的大小未确定时&#xff0c; 我们就称它是柔性数组。 如&#xff1a; struct stu{char name[…

泰康人寿保险官方网站专题学习网站模板

boot读取配置文件1. yml配置文件2. 绑定方式13. 绑定方式23.1 依赖.3.2 boot 中提供的属性装配功能。1. 在某些业务中&#xff0c;需要将类的配置写到配置文件中, 不在代码中写死配置。 2. 所以需要读取配置文件(yaml, properties) 读取到Java Bean中。 3. 本文以oss对象存储配…

别样的国庆作业大战

一天,文科给我(理科)打来电话。他说:“你敢不敢和我举行假期作业量大战?”我豪爽的答应了:“我当然敢!我有 \(10^{12180211} \operatorname{mol}\) 试卷!2025.10.1 在 XXX 中高一年级举行,谁不来谁就是怂货。…

淘宝网站的建设目的是什么意思长沙网站托管seo优化公司

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 1、目前市面上的加密的方式 对称式加密&#xff1a;DES&#xff0c;AES&#xff0c;Base64加密算法 非对称加密&#xff1a…

摄影网站设计思想宁波优质网站制作哪家好

linux 常用的帮助命令 1.help -相当于man的简化版 例如&#xff1a;vim –help 2.man: 详细介绍vim的用法 例如&#xff1a;man vim 3.info:偏重介绍文档 例如&#xff1a; info vim

ROS2之服务

ROS2 的服务(Service)概念:服务是一种 请求-响应(request-response)通信机制,由 客户端(Client) 和 服务端(Server) 两部分组成。通信模式:客户端 发送一个请求(Request)。服务端 处理请求,并返回响应(…

北京公司建网站要多少费用江门站官网

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 k &#xff0c;请你返回满足 0 < i < j < n &#xff0c;nums[i] nums[j] 且 (i * j) 能被 k 整除的数对 (i, j) 的 数目 。 示例 1&#xff1a; 输入&#xff1a;nums …

macOS上优雅运行Docker容器

colima 什么是colima colima主页 Colima(Container on Lima)是一个轻量级的容器运行时管理工具,专为macOS(同时也支持Linux)设计,提供了一种简单优雅的方式来运行容器。它基于Lima项目,后者为 macOS提供了类似W…

怎样模仿别人的网站wordpress免插件代码高亮

TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手&#xff08;建立连接&#xff09;四次挥手&#xff08;释放连接&#xff09;连接状态 TCP协议 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种…

使用IOT-Tree Server依据MC协议连接三菱Q系列PLC

使用IOT-Tree Server依据MC协议连接三菱Q系列PLC2025-10-02 22:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…