AnaBlock - Bloqueios na Internet Brasileira

  • Ordens
  • Perguntas frequentes
  • Manual
  • Contatos
  • Download

Manual de uso do AnaBlock

O AnaBlock é um catalogo de objetos bloqueados judicialmente. Esse site é uma cópia desse sistema, e você pode instala-lo na sua própria infraestrutura (servidor, máquina virtual, container...) para manter e atualizar os dados a cada nova ordem judicial, ofício ou comunicado enviado pela Anatel ou diretamente a você pelo judiciário.

  • Controle de versão e atualizações
  • Implementar bloqueios de domínios
  • Implementar bloqueios de IPs
  • Implementar AnaBlock localmente

Controle de versão e atualizações

O banco de dados do sistema AnaBlock sofre alterações com frequencia, essas alterações se devem pelos seguintes motivos:

  • Novas ordens de bloqueios
  • Revogação de uma ou mais ordens de bloqueio
  • Expiração do período de bloqueio de algum objeto (domínio, url, ip, ...)

Para que os softwares e scripts que se alimentam da base de dados do AnaBlock saibam quando recarregar e atualizar seus bloqueios, os seguintes endpoints podem ser usados:

Essa URL retorna o timestamp (Unix Timestamp, segundos desde 1970) da última alteração na base:

https://api.anablock.net.br/api/version
Exemplo de retorno:
1703710766

Essa URL retorna o hash MD5 do banco de dados:
https://api.anablock.net.br/api/md5
Exemplo de retorno:
9c38f51944c7f902972e3d89c08c7cbc

Para consultar os objetos bloqueados em uma data específica você pode informar a o timestamp na URL do endpoint, no exemplo abaixo, o timestamp 1693664543 marca a data/hora 2 de setembro de 2023, 14:22:23 (UTC):
https://api.anablock.net.br/ipv4/block/cisco?timestamp=1693664543
Exemplo de retorno:
ip route 38.180.4.183     255.255.255.255  Null0 1 
ip route 45.66.249.95     255.255.255.255  Null0 1 
ip route 54.187.119.217   255.255.255.255  Null0 1 
ip route 54.212.219.202   255.255.255.255  Null0 1 
ip route 91.222.173.6     255.255.255.255  Null0 1 

Implementar bloqueios de domínios


Bloqueio de domínios

O bloqueio de domínios no sistema de DNS precisa ser implementado no servidor DNS recursivo usado pelos clientes do provedor de Internet. A API que fornece os domínios a serem bloqueados pode fornecer a lista de várias formas, observe:

Essa URL retorna a lista de todos os domínios bloqueados, 1 domínio por linha:

https://api.anablock.net.br/domains/all
Exemplo de retorno:
aovivo.club
aovivo.gratis
aovivo.pro

Formatos de retorno suportados:

  • text (default)
  • unbound
  • bind9
  • adlist


Bloqueio de domínios no Unbound (NLnet Labs)

Essa URL retorna a mesma lista no formado unbound:

https://api.anablock.net.br/domains/all?output=unbound
Exemplo de retorno:
local-zone: "aovivo.club" always_nxdomain
local-zone: "aovivo.gratis" always_nxdomain
local-zone: "aovivo.pro" always_nxdomain


Essa URL retorna a mesma lista no formado unbound, redirecionando para o nome do site da Anatel:

https://api.anablock.net.br/domains/all?output=unbound&cname=anatel.gov.br
Exemplo de retorno:
local-zone: "aovivo.club" redirect
local-data: "aovivo.club CNAME anatel.gov.br"
local-zone: "aovivo.gratis" redirect
local-data: "aovivo.gratis CNAME anatel.gov.br"
local-zone: "aovivo.pro" redirect
local-data: "aovivo.pro CNAME anatel.gov.br"


Essa URL retorna a mesma lista no formado unbound, redirecionando para um IPv4 específico:

https://api.anablock.net.br/domains/all?output=unbound&ipv4=10.255.128.2
Exemplo de retorno:
local-zone: "aovivo.club" redirect
local-data: "aovivo.club A 10.255.128.2"
local-zone: "aovivo.gratis" redirect
local-data: "aovivo.gratis A 10.255.128.2"
local-zone: "aovivo.pro" redirect
local-data: "aovivo.pro A 10.255.128.2"


Essa URL retorna a mesma lista no formado unbound, redirecionando para um IPv4 e IPv6 específicos:

https://api.anablock.net.br/domains/all?output=unbound&ipv4=10.255.128.2&ipv6=2001:db8::1
Exemplo de retorno:
local-zone: "aovivo.club" redirect
local-data: "aovivo.club A 10.255.128.2"
local-data: "aovivo.club AAAA 2001:db8::1"
local-zone: "aovivo.gratis" redirect
local-data: "aovivo.gratis A 10.255.128.2"
local-data: "aovivo.gratis AAAA 2001:db8::1"
local-zone: "aovivo.pro" redirect
local-data: "aovivo.pro A 10.255.128.2"
local-data: "aovivo.pro AAAA 2001:db8::1"


