Stavolta l’idea fissa è quella di realizzare un servizio di hotspot wifi soltanto con apparati wrt (dispongo di due fonera 2200, un linksys wrt54gl ed un linksys wap54g), senza dover aggiungere server per la parte di captive portal.

L’hotspot mi deve offrire due tipi di connettività (un pò sul modello fonera): il primo di tipo internet per utenti guest, e il secondo invece per l’accesso alla lan privata per gli utenti “interni”.

I tipi di accessi si devono differenziare per la modalità di configurazione e di autenticazione, ovvero i guest non devono perder tempo a configurarsi i parametri della connettività wireless ma al massimo fornire una login e una password su una pagina web di benvenuto mentre gli interni devono utilizzare un meccanismo di autenticazione “forte” e una connessione wireless altrettanto fortemente cifrata.

Per i guest va benissimo il modello hotspot pubblico, ovvero wireless in chiaro più autenticazione UAM (Universal Access Method) tramite pagina web: in questo modo l’utente si connette ad una rete wireless di tipo open e, non appena accede ad internet, viene rediretto su una pagina di benvenuto che lo invita a fornire le proprie credenziali (username e password). Solo in seguito all’autenticazione l’utente può navigare liberamente, uscendo dal cosiddetto “walled garden”.

Per gli utenti interni si usa invece IEEE 802.1x, in modo da fornire ad ogni uente una coppia di credenziali (login e password) piuttosto che un secret condiviso, che risulterebbe scomodo gestire tra più utenti (senza parlare poi delle implicazioni di sicurezza/riservatezza/privacy/etc). Per l’utilizzo dell’802.1x c’e’ bisogno di un server radius, vi consiglio freeRADIUS, che oltre ad essere molto potente ed estensibile ha un’ottima comunità di utenti e un wiki molto utile.

Come captive portal posso scegliere tra il rodatissimo chillispot o il nuovo CoovaChilli, che è un fork del primo con qualche cosetta in più.

Bene, consideriamo ora come e dove “piazzare” il nostro chilli. Normalmente il captive portal viene piazzato su una macchina dual-homed (doppia interfaccia di rete) che funge da gateway e firewall per tutti i wrt, realizzando quel “walled garden” che ospita tutti gli utenti collegati al wireless ma che devono ancora autenticarsi. Ora, non disponendo di un server con doppia scheda di rete l’alternativa è di mettere il captive portal direttamente su ogni wrt…..non mi piace. Troppo lavoro di istallazione, configurazione, gestione e poi ad ogni minimo cambiamento devo andare a rimettere le mani su ogni wrt, no.

Pensandoci bene il linksys wrt54gl è un apparato “dual homed” poichè ha due schede di rete, più propriamente una scheda di rete, denominata wan e uno switch di rete a quattro porte, che figata! Ma allora posso piazzare il captive portal sul wrt54gl è collegare gli altri wrt sulle porte dello switch! Eureka!

Uhm…..ripensandoci non è proprio corretto perchè in questo modo mi ritroverei che anche le connessioni di tipo 802.1x sarebbero “assoggettate” al captive portal….no, devo riuscire a separare la lan dello switch in due sotto-lan, in modo da mettere nella prima il wireless di tipo “open” che va sul captive portal e nella seconda il wireless di tipo 802.1x.

Bene, teoricamente mi sembra tutto corretto, ma come posso separare la lan in due sotto-lan, in modo che ogni wrt possa far transitare in ognuna un tipo di connessione wireless e basta?

Pensa che ti ripensa m’e’ venuto in mente il meccanismo delle VLAN normalmente utilizzato sugli switch, che, grazie ad un piccolo “tag” inserito nei frame ethernet riescono a smembrare una lan in sotto-lan facendo passare tutti i pacchetti così etichettati nello stesso “pertuso” (una porta ethernet detta trunk che connette gli switch tra di loro), per poi ridistribuire i pacchetti nelle giuste reti una volta giunti a destinazione.

Bene, ma sarà possibile? Beh, cercherò di provarci nei prossimi giorni, di sicuro i wrt vanno “sbrandizzati” e rigenerati con delle distro che mi permettano di configurare più connessioni wifi contemporaneamente e che supportino lo standard IEEE 802.1q, ovvero il trunking delle reti ethernet.

Inutile dirlo, sui wrt ci metterò openwrt, così mi ritrovo tutti i pacchetti pronti, compreso il chillispot.

Alla prossima puntata, speriamo di farcela!

Annunci