Warda-DNS Warda: do inglês ward — proteger, guardião
v0.9.10

Artigo

Bloquear o DNS de saída no router ou na box

Um filtro DNS só vê as perguntas que lhe fazem. Uma televisão, uma aplicação ou um software malicioso que pergunta diretamente a 8.8.8.8 contorna-o, sem qualquer erro. A solução cabe ao router: só a caixa Warda pode enviar DNS para a Internet.

Publicado em · factos verificados em

01Porque é o router que o deve fazer

O seu router dá o endereço do Warda aos dispositivos, e a maioria usa-o. Mas alguns dispositivos têm o seu próprio servidor DNS escrito no software: televisões, colunas e câmaras que usam 8.8.8.8 diga a rede o que disser. Um programa pode fazer o mesmo, e também um software malicioso que quer falar com os seus servidores sem ser visto.

Esses pedidos nunca chegam ao Warda: não os pode bloquear, nem sequer vê-los. Só o router, que cada pacote atravessa para sair, os pode parar. A regra é simples: as portas do DNS só estão abertas para a caixa Warda.

02As portas a fechar

O DNS clássico usa a porta 53 (UDP e TCP). O DNS over TLS usa a porta 853 em TCP, e o DNS over QUIC a porta 853 em UDP. São estas as portas que uma regra pode fechar:

  • permitir as portas 53 e 853, TCP e UDP, a partir do endereço do Warda (e dos seus endereços IPv6) para a Internet: o Warda precisa delas para consultar os seus próprios servidores, cifrados;
  • recusar as portas 53 e 853 a partir de todos os outros dispositivos da rede para a Internet;
  • ou, só para a porta 53, redirecionar os pedidos para o Warda em vez de os recusar: uma televisão com 8.8.8.8 escrito continua a funcionar, e fica filtrada.

03Uma regra genérica

Num router com Linux (OpenWrt, um router feito em casa), basta uma regra nftables como a de baixo, com 192.168.1.53 substituído pelo endereço da sua caixa Warda. No pfSense, no OPNsense ou num router seu, a ideia é a mesma: uma regra na interface da rede local que deixa passar o endereço do Warda para as portas 53 e 853, e por baixo uma regra que bloqueia essas portas para o resto da rede.

Faça o mesmo em IPv6 com os endereços do Warda: um dispositivo que pergunta em IPv6 contorna uma regra escrita só para IPv4. Muitas boxes dos operadores não têm uma firewall assim: um router seu atrás da box leva então a regra.

nft
table inet warda_dns {
  chain forward {
    type filter hook forward priority filter; policy accept;
    # 192.168.1.53: the address of Warda, the only one that may ask outside
    ip saddr 192.168.1.53 accept
    meta l4proto { tcp, udp } th dport { 53, 853 } reject
  }
}

04Os limites, ditos com franqueza

Uma porta só fecha o que a usa. O DNS over HTTPS passa pela porta 443, a de todos os sites seguros: nenhuma regra de portas a pode fechar sem fechar a web. O Warda responde a essa parte pelos nomes: os serviços conhecidos de DNS cifrado, VPN e proxy são bloqueados para crianças e adolescentes, e o Firefox mantém o DNS da rede (consulta um nome de teste, a que o Warda responde como deve).

A porta 853 não se pode redirecionar: um pedido cifrado enviado ao Warda em vez do seu servidor falharia na verificação do certificado. Recuse-a, e a maioria dos dispositivos volta ao DNS da rede. Por fim, uma VPN leva tudo no seu túnel, DNS incluído: o Warda bloqueia os serviços de VPN conhecidos para os menores e, com a subscrição, avisa-o das tentativas.

05Fontes

  1. IETF, RFC 7858, «Specification for DNS over Transport Layer Security (TLS)», porta 853
  2. IETF, RFC 9250, «DNS over Dedicated QUIC Connections», porta 853 em UDP
  3. IETF, RFC 8484, «DNS Queries over HTTPS (DoH)»

Todo o centro de ajuda

Warda, o filtro DNS de toda a casa

O Warda é gratuito para casa e funciona num Raspberry Pi, com Docker ou em Debian.

Transferir o WardaO que o Warda bloqueia