AdGuard Home: Bloqueio de Anúncios e Malware via DNS para PME

As pequenas e médias empresas (PME) enfrentam hoje um volume crescente de anúncios intrusivos, rastreadores e domínios maliciosos que consomem largura de banda, reduzem a produtividade e expõem a rede a infecções por malware. Tradicionalmente, a filtragem de conteúdo era delegada a firewalls empresariais caros ou a soluções de proxy complexas. O AdGuard Home oferece uma alternativa leve e eficaz: um servidor DNS local que filtra todo o tráfego de DNS a nível de rede, bloqueando anúncios, rastreadores e domínios de malware antes que cheguem a qualquer dispositivo.

Neste artigo, exploramos como o AdGuard Home funciona, como instalá-lo via Docker, configurar DNS a montante com DNS-over-HTTPS e DNS-over-TLS, gerir listas de bloqueio personalizadas, activar DNS-over-HTTPS para clientes remotos e compará-lo com o Pi-hole — a outra solução DNS de filtragem mais popular.

Conteúdos

O que é o AdGuard Home

O AdGuard Home é um servidor DNS recursivo e cache com capacidade de filtragem, desenvolvido em Go pela equipa AdGuard e distribuído como software livre sob a licença GPL. O seu código-fonte está disponível publicamente no repositório oficial no GitHub. Ao contrário das extensões de navegador que filtram apenas num navegador específico, o AdGuard Home opera a nível de DNS — o que significa que filtra todo o tráfego de todos os dispositivos conectados à rede: computadores, telemóveis, tablets, IoT e smart TVs.

Quando um dispositivo solicita a resolução de um domínio (por exemplo, ads.tracker.com), o AdGuard Home consulta as suas listas de bloqueio. Se o domínio estiver numa lista, o servidor devolve um endereço IP nulo (ou um IP de bloqueio configurável), impedindo a ligação. Se o domínio for legítimo, o AdGuard Home resolve-o normalmente através dos servidores DNS a montante configurados e guarda o resultado em cache para acelerar consultas futuras.

Para além da filtragem, o AdGuard Home oferece um painel de administração web com estatísticas em tempo real, registo de consultas, controlo de clientes individuais e suporte para protocolos DNS modernos como DNS-over-HTTPS (DoH), DNS-over-TLS (DoT) e DNSCrypt. Estas funcionalidades tornam-o numa solução completa para PME que pretendam proteger a sua rede sem investir em appliances dedicados.

Nota: O AdGuard Home filtra ao nível de DNS, o que significa que não bloqueia anúncios servidos a partir do mesmo domínio do conteúdo principal (ex: anúncios dentro do YouTube ou do Facebook). Para esses casos, complementar com uma extensão de navegador como o uBlock Origin continua a ser recomendado.

Instalação via Docker

A forma mais simples e recomendada de instalar o AdGuard Home numa PME é via Docker. Este método garante isolamento, facilita actualizações e permite gestão centralizada com Docker Compose. Antes de começar, é necessário ter o Docker e o Docker Compose instalados no servidor. O servidor deve ter um endereço IP estático na rede interna (ex: 192.168.1.10).

Como o AdGuard Home precisa de escutar nas portas 53 (DNS), 80 (HTTP para o painel inicial) e 3000 (painel web de configuração), é importante garantir que nenhum outro serviço está a usar essas portas. Em muitas distribuições Linux, o systemd-resolved ocupa a porta 53 por defeito. Para o desactivar temporariamente:

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
# Remover o resolv.conf simbólico e criar um novo
sudo rm /etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

De seguida, criar a estrutura de directórios e o ficheiro docker-compose.yml:

mkdir -p /opt/adguardhome/work
mkdir -p /opt/adguardhome/conf
cat <<'EOF' > /opt/adguardhome/docker-compose.yml
services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguardhome
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
      - "3000:3000/tcp"
      - "853:853/tcp"
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf
EOF

Iniciar o contentor com Docker Compose:

cd /opt/adguardhome
sudo docker compose up -d

