WAF 透明接入模式

琉璃10个月前技术文章325

透明接入模式只需将需要防护的网站信息添加到WAF,无需修改域名的DNS解析设置,即可实现WAF防护。如果您的源站服务器为ECS服务器或者部署在阿里云公网SLB上,那么除了使用CNAME接入模式,还可以选择云原生的透明接入模式。本文介绍如何使用透明接入模式接入WAF。

使用限制

限制项类型

描述

云服务实例类型

透明接入不支持私网SLB和IPv6版本的公网SLB实例。

SLB和ECS地域

支持的地域包括:

  • 中国内地:西南1(成都)、华北2(北京)、华北3(张家口)、华东1(杭州)、华东2(上海)、华南1(深圳)

  • 非中国内地:中国(香港)、马来西亚(吉隆坡)、印度尼西亚(雅加达)

由于历史网络架构的原因,部分公网SLB不支持透明接入。

引流端口配置的数量

不同版本的WAF实例支持添加的引流端口配置的数量如下:

  • 高级版:不超过20条。

  • 企业版:不超过50条。

  • 旗舰版:不超过100条。

  • 按量计费版本:不超过20条。

透明接入对指定源站服务器的具体端口生效,即您可以针对某个源站服务器(具有公网IP)的具体端口(例如80、443等)开启透明接入。开启透明接入后,该服务器端口的流量被引流到WAF进行防护。

例如,您同时为SLB实例A的80、443端口,及另一个SLB实例B的80、443端口开启透明接入,则共添加了4个引流端口配置(SLB实例A的80端口、SLB实例A的443端口、SLB实例B的80端口、SLB实例B的443端口)。

支持的端口范围

支持防护0~65535范围内的任意标准端口和非标端口

说明

仅如下版本的WAF实例支持使用非标端口:

  • 包年包月实例:企业版、旗舰版、独享版。

  • 按量付费实例:已在账单与套餐中心开启支持非标端口

业务同时接入DDoS高防和WAF

如果您的业务需要同时接入DDoS高防和WAF,则只有在业务通过域名接入(即七层接入模式)接入DDoS高防时,该业务才支持通过透明接入模式接入WAF。

如果业务通过端口接入(即四层接入模式)接入DDoS高防,则该业务暂不支持通过透明接入模式接入WAF。针对这种情况,推荐您使用CNAME接入模式,将该业务接入WAF进行防护。

前提条件

  • 已开通Web应用防火墙实例。

  • 已创建的云服务实例为IPv4公网的SLB实例,且该SLB实例拥有公网IP,端口未开启双向认证。说明 如果您使用了私网SLB+EIP,也支持使用透明接入。

  • 托管在中国内地服务器上的网站域名,已完成阿里云ICP备案。在阿里云ICP代备案管理系统提交ICP备案订单时,系统会根据您提交的基本信息自动识别本次提交订单的ICP备案类型,自动为您匹配对应备案类型需进行的ICP备案流程。

  • 透明接入配置端口上使用的证书已按先后顺序完成如下操作:

    1. 已上传到数字证书管理服务控制台统一管理,或直接从数字证书管理服务控制台购买和申请证书。

    2. 已在负载均衡SLB控制台为该透明接入配置的端口配置监听时,选择该证书并完成配置。

  • 说明 如果您要接入七层SLB实例上的Web流量,必须满足该前提条件。接入四层SLB实例或ECS源站上Web流量时,无需满足该前提条件。

  • 已完成云资源访问授权。

步骤一:添加域名

警告

域名首次透明接入WAF时,可能会导致Web业务出现秒级闪断。该闪断会自动恢复,不会对您的业务造成影响。

  1. 登录Web应用防火墙控制台,在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择资产中心 > 网站接入

  3. 域名列表页签,单击网站接入

  4. 添加域名页面,选择接入模式透明接入

  5. 添加域名信息模块,配置域名和源站服务端口等。

配置项

说明

域名

