Implementação Hotspot - Segurança

BrunoNet

Power Member
Boas pessoal, tenho como projecto pessoal implementar um hotspot para uma associação. A ideia passa por ter um hotspot gratuito e aberto a todos que queiram aceder à net no espaço, mas que possa ter algum nível de controlo sobre os utilizadores para não ocurreram abusos. De entre as várias soluções que pesquisei agradou-me particularmente o wifidog, pela facto do seu captive portal ter uma componente de comunidade adicional, e o zeroshell ou o moonwall que me parecem ser os mais fáceis de implementar.
As minhas dúvidas debatem-se sobretudo sobre a questão da segurança:

O wifidog utiliza apenas um portal ligado a uma base de dados, que interage com o gateway, podendo ser adicionado um radius server. Corrijam-me se estiver enganado mas o radius server é para o momento da autenticação, por isso todo o tráfego dos utilizadores seguirá em clear text por entre a rede após isso , quer seja com autenticação através de radius ou sem. E nas outras soluções que mencionei acima ocorre o mesmo?

Esta questão da segurança causa-me bastante confusão, porque pelo que vejo todas as soluções funcionam de forma idêntica, e todas me parecem bastante inseguras, por isso agradeço desde já aos membros desta comunidade, que me possam ilucidar sobre este ponto.
 
Ora viva!
Vejamos como funciona o RADIUS. É um serviço de autenticação segura. Permite efectuar a autenticação dos utilizadores de forma segura, com encriptação via EAPoR (Extensible Authentication over RADIUS), entre a gateway e o servidor RADIUS.

Entre o desktop/portátil e a gateway, ou Access Point, as comunicações são cifradas usando WPA/WPA2. O portátil faz um pedido de acesso à rede via o AP e este pede-lhe as credenciais. A partir daí só há comunicação entre o AP e o servidor RADIUS, utilizando EAP encapsulado sobre RADIUS, com total garantia de privacidade. Não há qualquer troca de chaves em clear text...
Depois, caso a autenticação seja mal sucedida, o servidor RADIUS informa o AP/gateway, que por sua vez informa o desktop/portatil e cancela o pedido de obtenção de acesso. Caso a autenticação seja bem sucedida, o servidor RADIUS indica-o ao AP, este ao desktop/portatil e só a partir daí é que o AP permite que o desktop/portatil peça endereço IP ao servidor de DHCP (que pode ser mesmo um servidor ou o proprio AP/Gateway).

É preciso desmistificar essa questão da insegurança... é preciso ter cuidado com o tipo de encriptação usado: WPA é do melhor, WEP é perigoso...

Se queres uma solução de HotSpot público, permite-me sugerir: um SW qq com portal captivo e redireccionamento de DNS para o mesmo, com autenticação integrada no portal. Essa autenticação é depois enviada para o servidor RADIUS que o vai validar. Problema disto? É que precisas de dar IP ao desktop antes de o validar e autenticar.
Solução bem feita, à maneira? Implementa um AP com suporte à norma 802.1X, mete-lhe um servidor RADIUS para autenticação no acesso e de seguida, após uma primeira autenticação, um portal captivo (embora redundante, aqui) com single sign on activo, para não introduzirem as credenciais duas vezes.
Pode parecer complicado, mas é o mais segruo, com uma grande vantagem: não há endereço IP nenhum atribuído a qualquer equipamento, sem que esse se tenha autenticado antes.

E garanto-te... desde que tenha endereço IP, quem souber o que faz, pode fazer muita coisa! :002:

Espero ter ajudado.
QQ coisa, força!

Cumps,
UnWired
 
Obrigado pela info mais pormenorizada Unwired. De facto a questão da segurança é bastante importante. Eu neste momento tenho efectuado alguns teste em casa com o meu router ( linksys wrt54gl com o firmware dd-wrt) e com uma máquina virtual com a solução wifidog que tinha referido em cima. Esta solução de facto é mt boa para os utilizadores, porque da primeira vez que se ligam ao hotspot podem registar-se eles mesmos, e é enviado um mail de confirmação para a sua conta de mail. Para já está a funcionar bem nos testes que tenho feito em casa, mas de facto depois numa implementação real, preocupa-me como mt bem o dizes, que deste modo quem souber de redes, tenha uma acesso mt priviligeado á rede e possa fazer "estragos". A 2ª solução que me referiste agrada-me bastante e até posso testar no meu ambiente em casa, uma vez que o meu router suporta wpa/radius, mas gostaria de manter o portal captivo na mesma para dar pequenos avisos, e outras informações. A questão é, desta forma terei de ser eu a introduzir os utilizadores na base de dados, uma vez que eles não se podem inscrever. Não é que seja um grande problema, mas se houvesse alguma maneira de os utilizadores se inscreverem seria o ideal.
Das soluções que referiste se conheceres alguns sites que me possam ajudar na investigação, agradecia imenso alguns links.
Mais um vez obrigado.
Cumprimentos
 
