WAF防护之长亭雷池SafeLine
WAF
防护之长亭雷池SafeLine
参考
https://github.com/chaitin/SafeLine (项目地址及简单使用)
介绍
一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术,作为反向代理接入,保护你的网站不受黑客攻击。核心检测能力由智能语义分析算法驱动,专为社区而生,不让黑客越雷池半步。SafeLine 的开发团队长亭科技在 Web 安全领域有比较深的积累,2015 年就推出了商业化 WAF(Web Application Firewall),值得一提的是 B 站、小红书、滴滴、vivo、爱奇艺等公司都在使用。
相关特性
便捷性
采用容器化部署,一条命令即可完成安装,0 成本上手。安全配置开箱即用,无需人工维护,可实现安全躺平式管理。
安全性
首创业内领先的智能语义分析算法,精准检测、低误报、难绕过。语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措。
高性能
无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别。并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限。
高可用
流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障。内置完善的健康检查机制,服务可用性高达 99.99%。
一. 🚀 安装
配置需求
- 操作系统:Linux
- 指令架构:x86_64
- 软件依赖:Docker 20.10.6 版本以上
- 软件依赖:Docker Compose 2.0.0 版本以上
- 最小化环境:1 核 CPU / 1 GB 内存 / 10 GB 磁盘
safeline
系统版本号 3.13.2
在线安装(推荐)
如果服务器可以访问互联网环境,推荐使用该方式
复制以下命令执行,即可完成安装
1
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
若安装失败,请参考 安装问题
离线安装
如果服务器不可以访问互联网环境,推荐使用该方式
离线安装前需完成环境检测,默认已完成 docker 环境准备
下载 雷池社区版镜像包 并传输到需要安装雷池的服务器上,执行以下命令加载镜像
1
cat image.tar.gz | gzip -d | docker load
执行以下命令创建并进入雷池安装目录
1
mkdir -p safeline && cd safeline # 创建 safeline 目录并且进入
下载 编排脚本 并传输到 safeline 目录中
复制执行以下命令,生成雷池运行所需的相关环境变量
1
2
3
4
5
6
7
8cat >> .env <<EOF
SAFELINE_DIR=$(pwd)
IMAGE_TAG=latest
MGT_PORT=9443
POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)
REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)
SUBNET_PREFIX=172.22.222
EOF注意:不要一行一行复制,一次性复制全部命令后执行,如图
执行以下命令启动雷池
1
docker-compose up -d
二. 效果 / 使用 本文演示在网站服务器部署雷池
基本使用 > 传送门
- 在单独的服务器上部署雷池
- 在网站服务器上部署雷池
- 和其他反向代理一起部署雷池
前言:
工作原理
雷池社区版主要以 反向代理 的方式工作,类似于一台 nginx 服务。
部署时,需要让网站流量先抵达雷池,经过雷池检测和过滤后,再转给原来的网站业务。
建议优先熟悉反向代理概念再继续配置
在单独的服务器部署雷池时配置(推荐)
环境信息:
网站服务器: IPA,对外端口80,域名‘example.com’
部署雷池的服务器:IPB
目的:使用雷池的80端口接受请求进行防护步骤:
必须将网站流量指向雷池的IPB。例如修改域名解析服务的配置,将域名解析到雷池IPB
具体配置参考下图
禁止网站服务器(IPA)上,所有除了雷池之外的访问。例如配置防火墙
配置完成 浏览器访问example.com:80
,若能获取到业务网站的响应,并且站点上 “今日访问量” 增加,则代表配置成功。
本教程为网站服务器上部署雷池使用及效果如下
登录
使用
google
或者腾讯多因子认证方式访问浏览器打开后台管理页面
https://<waf-ip>:9443
。根据界面提示,使用 支持 TOTP 的认证软件 扫描二维码,然后输入动态口令登录:配置防护站点
雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。
端口配置为雷池的端口 上游服务信息为自己的服务地址
此时相当于做了一个反向代理 将访问
web-start
的流量先送到雷池 雷池分析后决定是否放行访问
www.test.com:80
即为访问web-start
此时访问
www.test.com:80
若雷池检测通过则放行也可不设置域名此时访问
10.0.0.10
即可访问
10.0.0.10
后若访问成功请求数会相应增加
💡 TIPS: 添加后,执行 curl -H "Host: <域名>" http://<WAF IP>:<端口>
应能获取到业务网站的响应。
模拟攻击防护
使用以下方式尝试模拟黑客攻击,看看雷池的防护效果如何
浏览器访问
http://<IP或域名>:<端口>/?id=1%20AND%201=1
浏览器访问
http://<IP或域名>:<端口>/?a=<script>alert(1)</script>
模拟攻击前
模拟攻击后 (此两个模拟攻击的链接没有部署雷池时是可以正常访问的)
http://10.0.0.10/?id=1%20AND%201=1
http://10.0.0.10/?a=<script>alert(1)</script>
三. 效果
防护站点等
拦截详情
主页面板
fighting!