MikroTik Logging: inserire il nome utente nelle righe di log per gli Hotspot o PPPoE server

MikroTik Logging: inserire il nome utente nelle righe di log per gli Hotspot o PPPoE server

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

MikroTik Hotspot: Come loggare il traffico degli utenti (parte 1)

MikroTik Hotspot: Come loggare il traffico degli utenti (parte 1)

WirelessGuru-Mikrotik-Log-Hotspot-Connection-Part-1

Realizzare delle reti Hotspot WiFi con MikroTik, a meno di non attribuire un ip pubblico per ogni utente, implica molto spesso di dover attivare un log del traffico degli utenti verso internet. Vediamo come possiamo con MikroTik attivare il logging del traffico degli utenti hotspot.

Generare i log

Grazie alla flessibilità e potenza del sistema operativo RouterOS possiamo in maniera molto semplice impostare alcune regole per tenere traccia delle attività relative agli utenti della rete wireless WiFi.

Per prima cosa andiamo nei settaggi relativi alle attività di Log ed abilitiamo il logging per hotspot e firewall:

[code]

/system logging add topics=firewall action=memory

/system loggin add topics=hotspot action=memory

[/code]

Attraverso queste due semplici regole diciamo al sistema di iniziare a tenere traccia delle attività relative all'hotspot (login, logout etc) e di "scrivere" nella RAM (memory) l'attività. Vedremo in seguito come veicolare in altri target questi log.

Adesso utilizzando il firewall andremo a creare una regola che permetta di "loggare" il traffico passante dal router:

[code]
/ip firewall mangle add chain=forward connection-state=new action=log
[/code]

Con questi semplici comandi abbiamo configurato il router MikroTik per "loggare" il traffico degli utenti, se infatti utilizziamo l'hotspot ed andiamo a vedere dentro "Log" troveremo sicuramente delle entry di questo tipo:

[code]
Feb 7 2016 20:17:59 firewall,info: in:bridge-hs out:ether1, src-mac 00:03:aa:dd:de:2c, proto TCP (SYN), 172.31.255.253:58523->64.233.166.188:5228, len 60
Feb 7 2016 20:20:16 firewall,info: in:bridge-hs out:ether1, src-mac 00:03:aa:dd:de:2c, proto TCP (SYN), 172.31.255.253:48072->64.233.167.192:7275, len 60
Feb 7 2016 20:22:59 firewall,info: in:bridge-hs out:ether1, src-mac 00:03:aa:dd:de:2c, proto TCP (SYN), 172.31.255.253:47049->64.233.184.188:5228, len 60
[/code]

ovviamente gli IP, le porte ed i mac-address varieranno dall'esempio sopra riportato!

Cosa abbiamo in queste entry? Andiamo ad analizzarle:

Feb 7 2016 10:17:59  Data ed ora del log

firewall,info  Chi ha generato il log (nel nostro caso il firewall)

in:bridge-hs out:ether1 Quali interfacce il pacchetto ha attraversato

src-mac 00:03:aa:dd:de:2c Il MAC ADDRESS del dispositivo in LAN

proto TCP (SYN) Il tipo di protocollo (TCP, UDP, etc)

172.31.255.253:58523->64.233.166.188:5228 L'ip sorgente e l'ip destinatario con le relative porte.

Come ben si nota con questa entry riesco a "loggare" il minimo indispensabile richiesto dalla normativa:

chi (ip sorgente)

dove (ip destinazione)

cosa (protocollo + porta di destinazione, ad esempio TCP/80 è una richiesta HTTP)

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

SMS Station login failed: You are calling outside your allowed timespan

SMS Station login failed: You are calling outside your allowed timespan

WirelessGuru-SMS-Station-HowtoSe a seguito di una mancata alimentazione della SMS Station di SICE all'improvviso tutta la vostra rete hotspot si blocca, andate a vedere nei log dei captive portal Mikrotik o SICE.

Se nei log trovate il seguente messaggio "Login failed: You are calling outside your allowed timespan" allora si sono disallineate le policy nel database della SMS Station.

