Ir para o conteúdo

Capítulo 32 – WPAD

Introdução

O WPAD (Web Proxy Auto-Discovery Protocol) é um mecanismo que permite aos computadores da rede descobrirem automaticamente as configurações de proxy — sem necessidade de intervenção manual ou políticas de GPO. Através dele, navegadores e sistemas operacionais são capazes de localizar o arquivo de configuração automática do proxy (wpad.dat) utilizando registros DNS e DHCP.

Isso simplifica a administração, especialmente em ambientes com notebooks corporativos, usuários móveis ou redes segmentadas, evitando configurações manuais em cada estação.

Conceito

O arquivo wpad.dat contém regras lógicas em JavaScript que instruem o navegador a decidir quando usar o proxy e quando acessar diretamente os websites. Esse arquivo é servido por HTTP em um endereço padronizado: http://wpad.domínio.local/wpad.dat


Visão Geral do Processo

  1. Desativar o redirecionamento da WebGUI (porta 80 → 443).
  2. Instalar e configurar o NGINX como servidor HTTP para disponibilizar o arquivo wpad.dat.
  3. Ajustar o DHCP e o DNS para informar o caminho do WPAD aos clientes.
  4. Configurar as regras do arquivo wpad.dat dentro do Squid Proxy Auto-Config.
  5. Testar o funcionamento em uma estação cliente.

Etapa 1 – Desativar o WebGUI Redirect Rule

O redirecionamento padrão da WebGUI (HTTP → HTTPS) precisa ser desabilitado, pois o WPAD utiliza a porta 80/TCP e o OPNsense por padrão também ocupa esta porta.

  1. Acesse System → Settings → Administration.
  2. Marque a opção Disable web GUI redirect rule.
  3. Clique em Save ao final da página.

Etapa 2 – Instalar e Configurar o NGINX

1. Instalação do plugin

  • Vá em System → Firmware → Plugins.
  • Instale o plugin os-nginx.
  • Após a instalação, atualize a página (F5) para o menu do NGINX aparecer.

2. Ajuste do MIME Type para o arquivo WPAD

Acesse o console via SSH ou Shell do firewall e execute os comandos abaixo:

cat << EOF > /usr/local/etc/nginx/opnsense_http_vhost_plugins/wpad.conf
types {
    application/x-ns-proxy-autoconfig dat;
}
EOF

configctl template reload OPNsense/Nginx
pluginctl -s nginx restart

Esses comandos criam o tipo de arquivo correto para que o NGINX sirva o wpad.dat.

3. Criar a Location “/wpad.dat”

  • Acesse Services → NGINX → Configuration → HTTP(s) → Location.
  • Clique em + Add e preencha:

    • Description: Wpad
    • URL Pattern: /wpad.dat
    • File System Root: /usr/local/www
  • Clique em Save.

4. Criar o Servidor HTTP

  • Acesse HTTP(s) → HTTP Server e clique em + Add.
  • Habilite advanced mode.
  • Configure conforme abaixo:

    • HTTP Listen Address: 80
    • Default Server: ✓
    • ServerName: FQDN do firewall (ex.: utm-matriz.citrait.corp)
    • Location: Wpad
    • Disable Bot Protection: ✓
  • Clique em Save.

5. Habilitar o serviço NGINX

  • Vá em General Settings, marque Enable NGINX e clique em Apply.

6. Criar regra de firewall

Em cada interface que utilizará o proxy:

  • Crie uma regra liberando o tráfego TCP na porta 80 com destino ao próprio firewall.

Etapa 3 – Configurar o DHCP

  1. Vá em Services → Dnsmasq DNS & DHCP → DHCP options.
  2. Para cada interface que usará o proxy, clique em + Add e preencha da seguinte forma:

    • Interface: Selecione a Interface (ex.: LAN)
    • Option: 252
    • Value: "http://utm-matriz.citrait.corp/wpad.dat"
    • Description: WPAD LAN

    Importante

    As aspas no campo Value devem ser mantidas. Substitua o nome pelo FQDN do seu firewall.


