WirelessGuru-Mikrotik-Log-Hotspot-Connection-Part-2-username-add-on-every-log-lineAlzi la mano chi non ha mai desiderato avere direttamente fruibile l'username, che in molti casi si traduce nel numero di cellulare, in ogni riga di log generata dal nostro fido hotspot (o pppoe server) realizzato con MikroTik.

Come avete visto dal precedente articolo MikroTik Hotspot: Come loggare il traffico degli utenti (parte 1) si può realizzare in maniera molto efficace un logging, perfettamente a norma di legge, delle connessioni che transitano nella rete autenticata tramite hotspot (o pppoe server). Vi invito a leggerlo se non lo avete ancora visionato.

La totalità degli hotspot che mi è capitato di analizzare (e di realizzare) fino ad oggi utilizzavano quelle regole per attivare il logging. Però ogni qualvolta dovevano essere analizzati, per esempio a seguito di richiesta da parte della Polizia Postale, iniziava il "calvario" di ricercare quale username avesse quell'ip privato in quel momento. Ripeto, alzi la mano a chi non è capitato e non abbia pensato: come sarebbe grandioso avere subito l'username a portata di "mano".

Cosi' mi sono deciso di trovare una soluzione a questa problematica. Vediamo subito cosa sono riuscito a realizzare. Partiamo dal risultato:

WirelessGuru MikroTik Logging with Username in every row

Come ben vedete nel riquadro rosso abbiamo un numero di cellulare (mascherate per privacy le ultime cifre). Questo è il risultato che volevamo no? Adesso è molto semplice sapere chi alle 22:36 del 31 marzo 2916 è andato a visitare il sito web ospitato sul server 212.48.10.49.

Ma come ci siamo riusciti? Vediamolo assieme.

Regole di firewall custom ed un pizzico di scripting

Per riuscire ad inserire il nome utente nella riga di log dobbiamo utilizzare il campo "prefix" presente nella regola di firewall che genera il log, come spiegato nell' articolo precedente, quindi per ogni username ci vorrà una regola di firewall dedicata. Proprio cosi', a differenza di quello che abbiamo realizzato fino ad oggi, che con una potente ed unica regola generavamo il logging di un'intera rete, per avere regole customizzate dobbiamo obbligatoriamente avere almeno una regola per ogni username attivo nella macchina.

Ma come generiamo le regole? Ovviamente non manualmente. Ci dobbiamo avvalere di una features introdotta non da molto sul sistema operativo RouterOS. Sto parlando della possibilità di lanciare uno script per ogni utente che effettua il login e conseguentemente lanciare uno script diverso per ogni utente che effettua il logout.

Dove troviamo questa potente funzionalità? All'interno della sezione user-profile del nostro hotspot MikroTik (o pppoe server).

Per pulizia di pensiero e di lavoro creeremo una nuova catena di firewall, e la chiameremo "customlog".

All'interno dello script che viene chiamato ogni volta che l'utente fa login possiamo utilizzare delle variabili, a noi interessano per i nostri scopi le variabili $user e $address che contengono rispettivamente il nome utente e l'indirizzo io che gli è stato assegnato dal sistema.

Andremo a creare una semplice regola di firewall di questo tipo:

[syntax type="html|php|js|css"]

/ip firewall mangle add chain=customlog src-address=$address connection-state=new action=return log=yes log-prefix=$user comment=$user

[/syntax]

e la mettiamo nello script di "On login" della sezione Hotspot User Profile:

WirelessGuru-Regola-Log-Custom-In-User-Profile-1

Dopo aver inserito questa regola se proviamo a fare login nel nostro hotspot MikroTik vedremo che verrà creata una regola dinamica di firewall come dal seguente screenshoot (regola con id 1):

WirelessGuru-Hotspot-Logging-Dinamic-Firewall-Rulez

Pagine: First | 1 | 2 | 3 | Next → | Last | Single Page