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

    Squid autenticado no Captive Portal pfSense 2.3

    Scheduled Pinned Locked Moved Portuguese
    47 Posts 16 Posters 13.7k 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.
    • A
      augusto_pereira
      last edited by

      Boa tarde rlrobs,

      Realmente precisamos fazer uma mudança no script,tente com esse:

      #!/usr/local/bin/php-cgi -q
      if(!defined(STDIN)){
        define("STDIN", fopen("php://stdin", "r"));
      }
      if(!defined(STDOUT)){
        define("STDOUT", fopen("php://stdout", "r"));
      }

      while (!feof(STDIN)) {

      $check_ip = trim(fgets(STDIN));
      $dbs = glob("/var/db/captiveportal*.db");
      //print_r($dbs);

      foreach($dbs as $i => $db){
        if(!strpos($db, "_radius")){
            $status = check_ip($db, $check_ip);
      if(isset($status)){
        $return = "OK user={$status}\n";
      break;
      }
      else{
        $return = "ERR\n";
      }
        } 
      }
      fwrite(STDOUT, "{$return}");
      } // end While

      function check_ip($db, $check_ip){
        exec("sqlite3 {$db} "SELECT ip FROM captiveportal WHERE ip='{$check_ip}'"", $ip);
        if($check_ip == $ip[0]){
            exec("sqlite3 {$db} "SELECT username FROM captiveportal WHERE ip='{$check_ip}'"", $user);
            return $user[0];
        }
      }

      ?>

      Atenciosamente,

      Augusto P. dos Santos
      Suporte Técnico

      Telefones: (11) 2365-4013 / 2365-4014

      Al. Joaquim Eugênio de Lima Nº 187 4º Andar
      Jd.Paulista,São Paulo/SP - CEP: 01403-001

      1 Reply Last reply Reply Quote 0
      • D
        derikdk
        last edited by

        Estou com proxy ATIVO e o Captive portal ja esta autenticando POREM so autentica se desativar o proxy da estação, ai depois tenho que ativar para conseguir navegar… =/
        Alguem tem uma ideia do captive autenticar mesmo com o proxy ativo no cliente?

        1 Reply Last reply Reply Quote 0
        • D
          derikdk
          last edited by

          Captive portal so demonstra a tela de autenticação com Squid TRANSPARENTE.  :-\

          1 Reply Last reply Reply Quote 0
          • V
            VictorM
            last edited by

            @augusto_pereira:

            Olá pessoal,

            Há tempos estou buscando a solução para Squid (transparente) autenticado no Captive Portal em desde a versão 2.2.x. Nos debugs encontrei problemas com o script PHP que faziam o processo do Squid parar.

            A solução foi recriar o script em php. Para aplicar a correção basta trocar o conteúdo do arquivo /usr/local/bin/check_ip.php pelo o conteúdo abaixo e salvar as configurações do Squid e do Captive Portal:

            #!/usr/local/bin/php-cgi -q
            if(!defined(STDIN)){
            define("STDIN", fopen("php://stdin", "r"));
            }
            if(!defined(STDOUT)){
            define("STDOUT", fopen("php://stdout", "r"));
            }
            $check_ip = trim(fgets(STDIN));
            $dbs = glob("/var/db/captiveportal*.db");
            foreach($dbs as $db){
            $status = check_ip($db, $check_ip);
            break;
            }
            if(isset($status)){
            fwrite(STDOUT, "OK user={$status}\n");
            }
            else{
            fwrite(STDOUT, "ERR\n");
            }

            function check_ip($db, $check_ip){
            exec("sqlite3 {$db} "SELECT ip FROM captiveportal WHERE ip='{$check_ip}'"", $ip);
            if($check_ip == $ip[0]){
            exec("sqlite3 {$db} "SELECT username FROM captiveportal WHERE ip='{$check_ip}'"", $user);
            return $user[0];
            }
            }
            ?>

            OBS: Não foi testado em outras versões anteriores a 2.3;

            OBS2: Deixar um site de redirecionamento após a autenticação (configuração After authentication Redirection URL do Captive Portal) ajuda a retornar a página mais rápido. Porém se a página estiver em cache também será rapido o login, se a página não estiver em cache o retorno pode demorar.

            Abs!

            Augusto

            O meu deu tudo certo porem a pagina do captive não abre, da erro como se eu tivesse que autenticar pra abrir, coloquei uma pagina na Whitelist e apenas ela abre, como faço para que todas as paginas redirecionarem para autenticação do captive? :(

            1 Reply Last reply Reply Quote 0
            • marcellocM
              marcelloc
              last edited by

              @derikdk:

              Captive portal so demonstra a tela de autenticação com Squid TRANSPARENTE.  :-\

              Quando o proxy está marcado, a pagina inicial do navegador precisa estar configurada para não passar pelo proxy no cliente.

              Treinamentos de Elite: http://sys-squad.com

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • V
                VictorM
                last edited by

                @marcelloc:

                @derikdk:

                Captive portal so demonstra a tela de autenticação com Squid TRANSPARENTE.  :-\

                Quando o proxy está marcado, a pagina inicial do navegador precisa estar configurada para não passar pelo proxy no cliente.

                Meu proxy não esta marcado, esta como transparente, e mesmo asssim a pagina do CP não aparece nem mesmo forçando ela colocando a porta, ja configurarei as regras do firewall para passa fora do proxy mas mesmo assim nem sinal do CP abrir

                1 Reply Last reply Reply Quote 0
                • D
                  derikdk
                  last edited by

                  Complementando a dica estava faltando "SOMENTE ISSO"  ;D

                  @marcelloc:

                  @derikdk:

                  Captive portal so demonstra a tela de autenticação com Squid TRANSPARENTE.  :-\

                  Quando o proxy está marcado, a pagina inicial do navegador precisa estar configurada para não passar pelo proxy no cliente.

                  ![Sem título.jpg](/public/imported_attachments/1/Sem título.jpg)
                  ![Sem título.jpg_thumb](/public/imported_attachments/1/Sem título.jpg_thumb)
                  Rules.jpg
                  Rules.jpg_thumb

                  1 Reply Last reply Reply Quote 0
                  • J
                    jrcferrari
                    last edited by

                    @augusto_pereira:

                    Boa tarde,

                    Segue o script corrigido para funcionar com Radius.

                    Utilizei seu script porém só recebo mensagem de acesso negado, ao retirar a autenticação do squid, autentico no captive e navego de boa.

                    Utilizo o pfsense 2.3 e o pacote nativo do squid. o captive autentica em um Server 2008 R2

                    Squid transparente.

                    Depois que alterar o check_ip disse para alterar o squid e captive também, mas quais são essas alterações?

                    1 Reply Last reply Reply Quote 0
                    • J
                      jrcferrari
                      last edited by

                      Refiz o esquema de alteração do cóigo para Radius e desta vez deu certo, obrigado a quem postou a alteração do código para Radius.

                      @jrcferrari:

                      @augusto_pereira:

                      Boa tarde,

                      Segue o script corrigido para funcionar com Radius.

                      Utilizei seu script porém só recebo mensagem de acesso negado, ao retirar a autenticação do squid, autentico no captive e navego de boa.

                      Utilizo o pfsense 2.3 e o pacote nativo do squid. o captive autentica em um Server 2008 R2

                      Squid transparente.

                      Depois que alterar o check_ip disse para alterar o squid e captive também, mas quais são essas alterações?

                      1 Reply Last reply Reply Quote 0
                      • V
                        VictorM
                        last edited by

                        @derikdk:

                        Complementando a dica estava faltando "SOMENTE ISSO"  ;D

                        @marcelloc:

                        @derikdk:

                        Captive portal so demonstra a tela de autenticação com Squid TRANSPARENTE.  :-\

                        Quando o proxy está marcado, a pagina inicial do navegador precisa estar configurada para não passar pelo proxy no cliente.

                        Alem dessa configuração tenho que fazer mais alguma pra abri o CP com o proxy setado?

                        Porque só com essa não abre não kk "Ela abre a pagina que eu liberei mas não redireciona pro CP"

                        1 Reply Last reply Reply Quote 0
                        • A
                          augusto_pereira
                          last edited by

                          VictorM,

                          Captive Portal somente funciona com proxy transparente. Não há como fazer funcionar com proxy marcado.

                          Att,

                          Augusto

                          Atenciosamente,

                          Augusto P. dos Santos
                          Suporte Técnico

                          Telefones: (11) 2365-4013 / 2365-4014

                          Al. Joaquim Eugênio de Lima Nº 187 4º Andar
                          Jd.Paulista,São Paulo/SP - CEP: 01403-001

                          1 Reply Last reply Reply Quote 0
                          • T
                            tomaswaldow
                            last edited by

                            @augusto_pereira:

                            VictorM,

                            Captive Portal somente funciona com proxy transparente. Não há como fazer funcionar com proxy marcado.

                            Att,

                            Augusto

                            Claro que tem, eu uso dessa forma.

                            Tomas @ 2W Consultoria

                            1 Reply Last reply Reply Quote 0
                            • J
                              jonathanalves
                              last edited by

                              @Tomas:

                              @augusto_pereira:

                              VictorM,

                              Captive Portal somente funciona com proxy transparente. Não há como fazer funcionar com proxy marcado.

                              Att,

                              Augusto

                              Claro que tem, eu uso dessa forma.

                              Então compartilhe conosco como você faz, Tomas Waldow.

                              1 Reply Last reply Reply Quote 0
                              • V
                                VictorM
                                last edited by

                                @jonathandalves:

                                @Tomas:

                                @augusto_pereira:

                                VictorM,

                                Captive Portal somente funciona com proxy transparente. Não há como fazer funcionar com proxy marcado.

                                Att,

                                Augusto

                                Claro que tem, eu uso dessa forma.

                                Então compartilhe conosco como você faz, Tomas Waldow.

                                Porfavor compartilhe

                                1 Reply Last reply Reply Quote 0
                                • T
                                  tomaswaldow
                                  last edited by

                                  Bom, eu uso WPAD, mas ideia é a mesma, então vamos lá;

                                  Primeiro precisa que um site seja liberado no firewall, pode ser o site a empresa, no meu caso é uma escola.
                                  Depois é preciso colocar esse site na exceção do proxy para que não seja feita a requisição na 3128 e sim na 80 para que o CP posso responder a pagina de autenticação.
                                  Se usar o proxy marcado precisa informar esse "site" nas configurações conforme imagem em anexo.

                                  Se usar WPAD ficaria dessa forma:

                                  function FindProxyForURL(url,host){
                                  
                                    // resolve o ip do host
                                    var host_ip=dnsResolve(host);
                                  
                                    // If the requested website is hosted within the internal network, send direct.
                                    if (isPlainHostName(host) ||
                                      isInNet(host_ip, "10.0.0.0", "255.0.0.0") ||
                                      isInNet(host_ip, "172.16.0.0",  "255.240.0.0") ||
                                      isInNet(host_ip, "192.168.0.0",  "255.255.0.0") ||
                                      isInNet(host_ip, "127.0.0.0", "255.255.255.0"))
                                    return "DIRECT";
                                  
                                    // Dominio sem proxy
                                    if (shExpMatch(host, "www.exemplo.com")) return "DIRECT";
                                  
                                    // Regra deafult com proxy 
                                    return "PROXY 192.168.1.1:3128";
                                  }
                                  

                                  Façam testes e informe se deu certo, posso ter esquecido alguma coisa!

                                  proxy-cp.PNG
                                  proxy-cp.PNG_thumb

                                  Tomas @ 2W Consultoria

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    ricain59
                                    last edited by

                                    Boa tarde,

                                    Seguindo esse topico fiz tudo o que foi dito aqui mas não consegui por a funcionar o proxy transparent + captive portal.

                                    Tenho o mesmo erro que o membro mfaridi (https://forum.pfsense.org/index.php?topic=111670.msg628122#msg628122) e segui as imagens do outro membro rlrobs mas continuo com o mesmo erro do membro mfaridi.

                                    Tenho o pfsense 2.3.2 em que só com o proxy transparent + squidguard funciona lindamente. Metendo no squid a atuthentication para captive portal deixo de ter acesso a qualquer pagina da internet e tenho o erro: "The following error wan encountered while tryin to retrieve the url: http://…..." (o memso do membro mfaridi).

                                    Uma pequena ajuda agradecia.
                                    Obrigado.

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      augusto_pereira
                                      last edited by

                                      @ricain59:

                                      Boa tarde,

                                      Seguindo esse topico fiz tudo o que foi dito aqui mas não consegui por a funcionar o proxy transparent + captive portal.

                                      Tenho o mesmo erro que o membro mfaridi (https://forum.pfsense.org/index.php?topic=111670.msg628122#msg628122) e segui as imagens do outro membro rlrobs mas continuo com o mesmo erro do membro mfaridi.

                                      Tenho o pfsense 2.3.2 em que só com o proxy transparent + squidguard funciona lindamente. Metendo no squid a atuthentication para captive portal deixo de ter acesso a qualquer pagina da internet e tenho o erro: "The following error wan encountered while tryin to retrieve the url: http://…..." (o memso do membro mfaridi).

                                      Uma pequena ajuda agradecia.
                                      Obrigado.

                                      ricain59

                                      Poste com detalhes os passos que fez para podermos ajudá-lo.

                                      Atenciosamente,

                                      Augusto P. dos Santos
                                      Suporte Técnico

                                      Telefones: (11) 2365-4013 / 2365-4014

                                      Al. Joaquim Eugênio de Lima Nº 187 4º Andar
                                      Jd.Paulista,São Paulo/SP - CEP: 01403-001

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        augusto_pereira
                                        last edited by

                                        @Tomas:

                                        Bom, eu uso WPAD, mas ideia é a mesma, então vamos lá;

                                        Primeiro precisa que um site seja liberado no firewall, pode ser o site a empresa, no meu caso é uma escola.
                                        Depois é preciso colocar esse site na exceção do proxy para que não seja feita a requisição na 3128 e sim na 80 para que o CP posso responder a pagina de autenticação.
                                        Se usar o proxy marcado precisa informar esse "site" nas configurações conforme imagem em anexo.

                                        Se usar WPAD ficaria dessa forma:

                                        function FindProxyForURL(url,host){
                                        
                                          // resolve o ip do host
                                          var host_ip=dnsResolve(host);
                                        
                                          // If the requested website is hosted within the internal network, send direct.
                                          if (isPlainHostName(host) ||
                                            isInNet(host_ip, "10.0.0.0", "255.0.0.0") ||
                                            isInNet(host_ip, "172.16.0.0",  "255.240.0.0") ||
                                            isInNet(host_ip, "192.168.0.0",  "255.255.0.0") ||
                                            isInNet(host_ip, "127.0.0.0", "255.255.255.0"))
                                          return "DIRECT";
                                        	
                                          // Dominio sem proxy
                                          if (shExpMatch(host, "www.exemplo.com")) return "DIRECT";
                                        
                                          // Regra deafult com proxy 
                                          return "PROXY 192.168.1.1:3128";
                                        }
                                        

                                        Façam testes e informe se deu certo, posso ter esquecido alguma coisa!

                                        Tomas Waldow,

                                        Fiz todos os passos como indicou porém não funcionou. A autenticação no Captive Portal ocorre porém uma vez logado no Captive nenhum tráfego é passado no Squid. Verifique se seu proxy transparente está desmarcado para fazer um teste com apenas o proxy marcado funcionando.

                                        Atenciosamente,

                                        Augusto P. dos Santos
                                        Suporte Técnico

                                        Telefones: (11) 2365-4013 / 2365-4014

                                        Al. Joaquim Eugênio de Lima Nº 187 4º Andar
                                        Jd.Paulista,São Paulo/SP - CEP: 01403-001

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          tomaswaldow
                                          last edited by

                                          Não uso proxy transparente!

                                          Tomas @ 2W Consultoria

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            ricain59
                                            last edited by

                                            @augusto_pereira:

                                            ricain59

                                            Poste com detalhes os passos que fez para podermos ajudá-lo.

                                            Obrigado Augusto Pereira,

                                            Mas para não estar a "encher" este topico eu criei um com o meu problema. Se poder passar por la agradecia: https://forum.pfsense.org/index.php?topic=117308.0

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