Após iniciar o contentor, aceder ao assistente de configuração inicial através do navegador em http://192.168.1.10:3000 (substituir pelo IP do servidor). O assistente guia o administrador através da configuração da interface de escuta, porta do painel web e definição da palavra-passe de administrador. No final, o painel web fica disponível na porta 80 por defeito.

Atenção: Se o servidor tiver outros serviços web (ex: Nginx, Apache), a porta 80 pode entrar em conflito. Nesse caso, mapear o painel para outra porta (ex: "8080:80/tcp") e ajustar o assistente de configuração em conformidade.

Configuração DNS e Upstream

Após a instalação, o passo mais importante é configurar os servidores DNS a montante — os servidores para os quais o AdGuard Home encaminha as consultas que não bloqueia. Para uma PME preocupada com privacidade e segurança, recomenda-se usar servidores que suportem DNS-over-HTTPS (DoH) ou DNS-over-TLS (DoT), garantindo que as consultas DNS entre o AdGuard Home e o servidor a montante sejam cifradas e não interceptáveis na rede.

No painel web, aceder a Definições → Definições DNS. Na secção de servidores a montante, inserir os endereços em formato DoH/DoT. Exemplos recomendados:

# DNS-over-HTTPS (DoH)
https://dns.cloudflare.com/dns-query
https://dns.google/dns-query

# DNS-over-TLS (DoT)
tls://1dot1dot1dot1.cloudflare-dns.com
tls://dns.google

# Servidor DNS simples (fallback)
1.1.1.1
8.8.8.8

O AdGuard Home suporta o paralelismo de consultas a montante (parallel queries) — quando recebe uma consulta, envia-a em paralelo para todos os servidores a montante configurados e usa a resposta mais rápida. Para activar esta funcionalidade, marcar a opção “Paralelo” em vez de “Carga balanceada” nas definições de a montante. Isto reduz a latência percebida pelos clientes.

Outra configuração relevante é o Bootstrap DNS — os servidores DNS usados para resolver os endereços IP dos servidores DoH/DoT antes de estabelecer a ligação cifrada. Por defeito, o AdGuard Home usa 1.1.1.1 e 8.8.8.8. Para maior fiabilidade, pode-se adicionar 9.9.9.9 (Quad9) que também oferece filtragem de malware.

Para configurar o cache DNS, o AdGuard Home permite definir o tamanho do cache e o TTL mínimo. Um cache maior reduz consultas a montante e melhora o tempo de resposta. Para uma rede com 20-50 dispositivos, um cache de 4-8 MB é suficiente. A configuração pode ser feita via ficheiro AdGuardHome.yaml ou pelo painel web.

Após configurar os a montantes, é fundamental testar a resolução DNS. Num cliente configurado para usar o AdGuard Home como DNS, executar:

# Testar resolução de um domínio legítimo
nslookup kbase.pt 192.168.1.10

# Testar bloqueio de um domínio de anúncios
nslookup doubleclick.net 192.168.1.10
# Deve devolver 0.0.0.0 se o bloqueio estiver activo

Listas de Bloqueio

As listas de bloqueio (blocklists) são o coração do AdGuard Home. São ficheiros de texto com milhares ou milhões de domínios conhecidos por servir anúncios, rastreadores, malware, phishing e outros conteúdos maliciosos. O AdGuard Home inclui por defeito a lista oficial da AdGuard, mas permite adicionar listas de terceiros e criar regras personalizadas.

No painel web, aceder a Filtros → Listas de bloqueio DNS. Aqui é possível adicionar listas via URL. As listas mais recomendadas para PME incluem:

Lista Propósito Domínios (aprox.)
AdGuard Base Anúncios e rastreadores gerais ~80 000
StevenBlack Unified Anúncios + malware + phishing ~120 000
OISD Big Bloqueio sem falsos positivos ~100 000
HaGeZi Pro Bloqueio agressivo de rastreadores ~500 000
URLHaus Malware Domínios de malware activos ~10 000

Para além das listas externas, o AdGuard Home permite criar regras de bloqueio personalizadas em Filtros → Filtros personalizados. A sintaxe é simples — cada regra numa linha. Por exemplo:

