【Linux】SafeLine:一款免费自托管 Web 应用防火墙(WAF),同时具备反向代理功能
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
最近在 GitHub 上逛的时候,看到一个叫 项目简介
与云 WAF 不同,它完全运行在你自己的服务器上,让你对流量和日志拥有绝对控制权,同时也不需要把所有流量托管给第三方云服务。 功能特性
项目体验展示为了体验防护效果,开源君在本地搭建了一个web站,同时用3000端口直连应用(无 WAF) ,8888端口通过 SafeLine 代理(有 WAF)。 所有攻击请求完全一致,唯一的区别只是,请求是否经过 WAF。 场景1:绕过登录,直接拿到管理员权限这是最经典的一个场景。 在 3000 端口上,登录框几乎就是“裸奔状态”。开源君随手在用户名里塞了一段常见的 SQL 注入语句,密码随便填,点一下登录——页面直接跳转成功,右上角赫然显示着
没有试探,没有报错,一次请求,管理员权限就到手了。 然后把同样的输入复制一份,走 8888 端口再来一次。结果很干脆:页面没跳,账号没登,SafeLine 直接拒绝了请求,没有登录成功。
我们来到雷池管理后台,从攻击日志中可以看到刚刚这笔被拦截的攻击记录 以及具体详细信息 场景2:API 接口直接“拖库”,数据被窃取如果说第一个场景是“闯进系统”,那第二个场景展示的就是 闯进来之后能拿走什么 。 开源君构建的这个web页面的搜索 API 本身存在 SQL 注入风险。在 3000 端口下,通过构造查询参数,让接口返回的内容不再是商品数据,而是数据库里的真实用户的信息,账号、密码都被扒出来了。
整个过程不需要登录、不需要权限,只是一次普通的 GET 请求。 而当同一个 URL 请求走 8888 端口时,SafeLine 直接拦截。联合查询、注释符号、字段拼接这些典型的“拖库特征”,在 WAF 规则里命中率极高,攻击请求在入口处就被终止。
后台同样捕获到了这个攻击记录。 场景3:恶意扫描请求第三个场景,开源君刻意换了一种思路:不利用 web页面的漏洞,而是模拟真实攻击者的扫描行为。 在很多真实攻击中,黑客并不知道目标是否存在漏洞,而是会不断尝试在 URL 参数中注入诸如 在 3000 端口下,加上这种参数,页面照样正常打开,看起来什么事都没发生。但从安全角度看,这其实是最危险的状态:恶意请求已经顺利进来了,只是暂时没踩到雷。
而当请求经过 SafeLine 时,情况立刻不同。
上面三个场景可以看到,SafeLine 的作用非常清晰,在应用之前建立一道“强制防线”。哪怕web本身漏洞存在,只要流量经过 WAF,攻击就会有完全不同的结果。 快速安装、使用SafeLine 的部署环境要求很低,普通服务器即可满足需求:
安装方式官方给了两种方式: 1、一键安装执行下面的命令,按提示完成安装目录设置等操作,安装成功后直接进入Web UI配置。 2、手动 Docker 部署开源君就是用这个方法进行部署的,先创建安装目录,并下载配置文件: 然后编写.env文件(示例内容): 最后启动服务,等待安装部署完成。 等待安装部署完成后,使用这个命令获取管理员账号密码:
然后访问Web控制台:
首页就是一个直观的统计报表页面,展示相关的数据记录情况。
在“防护应用”模块可以添加需要防护的应用并进行配置,开源君搭建的8888端口页面就是在这里进行配置的。
同样也可以左边栏里面进行全局配置 CC 防护,人机验证,身份认证等功能。 小结作为一款优秀的国产开源 WAF 神器,SafeLine 完美平衡了防护效果、使用便捷性和经济性。它不仅能有效抵御各类 Web 攻击,还提供了丰富的配置选项和直观的管理界面,社区版永久免费,功能完全满足日常防护需求。如果你正在为网站安全发愁,又不想投入高额成本,不妨试试这款 Github 高星开源项目,让 SafeLine 为你的 Web 服务保驾护航! 更多细节功能,感兴趣的可以到项目地址查看: 阅读原文:原文链接 该文章在 2025/12/31 10:28:22 编辑过 |
关键字查询
相关文章
正在查询... |