抵御DNS攻擊 從構建現(xiàn)代DNS系統(tǒng)架構開始
51CTO 發(fā)表于:13年05月20日 11:47 [轉載] 51CTO
今天,DNS系統(tǒng)早已超出了最初設定的“地址本”功能,隨著互聯(lián)網(wǎng)絡的普及,也出現(xiàn)了越來越多的惡意入侵、DDoS攻擊等。一個現(xiàn)代的DNS系統(tǒng)從設計之初就應該考慮到這些問題,以及給最終的用戶提供一個快速、易用的界面。
DNS系統(tǒng)的使用入口是站長添加刪除記錄等,這部分的要求是簡單易用,快速生效,所以需要一個強大的隊列系統(tǒng)迅速分發(fā)數(shù)據(jù)并保持各個服務器的同步。系統(tǒng)出口則是提供查詢服務的53端口。一方面要很好地滿足各個不同遞歸服務器的兼容要求,另一方面,也要防止抵御各式各樣的入侵及攻擊。中間的核心模塊則是提供基本的解析功能,需要盡可能地兼容各種RFC協(xié)議同時最大化地提升性能。比如,DNSPod web前端使用MySQL數(shù)據(jù)庫存儲用戶記錄,但后端的隊列系統(tǒng)并沒有使用其主從同步的功能,而是自行從MySQL數(shù)據(jù)庫中讀取數(shù)據(jù)進行分發(fā)。這樣可以做到10秒內在各個服務器之間生效,一般情況下用戶在網(wǎng)站在添加完記錄,關閉網(wǎng)頁再去服務器請求時,數(shù)據(jù)已經(jīng)完成更新。
DNS服務器之前有黑洞集群防護設備,主要用于檢測一些常見的攻擊形式,同時也可以接受后端的實時命令,及時封禁域名,修改策略。實現(xiàn)部分智能的攻擊防護。而在DNS服務器上,則在內核態(tài)運行著攻擊檢測及相應的保護程序。保護程序實時統(tǒng)計檢測本機數(shù)據(jù)流量,確保不會超過機器最高負荷。攻擊檢測程序探測數(shù)據(jù)包特征,實時分析,發(fā)現(xiàn)有特征收斂時立即通知前方的黑洞設備,即可在最前方抵御攻擊,減少正常服務的壓力。
最終提供服務的標準DNS服務器則可以使用高效的網(wǎng)絡編程模式,內存數(shù)據(jù)庫等提升性能,同時及時實現(xiàn)最新的RFC協(xié)議,確保跟各大遞歸服務器之間的無縫連接。
由此可以看到,DNS系統(tǒng)的構架早已經(jīng)不是最初的運行特定的服務器軟件這么簡單,而是成為一個鏈條,一個大的系統(tǒng),需要各方面密切配合才能做好。