Problema captive portal(não navega e volta para tela de login).
-
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! ;) -
É 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
-
Vina,
Não acredito que marcar a porta 8000 no proxy seja configuração válida para o captive portal.
-
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 ?
-
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
-
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
-
Troquei a porta padrão do captive portal pessoal e estou editando o arquivo index….
Posto aqui se conseguir resultados positivos :)
-
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.
-
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.
-
-
Vou testar sim marcello e muito obrigado pela resposta :D
TÓPICO RESOLVIDO