Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    [Resolvido] WPAD + Captive Portal

    Scheduled Pinned Locked Moved Portuguese
    2 Posts 1 Posters 1.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • marciosouzajuniorM
      marciosouzajunior
      last edited by marciosouzajunior

      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!

      1 Reply Last reply Reply Quote 0
      • marciosouzajuniorM
        marciosouzajunior
        last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.