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

    Patch captive portal do squid3 no pfsense 2.2.5

    Scheduled Pinned Locked Moved Portuguese
    36 Posts 18 Posters 9.5k 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.
    • M
      mfaridi
      last edited by

      @marcelloc:

      Com as recentes mudanças e "mutações" dos pacotes, a função de patch do captive portal para impedir acesso direto ao proxy antes da autenticação do captive portal foi removida.

      Para não deixar os sysadmins que estão no pfsense 2.2.5 sem essa importante correção, segue abaixo o patch a ser aplicado via pacote system patches.

      OBS1: Se o seu squid usa portas diferente da 3128 e 3129(ssl), altere a linha $local_service_ports no patch antes de aplicar.

      OBS2: Depois de corrigir o arquivo, é preciso entrar nas configurações do captive portal e salvar para gerar as regras de acesso com as devidas correções.

      Description:  Captive_portal_patch

      Patch Contents:

      --- captiveportal.225.inc       2015-12-09 18:43:50.000000000 -0200
      +++ captiveportal.inc  2015-12-09 19:28:27.000000000 -0200
      @@ -539,6 +539,10 @@
       EOD;
      
              $rulenum = 65310;
      +        /* Deny direct access to local services before captive portal authentication */
      +        $local_service_ports="3128,3129";
      +        $cprules .= "add {$rulenum} skipto 65314 ip from any to table(100) {$local_service_ports} in\n";
      +        $cprules .= "add {$rulenum} skipto 65314 ip from table(100) {$local_service_ports} to any out\n";
              /* These tables contain host ips */
              $cprules .= "add {$rulenum} pass ip from any to table(100) in\n";
              $rulenum++;
      
      

      Base Directory:

      /etc/inc/

      Thanks
      after apply patch , what I must do ?
      lightsquid show IP of user , I want light squid show me username
      I use pfsense 2.3.1 and squid and transparent mode and captiveportal can lightsquid .

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

        Pessoal,

        pra quem quiser usar o captive portal(radius ou local) + squid transparente. O colega augusto_pereira(https://forum.pfsense.org/index.php?topic=111670.0) corrigiu o script  /usr/local/bin/check_ip.php.

        Troque o conteúdo dele por:
        Obs: nao cheguei a aplicar o patch do marcello.

        
        #!/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");
        
        foreach($dbs as $db){
           if(!strpos($db, "_radius")){
              $status = check_ip($db, $check_ip);
              break;   
           }   
        }
        if(isset($status)){
           fwrite(STDOUT, "OK user={$status}\n");
        }
        else{
           fwrite(STDOUT, "ERR\n");
        }
        
        } // 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];
           }
        }
        
        ?>
        
        
        1 Reply Last reply Reply Quote 0
        • C
          claupers
          last edited by

          O post do agusto_pereira funcionou perfeitamente em meu ambiente cpm pfsense 2.3.1.1. (https://forum.pfsense.org/index.php?topic=111670.0) Estou usando autenticação pelo captive portal sendo que os usuário são obtidos do AD do Windows Server 2012, através de uma integração de Radius.

          Cordialmente;

          Claudir P. Santos

          1 Reply Last reply Reply Quote 0
          • maxwelberM
            maxwelber
            last edited by

            Boa noite senhores.

            Fiz exatamente o procedimento mas ainda não vejo os usuários no squid, script funcionando no prompt de comando conforme em anexo.

            realtime.JPG
            realtime.JPG_thumb
            prompt.JPG
            prompt.JPG_thumb

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

              Faz uma revisão nas suas configs. Já testei em 3 pfs diferentes e todos funcionaram.

              1 Reply Last reply Reply Quote 0
              • M
                Mittho
                last edited by

                Ola pessoal.

                Sou novo nesse sistema do pfsense e através de pesquisas de como funciona esse sistema, acabei chegando nessa parte de bloqueio do squid + usuário do captive portal. Porém, estou com dúvida de como realizar esse procedimento de inserir o arquivo, já que estou usando a versão 2.3.1.1 do pfsense.

                através das imagens, eu vi que era na aba system, porém não encontrei nada a respeito.

                se alguém puder me dar uma luz, eu agradeço.  :)

                1 Reply Last reply Reply Quote 0
                • I
                  iNCONIX
                  last edited by

                  Também estou com problemas para implantar o CP com o Squid3 na versao 2.2.6 do pfSense.

                  O squid é derrubado apresentando :

                  27.06.2016 21:24:29 WARNING: check_cp #Hlpr0 exited
                  27.06.2016 21:24:29 ipcCreate: /usr/pbi/squid-amd64/bin/check_ip.php: (2) No such file or directory

                  O comando check_ip.php na console, não apresenta nada, nem mesmo ERR.

                  ? ? ?  Alguém já instalou ? ? ?

                  1 Reply Last reply Reply Quote 0
                  • I
                    iNCONIX
                    last edited by

                    O CHECK_IP.PHP estava com o executor errado:

                    #!/usr/local/bin/php-cgi -q

                    Está errado , não executa na console.

                    Corrigido e o CHECK_IP.PHP  passou a logar

                    #!/usr/local/bin/php -q

                    Mas o SQUID continua caindo ….

                    1 Reply Last reply Reply Quote 0
                    • C
                      catatau77
                      last edited by

                      Prezados, tenho o pfsense 2.3.2 com squid não transparente e o proxy setado no navegador, não consigo ter acesso à página do captive portal.
                      Esse patch funciona no pfsense 2.3.2?

                      1 Reply Last reply Reply Quote 0
                      • C
                        ciroxm
                        last edited by

                        @catatau77:

                        Prezados, tenho o pfsense 2.3.2 com squid não transparente e o proxy setado no navegador, não consigo ter acesso à página do captive portal.
                        Esse patch funciona no pfsense 2.3.2?

                        Estou com mesmo problema que você, conseguiu resolver?

                        1 Reply Last reply Reply Quote 0
                        • C
                          catatau77
                          last edited by

                          Eu não consegui usar o path, a solução que encontrei até o momento foi passar o proxy e as exceções de sites através do wpad.dat e proxy.pac incluindo um site http que deve estar liberado no firewall, com isso o usuário deve acessar esse site para chegar na tela do captive portal.

                          1 Reply Last reply Reply Quote 0
                          • C
                            catatau77
                            last edited by

                            Estou usando o pfsense 2.3.2, squid não transparente e captive portal, passando os dados de proxy por dhcp e proxy.pac

                            1 Reply Last reply Reply Quote 0
                            • C
                              ciroxm
                              last edited by

                              @catatau77:

                              Eu não consegui usar o path, a solução que encontrei até o momento foi passar o proxy e as exceções de sites através do wpad.dat e proxy.pac incluindo um site http que deve estar liberado no firewall, com isso o usuário deve acessar esse site para chegar na tela do captive portal.

                              Consegui fazer aqui da forma como você falou. Valeu! No caso posso acessar qualquer site http que funciona, com https o próprio browser bloqueia o redirecionamento.

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