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

    Problema captive portal(não navega e volta para tela de login).

    Scheduled Pinned Locked Moved Portuguese
    19 Posts 3 Posters 8.9k 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.
    • marcellocM
      marcelloc
      last edited by

      Pula a parte dos scripts e configura no browser a lista de sites que não usam proxy.

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

      Help a community developer! ;D

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

        @marcelloc:

        Pula a parte dos scripts e configura no browser a lista de sites que não usam proxy.

        Desculpa marcello,mas eu ainda não entendi a lógica para tal procedimento..

        Qual séria o motivo de tal erro ocorrer se o proxy foi configurado no navegador manualmente ?O wpad e o pac não teriam esse intuito de configurar esses valores automaticamente ? Não seria a mesma coisa ?

        Quando eu configuro no navegador da seguinte forma:

        Sem proxy para : .uol.com.br

        No captive portal configuro o After authentication Redirection URL para acessar "uol.com.br" e o site acessar normalmente .. qualquer outro volta para a página de login.

        Grato pela sua paciência marcello  :) estou aqui para aprender.

        Se puder me dar um exemplo de seus procedimentos lhe sou grato.

        Just do it !

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

          Sem marcar o proxy, você consegue acessar o uol sem o captive portal pedir autenticação?

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

          Help a community developer! ;D

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

            @marcelloc:

            Sem marcar o proxy, você consegue acessar o uol sem o captive portal pedir autenticação?

            Como eu estou utilizando o pfsense na vm se eu utilizar a porta 3128 ele passa pelo captive portal e navega normalmente,sem proxy ele navega também.

            Eu não vejo motivo para o captive voltar para a tela de login ao acessar um site se o squid não está em modo transparente e sendo que configurei o navegador para acessar através da porta 8000.

            Just do it !

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

              Testei diversas formas aqui e nada pessoal  :(

              O maldito captive portal retorna a mesma página apos o login.

              Grato

              Just do it !

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

                @vina18:

                Testei diversas formas aqui e nada pessoal  :(

                O maldito captive portal retorna a mesma página apos o login.

                Vina,

                Acredito que o captive portal funciona melhor em condições normais lan -> pfsense com captive -> internet.

                o setup com uma placa de rede só pode atrapalhar o funcionamento dele.

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

                Help a community developer! ;D

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

                  eu tive um problema parecido quando estava fazendo uns teste,
                  dai e percebi que o https era o problema, tenta desabilitar o https do pfsense e limpar o cache do navegador! ;)

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

                    É estranho pessoal  :-\ ,pois com o navegador configurado para conectar direto pela porta 3128 ele passa pelo captive e navega normalmente nem pede usuário e senha.Já usando a porta 8000 ele continua pedindo usuário e senha (aparece o login realizado com sucesso no status do captive),porém o mesmo continua retornando para a página de login e não navega.

                    Testei em máquinas virtuais com winxp e win 7 , o https está desabilitado no pfsense na vm.

                    Me parece que é algo em relação a porta,ou com o squid, pois se eu cadastro o site .uol.com.br no navegador para não usar proxy ele ao autenticar navega para essa página que está configurada como "After authentication Redirection URL".Eu imagino que após o login ser realizado com sucesso na porta 8000 do captive ele teria que redirecionar para a porta 3128 que navega normalmente e tal fato não acontece.

                    Grato  :)!

                    NÃO VOU DESISTIR AEUHUAEUHEA DESSE CAPTIVE   :o

                    Just do it !

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

                      Vina,

                      Não acredito que marcar a porta 8000 no proxy seja configuração válida para o captive portal.

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

                      Help a community developer! ;D

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

                        @marcelloc:

                        Vina,

                        Não acredito que marcar a porta 8000 no proxy seja configuração válida para o captive portal.

                        Então tem algo de errado marcello,pois a porta 3128 passa direto pelo captive.Talvez esteja faltando algum redirecionamento de porta ?

                        Just do it !

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

                          Vina não é coisa errada, e configuração.

                          O captive portal evita o acesso externo não autenticado. Seu proxy está no mesmo servidor que o captive portal.

                          Dá uma olhada naquele post que te indiquei

                          Captive portal then Proxy server

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

                          Help a community developer! ;D

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

                            Então marcello..

                            Eu testei o captive portal no pfsense que usamos aqui na empresa(não na vm) e o mesmo problema acontece.O captive portal não funciona com proxy não transparente,pois o mesmo não direciona o tráfego para a porta 3128.

                            Gostaria de entender a lógica do captive portal.. vamos lá..

                            Ao habilitar o captive portal podemos verificar que o mesmo trabalha na porta 8000,pois quando acessamos qualquer site o mesmo nos direciona para ip_pfsense:8000 (isso com proxy transparente),já no modo non-transparent o navegador configurado na porta 3128 passa pelo captive e navega sem autenticação.

                            Ao acessar /usr/local/captiveportal/index.php:

                            $orig_host = $_ENV['HTTP_HOST'];
                            $orig_request = $_REQUEST['redirurl'];
                            $clientip = $_SERVER['REMOTE_ADDR'];
                            
                            if (!$clientip) {
                            	/* not good - bail out */
                            	log_error("Captive portal could not determine client's IP address.");
                            	$error_message = "An error occurred.  Please check the system logs for more information.";
                            	portal_reply_page($redirurl, "error", $errormsg);
                            	exit;
                            }
                            
                            if (isset($config['captiveportal']['httpslogin']))
                                $ourhostname = $config['captiveportal']['httpsname'] . ":8001";
                            else {
                                $ifip = portal_ip_from_client_ip($clientip);
                                if (!$ifip)
                                	$ourhostname = $config['system']['hostname'] . ":8000";
                                else
                                	$ourhostname = "{$ifip}:8000";
                            }
                            
                            if ($orig_host != $ourhostname) {
                                /* the client thinks it's connected to the desired web server, but instead
                                   it's connected to us. Issue a redirect... */
                            
                                if (isset($config['captiveportal']['httpslogin']))
                                    header("Location: https://{$ourhostname}/index.php?redirurl=" . urlencode("http://{$orig_host}{$orig_request}"));
                                else
                                    header("Location: http://{$ourhostname}/index.php?redirurl=" . urlencode("http://{$orig_host}{$orig_request}"));
                            
                                exit;
                            }
                            if (!empty($config['captiveportal']['redirurl']))
                            	$redirurl = $config['captiveportal']['redirurl'];
                            else if (preg_match("/redirurl=(.*)/", $orig_request, $matches))
                            	$redirurl = urldecode($matches[1]);
                            else if ($_REQUEST['redirurl'])
                            	$redirurl = $_REQUEST['redirurl'];
                            
                            $macfilter = !isset($config['captiveportal']['nomacfilter']);
                            $passthrumac = isset($config['captiveportal']['passthrumacadd']);
                            

                            -Como o proxy transparente consegue receber a requisição pela porta 80 >autenticar no captive portal>retornar a validação correta e passar para a porta 3128 do squid ?
                            -Por que o proxy não transparente quando configurado para acessar por ip_pfsense:3128 passa direto pelo captive portal ?
                            -Como posso fazer com que o usuário ao autenticar pela porta 8000 senha direcionado para a porta 3128 ?
                            -Eu fiz um nat da 3128 para a 8000 mas isso não tem lógica e não funciona  :(

                            Grato  ;D TESTES E + TESTES

                            Just do it !

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

                              Troquei a porta padrão do captive portal pessoal e estou editando o arquivo index….

                              Posto aqui se conseguir resultados positivos  :)

                              Just do it !

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

                                Cheguei a conclusão que o captive com proxy não transparente não funciona  :-\ tentei e testei de tudo que é jeito e não deu certo.

                                Em modo transparente o usuário consegue burlar o proxy colocando no navegador o ip do pfsense e porta 3128, a solução é fazer um nat da porta 3128 para 8000.

                                Quem tiver uma solução posta aqui.

                                Just do it !

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

                                  Mesma conclusão no forum dos gringos

                                  http://forum.pfsense.org/index.php/topic,40552.0.html

                                  Minha opinião é que isso pode ser facilmente resolvido incluindo nas regras do captive portal o bloqueio da porta do squid.

                                  65291   0      0 allow pfsync from any to any
                                  65292  24   1344 allow carp from any to any
                                  65301  78   3576 allow ip from any to any layer2 mac-type 0x0806
                                  65302   0      0 allow ip from any to any layer2 mac-type 0x888e
                                  65303   0      0 allow ip from any to any layer2 mac-type 0x88c7
                                  65304   0      0 allow ip from any to any layer2 mac-type 0x8863
                                  65305   0      0 allow ip from any to any layer2 mac-type 0x8864
                                  65306   0      0 allow ip from any to any layer2 mac-type 0x888e
                                  65307  66  19942 deny ip from any to any layer2 not mac-type 0x0800
                                  65310 422 204676 allow ip from any to { 255.255.255.255 or 172.16.0.6 } in
                                  65311 551 277268 allow ip from { 255.255.255.255 or 172.16.0.6 } to any out
                                  65312   0      0 allow icmp from { 255.255.255.255 or 172.16.0.6 } to any out icmptypes 0
                                  65313   0      0 allow icmp from any to { 255.255.255.255 or 172.16.0.6 } in icmptypes 8
                                  65314   0      0 allow ip from table(3) to any in
                                  65315   0      0 allow ip from any to table(4) out
                                  65316   0      0 pipe tablearg ip from table(5) to any in
                                  65317   0      0 pipe tablearg ip from any to table(6) out
                                  65318   0      0 allow ip from any to table(7) in
                                  65319   0      0 allow ip from table(8) to any out
                                  65320   0      0 pipe tablearg ip from any to table(9) in
                                  65321   0      0 pipe tablearg ip from table(10) to any out
                                  65322   0      0 allow ip from table(1) to any in
                                  65323   0      0 allow ip from any to table(2) out
                                  65531   0      0 fwd 127.0.0.1,8000 tcp from any to any in
                                  65532   0      0 allow tcp from any to any out
                                  65533  10    931 deny ip from any to any
                                  65534   0      0 allow ip from any to any layer2
                                  65535   3    140 allow ip from any to any
                                  
                                  

                                  Com muito cuidado, execute os seguintes passos na console:

                                  • Copie o arquivo /etc/inc/captiveportal.inc para a pasta root (cp /etc/inc/captiveportal.inc /root/captiveportal.backup.inc)

                                  • entre no home do root (cd /root)

                                  • baixe o arquivo modificado  (fetch https://github.com/downloads/marcelloc/pfsense-packages/captiveportal_201_amd64.inc)

                                  • Copie o arquivo arquivo para a pasta do pfsense (cp captiveportal_201_amd64.inc /etc/inc/captiveportal.inc)

                                  • acesse a pagina do captive portal e salve as configurações

                                  O arquivo modificado bloqueia a porta 3128 até você autenticar no captive portal (assim espero  ;))

                                  A definição da porta esta na linha 449 do /etc/inc/captiveportal.inc.

                                  Boa sorte!

                                  Não esquece do feedback. Posso postar isso no fonte do pfsense para a proxima versão.

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

                                  Help a community developer! ;D

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

                                    Vou testar sim marcello e muito obrigado pela resposta  :D

                                    TÓPICO RESOLVIDO

                                    Just do it !

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