dns服务器

安全学习:如何获取DNS服务器的版本信息

向某个DNS服务器发送下面的请求即可获得版本信息

% dig txt chaos VERSION.BIND @ns1.cxxxxxxxxx.com
它返回的信息如下:

; <<>> DiG 9.10.6 <<>> txt chaos VERSION.BIND @ns1.xxxxxxxxx.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54602
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;VERSION.BIND.          CH  TXT

;; ANSWER SECTION:
VERSION.BIND.       0   CH  TXT "9.11.3-1ubuntu1.15-Ubuntu"

;; AUTHORITY SECTION:
version.bind.       0   CH  NS  version.bind.

;; Query time: 18 msec
;; SERVER: 1.2.3.4#53(1.2.3.4)
;; WHEN: Sun May 15 16:58:41 CST 2022
;; MSG SIZE  rcvd: 105

为了安全考虑,需要修改版本信息。在BIND中,您可以用version指令来修改版本信息。如果你的BIND版本较旧,存在一些已知的或者已经被黑客挖掘到的bug,他们通过version.bind获取到BIND版本号字后会发起针对该版本号BIND的攻击,隐藏您的BIND版本信息,可以让你的DNS服务器免于被利用BIND漏洞的 黑客攻击。

option {
    #...
    version "I don't tell you my version.";
    #...
};