约束限制
- WAF独享模式可以防护通过域名或IP访问的Web应用/网站。
- 接入Web应用防火墙的网站已使用公网ELB(Elastic Load Balance)代理用作负载均衡,且仅支持与独享型ELB配套使用。
网站接入流程说明
申请WAF独享模式后,您可以参照下图所示的配置流程,快速使用WAF。
收集防护域名/IP的配置信息
在添加防护域名/IP前,请获取如表所示防护域名/IP相关信息。
获取信息 参数 说明 示例 配置参数 防护对象
域名:由一串用点分隔的英文字母组成(以字符串的形式来表示服务器IP),用户通过域名来访问网站。
IP:访问网站所使用的IP地址。
www.example.com 防护对象端口 需要防护的域名对应的业务端口。
标准端口
80:HTTP对外协议默认使用端口
443:HTTPS对外协议默认使用端口
非标准端口
80/443以外的端口
80 对外协议 客户端(例如浏览器)请求访问网站的协议类型。WAF支持“HTTP”、“HTTPS”两种协议类型。 HTTP 源站协议 WAF转发客户端(例如浏览器)请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。 HTTP VPC 选择申请的独享引擎实例所在的VPC。 vpc-default 源站地址 客户端(例如浏览器)访问的网站服务器的私网IP地址。 192.168.1.1 (可选)证书 证书名称 对外协议选择“HTTPS”时,需要在WAF上配置证书,将证书绑定到防护域名。
说明WAF当前仅支持PEM格式证书。
-
步骤一:添加防护网站
如果您的业务服务器部署在云上,您可以将网站的域名或IP添加到WAF,使网站流量切入WAF。
前提条件
已申请WAF独享引擎实例。
约束条件
- 接入Web应用防火墙的网站已使用公网ELB(Elastic Load Balance)代理用作负载均衡。
- 为了保证WAF的安全策略能够针对真实源IP生效,成功获取Web访问者请求的真实IP地址,如果WAF前没有使用CDN、云加速等七层代理服务器,且ELB使用的是四层负载均衡(NAT等方式),“是否已使用代理”务必选择“否”,其他情况,“是否已使用代理”选择“是”。
操作步骤
步骤 1 登录管理控制台。
步骤 2 单击管理控制台右上角选择区域或项目。
步骤 3 单击页面左上方,选择“安全 >Web应用防火墙(独享版)”。
步骤 4 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
步骤 5 在网站列表左上角,单击“添加防护网站”。
步骤 6 配置“域名信息”。
- “网站名称”:可选参数,自定义网站名称。
- “防护对象”:防护的域名或IP,域名支持单域名和泛域名。
- “网站备注”:可选参数,网站的备注信息。
说明
WAF不支持添加带有下划线(_)的泛域名。
如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。
如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。
步骤 7 源站配置,参数说明如表所示。
参数 参数说明 取值样例 防护对象端口 在下拉框中选择面要防护的端口。配置80/443端口,在下拉框中选择“标准端口”。 81 服务器配置 网站服务器地址的配置。包括对外协议、源站协议、VPC、源站地址和源站端口。
对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
VPC:选择独享引擎实例所在的VPC。
为了实现业务双活,避免业务单点故障,建议在同一VPC下申请两个WAF实例
源站地址:客户端(例如浏览器)访问的网站服务器的私网/内网IP地址。支持以下两种IP格式:
IPv4,例如:XXX.XXX.1.1
IPv6,例如:fe80:0000:0000:0000:0000:0000:0000:000
源站端口:WAF独享引擎转发客户端请求到服务器的业务端口。
对外协议:HTTP
源站协议:HTTP
源站地址:XXX .XXX.1.1
源站端口:80
证书名称 “对外协议”设置为“HTTPS”时,需要选择证书。您可以选择已创建的证书或选择导入的新证书。
成功导入的新证书,将添加到“证书管理”页面的证书列表中。
说明
WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请将证书转换为PEM格式,再上传。
如果您的证书即将到期,为了不影响网站的使用,建议您在到期前重新使用新的证书,并在WAF中同步更新网站绑定的证书。
域名和证书需要一一对应,泛域名只能使用泛域名证书。如果您没有泛域名证书,只有单域名对应的证书,则只能在WAF中按照单域名的方式逐条添加域名进行防护。
--
步骤 8 高级配置。
- “是否已使用代理”:为了保证WAF的安全策略能够针对真实源IP生效,成功获取Web访问者请求的真实IP地址,如果WAF前已使用如CDN、云加速等提供七层Web代理的产品,请务必选择“是”。
- 选择“策略配置”:默认为“系统自动生成策略”,您也可以选择已创建的防护策略或在域名接入后根据防护需求配置防护规则。系统自动生成的策略说明如下:
- Web基础防护(“仅记录”模式、常规检测):仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
- 网站反爬虫(“仅记录”模式、扫描器):仅记录漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap的爬虫行为。
说明“仅记录”模式:发现攻击行为后WAF只记录攻击事件不阻断攻击。
步骤 9 单击“确认”,添加域名完成。
生效条件
防护网站的初始“接入状态”为“未接入”,配置完负载均衡以及为弹性负载均衡绑定弹性IP后,当访问请求到达该网站的WAF独享引擎时,该防护网站的接入状态将自动切换为“已接入”。
导入新证书
当“对外协议”设置为“HTTPS”时,可以导入新证书。
1.在导航栏选择“对象管理”中的“证书管理”菜单,单击“添加证书”,打开“导入新证书”对话框。然后输入“证书名称”,并将证书内容和私钥内容粘贴到对应的文本框中。
说明Web应用防火墙将对私钥进行加密保存,保障证书私钥的安全性。
WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考下表在本地将证书转换为PEM格式,再上传。
证书转换命令表:
格式类型 转换方式 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操作系统,请进入“命令提示符”对话框后,再执行证书转换命令。
2.单击“确认”,上传证书。
步骤二:配置负载均衡
添加防护网站后,您需要使用云上弹性负载均衡(Elastic Load Balance,简称ELB)为WAF独享引擎实例配置负载均衡和健康检查,以确保WAF的可靠性和稳定性。
前提条件
- 已添加独享模式防护网站。
- 已成功申请ELB实例。
- 在该独享引擎实例所在安全组中已放开了相关端口。
安全组建议配置以下访问规则:
- 入方向规则:根据业务需求添加指定端口入方向规则,放通指定端口入方向网络流量。例如,需要放通“80”端口时,您可以添加“策略”为“允许”的“TCP”、“80”协议端口规则。
- 出方向规则:默认。放通全部出方向网络流量。
系统影响
“分配策略类型”选择“加权轮询算法”时,请关闭“会话保持”,如果开启会话保持,相同的请求会转发到相同的WAF独享引擎实例上,当WAF独享引擎实例出现故障时,再次到达该引擎的请求将会出错。
操作步骤
步骤 1 登录管理控制台。
步骤 2 单击管理控制台右上角选择区域。
步骤 3 单击页面左上方选择“网络 > 弹性负载均衡”,进入“负载均衡器”页面。
步骤 4 在负载均衡器所在行的“名称”列,单击目标负载均衡器名称,进入ELB“基本信息”页面。
步骤 5 选择“监听器”页签后,单击“添加监听器”,配置监听器信息,如图所示。
步骤 6 单击“下一步”,配置后端主机组和健康检查。
健康检查配置
步骤 7 单击“完成”后再单击“确定”,监听器添加成功。
步骤 8 在添加的监听器页面,选择“后端主机组”页签后,单击“添加”。
步骤 9 在弹出的“添加后端主机”对话框中,选择已创建的WAF独享引擎实例。
步骤 10 单击“下一步”,为独享引擎配置端口。
说明独享引擎监听端口需要与步骤一:添加防护网站时设置的端口保持一致。如果防护网站配置的是标准端口,则HTTP协议监听端口配置为“80”,HTTPS协议监听端口配置为“443”。
步骤 11 单击“完成”,配置完成。
生效条件
当WAF独享引擎实例的“健康检查结果”为“正常”时,说明弹性负载均衡配置成功。
步骤三:为弹性负载均衡绑定弹性公网IP
WAF独享引擎实例配置负载均衡后,您还需要解绑源站服务器的弹性公网IP(Elastic IP,简称EIP),将解绑的弹性公网IP绑定到WAF独享引擎实例,见本章节的步骤二:配置负载均衡 。绑定后,请求流量会先经过WAF独享引擎进行攻击检测,然后转发到源站服务器,从而确保源站安全、稳定、可用。
前提条件
已为WAF独享引擎实例配置负载均衡,见本章节的步骤二:配置负载均衡 。
操作步骤
步骤 1 登录管理控制台。
步骤 2 单击管理控制台右上角,选择区域。
步骤 3 单击页面左上方,选择“网络 > 弹性负载均衡”,进入“负载均衡器”页面。
步骤 4 在“负载均衡器”页面,解绑源站服务器的弹性公网IP。
- 解绑IPv4公网IP,在目标源站的负载均衡器所在行“操作”列,选择“更多> 解绑IPv4公网IP”。
- 解绑IPv6公网IP,在目标源站的负载均衡器所在行“操作”列,选择“更多> 解绑IPv6公网IP”。
步骤 5 在弹出的对话框中,单击“是”,解绑EIP。
步骤 6 在“负载均衡器”页面,找到WAF独享引擎的ELB的负载均衡器,绑定源站服务器的弹性公网IP。
- 绑定IPv4公网IP,在WAF独享引擎的ELB的负载均衡器所在行“操作”列,选择“更多> 绑定IPv4公网IP”。
- 绑定IPv6公网IP,在WAF独享引擎的ELB的负载均衡器所在行“操作”列,选择“更多> 绑定IPv6公网IP”。
步骤 7 在“绑定弹性公网IP”对话框中,选择步骤4中解绑的EIP,单击“确定”,绑定EIP。
步骤四:放行独享引擎回源IP
网站以“独享模式”成功接入WAF后,建议您在源站服务器上配置只放行独享引擎回源IP的访问控制策略,防止黑客获取源站IP后绕过WAF直接攻击源站,以确保源站安全、稳定、可用。
说明网站以“独享模式”成功接入WAF后,如果访问网站频繁出现502/504错误,建议您检查并确保源站服务器已配置了放行独享引擎回源IP的访问控制策略。
为什么需要放行回源IP
网站以“独享模式”成功接入WAF后,所有网站访问请求将先经过独享引擎配置的ELB然后流转到独享引擎实例进行监控,经独享引擎实例过滤后再返回到源站服务器,流量经独享引擎实例返回源站的过程称为回源。在服务器看来,接入WAF后所有源IP都会变成独享引擎实例的回源IP(即独享引擎实例对应的子网IP),以防止源站IP暴露后被黑客直接攻击。
源站服务器上的安全软件很容易认为独享引擎的回源IP是恶意IP,有可能触发屏蔽WAF回源IP的操作。一旦WAF的回源IP被屏蔽,WAF的请求将无法得到源站的正常响应,因此,网站以“独享模式”接入WAF防护后,您需要在源站服务器上设置放行创建的独享引擎实例对应的子网IP,不然可能会出现网站打不开或打开极其缓慢等情况。
前提条件
网站以“独享模式”成功接入WAF。
回源到ECS
如果您的源站服务器直接部署在ECS上,请参考以下操作步骤设置安全组规则,放行独享模式回源IP。
步骤 1 登录管理控制台。
步骤 2 单击管理控制台左上角,选择区域。
步骤 3 单击页面左上方,选择“安全 >Web应用防火墙 (独享版)”。
步骤 4 在左侧导航树中,选择“独享引擎”,进入“独享引擎”页面。
步骤 5 在独享引擎列表的“IP地址”栏,获取所有创建的独享引擎对应的子网IP地址。
步骤 6 单击页面左上方,选择“计算 > 弹性云主机”。
步骤 7 在目标ECS所在行的“名称/ID”列中,单击目标ECS实例名称,进入ECS实例的详情页面。
步骤 8 选择“安全组”页签,单击“更改安全组”。
步骤 9 在“更改安全组”对话框中,选择目标安全组或新建安全组并单击“确定”。
步骤 10 单击安全组ID,进入安全组基本信息页面。
步骤 11 选择“入方向规则”页签,单击“添加规则”,进入“添加入方向规则”页面,参数配置说明如表所示。
参数 | 配置说明 |
---|---|
协议端口 | 安全组规则作用的协议和端口。选择“自定义TCP”后,在TCP框下方输入源站的端口。 |
源地址 | 逐一添加步骤5中获取的所有独享引擎实例的子网IP地址。 说明 一条规则配置一个IP。单击“增加1条规则”,可配置多条规则,最多支持添加10条规则。 |
步骤 12 单击“确定”,安全组规则添加完成。
成功添加安全组规则后,安全组规则将允许独享引擎回源IP地址的所有入方向流量。
您可以使用Telnet工具测试已接入WAF防护的源站IP对应的业务端口是否能成功建立连接验证配置是否生效。
例如,执行以下命令,测试已接入WAF防护的源站IP对外开放的443端口是否能成功建立连接。如果显示端口无法直接连通,但网站业务仍可正常访问,则表示安全组规则配置成功。
Telnet 源站IP 443
回源到ELB
如果您的源站服务器使用ELB进行流量分发,请参考以下操作步骤设置访问控制(白名单)策略,只放行独享模式回源IP。
步骤 1 登录管理控制台。
步骤 2 单击管理控制台左上角,选择区域。
步骤 3 单击页面左上方,选择“安全 >Web应用防火墙(独享版)”。
步骤 4 在左侧导航树中,选择“系统管理> 独享引擎”,进入“独享引擎”页面。
步骤 5 在独享引擎列表的“IP地址”栏,获取所有创建的独享引擎对应的子网IP地址。
步骤 6 单击页面左上方,选择“网络 > 弹性负载均衡”。
步骤 7 在独享引擎绑定的ELB所在行的“名称”列中,单击ELB名称,进入ELB的详情页面。
步骤 8 选择“监听器”页签,在“访问控制”列单击“设置访问控制”。
步骤 9 在弹出的对话框中,“访问策略”选择“白名单”。
- 单击“创建IP地址组”,将步骤5中独享引擎实例的回源IP地址添加到“IP地址组”中。
- 在“IP地址组”的下拉框中选择创建的IP地址组。
步骤 10 单击“确定”,白名单访问控制策略添加完成。
- 成功配置访问控制策略后,访问控制策略将允许独享引擎回源IP地址的所有入方向流量。
- 您可以使用Telnet工具测试已接入WAF防护的源站IP对应的业务端口是否能成功建立连接验证配置是否生效。
- 例如,执行以下命令,测试已接入WAF防护的源站IP对外开放的443端口是否能成功建立连接。如果显示端口无法直接连通,但网站业务仍可正常访问,则表示安全组规则配置成功。
Telnet 源站IP 443