部署WAF和CDN為開啟內(nèi)容加速的域名提供WAF防御
如果您的網(wǎng)絡(luò)開啟了內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,簡(jiǎn)稱CDN),且存在一定的Web攻擊風(fēng)險(xiǎn)時(shí),我們推薦您組合使用CDN和Web應(yīng)用防火墻(Web Application Firewall,簡(jiǎn)稱WAF)。WAF支持與阿里云CDN或非阿里云CDN(例如網(wǎng)宿、加速樂、七牛、又拍等)聯(lián)合部署。本文介紹如何為業(yè)務(wù)同時(shí)部署WAF和CDN。
網(wǎng)絡(luò)架構(gòu)
WAF和CDN同時(shí)部署時(shí)采用以下網(wǎng)絡(luò)架構(gòu):CDN(入口層,內(nèi)容加速)> WAF(中間層,實(shí)現(xiàn)應(yīng)用層防護(hù))> 源站服務(wù)器(ECS、SLB、VPC、IDC等)。網(wǎng)站業(yè)務(wù)流量會(huì)先經(jīng)過CDN加速后,轉(zhuǎn)發(fā)到WAF過濾Web攻擊,最后只有正常的業(yè)務(wù)流量被轉(zhuǎn)發(fā)到源站服務(wù)器,保障網(wǎng)站的業(yè)務(wù)安全和數(shù)據(jù)安全。
前提條件
已開通CDN服務(wù),并已將域名添加到CDN。更多信息,請(qǐng)參見快速使用CDN。
已開通WAF實(shí)例。
步驟一:域名接入WAF
登錄Web應(yīng)用防火墻控制臺(tái),在頂部菜單欄,選擇WAF實(shí)例的資源組和地域(中國內(nèi)地、非中國內(nèi)地)。
在左側(cè)導(dǎo)航欄,選擇 。
在域名列表頁簽,單擊網(wǎng)站接入。
添加域名。
CNAME接入模式
說明進(jìn)入添加域名頁面后,接入模式默認(rèn)為Cname接入。CNAME接入模式下,您無需再修改接入模式。
在填寫網(wǎng)站信息配置向?qū)В瓿梢韵聟?shù)配置后,單擊下一步。
配置項(xiàng)
說明
域名
填寫要防護(hù)的網(wǎng)站域名。
防護(hù)資源
按實(shí)際情況選擇要使用的防護(hù)資源類型。
協(xié)議類型
按實(shí)際情況選擇網(wǎng)站支持的協(xié)議類型。
服務(wù)器地址
選擇IP并填寫源站服務(wù)器對(duì)應(yīng)的SLB公網(wǎng)IP、ECS公網(wǎng)IP或云外機(jī)房服務(wù)器的IP。
服務(wù)器端口
根據(jù)已選擇的協(xié)議類型,按實(shí)際情況設(shè)置源站提供對(duì)應(yīng)服務(wù)的端口。
負(fù)載均衡算法
當(dāng)設(shè)置了多個(gè)源站服務(wù)器地址時(shí),按實(shí)際情況選擇多源站服務(wù)器間的負(fù)載均衡算法。
WAF前是否有七層代理(高防/CDN等)
選擇是。
啟用流量標(biāo)記
按實(shí)際情況設(shè)置是否啟用WAF流量標(biāo)記功能。
資源組
當(dāng)需要根據(jù)業(yè)務(wù)部門、項(xiàng)目等維度對(duì)云資源進(jìn)行分組管理時(shí),從資源組列表中選擇該域名所屬資源組。
在域名列表定位到新添加的域名,復(fù)制WAF為該域名分配的CNAME地址。
透明接入模式
在添加域名頁面,選擇接入模式為透明接入。
在添加域名信息配置向?qū)В瓿梢韵聟?shù)配置后,單擊下一步。
配置項(xiàng)
說明
域名
填寫要防護(hù)的網(wǎng)站域名。
ALB類型、七層SLB類型、四層SLB類型、ECS類型
在標(biāo)簽頁中選擇待防護(hù)實(shí)例所屬類型,勾選待防護(hù)實(shí)例對(duì)應(yīng)的端口。
WAF前是否有七層代理(高防/CDN等)
選擇是。
啟用流量標(biāo)記
按實(shí)際情況設(shè)置是否啟用WAF流量標(biāo)記功能。
資源組
當(dāng)需要根據(jù)業(yè)務(wù)部門、項(xiàng)目等維度對(duì)云資源進(jìn)行分組管理時(shí),從資源組列表中選擇該域名所屬資源組。
檢查并確認(rèn)配置后,單擊下一步。
單擊完成,返回域名列表。在服務(wù)器列表頁簽,通過搜索資源實(shí)例ID,查找實(shí)例對(duì)應(yīng)的IP和端口號(hào)。
步驟二:為已添加到CDN的域名開啟WAF防護(hù)
阿里云CDN
登錄CDN控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊域名管理。
在域名列表,定位到要開啟WAF防護(hù)的域名,單擊操作列的管理。
在基本配置分頁,單擊新增源站信息。完成如下配置后,單擊確定。
參數(shù)
說明
源站信息
優(yōu)先級(jí)
設(shè)置支持的主備優(yōu)先級(jí),主優(yōu)先級(jí)大于備優(yōu)先級(jí)。
權(quán)重
當(dāng)多個(gè)源站的優(yōu)先級(jí)相同時(shí),設(shè)置源站的權(quán)重,實(shí)現(xiàn)按權(quán)重的負(fù)載均衡。
端口
填寫CDN節(jié)點(diǎn)回到源站的請(qǐng)求端口。
在域名詳情頁,單擊回源配置分頁,在配置頁簽,確認(rèn)默認(rèn)回源HOST未開啟。
修改DNS解析指向CDN的CNAME。具體操作,請(qǐng)參見配置CNAME。
非阿里云CDN
如果您使用的是非阿里云CDN,您可以將域名接入CDN,并將CDN配置的源站改為WAF的CNAME地址或IP。
完成上述配置后,網(wǎng)站流量經(jīng)過CDN,其中動(dòng)態(tài)內(nèi)容將繼續(xù)通過WAF進(jìn)行安全檢測(cè)防護(hù)。
如果您需要將其他域名(域名B)的業(yè)務(wù)通過已添加到WAF的域名(域名A)轉(zhuǎn)發(fā),實(shí)現(xiàn)通過登錄域名B訪問域名A,而域名B不生效WAF防護(hù)的效果。您可以在完成上述配置后,登錄云解析DNS控制臺(tái),修改域名B的DNS解析,設(shè)置URL轉(zhuǎn)發(fā)到域名A。具體操作,請(qǐng)參見配置URL顯性/隱性轉(zhuǎn)發(fā)。
完成以上配置后,您可以執(zhí)行如下操作,檢測(cè)域名是否添加成功:
在瀏覽器輸入已添加的域名,如果網(wǎng)站能正常訪問,表示域名添加成功。
在瀏覽器輸入已添加的域名和Web攻擊代碼(例如
<被防護(hù)域名>/alert(xss)
,alert(xss)
為用作測(cè)試的跨站腳本攻擊代碼),如果返回405攔截提示頁面,表示攻擊被攔截,WAF防護(hù)成功。
相關(guān)操作
您也可以在CDN控制臺(tái)開啟CDN WAF并完成配置后,在CDN節(jié)點(diǎn)上直接使用WAF防護(hù)。具體操作,請(qǐng)參見配置CDN WAF。
如果您希望為開啟全站加速的域名提供WAF防護(hù),您可以在全站加速控制臺(tái)開啟邊緣WAF并完成配置后,在全站加速節(jié)點(diǎn)上直接使用WAF防護(hù)。具體操作,請(qǐng)參見快速入門邊緣WAF(新版)。
說明關(guān)于CDN和全站加速的區(qū)別,請(qǐng)參見CDN與全站加速的區(qū)別。