||ads.exemplo.com^
||analytics.exemplo.pt^
||tracking.empresa.com^

# Bloquear todo um TLD
||*.xyz^

# Permitir um domínio (whitelist)
@@||servidor-legitimo.com^

# Bloquear por wildcard
||*-ads-*.com^

O AdGuard Home também suporta listas de permissão (allowlists) — domínios que nunca devem ser bloqueados, mesmo que estejam numa lista de bloqueio. Isto é essencial para evitar falsos positivos que possam quebrar serviços corporactivos críticos. Para configurar, aceder a Definições → Serviços bloqueados e adicionar domínios à secção de allowlist.

Dica para PME: Comece com a lista AdGuard Base e a OISD Big — esta combinação oferece bom equilíbrio entre bloqueio e falsos positivos. Monitore o consulta registo durante a primeira semana para identificar domínios legítimos que possam ter sido bloqueados e adicione-os à allowlist.

Cliente e DNS-over-HTTPS

Existem duas formas de configurar os clientes para usar o AdGuard Home: configuração DNS directa na rede ou DNS-over-HTTPS para clientes remotos. Para os dispositivos dentro da rede corporativa, a forma mais eficaz é configurar o AdGuard Home como servidor DNS no router ou servidor DHCP da rede, garantindo que todos os dispositivos recebam automaticamente o endereço IP do AdGuard Home como resolver DNS.

Num router típico, esta configuração encontra-se em LAN → DHCP Server → DNS Server. Substituir o DNS primário pelo IP do AdGuard Home (ex: 192.168.1.10) e deixar o DNS secundário vazio ou com um servidor de emergência. Em Windows Server DHCP, a configuração é feita através das opções de âmbito (Scope Options) 006 DNS Servers.

Para clientes remotos — colaboradores em trabalho remoto, filiais ou dispositivos móveis fora do escritório — o AdGuard Home pode servir DNS-over-HTTPS (DoH) diretamente. Isto permite que dispositivos configurados com o ponto final DoH do AdGuard Home continuem a beneficiar da filtragem mesmo fora da rede corporativa. Para activar, no painel web aceder a Definições → Definições de encriptação:

# Endereço DoH do AdGuard Home (exemplo)
https://adguard.empresa.pt/dns-query

# Porta de escuta DoH/DoT: 853 (DoT) e 443 (DoH)
# É necessário um certificado TLS válido

Para obter um certificado TLS válido, o servidor AdGuard Home deve ser acessível por um domínio público (ex: adguard.empresa.pt) com o registo DNS a apontar para o IP público do servidor. O AdGuard Home pode gerar certificados automaticamente via Let’s Encrypt se a porta 80 estiver acessível a partir da Internet, ou pode-se importar um certificado existente.

Para configurar um cliente Windows com DoH para o AdGuard Home, abrir Definições → Rede & Internet → Adaptador → Propriedades → IPv4 → DNS e adicionar o endereço DoH. Em macOS, a configuração é feita através de perfis de configuração (.mobileconfig). Para telemóveis, existem apps como DNSCloak (iOS) ou Intra (Android) que permitem configurar DoH personalizado.

O AdGuard Home também permite configuração por cliente — aplicar políticas diferentes a dispositivos específicos. Por exemplo, pode-se configurar uma política que bloqueia redes sociais apenas em dispositivos de colaboradores sem necessidade de acesso, enquanto permite acesso total nos dispositivos de marketing. Para configurar, aceder a Definições → Clientes e adicionar cada dispositivo por IP, MAC ou hostname.

AdGuard Home vs Pi-hole

O Pi-hole é a alternativa mais conhecida no espaço de filtragem DNS auto-hospedado. Ambos os projectos são código aberto, executam-se em hardware modesto e oferecem filtragem a nível de rede. No entanto, existem diferenças significativas que podem influenciar a escolha para uma PME:

