[Resolvido] WPAD + Captive Portal



  • Pessoal, eu até pesquisei e encontrei algo sobre o assunto no fórum, mas são mensagens antigas e creio que não se aplicam na versão atual do pfSense. Estou utilizando o pfSense 2.4.4-RELEASE-p2 com Squid e SquidGuard. Não uso proxy transparente e estou distribuindo as configurações de proxy via WPAD, que fica hospedado em um outro servidor web da minha rede:

    function FindProxyForURL (url, host)
    {
    	return "PROXY 10.0.0.1:3128";
    }
    

    O problema é que ao ativar o Captive Portal em uma interface, eu não consigo acessar mais nada, nem o próprio pfSense. Como posso trabalhar com esses 2 recursos juntos? Obrigado!



  • Acabei conseguindo implementar depois de testar algumas configurações no arquivo WPAD, que ficou da seguinte forma:

    function FindProxyForURL(url,host)
    {
    	
    	// Se o site estiver na rede interna, manda direto
    	if (isPlainHostName(host) ||
    		shExpMatch(host, "*.local") ||
    		isInNet(dnsResolve(host), "10.0.0.0", "255.255.255.0") ||
    		isInNet(dnsResolve(host), "20.0.0.0", "255.255.255.0") ||
    		isInNet(dnsResolve(host), "30.0.0.0", "255.255.255.0") ||
    		isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
    			return "DIRECT";
    
    	// Proxy da rede 1
    	if (isInNet(myIpAddress(), "10.0.0.0", "255.255.255.0"))
    		return "PROXY 10.0.0.1:3128";
    
    	// Proxy da rede 2
    	if (isInNet(myIpAddress(), "20.0.0.0", "255.255.255.0"))
    		return "PROXY 20.0.0.1:3128";
    
    	// Proxy da rede 3
    	if (isInNet(myIpAddress(), "30.0.0.0", "255.255.255.0"))
    		return "PROXY 30.0.0.1:3128";
    
    	// Caso não esteja em nenhuma das redes, bloqueia
    	return "PROXY 127.0.0.1:48890";
    	
    }
    

    Meu principal problema era que o proxy serve outras subredes, então cada uma precisa do endereço correto para funcionar.
    Uma dificuldade foi testar as modificações no arquivo, pois os navegadores fazem cache deste arquivo. No caso do Internet Explorer, é possível desabilitar esse cache. No Chrome não consegui desabilitar, mas após alguns minutos testando ele atualizou.


Log in to reply