Cum să utilizați ultima comandă pe Linux

Cine, când și de unde? Bunele practici de securitate spun că ar trebui să știți cine v-a accesat computerul Linux. Vă arătăm cum.

Fișierul wtmp

Linux și alte sisteme de operare asemănătoare Unix, cum ar fi MacOS, sunt foarte bune la înregistrare. Undeva în măruntaiele sistemului, există un jurnal pentru aproape tot ce vă puteți gândi. Fișierul jurnal de care suntem interesați se numește wtmp. „W” ar putea reprezenta „când” sau „cine” – nimeni nu pare să fie de acord. Partea „tmp” înseamnă probabil „temporar”, dar ar putea reprezenta și „timpul de timp”.

Ceea ce știm este că wtmp este un jurnal care captează și înregistrează fiecare eveniment de conectare și deconectare. Revizuirea datelor din jurnalul wtmp este un pas de bază în adoptarea unei abordări de securitate a sarcinilor de administrator al sistemului. Pentru un computer obișnuit de familie, s-ar putea să nu fie atât de critic din punct de vedere al securității, dar este interesant să puteți revizui utilizarea combinată a computerului.

Spre deosebire de multe dintre fișierele jurnal bazate pe text din Linux, wtmp este un fișier binar. Pentru a accesa datele din acesta, trebuie să folosim un instrument conceput pentru acea sarcină.

Acest instrument este ultima comandă.

Ultima Comanda

Ultima comandă citește datele din jurnalul wtmp și le afișează într-o fereastră de terminal.

Dacă tastați ultima dată și apăsați Enter, va fi afișează toate înregistrările din fișierul jurnal.

last

Fiecare înregistrare de la wtmp este afișată în fereastra terminalului.

De la stânga la dreapta, fiecare linie conține:

Numele de utilizator al persoanei care s-a autentificat.
Terminalul la care s-au conectat. O intrare de terminal de :0 înseamnă că au fost autentificați pe computerul Linux însuși.
Adresa IP a mașinii la care s-au conectat.
Timpul de conectare și data.
Durata sesiunii.

Ultima linie ne spune data și ora celei mai vechi sesiuni înregistrate în jurnal.

O intrare de conectare pentru utilizatorul fictiv „reboot” este introdusă în jurnal de fiecare dată când computerul este pornit. Câmpul terminal este înlocuit cu versiunea de kernel. Durata sesiunii conectate pentru aceste intrări reprezintă timpul de funcționare al computerului.

Afișarea unui număr specific de linii

Utilizarea ultimei comenzi pe cont propriu produce o descărcare a întregului jurnal, cea mai mare parte a acestuia trecând prin fereastra terminalului. Porțiunea care rămâne vizibilă este cele mai vechi date din jurnal. Probabil că nu asta ai vrut să vezi.

Puteți spune ultimul să vă ofere un anumit număr de linii de ieșire. Faceți acest lucru furnizând numărul de linii pe care îl doriți pe linia de comandă. Observați cratima. Pentru a vedea cinci rânduri, trebuie să tastați -5 și nu 5:

last -5

Aceasta oferă primele cinci linii din jurnal, care sunt cele mai recente date.

Se afișează nume de rețea pentru utilizatorii de la distanță

Opțiunea -d (Domain Name System) îi spune ultimului să încerce să rezolve adresele IP ale utilizatorilor la distanță într-un nume de mașină sau de rețea.

last -d

Nu este întotdeauna posibil ca ultimul să convertească adresa IP într-un nume de rețea, dar comanda va face acest lucru atunci când poate.

Ascunderea adreselor IP și a numelor de rețea

Dacă nu sunteți interesat de adresa IP sau numele rețelei, utilizați opțiunea -R (fără nume de gazdă) pentru a suprima acest câmp.

Deoarece aceasta oferă o ieșire mai ordonată, fără învelișuri urâte, această opțiune a fost utilizată în toate exemplele următoare. Dacă ați folosi ultimul pentru a încerca să identificați activități neobișnuite sau suspecte, nu ați suprima acest câmp.

Selectarea înregistrărilor după dată

Puteți folosi opțiunea -s (de când) pentru a restricționa ieșirea pentru a afișa numai evenimentele de conectare care au avut loc de la o anumită dată.

Dacă doriți să vedeți doar evenimentele de conectare care au avut loc din 26 mai 2019, ați folosi următoarea comandă:

last -R -s 2019-05-26

Ieșirea arată înregistrări cu evenimente de conectare care au avut loc de la ora 00:00 în ziua specificată, până la cele mai noi înregistrări din fișierul jurnal.

