APISIX 联动雷池 WAF 实现 Web 安全防护 #295
safe1ine
started this conversation in
Show and tell
Replies: 2 comments 2 replies
-
联动apisix后, 怎样触发人机验证? |
Beta Was this translation helpful? Give feedback.
1 reply
-
能介绍下apisix调用waf的原理么?是否跟使用waf作为反代一样流量都会经过waf? 求详细解答。 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
原文:APISIX 联动雷池 WAF 实现 Web 安全防护
Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。
雷池是由长亭科技开发的 WAF 系统,提供对 HTTP 请求的安全请求,提供完整的 API 管理和防护能力。
近日,长亭科技与 APISIX 达成战略合作,自 APISIX 3.5.0 之后的版本将内置长亭雷池 WAF 插件,在启用
chaitin-waf
插件后,流量将被转发给长亭 WAF 服务,用以检测和防止各种 Web 应用程序攻击,以保护应用程序和用户数据的安全。开源仓库
雷池:https://github.com/chaitin/SafeLine
apisix:https://github.com/apache/apisix
使用方式
安装 APISIX
本文使用 apisix 的 docker 版本来做演示,克隆 apisix-docker 仓库,运行以下命令来安装:
安装雷池
使用雷池官方提供的一句话安装命令即可:
不出意外的话,一路回车就能安装成功。
修改雷池检测引擎的工作模式
社区版雷池的检测引擎默认以 unix socket 的方式提供服务,我们需要把他修改为 tcp 方式,供 APISIX 调用。
进入雷池检测引擎的配置目录:
用文本编辑器打开目录里的 detector.yml 文件:
我们需要将 bind 方式从 unix socket 改为 tcp,修改为以下内容即可:
这样我们就把雷池引擎的服务监听到了 8000 端口,现在只需要把容器内的 8000 端口映射到宿主机即可。
进入雷池的安装目录
用文本编辑器打开目录里的 compose.yaml 文件,为 detector 容器增加 ports 字段,暴露其 8000
端口,参考如下:
OK,改好了,在雷池安装目录下执行以下命令重启雷池即可生效。
修改雷池的默认端口
雷池和 apisix 默认都监听 9443 端口,如果在同一台机器上安装,需要修改雷池的默认端口。
在雷池的安装目录下,有一个名为 .env 的隐藏文件,其中的 MGT_PORT 字段,修改这里后使用上面的方法再重启雷池即可生效。
在 apisix 里绑定雷池
调用 apisix 的 api,设置雷池检测引擎的地址,供 apisix 调用,参考以下请求:
调用 apisix 的 api,设置一条路由,参考以下请求:
测试防护效果
经过以上步骤,雷池 + apisix 基本配置完成,可以试试效果了,请求 9080 端口,可以看到 apisix 成功代理了上游服务器的页面:
在请求中加入一个 a 参数,模拟 SQL 注入攻击:
返回了 HTTP 403 错误,从错误消息中可以看出,雷池成功抵御了此次攻击。
打开雷池的控制台界面,可以看到雷池记录了完整的攻击信息
最后
本文主要介绍了在 APISIX 3.5.0 之上快速集成雷池 Web 防护能力的使用方式,如果对项目感兴趣,欢迎到 github 献上一颗 star。
雷池:https://github.com/chaitin/SafeLine
apisix:https://github.com/apache/apisix
Beta Was this translation helpful? Give feedback.
All reactions