É possível configurar o BIND como servidor DNS na minha rede local e criar scripts de execução quando ele for consultado?
Gostaria de executar um script Python ou Bash, com base na pesquisa de DNS recebida, como posso resolver isso?
Se possível no Bind, diga-me como, e se não, diga-me se é possível em outras implementações de servidor DNS, executadas no Ubuntu.
Muito obrigado.
Respostas:
Posso pensar em duas opções adicionais que não exigem a análise de logs BIND ou interferem com o BIND.
1) Espelhamento de porta - duplique pacotes e envie-os para uma porta separada em que um aplicativo esteja ouvindo, analisando as solicitações de DNS e tomando medidas.
dpkt
ouscapy
bibliotecas de criação de pacotes semelhantes ajudarão a analisar as solicitações brutas.2) Use algum tipo de biblioteca de detecção de pacotes para monitorar passivamente as solicitações. Aqui está um exemplo usando
scapy
:Obviamente, este é apenas um exemplo primitivo. Ele apenas imprime o nome do domínio que foi consultado, mas é claro que você pode adicionar uma grande quantidade de lógica. Se você fizer referência à documentação scapy, verá que todos os campos da solicitação DNS estão prontamente disponíveis.
fonte
Você pode fazer isso monitorando o log do servidor de ligação (o log de consultas deve estar ativado). Boa sorte...
fonte
/dev/shm
, também.swatch
ou OSSEC nos logs para chamar seu script. não é uma idéia muito boa a longo prazo, de qualquer forma.Não existem eventos implementados no bind, não é necessário.
Você pode procurar firewalls aplicativos, usados em algumas organizações para restringir o acesso a alguns usuários. Lá você teria mais chances de conseguir o que deseja.
A configuração de rotas também parece uma boa ideia; no final, o que você deseja obter com a execução de scripts de ligação e acionada também será ineficiente: você deve:
Configurar cargas de rotas não é um problema e não afeta o desempenho de maneira perceptível. Quantas rotas você acha que os roteadores corporativos possuem? centenas? não exatamente ... E eles não necessariamente têm uma configuração de hardware sofisticada. Sério, você está bem, os sistemas operacionais sérios são projetados especificamente para lidar com muitas rotas e otimizar a pesquisa.
Além do que você queria fazer, estava usando um banco de dados em cima da tabela de roteamento, que seria outro tipo de banco de dados. Mantenha simples. Nos servidores BGP, muitas rotas são realmente selecionadas / preferidas por razões políticas / financeiras, cada ISP / organização pode fazer isso e todas elas adicionam rotas específicas para esse fim. O custo do trânsito ou uma ordem judicial geralmente é a causa de tais medidas.
fonte