一、雷池WAF简介
什么是 WAF
WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
什么是雷池
雷池是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。
Slogan: 不让黑客越雷池半步。
为什么是雷池
便捷性
采用容器化部署,一条命令即可完成安装,0 成本上手
安全配置开箱即用,无需人工维护,可实现安全躺平式管理
安全性
首创业内领先的智能语义分析算法,精准检测、低误报、难绕过
语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措
高性能
无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别
并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限
高可用
流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障
内置完善的健康检查机制,服务可用性高达 99.99%
WAF 部署架构
下图是一个简单的网站流量拓扑,外部用户发出请求,经过网络最终传递到网站服务器。
此时,若外部用户中存在恶意用户,那么由恶意用户发出的攻击请求也会经过网络最终传递到网站服务器。
社区版雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。
通过以上行为,最终确保外部攻击流量无法触达网站服务器。
二、安装方法
配置需求
操作系统:Linux
指令架构:x86_64
软件依赖:Docker 20.10.6 版本以上
软件依赖:Docker Compose 2.0.0 版本以上
最小化环境:1 核 CPU / 1 GB 内存 / 5 GB 磁盘
可以逐行执行以下命令来确认服务器配置
uname -m # 查看指令架构
docker version # 查看 Docker 版本
docker compose version # 查看 Docker Compose 版本
docker-compose version # 同上(兼容老版本 Docker Compose)
cat /proc/cpuinfo # 查看 CPU 信息
cat /proc/meminfo # 查看内存信息
df -h # 查看磁盘信息
有三种安装方式供选择
1.在线安装
如果服务器可以访问互联网环境,推荐使用该方式
执行以下命令,即可开始安装
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
如果连接 Docker Hub 网络不稳,导致镜像下载失败,可以采用 离线安装 方式
经过以上步骤,你的雷池已经安装好了,下一步请参考 登录雷池
2.离线安装
如果你的服务器无法连接互联网环境,或连接 Docker Hub 网络不稳,可以使用镜像包安装方式
这里忽略 Docker 安装的过程
首先,下载 雷池社区版镜像包 并传输到需要安装雷池的服务器上,执行以下命令加载镜像
cat image.tar.gz | gzip -d | docker load
执行以下命令创建并进入雷池安装目录
mkdir -p safeline # 创建 safeline 目录
cd safeline # 进入 safeline 目录
下载 编排脚本 并传输到 safeline 目录中
执行以下命令,生成雷池运行所需的相关环境变量
echo "SAFELINE_DIR=$(pwd)" >> .env
echo "IMAGE_TAG=latest" >> .env
echo "MGT_PORT=9443" >> .env
echo "POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .env
echo "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .env
echo "SUBNET_PREFIX=172.22.222" >> .env
执行以下命令启动雷池
docker compose up -d
3.使用牧云助手安装
也可以使用 牧云主机管理助手 进行一键安装
三、登录雷池WAF
浏览器打开后台管理页面 https://<waf-ip>:9443
。根据界面提示,使用 支持 TOTP 的认证软件或者小程序 扫描二维码,然后输入动态口令登录:
四、配置防护站点
💡 TIPS: 添加后,执行 curl -H "Host: <域名>" http://<WAF IP>:<端口>
应能获取到业务网站的响应。
将网站流量切到雷池
若网站通过域名访问,则可将域名的 DNS 解析指向雷池所在设备。
若网站前有 nginx 、负载均衡等代理设备,则可将雷池部署在代理设备和业务服务器之间,然后将代理设备的 upstream 指向雷池。
如何配置 https
五、测试防护效果
确认网站可以正常访问
根据雷池 WAF 配置的网站参数访问你的网站。
打开浏览器访问 http://<IP或域名>:<端口>/
。
网站协议默认是 http,勾选 ssl 则为 https
主机名可以是雷池的 IP,也可以是网站的域名(确保域名已经解析到雷池)
端口是你在雷池页面中配置的网站端口
若网站访问不正常,请参考 网站无法访问。
尝试手动模拟攻击
打开浏览器,访问以下地址即可模拟出对应的攻击:
模拟 SQL 注入,请访问 http://<IP或域名>:<端口>/?id=1%20AND%201=1
模拟 XSS,请访问 http://<IP或域名>:<端口>/?html=<script>alert(1)</script>
通过浏览器,你将会看到雷池已经发现并阻断了攻击请求。
若请求没有被阻断,请参考 防护不生效