經過一連好幾週的CDN教育訓練,顧問終於要來說明跟資安防護有關的建置了。
Jerry抱怨著說,終於開始專案的重點了~~
顧問說,不要這麼說啦!! 每個環節其實都很重要,要知道在整個DDoS防護中,光是CDN的快取控制就可以幫你抵擋部份的攻擊。
而且我也要提醒一下,每間企業不管做哪些資安防護或是IT架構優化,都是為了服務能更穩固的存在,先講求不傷身啦!!
今天開始,要針對資安防護的模組建置進行說明,首先是DNS安全防護的EdgeDNS。
Edge DNS
Akamai 的EdgeDNS是一種Authoritative DNS服務架構,該服務儲存了特定網域的官方DNS記錄,並能為該網域的查詢提供最終答案的伺服器。簡單的說,當DNS查詢請求達到這裡時,它會直接返回IP位址,而不需要再向其他伺服器查詢。
圖檔引用自Akamai官方文件
而另一種為Recursive DNS服務架構,其服務方式為當使用者進行查詢時,會從根伺服器開始層層查詢,直到找到Authoritative DNS 並取得IP位址為止。
EdgeDNS有以下的優勢:
Primary zone VS Secondary zone
Edge DNS分為兩種佈署架構Primary以及Secondary :
Primary zone :建立主要區域時,您會將 DNS 記錄交給 Akamai 進行儲存和管理,也就是整個Name Server都在Akamai的Edge DNS服務上,未來都會透過平台上WEB UI介面操作就好。
Secondary zone :建立次要區域時,Akamai的Edge DNS主機會透過zone transfer方式,從地端的Name Server將DNS 記錄超抄一份過來,主要的維護還是在地端。
架構選擇
Jerry問了一個關鍵的問題,要怎麼選擇?
顧問回答,這沒有標準答案,有幾個考量的點供你參考:
Primary zone架構 :
若源站有多線路在做負載均衡,就會透過地端的網路負載均衡設備,進行線路調整。
所以在導入Edge DNS方案時,就必需要加購Global Traffic Management模組,透過GTM偵測機制,當線路發生異常時,才可以修正回應的內容。
Akamai GTM跟地端的網路負載均衡設備,需要考量功能以及使用情境上的差異,才能評估是否可以取代?
Secondary zone架構 :
地端DNS機制仍要維持並開放,這也意謂著仍然有機會被外部直接攻擊,所以DNS服務前端需要DDoS防護機制。
從地端更新及同步資料到Akamai端,除了延遲了資料更新的時間外,架構也相對變得複雜。
不同的行業因應資源、人力、技術的不同,對架構複雜的評估也可能有不同想法。
如果是金融業,既有地端線路負載均衡以及DNS整合已經非常成熟。調整架構會有維運機制以及後續稽核等議題要處理,再加上大多有協力廠商在,複雜ㄧ點的架構不會是問題。
會選Primary的客戶,主要架構簡單外,即便沒有技術人員協助,可以透過WEB介面簡單新增DNS Record就好。
是LC不是GTM
顧問跟Jerry確認要走Secondary模式後說,F5的GTM還蠻好操作的,你們家也有專業廠商在啊,Jerry不用擔心調整的過程啦!!
Jerry突然瞪大眼睛看著顧問,我們家是LC ,DNS設定都用底層寫BIND檔!!
顧問也瞪大眼睛看著Jerry,這麼精實嗎!! (顧問暗自心想,看來這案子不好混了~~~)
沒關係,可以設定都不是問題,我們先了解一些Zone transfers架構流程。
Zone transfers - AXFR and IXFR :當主要名稱DNS伺服器(Primary)更新時,已變更的DNS ZONE 內容傳輸至該區域具有授權性的次要DNS伺服器,此過程稱為“Zone transfers”。
Zone transfers有兩種類型 :完整傳送(AXFR)和增量傳送(IXFR),AXFR傳送是整個域名的資源紀錄,IXFR傳輸是自上次變更來的資源紀錄。
Zone refreshes : Zone refreshes為一種計時器機制,用於告訴次要DNS伺服器,它應該多久要求它配置為參照 SOA 記錄的主要伺服器。如果SOA的序號相同時不用更新,但如果序號比較小了就應該發起AXFR或IXFR請求更新。
Zone notifies : 當主要名稱DNS伺服器SOA的序號更新時,通常也意味也意謂著DNS資源紀錄已經變更了。此時就會透過NOTIFY機制,發送它已更改的通知。
簡易的流程參考下圖:
要看複雜的請參考這篇 Configurations and Zone Files By readthedocs.io
BIND 設定調整
既然知道了整個Zone transfer的流程,那現在來確認如何設定bind的設定檔:
首先先認識一個名詞Edge DNS zone transfer agents (ZTA),也就是會來交換傳輸DNS ZONE Data的Akamai Edge DNS主機。
再來,就要在你家F5 LC上設定可以來進行Zone transfer的Akamai ZTA主機IP,語法如下:
zone "lekuza.com" {
.....
allow-transfer {xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx;};
};
要取得 ZTA IP清單,請訂閱Akamai平台上的防火牆規則通知服務。此服務可讓您檢視所有 ZTA IP 位址,並主動通知您 ZTA 基礎架構的任何變更。
接著設定啟用 NOTIFY to ZTA
zone "lekuza.com" {
.....
notify yes;
also-notify {xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx;xxx.xxx.xxx.xxx;};
.....
};
要特別提醒,地端架設於DNS服務前的防護機制,要避免檔到Akamai ZTA的請求,避免Zone transfe機制的異常。
上線作業提醒
首先,調整DNS主機上的BIND設定,將DNS上的所有RECORD同步至Akamai Edge DNS主機上,並觀察資料同步跟查詢是否都能正常運作。
再來,透過上層域名註冊系統,將目前Name Server的位置加入Akamai Edge DNS主機,既有地端的不能刪除。
當加入後,外部詢問Name Server主機位置時,會透過隨機的方式提供,因此就可測出當問到Akamai Edge DNS主機時,服務是否正常?資料的更新是否正確?
最後,將上層域名註冊系統Name Server主機清單中,地端Name Server的位置紀錄刪除,只保留Akamai Edge DNS主機位置。
上述的三個作業請於離峰時間進行,主要都是針對DNS服務做異動,異常了影響都會持續一段時間,請調整TTL值降低影響的時間。
作業務必檢查再檢查,且相隔一段時間再進行異動,只要每一動有問題,就要確認原因後再進行下一步!!