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.