员额法官、检察官联合办案 推进司法体制改革
如果您的业务服务器部署在华为云,您可以通过WAF独享模式将您的网站域名或IP添加到WAF进行防护。
方案概述
独享模式下,将网站接入WAF后,网站流量会通过ELB传给WAF,经过WAF检测后,异常请求将被拦截,正常请求会通过WAF独享引擎回源IP转发到源站服务器。网站接入WAF后,流量访问示意图如图1所示。
流量访问说明如下:
- 用户在浏览器输入域名后,客户端会向DNS发送请求,查询域名解析地址。
- DNS返回域名解析地址。
- 如果无代理(例如CDN、DDos高防等),DNS返回的域名解析地址为ELB的公网IP地址,客户端通过该公网IP访问ELB。如果存在代理:
- DNS返回的域名解析地址为代理IP,客户端通过代理IP访问代理。
- 代理通过ELB的公网IP访问ELB。
- ELB将流量传给WAF。
- 经过WAF检测后,异常请求将被拦截,正常请求会通过WAF独享引擎回源IP转发到源站服务器。
接入流程
根据网站是否使用代理(例如高防、CDN、云加速等),您需要完成如下接入操作。
操作步骤 |
说明 |
---|---|
介绍如何将防护域名 、源站信息等添加到WAF。 |
|
介绍如何为WAF独享引擎实例配置负载均衡器和健康检查。 |
|
介绍如何为WAF独享引擎实例的负载均衡器绑定源站服务器的弹性公网IP,使网站请求流量经过WAF独享引擎检测。 |
|
介绍如何放行独享引擎的回源IP。 |
|
介绍如何验证WAF转发和ELB运行是否正常、基础防护是否生效。 |
前提条件
- 已购买独享型负载均衡。有关ELB类型的详细介绍,请参见共享型弹性负载均衡与独享型负载均衡的功能区别。
2023年4月之前的独享引擎版本,不支持与独享ELB网络型配合使用。因此,如果您使用了独享ELB网络型(TCP/UDP)负载均衡,请确认独享WAF实例已升级到最新版本(2023年4月及之后的版本),独享引擎版本详情请参见独享引擎版本迭代。
- 在该独享引擎实例所在安全组中已放开了相关端口。
有关添加安全组规则的详细操作,请参见添加安全组规则。
步骤一:添加防护网站
为了将业务接入WAF防护,您需要将防护域名、源站信息等,添加到WAF。
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。
- (可选) 如果您已开通企业项目,在左侧导航栏上方,单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,单击“网站设置”。
在开始添加防护网站前,您可以单击页面右上角的“流程引导”,了解云模式-CNAME接入的接入流程。
- 在网站列表左上角,单击“添加防护网站”。
- 选择“独享模式接入”并单击“开始配置”。
- 在“添加防护网站”面板,配置基础信息,如图2所示,参数说明如表1所示。
表1 基本信息参数说明 参数
参数说明
取值样例
防护对象
要防护的域名或IP。
- 域名:支持单域名和泛域名。
- WAF支持添加“*”泛域名,表示可以防护任意的域名。“防护对象”配置为“*”时,只能防护除80、443端口以外的非标端口。
- 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。
- 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。
- IP:支持公网IP、私网IP。
如果配置为私网IP,必须确保相应的网络路径是可访问的,以便于WAF能够正确地对流量进行监控和过滤。
www.example.com
网站名称(可选)
自定义网站名称。
WAF
网站备注(可选)
网站的备注信息。
waftest
防护端口
要防护的端口。- 配置为80、443端口时,在下拉框中选择“标准端口”。
- 配置为其他端口时,选择可选端口范围内的端口。您可以单击“查看可添加端口”,查看WAF支持的HTTP和HTTPS端口。更多信息请参见WAF支持的端口范围。
如果配置为除80、443以外的其他端口,访问网站时,需要在网址后面增加非标准端口进行访问,否则访问网站时会出现404错误。
81
服务器配置
网站服务器相关信息,包括:- 对外协议:客户端请求访问服务器的协议类型,支持:
- HTTP:“防护端口”选择“标准端口”时,HTTP协议默认防护的80端口。
- HTTPS:“防护端口”选择“标准端口”时,HTTP协议默认防护的443端口。
- HTTPS协议是HTTP的安全版本,它在HTTP基础上增加了SSL/TLS协议,提供了数据加密、完整性校验和身份验证。因此,选择HTTS协议时,需要配置证书。
- 源站协议:网站服务器支持的协议类型,也是WAF转发客户端请求的协议类型,包括“HTTP”、“HTTPS”两种。
如果“对外协议”与“源站协议”不一致,WAF会将“对外协议”转换为“源站协议”,使用“源站协议”来转发客户端的请求。
- VPC:选择独享引擎实例所在的VPC。
- 选择VPC配置前,请确保拥有VPC所在企业项目的IAM权限,且该VPC已购买过WAF独享引擎实例。
- 为了实现业务双活,避免业务单点故障,建议在同一VPC下购买两个WAF实例。
- 源站地址:网站服务器的私有IP地址。源站地址不能与防护对象一致。
登录ECS或ELB控制台,在实例列表中查看对应服务器的私有IP地址。
支持以下两种IP格式:- IPv4,例如:XXX.XXX.1.1
- IPv6,例如:fe80:0000:0000:0000:0000:0000:0000:0000
- 源站端口:WAF独享引擎转发客户端请求到服务器的业务端口。
- 权重:负载均衡算法将按配置的权重将请求分配给源站。
对外协议:HTTP
源站协议:HTTP
源站地址:IPv4 XXX .XXX.1.1
源站端口:80
证书名称
“对外协议”设置为“HTTPS”时,需要选择网站关联的证书,支持“国际证书”和“国密证书”。
- 域名和证书需要一一对应,泛域名只能使用泛域名证书。如果您没有泛域名证书,只有单域名对应的证书,则只能在WAF中按照单域名的方式逐条添加域名进行防护。
- 如果您的证书即将到期,为了不影响网站的使用,建议您在到期前重新使用新的证书,并在WAF中同步更新网站绑定的证书。
WAF支持证书过期时发送告警通知,您可以在“告警通知”界面配置证书过期提醒,具体的操作请参见开启告警通知。
WAF支持导入新证书、选择已有证书、选择SCM证书。- 导入新证书:如果您未创建证书,单击“导入新证书”,在“导入新证书”对话框,填写证书相关参数。更多信息,请参见上传证书。
WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考如何将非PEM格式的证书转换为PEM格式将证书转换为PEM格式,再上传。
成功导入的新证书,将同步添加到“证书管理”页面的证书列表。
- 选择已有证书:如果已创建证书,单击下拉框,在“已有证书”中选择正确、有效的证书。
- 选择SCM证书:如果您已经在同一个账号下使用了CCM中的证书,也可以直接在下拉框中选择SCM证书,此处选择的SCM证书名称与CCM里证书名称一致。
- 目前华为云SCM证书只能推送到“default”企业项目下。如果您使用其他企业项目,则不能选择使用SCM推送的SSL证书。
- 选择的SCM证书会自动在“证书管理”页面生成一条记录,该证书支持在“证书管理”页面修改证书名称,但不会同步修改CCM里显示的证书名称。
--
已使用七层代理
确认WAF前是否使用七层代理。七层代理为使用了DDoS高防(七层代理)、CDN、云加速等Web代理产品。- 是:在WAF前使用了DDoS高防(七层代理)、CDN、云加速等Web代理产品。
- 使用七层代理后,WAF将从Header头中的相关字段获取用户真实客户端IP。如果WAF前使用的是华为云DDoS高防,要获取客户端真实IP,需要在域名基本信息页面的“流量标识”栏,将“IP标记”配置为“$remote_addr详细操作请参见”配置攻击惩罚的流量标识。
- 在WAF前使用代理时,不能切换为“Bypass”工作模式。如何切换工作模式请参考切换防护模式。
- 否:没有使用七层代理。
否
防护策略
选择要启用的防护策略。- “系统自动生成策略”(默认):详细说明如下:
- Web基础防护:默认开启常规检测,可防护SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
常规检测包含:
- “规则集”:“默认规则集【中等】”
- “防护动作”:“仅记录”,即发现攻击行为后WAF只记录攻击事件不阻断攻击。
- 网站反爬虫:默认开启扫“扫描器”检测、“防护动作”为“仅记录”(发现攻击行为后WAF只记录攻击事件不阻断攻击),可防护漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap的爬虫行为。
- Web基础防护:默认开启常规检测,可防护SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
- 自定义防护策略:根据防护需求创建的防护策略。更多信息,请参见配置防护策略。
说明:
仅专业版和企业版支持选择自定义防护策略。
系统自动生成策略
- 域名:支持单域名和泛域名。
- 根据面板提示,单击“立即配置负载均衡”,绑定WAF独享引擎实例与负载均衡器。
图3 立即配置负载均衡
您也可以单击“稍后”,参照步骤二:为WAF独享引擎实例配置负载均衡、步骤三:为弹性负载均衡绑定弹性公网IP和步骤四:放行独享引擎回源IP完成相关操作。
步骤二:为WAF独享引擎实例配置负载均衡
添加防护网站后,您需要使用华为云弹性负载均衡(Elastic Load Balance,简称ELB)为WAF独享引擎实例配置负载均衡和健康检查,以确保WAF的可靠性和稳定性。
- 在ELB为负载均衡添加监听器。
- 在页面左上方,单击
图标,选择 。
- 单击目标负载均衡器名称,进入负载均衡详情页。
- 在“监听器”页签,单击“添加监听器”,配置监听器信息。
关键参数配置说明如下,其他参数说明,请参见添加HTTP监听器或添加HTTPS监听器。
表2 添加监听器关键参数说明 项目
参数
说明
取值样例
配置监听器
前端协议
客户端与负载均衡监听器建立流量分发连接的协议。此处只能选择HTTP或HTTPS协议。
HTTP
前端端口
客户端与负载均衡监听器建立流量分发连接的端口。取值范围为:[1-65535]。
80
配置后端分配策略
分配策略类型
负载均衡采用的算法,支持“加权轮询算法”、“加权最少连接”、“源IP算法”、“连接ID算法”。
注意:选择“加权轮询算法”时,请关闭“会话保持”,如果开启会话保持,相同的请求会转发到相同的WAF独享引擎实例上,当WAF独享引擎实例出现故障时,再次到达该引擎的请求将会出错。
加权轮询算法
添加后端服务器
配置健康检查
“健康检查结果”的“状态”必须为“正常”,否则会导致网站不能正常接入WAF。有关配置健康检查的详细操作,请参见配置健康检查。
开启健康检查
完成添加操作后,您可以在监听器页签,查看已添加的监听器,获取ELB负载均衡器(图4①)、ELB监听器(图4②)、后端服务器组(图4③)。
- 在页面左上方,单击
- 在WAF为独享引擎实例配置负载均衡。
- 在页面左上方,单击
图标,选择 。
- 在左侧导航栏,选择 。
- 在目标实例所在行的“操作”列,选择 。
如果您所在地域为华东-上海一、华北-乌兰察布一,您也可以选择运行中的多个实例(反向代理模式)后,单击实例列表左上角的“批量添加到ELB”,批量为WAF独享引擎实例配置负载均衡。
- 在“添加到ELB”面板,选择1.c中配置的“ELB(负载均衡器)”、“ELB监听器”和“后端服务器组”后,单击“下一步”。
“健康检查结果”的“状态”必须为“正常”,否则会导致网站不能正常接入WAF。健康检查异常的排查思路请参见健康检查异常。
图5 添加到ELB - 为WAF实例配置业务“端口”和“权重”后,单击“确定”。
“业务端口”需要配置为WAF独享引擎实例实际监听的业务端口,即步骤一:添加防护网站中配置的“防护端口”。
- 在页面左上方,单击
步骤三:为弹性负载均衡绑定弹性公网IP
如果WAF独享引擎实例已配置负载均衡,请解绑源站服务器的弹性公网IP(Elastic IP,简称EIP),将解绑的弹性公网IP绑定到WAF独享引擎实例配置的负载均衡上。绑定后,请求流量会先经过WAF独享引擎进行攻击检测,然后转发到源站服务器,从而确保源站安全、稳定、可用。
本章节以解绑源站服务器的弹性公网IP(Elastic IP,简称EIP),将解绑的EIP绑定到WAF独享引擎的弹性负载均衡(Elastic Load Balance,简称ELB)上为例说明,具体操作请以实际业务为准。
- 解绑源站服务器的弹性公网IP。
- 绑定源站服务器的弹性公网IP。
在“负载均衡器”页面,找到WAF独享引擎的ELB的负载均衡器,绑定源站服务器的弹性公网IP。
- 绑定IPv4公网IP,在WAF独享引擎的ELB的负载均衡器所在行“操作”列,选择 。
- 绑定IPv6公网IP,在WAF独享引擎的ELB的负载均衡器所在行“操作”列,选择 。
- 在弹出对话框中,选择1.b中解绑的EIP,单击“确定”,绑定EIP。
步骤四:放行独享引擎回源IP
网站以“独享模式”成功接入WAF后,所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控,经独享引擎实例过滤后再返回到源站服务器,流量经独享引擎实例返回源站的过程称为回源。在服务器看来,接入WAF后所有源IP都会变成独享引擎实例的回源IP(即独享引擎实例对应的子网IP),以防止源站IP暴露后被黑客直接攻击。
源站服务器上的安全软件很容易认为独享引擎的回源IP是恶意IP,有可能触发屏蔽WAF回源IP的操作。一旦WAF的回源IP被屏蔽,WAF的请求将无法得到源站的正常响应,因此,网站以“独享模式”接入WAF防护后,您需要在源站服务器上设置放行创建的独享引擎实例对应的子网IP,不然可能会出现网站打不开或打开极其缓慢等情况。
根据您的源站服务器部署位置,选择以下方式进行操作。
如果您的源站服务器直接部署在华为云ECS上,请参考以下操作步骤设置安全组规则,放行独享模式回源IP。
- 在WAF获取所有创建的独享引擎对应的子网IP地址。
- 将子网IP添加到ECS安全组。
- 在页面左上方,单击
图标,选择 。
- 在“弹性云服务器”页面,单击目标ECS实例名称。
- 在ECS实例的详情页面,选择“安全组”页签,单击“更改安全组”。
- 在“更改安全组”面板,选择目标安全组或新建安全组并单击“确定”。
- 单击安全组ID,进入安全组基本信息页面。
- 选择“入方向规则”页签,单击“添加规则”,在“添加入方向规则”对话框,完成如下配置后,单击“确定”。参数配置说明如表3所示。
图8 添加入方向规则
表3 入方向规则参数配置说明 参数
配置说明
优先级
安全组规则优先级,保持默认即可。
策略
安全组规则策略,配置为“允许”。
类型
设置源站IP地址类型。
协议端口
安全组规则作用的协议和端口。当前场景中,协议选择“自定义TCP”,端口填写为空或1-65535,表示放行回源IP(段)的全部端口。
关于协议和端口的详细说明如下:
源地址
逐一添加1中复制的所有WAF回源IP(段)的“IP地址/掩码”。
说明:一条规则配置一个IP。单击“增加1条规则”,可配置多条规则,最多支持添加10条规则。
- 单击“确定”,安全组规则添加完成。
成功添加安全组规则后,安全组规则将允许独享引擎回源IP地址的所有入方向流量。
您可以使用Telnet工具测试已接入WAF防护的源站IP对应的业务端口是否能成功建立连接验证配置是否生效。
例如,执行以下命令,测试已接入WAF防护的源站IP对外开放的443端口是否能成功建立连接。如果显示端口无法直接连通,但网站业务仍可正常访问,则表示安全组规则配置成功。
Telnet 源站IP 443
- 在页面左上方,单击
如果您的源站服务器使用华为云ELB进行流量分发,请参考以下操作步骤设置访问控制(白名单)策略,只放行独享模式回源IP。
- 在WAF获取所有创建的独享引擎对应的子网IP地址。
- 在页面左上方,单击
图标,选择 。
- 在左侧导航栏,选择 。
- 在独享引擎页面,单击目标独享引擎“IP地址”列的IP,即可复制独享引擎对应的子网IP地址。
图9 获取独享引擎对应的子网IP地址
- 在页面左上方,单击
- 将子网IP添加到ELB访问控制白名单。
- 在页面左上方,单击
图标,选择 。
- 在独享引擎绑定的ELB所在行的“名称”列中,单击ELB名称,进入ELB的详情页面。
- 在目标监听器所在行的“访问控制”列,单击“设置”。
图10 监听器列表
- 在弹出的对话框中,“访问控制”选择“白名单”。
- 单击“确定”,白名单访问控制策略添加完成。
成功配置访问控制策略后,访问控制策略将允许独享引擎回源IP地址的所有入方向流量。
您可以使用Telnet工具测试已接入WAF防护的源站IP对应的业务端口是否能成功建立连接验证配置是否生效。
例如,执行以下命令,测试已接入WAF防护的源站IP对外开放的443端口是否能成功建立连接。如果显示端口无法直接连通,但网站业务仍可正常访问,则表示安全组规则配置成功。
Telnet 源站IP 443
- 在页面左上方,单击