Accounting RADIUS per la contabilizzazione del tempo, traffico e costo delle connessioni

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.

radius-accounting

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.

radius-accounting-details

Dettagli delle connessioni di un utente

Classi di Accounting

radius-connection-limits

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.

captive-portal-network-access-popup

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.