Monitoraggio degli utenti attivi e accessi: comandi who
, w
, last
1. Perché è importante monitorare gli utenti?
Linux, come qualsiasi altro server (o anche una malefica scatola con siti web), permette a molti utenti di lavorare contemporaneamente. Ma cosa succede se il tuo server viene violato? O qualche collega-malandrino di notte decide di "accidentalmente" cancellare file importanti? Il monitoraggio dell'attività degli utenti ci aiuta a capire chi, quando e da dove è entrato nel sistema, oltre a quali processi stavano eseguendo. È come una videocamera, solo che per il tuo server.
Strumenti principali di monitoraggio
Per valutare l'attività degli utenti su un server, in Linux sono disponibili tre comandi chiave:
who
— mostra gli utenti attuali che lavorano nel sistema.w
— fornisce un po' più di informazioni: azioni degli utenti e carico del sistema.last
— fornisce la cronologia degli accessi al sistema.
Ognuno di questi comandi ha le sue particolarità ed è applicabile in diversi scenari. Esaminiamoli con esempi.
2. Comando who
Il comando who
mostra un elenco degli utenti attualmente connessi al sistema. È come un "registro delle presenze" dove puoi controllare chi è attualmente sul server.
who
Esempio di output del comando:
user1 pts/0 2023-10-20 09:10 (192.168.1.100)
root pts/1 2023-10-20 09:15 (192.168.1.101)
Cosa vediamo qui:
- Il nome dell'utente
user1
,root
. - Il terminale attraverso cui sono connessi
pts/0
,pts/1
. - L'ora dell'accesso
2023-10-20 09:10
. - Da dove proviene la connessione
192.168.1.100
.
Opzioni per who
:
who -a
: Mostra anche i dati del sistema, come l'ora di avvio, i processi in esecuzione e gli utenti.who am i
: Mostra solo le informazioni sull'utente che ha eseguito il comando.
3. Comando w
Se il comando who
registra solamente chi è entrato, il comando w
fornisce più informazioni - racconta cosa sta facendo l'utente in questo momento. Questo è utile per capire se si sta impegnando in qualcosa di utile o in qualcosa che dovrebbe essere interrotto immediatamente.
w
Esempio di output:
10:20:42 up 1 day, 5:12, 2 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 09:10 1:00 0.01s 0.01s nano app.py
root pts/1 192.168.1.101 09:15 2:00 0.02s 0.02s htop
Cosa sta succedendo qui:
- La prima riga fornisce informazioni sul sistema: ora corrente, tempo di attività del server, numero di utenti e carico del sistema
load average
. - La tabella mostra:
- Nome dell'utente
user1
,root
. - L'ambiente attraverso cui l'utente si è connesso
pts/0
,pts/1
. - Indirizzo IP dell'utente
192.168.1.100
. - Orario di accesso al sistema
09:10
. - Tempo di inattività
IDLE
. - Attività corrente dell'utente
WHAT
, per esempio la modifica del fileapp.py
utilizzandonano
.
- Nome dell'utente
Opzioni per il comando w
:
w -h
: Rimuove le intestazioni della tabella.w username
: Mostra informazioni solo su un utente specifico.
4. Comando last
Se who
e w
parlano del presente, allora last
permette di dare uno sguardo al passato. Mostra la cronologia di tutti gli accessi al sistema. Questo comando legge il file /var/log/wtmp
, dove vengono scritti tutti gli accessi degli utenti.
last
Esempio di output:
user1 pts/0 192.168.1.100 Fri Oct 20 09:10 - 09:30 (00:20)
root pts/1 192.168.1.101 Fri Oct 20 09:15 - down (00:15)
Cosa vediamo qui:
- Nome utente
user1
,root
. - Terminale
pts/0
,pts/1
. - Indirizzo IP o nome host
192.168.1.100
,192.168.1.101
. - Ora di accesso
Fri Oct 20 09:10
. - Ora di uscita
09:30
e durata totale della sessione00:20
.
Opzioni per last
:
last -n 10
: Mostra solo gli ultimi 10 record.last username
: Cronologia degli accessi per un utente specifico.last reboot
: Mostra quando il server è stato avviato.
5. Esempio pratico: analisi dell'attività degli utenti
Immagina che vuoi sapere chi ha lavorato sul server di notte per verificare se è successo qualcosa di sospetto. Iniziamo controllando gli utenti attuali:
who
Ora vediamo cosa stanno facendo:
w
Se trovi qualcosa di strano (per esempio, un processo sconosciuto), devi controllare chi ha effettuato l'accesso durante la notte. Per questo, usiamo:
last
Controlliamo i log per un utente specifico che ha attirato la nostra attenzione:
last user1
Se notiamo un'anomalia, come un accesso da un IP sconosciuto, dobbiamo prendere provvedimenti: limitare l'accesso, configurare l'autenticazione a due fattori o bloccare l'utente.
6. Caratteristiche e errori tipici
Quando lavori con i comandi di monitoraggio, è importante ricordare che:
Il file dei log può essere cancellato. Se qualcuno ha rimosso intenzionalmente i record da
/var/log/wtmp
, il comandolast
non mostrerà nulla. Questa è una delle ragioni per cui è importante fare regolarmente backup dei log o inviarli a un server remoto.Facilitare la comprensione dell'output. A volte l'output dei comandi può essere sovraccarico (ad esempio, se ci sono molti utenti). Usa filtri, come
grep
, per cercare le informazioni necessarie:last | grep user1
Dipendenza dalle impostazioni di sistema. Alcuni sistemi potrebbero non registrare i log degli accessi, se ciò è disattivato a causa delle impostazioni. Assicurati che
/var/log/wtmp
venga aggiornato regolarmente.
Come si applicano queste conoscenze nella pratica?
- Amministrazione server. Ad esempio, sei l'amministratore di un'azienda e devi monitorare la sicurezza del sistema per assicurarti che nessuno, per errore o intenzionalmente, "rompa tutto".
- Rilevamento delle minacce. Gli strumenti di monitoraggio ti aiuteranno a individuare tentativi di accesso non autorizzati.
- Audit del sistema. Durante i controlli dei server per conformità agli standard di sicurezza, questi comandi vengono spesso utilizzati per analizzare l'attività degli utenti.
- Diagnostica. Noti che il server è diventato lento? Controlla chi sta facendo cosa lì!
Ora sei pronto a monitorare il tuo sistema come un capo! Non dimenticare che la protezione del sistema inizia con la comprensione di ciò che sta accadendo sotto il cofano.
GO TO FULL VERSION