[FUG-BR] Portal Cativo

Mario Augusto Mania m3.bsd.mania em gmail.com
Sexta Junho 27 09:40:31 BRT 2008


Cara... veja bem... jah implementei isso.

Primeiro ponto: ping eh problema, maquina com xp com firewall ativado
e pronto, nada de ping.
Solucao: uso ipfw -T e verifico quando foi q o ultimo pacote daquele
cliente passou pelo ipfw, se estorou o timeout que defini (5min), eu
desconecto o cara.

Outra coisa, aqui, fiz tudo em python, mas pretendo migrar para c/c++.

Atenciosamente

m3bsd

2008/6/25 Jorge Aldo <jorgealdojr em bol.com.br>:
> Seguinte, desenvolvi uma aplicacao de portal cativo que autentica
> usuarios contra um banco de dados sqlite (bem, depois posso mudar isso
> pra outra tecnologia, não é muito complicado).
>
> O processo se dá em algumas etapas :
>
> 1 - Requisição original é interceptada e enviada para o servico
> redirecionador
> O servico redirecionador analisa o pedido e envia uma página com uma tag
> <meta http-equiv="refresh" bla bla bla, com o endereço original num
> campo originalurl da query (para posterior uso) e com a query apontando
> para o servico do portal
>
> 2 - o servico do portal envia uma tela de login (configuravel) para o
> usuario (em https)
>
> 3 - o usuario loga, se por algum motivo não for autenticado, recebe uma
> mensagem de erro.
>
> 4 - se for autenticado, eh enviado para uma nova página de
> redirecionamento que decodifica o endereco originalmente requisitado e o
> redireciona para lá com uma nova
> meta tag.
>
> o servidor mantem um "serviço pingador" que envia alguns pings para as
> maquinas em estado "ativo" pra ver se elas ainda estao no ar. Quando uma
> maquina é desligada, não responde o ping e é marcada novamente como não
> logada.
>
> na partida do servico ele chama um script chamado startall.sh e, para
> cada cadastrada no banco de dados, chama um script start.sh com id e ip
> como parametros
>
> quando um usuario loga, o sistema chama um script chamado login.sh com
> id, ip, bandadesubida e bandadedescida como parametros
>
> quando um usuario eh derrubado (por algum motivo inclusive se nao
> responder a 3 pings seguidos) o sistema chama um script chamado
> logout.sh com id e ip como parametros
>
> meu problema consiste no seguinte :
>
> Preciso fazer esses scripts de forma eficiente, meu objetivo eh
> desenvolver uma boa solução de portal cativo + controle de banda
> individual + squid proxy/cache para pequenos provedores wireless.
>
> não sei nem por onde comecar com esses scripts ! já fiz alguns, estou
> botando eles em campo agora para fazer testes.
>
> Fiz alguns testes nos servicos usando openload e o servidor suportou
> +50k requisições no total (nao travou, eu que cansei de esperar hehe) e
> parece estavel..
>
> Para funcionar, ele de uma regra que faça os pacotes saindo da rede em
> direcao a porta 80 sejam redirecionados para a porta do servico de
> redirecionamento (configurei ele na porta 1932)
>
> creio que o uso simultaneo do squid vai requerer que essa regra de
> redirecionamento seja apagada assim que o usuario fique online,
> substituindo-a por uma nova regra de redirecionamento desta vez
> apontando para o squid (em modo transparente).
>
> Bem, todo esse trabalho eu pretendo publicar na licença BSD, mas ainda
> não posso faze-lo incialmente.
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>



-- 
Atenciosmente

Mario Augusto Mania <m3BSD>
-----------------------------------------------
m3.bsd.mania em gmail.com
Cel.: (43) 9938-9629
Msn: mario em oquei.com


Mais detalhes sobre a lista de discussão freebsd