Etapa 4 – Configurar o DNS no Firewall

  1. Vá em Services → Unbound DNS → Overrides.
  2. Crie um registro para o host wpad:

    Campo Valor
    Enabled
    Host wpad
    Domain empresa.corp
    Type A (IPv4)
    IP address IP da LAN do firewall
    Description WPAD
  3. Crie outro registro para o hostname do firewall:

    Campo Valor
    Enabled
    Host utm-matriz
    Domain citrait.corp
    Type A (IPv4)
    IP address IP da LAN do firewall
    Description Hostname Firewall
  4. Em Services → Unbound DNS → General, marque:

    • Do not register system A/AAAA records
  5. Clique em Apply.


Etapa 5 – Configurar o DNS no Servidor Windows (Domain Controller)

Em controladores de domínio com DNS interno, é necessário permitir a consulta ao nome “wpad”, bloqueado por padrão.

  1. Execute os comandos abaixo no PowerShell como Administrador:

    # Verifica se o bloqueio está ativo
    dnscmd /info /enableglobalqueryblocklist
    
    # Exibe a lista atual
    dnscmd /info /globalqueryblocklist
    
    # Desabilita o bloqueio global
    dnscmd /config /enableglobalqueryblocklist 0
    
  2. No console DNS Manager, crie manualmente o registro A “wpad” apontando para o IP do firewall.


Etapa 6 – Configurar o Arquivo WPAD no Squid

1. Criar os “Matches”

Vá em Services → Squid Web Proxy → Administration → Proxy Auto-Config → Matches.
Crie os seguintes Matches:

Nome Tipo Valor / Observação
IPs Locais IP is in Network Networks: 192.168.0.0/24 (LAN)
Hostname Simples Plain Hostname
Domínios Internos Hostname Matches Host Pattern: *.empresa.corp
Domínios Exceção Hostname Matches Host Pattern: (*.citrait.com.br | *123ze.com)
IPs Exceção Hostname Matches Host Pattern: (1.1.1.1|8.8.8.*)

2. Criar a Definição do Proxy

Em Proxy Auto-Config → Proxies:

  • Name: fw-matriz.citrait.corp
  • Description: Firewall da Matriz
  • Proxy Type: Proxy
  • URL: fw-matriz.citrait.corp:3128

Importante

Não esqueça de alterar fw-matriz.citrait.corp para o hostname do seu próprio firewall.

3. Criar a Regra que aplica o Proxy

Em Proxy Auto-Config → Rules:

  • Enabled:
  • Description: Proxy Matriz
  • Matches: Domínios Internos, IPs Locais, Hostnames Simples, Domínios Exceção, IPs Exceção
  • Join Type: Or
  • Match Type: Unless
  • Proxies: fw-matriz.citrait.corp
  • Após salvar, clique em Reload (ícone circular) para gerar o arquivo wpad.dat.

Importante

A regra acima está aplicando o Proxy para acessos que não sejam: Domínios Internos, IPs Locais, Hostnames Simples, Domínios Exceção ou IPs Exceção.


Etapa 7 – Testar o Funcionamento

  1. Remova qualquer configuração manual de proxy das estações.
  2. Reinicie o computador.
  3. Após logar, acesse um site (ex.: https://www.globo.com).
  4. No OPNsense, acesse Services → Squid Web Proxy → Access Log e verifique se o tráfego está sendo registrado.

Resultado esperado

O cliente deve navegar pela Internet e aparecer nos logs do Squid, mesmo sem configuração manual de proxy.


Conclusão

Com o WPAD configurado, o ambiente passa a oferecer descoberta automática de proxy, reduzindo o esforço de manutenção e padronizando a navegação. O OPNsense, em conjunto com o Squid e NGINX, fornece um ambiente completo para distribuição do arquivo wpad.dat via DNS e DHCP, compatível com navegadores modernos e redes corporativas de qualquer porte.