填写网站域名。支持使用精确域名(例如,www.aliyundoc.com)和泛域名(例如,*.aliyundoc.com)格式。具体说明如下:

    • 使用泛域名后,WAF将自动匹配该泛域名对应的所有子域名(例如,*.aliyundoc.com能够匹配www.aliyundoc.comtest.aliyundoc.com等)。重要 泛域名不支持匹配对应的主域名(例如,*.aliyundoc.com不能够匹配aliyundoc.com)。如果您需要将主域名接入WAF进行防护,您需要单独添加对应的域名配置(例如,单独添加aliyundoc.com)。

    • 如果同时存在泛域名和精确域名配置,则精确域名的转发规则和防护策略优先生效。

源站服务端口

选择要接入WAF的源站服务器端口。WAF支持ALB类型七层SLB类型四层SLB类型ECS类型实例的源站服务端口开启透明接入。您可根据需要接入WAF的实例类型,在源站服务端口配置区域选择对应页签。例如,您部署了应用型负载均衡(ALB)实例作为Web服务的入口,需要为ALB实例监听端口上的流量开启WAF防护,单击ALB类型页签。您可在相应页签进行如下操作:

    • 添加端口

    • ALB类型七层SLB类型的端口会自动同步到WAF,您需要选中要添加的端口即可。

    • 四层SLB类型ECS类型的端口需要手动添加,您可以单击添加,为源站服务器端口开启引流。添加服务器端口后,您可以在实例列表选中该端口。同时,您也可以在服务器列表删除或关闭引流。具体操作,请参见查看源站服务器和管理引流端口

    • 选中实例的监听端口,为端口开启WAF防护。具体操作,请参见ALB实例端口引流

WAF前是否有七层代理(高防/CDN等)

选择网站业务在接入WAF前是否开启了其他七层代理服务(例如DDoS高防、CDN等)。可选项:

    • :表示WAF收到的业务请求来自发起请求的客户端。WAF直接获取与WAF建立连接的IP(来自REMOTE_ADDR字段)作为客户端IP。

    • :表示WAF收到的业务请求来自其他七层代理服务转发,而非直接来自发起请求的客户端。为了保证WAF可以获取真实的客户端IP进行安全分析,您需要进一步设置客户端IP判定方式WAF默认读取请求Header字段X-Forwarded-For(XFF)中的第一个IP地址作为客户端IP。如果您的网站业务已通过其他代理服务的设置,规定将客户端源IP放置在某个自定义的Header字段(例如X-Client-IP、X-Real-IP),则您需要选择取指定Header字段中的第一个IP作为客户端源IP,避免XFF伪造,并在指定Header字段框中输入对应的Header字段。说明 推荐您在业务中使用自定义Header存放客户端IP,并在WAF中配置对应Header字段。该方式可以避免攻击者伪造XFF字段,躲避WAF的检测规则,提高业务的安全性。支持输入多个Header字段。每输入完一个Header字段,需要按半角逗号(,)确认。设置了多个Header时,WAF将按顺序尝试读取客户端IP。如果第一个Header不存在,则读取第二个,以此类推。如果所有指定Header都不存在,则读取XFF中第一个IP地址作为客户端IP。

启用流量标记

设置是否启用WAF流量标记功能。流量标记表示WAF在转发客户端请求到源站服务器时,在请求头中添加或修改由您指定的自定义字段,用于标记该请求经过WAF转发,记录该请求的客户端真实源IP或真实源端口。选中启用流量标记后,您需要设置标记字段。重要

    • 请不要填写标准的HTTP头部字段(例如User-Agent等),否则会导致标准头部字段内容被自定义的字段值覆盖。

    • 如果攻击者在域名接入WAF前,已获取源站IP信息,并通过购买其他WAF实例,将请求回源到目标源站时,您可以启用流量标记,并设置标记字段。当源站接收到请求后,建议对该字段进行校验。如果存在指定标记字段,则允许访问。

标记字段分为以下类型:

    • 自定义Header

    • 客户端真实源IP

    • 客户端真实源端口

单击新增标记,可以增加标记字段。最多支持设置5个标记字段。

资源组

