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"