11K star!开源 WAF 的 NO1,不花钱也能搞定安全
当我们的网站上线后首先会遇到什么,可能不一定是自己的客户,而是来自网络的攻击。
今天我们分享的开源项目,它是登顶 GITHUB 的开源 WAF,让黑客不敢越雷池一步,并且还是国产的开源项目,它就是:雷池(SafeLine)
![](https://static001.geekbang.org/infoq/57/574d5f5570b567548a60e20283163844.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
雷池是什么?
雷池(SafeLine)是一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术,作为反向代理接入,保护你的网站不受黑客攻击。是长亭科技耗时近 10 年倾情打造,核心检测能力由智能语义分析算法驱动。
![](https://static001.geekbang.org/infoq/56/569ac823694e9867718860953246c6d3.png)
雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。通过以上行为,最终确保外部攻击流量无法触达网站服务器。
![](https://static001.geekbang.org/infoq/f5/f5f50f7a4118c3bde4211a7ee3ab0d22.png)
安装雷池
系统资源要求:
操作系统:Linux
指令架构:x86_64
软件依赖:Docker 20.10.6 版本以上
软件依赖:Docker Compose 2.0.0 版本以上
最小化环境:1 核 CPU / 1 GB 内存 / 5 GB 磁盘
自动安装:
最简单的方式使用项目提供的一键安装脚本,用 root 用户执行以下命令即可
当然如果你的服务器不能直接访问网络,那么你可以提前将项目 clone 下来,然后再执行手动安装。
手动安装:
你也可以手动安装雷池,首先需要确定你的服务器已经安装好 docker,这里就不单独说明,可以自己查一下相关介绍。
创建雷池目录
该命令会创建 /data/safeline 目录作为雷池的安装目录(你可以根据你的实际情况选择安装目录)。
请确保该目录至少有 5GB 的存储空间(如果日常流量较大,请保证充足的磁盘容量)。
下载 compose.yaml:
创建.env 配置文件,写入一下内容:
启动服务:
服务启动完成后访问本地 https://127.0.0.1:9443/ 即可开始使用。
使用雷池
安装完成后我们登录到管理界面。
配置站点
首先我们要配置一下要保护的站点,这里也说明一下,正常使用的时候,不建议把雷池和实际的业务应用部署到一台服务器上,这样对于服务器的负载会很大,存在隐患,最好是单独的一台服务器来部署雷池,之后将流量转给真实应用。
![](https://static001.geekbang.org/infoq/12/12d42d4d82f0303a322f4bd789454ac3.png)
配置完成后,用浏览器访问域名,能获取到业务网站的响应,并且数据统计页的 “今日请求数” 增加,代表配置成功。
![](https://static001.geekbang.org/infoq/12/12d42d4d82f0303a322f4bd789454ac3.png)
我们可以简单的模拟下对网站进行攻击,比如 SQL 注入伙 XSS 攻击:
不出意外的话,这些攻击都将被雷池拦截,如下图所示。
![](https://static001.geekbang.org/infoq/8c/8c8405aeb935b5863a2f991a34b9dfdf.png)
动态防护
在最新的雷池 6.0 中,发布了动态防护功能。所谓动态防护,是在用户浏览到的网页内容不变的情况下,将网页赋予动态特性,即使是静态页面,也会具有动态的随机性。雷池作为反向代理程序,经过雷池的网页代码都将被动态加密保护,动态防护可以实现很多效果,比如:
保护前端代码的隐私性
阻止爬虫行为
阻止漏洞扫描行为
阻止攻击利用行为
在站点防护站点里可以找到动态防护的设置入口。
![](https://static001.geekbang.org/infoq/e5/e57bb08e63e9fb0f4cb8f3e60623c0d1.png)
目前提供的动态防护能力包括 HTML 动态加密和 JS 动态混淆。
![](https://static001.geekbang.org/infoq/43/439bf481a6866fe602498baca0f9af41.png)
动态加密可以设置到具体的路径上。
![](https://static001.geekbang.org/infoq/65/65d7c95920ff532015549f3a65c5441e.png)
开启动态防护之后,可以在站点列表中查看到开启的状态。
![](https://static001.geekbang.org/infoq/ed/ed43e0c4ae14287fc4504f2cb00d8e4d.png)
之后我们来对比下开启之后页面的源码状态。
![](https://static001.geekbang.org/infoq/5c/5cbd993f0cd786683723255665d57121.png)
正常应该是这样的。
![](https://static001.geekbang.org/infoq/ba/bab597bb2f7b95558aedf4923dd6cb09.png)
站点高级防护
加单个站点的高级防护配置,支持对单个站点进行额外的防护配置,黑白名单、人机验证、身份认证等。
比如人机验证,可以有效验证真人用户的流量,对爬虫, 漏洞扫描器, 蠕虫病毒等很有用。
产品特点
便捷性,采用容器化部署,一条命令即可完成安装,0 成本上手。安全配置开箱即用,无需人工维护,可实现安全躺平式管理。
安全性,首创业内领先的智能语义分析算法,精准检测、低误报、难绕过。语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措。
高性能,无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别。并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限。
高可用,流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障。内置完善的健康检查机制,服务可用性高达 99.99%。
总结
总的来说,雷池一款非常不错的 WAF 产品,尤其最为开源产品它的功能和完成度非常的高,尤其还是国产的开源项目,必须要加分,希望可以发展的越来越好。从产品能力角度完全可以满足企业或个人的如此需要,如果你有 WAF 的需要,而有在成本方面存在疑虑,那么可以来试试雷池的社区版。
项目信息
项目名称: SafeLine
GitHub 链接:https://github.com/chaitin/SafeLine
Star 数:11K
作者:IT 咖啡馆
链接:https://juejin.cn/post/7392249407225987126
评论