DNS 服務歷史悠久、設計精良,但配置不當極易成為攻擊目標。本文盤點 DNS 伺服器七大常見安全缺失(源自業界最佳實務),並提供具體修正建議,助您建立彈性防禦體系。
七大罪狀與對策
1. 使用舊版 BIND
- BIND 為全球最廣泛使用的開源 DNS 軟體
- 舊版皆存在已知嚴重漏洞,可導致伺服器被毀、主機被入侵
- 對策:持續更新至最新穩定版,及時套用安全修補程式
2. 所有授權 DNS 集中於單一子網
- 單一交換機/路由器故障或光纖斷裂即導致整個網域解析中斷
- 對策:授權 DNS 需地理分散部署(不同機房、不同網段、不同 ISP)
3. 允許未授權客戶端進行遞迴查詢
// 危險設定範例
recursion yes;
allow-recursion { any; };
- 開放遞迴查詢將暴露於快取投毒與 DDoS 攻擊
- 對策:僅允許信任網段遞迴查詢(
allow-recursion { 192.168.0.0/16; };),拒絕外部開放解析器濫用
4. 允許未授權區域傳送
- 區域傳送(Zone Transfer)會完整複製區域資料庫
- 攻擊者可獲取完整內部主機架構資訊,進行偵察與攻擊
- 對策:
allow-transfer { 192.168.1.5; 192.168.1.6; }; 僅限授權從屬伺服器
5. 未部署 DNS 轉發器
- 舊版 BIND/微軟 DNS 缺乏完善快取投毒防護
- 直接向根域查詢增加被惡意回應利用風險
- 對策:部署專用轉發器(Forwarder),集中管理外部查詢、套用安全補丁、啟用 DNSSEC 驗證
6. SOA 參數設定錯誤
- Refresh/Retry/Expire/Minimum TTL 過低 → 頻繁區域傳送、服務中斷
- Negative Caching TTL 過高 → 解析失敗快取過久,延遲恢復
- 對策:參考 RFC 2308/1912 最佳實務值,如:Refresh 3h、Retry 1h、Expire 1w、Minimum 1h
7. 授權資料與區域資料中 NS 記錄不一致
- 新增/移除主 DNS 時未同步更新上層委派記錄
- 導致解析延遲、彈性降低、甚至解析失敗
- 對策:建立變更管理流程,任何 NS 異動必須同步更新父區域委派資料
額外防護建議
- 啟用 DNSSEC:簽署區域資料,防範快取投毒與中間人攻擊
- 實施速率限制(RRL):緩解 DNS 放大攻擊
- 分離授權與遞迴角色:授權 DNS 僅回應授權區域,遞迴 DNS 服務內部用戶
- 定期滲透測試與配置稽核
DNS 安全非一次設定終身無憂,需持續修補、監控與演練。這七大項目是建立基線防護的起點,而非終點。