如果您已创建阿里云传统型负载均衡(Classic Load Balancer,简称CLB)实例,且已为端口添加HTTP或HTTPS监听,您可以将该端口添加到Web应用防火墙(Web Application Firewall,简称WAF),将Web业务引流到WAF防护。本文介绍如何为七层CLB(HTTP/HTTPS)开启WAF防护。
背景信息
CLB通过设置虚拟服务地址,将添加的同一地域的多台云服务器虚拟成一个高性能和高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的云服务器。更多信息,请参见什么是传统型负载均衡CLB。
WAF支持为七层CLB实例开启安全防护。将七层CLB实例接入WAF后,实例所有的Web业务流量将被指定网关牵引到WAF进行检测。WAF过滤Web应用攻击后,将正常的业务流量转发回CLB服务器。具体网络架构如下图所示:
使用限制
云产品接入适用于快速将阿里云ALB、MSE、FC、CLB、ECS、NLB资源接入WAF防护。如需防护非阿里云资源的Web应用,请通过CNAME接入方式将域名下业务接入WAF,具体操作请参见添加域名。
限制项类型 | 描述 |
支持的实例 | 同时满足:
|
支持的地域 |
|
引流端口配置的数量 | 与防护对象数量保持一致:
|
TLS安全策略 | 配置HTTPS监听的引流端口仅支持CLB内置的TLS安全策略。如果该端口配置了内置TLS安全策略以外的其他自定义TLS安全策略,会导致接入失败。更多信息,请参见TLS安全策略有哪些。 |
业务同时接入DDoS高防和WAF | 如果您的业务需要同时接入DDoS高防和WAF,则只有在业务通过域名接入(即七层接入模式)接入DDoS高防时,该业务才支持通过透明接入模式接入WAF。 |
前提条件
已开通WAF 3.0服务。具体操作,请参见开通包年包月WAF 3.0、开通按量付费WAF 3.0。
已创建满足使用限制的CLB实例,且已为CLB实例添加HTTP或HTTPS监听。关于使用限制描述,请参见使用限制。关于为CLB实例添加HTTP或HTTPS监听的具体操作,请参见添加HTTP监听、添加HTTPS监听。
如果您开通的是包年包月实例,请确认您的实例还可以添加防护对象。否则,将无法进行云产品接入。
您可以访问防护对象页面,查看实例还可以添加的防护对象数。
添加引流端口
实例接入WAF时,Web业务可能会出现秒级闪断。在客户端可自动重连的情况下该闪断会自动恢复,不会对您的业务造成影响,请您关注业务并根据业务系统评估准备重连或回源等相关容灾机制。
CLB(HTTP/HTTPS)实例接入WAF后,如果进行如下操作,引流端口会自动取消接入。您需要重新添加端口,否则,业务流量将不会经过WAF防护。
更换实例上绑定的公网IP
引流端口的证书更换为非数字证书管理服务(原 SSL 证书)下发的证书
开启双向认证
接入WAF防护的监听端口被删除
CLB实例被删除
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,单击接入管理。
选择云产品接入页签,在左侧云产品类型列表,选择CLB(HTTP/HTTPS),单击接入。
根据页面提示,单击立即授权,完成云产品授权。
完成后,阿里云将自动为您创建WAF服务关联角色AliyunServiceRoleForWAF。您可以在RAM控制台的 页面,查看阿里云为WAF自动创建的服务关联角色。
说明如果您已经完成云产品授权,则授权页面不会出现,您可以直接执行后续步骤。
在接入资产- 七层CLB面板,完成如下配置。
配置项
相关操作
选择需要添加的实例&端口
同步最新资产
如果要添加的实例未同步到实例列表,单击同步最新资产,更新实例列表。
添加端口
定位到要添加的实例,单击操作列的添加端口。
选择要添加的HTTP或HTTPS端口,单击确定。
重要如果要添加HTTPS端口,请确认该端口配置的证书是通过阿里云数字证书管理服务(原 SSL 证书)购买的,或已上传到数字证书管理服务(原 SSL 证书)。否则会因为WAF证书来源校验失败,而造成实例接入失败。更多信息,请参见添加HTTPS引流端口时,显示CLB证书不全,该如何处理?
七层CLB(HTTP/HTTPS)实例存在过期证书或来源为手动上传证书,无法同步CLB实例证书。您需要替换过期证书或把来源为手动上传的证书更换为数字证书管理服务(原SSL)的证书,登录SSL证书控制台。
WAF前是否有七层代理(高防/CDN等)
如果网站在接入WAF前启用了其他七层代理服务(例如DDoS高防、CDN等),配置该功能。
选择否(默认),表示WAF收到客户端直接发起的业务请求(不是从其他代理服务转发的请求)。
说明WAF直接取与WAF建立连接的IP(来自请求的
REMOTE_ADDR
字段)作为客户端IP。选择是,表示WAF收到的业务请求来自其他七层代理服务转发(不是客户端直接发起的请求)。为保证WAF可以获取真实的客户端IP进行安全分析,您需要进一步设置客户端IP判定方式。
资源组
从资源组列表中选择该域名所属资源组。如果不选择,则默认加入默认资源组。
说明您可以使用资源管理服务创建资源组,根据业务部门、项目等维度对云资源进行分组管理。更多信息,请参见创建资源组。
高级设置
确认并选中要添加的实例后,单击确定。
完成接入后,WAF会自动生成一个命名为“实例id-端口-资产类型”的防护对象,并为该防护对象默认开启基础防护规则。您可以在接入列表,单击已接入的实例ID,在防护对象页面,查看自动添加的防护对象,并为其配置防护规则。具体操作,请参见防护配置概述。
管理WAF
在WAF侧管理WAF防护
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,单击接入管理。
管理WAF防护
在云产品接入页签,从左侧云产品类型列表中选择CLB(HTTP/HTTPS),查看已接入的CLB实例。
设置防护对象和防护规则
开启WAF防护后,WAF会自动生成一个后缀为-clb7的防护对象,并为该防护对象默认开启基础防护规则。您可以在接入列表,单击已接入的实例ID,在防护对象页面,查看自动添加的防护对象,并为其配置防护规则。具体操作,请参见防护配置概述。
查看源站服务器和取消接入
实例接入WAF后,您可以查看源站服务器的详细防护信息,以及在需要紧急容灾的情况下强制关闭引流或删除引流端口。
在CLB(HTTP/HTTPS)分页,单击目标实例前的图标,展开查看该实例下已添加到WAF防护的端口。
查看端口详情:单击端口详情,查看端口、协议、配置的证书信息,设置WAF前是否有七层代理(高防/CDN等)、启用流量标记(高级设置)、配置回源长连接(高级设置)。
取消接入:单击目标实例名称操作列的取消接入,在取消接入对话框,单击确定。
重要取消接入WAF时,Web业务可能会出现秒级闪断。在客户端可自动重连的情况下该闪断会自动恢复,不会对您的业务造成影响,请您关注业务并根据业务系统评估准备重连或回源等相关容灾机制。
取消接入后,您资产上的流量将不再受到WAF保护,您可以单击接入,重新添加端口。具体操作,请参见添加引流端口。
更新引流端口绑定的证书
如果证书即将到期或其他原因导致证书发生变更(例如证书被吊销)时,您需要更新引流端口绑定的证书。
证书的剩余有效期不足30个自然日时,WAF会在接入列表的证书信息处,通过图标,提示您的证书即将过期,请尽快更新证书。
如果您希望在证书即将到期时,收到邮件、短信等提醒,您可以设置SSL证书消息提醒,具体操作,请参见设置SSL证书消息提醒。
为避免您的业务因证书到期无法正常使用,您可以开通阿里云数字证书管理服务(原 SSL 证书)的证书托管服务,在证书即将到期时帮您自动申请证书。更多信息,请参见什么是托管服务。
具体操作如下所示:
续费证书或将证书上传到数字证书管理服务(原 SSL 证书)。具体操作,请参见SSL证书续费或上传和共享SSL证书。
同步证书到七层CLB实例。
在数字证书管理服务(原 SSL 证书)控制台部署证书到七层CLB实例。具体操作,请参见部署SSL证书到阿里云产品。
在负载均衡控制台更新证书。具体操作,请参见替换证书。
如果在 CLB 控制台直接更换证书,WAF 会自动同步。如果从数字证书管理服务(原 SSL 证书)控制台更新 CLB 上的证书,您需要在 WAF 控制台执行如下操作:
在
页签,单击接入。在接入资产- 七层CLB面板,单击同步最新资产,手动同步更新。
如果引流端口更换的证书为非数字证书管理服务(原 SSL 证书)购买的证书,引流端口会自动取消接入。您需要在更换证书后重新添加端口,具体操作,请参见。
如果对应的七层CLB实例关联有过期证书,则WAF侧无法同步最新证书,需要将过期证书删除后再同步最新证书。
在CLB侧管理WAF防护
常见问题
验证七层CLB(HTTP/HTTPS)是否成功接入WAF
在浏览器中输入域名进行访问测试,如果网站可以正常访问,则表示WAF接入成功。
在域名后输入SQL恶意攻击代码验证防护效果,例如
xxx.xxxx.com?id=1 and 1=1
,返回如下 405 拦截提示页面,则表示攻击被拦截。
CLB提供基于四层 (TCP协议和UDP协议)和七层(HTTP协议和HTTPS协议)的负载均衡:
四层监听将请求直接转发给后端服务器。客户端请求到达CLB后,CLB根据监听中配置的后端口修改报文的目的IP和目的端口,并将流量转发给对应的后端服务器,客户端和后端服务器建立TCP连接。
七层监听原理上是反向代理的一种实现。客户端请求到达CLB后,CLB与后端服务器建立TCP连接,即再次通过新TCP连接HTTP协议访问后端服务器,而不是直接转发报文到后端服务器。七层监听比四层监听在底层实现上多了一个Tengine处理环节。此外,客户端端口不足、后端服务器连接过多等场景可能导致七层服务性能不高,如果您对性能有很高的要求,建议您选择四层监听。
更多详细信息,请参见CLB监听概述。
为七层CLB(HTTP/HTTPS)开启WAF防护 ,可以把HTTP、HTTPS 两个端口同时接入吗?
可以。
CLB接入时报错提示“端口号为443的CLB证书不全,请到CLB控制台重新选择来源是SSL证书服务的证书。”
需要登录SSL证书控制台续费或者上传证书,在CLB重新选择这个证书,才可以在WAF中接入使用。具体操作,请参见SSL证书续费或上传和共享SSL证书。
相关文档
如需监听获取客户端真实IP,请参见通过CLB七层监听获取客户端真实IP。
如需排查接入配置页面找不到示例,请参见接入配置页面找不到需要接入的CLB实例或ECS实例的排查方法。