Escolha o tipo de retorno desejado (bloqueio nxdomain, redirecionamento CNAME ou para algum IP específico) e baixe a configuração.
Exemplo:

#!/bin/bash

# No terminal (shell, bash, ash, ...) execute:

APIURL="https://api.anablock.net.br/domains/all?output=unbound"
CONF="/etc/unbound/anablock.conf"

# Baixando config no formato Unbound:
curl -s $APIURL -o $CONF

# Conferir se baixou corretamente, unifique em um arquivo temporario:
(
    cat /etc/unbound/unbound.conf;
    echo "server:";
    cat /etc/unbound/anablock.conf;
)  > /tmp/unbound-test.conf

# Testar:
unbound-checkconf /tmp/unbound-test.conf
unbound-checkconf: no errors in /tmp/unbound-test.conf

Note no exemplo acima que o conteúdo do anablock.conf deve estar na sessão "server:" do unbound. Você pode incluir o anablock.conf no unbound.conf da seguinte maneira, no final do arquivo:

# Arquivo /etc/unbound/unbound.conf
# (conteudo atual)

server:
    include: /etc/unbound/anablock.conf


Após inserir a configuração acima, reinicie o unbound para que entre em vigor os bloqueios.


Bloqueio de domínios no Bind9 (ISC)

Essa URL retorna a mesma lista no formado bind9 de declaração de zonas (usando zona localhost):

https://api.anablock.net.br/domains/all?output=bind9&file=/etc/bind/db.local
Exemplo de retorno:
zone "aovivo.club" IN {type master;file "/etc/bind/db.local";allow-update{none;};};
zone "aovivo.gratis" IN {type master;file "/etc/bind/db.local";allow-update{none;};};
zone "aovivo.pro" IN {type master;file "/etc/bind/db.local";allow-update{none;};};


Essa URL retorna a mesma lista no formado bind9 de declaração de zonas, arquivo específico:

https://api.anablock.net.br/domains/all?output=bind9&file=/etc/bind/db.anablock
Exemplo de retorno:
zone "aovivo.club" IN {type master;file "/etc/bind/db.anablock";allow-update{none;};};
zone "aovivo.gratis" IN {type master;file "/etc/bind/db.anablock";allow-update{none;};};
zone "aovivo.pro" IN {type master;file "/etc/bind/db.anablock";allow-update{none;};};

Exemplo do arquivo da zona:
# Arquivo /etc/bind/db.anablock ou /etc/bind/db.local
$TTL    3600
@   IN  SOA localhost. root.localhost. ( 2023122001 604800 86400 2419200 604800 )
@   IN  NS  localhost.
@   IN  A   127.0.0.1
@   IN  AAAA    ::1


Exemplo de implementação em bind9 (com zonas dos domínios bloqueados):

#!/bin/bash

# No terminal (shell, bash, ash, ...) execute:

APIURL="https://api.anablock.net.br/domains/all?output=bind9&file=/etc/bind/db.local"
CONF="/etc/bind/anablock.conf"

# Baixando config no formato Bind de zonas:
curl -s $APIURL -o $CONF

# Conferir se baixou corretamente, unifique em um arquivo temporario:
(
    cat /etc/bind/named.conf;
    cat /etc/bind/anablock.conf;
)  > /tmp/bind-test.conf

# Testar:
named-checkconf /tmp/bind-test.conf; RET="$?"
echo "Retorno: $RET"

# Retorno zero (0) significa que rodou corretamente, retorno 1 ou maior significa erro

Se o retorno for sucesso (0), você ja pode incluir o arquivo de zonas bloqueadas no seu named.conf, no final do arquivo coloque:

# Arquivo /etc/bind/named.conf
# (conteudo atual)

include "/etc/bind/anablock.conf";


Após inserir a configuração acima, reinicie o unbound para que entre em vigor os bloqueios.


Bloqueio de domínios nos sistemas ADLIST (e Mikrotik)

Essa URL retorna a mesma lista no formado ADLIST de declaração de entradas redirecionadas:

https://api.anablock.net.br/domains/all/adlist
Exemplo de retorno:
zone:
0.0.0.0 aovivo.club
0.0.0.0 aovivo.gratis
0.0.0.0 aovivo.pro


Para conduzir os bloqueios para um IP específico:

https://api.anablock.net.br/domains/all/adlist/10.255.128.2
Exemplo de retorno:
10.255.128.2 aovivo.club
10.255.128.2 aovivo.gratis
10.255.128.2 aovivo.pro

Para configurar o Mikrotik, execute no Terminal:

# No Winbox, menu System - Terminal

/ip/dns/adlist
add url=https://api.anablock.net.br/api/domain/all/adlist ssl-verify=no

/system scheduler
add name=reload_adlist interval=1d on-event="/ip dns adlist reload"




Implementar bloqueios de IPs


Bloqueio de IPs

O bloqueio de endereços IPs (IPv4, IPv6) podem ser feitos via firewall ou rotas blackhole. Normalmente as rotas blackholes são mais eficientes e mais simples, por outro lado o bloqueio por firewall pode retornar mensagens ICMP "prohibited" e deixar claro para o suporte técnico que há um bloqueio intencional dos endereços.

