CodeGym /Corsi /Docker SELF /Monitoraggio degli utenti attivi e accessi: comandi `who`...

Monitoraggio degli utenti attivi e accessi: comandi `who`, `w`, `last`

Docker SELF
Livello 5 , Lezione 4
Disponibile

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 file app.py utilizzando nano.

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 sessione 00: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:

  1. Il file dei log può essere cancellato. Se qualcuno ha rimosso intenzionalmente i record da /var/log/wtmp, il comando last non mostrerà nulla. Questa è una delle ragioni per cui è importante fare regolarmente backup dei log o inviarli a un server remoto.

  2. 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
    
  3. 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.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION