Home > Tecnologia > Desventuras com BIND

Desventuras com BIND

Recentemente tive a necessidade de fazer uma instalação dum servidor de nomes (DNS) no Linux. Quando fiz os testes, fi-lo com o Linux Ubuntu 9.04 Server e aparentemente correu tudo bem. Quando fiz a instalação no sistema final encontrei-me com que este era a versão Desktop (e não Server) e algumas coisas acabaram por não funcionar como era devido.

Após uma instalação com o “apt-get bind9”, e as respectivas modificações aos ficheiros /etc/hostname, /etc/hosts, /etc/resolv.conf e outros ficheiros, o servidor parecia estar a funcionar bem e a conseguir resolver as consultas. Era possível executar o comando “/etc/init.d/bind9” com “stop” ou “restart”.

Após a criação de zonas e a modificação do ficheiro “/etc/bind/named.conf.local”, tal e como já tinha feito várias vezes nas versões Server, os comandos para parar e reiniciar deixaram de funcionar, com um erro como o seguinte:

root@svr:/etc/bind# /etc/init.d/bind9 stop
 * Stopping domain name service... bind9
rndc: connection to remote host closed
This may indicate that
* the remote server is using an older version of the command protocol,
* this host is not authorized to connect,
* the clocks are not syncronized, or
* the key is invalid.

[ OK ]

De notar que não tinha feito qualquer alteração ao ficheiro “rndc.key” nem a qualquer outra secção do ficheiro “named.conf” que justificasse este tipo de resposta.

Após muitas voltas e consultas no Google e nos fóruns do Ubuntu, claramente o problema estava com a aplicação “rndc” que não estava a conseguir comunicar com o demónio “named”.

Criei uma configuração com a aplicação “rndc-confgen” para me gerar um ficheiro de configuração “rndc.conf” (que não existia inicialmente) e a respectiva chave em “rndc.key”. A seguir incorporei a secção correspondente gerada pela utilidade em “named.conf.local”.

Isto não resolveu o problema, apesar de ter verificado linha a linha que estava tudo bem, que o endereço do servidor e porta estavam iguais e que as chaves utilizadas eram também iguais. Revi os erros mais óbvios indicados nos diferentes fóruns, mas nada.

Por fim, numa revelação (…) tirei a definição da chave dos ficheiros “rndc.conf” e do “named.conf.local” e passei a fazer uma inclusão, deixando a secção em cada um dos ficheiros mecionados como se segue:

#key "rndc-key" {
#	algorithm hmac-md5;
#	secret "9pUTFohn4ic6msA2FskdQQ==";
#};

include "/etc/bind/rndc.key";

Não dá para perceber porque, mas após esta alteração tudo voltou a funcionar. O conteúdo do ficheiro “rndc.key” era igual ao conteúdo inserido directamente nos ficheiros.

Fica aqui este artigo que serve para mim e espero sirva para outros que se encontrem com o mesmo problema.

  1. No comments yet.
  1. No trackbacks yet.