La mancata alimentazione, quindi il non corretto shutdown della macchina, può in rari casi causare un problema con la sincronia delle policy. La SMS Station ha le policy collegate anche a funzionalità temporali , in quanto è presente una modulazione dinamica della velocità, ed ecco spiegato l'errore sibillino che appare nei captive portal. Per risolvere la situazione basterà entrare nel pannello di amministrazione della SMS Station (versione 4), andare su "System" e facendo click col tasto destro del mouse andare su "Policy prodotti". Ci verrà presenta la lista delle policy configurate sull'apparato. Entrare sulla prima e fare una modifica, ad esempio abilitare o disabilitare la modulazione dinamica della velocità. Salvare e poi rimettere come prima la policy modificate e, ovviamente, risalvare.

Eseguire questa operazione per tutte le policy presenti nell'elenco.

Pagine: 1 | 2 | Single Page

Come eseguire uno script per ogni lease del DHCP server di Mikrotik

Come eseguire uno script per ogni lease del DHCP server di Mikrotik

WirelessGuru-Mikrotik-HowtoAvete mai avuto l'esigenza di eseguire uno script per ogni client che si collega al dhcp server di Mikrotik?

Nelle recenti versioni di RouterOS è stata proprio aggiunta questa possibilità. Nella sezione DHCP server abbiamo una nuova opzione chiamata "Lease Script" che ci permette di eseguire un comando/script per ogni client a cui viene assegnato l'indirizzo ip dal nostro DHCP server o per ogni client che viene rilasciato/liberato dall'elenco dei leases (in quanto non  più presente).
Come variabili, a livello global, nel nostro script possiamo utlizzare:

  • $leaseBound 
  • $leaseServerName
  • $leaseActMAC
  • $leaseActIP

$leaseBound avrà valore 1 se il server ha dato l'ip a quel client, mentre ha valore 0 (zero) se il server ha liberato l'ip dai leases.

$leaseServerName avrà il nome del server DHCP che ha dialogato con il client.

$leaseActMAC conterrà il mac-address della macchina che ha ricevuto l'ip dal server.

$leaseActIP infine conterrà il l'ip assegnato in quel momento al client.

Pagine: 1 | 2 | Single Page

Come creare un hotspot WiFi da zero con Mikrotik

Come creare un hotspot WiFi da zero con Mikrotik

Come si configura un'area hotspot WiFi con apparati Mikrotik partendo da zero? Vediamo di seguito come in pochi semplici passi riusciamo a creare un'area WiFi protetta dal captive portal di Mikrotik.

Innanzitutto definiamo l'area hotspot WiFi. Un'area hotspot WiFi è un'area senza protezioni wireless (open, senza wpa/wpa2 o altro) a cui è possibile connettersi liberamente. I tentativi di navigazione saranno però redirezionati verso una pagina di login dal servizio captive portal interno.

Per realizzare un'area hotspot è fondamentale innanzitutto separare l'area hotspot WiFi dalla LAN a cui è connesso internet. Per questo motivo dobbiamo obbligatoriamente utilizzare due subnet distinte di ip. Non è quindi possibile realizzare un'area hotspot WiFi in modalità transparent bridge.

Eseguire sull'apparato un

[code gutter="false"]/system reset-configuration no-default=yes[/code]

per portarlo ad uno stato di inizializzazione. A questo punto assegnamo due indirizzi ip, uno alla scheda wlan1 (la scheda wireless) ed un'altro alla scheda ether1 (la scheda ethernet da cui prenderemo banda internet):

[code gutter="false"]/ip address add address=192.168.1.2/24 interface=ether1 disabled=no
/ip address add address=172.16.0.1/16 interface=wlan1 disabled=no[/code]

l'indirizzo della scheda ether1 in questo esempio è casuale, va ovviamente adattato alla rete che ospiterà il nostro apparato hotspot. Anche l'indirizzo assegnato alla scheda wireless è casuale, ma qui, non avendo vincoli possiamo assegnare una classe ip di nostro gradimento con la sola accortezza di settarla diversa da quella della erher1. Nell'esempio abbiamo assegnato una /16 come maschera a bit (65534 ip), non ci sono regole specifiche per questa scelta, ma è largamento consigliato non limitare il range del dhcp dell'hotspot a "pochi" ip visto che oggigiorno ci sono molti device wireless che si connettono alle aree hotspot gratuite ed una volta che il server dhcp ha esaurito gli ip disponibili si ha l'effetto di una rete wifi "non funzionante".

Una volta configurati gli indirizzi ip dovremo settare anche il default gateway che ci permetterà di raggiungere la rete internet:

[code gutter="false"]/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1[/code]

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