今天分享一款轻量好用又强悍的Web应用防火墙。
前言
随着项目的运营,业务规模逐渐扩大,茫茫多的WEB业务被开放到公网上,随之带来的安全问题不容小觑。
前段时间刚创建的一个实例,只挂了一个web服务器,就受到了大量的扫描和反序列化等攻击。很难想象一个正常的web业务会遭受什么...
这时候,部署一个合格的“防弹衣”来保护WEB资产迫在眉睫。
1 雷池简介
通过各种平台的搜索和朋友的推荐,我锁定了一款叫作“雷池SafeLine”的产品,SafeLine,中文名 "雷池",是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。
翻看项目主页,发现这款产品支持很多实用的面向web资产的保护功能,像是人机验证、CC防护、SSL证书管理等
2 部署
雷池社区官网: https://waf-ce.chaitin.cn/ 帮助文档:https://docs.waf-ce.chaitin.cn 社区官网提供多种非常详细的部署过程,我选用最简单快速的方法:docker-compose一键部署,部署界面非常友好。
配置要求如下:
- 操作系统:Linux
- 软件依赖:Docker 20.10.14 版本以上
- 软件依赖:Docker Compose 2.0.0 版本以上
- 最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"
记录下默认的管理员账号密码
接着访问服务器的9443端口,就可以进入雷池WAF的控制台了
3 添加web资产
雷池WAF可以使用反向代理的方式添加web资产
点击防护应用->添加应用
如果业务需要SSL部署,可以点击证书选项,新增一个证书
新增证书的时候,只需要确保域名被解析到部署了长亭雷池服务器的公网IP上就可以自动申请并续期了,十分方便。我配置了一个统一认证应用进行测试
将域名解析到长亭雷池服务器下后,访问web应用测试,可以正常访问,并且证书应用正常,届时web资产就已完成接入了。
4 CC防护
为了避免web服务被大量请求拖挂,我开启了CC防护功能
这里,雷池WAF不仅支持高频访问限制/封禁,还有一个等候室功能,让我们一个个试试吧
高频访问限制
此时通过疯狂刷新页面,来触发高频访问限制
等候室
开启静候室功能:
5 动态防护
初看这个功能的时候,我还没意识到其重要性,直到我的页面被有心人士爬下来后二次分发才想到这个功能。
启用动态防护后,页面的源码会被混淆,极大程度上提高爬下网站的难度。
此时访问应用会弹出正在解密的加载页面
此时可以看一下网页源代码,比对启用前和启用后的效果
启用前
启用后
6 身份验证
对于一些特殊的应用资产,我们可以借助长亭雷池来增加一道身份验证。
点开身份认证选项,启用该功能,并勾选账号密码作为登录方式
添加一个账号试试看
这时访问web资产,就可以看到需要输入账号密码才能进入了
当输入了账号密码之后出现了报错
原来是没有对该用户进行授权,编辑后对应用选择“允许访问”
然后使用该账号就可以访问这个web资产了
如果项目上有统一认证平台,还可以通过OIDC、CAS或LDAP等方式进行对接。
这里,我使用authentik服务器,配合OIDC协议来进行对接
首先,建立一个应用程序和provider,获取OIDC的客户端ID和secret
接着在雷池上配置绑定OIDC服务
接着回到web资产的设置里,选择OIDC认证
此时再访问资产,就会自动跳转到统一认证平台
接着就可以通过认证并访问这个资产了
7 小结
通过这段时间的使用,长亭雷池WAF完美符合我的使用需求,它也为我挡下了大量的攻击
雷池WAF的功能远不止上述提到的这几项,依靠着活跃的社区,还有更多的场景正在被应用,更多功能正在被开发。