Chi, quando e da dove? Buone pratiche di sicurezza dicono che dovresti sapere chi ha accesso al tuo computer Linux. Ti mostriamo come.
Sommario:
Il file wtmp
Linux e altri sistemi operativi simili a Unix come MacOS sono molto bravi a registrare. Da qualche parte nelle viscere del sistema, c’è un registro per quasi tutto ciò a cui puoi pensare. Il file di registro che ci interessa si chiama wtmp. La “w” potrebbe significare “quando” o “chi”: nessuno sembra essere d’accordo. La parte “tmp” probabilmente sta per “temporaneo”, ma potrebbe anche stare per “timestamp”.
Quello che sappiamo è che wtmp è un registro che acquisisce e registra ogni evento di accesso e disconnessione. La revisione dei dati nel registro wtmp è un passaggio fondamentale per adottare un approccio orientato alla sicurezza ai compiti di amministratore del sistema. Per un tipico computer di famiglia, potrebbe non essere così critico dal punto di vista della sicurezza, ma è interessante essere in grado di rivedere il tuo utilizzo combinato del computer.
A differenza di molti dei file di registro basati su testo in Linux, wtmp è un file binario. Per accedere ai dati al suo interno, dobbiamo utilizzare uno strumento progettato per tale compito.
Quello strumento è l’ultimo comando.
L’ultimo comando
L’ultimo comando legge i dati dal registro wtmp e li visualizza in una finestra di terminale.
Se digiti l’ultimo e premi Invio, lo farà visualizzare tutti i record dal file di registro.
last
Ogni record da wtmp viene visualizzato nella finestra del terminale.
Da sinistra a destra, ogni riga contiene:
Il nome utente della persona che ha effettuato l’accesso.
Il terminale a cui erano collegati. Una voce di terminale di: 0 significa che sono stati registrati sul computer Linux stesso.
L’indirizzo IP della macchina a cui sono stati collegati.
L’ora e la data di accesso.
La durata della sessione.
L’ultima riga ci dice la data e l’ora della prima sessione registrata nel registro.
Una voce di accesso per l’utente fittizio “riavvio” viene inserita nel registro ogni volta che il computer viene avviato. Il campo del terminale viene sostituito con la versione del kernel. La durata della sessione di accesso per queste voci rappresenta il tempo di attività del computer.
Visualizzazione di un numero specifico di righe
L’uso dell’ultimo comando da solo produce un dump dell’intero registro con la maggior parte di esso che sfreccia oltre la finestra del terminale. La parte che rimane visibile sono i primi dati nel registro. Questo probabilmente non è quello che volevi vedere.
Puoi dire a last per darti un numero specifico di righe di output. Fallo fornendo il numero di righe che desideri sulla riga di comando. Nota il trattino. Per vedere cinque righe, è necessario digitare -5 e non 5:
last -5
Questo fornisce le prime cinque righe del registro, che sono i dati più recenti.
Visualizzazione dei nomi di rete per gli utenti remoti
L’opzione -d (Domain Name System) indica a last di provare a risolvere gli indirizzi IP degli utenti remoti in un nome di macchina o di rete.
last -d
Non è sempre possibile per ultimo convertire l’indirizzo IP in un nome di rete, ma il comando lo farà quando possibile.
Nascondere indirizzi IP e nomi di rete
Se non sei interessato all’indirizzo IP o al nome della rete, utilizza l’opzione -R (nessun nome host) per eliminare questo campo.
Poiché questo fornisce un output più ordinato senza brutti involucri, questa opzione è stata utilizzata in tutti gli esempi seguenti. Se si utilizza l’ultimo per tentare di identificare attività insolite o sospette, non si eliminerà questo campo.
Selezione dei record per data
È possibile utilizzare l’opzione -s (dal) per limitare l’output in modo da mostrare solo gli eventi di accesso che si sono verificati a partire da una data specifica.
Se volessi vedere solo gli eventi di accesso che hanno avuto luogo dal 26 maggio 2019, dovresti utilizzare il seguente comando:
last -R -s 2019-05-26
L’output mostra i record con eventi di accesso che si sono verificati dall’ora 00:00 del giorno specificato, fino ai record più recenti nel file di registro.
Ricerca fino a una data di fine
È possibile utilizzare -t (fino a) per specificare una data di fine. Ciò consente di selezionare una serie di record di accesso avvenuti tra due date di interesse.
Questo comando chiede per ultimo di recuperare e visualizzare i record di accesso dalle 00:00 (alba) del 26 fino alle 00:00 (alba) del 27. Questo restringe l’elenco alle sessioni di accesso che si sono svolte solo il 26.
Formati di data e ora
È possibile utilizzare orari e date con le opzioni -s e -t.
I diversi formati di ora che possono essere utilizzati con le ultime opzioni che utilizzano date e orari sono (presumibilmente):
AAAAMMGGhhmmss
AAAA-MM-GG hh: mm: ss
AAAA-MM-GG hh: mm – i secondi sono impostati su 00
AAAA-MM-GG: l’ora è impostata su 00:00:00
hh: mm: ss – la data è impostata su oggi
hh: mm – la data verrà impostata su oggi, i secondi su 00
adesso
ieri – l’ora è impostata su 00:00:00
oggi – l’ora è impostata su 00:00:00
domani – l’ora è impostata su 00:00:00
+ 5min
-5 giorni
Perché “presumibilmente”?
Il secondo e il terzo formato nell’elenco non hanno funzionato durante la ricerca per questo articolo. Questi comandi sono stati testati su distribuzioni Ubuntu, Fedora e Manjaro. Questi sono derivati delle distribuzioni Debian, RedHat e Arch, rispettivamente. Questo copre tutte le principali famiglie di distribuzione Linux.
last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00
Come puoi vedere, il comando non ha restituito alcun record.
L’utilizzo del primo formato di data e ora dall’elenco con la stessa data e ora del comando precedente restituisce i record:
last -R -s 20190526110000 -t 20190527130000
Ricerca per unità relative
Si specificano anche periodi di tempo misurati in minuti o giorni, relativi alla data e all’ora correnti. Qui stiamo chiedendo record da due giorni fa fino a un giorno fa.
last -R -s -2days -t -1days
Ieri, oggi e adesso
Puoi usare ieri e domani come abbreviazione per la data di ieri e la data di oggi.
last -R -s yesterday -t today
Non che questo non includerà alcun record per oggi. Questo è il comportamento previsto. Il comando richiede record dalla data di inizio fino alla data di fine. Non include record entro la data di fine.
L’opzione now è l’abbreviazione di “today at the current time”. Per vedere gli eventi di login che si sono verificati dalle 00:00 (alba) fino all’ora in cui hai emesso il comando usa questo comando:
last -R -s today -t now
Questo mostrerà tutti gli eventi di accesso fino al momento attuale, compresi quelli che sono ancora collegati.
La presente opzione
L’opzione -p (presente) ti consente di scoprire chi è stato connesso in un determinato momento.
Non importa quando si sono collegati o scollegati, ma se sono stati connessi al computer all’ora specificata, verranno inclusi nell’elenco.
Se specifichi un’ora senza una data ultima, si presume che tu intenda “oggi”.
last -R -p 09:30
Le persone che sono ancora loggate (ovviamente) non hanno un tempo di logout; sono descritti come ancora loggati. Se il computer non è stato riavviato dall’ora specificata, verrà elencato come ancora in esecuzione.
Se usi la scorciatoia now con l’opzione -p (present) puoi scoprire chi è loggato nel momento in cui emetti il comando.
last -R -p now
Questo è un modo un po ‘prolisso per ottenere ciò che può essere ottenuto utilizzando il comando who.
Il comando lastb
Il comando lastb merita di essere menzionato. Legge i dati da un registro chiamato btmp. C’è un po ‘più di consenso su questo nome di registro. La “b” sta per cattivo, ma la parte “tmp” è ancora oggetto di dibattito.
lastb elenca i tentativi di accesso non validi (falliti). Accetta le stesse opzioni dell’ultimo. Poiché erano tentativi di accesso non riusciti, tutte le voci avranno una durata di 00:00.
Devi usare sudo con lastb.
sudo lastb -R
L’ultima parola sulla questione
Sapere chi ha effettuato l’accesso al tuo computer Linux, e quando e da dove sono utili informazioni. La combinazione di questo con i dettagli dei tentativi di accesso non riusciti fornisce i primi passi per indagare su comportamenti sospetti.