透明接入模式目前支持接入阿里云ALB实例、SLB实例(七层监听)、SLB实例(四层监听)、ECS实例的Web流量。本文介绍了在配置透明接入时,如何根据Web应用的部署架构,为服务器实例配置引流端口(即为服务器实例上提供Web服务的端口开启透明接入,将端口流量引流到WAF进行防护)。
注意事项
引流端口配置针对服务器实例+端口生效。您为某个服务器实例+端口配置引流后,则端口的全部流量默认接入WAF防护。
如果多个域名共用同一个服务器端口,则您为其中任意一个域名配置引流,都表示将使用同一个端口的所有域名的流量接入WAF防护,暂不支持仅将端口上部分域名的流量接入WAF防护。
假设您的ECS实例上有域名A和B都通过80端口提供服务,则您为域名A配置端口引流后,则默认域名B的流量也接入WAF防护。这种情况下,您在为域名B配置端口引流时,端口配置区域默认已选中80端口(配置域名A时添加的),您无需修改该配置,只需确认即可。
四层SLB实例、ECS实例上的HTTPS网站配置端口引流时,您必须上传服务器实例+端口下的所有SSL证书,否则可能引发业务异常:
如果端口下只有一个SSL证书,仅上传默认证书即可。
如果端口下有多个SSL证书,需要上传默认证书和所有扩展证书。
配置示例
以下示例分别介绍了单服务器多域名(不共用端口)、单服务器多域名(共用端口)、多服务器多域名(共用端口)场景下,如何为不同域名配置端口引流,供您参考:
场景1:我有1个服务器实例(server1)和2个域名(domain1和domain2),实例(server1)的80端口监听域名(domain1)的流量,实例(server1)的443端口监听域名(domain2)的流量。
这种情况下,您可以参照以下步骤,依次为两个域名配置端口引流:
添加域名(domain1)到WAF防护:在端口引流配置中,选中80端口。
添加完成后,实例(server1)80端口的Web流量(对应域名domain1)已接入WAF防护。
添加域名(domain2)到WAF防护:在端口引流配置中,选中443端口。
说明此时80端口已默认选中,表示域名(domain1)的流量已接入WAF防护。您无需修改默认选中端口的状态。
添加完成后,实例(server1)443端口的Web流量(对应域名domain2)已接入WAF防护。
场景2:我有1个服务器实例(server1)和2个域名(domain1和domain2),实例(server1)的80端口监听域名(domain1和domain2)的流量。
这种情况下,您可以参照以下步骤,依次为两个域名配置端口引流:
添加域名(domain1)到WAF防护:在端口引流配置中,选中80端口。
添加完成后,实例(server1)80端口的Web流量(对应域名domain1和domain2)已接入WAF防护。
此时,域名列表中只有域名(domain1),表示您可以为domain1设置网站防护策略并查询与domain1相关的防护数据;domain2的流量仅受到WAF默认防护策略的保护。
添加域名(domain2)到WAF防护:端口引流配置中已默认选中80端口,无需修改,直接确认即可。
添加完成后,域名(domain2)将会出现在域名列表,表示您可以为domain2设置网站防护策略并查询与domain2相关的防护数据。
场景3:我有2个服务器实例(server1和server2)和3个域名(domain1、domain2和domain3),实例(server1)的80端口监听域名(domain1和domain2)的流量,实例(server2)的80端口监听域名(domain2和domain3)的流量。
这种情况下,如果您要为域名(domain2)配置端口引流,则需要在端口引流配置中,选中实例(server1)的80端口和实例(server2)的80端口。
添加完成后,实例(server1)80端口的Web流量(对应域名domain2的部分流量的domain1的全部流量)和实例(server2)80端口的Web流量(对应域名domain2的部分流量和domain3的全部流量)已接入WAF防护。
此时,域名列表中只有域名(domain2),表示您可以为domain2设置网站防护策略并查询与domain2相关的防护数据;domain1在实例(server1)80端口的流量和domain3在实例(server2)80端口的流量仅受到WAF默认防护策略的保护。
如果您继续为域名(domain1和domain3)配置端口引流,则在端口引流配置中,默认已选中实例(server1)的80端口和实例(server2)的80端口,您无需修改该配置,直接确认即可。
说明默认选中的端口表示域名(domain2)的Web流量已接入WAF防护。您无需修改默认选中端口的状态。
添加完成后,域名(domain1和domain3)将会出现在域名列表。
ALB实例端口引流
推荐场景:您部署了应用型负载均衡(ALB)实例作为Web服务的入口,需要为ALB实例监听端口上的流量开启WAF防护。
前置步骤:在端口配置区域,单击ALB类型页签。
实例列表说明:实例列表展示了负载均衡服务中已创建的公网ALB实例,端口号列展示了ALB实例下已创建的HTTP或HTTPS监听对应的监听端口。
为监听端口开启WAF防护的方法:在负载均衡控制台,为ALB实例创建HTTP或HTTPS监听,并在监听配置中选中为监听开启WAF安全防护。关于为ALB实例创建HTTP、HTTPS监听的具体操作,请参见添加HTTP监听、添加HTTPS监听。
如果您已经创建过HTTP或HTTPS监听,可以通过修改监听配置,为监听开启或关闭WAF安全防护。
在WAF控制台透明接入模块的ALB类型实例列表中,您只可以查看已创建的HTTP或HTTPS监听是否开启了WAF防护,不支持修改。如需修改,必须在负载均衡控制台操作。
七层SLB实例端口引流
推荐场景:您部署了负载均衡(SLB)实例作为Web服务的入口,并且已创建HTTP或HTTPS七层协议监听,需要为SLB实例监听端口上的流量开启WAF防护。
前置步骤:在端口配置区域,单击七层SLB类型页签。
实例列表说明:七层SLB类型实例列表展示了负载均衡服务中已创建的公网SLB实例,端口号列展示了SLB实例下已创建的HTTP或HTTPS监听对应的监听端口。
为监听端口开启WAF防护的方法:在WAF控制台透明接入模块的七层SLB类型实例列表中,从端口号列(即已有的HTTP或HTTPS监听端口范围中)选中端口。
选中端口表示通过该端口访问网站的流量会经过WAF,并受到WAF的检测和防护。对于未选中的端口,通过该端口访问网站的流量直接从客户端发送到源站服务器,将不会经过WAF。
如果某个端口同时监听多个网站域名的流量,则选中端口后,所有网站域名流量默认都开启了WAF防护。目前暂不支持单独为某个网站域名的流量开启防护。
如果实例列表的端口号列提示暂无应用端口,表示该实例下尚未创建HTTP或HTTPS监听。您需要先在负载均衡控制台为该实例创建HTTP或HTTPS监听,然后才可以在WAF控制台为端口流量开启WAF防护。关于创建七层HTTP、HTTPS监听的具体操作,请参见添加HTTP监听、添加HTTPS监听。
四层SLB实例端口引流
推荐场景 :您部署了负载均衡(SLB)实例作为Web服务的入口,并且已创建TCP四层协议监听,需要为SLB实例监听端口上的流量开启WAF防护。
前置步骤:在端口配置区域,单击四层SLB类型页签。
实例列表说明 :四层SLB类型实例列表展示了负载均衡服务中已创建的公网SLB实例, 端口号列展示了已经添加到WAF控制台的TCP监听端口。
操作步骤
该场景下,您必须先将已开启的监听端口添加到WAF,然后可以为已添加到WAF的端口开启防护。具体操作步骤如下:
将已有的TCP监听端口添加到WAF。
在WAF控制台透明接入模块的四层SLB类型实例列表中,单击端口号列的添加。
在添加端口对话框,选择一个已开启TCP监听的端口号和该端口关联的应用协议类型(HTTP、HTTPS)。
可选:如果是HTTP端口,无需执行该步骤。如果是HTTPS端口,按照页面提示,上传对应的默认证书和扩展证书(最多可以添加3个)。
证书说明如下:
默认证书 :表示服务器在收到客户端的HTTPS请求时,默认返回给客户端的证书。如果您的服务器只使用了一个SSL证书,则只需要上传默认证书。
扩展证书 :表示服务器在收到客户端的HTTPS请求时,通过SNI字段匹配后(检查请求中SNI扩展包含的域名是否和扩展证书的域名匹配),返回给客户端的匹配证书。如果客户端发送的SNI和扩展证书不匹配,则使用默认证书。
SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。它的工作原理是:在与服务器建立SSL连接之前,先发送要访问站点的域名(Hostname),这样服务器会根据这个域名返回一个合适的证书。
您可以从以下上传方式中选择一种方式上传证书:
手动上传:需要手动填写证书名称、证书文件内容、证书私钥内容。
选择已有证书(推荐):只需从SSL证书服务的已有证书列表,选择透明接入时要使用的证书。
如果您的证书不在SSL证书服务的证书列表,您可以单击云盾-证书服务,先将您的证书上传到SSL证书服务进行统一管理,再选择已有证书。
为已添加到WAF的端口开启防护:在WAF控制台透明接入模块的四层SLB类型实例列表中,从端口号列已添加的端口范围中选中端口。
选中端口表示通过该端口访问网站的流量会经过WAF,并受到WAF的检测和防护。对于未选中的端口,通过该端口访问网站的流量直接从客户端发送到源站服务器,将不会经过WAF。
重要如果某个端口同时监听多个网站域名的流量,则选中端口后,所有网站域名流量默认都开启了WAF防护。目前暂不支持单独为某个网站域名的流量开启防护。
ECS实例端口引流
推荐场景:您直接使用ECS实例作为Web服务的入口,需要为ECS实例上的HTTP或HTTPS流量开启WAF防护。
前置步骤:在端口配置区域,单击ECS类型页签。
实例列表说明:ECS类型实例列表展示了云服务器ECS服务中已创建的具有公网IP的ECS实例,端口号列展示了已经添加到WAF的端口。
操作步骤
该场景下,您必须先在WAF添加要防护的端口,然后可以为已添加到WAF的端口开启防护。具体操作步骤如下:
将要防护的端口添加到WAF。
在WAF控制台透明接入模块的ECS类型实例列表中,单击端口号列的添加。
在添加端口对话框,将端口号设置为源站ECS实例上使用的HTTP或HTTPS应用端口,并选择对应的协议类型(HTTP、HTTPS)。
可选:如果是HTTP端口,无需执行该步骤。如果是HTTPS端口,按照页面提示,上传对应的默认证书和扩展证书(最多可以添加3个)。
证书说明如下:
默认证书 :表示服务器在收到客户端的HTTPS请求时,默认返回给客户端的证书。如果您的服务器只使用了一个SSL证书,则只需要上传默认证书。
扩展证书 :表示服务器在收到客户端的HTTPS请求时,通过SNI字段匹配后(检查请求中SNI扩展包含的域名是否和扩展证书的域名匹配),返回给客户端的匹配证书。如果客户端发送的SNI和扩展证书不匹配,则使用默认证书。
SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。它的工作原理是:在与服务器建立SSL连接之前,先发送要访问站点的域名(Hostname),这样服务器会根据这个域名返回一个合适的证书。
您可以从以下上传方式中选择一种方式上传证书:
手动上传:需要手动填写证书名称、证书文件内容、证书私钥内容。
选择已有证书(推荐):只需从SSL证书服务的已有证书列表,选择透明接入时要使用的证书。
如果您的证书不在SSL证书服务的证书列表,您可以单击云盾-证书服务,先将您的证书上传到SSL证书服务进行统一管理,再选择已有证书。
为已添加到WAF的端口开启防护:在WAF控制台透明接入模块的ECS类型实例列表中,从端口号列已添加的端口范围中选中端口 。
选中端口表示通过该端口访问网站的流量会经过WAF,并受到WAF的检测和防护。对于未选中的端口,通过该端口访问网站的流量直接从客户端发送到源站服务器,将不会经过WAF。
重要如果某个端口同时监听多个网站域名的流量,则选中端口后,所有网站域名流量默认都开启了WAF防护。目前暂不支持单独为某个网站域名的流量开启防护。