WPAD no pfSense: Proxy Automático Sem Dor de Cabeça

Quando você precisa que smartphones, notebooks e dispositivos variados usem um proxy explícito sem precisar configurar manualmente em cada aparelho, a solução clássica é o WPAD (Web Proxy Auto-Discovery Protocol).
No pfSense, apesar de não existir um botão “WPAD ON”, ele suporta tudo o que o protocolo exige.

Este post explica, de forma objetiva, como fazer o WPAD funcionar no pfSense.


O que é WPAD?

WPAD é um método para os clientes descobrirem automaticamente um arquivo chamado wpad.dat, que contém as regras do proxy (PAC file).
Com isso, o dispositivo usa o proxy sem você tocar nele.

Funciona em:

  • Android
  • iPhone/iPad
  • Windows
  • macOS
  • Navegadores modernos

Como configurar WPAD no pfSense

1. Criar o arquivo wpad.dat

Crie um arquivo com este conteúdo básico:

function FindProxyForURL(url, host) {
    // Whitelist
    if (dnsDomainIs(host, "google.com")) return "PROXY 10.0.0.1:3128";
    if (dnsDomainIs(host, "github.com")) return "PROXY 10.0.0.1:3128";

    // Everything else blocked
    return "DIRECT";
}

Salve ele como:

/usr/local/www/wpad.dat

O pfSense automaticamente serve esse arquivo via HTTP.


2. Configurar DHCP Option 252 (WPAD)

No pfSense:

  1. Services → DHCP Server
  2. Selecione a interface da rede que deverá usar proxy
  3. Role até “Additional BOOTP/DHCP Options”
  4. Adicione:
    • Option: 252
    • Type: String
    • Value: http://10.0.0.1/wpad.dat

Esse é o método principal.
A maioria dos smartphones pega esse valor.


3. Criar entrada DNS “wpad”

Ainda no pfSense:

  1. Services → DNS Resolver
  2. Host Overrides
  3. Add:
    • Hostname: wpad
    • Domain: seu domínio interno (ex: localdomain)
    • IP: 10.0.0.1 (ou o IP da LAN do pfSense)

Isso permite que dispositivos procurem automaticamente:

http://wpad.localdomain/wpad.dat

4. Habilitar proxy no Squid (modo explícito)

No pfSense:

  • Instale o Squid
  • Configure em modo não-transparente
  • Porta padrão: 3128
  • Não habilite SSL-Bump se você não planejar instalar CA nos dispositivos
  • Crie suas ACLs normalmente

Como os dispositivos descobrem o WPAD?

Eles tentam, na seguinte ordem:

  1. DHCP Option 252
  2. DNS “wpad”
  3. Configurações manuais (caso existam)

Se um dos dois métodos responder, o dispositivo baixa o PAC file e passa a usar o proxy automaticamente.


Por que usar WPAD?

Porque é o único jeito funcional de:

  • Forçar smartphones a usarem proxy
  • Fazer whitelist por domínio sem instalar certificados
  • Controlar HTTPS sem interceptação
  • Evitar configurações manuais em cada aparelho

E principalmente:
evitar o pesadelo do SSL-Bump em ambiente misto.

Rolar para cima