随着开源 Web 框架和各种建站工具的兴起,搭建网站已经是一件成本非常低的事情,但是网站的安全性很少有人关注,以至于 WAF 这个品类也鲜为人知。

一、WAF 是什么?

WAF 是 Web 应用防火墙(Web Application Firewall)的缩写,也就是我们俗称的网站防火墙。它可以保护网站不被黑客所攻击,通常以 Web 网关的形式存在,作为反向代理接入。WAF 可以识别常见的 Web 攻击并实施阻断,比如:SQL 注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、服务端请求伪造(SSRF)、WebShell 上传与通信等等。

二、雷池

今天 HelloGitHub 给大家带来的是一款开箱即用、功能强大、广受好评的网站防护工具——雷池 WAF,不让黑客越雷池半步。

GitHub 地址:https://github.com/chaitin/safeline

雷池是一款简单易用、广受好评的社区 WAF 项目,它底层基于 Nginx 的 Web 网关,作为反向代理接入网络,清洗来自黑客的恶意流量,保护你的网站不受黑客攻击。雷池拥有友好的 Web 界面,就算你不具备网络安全技术背景,也可以通过它发挥出顶尖的网站防护效果

雷池由国内顶尖的网络信息安全公司长亭科技,在今年 4 月开源的网站防火墙工具。它迭代速度相当惊人,短短四个月的时间共发布了 31 个版本,被 1.8w 的网站站长使用,在 GitHub 收获了 3K+ 的 Star。

下面,就让我们一起上手这款国产开源网站防火墙神器吧!

三、安装部署

雷池采用容器化部署的方式,服务由多个 Docker 容器组成,支持简单方便的一条龙安装脚本。只要服务器能联网,执行安装脚本后,自动拉取镜像、初始化配置文件、启动服务一气呵成。

3.1 一条命令安装

直接使用在线安装脚本。

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

3.2 克隆仓库安装

克隆仓库后,执行 setup.sh 脚本即可安装。

git clone git@github.com:chaitin/safeline.git
cd safeline
bash ./setup.sh

3.3 安装成功

整个安装过程对新手十分友好,提示词为中文、自动安装 Docker 等,只需按照提示一路向下即可。

  ____             __          _       _
