Како користити последњу команду на Линуку

Pitate se ko, kada i odakle pristupa vašem Linux sistemu? Bezbednosne prakse nalažu da imate uvid u aktivnosti na vašem računaru. U ovom vodiču, istražićemo kako da dođete do tih informacija.

Datoteka wtmp

Linux, kao i drugi operativni sistemi bazirani na Unix-u, poput macOS-a, pedantno vode evidenciju događaja. Duboko u sistemu, postoji dnevnik za skoro svaku akciju. Datoteka koja nas ovde zanima zove se wtmp. „w“ može značiti „kada“ ili „ko“ – mišljenja se razlikuju. „tmp“ je verovatno skraćenica za „privremeno“, ali može da znači i „vremenska oznaka“.

Ono što je sigurno je da wtmp beleži svaku prijavu i odjavu korisnika. Analiza ovog dnevnika je ključna za bezbednosnu administraciju vašeg sistema. Za kućni računar, možda nije toliko kritično, ali je svakako interesantno pratiti istoriju korišćenja računara.

Za razliku od mnogih tekstualnih log datoteka na Linuxu, wtmp je binarna datoteka. Da biste pristupili podacima, neophodno je koristiti alat koji je za to predviđen.

Taj alat je komanda last.

Komanda „last“

Komanda last čita podatke iz wtmp dnevnika i prikazuje ih u terminalu.

Ako unesete last i pritisnete Enter, prikazaće se svi zapisi iz datoteke.

last

Svaki zapis iz wtmp je predstavljen u terminalu.

S leva na desno, svaki red sadrži:

  • Korisničko ime osobe koja se prijavila.
  • Terminal na koji se prijavila. Vrednost :0 ukazuje na prijavu direktno na Linux računaru.
  • IP adresu mašine sa koje je izvršena prijava.
  • Vreme i datum prijave.
  • Trajanje sesije.

Poslednji red nam pokazuje datum i vreme najstarije zabeležene sesije u dnevniku.

Zapis za prijavu fiktivnog korisnika ‘reboot’ se unosi u dnevnik svaki put kada se računar ponovo pokrene. Polje terminala je zamenjeno verzijom kernela. Trajanje sesije za ove unose predstavlja vreme rada računara.

Prikazivanje Određenog Broja Linija

Samostalno korišćenje komande last prikazuje ceo dnevnik, gde većina sadržaja proleti pored prozora terminala. Vidljiv ostaje najstariji podatak, što verovatno nije ono što želite.

Možete ograničiti prikaz na određeni broj linija. To se postiže unošenjem broja linija u komandnoj liniji, uz crticu. Na primer, za prikaz pet linija, koristite -5, a ne 5:

last -5

Ovo prikazuje prvih pet linija iz dnevnika, što su najnoviji podaci.

Prikazivanje Mrežnih Imena za Udaljene Korisnike

Opcija -d (Domain Name System) nalaže komandi last da pokuša da pretvori IP adrese udaljenih korisnika u nazive mašina ili mreže.

last -d

Nije uvek moguće da last konvertuje IP adresu u naziv mreže, ali će to uraditi kad god je moguće.

Sakrivanje IP Adresa i Mrežnih Imena

Ako vas ne zanima IP adresa ili naziv mreže, koristite opciju -R (no hostnames) da biste sakrili ovo polje.

Pošto ovo daje čistiji izlaz, ova opcija je korišćena u svim sledećim primerima. Ako koristite last da identifikujete neobične ili sumnjive aktivnosti, ne biste trebali sakrivati ovo polje.

Odabir Zapisa Po Datumu

Možete koristiti opciju -s (since) da ograničite izlaz na događaje koji su se desili od određenog datuma.

Na primer, da vidite samo događaje prijavljivanja od 26. maja 2019. godine, koristite:

last -R -s 2019-05-26

Izlaz će prikazati zapise sa događajima prijavljivanja od 00:00 određenog dana, pa do najnovijih zapisa u datoteci.

Pretraga Do Krajnjeg Datuma

Opcija -t (until) omogućava specificiranje krajnjeg datuma. Ovo vam omogućava da izaberete skup zapisa za prijavu koji su se desili između dva interesantna datuma.

Ova komanda zahteva od last da preuzme i prikaže zapise za prijavu od 00:00 (zora) 26. do vremena 00:00 (zora) 27. Ovo sužava listu na sesije koje su se desile samo 26.

Formati Vremena i Datuma

Možete koristiti i vreme, kao i datume sa opcijama -s i -t.

Različiti formati vremena koje možete koristiti su (navodno):

  • GGGGMMDDhhmmss
  • GGGG-MM-DD hh:mm:ss
  • GGGG-MM-DD hh:mm – sekunde su podešene na 00
  • GGGG-MM-DD – vreme je podešeno na 00:00:00
  • hh:mm:ss – datum je postavljen na danas
  • hh:mm – datum će biti postavljen na danas, sekunde na 00
  • now
  • yesterday – vreme je podešeno na 00:00:00
  • today – vreme je podešeno na 00:00:00
  • tomorrow – vreme je podešeno na 00:00:00
  • +5min
  • -5days

Zašto „navodno“?

Drugi i treći format sa liste nisu radili tokom istraživanja za ovaj članak. Ove komande su testirane na Ubuntu, Fedora i Manjaro distribucijama. To su derivati Debian, RedHat i Arch distribucija, respektivno. Ovo pokriva sve glavne porodice Linux distribucija.

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

Kao što vidite, komanda nije vratila nikakve zapise.

Korišćenje prvog formata datuma i vremena sa liste, sa istim datumima i vremenima kao u prethodnom primeru, vraća zapise:

last -R -s 20190526110000 -t 20190527130000

Pretraživanje Po Relativnim Jedinicama

Takođe možete navesti vremenske periode u minutima ili danima, u odnosu na trenutni datum i vreme. Ovde tražimo zapise od pre dva dana do pre jednog dana.

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

Juče, Danas i Sada

Možete koristiti yesterday i today kao skraćenicu za jučerašnji i današnji datum.

last -R -s yesterday -t today

Ovo ne znači da neće prikazati zapise za danas. To je očekivano ponašanje. Komanda traži zapise od početnog datuma do krajnjeg datuma, ne uključujući one unutar krajnjeg datuma.

Opcija now je skraćenica za „danas u trenutno vreme“. Da biste videli događaje prijavljivanja od 00:00 (zora) do trenutka kada izvršite komandu, koristite:

last -R -s today -t now

Ovo će prikazati sve događaje prijavljivanja do trenutnog trenutka, uključujući one koji su još uvek prijavljeni.

Sadašnja Opcija

Opcija -p (present) vam omogućava da saznate ko je bio prijavljen u određenom trenutku.

Nije bitno kada su se prijavili ili odjavili, ali ako su bili prijavljeni u vreme koje navedete, biće uključeni u listu.

Ako navedete vreme bez datuma, last pretpostavlja da mislite na „danas“.

last -R -p 09:30

Korisnici koji su još uvek prijavljeni (očigledno) nemaju vreme za odjavu; oni su opisani kao još uvek prijavljeni. Ako računar nije restartovan od vremena koje ste naveli, biće naveden kao i dalje aktivan.

Ako koristite skraćenicu now sa opcijom -p, možete saznati ko je prijavljen u vreme kada izvršite komandu.

last -R -p now

Ovo je malo komplikovan način da se postigne ono što se može postići korišćenjem komande who.

Komanda „lastb“

Komanda lastb takođe zaslužuje da se pomene. Ona čita podatke iz dnevnika koji se zove btmp. Ovde postoji više saglasnosti oko imena dnevnika. ‘b’ označava loše, ali je ‘tmp’ deo i dalje predmet debate.

lastb prikazuje loše (neuspjele) pokušaje prijavljivanja. Prihvata iste opcije kao i last. Pošto su bili neuspeli pokušaji prijavljivanja, svi unosi će imati trajanje 00:00.

Morate koristiti sudo sa lastb.

sudo lastb -R

Konačna Reč

Korisne informacije su saznati ko se prijavio na vaš Linux računar, kada i odakle. Kombinovanjem ovog sa detaljima neuspešnih pokušaja prijavljivanja, dobijate prve korake u istraživanju sumnjivog ponašanja.