为保护暴露在公网的云服务器ECS实例免受Web攻击,可以为其开启Web应用防火墙(WAF 3.0)防护。该模式无需更改现有网络架构或DNS配置,仅需配置引流端口,系统自动将ECS实例指定引流端口上的公网流量引导至WAF,进行安全检测与过滤,从而实现高效且透明的防护。
接入原理
WAF通过透明代理方式接入ECS实例。仅需配置ECS实例的引流端口,系统即自动调整底层网络路由策略,将该端口上的全部HTTP/HTTPS流量引导至WAF进行安全检测。WAF在拦截恶意请求后,将正常请求转发到源ECS实例。此模式的防护范围覆盖指定端口上的所有域名,并支持仅使用公网IP(无域名)的业务。
适用范围
若ECS 实例不满足以下要求,请使用CNAME接入。
实例公网要求:必须拥有公网IP地址(固定公网IP 或 EIP),不支持实例无公网IP但通过 NAT 网关提供公网访问的场景。
账号要求:ECS实例与WAF实例必须属于同一阿里云账号(已配置企业多账号统一管理除外)。
实例地域要求:
中国内地WAF:西南1(成都)、华北2(北京)、华北3(张家口)、华东1(杭州)、华东2(上海)、华南1(深圳)、华北1(青岛)。
非中国内地WAF:中国(香港)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、新加坡。
接入WAF时,Web业务可能出现短暂的秒级连接中断。建议选择业务低峰期进行操作,并在接入完成后关注业务状态。若客户端或服务具备有效的重连机制,此中断将自动恢复,不会对业务运行造成影响。
基础配置
在确认满足以上适用范围后,可以开始进行基础配置。同时,也可以参考高级配置,进行关于TLS版本、多证书、长连接、流量识别(WAF前有七层代理时获取真实IP)等配置。
进入控制台:
登录Web应用防火墙3.0控制台,在顶部菜单栏选择资源组和地域(中国内地、非中国内地),然后在左侧导航栏单击接入管理。选择云产品接入页签,在左侧云产品类型列表,选择云服务器ECS。
云产品授权(首次配置):
根据页面提示,单击立即授权,完成云产品授权。可以在RAM控制台的 页面,查看创建的服务关联角色AliyunServiceRoleForWAF。
接入ECS实例:
在右侧列表,查看ECS实例及其WAF防护状态,找到目标ECS实例,在操作列单击立即接入。如果找不到目标实例,请单击页面右上角同步资产,若仍无法找到,说明实例不满足适用范围。
在选择需要添加的实例&端口区域,单击操作列的添加端口。在弹出的添加端口页面,根据网站的协议类型进行配置。
说明每次仅能添加一个端口。如需添加多个端口,请重复该步骤逐一添加。
HTTP网站
在端口区域,填写网站使用的端口。
在协议类型区域,选择HTTP。
HTTPS网站
在端口区域,填写网站使用的端口。
在协议类型区域,选择HTTPS。
如需自定义配置HTTP/2、TLS协议版本、加密套件、扩展证书(多个证书),请参见高级配置;否则,请保持其他配置项为默认设置。
在默认证书区域,选择证书上传方式:
手动上传:适用于证书未上传至阿里云数字证书管理服务(原 SSL 证书)的场景。
选择已有证书:从阿里云数字证书管理服务(原 SSL 证书)中选择已签发或已上传的证书。
手动上传
证书名称:为证书设置一个唯一的名称,不能与已上传的证书名称重复。
证书文件:请使用文本编辑器打开并粘贴 PEM、CER、CRT 格式的证书文本内容。
格式示例:
-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----
格式转换:若证书是 PFX、P7B 等格式,请使用证书工具将其转换为 PEM 格式。
证书链:若包含中间证书,请按照 “服务器证书、中间证书” 的顺序拼接后粘贴。
私钥文件:请使用文本编辑器打开并粘贴 PEM 格式的私钥文本内容。
格式示例:
-----BEGIN RSA PRIVATE KEY-----......-----END RSA PRIVATE KEY-----
选择已有证书
从证书下拉列表中选择要上传到WAF的证书。
说明若WAF控制台提示“证书链完整性校验失败,使用该证书可能会影响您的业务访问”,表示证书链存在完整性问题。请检查证书内容的正确性与完整性后,在数字证书管理服务控制台重新上传。具体操作,请参见上传、同步和共享SSL证书。
如需自定义配置WAF前有七层代理(如CDN)、资源组、X-Forwarded-Proto头字段控制、流量标记、回源超时时间、回源长连接,请参见高级配置。否则,请单击确定应用默认配置。
验证防护效果:
接入完成后,通过以下方式验证防护效果:在浏览器访问ECS实例上托管的网站,并在其URL后附加Web攻击测试代码(例如
http://yourdomain.com/alert(xss)
),如果返回WAF的405拦截提示页面,表示攻击被拦截,WAF防护成功。
完成接入后,需要确保证书处于有效期内且实例状态正常。在证书过期,实例的公网IP变更等情况下,WAF的防护将失效。更多信息,请参见更新引流端口绑定的证书与实例变更后重新接入WAF。
高级配置
增强安全防护等级(HTTPS)
HTTPS相关配置必须在添加端口页选择协议类型为HTTPS后才支持配置。
HTTP/2 支持
配置说明:HTTP/2 是 HTTP/1.1 的主要升级版本,可提升网页加载速度并降低延迟。若网站支持 HTTP/2,可启用该功能。启用后,HTTP/2 使用的端口与 HTTPS 一致。
操作步骤:在添加端口页选中HTTP2启用。
TLS协议版本控制
配置说明:定义允许的 TLS 协议版本。版本越高,安全性越强,但对旧客户端的兼容性越低。若客户端使用未被允许的协议版本,WAF会丢弃其请求。
操作步骤:在添加端口页的TLS协议版本处进行选择。
支持TLS1.0及以上版本,兼容性最高,安全性较低
支持TLS1.1及以上版本,兼容性较好,安全性较好:将导致使用TLS 1.0协议的老旧客户端无法访问网站。
支持TLS1.2及以上版本,兼容性较好,安全性最高:满足最新的安全合规要求,但将导致使用TLS 1.0和1.1协议的老旧客户端无法访问网站。
开启支持TLS1.3:如果网站支持TLS 1.3协议,请勾选此项。WAF默认不监听TLS 1.3协议的客户端请求。
加密套件选择
配置说明:定义允许的加密套件。若客户端使用未被允许的加密套件,WAF会丢弃其请求。
操作步骤:在添加端口页的加密套件处进行选择。
全部加密套件,兼容性较高,安全性较低
协议版本的自定义加密套件、请谨慎选择,避免影响业务:如果网站仅支持特定的加密套件,请选择此项,并从支持的加密套件列表中进行选择。
多个证书扩展
配置说明:当ECS实例托管多个域名的HTTPS网站,且单张证书无法覆盖所有域名时,需为每个域名上传对应的证书。
操作步骤:在添加端口页的扩展证书区域上传证书。上传方式与默认证书相同,具体操作,请参见默认证书。
说明添加多个扩展证书时,所有证书必须有效。任一证书过期将导致添加操作失败。
获取真实客户端信息
代理场景下真实IP设定
配置说明:WAF前存在七层代理(如CDN)时,需要为WAF设置客户端IP判定方式,确保WAF能够获取真实的客户端IP信息,以便进行安全分析(例如:安全报表的攻击源IP)。
操作步骤:在立即接入页的WAF前是否有七层代理(高防/CDN等)区域进行配置。
否,无其他代理
表示WAF收到的业务请求由客户端直接发起。
是,有其他代理
表示WAF收到的业务请求来自其他七层代理服务转发,需要进一步设置客户端IP判定方式。
取X-Forwarded-For中的第一个IP作为客户端源IP
选择此项后,WAF将按照以下顺序获取客户端IP:
从请求头部读取 X-Real-IP 作为客户端 IP。
若 X-Real-IP 不存在,则使用 X-Forwarded-For(XFF)中的首个 IP 地址作为客户端 IP。
【推荐】取指定Header字段中的第一个IP作为客户端源IP,避免XFF伪造
建议网站业务通过其他代理服务配置,将客户端源 IP 地址写入指定的自定义 Header 字段(例如X-Real-IP、X-Client-IP),并选择此配置,以防止攻击者通过伪造XFF字段绕过WAF的检测规则。
在指定Header字段框中填写对应的字段。支持输入多个Header字段。逐项输入后回车确认。如果设置了多个Header,WAF将按照以下顺序获取客户端IP:
按序匹配配置的指定Header字段。
若所有指定Header都不存在,尝试读取X-Real-IP字段。
若仍无结果,则采用XFF中的首个IP地址作为客户端IP。
流量标记启用
配置说明:启用流量标记可使源站服务器区分经过WAF的请求,获取客户端真实源IP或源端口。
操作步骤:在立即接入页展开高级设置,勾选启用流量标记后配置如下类型的标记字段。
自定义Header:通过配置Header名和Header值,使WAF在回源请求中添加该Header信息,标识经过WAF的请求。
例如,可以配置
WAF-TAG: Yes
标记,其中WAF-TAG
为Header名,Yes
为Header值。配置后,服务器可基于该字段建立校验或访问控制策略,增强安全防护与请求识别能力。重要请不要填写标准的HTTP Header字段(例如User-Agent等),否则会导致标准Header字段内容被自定义的字段值覆盖。
客户端真实源IP:通过配置真实客户端源IP所在的Header字段名,WAF可记录该Header字段并将其传递至源站服务器。关于WAF判定客户端真实源IP的具体规则,请参见代理场景下真实IP设定的描述。
客户端真实源端口:通过配置真实客户端源端口所在的Header字段名,WAF可记录该Header字段并将其传递至源站服务器。
X-Forwarded-Proto头字段控制
配置说明:WAF 默认在转发的 HTTP 请求中插入
X-Forwarded-Proto
头部,用于标识客户端与最近一跳七层代理建立连接所使用的协议。若网站无法正确处理该头部,请按以下步骤关闭自动插入功能。操作步骤:在立即接入页展开高级设置,取消勾选通过X-Forwarded-Proto头字段获取WAF的监听协议。
优化回源链路质量
回源超时时间调整
配置说明:当源站服务器处理请求的响应时间较长,可能导致超时问题时,可配置WAF与源站交互的读写超时时间。
操作步骤:在立即接入页展开高级设置,设置以下项目。
设置读连接超时时间:等待源站服务器响应的超时时间,默认值为120s,可配置范围为1s~3600s。
设置写连接超时时间:WAF向源站服务器发送请求的超时时间,默认值为120s,可配置范围为1s~3600s。
回源长连接启用
配置说明:当存在例如高并发、频繁请求的场景时,启用WAF与源站服务器之间的长连接功能。
操作步骤:在立即接入页展开高级设置,在回源长连接区域启用该功能并进行如下设置。
复用长连接的请求个数:默认值为1,000个,可配置范围为60个~1,000个。
空闲长连接超时时间:默认值为3600s,可配置范围为10s~3600s。
规划实例资源组
资源规划
配置说明:资源组用于简化资源管理和权限配置,提升管理效率。未指定资源组时,实例将加入默认资源组。更多信息,请参见资源组。
操作步骤:在立即接入页资源组区域,从资源组下拉列表中选择该实例所属资源组。
后续步骤
查看并配置防护规则
完成接入后,WAF将自动创建一个名为实例id-端口-资产类型
的防护对象,并为该防护对象默认启用Web核心防护规则等模块的防护规则,可以在 页面查看。如果默认的防护规则不满足业务需求,可以新建或编辑防护规则。更多信息,请参见防护配置概述。
若多个域名解析指向了同一ECS实例,并且需要单独为这些域名配置不同的防护规则,须手动将各域名添加为防护对象,详细信息,请参见手动添加防护对象。
相关操作
更新引流端口绑定的证书
如果证书即将到期或其他原因导致证书发生变更(例如证书被吊销)时,需要更新引流端口绑定的证书。
在阿里云购买新证书
在数字证书管理服务(原 SSL 证书)控制台续费SSL证书,具体操作,请参见续费SSL证书。
在云产品接入页签,选择云服务器ECS,定位到目标实例,单击
图标,选择目标端口操作列的编辑证书。
在默认证书区域,选中选择已有证书,并选择新的证书,单击确定。
已在其他平台购买新证书
从原购买平台下载证书文件。
在云产品接入页签,选择云服务器ECS,定位到目标实例,单击
图标,选择目标端口操作列的编辑证书。
在默认证书区域,选中手动上传,并选择新的证书,填写如下信息后,单击确定。
证书名称:为证书设置一个唯一的名称,不能与已上传的证书名称重复。
证书文件:请使用文本编辑器打开并粘贴 PEM、CER、CRT 格式的证书文本内容。
格式示例:
-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----
证书链:若包含中间证书,请按照 “服务器证书、中间证书” 的顺序拼接后粘贴。
格式转换:若证书是 PFX、P7B 等格式,请使用证书工具将其转换为 PEM 格式。
私钥文件:请使用文本编辑器打开并粘贴 PEM 格式的私钥文本内容。
格式示例:
-----BEGIN RSA PRIVATE KEY-----......-----END RSA PRIVATE KEY-----
证书剩余有效期不足30个自然日时,WAF会在接入列表中通过
图标,提示证书即将过期,建议及时更新,以免影响业务正常运行。
可以设置SSL证书消息提醒,在证书到期前通过邮件、短信等方式接收通知。具体操作,请参见设置SSL证书消息提醒。
为避免因证书过期而导致业务中断,建议开通阿里云数字证书管理服务(原 SSL 证书)的证书托管服务,在证书即将过期时自动申请并更新证书。更多信息,请参见什么是托管服务。
接入回滚(取消接入)
临时关闭WAF防护:若在接入后出现问题,例如出现大量误拦截,需要临时关闭WAF防护时,可以在WAF控制台的防护对象页面中,关闭WAF防护状态开关。更多信息,请参见一键关闭WAF防护功能。
取消接入:若不再希望使用WAF对ECS实例进行防护,可以按照以下步骤取消接入。
在接入管理页面,单击云产品接入页签。
选择云服务器ECS,单击目标实例前的
图标,展开查看该实例下已添加到WAF防护的端口。
单击取消接入,在取消接入对话框,单击确定。
业务影响:取消接入WAF时,Web业务可能出现短暂的秒级连接中断。建议选择业务低峰期执行取消接入操作,并在取消完成后关注业务状态。若客户端或服务具备有效的重连机制,此中断将自动恢复,不会对业务运行造成影响。
重新接入:取消接入后,资产上的流量将不再受到WAF保护,可以单击立即接入,重新配置引流端口。
计费提示:当 WAF 实例为按量付费时,除请求处理费用外,还收取功能费用(包括实例本身及防护规则等)。如需终止使用 WAF 并停止计费,请参见关闭WAF。
实例变更后重新接入WAF
WAF 通过绑定 ECS 实例的公网 IP 来提供防护。当实例的公网 IP 因以下任一操作而发生变更时,原有的引流端口配置将会失效,导致业务流量绕过 WAF,直接暴露于公网风险之中:
释放ECS实例。
更换ECS实例绑定的公网 IP。
通过迁移任务变更ECS实例的可用区。
为恢复安全防护,此时必须在 WAF 控制台为变更后的ECS实例重新执行接入操作。
应用于生产环境
为确保在生产环境中的安全性和稳定性,在接入生产环境ECS实例时,建议遵循以下最佳实践。
HTTPS配置:建议在ECS实例中部署证书,并关注以下配置,以便高效管理证书。
将证书文件上传至数字证书管理服务(原 SSL 证书)。
在WAF侧接入ECS实例时配置HTTPS类型的引流端口,建议在TLS协议版本控制区域,配置TLS1.2及以上版本。
设置SSL证书消息提醒,在证书即将过期时及时更新。
灰度策略:优先在业务低峰期接入非生产环境的ECS实例,运行一段时间以确认业务正常后,再接入生产环境的ECS实例。
检查业务:接入完成后,可以通过如下方式确认业务是否正常。
查看日志:查看日志中状态码200的占比是否有明显波动、QPS是否有明显突增突降等。若已启用WAF日志服务,可以参考WAF日志进行检查。
业务监控:检查业务侧功能是否正常,例如用户访问、交易等功能。
后续运维:生产环境接入完成后,需进行持续的运维工作,监控攻击与误拦截事件。
配额与限制
接入的端口数量:配置的引流端口总数未超过 WAF 实例规格的上限。
WAF包年包月实例:基础版最多300个;高级版最多600个;企业版最多2,500个;旗舰版最多10,000个。
WAF按量付费实例:最多10,000个。
DDoS 结合使用:若同时使用 DDoS 高防,则流量必须先经过DDoS高防,再转发至WAF,且 DDoS 高防必须采用域名接入(七层)方式。
不支持的场景:
防护ECS实例的 IPv6 网站。
在WAF配置HTTPS强制跳转。
上传国密证书。
常见问题
产品功能特性相关
为什么找不到需接入的ECS实例?
请优先单击接入管理页面右上角同步资产。
若仍无法找到,说明实例不满足适用范围。例如非中国内地地域的ECS实例需要通过购买非中国内地WAF进行云产品接入,或使用CNAME接入。
WAF能否防护FTP、SSH等非Web流量?
不能,WAF作为Web应用防火墙,针对Web流量提供防护,即HTTP和HTTPS流量。无法防护其他协议的流量,如FTP和SSH等。
云产品接入支持哪些端口?
使用云产品接入WAF时,支持防护1~65535范围内的任意端口。更多信息,请参见WAF支持的端口范围。
接入方式选择相关
ECS实例上的域名能否同时使用云产品接入和CNAME接入?
不推荐。每个域名只能使用云产品接入或CNAME接入两种模式之一,重复接入会导致转发冲突与策略混乱。若需要将CNAME接入的域名转换为云产品接入,必须先将DNS解析切换回源站,待DNS解析收敛后,删除该域名的CNAME接入配置,然后重新进行云产品接入。
同一个域名解析指向了多个ECS实例,该如何接入?
使用云产品接入:需要逐一接入这些ECS实例,确保WAF将流量引导至所有目标实例。
使用CNAME接入:CNAME接入此域名并配置源站地址为多个ECS实例的公网IP。
多个域名解析指向了同一个ECS实例,该如何接入?
使用云产品接入:接入此ECS实例后,实例上的所有域名都将受到WAF默认防护策略的防护。但如果需要单独为这些域名配置不同的防护规则,须手动将各域名添加为防护对象,详细信息,请参见手动添加防护对象。
使用CNAME接入:逐一接入多个域名。