从资源组列表中选择该域名所属资源组。说明 您可以使用资源管理服务创建资源组,根据业务部门、项目等维度对云资源进行分组管理。更多信息。

  1. 检查并确认模块,检查已配置的透明接入信息,并单击下一步

  2. 添加完成模块,单击完成,返回网站列表域名添加完成后,您可以在域名列表中查看已添加域名及源站信息,并可以根据需要编辑、删除域名配置。WAF默认对您在添加域名信息中开启的源站服务端口上的流量进行检测,并将处理后的正常请求返回到源站服务器。您可以根据业务实际需要,在服务器列表页签,修改源站服务端口的流量防护状态。

步骤二:查看和管理引流端口

查看源站服务器和管理引流端口

完成域名添加后,您可以查看源站服务器的详细防护信息,以及在需要紧急容灾的情况下强制关闭引流或删除引流端口。

  1. 网站接入页面,单击服务器列表页签

  2. 查看该实例下已添加到WAF防护的端口

    image.png

    说明 四层SLB类型ECS类型实例的端口不会自动同步到服务器列表,您需要手动添加端口。具体操作,Web流量状态说明:

    • Web流量状态(图示①)表示该端口的流量目前是否经过WAF防护,可选项开启关闭。您可以单击操作列下的关闭引流开启引流,修改端口引流状态。说明 关闭端口引流后,该服务器端口的流量将不会经过WAF防护。

    • Web流量状态(图示②)表示该实例下端口接入WAF防护的整体状态,可选项未防护部分防护运行中

  1. 可选:如果实例为四层SLB类型、ECS类型,您可以单击端口操作列下的删除,并在提示对话框中单击确定,删除某个不再需要流量防护的端口。

更新引流端口配置的证书

  • ALB实例七层SLB实例:无需在WAF重新上传证书。

    • 如果实例监听端口配置的证书被更新,您只需要在SLB实例中更新证书,WAF会自动同步。同步时长约30分钟。

    • 如果WAF自动同步的证书未生效,您可以在服务器列表页签,手动更新实例监听端口配置的证书。

  • ECS实例四层SLB实例:需要在WAF重新上传证书。您可以在服务器列表页签,定位到需要更新证书的实例,单击目标端口操作列的编辑,通过手动上传选择已有证书的方式上传证书。


image.png




后续步骤

完成接入流程后,网站访问流量将经过WAF并受到WAF的防护。WAF包含多种防护检测模块,帮助网站防御不同类型的安全威胁,其中规则防护引擎CC安全防护模块默认开启,分别用于防御常见的Web应用攻击(例如SQL注入、XSS跨站、WebShell上传等)和CC攻击,其他防护模块需要您手动开启并配置具体防护规则。

相关文章

借助arthas工具打火焰图

借助arthas工具打火焰图

1、下载arthas在命令行下面执行(使用和目标进程一致的用户启动,否则可能 attach 失败):curl -O https://arthas.aliyun.com/arthas-boot.jar...

ranger对接hbase

ranger对接hbase

前提:本文是基于集群中已经部署了ranger组件和hbase组件的情况下,增加ranger对hbase组件的对接。安装部署1、ranger-hbase插件安装使用ranger2.3版本对接插件。将插件...

CDH实操--HDFS高可用设置

CDH实操--HDFS高可用设置

1 概述        在HDFS集群中NameNode存在单点故障(SPOF),对于只有一个NameNode的集群,如果NameNode机...

数据湖技术之iceberg(十二)Flink与Iceberg整合-SQL API操作

数据湖技术之iceberg(十二)Flink与Iceberg整合-SQL API操作

1.SQL API 创建Iceberg表并写入数据StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnv...

MySQL运维实战(5.5) 数据导入导出时的字符集问题

mysql可以使用load data/select into outfile或mysqldump工具进行数据导入导出。下面分别分析数据导入导出时的字符集相关问题。准备测试数据创建测试表,2个字段分别使...

MySQL 8.0 新特性:Clone Plugin

MySQL 8.0 新特性:Clone Plugin

一、前言MySQL 在 8.0.17 加入了克隆插件,可以从本地或者远程克隆数据,比如需要创建主从关系,我们一般都是通过物理备份来做,那如果你使用的是 MySQL 8.0.17 及以上的版本那么就可以...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。