[Resolvido] Bypass num IP específico pelo script WPAD



  • Bom dia, pessoal!

    Tenho um pfSense rodando em minha rede com Squid em modo não transparente, com as configurações de proxy fornecidas via WPAD/PAC. Meu script já está funcionando tanto via DHCP como via DNS, testei em vários navegadores e tudo está certo.

    No entanto eu tenho uma dúvida a respeito do script WPAD/PAC que não consegui resolver nem usando o Google nem pesquisando aqui no fórum: em todos os tutoriais que eu vi sobre a criação do script, sempre se ensina como dar bypass em sub-redes inteiras, mas não achei nada sobre dar bypass em uma máquina específica. É possível fazer isso através do script?



  • Pessoal, fuçando mais um pouco Internet afora encontrei a resposta! Também editei o título pra que fique mais fácil caso outros precisem dessa solução.

    Seguinte, pra dar bypass num IP específico através do script WPAD basta adicionar esta linha ao script:

    if (myIpAddress() == "xxx.xxx.xxx.xxx") { return "DIRECT"; }
    

    Obviamente "xxx.xxx.xxx.xxx" deve ser substítuido (mantendo as aspas) pelo endereço IP que você quer fazer passar direto.

    Obs.: Pude ver em mais de um site que há ressalvas ao uso desta função (myIpAddress), alegando que ela pode retornar o IPv6 da máquina ao invés do IPv4, o que não é suportado pelo WPAD/PAC. Ou ainda, que ela pode retornar um endereço IPv4 diferente do esperado, caso haja mais de um na máquina. Por fim, há o risco de ele retonar "localhost" ou "127.0.0.1" como endereço: há um tratamento para isso no artigo da Wikipédia (http://en.wikipedia.org/wiki/Proxy_auto-config) sobre o assunto, mas esse tratamento resolve o problema apenas no Internet Explorer 9 ou superior.
    O que posso dizer é que nos meus testes tudo funcionou como esperado: hosts que estavam configurados da forma acima passaram direto pelo proxy,  e os que não estavam foram barrados.

    De qualquer forma obrigado a todos, tenho aprendido muito aqui!