Implementação do AdGuard Home em LXC com OPNsense, Active Directory e Wazuh
Classificação: Procedimento Operacional Padrão / Segurança & Infraestrutura
Aplicabilidade: Clientes Corporativos e Adequação Técnica ao Provimento CNJ nº 213 (Cartórios)
Objetivo: Implementação de servidor DNS seguro com filtragem de conteúdo, retenção/auditoria de logs via Wazuh, integridade com domínio Active Directory e interceptação forçada via OPNsense.
1. Motivo do Não Acesso Inicial (Diagnóstico Rápido)
Ao finalizar a criação do container pelo script, o AdGuard Home inicializa o assistente de boas-vindas na porta 3000 e não na porta 80.
-
Acesso inicial do assistente:
http://<IP_DO_CONTAINER>:3000 -
Após concluir o assistente inicial definindo a porta Web como 80, o acesso definitivo passa a ser:
http://<IP_DO_CONTAINER>
2. Passo a Passo de Implantação
Passo 1: Provisionamento do LXC no Proxmox VE
-
Acesse o Shell do nó Proxmox correspondente.
-
Execute o comando de criação automatizada do container:
Bash
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/adguard.sh)" -
No assistente, confirme as configurações recomendadas (Default Settings: Debian, 1 vCPU, 512 MB RAM, 4 GB Disk).
-
Ao término do script, identifique o ID do container recém-criado.
Passo 2: Fixação de Endereço IP Estático (Lupa / Proxmox)
Para evitar perda de resolução DNS por expiração de concessão DHCP:
-
No Proxmox, selecione o LXC criado > Network > selecione
net0> Edit. -
Altere de DHCP para Static.
-
Defina o endereço IPv4 fixo em notação CIDR (Exemplo:
192.168.10.5/24) e o Gateway apontando para a interface LAN do firewall OPNsense. -
Reinicie o container LXC.
Passo 3: Configuração Inicial do Assistente AdGuard Home
-
No navegador, acesse:
http://<IP_ESTATICO_LXC>:3000 -
Clique em Começar.
-
Interfaces de Escuta:
-
Interface Web de Administração: Porta
80(Todas as interfaces). -
Servidor DNS: Porta
53(Todas as interfaces).
-
-
Autenticação: Crie as credenciais padrão do NOC (armazene no Vaultwarden/KeePass do cliente).
-
Conclua o assistente. O painel definitivo responderá em:
http://<IP_ESTATICO_LXC>
Passo 4: Integração com o Active Directory (Encaminhamento Condicional e PTR)
Para que a rede resolva simultaneamente nomes internos da zona .local/.corp e nomes externos da Internet sem quebrar ingressos em domínio, Kerberos ou diretórios compartilhados:
-
No painel do AdGuard Home, acesse Configurações > Configurações de DNS.
-
No campo Servidores DNS Upstream (Upstream DNS Servers), adicione os servidores externos seguros (DoH/DoT) e a regra de encaminhamento condicional para o controlador de domínio (AD):
Plaintext
[/dominio.local/]192.168.10.10 [/10.168.192.in-addr.arpa/]192.168.10.10 https://dns.adguard-dns.com/dns-query https://security.cloudflare-dns.com/dns-query(Substitua
dominio.localpelo FQDN do cliente e192.168.10.10pelo IP real do Domain Controller). -
Em DNS Privados Reversos (Private Reverse DNS Servers):
-
Insira o IP do Active Directory (
192.168.10.10). -
Marque a opção "Resolver endereços IP de clientes" para que os relatórios do AdGuard mostrem o Hostname NetBIOS/AD da estação em vez de apenas o endereço IP.
-
-
Clique em Salvar.
Passo 5: Integração e Interceptação no OPNsense
A. Ajuste de Entrega do DHCP
-
Acesse o OPNsense do cliente > Services > DHCPv4 > [Interface LAN].
-
No campo DNS Servers, preencha com o IP Estático do AdGuard Home.
-
Salve e aplique.
B. Regra de Interceptação Forçada (NAT Port Forward - Porta 53)
Evita que usuários ou softwares configurem DNS manual (ex: 8.8.8.8) para burlar as políticas:
-
Acesse Firewall > NAT > Port Forward > Add.
-
Interface:
LAN -
TCP/IP Version:
IPv4 -
Protocol:
TCP/UDP -
Source:
LAN net -
Destination / Invert: Marcar caixa
Invert(qualquer destino que NÃO seja o próprio AdGuard) -
Destination:
Single host or Network>IP_DO_ADGUARD_LXC -
Destination Port Range: de
53 (DNS)até53 (DNS) -
Redirect Target IP:
IP_DO_ADGUARD_LXC -
Redirect Target Port:
53 (DNS) -
Description:
[NOC] Interceptar e Redirecionar DNS Externo para AdGuard Local
-
-
Salve e clique em Apply Changes.
Passo 6: Integração de Logs com o Wazuh (Adequação Provimento 213)
O Provimento CNJ 213 exige retenção, rastreabilidade e monitoramento contínuo de acessos e incidentes.
-
Acesse o terminal do LXC do AdGuard Home no Proxmox.
-
Instale o agente do Wazuh:
Bash
wget -qO - https://packages.wazuh.com/key/GPG-KEY-WAZUH.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/wazuh.gpg echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list apt-get update && WAZUH_MANAGER="IP_DO_WAZUH_SERVER" WAZUH_AGENT_GROUP="DNS_Servers" apt-get install wazuh-agent -y -
Edite o arquivo de configuração do agente:
Bash
nano /var/ossec/etc/ossec.conf -
Adicione o bloco de leitura do log de consultas do AdGuard dentro da tag
<ossec_config>:XML
<localfile> <log_format>syslog</log_format> <location>/opt/AdGuardHome/data/query.log</location> </localfile> -
Inicie e ative o serviço:
Bash
systemctl daemon-reload systemctl enable wazuh-agent systemctl restart wazuh-agent
3. Lista de Verificação Final (Homologação Técnica)
-
[ ] Acesso: Painel do AdGuard responde na porta 80 via IP estático.
-
[ ] Resolução AD: A máquina cliente no domínio consegue resolver nomes internos e externos normalmente (
nslookup srv-dc.dominio.localenslookup google.com). -
[ ] Bypass Check: Configurar o DNS
8.8.8.8manualmente na placa de rede da estação de teste; verificar se a consulta é interceptada e surge no Log de Consultas do AdGuard. -
[ ] Identificação de Host: O log do AdGuard exibe o IP local e o nome da máquina originadora.
-
[ ] Wazuh Check: Eventos de DNS estão sendo recebidos no dashboard do Wazuh Manager.