如何使用ASM网关对接阿里云WAF

简介: Web应用防火墙(Web Application Firewall,简称WAF)为您的网站或App业务提供一站式安全防护。WAF可以有效识别Web业务流量的恶意特征,在对流量清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致性能异常等问题,从而保障网站的业务安全和数据安全。ASM网关支持对接WAF,并且可以通过自定义访问日志格式来查看WAF对回源请求添加的Header,更方便线上运维。本文将介绍ASM网关如何对接WAF,以及如何使用ASM的自定义访问日志能力进行调试。

前提条件

已创建ASM实例。具体操作,请参见创建ASM实例

已创建ACK集群。具体操作,请参见创建Kubernetes托管版集群

添加集群到ASM实例。具体操作,请参见添加集群到ASM实例

已部署入口网关服务。具体操作,请参见添加入口网关服务

已经部署了httpbin应用,暴露在网关的80端口。

步骤1:将ASM网关接入WAF

进入WAF控制台,创建WAF3.0实例(如果已经有WAF实例,可以忽略)。

点击“接入管理”菜单,选择“CNAME接入”,然后点击“接入”按钮。

填写有效域名(中国内地的WAF会校验域名是否备案)。然后按照上图填写配置即可。点击下一步。

image.png

在“服务器地址”处选择“IP”,然后填写ASM网关的公网地址。然后勾选“启用流量标记”,如图所示添加三个Header(该配置会在通过WAF发往ASM网关的请求中添加对应的三个Header)。

image.png

点击上图的提交,进入如下界面。

image.png

记录WAF提供的CNAME地址。点击“完成”,至此已经将ASM网关和WAF对接完成。

步骤2(可选):自定义ASM访问日志格式

由于经过WAF校验的请求可能会携带一些特殊的Header。比如步骤1中配置在请求中携带了一个自定义Header和两个标识请求源IP、源端口的Header。在将线上应用接入WAF时,如果不能在请求链路上看到这个Header,将会给链路联调造成极大困难。此时,可以使用ASM可观测能力的自定义访问日志功能。

ASM的自定义访问日志功能支持打印请求中的自定义Header,配置完成之后就可以在网关和Sidecar的日志中,看到请求的这个Header值,下面将演示如何配置。

image.png

步骤3:测试

使用WAF提供的CNAME地址,用如下方式访问httpbin应用的/status/418路径。

curl-HHost:${WAF处配置的域名}"http://${WAF提供的CNAME地址}/status/418"-v*   Trying x.x.x.x:80...
* Connected to geszcfxxxxxxxxxxxxxxxxxxxxppbeiz.aliyunwaf1.com (x.x.x.x) port 80 (#0)> GET /status/418 HTTP/1.1
> Host:xxxx
> User-Agent: curl/7.84.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 418 Unknown
< Date: Wed, 22 Feb 202305:07:23 GMT
< Content-Length: 135< Connection: keep-alive
< Set-Cookie: acw_tc=0bc1599a16770424432844282e82xxxxxxxxxxxxxxxxxxx1ad989e7e5245f;path=/;HttpOnly;Max-Age=1800< server: istio-envoy
< x-more-info: http://tools.ietf.org/html/rfc2324
< access-control-allow-origin: *
< access-control-allow-credentials: true< x-envoy-upstream-service-time: 1< 
-=[ teapot ]=-       _...._
     .'  _ _ `.    | ."` ^ `". _,    \_;`"---"`|//      |       ;/      \_     _/        `"""`* Connection #0 to host geszcxxxxxxxxxxxxxxxxxxxxcppbeiz.aliyunwaf1.com left intact

可以看到,成功访问了httpbin的/status/418路径。

此处并没有使用原始域名访问。如需使用原始域名访问,需要您自行修改域名解析规则,将原始域名解析到WAF提供的CNAME地址上去。

接下来查看ASM控制台上的日志。点击“可观测管理中心”菜单,进入“日志中心”页面,在“网关日志”标签页下,搜索418,可以看到如下日志:

image.png

可以看到,网关的日志中已经打印出了WAF添加的Header值。

对接完成之后,您可以在WAF控制台上配置其他更高级的防护能力,保护您的网站不受攻击。如果您还有其他自定义Header需要全链路观测的话,可以仿照步骤2中的方式配置。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
使用vos3000时sip O 口网关注册成对接网关作为 ivr 接入,主叫号码如何设置
在VOS3000系统中,将SIP终端作为IVR接入点涉及配置SIP网关指向IVR应用,注册SIP设备并设定含用户名和域名的SIP账户。主叫号码设置可在注册时通过 Caller-ID 头部或拨号计划完成。拨号规则用于控制主叫号码传递,例如根据来源自动调整。配置后需测试主叫号码及IVR接入。不同版本可能有差异,欢迎交流学习。
|
3月前
sms4j对接阿里云短信
sms4j对接阿里云短信
149 0
|
12天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
14天前
|
域名解析 运维 网络协议
使用ACME CA为ASM网关签发证书
阿里云服务网格ASM提供全托管式服务网格平台,兼容Istio开源服务网格,简化服务治理,包括流量管理、认证安全和可观测性。产品文档:[https://help.aliyun.com/zh/asm](https://help.aliyun.com/zh/asm)。本文指导如何使用cert-manager和ACME CA为ASM网关获取HTTPS证书,涉及ACME协议、挑战验证及Let's Encrypt的使用。
48 2
|
2月前
新版阿里云内容安全对接
新版阿里云内容安全对接
57 1
|
2月前
对接阿里云RTC
对接阿里云RTC
30 0
|
2月前
对接阿里云RTC
对接阿里云RTC
48 0
|
5月前
|
存储 JavaScript 前端开发
html+vue组件实现阿里云OSS对接
html+vue组件实现阿里云OSS对接
403 0
|
5月前
|
Kubernetes API 容器
基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道
基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道
10890 6
|
6月前
|
负载均衡 网络协议 测试技术
使用eBPF加速阿里云服务网格ASM
服务网格下的Sidecar 代理业务服务的收发请求,并提供业务层面的流量控制(路由)、负载均衡等功能,会引入一定的Latency 延迟。 通过eBPF 技术(部署sidecar 加速组件)将同节点下两个进程间的TCP 报文进行socket 短路可以提升一定的性能,HTTP 场景下QPS 可提升15% 左右, 有效地降低业务请求的Latency 。
899 0
使用eBPF加速阿里云服务网格ASM