Detecção Automática de Proxy wpad.example.com não funciona

3

Estou tentando configurar um método automático para descobrir meu proxy do Squid na rede local, configurando os navegadores com "Detecção automática".

O proxy está bem e funciona se eu especificar o IP: Port manualmente nos navegadores do cliente, também o script wpad funciona se especificar o URL do script nos navegadores do cliente.

Mas, eu quero configurar com detecção automática em todos os navegadores na rede local, e não funciona, o navegador mostra diretamente uma página do squid com a mensagem Access Denied, e não solicita usuário / senha para obter acesso.

O servidor proxy, como eu digo está funcionando bem, é um proxy transparente do Squid 3.1.

Servidor proxy

IP: 192.168.1.252

/etc/squid3/squid.conf configurações relevantes

http_port 3128 transparent

Configurações de regras de firewall do Google Earthwall

REDIRECT   lan          3128     tcp   80    - !192.168.1.0/24

Meu servidor DNS definiu este

Assim, wpad.example.com/wpad.dat é resolvido bem em estações locais, verificado. Aqui está a documentação relevante sobre isso

apacheserver    A          192.168.1.25
wpad            CNAME      apacheserver

O apacheserver tem isto:

/ etc / apache2 / sites-enable / wpad

# Auto Proxy Configuration
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /srv/custom/wpad
    ServerName wpad.example.com

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

</VirtualHost>
# vim:ft=apache:

/ srv / custom / wpad /

-rw-r--r--  1 root root  346 oct  2 11:59 wpad.dat
lrwxrwxrwx  1 root root    8 oct  2 10:52 proxy.pac -> wpad.dat
lrwxrwxrwx  1 root root    8 oct  2 10:52 proxy.dat -> wpad.dat

/srv/custom/wpad/wpad.dat

function FindProxyForURL(url,host) {
    if(isInNet(host,"127.0.0.1","255.0.0.0"))
        return "DIRECT";

    if(isPlainHostName(host))
        return "DIRECT";

    if(isInNet(host,"192.168.1.0","255.255.255.0"))
        return "PROXY 192.168.1.252:3128; DIRECT";

    else
        return "PROXY 192.168.1.252:3128; DIRECT";
}

O que estou perdendo aqui?

    
por elmonkeylp 02.10.2014 / 18:55

1 resposta

2

Resolveu-me.

Encontrei isso nos logs de acesso do servidor apache

192.168.1.70 - - [02/Oct/2014:16:20:02 -0300] "GET /wpad.dat HTTP/1.1" 404 493 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"

O Firefox está tentando buscar o arquivo de http://wpad/wpad.dat em vez de http://wpad.example.com/wpad.dat

Criando um arquivo wpad.dat no servidor apache DocumentRoot o com ServerAlias wpad resolve o problema

# Auto Proxy Configuration
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /srv/custom/wpad
    ServerName wpad.example.com
    ServerAlias wpad

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

</VirtualHost>
# vim:ft=apache:

E caso eu coloque um link simbólico em / var / www apontando para /srv/custom/wpad/wpad.dat

#ls -l /var/www
lrwxrwxrwx  1 www-data www-data   25 oct  2 16:45 wpad.dat -> /srv/custom/wpad/wpad.dat

Os novos registros:

192.168.1.196 - - [02/Oct/2014:16:22:37 -0300] "GET /wpad.dat HTTP/1.1" 200 606 "-" "Mozilla/5.0 (compatible; IE 11.0; Win32; Trident/7.0)"
    
por 02.10.2014 / 21:30