Hotspot Wifi


Wifi Hotspots

Ho lavorato ultimamente ad un progetto decisamente interessante: hotspot wifi distribuiti con accesso tramite captive portal ad autenticazione e log remoti e centralizzati. L'obiettivo é fornire a locali pubblici come ristoranti, bar, alberghi, campeggi un metodo di facile utilizzo per poter permettere ai loro clienti di avere accesso ad internet con i proprio smartphone, tablet, netbook e portatili, sgravando allo stesso tempo il gestore dall'onere dell'autenticazione e del logging del traffico.

Segue uno schema ASCII dell'intera infrastruttura:

 
                                       -------------
                        --------------| SMS Gateway |
                       |               -------------
                       V
                    -------                        
                   | Mysql |<-----       
                    -------        |3   
                                   |    
   ----------------    2      ------------         ---------
  | Captive Portal |-------->| Freeradius |    -->| Rsyslog |
  |   (Drupal)     |          ------------    |    ---------
   ----------------       --------------------
          |             4|                         --------------
         1|          ----------        5         /                \
           ---------|   INET   |--------------> |       WWW        |
                     ----------                  \                /
                         |                         --------------
              ---------------------   [...]  -----
             |              |                     |
       -----------     -----------            -----------
      | Hotspot 1 |   | Hotspot 2 |   [...]  | Hotspot n |
       -----------     -----------            -----------

Il gestore deve soltanto inserire le utenze con i relativi parametri di accesso sul backend del captive portal, il quale si sincronizza in tempo reale con il database del RADIUS. In alternativa su puó inviare un messaggio all'SMS Gateway, il quale provvederà a creare un utenza temporanea per la navigazione direttamente sul database Mysql.

Quando un dispositivo si aggancia alla rete dell'access point qualsiasi tipologia di traffico viene reindirizzata dall'hotspot verso la pagina di autenticazione del Captive Portal, che si occuperà di inviare le credenziali di accesso al server Freeradius e di comunicare all'hotspot l'esito del login. In caso di login corretto l'utenza verrà abilitata alla navigazione inibendo la redirezione verso il Captive Portal per il determinato MAC Address. Il tutto viene loggato in remoto dagli Access Point su di un Rsyslog, in modo da poter fornire alle autorità competenti una traccia di navigazione nel caso di indagini.

La particolaritá di questo sistema è che permette di utilizzare lo stesso server per installazioni multiple, in modo da fornire un Backend ed un Captive Portal personalizzato al cliente, sfruttando peró lo stesso codice per quanto riguarda l'intera infrastruttura, in modo tale da poter intervenire agilmente sull'intero sistema nel caso di bugfix o di nuove implementazioni.

Il progetto è stato ideato e sviluppato all'interno dell'Edisoft, l'azienda per cui ho lavorato negli ultimi anni, per qualsiasi informazione di carattere tecnico o commerciale potete fare riferimento a loro.