Soluzione hotspot con Coova Chilli, FreeRADIUS, MySQL

da Mag 14, 2013Blog0 commenti

freeradius-logoNel mondo dell’Open Source FreeRADIUS è sicuramente uno dei nomi più autorevoli: veloce e dinamico garantisce un supporto per l’autenticazione e la rendicontazione degli accessi utente.

Per implementare la nostra soluzione di controllo degli accessi pubblici wifi la base tecnologia parte ovviamente da FreeRADIUS, il quale si appoggia a MySQL (ora MariaDB) come backend, opportunamente configurato per massimizzare le prestazioni.

Corredato al motore di autenticazione abbiamo realizzato un portale di gestione degli utenti e dei punti di accesso (hotspot), in modo da avere una configurazione granulare in base alle esigenze dei clienti presso cui vengono posizionati gli apparati.

La parte di captive portal è invece affidata a Coova Chilli (in precedenza Chillispot), che si occupa di catturare gli utenti reindirizzandoli alla pagina di autenticazione o di registrazione.

 

Il pannello di gestione è stato di recente completamente riscritto usando il framework PHP Yii, il che ci ha avvantaggiato parecchio avendo al suo interno diversi strumenti e plugin, sia per la visualizzazione che per la gestione del database.

La popolazione del database di FreeRADIUS avviene in automatico ad ogni modifica dell’utente, in modo da assicurare l’autenticazione sempre aggiornata.

Il prodotto è in sviluppo oramai da circa 10 anni, nel corso dei quali sono state introdotte nuove funzionalità e criticità. Il sistema arriva oggi a contare 500.000 utenti,oltre 700 apparati hotspot registrati suddivisi in 280 reti.

 

Vista la base di utilizzo si è reso necessario implementare una soluzione di alta disponibilità geografica basata sull’uso dinamico dei DNS, in modo da garantire continuità di servizio sia in caso di probelmi hardware che di problemi di connettività di una delle due strutture (attualmente KPNqwest ed Aruba). Il database MySQL è sincronizzato in tempo reale mediante una configurazione di replica active/active, i file web (che cambiano molto raramente) copiati su base oraria.

Nella nuova configurazione abbiamo preferito implementare una distribuzione del carico sulle due farm sempre appoggiandosi alle possibilità di configurazione del DNS in failover e della replica MySQL.

 

Gli apparati installati sono di due tipi: basici (un router opportunamente modificato per eseguire il software di captive portal) oppure avanzati. Per questa seconda tipologia abbiamo realizzato un sistema Ubuntu personalizzato in grado di effettuare filtraggio avanzato della navigazione in modalità trasparente (transparent proxy), blocco di accesso ai siti secondo categorie oppure whitelist/blacklist personalizzate, content filtering, statistiche anonime sui siti più visitati ed i siti più trafficati. Tutto questo mantenendo sempre il riferimento verso il server radius ridondato.

 

FreeRADIUS debugIl sistema è inoltre in grado di autenticare utenti provenienti da altre fonti, mantenendo la sincronizzazione delle credenziali oppure concordando un protocollo di aggiornamento delle credenziali.

 

Tra le principali funzioni di controllo di FreeRADIUS vale la pena citare:

  • limite di tempo massimo di navigazione;
  • limite di tempo giornaliero o mensile di navigazione;
  • data di scadenza;
  • numero di accessi contemporanei;
  • limite orario di accesso (durante la pausa pranzo, durante il fine settimana…);
  • limite di banda in upload o download;
  • limite di traffico.

A cui abbiamo aggiunto:

  • limitazione di mac address.

Grazie all’uso degli HuntGroup abbiamo anche potuto definire diverse limitazioni di navigazione a seconda del punto di accesso dell’utente.

Per altre informazioni visitate la sezione del nostro blog.

CREATE YOUR PROJECT

Book a free consultation

Your business is constantly evolving. Tell us about the project you have in mind, whether it's an e-commerce website or a strategic business solution.