Căutare până la o dată de încheiere

Puteți folosi -t (până) pentru a specifica o dată de încheiere. Acest lucru vă permite să selectați un set de înregistrări de conectare care au avut loc între două date de interes.

Această comandă cere ultimul să preia și să afișeze înregistrările de conectare de la 00:00 (zorii) pe 26 până la ora 00:00 (zori) pe 27. Acest lucru restrânge lista la sesiunile de conectare care au avut loc numai pe 26.

Formate de oră și dată

Puteți utiliza orele, precum și datele cu opțiunile -s și -t.

Diferitele formate de oră care pot fi utilizate cu ultimele opțiuni care utilizează date și ore sunt (se presupune că):

AAAAMMDDhhmmss
AAAA-LL-ZZ hh:mm:ss
AAAA-LL-ZZ hh:mm – secundele sunt setate la 00
AAAA-LL-ZZ – ora este setată la 00:00:00
hh:mm:ss – data este setată astăzi
hh:mm – data va fi setată la astăzi, secunde la 00
acum
ieri – ora este setată la 00:00:00
astăzi – ora este setată la 00:00:00
mâine – ora este setată la 00:00:00
+5 min
-5 zile

De ce „pretins”?

Al doilea și al treilea format din listă nu au funcționat în timpul cercetării pentru acest articol. Aceste comenzi au fost testate pe distribuțiile Ubuntu, Fedora și Manjaro. Acestea sunt derivate ale distribuțiilor Debian, RedHat și, respectiv, Arch. Aceasta acoperă toate familiile principale de distribuție Linux.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

După cum puteți vedea, comanda nu a returnat deloc înregistrări.

Folosind primul format de dată și oră din listă cu aceeași dată și ore ca și comanda anterioară, returnează înregistrări:

last -R -s 20190526110000 -t 20190527130000

Căutarea după unități relative

De asemenea, specificați perioade de timp care sunt măsurate în minute sau zile, în raport cu data și ora curente. Aici cerem înregistrări de acum două zile până acum o zi.

last -R -s -2days -t -1days

Ieri, Azi și Acum

Puteți folosi ziua de ieri și mâine ca prescurtare pentru data de ieri și data de azi.

last -R -s yesterday -t today

Nu că aceasta nu va include nicio înregistrare pentru astăzi. Acesta este comportamentul așteptat. Comanda cere înregistrări de la data de început până la data de încheiere. Nu include înregistrări din data de încheiere.

Opțiunea acum este prescurtarea pentru „azi la ora curentă”. Pentru a vedea evenimentele de conectare care au avut loc de la 00:00 (zorii) până la ora la care lansați comanda, utilizați această comandă:

last -R -s today -t now

Aceasta va afișa toate evenimentele de conectare chiar în prezent, inclusiv cele care sunt încă conectate.

Prezenta Opțiune

Opțiunea -p (prezent) vă permite să aflați cine a fost conectat la un moment dat.

Nu contează când s-au conectat sau s-au deconectat, dar dacă s-au conectat la computer la momentul specificat, vor fi incluse în listă.

Dacă specificați o oră fără dată, se presupune că vă referiți la „azi”.

last -R -p 09:30

Persoanele care sunt încă autentificate (evident) nu au timp de deconectare; sunt descrise ca fiind încă conectate . Dacă computerul nu a fost repornit de la ora specificată, acesta va fi afișat ca fiind încă în funcțiune.

Dacă utilizați prescurtarea acum cu opțiunea -p (prezent), puteți afla cine este conectat în momentul în care lansați comanda.

last -R -p now

Acesta este un mod oarecum lung de a realiza ceea ce poate fi realizat folosind comanda who.

Ultima comandă

Comanda lastb merită menționată. Citește datele dintr-un jurnal numit btmp. Există puțin mai mult consens cu privire la acest nume de jurnal. „B” înseamnă rău, dar partea „tmp” este încă supusă dezbaterii.

lastb listează încercările de conectare proaste (eșuate). Acceptă aceleași opțiuni ca ultima. Deoarece au fost încercări de conectare eșuate, toate intrările vor avea o durată de 00:00.

Trebuie să utilizați sudo cu lastb.

sudo lastb -R

Ultimul Cuvânt despre materie

Să știi cine s-a conectat la computerul tău Linux și când și de unde sunt informații utile. Combinarea acestui lucru cu detaliile încercărilor eșuate de conectare vă oferă primii pași în investigarea comportamentului suspect.