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.
    • J
      juniorghr
      last edited by

      Marcello,

      Tentei realizar os procedimentos para configurar o squid com captive portal encontrados no fórum, mas não obtive sucesso.

      Estou tentando implantar squid3 + squidguard + captive portal, porém o squid não está em modo transparente, eu configurei o DHCP e DNS para enviar a configuração de proxy por WPAD.

      Os navegadores recebem o arquivo proxy.pac ou wpad.dat e realmente acessam o proxy, porém quando ativo o Captive Portal e autentico o usuário pela interface http://pfsense:8000, o cliente não consegue navegar e o Squid para de funcionar.

      Poderia me auxiliar neste problema ou me responder se não é possível realizar este cenário?

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

        Testado e funcionando, obrigado.

        Sabe dizer se o arquivo informado na interface do Squid, que diz para baixar no Git está funcional?

        Tomas @ 2W Consultoria

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

          Qual arquivo? Não estou com um pfsense perto agora para conferir.

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

          Help a community developer! ;D

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

            @marcelloc:

            Qual arquivo? Não estou com um pfsense perto agora para conferir.

            Oi Marcello, o texto no Squid é esse:
            This feature was removed - see Bug #5594 for details!
            If you were using this feature, double-check '/etc/inc/captiveportal.inc' content for sanity.
            Get a sane copy of the file from pfSense GitHub repository if needed.

            O Arquivo é: https://github.com/pfsense/pfsense/blob/RELENG_2_2/etc/inc/captiveportal.inc

            Obrigado.

            Tomas @ 2W Consultoria

            1 Reply Last reply Reply Quote 0
            • buenoptB
              buenopt
              last edited by

              Não consigo chegar nessa tela para efetuar o que está descrito, pois meu captive portal parou de funcionar :)

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

                Que a força esteja com voces! 8)
                Estou com o Captive Portal funcionando o Squid funcionando como PROXY ATIVO,
                Porem quando deixo o proxy marcado nas estações nao consigo autenticar no Captive Portal, e quando deixo desmarcado na estação nao consigo navegar na internet (Obvio por motivo de PROXY ATIVO)

                Segue um link com mais detalhes.
                https://forum.pfsense.org/index.php?topic=66809.75

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

                  Para ter acesso a pagina de autenticação do Captive Portal é necessário que seja feita uma consulta na porta 80, sou seja um site HTTP.
                  Você vai ter que criar uma exceção por exemplo um site da empresa para não passar pelo proxy e pode chegar ao pfSense na porta 80 e criar uma regra de firewall permitindo esse site.

                  Tomas @ 2W Consultoria

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

                    Grande Tomas
                    Contribuindo sempre.
                    Nesse caso teria que alterar a porta de autenticação do Captive Portal para a porta 80 também?
                    Teria algum post/link com alguns desses procedimentos?
                    Obrigado

                    @Tomas:

                    Para ter acesso a pagina de autenticação do Captive Portal é necessário que seja feita uma consulta na porta 80, sou seja um site HTTP.
                    Você vai ter que criar uma exceção por exemplo um site da empresa para não passar pelo proxy e pode chegar ao pfSense na porta 80 e criar uma regra de firewall permitindo esse site.

                    1 Reply Last reply Reply Quote 0
                    • L
                      LFCavalcanti
                      last edited by

                      @Luiz:

                      @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.

                      As "mutações" estão brabas mesmo e a educação nas conversas lá estão … humm...  "vamo q vamo" !

                      A verdade é que deixaram os pacotes na mão de uma pessoa, arrogante e que faz o que quer.

                      Só olhar o que essa figura falou sobre o SquidGuard-Dev, depois saiu desativando funções que integram entre pacotes e ripando bibliotecas que "ninguém usa".

                      Engraçado que era pessoa é a mesma que discutiu até a morte com o Jim Thompson sobre a mudança de licença, mas está lá…

                      Enfim, estou fazendo a tradução mas o prospecto desanima, se você não faz parte do "clubinho" não tem voz, mesmo tendo razão.

                      –

                      Luiz Fernando Cavalcanti
                      IT Manager
                      Arriviera Technology Group

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

                        @derikdk:

                        Grande Tomas
                        Contribuindo sempre.
                        Nesse caso teria que alterar a porta de autenticação do Captive Portal para a porta 80 também?

                        Não nada no Captive, mas na configuração de proxy do cliente ou pelo WPAD, não sei como faz hoje, e colocar um site na lista de exceções.

                        Tomas @ 2W Consultoria

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

                          Esse site na lista de excecoes é o site que sempre vou ter que acessar primeiro pra surgir a tela de autenticacao do Captive Portal?

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

                            Sim, pelo tenha um.

                            Tomas @ 2W Consultoria

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

                              Bom dia a todos.

                              Estou implementando um pfSense 2.2.6 + Portal Captive + Squid com autenticação no Portal Captive, quando ativo a autenticação o Squid fica reiniciando. Buscando no forum encontrei o tutorialdo Marcelloc, estou aplicando o patch mas mesmo assim o Squid fica reiniciando, gostaria da orientação e ajuda de vocês para ver onde estou errando.

                              Quando vou testar o Patch aparece uma mensagem "Patch can NOT be reverted cleanly (detail)". Quando clico em detalhes mostra o um erro:

                               	Output of full patch revert test:
                              
                              /usr/bin/patch --directory=/etc/inc/ -f -p1 -i /var/patches/570cf2755b436.patch --check --reverse --ignore-whitespace
                              
                              Hmm...  Looks like a unified diff to me...
                              The text leading up to this was:
                              --------------------------
                              |--- captiveportal.225.inc       2015-12-09 18:43:50.000000000 -0200
                              |+++ captiveportal.inc  2015-12-09 19:28:27.000000000 -0200
                              --------------------------
                              Patching file captiveportal.inc using Plan A...
                              Hunk #1 failed at 539.
                              1 out of 1 hunks failed while patching captiveportal.inc
                              done
                              
                              

                              Devo me preocupar com esta mensagem?

                              Seguem imagens do pacth e do erros.

                              Obrigado pessoal.

                              Abs

                              PortalCaptive.jpg
                              PortalCaptive.jpg_thumb
                              PortalCaptive2.jpg
                              PortalCaptive2.jpg_thumb
                              PortalCaptive3.jpg
                              PortalCaptive3.jpg_thumb

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

                                Fiz o procedimento…e não aparece nem a tapa....

                                Grato.
                                Rodrigo Griffo

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

                                  Marcello, o patch como está pode ser aplicado a versão 2.3?
                                  Caso não, pode nos orientar qual procedimento que pode ser feito?
                                  Obrigado.

                                  Tomas @ 2W Consultoria

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    phmachado94
                                    last edited by

                                    Atualizei para a versão 2.3 também, pois não consegui fazer funcionar com esse patch… teria alguma outra forma de integrar?
                                    Preciso urgente resolver isso para o meu TCC...

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

                                      @Tomas:

                                      Marcello, o patch como está pode ser aplicado a versão 2.3?
                                      Caso não, pode nos orientar qual procedimento que pode ser feito?
                                      Obrigado.

                                      Testei agora com a versão 2.3 e pra mim está funcionando…

                                      Tomas @ 2W Consultoria

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

                                        @Tomas:

                                        @Tomas:

                                        Marcello, o patch como está pode ser aplicado a versão 2.3?
                                        Caso não, pode nos orientar qual procedimento que pode ser feito?
                                        Obrigado.

                                        Testei agora com a versão 2.3 e pra mim está funcionando…

                                        Dear Sir,
                                        I am very sorry I write english here .
                                        I use pfsense 2.3 . squid in transparent mode and light squid , I patch from github but lightsquid show me IP and I need username . I patch it and restart system but nothing happen . pleae guide me to solve this problem

                                        1 Reply Last reply Reply Quote 0
                                        • 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
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.