Sobre o projeto
O TurkeyBite é um pipeline open-source de análise de contexto de domínios e hosts projetado para analisar o tráfego de rede dos clientes e categorizar os domínios solicitados pelos clientes, abrangendo categorias como conteúdo adulto, jogos de azar, compras e muito mais. Ele foi explicitamente criado como uma ferramenta de análise não intrusiva que não bloqueia as solicitações dos clientes, portanto pode ser executado junto de ferramentas de bloqueio como o Pi-hole, se necessário, sem impacto na experiência de rede do usuário final.
O pipeline baseia-se numa stack tecnológica baseada em Docker que inclui Python 3, Valkey (armazenamento de dados em memória compatível com Redis), servidor DNS Bind9, Packetbeat e/ou Browserbeat para coleta de tráfego, OpenSearch para indexação e armazenamento de dados, e OpenSearch Dashboards para visualização. Ele agrega listas de classificação de domínios e hosts de múltiplas fontes públicas para enriquecer os resultados da análise.
Em operação, o Packetbeat captura tráfego DNS de servidores DNS suportados (testado em produção com servidores Bind9 e Microsoft DNS, e compatível com qualquer servidor DNS que possa executar o Packetbeat) e envia os dados para o Valkey. O Browserbeat pode ser usado para coletar dados de histórico de navegação de navegadores suportados. Os processos core e worker do TurkeyBite processam os dados ingeridos, enriquecem-nos com contexto de categoria de domínio e indexam os resultados no OpenSearch para consulta e visualização via OpenSearch Dashboards.
A implantação é gerenciada via Docker Compose, com um script de configuração que orienta os usuários através da configuração para diferentes escalas de implantação (desenvolvimento, pequena escala, escala completa), incluindo configurações de consulta DNS para IPs de clientes, opções de saída (OpenSearch e/ou Syslog) e credenciais de serviço. O script de configuração gera automaticamente os arquivos de configuração necessários (.env, config.yaml, docker-compose.yml) e arquivos de segredo para autenticação de serviço. Para implantações distribuídas em vários nós, o script de configuração pode ser executado em cada nó com a configuração apropriada, e os segredos de autenticação do Valkey precisam ser copiados para os nós core e worker se o Valkey for executado num servidor dedicado separado.
Para a configuração da coleta de dados, o Packetbeat precisa ser configurado para capturar tráfego DNS na porta 53 e produzir saída para o Valkey, com correspondência cuidadosa das configurações de datatype e key ao modo de pipeline do TurkeyBite selecionado: o modo "consume" usa listas do Valkey para entrega pelo menos uma vez com rastreamento persistente de backlog, enquanto o modo "rq" usa pub/sub do Valkey, que é lossy por design. O Browserbeat é configurado separadamente seguindo suas próprias instruções de instalação para coletar dados de histórico de navegação.
A manutenção de rotina inclui verificar os logs armazenados no diretório vols/logs, e as listas de domínios armazenadas em vols/lists são atualizadas automaticamente de acordo com os intervalos de atualização configurados pelo usuário. Etapas comuns de solução de problemas incluem verificar os logs dos contêineres via docker compose logs, reiniciar serviços individuais e verificar a conectividade entre contêineres na rede Docker.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.