Bloqueios na Internet

Confidencial

Devido à natureza delicada das informações e ao contexto de sua disseminação, os domínios e sites restritos são tratados como confidenciais. O acesso à API é exclusivo para empresas de telecomunicações devidamente registradas na Anatel.

Verifique seu CNPJ aqui: ANATEL Outorga e Licenciamento

Contatos para obter acesso à API:


Implementação de Bloqueios de Domínios

A restrição de domínios no sistema DNS deve ser configurada no servidor DNS recursivo utilizado pelos clientes do provedor de Internet.

Bloqueio de Domínios no Bind9

Criar Diretório e Baixar Script
mkdir /etc/bind/scripts
cd /etc/bind/scripts
wget https://raw.githubusercontent.com/midia181/client_blockdomi/refs/heads/main/blockdomi-bind9.sh
Permissões de Execução para o Script
sudo chmod +x /etc/bind/scripts/blockdomi-bind9.sh
Adicionar Zona ao Bind9
sudo sed -i '$a\zone "blockdomi.zone" {\n    type master;\n    file "/etc/bind/blockdomi/db.rpz.zone.hosts";\n};' /etc/bind/named.conf.default-zones
Adicionar Response Policy
sudo sed -i '/^};/i \    response-policy {\n        zone "blockdomi.zone";\n    };' /etc/bind/named.conf.options
Executar o Script
sudo /etc/bind/scripts/blockdomi-bind9.sh localhost

Caso utilize um domínio para a página de bloqueio, substitua localhost pelo seu domínio.

Verificar Mensagens do Script
Diretório /etc/bind/blockdomi criado com sucesso.
Versão local não encontrada, baixando a versão 2024101202.
Arquivo de zona RPZ atualizado.
Permissões do diretório alteradas com sucesso.
Serviço Bind9 recarregado com sucesso.

O diretório /etc/bind/blockdomi/ terá os seguintes arquivos:

tree -h /etc/bind/blockdomi/
/etc/bind/blockdomi/
├── [546K]  db.rpz.zone.hosts
├── [118K]  domain_all
└── [  10]  version

0 directories, 3 files

Caso não tenha o tree instalado:

sudo apt install tree
Executar o Script Novamente
Diretório /etc/bind/blockdomi já existe.
Já está na versão mais atual: 2024101202.
Automatizar a Execução do Script
echo '00 00   * * *   root    /etc/bind/scripts/blockdomi-bind9.sh localhost' >> /etc/crontab
systemctl restart cron
Domínios Bloqueados
$TTL 1H
@       IN      SOA LOCALHOST. localhost. (
            2024101201      ; Serial
            1h              ; Refresh
            15m             ; Retry
            30d             ; Expire
            2h              ; Negative Cache TTL
        )
        NS  localhost.

assistirseriesmp4.com IN CNAME localhost.
*.assistirseriesmp4.com IN CNAME localhost.

Para cada domínio bloqueado, o arquivo terá entradas como:

assistirseriesmp4.com IN CNAME localhost.
*.assistirseriesmp4.com IN CNAME localhost.
Verificar Domínios Bloqueados
cat /etc/bind/blockdomi/domain_all
Testar Domínios Bloqueados

Após rodar o script, você poderá testar os domínios bloqueados:

dig assistirseriesmp4.com @localhost

Caso não tenha o pacote dnsutils instalado para testar com o dig:

apt install dnsutils

Exemplo de saída do comando dig:

; <<>> DiG 9.16.50-Debian <<>> assistirseriesmp4.com @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23555
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: bb21e28a5d506ebe01000000670ac85874808e2b1b5e2c57 (good)
;; QUESTION SECTION:
;assistirseriesmp4.com.         IN      A

;; ANSWER SECTION:
assistirseriesmp4.com.  5       IN      CNAME   localhost.
localhost.              604800  IN      A       127.0.0.1

;; ADDITIONAL SECTION:
blockdomi.zone.         1       IN      SOA     LOCALHOST. localhost. 2024101201 3600 900 2592000 7200

;; Query time: 552 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sat Oct 12 16:04:56 -03 2024
;; MSG SIZE  rcvd: 176