[FUG-BR] RES: Captive Portal
Fabrício Fadel Kammer
ffkammer em conchalnet.com.br
Quarta Julho 12 15:59:44 BRT 2006
Fiz o seguinte aqui:
QQ tráfego com destino a porta 80 redireciono para meu apache em uma
porta diferenciada (800).
No apache tenho os seguintes virtual hosts configurados:
<VirtualHost MEU_IP_AQUI:800>
RewriteEngine On
RewriteCond "%{HTTP_HOST}" "!^meusitedeautenticacao.com.br$"
[NC,OR]
RewriteCond "%{SERVER_NAME}" "!^meusitedeautenticacao.com.br$"
[NC]
RewriteRule "(.*)"
"http://meusitedeautenticacao.com.br:801/index.php?url=%{HTTP_HOST}$0"
[R]
</VirtualHost>
<virtualHost 200.99.34.1:801>
ServerName meusitedeautenticacao.com.br
DocumentRoot /usr/local/www/apache22/data/login
#RewriteEngine on
#RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
#RewriteRule .* - [F]
ErrorLog /var/log/apache/httpd-error-login.log
CustomLog /var/log/apache/httpd-access-login.log combined
</VirtualHost>
A regra IPFW desvia o tráfego paga a porta 800, o apache pega
esse tráfego e reenchaminha para o mesmo endereço, só que na página
801... aqui exibo o form de autenticação para o usuário. Ele digita
login/senha e o sistema libera o acesso para ele.
A única forma que consegui para não ter problemas de exibir a
página de login novamente foi aguardar um tempo de 15 segundos após a
autenticação do usuário. Após o login eu uso o seguinte:
header(refresh: 15; url=http://".$_POST["url"]);
Para não deixar o usuário doido, achando que não tá funcionando,
fiz um contador em javascript que faz uma contagem regressiva (de 15s
até 0s) do tempo que falta para o usuário acessar a página solicitada
originalmente, com a mensagem, "AGUARDE, VOCÊ SERÁ REDIRECIONADO PARA
..... EM XX SEGUNDOS"
[]s
Fabrício F. Kammer
-----Mensagem original-----
De: freebsd-bounces at fug.com.br [mailto:freebsd-bounces at fug.com.br] Em
nome de m3 BSD
Enviada em: quarta-feira, 12 de julho de 2006 14:59
Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Assunto: Re: [FUG-BR] Captive Portal
Poxa galera... legal... valeu as dicas :)
Bem, vamos lá, obrigado Sergio (WGO) (Eu sou o cara que esta em contato
com vc sobre o ispadmin hehehe, lembra-se?)... Obrigado pela dica.
Fabricio, legal o que vc esta fazendo, vou adaptar para php.
Patrick (eae Eksffa :) ).. nao entendi a do pre-processador eeheh..
poderia explicar?
SkyWarrior, eae manow.. :).. tipo.. legal essa parada do authpf e
appletjava... poderiamos bater um papo sobre isso em pvt? E como esse
applet esta se comportando com o java sobre linux/bsd e firefox? funfa
certinho? Nao eh igual aos applets do BB.com.br nao neh? hehehe
Bem... segundo passo: :)
Se o cliente digita www.uol.com.br no browser, o freebsd pega o trafego,
joga pro apache e legal, agora, se o cara digita
www.uol.com.br/index2.html, ae fudeu, pq o apache tenta achar o
index2.html (ou qquer coisa que o cara colocar na url depois do /), e
nao mostra a pagina de autenticacao. Outro problema, se o cara digita
www.google.com.br, eu redireciono pro apache, gero o form dinamica,
autentico, e tento fazer um meta-http refresh da vida, pro
www.google.com.br, as porcarias de browser pegam a pagina de
autenticacao novamente pq esta no cache do browser, ou seja, o cliente
tem que fechar o browser e abrir de novo pra poder entrar no
www.google.com.br ou entao pressionar control+f5 (IE da vida)...
Possiveis, solucoes, ao inves de usar o apache ou outro web server,
fazer um (jah brinquei um pouco com isso com python) que pega a query
string e remova tudo que vem depois do /, tipo, o cara digita
www.uol.com.br/batepapo.html, o python pega e remove o /batepapo.html,
isso resolve o primeiro problema... alguma dica? hehehhe
Atenciosmente
Mario Augusto Mania <m3BSD>
m3.bsd.mania at gmail.com
Cel.: (43) 9938-9629
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
Mais detalhes sobre a lista de discussão freebsd