BIND zone tranfer 的管制設定
Zone transfer 為 slave DNS 伺服器向其 master 取得 zone 註冊備份的管道,BIND (Berkeley Internet Name Domain) 為最常用來建置 DNS 伺服器的軟體之一,為了避免管制設定不夠嚴密,讓有心人士輕易取得單位內完整的 DN 註冊清單,進而方便發動掃描式攻擊,因此,強烈建議 DNS 管理者限定伺服器僅許可其 slave 能執行 zone transfer,以降低風險。查詢指令及設定方法(可能因版本不同而異,請視情況參酌使用)詳下說明:
執行 zone transfer
以下例子分別以 dig 這個指令來取得 DNS 伺服器 140.114.XX.YY 其 zone xxxx.nthu.edu.tw 下的所有註冊資料。
dig
axfr (full zone transfer)
# dig @140.114.XX.YY xxxx.nthu.edu.tw -t axfr ; (1 server found) ;; global options: printcmd xxxx.nthu.edu.tw. 180 IN A 140.114.XX.1 pc2.xxxx.nthu.edu.tw. 180 IN A 140.114.XX.2 pc3.xxxx.nthu.edu.tw. 180 IN A 140.114.XX.3 ... xxxx.nthu.edu.tw. 180 IN SOA xxxx.nthu.edu.tw. dnsmaster.xxxx.nthu.edu.tw. 2009092801 10800 3600 604800 3600 ;; Query time: 6 msec ;; SERVER: 140.114.XX.YY#53(140.114.XX.YY) ;; WHEN: Wed Nov 4 09:37:05 2009 ;; XFR size: 261 records (messages 1)
ixfr (incremental zone transfer)
# dig @140.114.XX.YY xxxx.nthu.edu.tw -t ixfr=2009092801 ; (1 server found) ;; global options: printcmd xxxx.nthu.edu.tw. 180 IN SOA xxxx.nthu.edu.tw. dnsmaster.xxxx.nthu.edu.tw. 2009092801 10800 3600 604800 3600 ;; Query time: 1 msec ;; SERVER: 140.114.XX.YY#53(140.114.XX.YY) ;; WHEN: Wed Nov 4 09:47:04 2009 ;; XFR size: 1 records (messages 1)
BIND 的 zone transfer 設定
以下例子為設定 DNS 伺服器 140.114.XX.YY 的 named.conf 設定檔,讓其 slave 140.114.XX.ZZ 可執行 zone transfer。
- 設定 allow-transfer 參數,僅許可 IP 為 140.114.XX.ZZ 或 127.0.0.1 可執行 zone transfer 工作。
- notify yes 表當 master 註冊資料更新及 named reload 後,將主動通知 slave 更新。
options { //(其他參數略...) allow-transfer { 140.114.XX.ZZ; 127.0.0.1; }; notify yes; };
修改完上述設定並重新啟動 named 後,再以指令測試,若為許可 IP 將可取得資料;若非許可的 IP 將看到以下結果。
# dig @140.114.XX.YY xxxx.nthu.edu.tw axfr ; (1 server found) ;; global options: printcmd ; Transfer failed.