¿Es posible configurar BIND como servidor DNS en mi red local y ejecutar scripts cuando se realiza una búsqueda?
Me gustaría ejecutar un script Python o Bash, basado en la búsqueda de DNS entrante, ¿cómo puedo resolver esto?
Si es posible en Bind, dígame cómo, y si no, dígame si es posible en otras implementaciones de servidores DNS que se ejecutan en Ubuntu.
Muchas gracias.
Respuestas:
Puedo pensar en dos opciones adicionales que no requieren analizar los registros de BIND o interferir en absoluto con BIND.
1) Duplicación de puertos: paquetes duplicados y envíelos a un puerto separado donde una aplicación está escuchando, analizando las solicitudes de DNS y tomando medidas.
dpkt
o lasscapy
bibliotecas de creación de paquetes similares lo ayudarán a analizar las solicitudes sin procesar.2) Use algún tipo de biblioteca de rastreo de paquetes para monitorear pasivamente las solicitudes. Aquí hay un ejemplo usando
scapy
:Obviamente, este es solo un ejemplo primitivo. Solo imprime el nombre del dominio que se consultó, pero, por supuesto, puede agregar una gran cantidad de lógica. Si hace referencia a documentación escasa, encontrará que todos los campos de la solicitud de DNS están fácilmente disponibles.
fuente
Puede hacerlo supervisando el registro del servidor de enlace (el registro de consultas debe estar activado). Buena suerte...
fuente
/dev/shm
, también.swatch
o OSSEC en los registros para llamar a su secuencia de comandos. No es una muy buena idea a largo plazo, de cualquier manera.No se implementan eventos como Bind, no es necesario.
Puede buscar firewalls aplicativos, que se utilizan en algunas organizaciones para restringir el acceso a algunos usuarios. Allí tendrías más posibilidades de lograr lo que quieres.
La configuración de rutas también parece una buena idea, al final, lo que desea lograr con la ejecución de script enlazado y activado también será ineficiente: debe:
Configurar cargas de rutas no es un problema y no afectará el rendimiento de una manera notable. ¿Cuántas rutas crees que tienen los enrutadores corporativos? cientos? no del todo ... Y no necesariamente tienen una configuración de hardware elegante. En serio, estás bien, los sistemas operativos serios están diseñados específicamente para manejar muchas rutas y optimizar la búsqueda.
Además de lo que quería hacer en primer lugar es usar una base de datos en la parte superior de la tabla de enrutamiento, que sería otro tipo de base de datos. Mantenlo simple. En los servidores BGP, muchas rutas se seleccionan / prefieren realmente por razones políticas / financieras, cada ISP / organización puede hacer eso y todos agregan rutas específicas para este propósito. El costo de tránsito o una orden judicial a menudo es la causa de tales medidas.
fuente