云服务器内容精选

  • 前提条件 已购买DDoS高防实例并已完成DDoS高防网站类业务接入,且已完成如表1所示配置操作。 表1 WAF各模式配置说明 部署模式 配置说明 云模式-CNAME接入 已购买WAF云模式。 已将 域名 信息(源站服务器的IP、端口等信息)添加到WAF云模式。 说明: 当源站存在IPv6地址,默认开启IPv6防护。WAF为了防止客户IPv6的业务中断,禁止关闭IPv6的开关,如果确定不需要IPv6防护,需要先修改服务器配置,在源站删除IPv6的配置,具体的操作方法请参见修改服务器配置信息。 在域名的DNS服务商处有添加域名的权限。 (可选)放行WAF回源段IP。源站服务器上已启用非华为 云安全 软件(如安全狗、云锁)时,您需要在这些软件上设置放行WAF回源段IP,防止由WAF转发到源站的正常业务流量被拦截。具体请参考通过E CS /ELB访问控制策略保护源站安全。 云模式-ELB接入 已购买WAF云模式。 已将域名信息添加到ELB模式。 独享模式 已购买WAF独享模式。 已将域名信息(源站服务器的IP、端口等信息)添加到WAF独享模式,并完成以下操作: 已为WAF独享模式实例配置负载均衡。 已为弹性负载均衡绑定弹性公网IP。 放行独享引擎回源IP。
  • 生效条件 当“接入状态”为“已接入”,表示域名/IP接入成功。 WAF每隔一小时就会自动检测防护网站的 接入状态,当WAF统计防护网站在5分钟内达到20次访问请求时,将认定该防护网站已成功接入WAF。 WAF默认只检测两周内新增或更新的域名的接入状态,如果域名创建时间在两周前,且最近两周内没有任何修改,您可以在“接入状态”栏,单击,手动刷新接入状态。 如果域名接入失败,即域名接入状态为“未接入”,请参考域名/IP接入状态显示“未接入”,如何处理?排查处理。
  • 防护原理 DDoS高防通过高防IP代理源IP对外提供服务,将所有的公网流量都引流至高防IP,进而隐藏源站,避免源站(用户业务)遭受大流量DDoS攻击。 DDoS高防支持防护的对象:域名,华为云、非华为云或云下的Web业务 Web应用防火墙 通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护Web服务安全稳定。 WAF支持云模式-CNAME接入、云模式-ELB接入和独享模式三种部署模式,各部署模式支持防护的对象说明如下: 云模式-CNAME接入:域名,华为云、非华为云或云下的Web业务 云模式-ELB接入:域名或IP,华为云的Web业务 独享模式:域名或IP,华为云的Web业务 DDoS高防+WAF可以对华为云、非华为云或云下的域名进行联动防护,可以同时防御DDoS攻击(NTP Flood攻击、SYN Flood攻击、ACK Flood攻击、ICMP Flood攻击、HTTP Get Flood攻击等),以及Web应用攻击(SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等),确保业务持续可靠运行,配置原理图如图1所示。 图1 使用代理配置原理图 DDoS高防+WAF配置后,流量被DDoS高防转发到WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。 相关配置说明如下: 云模式-CNAME接入 先将域名解析到DDoS高防,再修改DDoS高防域名信息,将源站域名修改为WAF的“CNAME”。同时,为了防止其他用户提前将您的域名配置到WAF上,从而对您的域名防护造成干扰,建议您到DNS服务商处添加一条WAF的子域名和TXT记录。 云模式-ELB接入 先将域名解析到DDoS高防,再修改DDoS高防域名信息,将源站IP修改为添加到ELB模式中选择的ELB对应的弹性公网IP。 独享模式 先将域名解析到DDoS高防,再修改DDoS高防域名信息,将源站IP修改为WAF独享引擎实例配置弹性负载均衡绑定的弹性公网IP。
  • 如何处理域名接入WAF后,登录首页不停地刷新? 域名接入WAF后,所有网站访问请求将先流转到WAF进行监控,经WAF过滤后再返回到源站服务器。对于客户端的每一个请求,WAF会根据请求访问的IP地址和用户代理(User Agent)生成一个识别码,而WAF有多个回源IP(随机分配),当回源IP发生变化时请求的识别码也会不同,将导致会话被WAF直接删除,登录首页不停地刷新,为了避免出现该问题,建议您使用会话Cookie进行会话保持。 父主题: 网站接入异常排查
  • 示例二:防护同一端口的不同源站IP的非标准端口业务 在“防护域名端口”下拉框中,选择需要防护的非标准端口。 “对外协议”全部选择“HTTP”或者“HTTPS”。HTTP协议的非标准端口的配置如图3,HTTPS协议的非标准端口的配置如图4。 图3 除80端口的其他HTTP协议端口的业务 图4 除443端口的其他HTTPS协议端口的业务 “对外协议”选择“HTTPS”时,需要配置证书。 访问网站时,域名后必须加上配置的非标准端口,否则会报404错误。假如配置的非标准端口为8080,则在浏览器中直接输入的地址为“http://www.example.com:8080”。
  • 示例一:防护同一端口的不同源站IP的标准端口业务 在“防护域名端口”下拉框中,选择“标准端口”。 “对外协议”统一选择“HTTP”或者“HTTPS”。HTTP标准端口防护配置如图1所示,HTTPS标准端口防护配置如图2所示。 图1 80端口业务 图2 443端口业务 “对外协议”选择“HTTPS”时,需要配置证书。 访问网站时,域名后可以不加端口号进行访问。例如,在浏览器中直接输入“http://www.example.com”访问网站。
  • 导入新证书 当“对外协议”设置为“HTTPS”时,可以导入新证书。 单击“导入新证书”,打开“导入新证书”对话框。然后输入“证书名称”,并将证书内容和私钥内容粘贴到对应的文本框中,如图5所示。 图5 导入新证书 Web应用防火墙将对私钥进行加密保存,保障证书私钥的安全性。 WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考表3在本地将证书转换为PEM格式,再上传。 表3 证书转换命令 格式类型 转换方式 CER/CRT 将“cert.crt”证书文件直接重命名为“cert.pem”。 PFX 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。 openssl pkcs12 -in cert.pfx -nocerts -out key.pem -nodes 提取证书命令,以“cert.pfx”转换为“cert.pem”为例。 openssl pkcs12 -in cert.pfx -nokeys -out cert.pem P7B 证书转换,以“cert.p7b”转换为“cert.cer”为例。 openssl pkcs7 -print_certs -in cert.p7b -out cert.cer 将“cert.cer”证书文件直接重命名为“cert.pem”。 DER 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。 openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem 提取证书命令,以“cert.cer”转换为“cert.pem”为例。 openssl x509 -inform der -in cert.cer -out cert.pem 执行openssl命令前,请确保本地已安装openssl。 如果本地为Windows操作系统,请进入“命令提示符”对话框后,再执行证书转换命令。 单击“确认”,上传证书。
  • 约束条件 限制项 限制条件 域名限制 WAF支持防护多级别单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。 须知: WAF支持添加“*”的泛域名,域名配置为“*”时,只能防护除80、443端口以外的非标端口。 泛域名添加说明如下: 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。 同一防护域名不能重复添加到WAF云模式。 同一个域名对应不同非标准端口视为不同的防护对象,例如www.example.com:8080和www.example.com:8081为两个不同的防护对象,且占用两个域名防护配额。如果您需要防护同一域名的多个端口,您需要将该域名和端口逐一添加到WAF。 请确保域名经过ICP备案,WAF会检查域名备案情况,未备案域名将无法添加。 服务版本限制 入门版不支持添加泛域名。 仅专业版和铂金版支持IPv6防护、HTTP2协议、负载均衡算法。 入门版、标准版“策略配置”只能选择“系统自动生成策略”。 证书限制 WAF当前仅支持PEM格式证书。 目前华为云SCM证书只能推送到“default”企业项目下。如果您使用其他企业项目,则不能选择使用SCM推送的SSL证书。 拥有“SCM Administrator”和“SCM FullAccess”权限的账号才能选择SCM证书。 WebSocket协议限制 WAF支持WebSocket协议,且默认为开启状态。 “对外协议”选择“HTTP”时,默认支持WebSocket “对外协议”选择“HTTPS”时,默认支持WebSockets HTTP2协议限制 HTTP2协议仅适用于客户端到WAF之间的访问,且“对外协议”必须包含HTTPS才支持使用。 “服务器配置”中至少有一条源站地址的“对外协议”配置为HTTPS,开启后才会生效。 当客户端最大支持TLS 1.2时,HTTP2才生效。 账号限制 主账号可以查看子账号添加的域名,但子账号不能查看主账号添加的域名。 其他限制 将网站接入WAF后,网站的文件上传请求限制为10G。
  • 约束条件 准备以独享模式接入WAF的网站已经使用独享型ELB(Elastic Load Balance)作为负载均衡。有关ELB类型的详细介绍,请参见共享型弹性负载均衡与独享型负载均衡的功能区别。 2023年4月之前的独享引擎版本,不支持与独享ELB网络型配合使用。因此,如果您使用了独享ELB网络型(TCP/UDP)负载均衡,请确认独享WAF实例已升级到最新版本(2023年4月及之后的版本),独享引擎版本详情请参见独享引擎版本迭代。 如果WAF前有使用CDN、云加速等七层代理服务器,“是否已使用代理”务必选择“七层代理”,选择“七层代理”后,WAF将从配置的Header头中字段中获取用户真实访问IP,详见配置攻击惩罚的流量标识。 证书限制: WAF当前仅支持PEM格式证书。 目前华为云SCM证书只能推送到“default”企业项目下。如果您使用其他企业项目,则不能选择使用SCM推送的SSL证书。 拥有“SCM Administrator”和“SCM FullAccess”权限的账号才能选择SCM证书。 “防护对象”配置为“*”时,只能防护除80、443端口以外的非标端口。
  • 导入新证书 当“对外协议”设置为“HTTPS”时,可以导入新证书。 单击“导入新证书”,打开“导入新证书”对话框。然后输入“证书名称”,并将证书内容和私钥内容粘贴到对应的文本框中。 图4 导入新证书 Web应用防火墙将对私钥进行加密保存,保障证书私钥的安全性。 WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考表2在本地将证书转换为PEM格式,再上传。 表2 证书转换命令 格式类型 转换方式 CER/CRT 将“cert.crt”证书文件直接重命名为“cert.pem”。 PFX 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。 openssl pkcs12 -in cert.pfx -nocerts -out key.pem -nodes 提取证书命令,以“cert.pfx”转换为“cert.pem”为例。 openssl pkcs12 -in cert.pfx -nokeys -out cert.pem P7B 证书转换,以“cert.p7b”转换为“cert.cer”为例。 openssl pkcs7 -print_certs -in cert.p7b -out cert.cer 将“cert.cer”证书文件直接重命名为“cert.pem”。 DER 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。 openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem 提取证书命令,以“cert.cer”转换为“cert.pem”为例。 openssl x509 -inform der -in cert.cer -out cert.pem 执行openssl命令前,请确保本地已安装openssl。 如果本地为Windows操作系统,请进入“命令提示符”对话框后,再执行证书转换命令。 单击“确认”,上传证书。
  • 工作原理 未使用代理 当网站没有接入到WAF前,DNS直接解析到源站的IP,所以当网站接入WAF后,需要把DNS解析到WAF的CNAME,这样流量才会先经过WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。 使用了DDoS高防等代理 当网站没有接入到WAF前,DNS解析到高防等代理,流量先经过高防等代理,高防等代理再将流量直接转到源站。网站接入WAF后,需要将高防等代理回源地址修改为WAF的“CNAME”,这样流量才会被高防等代理转发到WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。 为了确保WAF转发正常,在修改DNS解析配置前,建议您参照本地验证进行本地验证确保一切配置正常。 为了防止其他用户提前将您的域名配置到Web应用防火墙上,从而对您的域名防护造成干扰,建议您到DNS服务商处添加“子域名”,并为它配置“TXT记录”。WAF会据此判断域名的所有权真正属于哪个用户。具体的配置方法请参见未配置子域名和TXT记录的影响。
  • 操作指导 添加域名后,WAF会根据添加的域名是否已在WAF前使用了代理,生成CNAME值或者CNAME、子域名和TXT记录,用于域名解析,使网站流量切入WAF,相关操作指导参见表1。 表1 操作指导 场景 生成的参数值 域名解析的相关操作 未使用代理 CNAME 把DNS解析到WAF的“CNAME”。 使用代理 CNAME、子域名和TXT记录 将DDoS高防等代理回源地址修改为WAF的“CNAME”。 (可选)在DNS服务商处添加一条WAF的“子域名”和“TXT记录”。
  • (可选)单独验证独享WAF是否正常工作 创建一台与独享WAF实例在同一VPC下的ECS用于发送请求。 通过1中创建的ECS向独享WAF发送请求。 转发测试 curl -kv -H "Host: {添加到WAF的防护对象}" {服务器配置中的对外协议}://{独享WAF的IP}:{防护对象端口} 例如: curl -kv -H "Host: a.example.com" http://192.168.0.1 返回码为 200 则说明转发成功。如果转发未成功,请参见如何排查404/502/504错误?进行排查。 攻击拦截测试。 确保网站对应策略已开启基础防护的拦截模式。 执行以下命令: curl -kv -H "Host: {添加到WAF的防护对象}" {服务器配置中的对外协议}://{独享WAF的IP}:{防护对象端口} --data “id=1 and 1=’1” 例如: curl -kv -H “Host: a.example.com” http:// 192.168.X.X --data “id=1 and 1=’1” 返回码为 418 则说明拦截成功,独享WAF工作正常。
  • 验证独享WAF和ELB是否都正常工作 转发测试 curl -kv -H "Host: {添加到WAF的防护对象}" {ELB对外协议}://{ELB私网的IP}:{ELB监听端口} 如果 ELB 添加了 EIP,可以使用任意公网机器直接进行测试。 curl -kv -H “Host: {添加到WAF的防护对象}” {ELB对外协议}://{ELB公网的IP}:{ELB监听端口} 例如: curl -kv -H “Host: a.example.com” http://192.168.X.Y curl -kv -H “Host: a.example.com” http://100.10.X.X 返回码为200则说明转发成功。 在确保独享引擎工作正常的情况下,如果转发失败,则优先检查ELB配置是否有误(如果ELB健康检查异常可先关闭ELB健康检查再重新执行以上的操作)。 攻击拦截测试 确保网站对应策略已开启基础防护的拦截模式。 执行以下命令: curl -kv -H "Host: {添加到WAF的防护对象}" {ELB对外协议}://{ELB私网的IP}:{ELB监听端口} --data “id=1 and 1=’1” 如果ELB添加了EIP ,可以使用任意公网机器直接进行测试。 curl -kv -H "Host: {添加到WAF的防护对象}" {ELB对外协议}://{ELB公网的IP}:{ELB监听端口} --data “id=1 and 1=’1” 例如: curl -kv -H “Host: a.example.com” http:// 192.168.0.2 --data “id=1 and 1=’1” curl -kv -H “Host: a.example.com” http:// 100.10.X.X --data “id=1 and 1=’1” 返回码为418则说明拦截成功,独享WAF、ELB均工作正常。
  • 示例四:不同访问模式的协议配置规则 根据您的业务场景的不同,WAF提供灵活的协议类型配置。假设您的网站为www.example.com,WAF可配置如下四种访问模式: HTTP访问模式,如图7所示。 图7 HTTP协议访问模式 此种配置表示用户只能通过http://www.example.com访问网站,如果用户通过https://www.example.com访问网站,会收到302跳转响应,浏览器跳转到http://www.example.com。 HTTPS访问模式,客户端协议全部配置为HTTPS时,当使用HTTP协议访问服务器时,会强制跳转为HTTPS协议,如图8所示。 图8 HTTPS协议访问强制跳转模式 用户直接通过https://www.example.com访问网站,网站返回正常内容。 用户通过http://www.example.com访问网站,用户会收到302跳转响应,浏览器跳转到https://www.example.com。 HTTP/HTTPS分别转发模式,如图9所示。 图9 HTTP/HTTPS分别转发模式 用户通过http://www.example.com访问网站,网站返回正常内容,没有跳转,网站内容不加密传输。 用户通过https://www.example.com访问网站,网站返回正常内容,没有跳转,网站内容加密传输。 使用WAF做HTTPS卸载模式,如图10所示。 图10 使用WAF做HTTPS卸载模式 用户通过https://www.example.com访问网站,但是WAF到源站依然使用HTTP协议。