上线了 做商务网站,wordpress调用页面名称,重庆住房城乡建设厅网站,以下属于网站页面设计的原则有Apache APISIX 是一个动态、实时、高性能的云原生 API 网关#xff0c;提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。
雷池是由长亭科技开发的 WAF 系统#xff0c;提供对 HTTP 请求的安全请求#xff0c;提供完整的 API 管理和…Apache APISIX 是一个动态、实时、高性能的云原生 API 网关提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。
雷池是由长亭科技开发的 WAF 系统提供对 HTTP 请求的安全请求提供完整的 API 管理和防护能力。 WAF 是 Web Application Firewall 的缩写也被称为 Web 应用防火墙。区别于传统防火墙WAF 工作在应用层对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果使其免于受到黑客的攻击。 近日长亭科技与 APISIX 达成战略合作自 APISIX 3.5.0 之后的版本将内置长亭雷池 WAF 插件在启用 chaitin-waf 插件后流量将被转发给长亭 WAF 服务用以检测和防止各种 Web 应用程序攻击以保护应用程序和用户数据的安全。
开源仓库
雷池https://github.com/chaitin/SafeLine
apisixhttps://github.com/apache/apisix
使用方式
安装 APISIX 注意要使用 APISIX 3.5.0 及以上版本的 APISIX 本文使用 apisix 的 docker 版本来做演示克隆 apisix-docker 仓库运行以下命令来安装
git clone https://github.com/apache/apisix-docker
cd apisix-docker/compose
echo APISIX_DOCKER_TAG3.5.0-debian .env
docker compose -f docker-compose-release.yaml up -d业务地址http://127.0.0.1:9080/管理地址http://127.0.0.1:9180/
安装雷池
使用雷池官方提供的一句话安装命令即可
bash -c $(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)不出意外的话一路回车就能安装成功。
安装目录/data/safeline/控制台https://127.0.0.1:9443/
修改雷池检测引擎的工作模式
社区版雷池的检测引擎默认以 unix socket 的方式提供服务我们需要把他修改为 tcp 方式供 APISIX 调用。
进入雷池检测引擎的配置目录
cd /data/safeline/resources/detector/用文本编辑器打开目录里的 detector.yml 文件
# bind_addr: 0.0.0.0
# listen_port: 8000我们需要将 bind 方式从 unix socket 改为 tcp修改为以下内容即可
bind_addr: 0.0.0.0
listen_port: 8000这样我们就把雷池引擎的服务监听到了 8000 端口现在只需要把容器内的 8000 端口映射到宿主机即可。
进入雷池的安装目录
cd /data/safeline/用文本编辑器打开目录里的 compose.yaml 文件为 detector 容器增加 ports 字段暴露其 8000
端口参考如下
......detector:......ports:- 8000:8000......OK改好了在雷池安装目录下执行以下命令重启雷池即可生效。
docker compose down
docker compose up -d修改雷池的默认端口
雷池和 apisix 默认都监听 9443 端口如果在同一台机器上安装需要修改雷池的默认端口。
在雷池的安装目录下有一个名为 .env 的隐藏文件其中的 MGT_PORT 字段修改这里后使用上面的方法再重启雷池即可生效。
在 apisix 里绑定雷池
调用 apisix 的 api设置雷池检测引擎的地址供 apisix 调用参考以下请求 192.168.99.11 是我本地雷池的地址替换为你的 IP 即可 curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
{nodes:[{host: 192.168.99.11,port: 8000}]
}调用 apisix 的 api设置一条路由参考以下请求 192.168.99.12:80 是上游服务器的地址apisix 会将请求反向代理到这个地址。 curl http://127.0.0.1:9180/apisix/admin/routes/1 -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
{uri: /*,plugins: {chaitin-waf: {}},upstream: {type: roundrobin,nodes: {192.168.99.12:80: 1}}
}测试防护效果
经过以上步骤雷池 apisix 基本配置完成可以试试效果了请求 9080 端口可以看到 apisix 成功代理了上游服务器的页面
curl http://127.0.0.1:9080/在请求中加入一个 a 参数模拟 SQL 注入攻击
curl http://127.0.0.1:9080/ -d a1 and 11返回了 HTTP 403 错误从错误消息中可以看出雷池成功抵御了此次攻击。
{code: 403, success:false, message: blocked by Chaitin SafeLine Web Application Firewall, event_id: 18e0f220f7a94127acb21ad3c1b4ac47}打开雷池的控制台界面可以看到雷池记录了完整的攻击信息 最后
本文主要介绍了在 APISIX 3.5.0 之上快速集成雷池 Web 防护能力的使用方式如果对项目感兴趣欢迎到 github 献上一颗 star。
雷池https://github.com/chaitin/SafeLine
apisixhttps://github.com/apache/apisix