BIND 版本的查詢與設定
BIND (Berkeley Internet Name Domain) 為最常用來建置 DNS 伺服器的軟體之一,通常其預設安裝許可任何人查詢其版本資訊,為了避免有心人士以版本資訊而找到軟體漏洞,進而方便發動攻擊,因此,強烈建議使用 BIND 的 DNS 伺服器管理者能適當隱藏版本資訊,以降低風險。查詢指令及設定方法(可能因版本不同而異,請視情況參酌使用)詳下說明:
查詢 BIND 版本的指令
以下例子分別以 nslookup 與 dig 這個兩個指令來查詢 DNS 伺服器 140.114.XX.YY 其所使用的BIND版本,本例中所查到的 BIND 版本為 9.3.2。
nslookup
# nslookup -debug -class=chaos -query=txt version.bind 140.114.XX.YY Server: 140.114.XX.YY Address: 140.114.XX.YY#53 ------------ QUESTIONS: version.bind, type = TXT, class = CH ANSWERS: -> version.bind text = "9.3.2" AUTHORITY RECORDS: -> version.bind nameserver = version.bind. ADDITIONAL RECORDS: ------------ version.bind text = "9.3.2"
dig
# dig @140.114.XX.YY version.bind chaos txt ; <<>> DiG 9.2.4 <<>> @140.114.XX.YY version.bind chaos txt ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 862 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;version.bind. CH TXT ;; ANSWER SECTION: version.bind. 0 CH TXT "9.3.2" ;; AUTHORITY SECTION: version.bind. 0 CH NS version.bind. ;; Query time: 1 msec ;; SERVER: 140.114.XX.YY#53(140.114.XX.YY) ;; WHEN: Wed Sep 23 09:49:52 2009 ;; MSG SIZE rcvd: 62
更換 BIND 版本顯示的設定
以下例子為更換 BIND 版本顯示文字改以 “ZZZ” 字串替代之(管理者可自行指定所要的文字),其設定方法為修改 DNS 伺服器 140.114.XX.YY 的 named.conf 設定檔之 version 參數為 “ZZZ” (注意,此處有雙引號“”),如下。
options { //(其他參數略...) version "ZZZ"; };
修改完上述設定並重新啟動 named 後,再以指令查詢結果,將看到版本資訊已被隱藏,如下結果。
# dig @140.114.XX.YY version.bind chaos txt ; <<>> DiG 9.2.4 <<>> @140.114.XX.YY version.bind chaos txt ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 81 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;version.bind. CH TXT ;; ANSWER SECTION: version.bind. 0 CH TXT "ZZZ" ;; AUTHORITY SECTION: version.bind. 0 CH NS version.bind. ;; Query time: 1 msec ;; SERVER: 140.114.XX.YY#53(140.114.XX.YY) ;; WHEN: Wed Sep 23 10:21:27 2009 ;; MSG SIZE rcvd: 64
不回覆 BIND 版本的設定
以下例子為不回覆 BIND 版本回答,其設定方法為修改 DNS 伺服器 140.114.XX.YY 的 named.conf 設定檔之 version 參數為 none,(注意,此處沒有雙引號“”),如下。
options { //(其他參數略...) version none; };
修改完上述設定並重新啟動 named 後,再以指令查詢結果,將看到不回覆版本資訊,如下結果。
# dig @140.114.XX.YY version.bind chaos txt ; <<>> DiG 9.3.4-P1 <<>> @140.114.XX.YY version.bind chaos txt ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 343 ;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;version.bind. CH TXT ;; AUTHORITY SECTION: version.bind. 86400 CH SOA version.bind. hostmaster.version.bind. 0 28800 7200 604800 86400 ;; Query time: 0 msec ;; SERVER: 140.114.XX.YY#53(140.114.XX.YY) ;; WHEN: Wed Sep 23 10:57:27 2009 ;; MSG SIZE rcvd: 77