Duvida - Wpad (Resolvido)



  • Olá Pessoal, Boa tarde!

    Gostaria de esclarecer uma duvida, sobre a configuração do arquivo wpad.dat

    o que está errado nesse código? qual seria a forma correta de fazer o ip "192.168.0.17", não passar pelo proxy  ?

    
    function FindProxyForURL(url, host)
    {
    
    // VARIAVEIS
    var proxy_yes = "PROXY 192.168.0.19:3128";
    var proxy_no = "DIRECT";
    
    // URLS que NAO PASSAM NO PROXY
    if (shExpMatch(url, "https://webmail.knowhowempregos.com.br.com.br*")) { return proxy_no; }
    if (shExpMatch(url, "http://192.168.0.19*")) { return proxy_no; }
    if (shExpMatch(url, "http://192.168.0.10:9090*")) { return proxy_no; }
    if (shExpMatch(url, "http://kaspersky-lab.com*")) { return proxy_no; }
    if (shExpMatch(url, "http://www.kaspersky.com*")) { return proxy_no; }
    if (shExpMatch(url, "http://kaspersky.com.br*")) { return proxy_no; }
    if (shExpMatch(url, "http://www.knowhowempregos.com.br*")) { return proxy_no; }
    
    // Ips que nao passam pelo proxy
    if (myIpAddress(), "192.168.0.17", "255.255.255.0") { return proxy_no;}
    
    // Proxy para as redes locais
    if (isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0")) { return proxy_yes; }
    
    else
    return "DIRECT";
    }
    
    

    Abraços,

    Diego



  • o que eu faço é colocar, na interface LAN, uma regra antes das demais liberando as portas para ela.
    Depois sigo com os bloqueios normais

    No print abaixo fiz um exemplo assim:

    1 - Bloqueio de Bogon Networks
    2 - Liberação de um alias (IPs_Fora_Proxy) permitindo toda navegação e demais portas
    3 - Libero acesso a porta 80 com destino ao próprio pfSense para entrega do wpad.
    4 - Bloqueio a porta 80 aos demais
    5 - Bloqueio a porta 443 aos demais
    6 - Libero as demais portas aos IPs




  • Falta um parâmetro na função do IP local.

    // Ips que nao passam pelo proxy
    if (isInNet(myIpAddress(), "192.168.0.17", "255.255.255.0")) { return proxy_no;}



  • @santeLLo:

    Falta um parâmetro na função do IP local.

    // Ips que nao passam pelo proxy
    if (isInNet(myIpAddress(), "192.168.0.17", "255.255.255.0")) { return proxy_no;}

    Olá Santello,

    As linhas abaixo não entram em conflito em virtude de estar no mesmo range de IP?

    questiono isso por que se eu deixar dessa forma ninguém consegue navegar, o proxy não carrega.

    Para funcionar eu teria que setar os ips que precisam de proxy manualmente? ou existe uma forma de facilitar isso?

    
    // Ips que nao passam pelo proxy
    if (isInNet(myIpAddress(), "192.168.0.17", "255.255.255.0") { return proxy_no;}
    
    // Proxy para as redes locais
    if (isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0")) { return proxy_yes; }
    
    

    Obrigado a todos.

    Diego



  • @andr3.ribeiro:

    o que eu faço é colocar, na interface LAN, uma regra antes das demais liberando as portas para ela.
    Depois sigo com os bloqueios normais

    No print abaixo fiz um exemplo assim:

    1 - Bloqueio de Bogon Networks
    2 - Liberação de um alias (IPs_Fora_Proxy) permitindo toda navegação e demais portas
    3 - Libero acesso a porta 80 com destino ao próprio pfSense para entrega do wpad.
    4 - Bloqueio a porta 80 aos demais
    5 - Bloqueio a porta 443 aos demais
    6 - Libero as demais portas aos IPs

    Olá Andre,

    Já tenho a regra de liberação antes de rejeitar o trafego das portas(80 e 443).
    o meu problema está justamente no código do wpad, não estou conseguindo fazer o navegador ignorar aquela estação, item que eu fazia facilmente quando utilizava o proxy setado nas maquinas ( desmarcava o proxy do navegador) e funcionava :)

    obrigado

    abraços,

    Diego



  • Entendi agora

    Pois é, aqui eu quando preciso usar esse recurso, cadastro o IP no alias e depois desmarco o "Detectar automaticamente" na janela do proxy.
    Faço assim porque muito raramente utilizo. Só faço pra testar se algum problema de internet tem a ver com o proxy/firewall.

    O script do wpad é javascipt né, quem manja consegue fazer um monte de coisas com ele!
    Pra mim, o wpad é sensacional!!



  • @andr3.ribeiro:

    Entendi agora

    Pois é, aqui eu quando preciso usar esse recurso, cadastro o IP no alias e depois desmarco o "Detectar automaticamente" na janela do proxy.
    Faço assim porque muito raramente utilizo. Só faço pra testar se algum problema de internet tem a ver com o proxy/firewall.

    O script do wpad é javascipt né, quem manja consegue fazer um monte de coisas com ele!
    Pra mim, o wpad é sensacional!!

    É uma solução paliativa!!
    Não tinha pensando em desmarcar o "Detectar automaticamente" :) …
    Geralmente faço isso para fins de teste também, ou quando ocorre um problema e tenho q liberar a maquina do usuário para passar direto. De vez em quando, tenho que fazer isso pois é necessário subir processos no site TRT2 e as vezes eles mudam alguma coisa e o squid bloqueia algum certificado, ai como é urgente, nem sempre posso resolver na hora, ai pego os logs e resolvo depois.

    Vou testar dessa forma que você falou.

    obrigado

    Diego



  • Andre,

    Dessa forma funciona e resolve meu problema. Um detalhe pequeno fez toda a diferença! kkkk :)

    Vivendo e aprendendo.

    Obrigado pela ajuda.

    Abraços,

    Diego



  • Opa, que bom que resolveu! Fico feliz em ter ajudado




  • Olá Pessoal,

    Consegui resolver o problema alterando o código do WPAD. Para quem estiver com o mesmo problema onde os ips e o sites continuam saindo pelo proxy, abaixo o código do arquivo wpad, dessa forma funciona perfeitamente.

    
    function FindProxyForURL(url, host)
    {
    // VARIAVEIS
    var host_ip;
    
    host_ip = dnsResolve(host);
    // Proxy para as redes locais
    // IPS que nao passam pelo proxy 
    //if (isInNet(host_ip(), "192.168.0.17", "255.255.255.0")) return "DIRECT";
    
    // URLS que NAO PASSAM NO PROXY
    if (shExpMatch(url, "http://192.168.0.19*")) return "DIRECT";
    if (shExpMatch(url, "http://192.168.0.10:9090*")) return "DIRECT";
    if (shExpMatch(url, "http://www.ssp.sp.gov.br*")) return "DIRECT";
    else
      return "PROXY 192.168.0.19:3128";
    }
    
    


  • Boa tarde!

    Fiz uma alteração, adicionando domínios para não passar no proxy..

    Espero ter ajudado.

    
    function FindProxyForURL(url, host)
    {
    // VARIAVEIS
    var host_ip;
    
    host_ip = dnsResolve(host);
    // Proxy para as redes locais
    // IPS que nao passam pelo proxy 
    //if (isInNet(host_ip(), "192.168.0.17", "255.255.255.0")) return "DIRECT";
    
    // URLS que NAO PASSAM NO PROXY
    if (shExpMatch(url, "http://192.168.0.19*")) return "DIRECT";
    if (shExpMatch(url, "http://192.168.0.10:9090*")) return "DIRECT";
    //if (shExpMatch(url, "http://www.ssp.sp.gov.br*")) return "DIRECT";
    if (shExpMatch(url, "http://www.knowhowempregos.com.br*")) return "DIRECT";
    if (shExpMatch(url, "http://webmail.knowhowempregos.com.br*")) return "DIRECT";
    if (shExpMatch(url, "http://webmail.grupoknh.com.br*")) return "DIRECT";
    if (shExpMatch(url, "http://www.grupoknh.com.br*")) return "DIRECT";
    
    // DOMINIOS 
     if(isInNet(host_ip, "192.168.0.0", "255.255.255.0") || dnsDomainIs(host_ip, "ssp.sp.gov.br") 
     return "DIRECT";
     else
      return "PROXY 192.168.0.19:3128";
    }
    
    

    Abraços

    Diego



  • Pessoal,

    Se uso wpad e filtro ssl (squid3+squidguard), eu preciso criar e instalar o certificado localmente nos navegadores dos computadores?

    Sds,

    Hugo