Viva,
sim, de facto a parte da inserção dos utilizadores é que é chata... É que na solução que eu referi, terias de ter uma AD e criar os utilizadores na mesma... assim torna-se mais difícil a gestão de todo o processo, quando poderias apenas te preocupar com o portal. Não conheço o WifiDog mas vou cuscar e ver se integra com AD.

Seja como for, há outra possibilidade (há sempre uma saída).. já percebi que não tens problemas ao nível de máquinas virtuais e também se usas o DD-WRT, então é porque há aí um afficionado de Linux... ou pelo menos usas Kernels Linux.

Então vejamos: idealmente não ter IP é o que se pretende. Mas se isso não for possível, e decidas que tenhas mesmo de usar o portal captivo, então que tal um controle de acesso via Firewall? Passo a explicar: Tens o teu servidor de portal (virtual, WifiDog), tens o teu router com DD-WRT (óptimo IDS e IPS, eu tenho um :) ). Então crias mais uma máquina virtual, espetas-lhe com o IPCOP que é uma FW muito boa, e os utilizadores, via regra de FW apenas podem aceder ao endereço do teu servidor de portal...

Enfim, é mais uma ideia. ;)

Link: http://www.ipcop.org/

Tira-me uma dúvida: simulando uma máquina na rede, a aceder ao portal captivo, se fizeres um nslookup, qual é o servidor de DNS? O router ou o WifiDog?

Cumps,
UnWired
 
Última edição:
Trabalhar com máquinas virtuais não é problema, já com linux, não se passa o mesmo. Em utilização regular ( actualizar, instalações, etc) safo-me, a nível de redes com linux não tenho experiência, e configurações mais complicadas só com recurso a tutoriais. Se fosse em windows já seria um pouco diferente. O wifidog tem 2 componentes, o wifidog gateway, que pode ser instalado no router( como é o caso), e o wifidog auth server, onde reside o portal captivo e a base de dados. Eu testei esta solução precisamente por permitir aos utilizadores se registarem automaticamente, com o portal captivo a dar 20 minutos da primeira vez que se registam, para activaram a conta através do mail enviado. Eu pesquisei alguns radius server's gratuitos, o tekradius( windows), e o freeradius( linux), e de facto a soluçao ideal seria se calhar autenticar os utilizadores atraves de wpa/radius, com o dd-wrt e uma maquina com o servidor de radius, e depois poderia colocar uma regra para redirecionar todo o trafego da porta 80 para uma página que seria o portal. O problema é que esta regra só deverá aplicar-se quando os utilizadores se autenticam, e dps deixar passar, caso contrario estavam smp a ir parar à página. Eu não sei trabalhar com iptables, por isso não sei como poderia aplicar estas regras( tenho de aprender :) )
Outra ideia passaria por criar uma página de raiz, que seria o front-end do servidor radius e da base de dados, onde os utilizadores se registavam (embora não faça ideia como implementar uma solução destas em linux), mas neste caso já teria de fornecer ip aos utilizadores.
Para este caso não me interessa mesmo nada ter uma AD, porque para isso já teria de usar um windows server, e o ideal é implementar este hotspot com ferramentas open-source.
Vou investigar o ipcop que me referiste, para ver as funcionalidades que me possam ajudar.
Ah, o servidor de dns é o router que contém o wifidog gateway.
Cumprimentos
 
BrunoNet,

Estive a pensar um pouquinho mais na coisa, e a fazer aqui uns desenhos :) . Até dá para integrar bem o RADIUS no meio disso.
Ora vejamos:

- Mantém-se tudo tal e qual como tem... O redireccionamento para o portal captivo, gestão de utilizadores no mesmo e tudo tal como tinhas configurado.
- A alteração está antes: em vez do user ter logo acesso ao IP, suportando o Router RADIUS, colocas o router/AP a apontar para um servidor RADIUS (FreeRadius muito mboa ideia). O user vai aceder ao router/AP, tentar obter endereço IP e este vai-lhe pedir uma pass e user de acesso. Se for um user autorizado, então o AP/Router vai permitir o pacto de DHCP, e o utilizador passa a ter acesso à rede. Até aqui ainda não tinha obtido IP. Depois de ter IP está no ambiente que tu já testaste, e o funcionamento segue como tinhas impleementado.
A mais valia é que garantes que quem tem IP é quem DEVE ter IP, isto é, alguém autorizado!!!
A parte chata é a dupla autenticação e teres de gerir users no RADIUS... mas enfim.