/ ___| __ _ / _| ___ | | (_) _ __ ___
\___ \ / _` | | |_ / _ \ | | | | | '_ \ / _ \
___) | | (_| | | _| | __/ | |___ | | | | | | | __/
|____/ \__,_| |_| \___| |_____| |_| |_| |_| \___| [SafeLine] 脚本调用方式确认正常
[SafeLine] 缺少 Docker 环境
[SafeLine] 是否需要自动安装 Docker (Y/n)
# Executing docker install script, commit: xxx
...
[SafeLine] 雷池安装目录 (留空则为 '/data/safeline'):
[SafeLine] 目录 '/data/safeline' 当前剩余存储空间为 47G ,雷池至少需要 5G,是否确定 (Y/n)
[SafeLine] 创建安装目录 '/data/safeline' 成功
...
[SafeLine] 雷池 WAF 社区版安装成功,请访问以下地址访问控制台
[SafeLine] https://0.0.0.0:9443/ # 安装成功

安装完成后,根据提示访问本地的 Web 服务端口即可开始使用。

四、工作原理

下面将通过简单的 WAF 部署架构图,介绍雷池的工作原理。

下图是一个简单的网站拓扑,外部用户发出请求,经过网络最终传递到网站服务器。

此时,若外部用户中存在恶意用户,那么由恶意用户发出的攻击请求也会经过网络最终传递到网站服务器。

雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。

通过以上行为,可以在请求到达网站服务器前过滤掉恶意请求,最终确保外部攻击流量无法触达网站服务器。

五、核心能力

雷池是一款内外兼修的网站防火墙,它不光有好看的界面,还有强大的网站安全防护功能。

5.1 防护 Web 攻击、CC 攻击、爬虫

雷池的 Web 攻击检测能力由语义分析算法驱动,不同于通用的语义分析,雷池的自动机引擎 yanshi 可以支持对片段语法进行分析,对 HTTP 请求参数进行自动化递归解码,提取请求参数中的攻击片段,并通过攻击打分模型对参数中的攻击代码进行识别,最终判定 HTTP 请求是否为恶意攻击,具备对通用攻击的防护能力,也具备泛化识别能力,可以实现无规则检测 0Day 攻击。

雷池集成了基于恶意 IP 情报、客户端指纹、鼠标键盘行为识别、访问频率限制的人机验证算法,可用来对抗爬虫、对抗扫描、对抗 CC 攻击

5.2 Web 流量访问控制

雷池支持通过可视化页面配置网站的访问控制黑白名单,允许匹配源 IP、路径、域名、Header、Body 等条件。

5.3 网站资源识别

雷池基于 HTTP 流量自动识别 Web 资源,从而生成 API 画像持续统计和分析。采用动态基线和预测分析技术分析异常访问行为,精准识别操作正常但请求异常的攻击行为,从正常行为中检测出异常流量。

六、最后

雷池是长亭科技耗时近 10 年打造的开源网站防火墙,具有开箱即用、企业防护能力、高性能等特点。

  • 开箱即用:安装只需要一条命令,界面简单易操作。

  • 功能强大:首创的语义分析驱动的 Web 攻击检测算法,支持 IP 威胁情报、动态限频、智能建模等企业级产品才有的高级防护能力。

  • 高性能:在 Nginx 之上增加了攻击检测能力,轻松支撑 10000+ TPS 流量,攻击检测带来的延迟在 1 毫秒级别。

如果你使用后觉得雷池还不错,就给它点一个 Star 吧!

GitHub 地址:https://github.com/chaitin/safeline

一款国产开源 Web 防火墙神器!的更多相关文章

  1. GitHub 上最热的10款国产开源软件

    衡量一个开源产品好不好,看看产品在 GitHub 的 Star 数量就知道了.由此可见,GitHub 已经沦落为开源产品的“大众点评”了.一个开源产品希望快速的被开发者知道.快速的获取反馈,放到 Gi ...

  2. 几款国产开源的Windows界面库

    上次介绍的几款图形界面库http://blog.okbase.net/vchelp/archive/23.html都是国外的开源项目,今天介绍的几款都是国人的开源项目,大部分是采用DirectUI设计 ...

  3. 6 款国外开源web oa办公系统(转)

    国外的开源产品较多,而且大多提供免费的社区版本,oa办公系统也不例外. 1.eGroupware eGroupware是一个多用户,在以PHP为基础的API上的定制集为基础开发的,以WEB为基础的工作 ...

  4. 【转】10款GitHub上最火爆的国产开源项目

    将开源做到极致,提高效率方便更多用户 接触开源时间虽然比较短但是后续会努力为开源社区贡献自己微薄的力量 衡量一个开源产品好不好,看看产品在 GitHub 的 Star 数量就知道了.由此可见,GitH ...

  5. 点评10款Github上最火爆的国产开源项目

    衡量一个开源产品好不好,看看产品在Github的Star数量就知道了.由此可见,Github已经沦落为开源产品的“大众点评”了. 一个开源产品希望快速的被开发者知道.快速的获取反馈,放到Github上 ...

  6. 10款GitHub上最火爆的国产开源项目

    衡量一个开源产品好不好,看看产品在 GitHub 的 Star 数量就知道了.由此可见,GitHub 已经沦落为开源产品的“大众点评”了.一个开源产品希望快速的被开发者知道.快速的获取反馈,放到 Gi ...

  7. 国产开源JavaWeb应用程序框架——XWAF(1)

    XWAF是一个基于java反射和Servlet 技术的国产开源Web应用程序框架.其英文全称为“eXtensible Web Application Framework”,意即“可扩展的网络应用程序框 ...

  8. 2019年十大开源WEB应用防火墙点评

    2019年十大开源WEB应用防火墙点评 随着WEB应用的爆炸式成长和HTTPS加密的普及,针对网络应用层的攻击,像SQL注入.跨站脚本攻击.参数篡改.应用平台漏洞攻击.拒绝服务攻击等越来越多,传统的防 ...

  9. 教你用免费的hihttps开源WEB应用防火墙阻止暴力破解密码

    教你用免费的hihttps开源WEB应用防火墙阻止暴力破解密码 很多企业都有自己的网站,需要用户登录后才能访问,但有大量的黑客攻击软件可以暴力破解网站密码,即使破解不了也非常恶心.有没有免费的解决办法 ...

  10. JAVA首选五款开源Web开发框架

    Spring Spring是一个开源的Java/Java EE全功能栈应用程序框架,在JavaEE社区中非常受欢迎,以Apache许可证形式发布,也有.NET平台上的移植版本. Struts2 Str ...

随机推荐

  1. .cur 图片加载提示 You may need an appropriate loader to handle this file type

    最近一个gis 项目需要加载一个.cur的图标,但是编译时提示 You may need an appropriate loader to handle this file type, current ...

  2. 《Generative Adversarial Nets》论文精读

    论文精读<Generative Adversarial Nets> 导言:生成模型是目前爆火的一个研究方向,据Microsoft对于ChatGPT-4的研究称"ChatGPT-4 ...

  3. [MAUI]模仿Chrome下拉标签页的交互实现

    @ 目录 创建粘滞效果的圆控件 贝塞尔曲线绘制圆 创建控件 创建形变 可控形变 形变边界 形变动画 创建手势控件 创建页面布局 更新拖拽物位置 其它细节 项目地址 今天来说说怎样在.NET MAUI中 ...

  4. 如何使用 Megatron-LM 训练语言模型

    在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单.我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练.Hugging Face  Accelerate 的创建 ...

  5. 杭电多校第二场 DOS Card

    杭电多校第二场 DOS Card 评价一下这道题:我写过最爽的线段树题. 这道题真的非常令人身心愉悦,非常厉害的一道线段树入门题.我写这个一次调试都没有,过了样例就交了就过了,一切都是行云流水. 这道 ...

  6. Java发展历程及各版本新特性

    Java的历史是非常有意思的.1990年底,Sun Microsystems在工作站计算机市场上领先世界,并继续保持健康发展.Sun想把本公司的创新和专业知识应用到即将到来的消费电子市场领域,于是该公 ...

  7. Java Websocket 01: 原生模式 Websocket 基础通信

    目录 Java Websocket 01: 原生模式 Websocket 基础通信 Java Websocket 02: 原生模式通过 Websocket 传输文件 Websocket 原生模式 原生 ...

  8. 基于JavaFX的扫雷游戏实现(二)——游戏界面

      废话环节:看过上期文章的小伙伴现在可能还是一头雾水,怎么就完成了核心内容,界面呢?哎我说别急让我先急,博主这不夜以继日地肝出了界面部分嘛.还是老规矩,不会把所有地方都照顾到,只挑一些有代表性的内容 ...

  9. Asp-Net-Core学习笔记:gRPC快速入门

    前言 此前,我在做跨语言调用时,用的是 Facebook 的 Thrift,挺轻量的,还不错. Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务.它被当作一个远程过程调用 ...

  10. Excel 进度图表制作

    Excel 改变图标的形状 最终效果 过程有点杂乱,不再重新整理,基本照着下面的设就完事了. 未完成的想用柱型,和已完成的相结合 右击,更改表类型 选择簇状柱形图.次标轴 注意主.次坐标 进度改为折线 ...