terça-feira, 22 de julho de 2008

Qual é a versão do seu BIND?

Esse é um problema velho, muito velho... Velho mesmo! Mais ainda existem servidores de DNS que possuem essa feataure habilitada. Nos tempos em que se fala em vulnerabilidades do protocolo DNS (que sempre existiram, é bom ressaltar) muita gente além de não atualizar a versão do BIND, não segue as melhores práticas de segurança para servidores de DNS.

É possível, com uma query de DNS simples, descobrir a versão do BIND instalada do servidor de DNS (e não é só do BIND não...). Os exemplos abaixo são de dois grandes provedores de Internet no Brasil:

$ nslookup -type=txt -class=chaos version.bind ns1.xxxx.com.br
Server: ns1.xxxx.com.br
Address: 200.xxx.x.172#53

version.bind text = "9.3.1"

$ dig @ns1.xxxxxxx.com.br version.bind chaos txt
;; Warning: Message parser reports malformed message packet.

; <<>> DiG 9.3.4-P1 <<>> @ns1.xxxxxxx.com.br version.bind chaos txt
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4419
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;version.bind. CH TXT

;; ANSWER SECTION:
version.bind. 5 IN TXT "Served by POWERDNS 2.9.20 $Id: packethandler.cc 539 2005-11-11 11:17:47Z ahu $"

;; Query time: 34 msec
;; SERVER: 200.xxx.xxx.4#53(200.234.202.4)
;; WHEN: Tue Jul 22 17:04:44 2008
;; MSG SIZE rcvd: 121
Para não permitir que o BIND forneça sua versão com este tipo de consulta é necessário configurar a opção:
options {
version "Not disclosed";
}
Para mais informações, consultar este link.

Um comentário:

Leonardo Damasceno disse...

Boa dica! Mas, para complementar...

No Debian procure pela versão do pacote da seguinte maneira:

# dpkg -l bind

No Red hat:

# rpm -qa bind


Exemplo real:

[administrador@principal ~]$ rpm -qa bind
bind-9.3.4-6.0.3.P1.el5_2