Cum să utilizați ultima comandă pe Linux

Este esențial să monitorizăm accesul la sistemul nostru Linux. În acest articol, vom explora cum putem verifica cine s-a conectat la computerul nostru, când și de unde, utilizând instrumente specifice.

Fișierul de Jurnal wtmp

Sistemele de operare bazate pe Linux, precum și macOS, sunt recunoscute pentru capacitatea lor extinsă de înregistrare a evenimentelor. Aceste sisteme păstrează jurnale detaliate pentru majoritatea acțiunilor. Unul dintre aceste jurnale, de mare interes pentru noi, este fișierul wtmp. Deși originea exactă a literei „w” este dezbătută, fie că reprezintă „cine” sau „când”, partea „tmp” sugerează natura temporară a informațiilor stocate, sau poate chiar „timpul” evenimentelor.

Fișierul wtmp funcționează ca un registru care capturează și memorează fiecare sesiune de conectare și deconectare. Analizarea acestui jurnal este un pas important în administrarea securității sistemului. Chiar dacă pentru un computer personal de acasă, riscul de securitate nu este la fel de critic, verificarea modului în care este utilizat computerul poate fi foarte interesantă.

Spre deosebire de jurnalele text, wtmp este un fișier binar. Pentru a putea accesa și interpreta datele, avem nevoie de un instrument specializat. Acest instrument este comanda `last`.

Comanda `last`

Comanda `last` extrage datele din jurnalul wtmp și le afișează în terminal. Dacă executați `last` simplu, fără opțiuni suplimentare, veți vedea toate înregistrările stocate în fișierul jurnal.

last

Fiecare înregistrare afișată oferă următoarele informații:

Numele de utilizator Utilizatorul care s-a autentificat în sistem.
Terminalul Terminalul de pe care s-a efectuat conectarea. `:0` indică o conexiune directă la calculator.
Adresa IP Adresa IP a calculatorului de pe care s-a realizat conexiunea.
Timpul de conectare Data și ora la care a avut loc conectarea.
Durata sesiunii Perioada de timp în care utilizatorul a fost conectat.

Ultima linie afișată indică data și ora celei mai vechi sesiuni înregistrate în jurnal.

Înregistrările generate de procesul de reboot al sistemului sunt asociate unui utilizator fictiv „reboot”. Aceste înregistrări conțin versiunea kernel-ului în locul terminalului și indică timpul de funcționare al sistemului în câmpul dedicat duratei sesiunii.

Limitarea Numărului de Linii Afișate

Când folosim comanda `last` fără argumente, aceasta va afișa întregul jurnal, ceea ce poate fi greu de gestionat. Pentru a controla numărul de linii afișate, se poate utiliza opțiunea `-număr`, unde `număr` este numărul de linii dorit. De exemplu, `last -5` va afișa cele mai recente cinci intrări din jurnal.

last -5

Această comandă va afișa primele 5 înregistrări, corespunzătoare celor mai recente sesiuni.

Afișarea Numelor de Rețea

Opțiunea `-d` (DNS) face ca `last` să încerce să transforme adresele IP ale utilizatorilor de la distanță în nume de rețea sau de mașină.

last -d

Nu întotdeauna este posibil ca adresa IP să fie convertită într-un nume de rețea, dar comanda va încerca acest lucru.

Ascunderea Adreselor IP și a Numelor de Rețea

Dacă adresele IP și numele de rețea nu sunt relevante, opțiunea `-R` (fără nume de gazdă) poate fi folosită pentru a elimina această informație din afișare, simplificând rezultatul. Această opțiune este utilă când căutăm tipare generale, dar trebuie evitată când urmărim activități suspecte.

Selectarea Înregistrărilor După Dată

Pentru a vizualiza doar evenimentele de conectare care au avut loc de la o anumită dată, se poate folosi opțiunea `-s` (de la). De exemplu, `last -R -s 2019-05-26` va afișa toate evenimentele începând cu data de 26 mai 2019, ora 00:00.

last -R -s 2019-05-26

Această comandă va afișa înregistrările de conectare începând cu ora 00:00 din ziua specificată, până la cele mai recente înregistrări.

Limitarea Afișării la o Dată de Încheiere