Técnicas de bloqueio:

  • Rota estática blackhole
  • Rota blackhole guiada por BGP
  • ACLs e regras de firewall

Bloquear IPs requer uma certeza de que o endereço não seja compartilhado com outros serviços. É comum que empresas que oferecem serviços de proteção DDoS e anti-BOT (como a CloudFlare por exemplo) sejam usados por aplicativos e serviços considerados ilegais e o bloqueio desse IP retire do ar muitos outros sites, serviços e aplicativos.

Outro problema é o fim do bloqueio dos IPs. Um IP bloqueado mundialmente desperta a atenção do ASN dono do IP, que tende a cancelar o contrato relacionado ao uso do IP por NET-ABUSE. Esse IP não pode ficar bloqueado eternamente, assim, bloquear e desbloquear fazem partes das ações administrativas do provedor de Internet.
A API fornecerá duas listas:

  • IPs desbloqueados: IPs cuja janela de bloqueio expirou e devem ser removidos firewalls/blackholes;
  • IPs bloqueados: IPs com bloqueio vigente e devem ser bloqueados.


Essa URL retorna a lista de IPs desbloqueados:

https://api.anablock.net.br/ipv4/unblock
Exemplo de retorno:
38.180.4.183/32
45.66.249.95/32
54.187.119.217/32
54.212.219.202/32
91.222.173.6/32
91.222.173.121/32
91.222.173.247/32
149.56.1.32/32
149.56.39.16/32
192.95.40.132/32


Essa URL retorna a lista de IPs bloqueados:

https://api.anablock.net.br/ipv4/block
Exemplo de retorno:
191.252.191.216/32
192.95.60.50/32
192.99.42.7/32
192.99.42.177/32
192.99.154.214/32


Formatos de retorno suportados (argumento "output" na QueryString da API):

  • text (default)
  • huawei
  • cisco
  • juniper
  • mikrotik
  • frr

Argumentos adicionais suportados na QueryString da API:

  • tag - Define a TAG de rota estática, permite diferenciar as rotas estáticas do AnaBlock das demais rotas estáticas no roteador quando verificadas em route-map/route-policy;
  • metric - Define a métrica (distância ou custo administrativo) da rota estática na RIB, por padrão é 1;
  • nexthop - Define a interface de blackhole ou IP do próximo salto para a rota estática, padrão Null

Use "block" para obter IPs a bloquear (adicionar), e "unblock" para obter IPs a desbloquear (remover), ou "both" para obter o manifesto de comandos para sincronizar com a realidade (deletar os IPs que sairam de vigencia e adicionar os vigentes).

Bloqueio:

https://api.anablock.net.br/ipv4/block/cisco
Exemplo de retorno:
ip route 38.180.4.183     255.255.255.255  Null0 1
ip route 45.66.249.95     255.255.255.255  Null0 1
ip route 54.187.119.217   255.255.255.255  Null0 1
ip route 54.212.219.202   255.255.255.255  Null0 1
ip route 91.222.173.6     255.255.255.255  Null0 1

Bloqueio com detalhes na rota:
https://api.anablock.net.br/ipv4/block/cisco?metric=10&tag=660&comment=AnaBlock-IPv4
Exemplo de retorno:
ip route 38.180.4.183     255.255.255.255  Null0 10 tag 660 name AnaBlock-IPv4
ip route 45.66.249.95     255.255.255.255  Null0 10 tag 660 name AnaBlock-IPv4
ip route 54.187.119.217   255.255.255.255  Null0 10 tag 660 name AnaBlock-IPv4
ip route 54.212.219.202   255.255.255.255  Null0 10 tag 660 name AnaBlock-IPv4
ip route 91.222.173.6     255.255.255.255  Null0 10 tag 660 name AnaBlock-IPv4

Desbloqueio:

https://api.anablock.net.br/ipv4/unblock/cisco
Exemplo de retorno:
no ip route 38.180.4.183     255.255.255.255
no ip route 45.66.249.95     255.255.255.255
no ip route 54.187.119.217   255.255.255.255
no ip route 54.212.219.202   255.255.255.255
no ip route 91.222.173.6     255.255.255.255

Sistema criado pela comunidade de consultores em
telecomunicações e prestadores de serviços.
Mantido pela TMSoft Soluções
Desenvolvido por Patrick Brandão
Meira ISP    TMSoft TMSoft Soluções    Nuva Nuva Soluções    Patrick Patrick Brandão

Rodrigo Ravi Monitor    Uai21 UAI Soluções    Basic DNS - Sylvio Jollenbeck BasicDNS    Tier Solutions - Rodrigo Moura Tier Solutions

3RSolution - Rudson Costa 3RSolution    Rudimar Remontti Rudimar Remontti    RR Flow Api RR flow API

Techno DNS Techno DNS    Solustic - Rodrigo Meireles Solustic    Xelp Xelp-TI

Xelp Flowspec - Mitigação DDoS