安敢越雷池一步?浅尝雷池WAF社区版

8 阅读6分钟

前言

在个人服务器或小型团队的生产环境中,将服务直接暴露到公网往往意味着要面对源源不断的扫描与 Web 攻击。且大部分的小团队开发和运维能力都是有限的,有时候即便发觉到有安全问题,也常常不知道该从何入手,我之前写过一篇部署开源EDR架构的博客,也是主要给小团队提供一些参考,但说起来,EDR架构的维护门槛还是略高的。

最近我尝试了雷池(SafeLine)社区版,它基于语义分析引擎,对常见的 SQL 注入、XSS、命令注入等攻击有非常不错的防护能力(官网传送门👉:waf-ce.chaitin.cn/)。本文记录了我通过 Docker 部署雷池、对接后端应用、排查网络连通性问题以及进行攻击测试的全过程。

部署架构与环境说明

  • 操作系统:Ubuntu 22.04 LTS
  • 部署方式:Docker / Docker Compose
  • 后端服务:.NET / Kestrel 应用(运行在宿主机 5000 端口)
  • 雷池 WAF:监听 5001 端口,转发流量至后端

架构逻辑如下:

外部请求 -> 云服务器安全组 -> 宿主机防火墙 (5001) -> 雷池 WAF 容器 (5001) -> 内部后端服务 (5000)

注意,我这里雷池除了负责安全防护,还承担了反向代理的角色,因为我这是测试环境,所以二合一是完全ok的,实际上生产的话,最好在原有的网络架构里,插入雷池中间件,不要让它直接顶在最外层做反向代理。

雷池社区版快速部署

雷池官方提供了一键安装脚本,几分钟内即可完成部署:

# 执行雷池官方一键安装脚本
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

我是基于docker部署的,官方文档在这里:help.waf-ce.chaitin.cn/node/01973f…

安装完成后容器运行效果如下

然后我们就可以访问雷池的控制台地址,注意在这之前,把云服务器的防火墙必要端口放开一下,雷池服务用到的是9443端口,另外后续如果你要监听其他端口的话,对应的端口也要放开才行。除了云服务器安全组里的防火墙,服务器本身的防火墙端口也要看情况手动放开。完成之后就可以访问雷池的控制台了。

BTW

事实上,我是用了更省力的方法,直接让我的龙虾助手帮我安装的,我的上一篇博客《传统老手艺之容器编排》,也提到了让龙虾帮我管理容器的内容,现在这种简单的任务,都不需要去连服务器,口喷就行。

配置防护站点与关键避坑点

登录雷池后台,进入 防护站点 -> 添加站点

  1. 监听端口:填写对外暴露的端口(我这里使用的5001)。
  2. 上游服务器:填写真实的后端应用地址,跟在Nginx里配置upstream地址的逻辑一样。

需要注意的是,因为我这里是以Docker方式部署的,所以填写上游服务器地址的时候,要使用Docker网桥的默认网关IP,一般是172.17.0.1,或者使用host.docker.internal。如果用宿主机方式直接安装,那上游服务器那里使用内网地址即可,同理如果你是在集群环境,再根据内网的实际环境配置即可,和配置常规反向代理的流程类似。

配置过程中,可以通过一些网络命令来排查,配置阶段这里,算得上门槛的就只有网络问题了。

WAF防护能力实战测试

服务上线后,我们可以模拟几类典型的 Web 攻击,检验雷池的防御效果 。我这里只演示BOT防护和攻击防护2种防护手段,更多的防护效果,大家可以参考官网手册,个人版的都是支持的。

  1. BOT 防护测试

首次访问服务站点后,会加载雷池的交互页面,相关说明在:help.waf-ce.chaitin.cn/node/01973f…

  1. 攻击防护

2.1. SQL 注入测试

在浏览器直接访问:http://<公网IP>:5001/?id=1%20and%201=1,或http://<公网IP>:5001/?id=1' UNION SELECT 1,2,3--

2.2. XSS 跨站脚本测试

http://<公网IP>:5001/search=<script>alert('xss')</script>```

2.3. 敏感路径遍历测试

http://<公网IP>:5001/?file=../../../../etc/passwd

触发上述请求后,浏览器会直接弹出雷池特有的403 Forbidden 拦截页面

在本地不通过浏览器直接发送恶意访问,也能被拦截。

640.jpg

然后登录雷池后台的 【防护日志】,可以清晰地看到拦截记录、攻击者 IP、请求 Payload 以及语义分析引擎识别出的风险等级。

结语

至此,基于Docker快速部署雷池WAF的演示就先到这,需要说明的是,受篇幅和测试环境等限制,本篇的演示并没包含个人版雷池的全部特性,大家可以参考官方手册自行探索。但总的来说,于小团队,雷池WAF提供的安防服务已经能抵御大部分的恶意攻击,而且上手门槛极低,后续的维护复杂度也不高,且专业版的价格也不贵,年费只有3600,对于大部分小团队来说,专业版就足够了。那如果有等保等需求,他们还提供了商业版通道, 大家可以根据团队规模灵活选择 。

总之,不想折腾,又想给企业内服务器做一层安防措施,雷池WAF是非常值得考虑的。