l contenuto di questo documento è suddiviso nelle seguenti sezioni:
- Introduzione
- La gestione dell’Accounting
- Classi di Accounting
- Contabilizzazione dei costi di connessione
- Limiti di connessione
- Connessioni prepagate
- Accounting RADIUS per il Captive Portal
- Accounting RADIUS per le connessione WPA/WPA2 Enterprise
Introduzione
Il protocollo RADIUS oltre a svolgere il ruolo di servizio di Autenticazione e Autorizzazione per l’accesso remoto su dispositivi di rete, permette di gestire l’Accounting delle connessioni. In altre parole, si tratta di un sistema AAA (la tripla A significa Authentication, Authorization e Accounting) che grazie al supporto per l’Accounting, garantisce la contabilizzazione della durata e del traffico generato sia in download che in upload delle connessioni. Lo scopo di questo documento è la descrizione dell’implementazione dell’accounting in Zeroshell ottenuto mediante il server FreeRADIUS di cui dispone.
La gestione degli Accounting
Zeroshell può ricevere l’accounting da qualsiasi dispositivo di rete che comunichi tali informazioni utilizzando il protocollo RADIUS. Esempi di tali dispositivi sono:
- Access Point Wireless
- Router VPN
- Switch Ethernet con accesso Port-Based mediante 802.1x
- Router per l’accesso mediante Captive Portal
In particolare Zeroshell gestisce i seguenti attributi provenienti da richieste RADIUS:
- User-Name (nome utente eventualmente completo di @dominio)
- Calling-Station-Id (MAC address del client)
- Framed-Ip-Address (IP assegnato al client)
- NAS-Identifier (IP o hostname del dipositivo di accesso alla rete. Per esempio Access Point Wi-Fi)
- Acct-Input-Octets (numero di byte trasmessi dal client, quindi in ingresso al NAS)
- Acct-Input-Gigawords (estensione a 64 bit del campo precedente)
- Acct-Input-Packets (numero di pacchetti trasmessi dal client)
- Acct-Output-Octets (numero di byte ricevuti dal client, quindi in uscita dal NAS)
- Acct-Output-Gigawords (estensione a 64 bit del campo precedente)
- Acct-Output-Packets (numero di pacchetti ricevuti dal client)
- Acct-Session-Time (Durata della connessione)
Zeroshell gestisce oltre alle richieste di tipo Start e Stop delle connessioni, anche le cosiddette richieste Interim-Update, con cui alcuni Access Point più evoluti comunicano informazioni intermedie di traffico ricevuto e trasmesso. Per tali dispositivi tali dati vengono aggiornati in tempo reale senza aspettare la fine della connessione. Anche il Captive Portal di Zeroshell utilizza richieste di Interim-Update per aggiornare continuamente il traffico, il tempo e il costo della connessione in tempo reale.
Gestione accounting RADIUS
Si noti che cosi come l’autenticazione può venire inoltrata ad un server RADIUS esterno autoritativo per un determinato dominio, nella stessa maniera l’accounting viene inoltrato verso il server proxy corretto. L’elenco dei server proxy RADIUS per l’accountig è lo stesso di quello per l’autenticazione, ma per l’accounting bisogna abilitarne esplicitamente l’inoltro per ogni dominio.
Dettagli delle connessioni di un utente
Classi di Accounting
Classi di utenti e definizione dei costi e dei limiti di connessione
Contabilizzazione dei costi di connessione
È possibile creare classi di accounting diverse con lo scopo di attribuire agli utenti differenti modalità di contabilizzazione delle connessioni a Internet. Qualora non specificato diversamente in fase di creazione o modifica degli account, gli utenti appartengono alla classe di accounting denominata DEFAULT i cui costi di connessione sono nulli e senza limiti sul traffico e sul tempo di collegamento. I costi di connessione da definire in una classe e quindi da attribuire agli utenti che vi appartengono, possono essere applicati per Megabyte di traffico generato (RX+TX) e per tariffa oraria.
Limiti di connessione
Per ogni classe di accounting è possibile definire un limite massimo in Megabyte per il traffico generato e il numero massimo di ore o frazioni di ore per cui l’utente può rimanere connesso. Quando l’utente supera almeno uno dei due limiti viene automaticamente disconnesso e non gli è più concesso connettersi finchè i contatori non vengono azzerati. Si noti che il limite di banda in Megabyte per secondo non è ancora stato implementato nella versione attuale di Zeroshell (1.0.beta16).
Connessioni prepagate
La modalità di pagamento può essere impostata su uno dei due valori: Post-Pagato e Pre-Pagato. Nel caso di tariffa postpagata, vengono applicati i costi di connessione fino al raggiungimento di eventuali limiti di collegamento. Nel caso invece delle tariffe prepagate all’utente deve essere applicato un credito iniziale, esaurito il quale viene disconnesso e non più autorizzato finché non gli viene caricato altro credito.
Accounting RADIUS per il Captive Portal
Il Captive Portal di Zeroshell, come già accennato, comunica le informazioni sulle connessioni tramite il protocollo RADIUS. Ovviamente, il server FreeRADIUS integrato gestisce tali informazioni e, qualora necessario, le inoltra ad un proxy RADIUS remoto, mantenendosi comunque una copia in locale dell’accounting. Eventuali proxy RADIUS esterni possono essere sia server Zeroshell, con abilitato il servizio di accounting, che Server RADIUS diversi da Zeroshell. In quest’ultimo caso, potrebbero esserci delle difficoltà nella gestione dei limiti di traffico, di tempo e nella gestione delle tariffe prepagate, mentre per quel che riguarda il calcolo dei costi non ci sono prolemi.
Finestra Popup di accesso alla rete
Come si
nota dalla figura, le informazioni di accounting sono disponibili in
tempo reale anche per l’utente tramite la finestra di Network Access,
che viene aperta subito dopo l’autenticazione e che deve rimanere
aperta per garantire l’accesso alla rete tramite il rinnovo
dell’autorizzazione.
È opportuno notare, che il captive portal
non trasmette l’accounting in maniera sincrona, ma accoda le richieste
in un buffer. Un processo daemon si occupa poi di trasmettere
effettivamente tali informazioni al server RADIUS. Questo
disaccoppiamento garantisce, in caso di problemi di rete che impediscano
la comunicazione tra il captive portal e il server RADIUS remoto, che
non ci siano perdite di dati o rallentamenti a carico del captive
portal.
Accounting RADIUS per la connessione WPA/WPA2 Enterprise
Ormai quasi tutti gli Access Point Wireless, anche quelli più economici, permettono la configurazione di un server RADIUS a cui vengano mandate le richieste di accounting. Grazie a ciò, qualora si scelga di abilitare l’accesso Wi-Fi mediante WPA/WPA2 Enterprise (cioè mediante 802.1x), Zeroshell può contabilizzare anche il traffico proveniente direttamente da questi dispositivi, senza ricorrere all’attivazione di un captive portal. Si noti, che affinché gli Access Point WiFi possano comunicare le informazioni di accounting al server RADIUS è necessario aggiungere il loro indirizzo IP insieme allo Shared Secret all’elenco dei client RADIUS.