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"