CDN回源OBS桶场景下连接WAF提升OBS安全防护
当您的网站域名开启了华为云CDN加速,且回源到华为云对象存储 OBS(Object Storage Service,OBS)时,如果该网站存在一定的Web攻击风险,我们推荐您组合使用CDN、OBS和Web 应用防火墙 WAF(Web Application Firewall),将开启CDN加速的域名接入WAF,实现OBS的安全防护。本文介绍如何为业务同时部署CDN、OBS、WAF。
约束条件
- 仅WAF云模式的CNAME接入支持该场景。
- 该场景下,WAF只能防护网站动态内容、较小的静态资源文件。因此,如果OBS存储的资源为大文件(100M以上),不建议使用云WAF进行防护。
方案架构
华为云CDN可以有效加速网站,WAF可以拦截网站恶意流量,而OBS桶提供海量文件存储。将数据存放在OBS桶中然后通过配置CDN加速,WAF过滤恶意请求,这样构造的业务系统可以在降低成本的同时,提高OBS数据的安全防护。
步骤一:在OBS中绑定CDN加速域名
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“桶列表”,单击目标桶名称,进入“对象”页面。
- 在左侧导航树中,选择“域名管理”,进入“域名管理”界面。
- 单击“配置加速域名”,在“源站信息”所在行,复制桶域名。
“加速域名”:配置为在CDN中配置的加速域名。
其他参数的详细配置请参见配置加速域名。
完成域名绑定后,您可以在浏览器输入域名和OBS桶中任意文件名称(例如,<被防护域名>/test.png,test.png为上传到OBS桶中的图片名称),如果网站能正常访问,表示域名添加成功。
步骤二:将域名接入WAF,源站地址为OBS域名
为了实现WAF对OBS桶的防护,您需要将开启CDN加速且绑定OBS桶的域名接入WAF,并将源站修改为OBS域名。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在网站列表左上角,单击“添加防护网站”。
- 选择“云模式-CNAME接入”并单击“确定”。
- 在添加防护网站页面,关键参数配置如表1。
其他参数的配置请参见添加防护域名(云模式-CNAME接入)。
表1 配置信息 配置项
配置说明
防护域名
填写步骤一:在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私有桶,实现安全防护。您也可以根据实际情况,开启更多的防护策略,详见防护策略配置。