Página Inicial > Linux > WPAD auto proxy com Dnsmasq no CentOS

WPAD auto proxy com Dnsmasq no CentOS

Opa,

Hoje vamos configurar nosso servidor dnsmasq para enviar a informação do endereço do servidor proxy automaticamente para os nossos navegadores (browsers). Para isso será necessário um servidor Web, nesse post utilizei o apache, para servir o arquivo wpad.dat para as máquinas da sua rede local, vamos a instalação:

# yum install httpd

Agora criamos um arquivo de configuração para associar a extensão .dat ao mime type do script de autoconfiguração no apache:

# vim /etc/httpd/conf.d/proxy_autoconfig.conf

AddType application/x-ns-proxy-autoconfig .dat

Feito isso execute um reload no serviço:

# /etc/init.d/httpd reload

OBS.: Caso utilize virtual host no apache (minha situação) configure o wpad para ser o virtual host default ou disponibilize o arquivo wpad.dat no diretório raiz do virtual host default, caso contrário irá perder tanto tempo quanto eu perdi até descobrir isso! 🙂

Agora iremos criar o arquivo wpad.dat na raiz do seu servidor Web, nesse arquivo definimos que a rede local não deverá passar pelo proxy (DIRECT) e outros tipos de conexão deverão usar o proxy (PROXY 192.168.100.250:3128):

# vim /var/www/html/wpad.dat

function FindProxyForURL(url, host) {
    if (isInNet(host, "192.168.100.0", "255.255.255.0"))
        return "DIRECT";
    else
        return "PROXY 192.168.100.250:3128";
}

Adicione uma entrada no seu arquivo hosts apontando para o endereço IP do servidor Web:

# vim /etc/hosts

192.168.100.250     wpad.local.com

E adicione uma entrada no seu servidor dnsmasq referente ao endereço do seu arquivo wpad.dat (opção 252):

# vim /etc/dnsmasq.conf

# Proxy (Com um espaço após o .dat para que algumas versões do IE funcionem)
dhcp-option=252,"http://wpad.local.com/wpad.dat "

OBS.: WPAD com DHCP só funcionou com o IE, a solução com DNS funcionou tanto para o IE quanto para o Firefox.

Recarregue seu servidor dnsmasq:

# /etc/init.d/dnsmasq reload

Acesse uma máquina, configure a conexão do navegador para utilizar proxy automático (detectar automaticamente o proxy), reinicie (restaure) sua interface de rede para obter as novas informações e pronto, no log do servidor web já deve ser possível visualizar o acesso ao wpad.dat:

# tail -f /var/log/httpd/access.log

192.168.100.144 – – [07/Jul/2009:14:00:58 -0300] “GET /wpad.dat HTTP/1.1” 200 128 “-” “Mozilla/4.0 (compatible; MSIE 7.0; Win32

Fontes: http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol, http://users.telenet.be/mydotcom/library/network/pac.htm, http://www.howtoforge.net/squid-proxy-server-on-ubuntu-9.04-server-with-dansguardian-clamav-and-wpad-proxy-auto-detection

Categories: Linux Tags: , , , ,
  1. 13, agosto, 2009 em 09:36 | #1

    Artigo no Br-linux rapaz. Tá podendo. ehehheehe
    Exixtem muitos posts aqui que devem ser publicados lá rapaz, teu blog é rico. 😀

  2. 13, agosto, 2009 em 13:54 | #2

    Pois é! Espero conseguir colaborar com mais material!

  3. Andre
    25, maio, 2010 em 20:17 | #3

    E como configura o DNS usando o dnsmasq para funcionar no firefox????

  4. 26, maio, 2010 em 09:09 | #4

    Opa Andre,

    A configuração exibida nesse post foi utilizando a solução baseada em DNS, portanto basta segui-la para ter o proxy automaticamente configurado tanto no Internet Explorer quanto no Mozilla Firefox!

    Abraço!

  5. Euripedes
    8, janeiro, 2014 em 10:31 | #5

    Como ficou seu arquivo dnsmasq.conf ?

    Pois estou fazendo o mesmo, só que o expand-host não funciona.
    Pois na estação eu coloco “ping wpad” e não responde, apenas com “ping wpad.local.com”.
    E pelo que entendi, por padrão os navegadores procura por http://wpad/wpad.dat, isso mesmo?

    Outra coisa, mesmo configurando o arquivo wpad no navegador, só funciona se o proxy estiver transparente. É assim mesmo?
    _________________________________________
    domain-needed
    bogus-priv
    expand-hosts
    local=/local.com/
    domain=local.com
    interface=eth1
    listen-address=127.0.0.1
    server=8.8.8.8
    server=8.8.4.4
    ________________________
    minha estação esta com o ip statico.
    ip: 192.168.200.20
    gateway: 192.168.200.254
    dns: 192.168.200.254

    Faz 1 mês que tento resolver isso.
    Pois com wpad o https também passam pelo proxy,
    e bloqueia completamente, pois os usuarios da rede esta acessando o facebook por https.

    Obrigado!

  6. 8, janeiro, 2014 em 15:29 | #6

    Opa Euripedes,

    Cara, a minha configuração está bem parecida com a tua, e só consigo pingar o wpad especificando o domínio, igual a você. Aqui eu não testei muito o acesso pelo wpad pois tenho uma política de grupo que configura o proxy nos navegadores das máquinas, portanto não utilizo proxy transparente. Ela serve mais para as máquinas que não estão no domínio e algum técnico que tenha esquecido de configurar o navegador do usuário.

    Abraço!

  7. Euripedes
    8, janeiro, 2014 em 17:51 | #7

    Pelo que vi no artigo do link: http://blogdonerd.com.br/2011/10/descoberta-automatica-de-proxy-wpad-web-proxy-auto-discovery/ é necessário o servidor dns responder por wpad.
    Eu acredito que o problema seja no expand-hosts.

    São muitas máquinas na minha rede, e nem todas estão no dominio.
    O problema que eles conseguem acessar o facebook, mesmo bloqueado no squid, pelo o link https://pt-br.facebook.com/ pois não passa pelo proxy.

    Fiz uma alternativa. No arquivo hosts coloquei a seguinte linha “127.0.0.1 pt-br.facebook.com”.
    Neste o facebook para de funcionar em toda rede. Mas tem vários outras sites que acontece isso.
    Então pelo que o eu vi o certo seria isso mesmo.
    Pois com o wpad os https também passam pelo proxy.

    Obrigado!

  8. 9, janeiro, 2014 em 07:13 | #8

    Opa Euripedes,

    Como aqui na empresa deixo definido o proxy no navegador dos usuários, não tenho esse problema, pois todo o acesso passa por ele, inclusive https.

    Abraço!

  1. 13, agosto, 2009 em 07:30 | #1
  2. 24, julho, 2010 em 08:56 | #2