Squid com autenticação integrada ao Captive Portal
-
sorry ı have to use english
a small contribution to the external acl type scrirpt
ttl=60 means the code will not check the ip for 60 seconds, and will use the first username for that period even if the user loged out and a new one logged in, a value shorter like ttl=0 or ttl=1 would be more accurate I think
-
Thanks for your contribution on this topic :)
-
one last thing:
when external_acl_type returns ERR, squid blocks the connection, so if you make some users bypass the captiveportal and connect directly to internet, squid external acl directive will not find a username and return an ERR message, this will block the client, so the last part of the check_ip.php should be like this
if ($usuario !="")
$resposta="OK user={$usuario}";
else
$resposta="OK user=bypasseduser";
fwrite (STDOUT, "{$resposta}\n");
unset($cp_db);so in access log you will see "bypasseduser" in the field of username
-
Autenticação do captive portal authentication incluída no squid3-dev.
Não precisa mais configurar "custom options", basta selecionar captive portal na aba authentication -
Consegui fazer um SSO sem usar ntlm ou kerberos no squid. Vou amadurecer mais a idéia por aqui e qualquer dia deste publico para comunidade.
-
Em breve começo os testes com o captive portal da 2.1
Acabei de subir o helper que integra a autenticação do captive portal com o squid.
A alteração na interface para o squid2 já está pronta mas vou deixar para publicar depois
Por enquanto:
No squid3, basta selecionar captive portal na aba authenticationNo squid2, inclua estas configurações no campo custom options
external_acl_type check_filter children=5 ttl=60 %SRC /usr/pbi/squid-amd64/libexec/squid/check_ip.php;acl dgfilter external check_filter;http_access allow dgfilter;
E baixe este arquivo
fetch -o /usr/pbi/squid-amd64/libexec/squid/check_ip.php https://raw.github.com/pfsense/pfsense-packages/master/config/squid3/33/check_ip.php
Ola Marcelloc, eu tenho instalado o squid3 mas não aparece a opção captive na aba Authentication.
-
Ola Marcelloc, eu tenho instalado o squid3 mas não aparece a opção captive na aba Authentication.
Squid3-dev
-
Estou tentando fazer essa autenticação funcionar e to tomando um coro rs.
o Squid insiste em dizer que "unexpect read from check_filter 4 bytes ERR"
Ja conferi o PHP e ele ta certinho. Acha a base normal.
Rodando ele na mao, quando jogo o IP ele retorna o user ou ERR.
Mas o squid insiste em não aceitar o STDOUT.
Alguem pode me dar um help?
-
Na última versão do pacote, não precisa criar as acls na mão.
Como está sua configuração?
-
Fiz tudo automatico direto na ultima versão :)
Por isso ta tudo certinho, mas o problema esta apresentando no LOG.
-
Seu pfsense é 2.0 ou 2.1?
-
2.1 recem instalado e fazendo testes.
-
No log do squid não aparece nenhuma linha de log com usuário?
-
Nada, apenas esses erros falando do helper.
Já tentei baixar o check_ip.php de novo e trocar, tentei tirar o \n do ERR, colocar, fazer um TRIM e nada. Ele acha algum problema.
-
este erro aparece no access.log ou no cache.log?
-
no cache.log
-
Você está usando o proxy configurado no browser ou no modo transparente?
Vou tentar simular isso aqui aqui novamente.
-
Tava configurado no browser.
Coloquei em modo transparente e agora ta OK.
Ainda não entendi.
Marcelo, aquela questão das Libs de baixar pelo fetch esta acontecendo sempre viu!! Muita gente deve estar apanhando disso.
Agora ta funcionando fino!! Parabens pelo trabalho, muito bom!!!
-
Bom dia.
Instalei a versão 2.1 do pfSense, os pacotes squid3-dev, e configurei a autenticação para o Captive Portal(CP). "Tudo" funcionou, exceto pelo fato de que o CP não está enviando as informações de autenticação dos usuários, ou seja, somente o primeiro usuário a se autenticar no CP consegue navegar, pois para esse, o CP envia para o Squid as informações de autenticação.
Alguém pode me ajudar?
Grato.
Alexandre.
-
Se todos os usuários estão chegando por um único ip, o captive portal vai fazer exatamente o que descreveu.
Se for o caso, configure seu AP em modo bridge para que os clientes peguem ip da rede e não fiquem mascarados atrás do ip do router WIFI