Pular para conteúdo

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

  1. Acesse o Shell do nó Proxmox correspondente.

  2. 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)"

  3. No assistente, confirme as configurações recomendadas (Default Settings: Debian, 1 vCPU, 512 MB RAM, 4 GB Disk).

  4. 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:

  1. No Proxmox, selecione o LXC criado > Network > selecione net0 > Edit.

  2. Altere de DHCP para Static.

  3. 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.

  4. Reinicie o container LXC.

Passo 3: Configuração Inicial do Assistente AdGuard Home

  1. No navegador, acesse: http://<IP_ESTATICO_LXC>:3000

  2. Clique em Começar.

  3. Interfaces de Escuta:

    • Interface Web de Administração: Porta 80 (Todas as interfaces).

    • Servidor DNS: Porta 53 (Todas as interfaces).

  4. Autenticação: Crie as credenciais padrão do NOC (armazene no Vaultwarden/KeePass do cliente).

  5. 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:

  1. No painel do AdGuard Home, acesse Configurações > Configurações de DNS.

  2. 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.local pelo FQDN do cliente e 192.168.10.10 pelo IP real do Domain Controller).

  3. 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.

  4. Clique em Salvar.

Passo 5: Integração e Interceptação no OPNsense

A. Ajuste de Entrega do DHCP

  1. Acesse o OPNsense do cliente > Services > DHCPv4 > [Interface LAN].

  2. No campo DNS Servers, preencha com o IP Estático do AdGuard Home.

  3. 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:

  1. 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

  2. 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.

  1. Acesse o terminal do LXC do AdGuard Home no Proxmox.

  2. 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

  3. Edite o arquivo de configuração do agente:

    Bash

    nano /var/ossec/etc/ossec.conf

  4. 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>

  5. 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.local e nslookup google.com).

  • [ ] Bypass Check: Configurar o DNS 8.8.8.8 manualmente 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.