`
Cosa fa#
last legge /var/log/wtmp e mostra la cronologia di tutti i login riusciti, logout e riavvii del sistema. lastb (last bad) legge /var/log/btmp e mostra i tentativi di login falliti. Entrambi i file sono binari — non si leggono con cat, si usano questi comandi.
Sintassi#
last [opzioni] [utente] sudo lastb [opzioni] [utente]
Comandi essenziali#
| Comando | Flag | Significato flag | Cosa fa |
|---|---|---|---|
last | — | — | Tutti i login riusciti, logout e riavvii |
last barno | — | — | Solo i login dell'utente barno |
last -n 20 | -n | number | Mostra solo gli ultimi 20 eventi |
last -F | -F | Full | Mostra data e ora complete (anno incluso) |
last reboot | — | — | Solo i riavvii del sistema |
sudo lastb | — | — | Tutti i login falliti (richiede sudo) |
sudo lastb -n 20 | -n | number | Ultimi 20 login falliti |
sudo lastb utente | — | — | Login falliti per un utente specifico |
lastlog | — | — | Ultimo login di tutti gli utenti del sistema |
lastlog -u utente | -u | user | Ultimo login di un utente specifico |
Leggere l'output#
last
# barno pts/1 192.168.64.1 Tue Mar 25 00:52 still logged in
# barno pts/0 192.168.64.1 Mon Mar 24 23:52 - 00:41 (00:48)
# reboot system boot Mon Mar 24 18:00 still running
# ^ ^ ^ ^ ^
# utente terminale IP sorgente data/ora login durata o stato
sudo lastb
# pippo ssh:notty 192.168.64.1 Tue Mar 24 23:57 - 23:57 (00:00)
# ^ ^ ^ ^
# utente tipo accesso IP sorgente timestamp tentativowtmp vs btmp vs auth.log#
wtmp btmp auth.log
────────────────── ────────────────── ──────────────────────
login riusciti login falliti tutti gli eventi PAM
logout — sudo, su, adduser...
riavvii — —
binario binario testo
last per leggerlo lastb per leggerlo grep funziona
alterabile da root alterabile da root alterabile da rootDifferenza tra lastb e grep su auth.log#
lastb mostra solo i login falliti in formato tabellare con IP e timestamp. grep "Failed password" /var/log/auth.log mostra le stesse informazioni ma con piu' contesto — incluso il messaggio PAM completo e il tipo di autenticazione tentata. Per un'analisi rapida si usa lastb, per l'analisi forense si usa auth.log.
Combinazioni utili#
# Quanti login falliti in totale?
sudo lastb | wc -l
# IP piu' frequenti nei login falliti
sudo lastb | awk '{print $3}' | sort | uniq -c | sort -rn | head -10
# Login riusciti dell'ultima settimana
last -F | grep "$(date -d '7 days ago' '+%b')"
# Verificare se un utente specifico si e' mai loggato
last testuser
# se non c'e' output → non si e' mai loggato da quando wtmp esiste
# Riavvii recenti — utile per timeline forense
last reboot -FScenario Reale#
Durante l'investigazione sull'utente testuser che ha tentato di cancellarsi:
# 1. Quando si e' loggato per la prima volta?
last testuser -F
# 2. Ha avuto login falliti prima di riuscire ad accedere?
sudo lastb testuser
# 3. Da quale IP si e' connesso?
last testuser | awk '{print $3}' | sort -u
# 4. C'e' stato un riavvio sospetto dopo il suo accesso?
last reboot -F
# Pattern sospetto: molti lastb → poi un last riuscito → poi sudo fallito
# = brute force riuscito seguito da tentativo di escalation/var/log/btmp e /var/log/wtmp sono file binari — cat produce output incomprensibile o danneggia il terminale. Usa sempre lastb e last per leggerli.lastb richiede sudo perche' /var/log/btmp e' leggibile solo da root — le credenziali tentate (anche sbagliate) sono considerate informazioni sensibili.Dove l'ho usato#
- Lab Ubuntu mercoledi' 25 marzo — investigazione utente testuser
- auth-log — usato in parallelo per avere il contesto PAM completo
Note personali#
La combo
sudo lastb | awk '{print $3}' | sort | uniq -c | sort -rn | head -10 e' il modo piu' rapido per vedere gli IP che stanno facendo brute force. Se un IP compare centinaia di volte, e' un candidato immediato per il blocco con ufw deny from IP.Collegato a#
- iam — categoria
- log — categoria
- auth-log — fonte complementare per gli stessi eventi
- who — mostra sessioni attive in questo momento
- journalctl — alternativa per eventi di autenticazione
- pam — genera gli eventi che finiscono in wtmp e btmp




