CDN回源OBS桶场景下连接WAF提升OBS安全防护
应用场景
当您的网站域名开启了华为云CDN加速,且回源到华为云对象存储 OBS(Object Storage Service,OBS)时,如果该网站存在一定的Web攻击风险,我们推荐您组合使用CDN、OBS和Web 应用防火墙 WAF(Web Application Firewall),将开启CDN加速的域名接入WAF,实现OBS的安全防护。本文介绍如何为业务同时部署CDN、OBS、WAF。
本实践建立在已将域名添加到CDN用于内容加速,并将请求回源到OBS桶(此时,域名DNS解析指向CDN的CNAME地址,源站为OBS域名),如何使网站流量经过WAF进行防护。
方案架构及方案优势
华为云CDN可以有效加速网站,WAF可以拦截网站恶意流量,而OBS桶提供海量文件存储。将数据存放在OBS桶中然后通过配置CDN加速,WAF过滤恶意请求,这样构造的业务系统可以在降低成本的同时,提高OBS数据的安全防护。
资源与成本规划
约束条件
- 仅WAF云模式的CNAME接入支持该场景。
- 该场景下,WAF只能防护网站动态内容、较小的静态资源文件。因此,如果OBS存储的资源为大文件(100M以上),不建议使用云WAF进行防护。
步骤一:购买云模式标准版
- 登录华为云管理控制台。
- 在控制台页面中选择 ,进入Web应用防火墙控制台。
- 在页面右上角,单击“购买WAF实例”,进入购买页面,“WAF模式”选择“云模式”。
- “区域”:根据防护业务的所在区域就近选择购买的WAF区域。
- “版本规格”:选择“标准版”。
- “扩展包”及“购买时长”:根据具体情况进行选择。
- 确认参数配置无误后,在页面右下角单击“立即购买”。
- 确认订单详情无误后,阅读并勾选《Web应用防火墙免责声明》,单击“去支付”,完成购买操作。
- 进入“付款”页面,选择付款方式进行付款。
步骤二:在OBS中绑定CDN加速域名
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“桶列表”,单击目标桶名称,进入“对象”页面。
- 在左侧导航树中,选择“域名管理”,进入“域名管理”界面。
- 单击“配置加速域名”,在“源站信息”所在行,复制桶域名。
“加速域名”:配置为在CDN中配置的加速域名。
其他参数的详细配置请参见配置加速域名。
完成域名绑定后,您可以在浏览器输入域名和OBS桶中任意文件名称(例如,<被防护域名>/test.png,test.png为上传到OBS桶中的图片名称),如果网站能正常访问,表示域名添加成功。
步骤三:将域名接入WAF,源站地址为OBS域名
为了实现WAF对OBS桶的防护,您需要将开启CDN加速且绑定OBS桶的域名接入WAF,并将源站修改为OBS域名。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在网站列表左上角,单击“添加防护网站”。
- 选择“云模式-CNAME接入”并单击“确定”。
- 在添加防护网站页面,关键参数配置如表2。
其他参数的配置请参见添加防护域名(云模式-CNAME接入)。
表2 配置信息 配置项
配置说明
防护域名
填写步骤二:在OBS中绑定CDN加速域名中,绑定到OBS中的域名。
防护域名端口
填写需要防护的域名对应的业务端口。
服务器配置
- 对外协议:客户端请求访问服务器的协议类型。包括HTTP、HTTPS两种协议类型。
- 源站协议:Web应用防火墙转发客户端请求的协议类型。包括HTTP、HTTPS两种协议类型。
- 源站地址:填写网站对应的源站服务器的公网IP地址或源站域名,用于接收WAF转发回源的正常业务请求(回源请求),此处填写OBS桶域名。
说明:
在OBS“概览”页的“域名信息”栏,也可复制OBS桶域名。
- 源站端口:WAF转发客户端请求到服务器的业务端口。
- 单击“确认”,按照接入向导完成“放行WAF回源IP”和“本地验证”,在“修改DNS解析”页面,复制CNAME值。
图1 复制CNAME截图
步骤四:修改CDN源站为WAF提供的CNAME地址
- 单击页面左上方的,选择 ,进入CDN页面。
- 在左侧导航树中,选择 。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“基本配置”页签,在源站配置模块,单击“编辑”。
“源站地址”文本框中输入6中复制的WAF CNAME值。
效果验证
完成配置后,您可以再次在浏览器输入已添加的域名和OBS桶中任意文件名称(例如,<被防护域名>/test.png),test.png为上传到OBS中的图片名称),如果网站能正常访问,表示域名添加成功。
您也可以在浏览器输入已添加的域名和Web攻击代码(例如,SQL注入:curl -kv <被防护域名>?name='1%20or%201=1'),如果返回418拦截提示页面,表示攻击被拦截,WAF防护成功。
后续操作
完成上述配置后,WAF会默认为域名开启Web基础防护规则,通过对访问域名的请求特征进行识别和检测,将正常的访问请求转发给OBS私有桶,实现安全防护。您也可以根据实际情况,开启更多的防护策略,详见防护策略配置。