Logs de consultas do Bind

O software bind é o servidor DNS mais utilizado no mundo. Ele é desenvolvido pela Internet System Consortium (ISC), uma organização sem fins lucrativos. Criada em 1994 a ISC que possui uma bela missão: desenvolver software e oferecer serviços de suporte à infraestrutura da Internet.

Ele possui inúmeras funcionalidades diferentes. Basicamente, ele permite a construção de servidores DNS autoritativos e recursivos e tem suporte nativo ao IPv6 e ao DNSSec.

O bind também faz muito mais. Ele tem:

  • limite de velocidade de respostas: para resolver problemas de ataques de amplificação.
  • redirecionamento de domínios não existentes: para auxiliar usuários que digitam domínios errados.
  • integração com bancos de dados externos: permite integração com sistemas externos.
  • geoIP e views: respostas diferentes para origens diferentes.

Por padrão o bind registra as informações sobre as consultas realizadas. E isso não chega a ser um problema, considerando a necessidade da maioria dos usuários e o que o software foi desenvolvido para fazer.

No entanto, uma empresa que presto consultoria queria correlacionar as informações sobre quais as principais consultas realizadas aos seus servidores DNS. Isso permitirá identificar algumas informações, entre elas:

  • Quais são os servidores DNS recursivos da Internet.
  • A quais provedores esses servidores DNS pertencem.
  • Quais são os principais scanners de DNS existentes.

Além dessas informações, o log das consultas de DNS poderia algumas informações adicionais para a empresa, dentre elas:

  • Quais sites os usuários da minha rede local estão acessando.

Com esse tipo de informação, podemos estabelecer muitas correlações interessantes.

Agora, vamos ao que interessa!

No Ubuntu Server, para configurar logs de consultas no bind, basta alterar o arquivo “/etc/bind/named.conf.options” e inserir as seguintes linhas:

logging {
 channel querylog {
 file "/var/log/bind/query.log" versions 3 size 10m;
 severity debug 10;
 print-category yes;
 print-time yes;
 print-severity yes;
 };
 category queries { querylog; };
};

Estas instruções fazem bind armazenar as consultas no arquivo “/var/log/bind/query.log“, mantendo 3 arquivos de no máximo 10MB cada. Com isso você não precisa de se preocupar com o rotacionamento dos logs. Fique a vontade para alterar os parâmetros de acordo com as suas necessidades.

Antes de reiniciar o serviço, você deverá criar o diretório “/var/log/bind” e atribuir as permissões corretas. Para isso, basta executar os seguintes comandos:

mkdir /var/log/bind/
chown bind:bind /var/log/bind/

Tudo pronto. Agora é só reiniciar o serviço e verificar as consultas armazenadas!