推荐一款好用的开源WAF-长亭雷池

关于WAF,大家可能第一时间想到的是各种公有云平台上的产品,阿里云华为云等等,价格一般不菲。今天在这里向大家推荐目前最火的一款开源的WAF产品-长亭雷池,它在github上已经拥有10k+的star了,希望对有需要的小伙伴有所帮助。

它的官网是:https://waf-ce.chaitin.cn/

图片

它的github地址是:https://github.com/chaitin/SafeLine

图片

什么是 WAF?

首先了解下什么是WAF,WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。

什么是雷池?

雷池是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。

它的Slogan是: 不让黑客越雷池半步。

为什么是雷池?

便捷性

采用容器化部署,一条命令即可完成安装,0 成本上手

安全配置开箱即用,无需人工维护,可实现安全躺平式管理

安全性

首创业内领先的智能语义分析算法,精准检测、低误报、难绕过

语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措

高性能

无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别

并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限

高可用

流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障

内置完善的健康检查机制,服务可用性高达 99.99%

架构

图片

部署

可以在线部署也可以离线部署,推荐离线部署,速度会快很多

1. 在线部署,一条命令搞定

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

2. 离线部署

1)下载离线镜像包

wget https://demo.waf-ce.chaitin.cn/image.tar.gz --no-check-certificate2)导入镜像包

2)导入镜像

cat image.tar.gz | gzip -d | docker load

3)创建相关目录

mkdir -p safelinecd safeline

4)下载docker-compose.yaml

wget https://waf-ce.chaitin.cn/release/latest/compose.yaml --no-check-certif

5)设置环境变量

echo "SAFELINE_DIR=$(pwd)" >> .envecho "IMAGE_TAG=latest" >> .envecho "MGT_PORT=9443" >> .envecho "POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .envecho "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .envecho "SUBNET_PREFIX=172.22.222" >> .env

说明:

echo "SAFELINE_DIR=$(pwd)" >> .env  # 设置当前路径为雷池社区版的根路径

echo "IMAGE_TAG=latest" >> .env  # 设置镜像的 tag

echo "MGT_PORT=9443" >> .env  # 管理容器服务使用的端口

echo "POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .env  # /dev/urandom是一个很长的随机数文本,tr -dc 命令用于删除非字母、非数字的字符,用于生成随机的 postgres 密码

echo "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> .env  # 同上,用于生成随机的 redis 密码

echo "SUBNET_PREFIX=172.22.222" >> .env  # 定义 docker 虚拟网卡的子网前缀

6)启动

docker-compose up -d

7)查看日志

# 查看各容器状态$ sudo docker ps 
# 输出容器 std 日志$ sudo docker logs -f <comtainer_name>  
# 一些服务运行中的持久化也会存储在磁盘上,目录结构如下$ tree.├── detector│   └── snserver.log    #检测容器的输出日志├── management│   ├── nginx.log     # Tengine 容器中 NGINX 日志输出│   └── webserver.log    # safeline-mgt-api 容器的日志输出├── mario│   └── mario.log    # 流量日志输出└── nginx    ├── error.log  # NGINX 的错误日志    └── tcd.log  # tcd 是 Tengine 用于与 safeline-mgt-api 通信的网络代理进程,该文件存储了两者的通信日志

使用

1.浏览器打开后台管理页面 https://<waf-ip>:9443

输入初始的admin密码,完成安装后在shell会自动输出密码

2. 绑定MFA

图片

图片

  1. 添加防护域名,这里有好几种方式,这里我拿第二种方式测试

图片

图片

图片

图片

图片

比如我要防护http://gitlab.192.168.1.76.nip.io这个域名(实际生产肯定还是要配合SSL加密使用,我这里只做展示所以用http):

图片

上游服务器就是源站了,添加完成如下:

图片

添加完测试下是否可以访问:

图片

访问完成后在控制台就能看到相关的数据了:

图片

图片

  1. 手动测试防护效果

模拟SQL注入:访问 http://<IP或域名>:<端口>/?id=1%20AND%201=1
模拟XSS攻击:http://<IP或域名>:<端口>/?html=<script>alert(1)</script>

图片

图片

从上图可以看到两次都被拦截了,下面是控制台能看到的一些数据:

图片

图片

图片

图片

  1. 自动化测试防护效果

1)下载测试工具:​​​​​​​

https://waf-ce.chaitin.cn/blazehttp/blazehttp_windows.exe
https://waf-ce.chaitin.cn/blazehttp/blazehttp_mac_m1
https://waf-ce.chaitin.cn/blazehttp/blazehttp_linux_x64

2)下载测试样本:https://waf-ce.chaitin.cn/blazehttp/testcases.zip

3)将测试工具 blazehttp 和测试样本 testcases 放在同一个目录下

4)进入对应的目录,使用以下请求开始测试

./blazehttp -t http://<IP或域名>:<端口> -g './testcases/**/*.http'

图片

好了,我这里只是简单地测试了基本功能,更多好用的功能还需要自己探索,目前最新社区版是6.0.2。如果有需要商业版的小伙伴也可以咨询官方客服,专业版购买地址如下:

https://rivers.chaitin.cn/?share=85db8d21d63711ee91390242c0a8176b

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wqy20121118

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值