Sobre el proyecto
TurkeyBite es una tubería de análisis de dominio y contexto de host de código abierto diseñada para analizar el tráfico de red del cliente y clasificar los dominios solicitados por los clientes, cubriendo categorías como contenido para adultos, juegos de azar, compras y más. Está explícitamente construido como una herramienta de análisis no intrusiva que no bloquea las solicitudes del cliente, por lo que se puede ejecutar junto a herramientas de bloqueo como Pi-hole si es necesario, sin afectar la experiencia de red del usuario final.
La tubería se basa en una pila tecnológica basada en Docker que incluye Python 3, Valkey (almacén de datos en memoria compatible con Redis), servidor DNS Bind9, Packetbeat y/o Browserbeat para la recopilación de tráfico, OpenSearch para indexación y almacenamiento de datos, y OpenSearch Dashboards para visualización. Agrega listas de clasificación de dominios y hosts de múltiples fuentes públicas para enriquecer los resultados del análisis.
En operación, Packetbeat captura el tráfico DNS de los servidores DNS compatibles (probado en producción con servidores DNS Bind9 y Microsoft, y compatible con cualquier servidor DNS que pueda ejecutar Packetbeat) y envía los datos a Valkey. Browserbeat se puede utilizar para recopilar datos del historial del navegador de navegadores compatibles. Los procesos central y de trabajador de TurkeyBite procesan los datos ingeridos, los enriquecen con contexto de categoría de dominio, e indexan los resultados en OpenSearch para su consulta y visualización a través de OpenSearch Dashboards.
El despliegue se gestiona mediante Docker Compose, con un script de configuración que guía a los usuarios a través de la configuración para diferentes escalas de implementación (desarrollo, pequeña escala, escala completa), incluyendo configuraciones de búsqueda DNS para IPs de cliente, opciones de salida (OpenSearch y/o Syslog) y credenciales del servicio. El script de configuración genera automáticamente los archivos de configuración requeridos (.env, config.yaml, docker-compose.yml) y archivos de secretos para autenticación del servicio. Para implementaciones distribuidas en múltiples nodos, el script de configuración se puede ejecutar en cada nodo con la configuración adecuada, y los secretos de autenticación de Valkey deben copiarse a los nodos central y de trabajador si Valkey se ejecuta en un servidor dedicado separado.
Para la configuración de recopilación de datos, Packetbeat debe configurarse para capturar tráfico DNS en el puerto 53 y enviarlo a Valkey, con una coincidencia cuidadosa de las configuraciones de tipo de dato y clave según el modo de tubería TurkeyBite seleccionado: el modo "consume" utiliza listas de Valkey para entrega al menos una vez con seguimiento persistente de cola, mientras que el modo "rq" utiliza pub/sub de Valkey que es con pérdida por diseño. Browserbeat se configura por separado siguiendo sus propias instrucciones de instalación para recopilar datos del historial del navegador.
El mantenimiento de rutina incluye verificar los registros almacenados en el directorio vols/logs, y las listas de dominios almacenadas en vols/lists se actualizan automáticamente según los intervalos de actualización configurados por el usuario. Los pasos comunes de resolución de problemas incluyen verificar los registros de los contenedores, reiniciar servicios individuales mediante docker compose logs/restart, y verificar la conectividad entre los contenedores en la red Docker.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.