2

Como automatizamos bloqueios judiciais (Anatel/Justiça) no Unbound DNS para ISPs usando Node.js (Módulo AnaBlock)

Introdução
Qualquer pessoa que trabalhe na operação de um Provedor de Internet (ISP) ou gerencie servidores DNS recursivos no Brasil sabe o pesadelo regulatório que é cumprir as ordens judiciais de bloqueio. Sejam sites de apostas clandestinas (BETS), IPTV pirata, plataformas sob segredo de justiça (como ordens do STF, Gaeco/MPSP, TJSP) ou ordens diretas da Anatel, o volume de bloqueios cresceu exponencialmente.

Executar esses bloqueios manualmente nas caixas de roteamento (como MikroTik) ou editando arquivos de configuração de servidores DNS é ineficiente, lento e arriscado (um caractere inválido e o recursivo cai, deixando o ISP fora do ar).

Neste artigo, vou explicar a arquitetura e a engenharia por trás do módulo AnaBlock integrado ao Unbound Sentinel. Ele conecta o servidor Unbound DNS recursivo diretamente à API do AnaBlock (a plataforma que unifica e consolida os bloqueios judiciais para provedores autorizados pela Anatel), aplicando as regras de domínios, URLs e IPs maliciosos de forma assíncrona, segura e automatizada.

O Fluxo de Integração
O módulo funciona como um Control Plane escrito em Node.js rodando acoplado ao Unbound DNS. A sincronização automática ocorre a cada 4 horas no background:
[Cron de Sincronização - 4h]


[syncAnaBlock]


[Chamadas HTTP Paralelas]
├──> API AnaBlock ──> Domínios .conf
├──> API AnaBlock ──> URLs Maliciosas
├──> API AnaBlock ──> Faixas IPv4
└──> API AnaBlock ──> Faixas IPv6


[Parser e Sanitização Node.js]


[Geração de anablock.conf]


[Verificação: unbound-checkconf]
├───> OK ───> [systemctl reload unbound]
└───> Erro ──> [Abortar & Preservar Anterior]
Detalhes de Implementação: Tratamento do Feed
Devido ao sigilo de justiça envolvido em diversas ordens judiciais de telecomunicações, o acesso às APIs do AnaBlock é restrito a empresas com licença e CNPJ ativo na Anatel. O módulo Sentinel conecta-se nas APIs de dados para baixar quatro conjuntos de regras:
Contatos anablock
👉 https://anablock.net.br/

DNS Domains: Domínios completos que devem ser bloqueados.
URLs: Links específicos contendo o caminho completo.
IPv4 / IPv6: Endereços e prefixos CIDR de servidores de destino ilegais.

  1. Normalização de URLs para o Escopo de DNS
    Como o DNS opera na camada de nomes de host (resolvendo nomes de domínios) e as ordens judiciais muitas vezes bloqueiam URLs completas, o módulo Node.js realiza o tratamento dinâmico em tempo de compilação:

javascript

const lines = urlsRaw.value.split('\n').map(l => l.trim()).filter(l => l);
for (const line of lines) {
try {
const url = new URL(line.startsWith('http') ? line : 'http://' + line);
if (url.hostname) {
finalConfig += local-zone: "${url.hostname}" always_nxdomain\n;
}
} catch (e) {}
}
Isso extrai o hostname raiz de forma segura e o injeta como uma zona local no Unbound configurada como always_nxdomain. Toda requisição DNS de cliente direcionada a este site é interceptada instantaneamente e retorna NXDOMAIN (domínio inexistente) a partir da memória RAM, em menos de 1ms, sem onerar os links de trânsito ou tráfego externo do provedor.

  1. Bloqueio IP Reverso no DNS (private-address)
    Algumas plataformas judiciais burlam o bloqueio de domínio criando dezenas de aliases de host ou subdomínios novos diariamente. Para combater isso de forma estrutural, a API do AnaBlock fornece as faixas de IPs dos hosts maliciosos ou servidores de pirataria.

Nós convertemos essa lista de IPs/CIDRs usando a diretiva private-address do Unbound DNS:

unbound

private-address: 198.51.100.0/22
private-address: 2a0b:f4c0::/32
Se qualquer consulta de DNS resolver para um endereço IP que pertença a esses blocos bloqueados, o Unbound descarta a resposta DNS na hora. O cliente de rede nunca obtém o IP de destino, tornando impossível o estabelecimento de conexões TCP/UDP com o servidor de destino, anulando a eficácia de novas rotas ou domínios alternativos da plataforma ilegal.

Robustez da Operação (Zero-Downtime)
Derrubar o DNS de um ISP por causa de uma sintaxe inválida em um feed judicial seria imperdoável. A robustez do módulo é garantida por duas camadas:

Validação de Sintaxe Remota: O arquivo compilado é salvo em /etc/unbound/local.d/anablock.conf e é verificado localmente usando o utilitário nativo unbound-checkconf. Se houver qualquer falha, o reload do serviço não é disparado, logando o incidente e preservando as regras estáveis anteriores.
Reload Dinâmico (SIGHUP): Disparamos um systemctl reload unbound para reler a configuração sem pausar o processo do servidor DNS e sem esvaziar o cache recursivo já acumulado na RAM, o que evita picos de latência na rede.
Conclusão
Com o módulo AnaBlock, automatizamos a conformidade regulatória de bloqueios judiciais e da Anatel de maneira robusta, garantindo que o provedor esteja legalmente resguardado a cada 4 horas de forma invisível.
Você pode fazer o download da imagem ISO Appliance e acessar a documentação técnica oficial diretamente no site do projeto:

👉 https://dns.sentineldns.uk

Como vocês fazem hoje para gerenciar e automatizar as ordens de bloqueios da Anatel e do Judiciário nos seus provedores e servidores corporativos? Automatizam via API própria, usam regras BGP/Blackhole, ou inserem scripts de sincronização via SSH em roteadores de borda? Vamos debater nos comentários!

Carregando publicação patrocinada...
1
1

Boa tarde, show Anablock ajuda muito fazia tempo que gostaria de ter conseguido acesso para implatar onde trabalho e incorporar ao projeto.
Entra em conta lá Anablock solução interessate e pode vender sua rede como rede protegida.
Lhe desejo Saude e Sucesso igualmente!

1

Meus 2 cents extendidos,

Como nao sou provedor de ultima milha - nao tinha necessidade de implementar os bloqueios da ANATEL, apesar de receber os avisos por email regularmente.

(OBS: Apesar de ter licenca SCM normal - nunca foi a ideia prover acesso a cliente final, mas foi uma exigencia para poder trabalhar com IoT, coisas da burocracia das telecomunicacoes...)

Mas gostei da ideia da API e fiz meu cadastro com Anablock/Patrick - que foi ligeiro no processo, ja acessei e fiz os testes: nunca se sabe quando isso pode ser util.

Obrigado pelo post !

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

1