Posso logar consultas específicas no Bind 9?

3

Gostaria de saber quais hosts fazem uma consulta DNS específica e em que horários. Existe alguma maneira de obter registros específicos neste link 9?

Por exemplo, talvez eu queira registrar todas as A consultas para xyzzy.net .

    
por Daniel C. Sobral 22.03.2011 / 20:28

2 respostas

2

Coloque o tipo certo de stanza de canal no seu bloco {} de registro no named.conf.

        channel "client" {
            file "/var/log/client_named.log";
            severity info;
            print-time yes;
        };

provavelmente faria o truque. Isso deve te dar esse tipo de dado:

22-Apr-2011 12:06:53.294 client xxx.xxx.xxx.xxx#56202: view external-in: query: st.in.multi.surbl.org IN A +

EDIT: Aviso - ativar esse tipo de registro gerará arquivos de log muito grandes rapidamente e pode facilmente preencher seu disco sem ter algum tipo de rotação / compactação de log e provavelmente é mais adequado para uma breve sessão de coleta de dados , em vez de uma configuração permanente.

Se isso (junto com o pós-processamento do arquivo de log resultante) for demais, você poderia fazer isso usando uma ferramenta como o tcpdump.

tcpdump -i eth0 dst port 53 | egrep 'A' | egrep 'xyyzyy.com'

ou melhor ainda, escrevendo um filtro para corresponder apenas aos bits certos do pacote DNS que você deseja filtrar (o tipo A? neste caso)

Provavelmente, é mais fácil usar uma ferramenta como o dnstop. a página da web do dnstop fará toda a decodificação do protocolo para você, e o IIRC você pode filtrar sua saída usando -n para limitar o que captura para um único domínio.

    
por 22.03.2011 / 20:34
2

Não, as declarações de registro não são compatíveis com filtros. Você pode enviar logs de vinculação ao syslog e filtrar apenas o IP do cliente e um registro dentro das regras do syslog. Esse é provavelmente o método mais simples.

    
por 22.03.2011 / 21:43