Característica AdGuard Home Pi-hole
Linguagem Go (binário único) PHP + Bash (dependências)
DNS-over-HTTPS nativo Sim (servidor e cliente) Não (requer extra)
DNS-over-TLS nativo Sim Não (requer extra)
DNSCrypt Sim Não
Painel web Moderno, integrado Funcional, mais antigo
Controlo parental Integrado (serviços bloqueados) Via listas externas
Configuração por cliente Sim, nativo Sim, via grupos
Servidor DHCP integrado Sim Sim
API REST JSON Telnet + API web
Licença GPL EUPL

Em síntese, o AdGuard Home tem vantagem em ambientes que valorizam DNS cifrado nativo (DoH/DoT), instalação simplificada (binário único sem dependências PHP) e um painel web mais moderno. O Pi-hole, por outro lado, tem uma comunidade mais vasta, mais tempo de maturidade e maior ecossistema de integrações. Para uma PME que procura uma solução all-in-one sem configurações adicionais, o AdGuard Home é geralmente a escolha mais directa.

Boas Práticas

Para garantir que o AdGuard Home funcione de forma fiável e segura numa PME, recomenda-se seguir um conjunto de boas práticas operacionais e de segurança:

1. Actualizar regularmente as listas de bloqueio. As listas de bloqueio são actualizadas pelos seus mantenedores com novos domínios maliciosos. No AdGuard Home, aceder a Filtros → Listas de bloqueio DNS e clicar em “Verificar actualizações” periodicamente, ou configurar a actualização automática nas definições. Uma lista desactualizada deixa de bloquear ameaças emergentes.

2. Configurar DNS de fallback. Mesmo com DoH/DoT configurado, é prudente ter pelo menos dois servidores a montante diferentes. Se o Cloudflare tiver uma interrupção, o Google DNS continua disponível. Configurar também um DNS de fallback no router para o caso de o servidor AdGuard Home ficar indisponível — mas garantir que esse fallback não seja um DNS sem filtragem que anule o propósito do AdGuard Home.

3. Monitorizar o consulta registo. O AdGuard Home regista todas as consultas DNS (se o registoging estiver activo). Analisar regularmente o registo para identificar domínios bloqueados indevidamente (falsos positivos) e domínios suspeitos que possam indicar infecção por malware em clientes. O painel de estatísticas mostra os clientes mais activos, os domínios mais consultados e os domínios mais bloqueados.

4. Aplicar políticas por cliente. Nem todos os dispositivos precisam do mesmo nível de filtragem. Configurar perfis diferentes para servidores (filtragem mínima), estações de trabalho (filtragem completa) e dispositivos IoT (bloqueio restritivo). Isto reduz falsos positivos em serviços críticos mantendo protecção onde é necessária.

5. Fazer cópia de segurança da configuração. O ficheiro AdGuardHome.yaml contém toda a configuração — listas, regras personalizadas, clientes e políticas. Fazer cópia de segurança regular deste ficheiro (incluído no volume /opt/adguardhome/conf no exemplo Docker) permite restaurar rapidamente em caso de falha do servidor.

6. Manter o AdGuard Home actualizado. O projecto lança versões regularmente com correcções de segurança e novas funcionalidades. Para actualizar via Docker:

cd /opt/adguardhome
sudo docker compose pull
sudo docker compose up -d
# O Docker substitui o container antigo pelo novo
# Os volumes preservam toda a configuração

7. Proteger o painel de administração. O painel web do AdGuard Home deve ser acessível apenas a partir da rede interna. Se for necessário acesso externo, usar um VPN ou restringir o acesso por IP no firewall. Nunca expor o painel directamente à Internet sem protecção adicional. Alterar a palavra-passe de administrador regularmente e usar uma palavra-passe forte.

Recomendação final: Para uma PME com 10-50 dispositivos, um servidor AdGuard Home num Raspberry Pi 4 ou numa VM pequena com 1 GB de RAM e 10 GB de disco é mais do que suficiente. O impacto no desempenho da rede é negligenciável — o cache DNS reduz o tempo de resposta para domínios já resolvidos, tornando a navegação mais rápida em comparação com DNS directo.

Artigos Relacionados

Voltar ao Índice