Tudo é um trade-off e, se queres a minha opinião, é o melhor que podes fazer, ainda por cima implementando num sítio público. Eu, pessoalmente, implementei uma solução dessas numa Instituição pública e, acredita, no que a segurança diz respeito, nunca é demais!!

Se precisares de ajuda avisa ;)

Cumps,
UnWired

--- EDIT ---
Estive a fazer um desenho com fluxo de dados... Aqui vai:
my.php

http://img518.imageshack.us/my.php?image=diagredecomfluxogo7.png

Depois faço um com o IPCOP ;)
 
Última edição:
Boa Tarde UnWired,
Tenho estado a reflectir no assunto e, vendo também a tua solução proposta, não faz muito sentido utilizar o wifidog assim, porque de facto a grande vantagem do mesmo é os utilizadores se poderem registar no hotspot. Mas se eles não têm IP nunca conseguirão aceder à rede pela primeira vez, a não ser que estejam no radius server. Ora, deste modo estaria a duplicar registos, certo!!!
A melhor opção talvez seja mesmo utilizar só o radius server, e dispensar o portal captivo. Posso sempre depois redirecionar os utilizadores para uma página com informações e/ou avisos.
Se não é incómodo, posso-te perguntar como está implementado o hotspot da instituição (uma ideia generalizada claro :) )
Mais uma vez obrigado pelas informações preciosas. É sempre bom contar com ajuda de pessoas que estão mais à vontade na matéria.
Cumprimentos,
BrunoNet
PS: Eu estive a dar uma vista de olhos pelo ipcop, fez-me lembar uma solução que testei há uns 2 anos em minha casa, o clarkconnect, embora o ipcop pareça ser mais poderoso.
 
BrunoNet,

Grosso modo, a coisa está da seguinte maneira:
- Um servidor AD+DNS+DHCP+RADIUS com sistema operativo Microsoft
- Um Access Port (sim, é diferente de um access point) com 802.1x nativo, que comunica com uma applican central de Wireless Security. Esta appliance aponta para o servidor RADIUS.
- Uma firewall para isolar estes equipamentos, que são vistos como estando numa DMZ. Isto é, apenas tenho nesse segmento de rede, os clientes wireless após autenticação, os access port, a appliance e o servidor.

O funcionamento é simples: eu crio um user na AD e a partir desse momento o utilizador tem credenciais para se ligar. O agente 802.1X (tem que estar activo na placa de rede) tenta aceder, é-lhe solicitado user e pass. Caso esteja errada, é desligado automaticamente (optei por não colocar ninguém em blacklist). Caso esteja correcta, o AccessPort permite a passagem do pacote de DHCP para o servidor de DHCP, este responde atribuindo um endereço e colocando o portátil na rede, onde só tem acesso à Internet.

A partir desse momento, não precisa de ter proxies configurados nem nada.., é acesso directo.

Mas, no meu caso, era uma coisa com uma dimensão bastante grande. No teu caso acho que não precisas de tanto. Eu acredito que mesmo com o portal captivo se consiga fazer uma coisa engraçada. Vou tentar desenhar uma coisa com o IPCOP à mistura... Tenta também...

Mas repara, não quero de maneira nenhuma deixar a ideia de que a tua solução não é boa! ALiás, tens montes de fabricantes que é assim que funcionam!!!!! (eu é que sei bem o que se pode fazer a partir do momento que se tem um IP... e sou um bocado cauteloso... se calhar paranóico! LOL)
 
Sim de facto no meu caso a dimensão é menor, mas mesmo assim não convém descuidar. Vou avaliar bem a solução do Ipcop, sei que também permite isolar por zonas , e ler alguma documentação sobre o mesmo. Se tiver dúvidas não vou hesitar em perguntar :)
Cumprimentos.

Edit
Eu não tenho o Visio no computador mas a solução em ipcop poderia ser mais ou menos a seguinte
Internet
|
|
ipcop(dns, dhcp) ---> DMZ { (AP + Radius Server) para a autenticação wireless }
|
|
Rede Interna

Está correcta esta configuração? Confesso que n pesquisei agora, pq estou com um exame á porta. Mas deste modo eu isolo os utilizadores de uma eventual rede interna ( ainda não sei se serão implementados computadores no local e para que efeitos) dos utilizadores autenticados por wireless. O ipcop segundo vi funciona por zonas, e como a rede a implementar é simples, colocar front-end e back-end firewalls era trabalho a mais para uma coisa tão pequena.
 
Última edição:
Viva,
Sim, a configuração está correcta. Podes sempre manter os clientes Wireless todos na DMZ, junto com o AP. o RADIUS metia-o dentro da Green e criava uma regra que apenas permite o acesso bidireccional entre o RADIUS e o AP, no IPCOP.

Cumps,
UnWired
 
Back
Topo