Opțiunea `-t` (până la) permite specificarea unei date de încheiere, afișând înregistrările de conectare care au avut loc într-un interval specificat. Pentru a vedea doar sesiunile care au avut loc pe 26 mai, putem folosi comanda `last -R -s 2019-05-26 -t 2019-05-27`.

last -R -s 2019-05-26 -t 2019-05-27

Această comandă va afișa înregistrările de la ora 00:00 pe 26 până la ora 00:00 pe 27, adică doar sesiunile din 26 mai.

Formate de Oră și Dată

Opțiunile `-s` și `-t` acceptă diferite formate pentru specificarea datelor și orelor. Formatele disponibile includ:

  • AAAAMMDDhhmmss
  • AAAA-LL-ZZ hh:mm:ss
  • AAAA-LL-ZZ hh:mm (secundele setate la 00)
  • AAAA-LL-ZZ (ora setată la 00:00:00)
  • hh:mm:ss (data este setată la astăzi)
  • hh:mm (data setată la astăzi, secundele la 00)
  • acum
  • ieri (ora setată la 00:00:00)
  • astăzi (ora setată la 00:00:00)
  • mâine (ora setată la 00:00:00)
  • +5 min
  • -5 zile

Este important de menționat că nu toate formatele enumerate au funcționat corect în timpul testelor efectuate, în special cele care includeau separatorii ` – ` și ` : `.

De exemplu, comanda de mai jos nu a returnat nici o înregistrare:

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

Dar folosind formatul AAAAMMDDhhmmss, comanda va funcționa corect:

last -R -s 20190526110000 -t 20190527130000

Intervale Relative de Timp

Se pot specifica intervale de timp folosind valori relative, în minute sau zile, față de momentul curent. De exemplu, `last -R -s -2days -t -1days` afișează înregistrările din ultimele două zile, până acum o zi.

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

Utilizarea Ieri, Astăzi și Acum

Cuvintele cheie „ieri” și „astăzi” sunt abrevieri utile pentru datele corespunzătoare. De exemplu, `last -R -s yesterday -t today` va afișa evenimentele de conectare de ieri.

last -R -s yesterday -t today

Atenție, această comandă nu va include nicio înregistrare pentru ziua de azi. Comanda solicită afișarea înregistrărilor de la data de start până la data de încheiere, fără a include datele din data de încheiere.

Opțiunea `now` este prescurtarea pentru „azi, la ora curentă”. Comanda `last -R -s today -t now` va afișa toate evenimentele de conectare de astăzi, până la momentul execuției comenzii.

last -R -s today -t now

Această comandă afișează toate evenimentele de conectare curente, inclusiv cele care sunt încă active.

Opțiunea `-p` (prezent)

Opțiunea `-p` afișează utilizatorii care au fost conectați la un anumit moment dat. Nu este relevant când s-au conectat sau deconectat, ci doar dacă erau conectați la momentul specificat. Dacă ora este specificată fără o dată, se presupune că ne referim la „astăzi”.

last -R -p 09:30

Utilizatorii încă conectați vor fi afișați ca atare, iar dacă sistemul nu a fost repornit, va apărea ca fiind încă în funcțiune.

Folosirea prescurtării `now` cu opțiunea `-p` va oferi o listă a utilizatorilor conectați în momentul execuției comenzii.

last -R -p now

Această funcționalitate poate fi atinsă și mai ușor folosind comanda `who`.

Comanda `lastb`

Comanda `lastb` este un instrument similar cu `last`, dar care extrage informații din jurnalul btmp, unde `b` se referă la „bad” (eșuat). Acest jurnal înregistrează încercările de autentificare eșuate. Comanda `lastb` acceptă aceleași opțiuni ca și `last`, dar toate intrările au o durată de sesiune de `00:00`.

Pentru a utiliza `lastb`, este nevoie de permisiuni de administrator, deci trebuie să folosim `sudo`.

sudo lastb -R

Concluzie

Monitorizarea conexiunilor la sistemul Linux este esențială pentru securitatea acestuia. Utilizând comenzile `last` și `lastb`, putem identifica cine s-a conectat, când și de unde, dar și încercările eșuate de conectare, oferindu-ne un punct de plecare în investigarea activităților suspecte.