Jak korzystać z ostatniego polecenia w systemie Linux

Kto, kiedy i skąd? Dobre praktyki bezpieczeństwa mówią, że powinieneś wiedzieć, kto uzyskuje dostęp do twojego komputera z Linuksem. Pokażemy Ci, jak to zrobić.

Plik wtmp

Linux i inne systemy operacyjne typu Unix, takie jak MacOS, są bardzo dobre w rejestrowaniu. Gdzieś w trzewiach systemu znajduje się dziennik zawierający prawie wszystko, o czym możesz pomyśleć. Plik dziennika, który nas interesuje, nazywa się wtmp. „W” może oznaczać „kiedy” lub „kto” – nikt się z tym nie zgadza. Część „tmp” prawdopodobnie oznacza „tymczasowy”, ale może też oznaczać „znacznik czasu”.

Wiemy, że wtmp to dziennik, który przechwytuje i rejestruje każde zdarzenie logowania i wylogowania. Przeglądanie danych w dzienniku wtmp jest podstawowym krokiem w podejmowaniu bezpiecznych podejść do obowiązków administratora systemu. W przypadku typowego komputera rodzinnego może to nie być tak krytyczne z punktu widzenia bezpieczeństwa, ale warto przejrzeć wspólne wykorzystanie komputera.

W przeciwieństwie do wielu tekstowych plików dziennika w systemie Linux wtmp jest plikiem binarnym. Aby uzyskać dostęp do zawartych w nim danych, musimy użyć narzędzia zaprojektowanego do tego zadania.

To narzędzie jest ostatnim poleceniem.

Ostatnia komenda

Ostatnie polecenie odczytuje dane z dziennika wtmp i wyświetla je w oknie terminala.

Jeśli wpiszesz ostatni i naciśniesz Enter wyświetlić wszystkie rekordy z pliku dziennika.

last

ostatnie polecenie w oknie terminala

Każdy rekord z wtmp jest wyświetlany w oknie terminala.

Od lewej do prawej każdy wiersz zawiera:

Nazwa użytkownika zalogowanej osoby.
Terminal, do którego byli zalogowani. Wpis terminala: 0 oznacza, że ​​byli zalogowani na samym komputerze z systemem Linux.
Adres IP komputera, na którym byli zalogowani.
Data i godzina logowania.
Czas trwania sesji.

wyjście z ostatniego w oknie terminala

Ostatnia linia podaje nam datę i godzinę najwcześniejszej zarejestrowanej sesji w dzienniku.

Wpis logowania do „ponownego uruchomienia” fikcyjnego użytkownika jest wprowadzany do dziennika przy każdym uruchomieniu komputera. Pole terminala zostanie zastąpione wersją jądra. Czas trwania sesji zalogowania dla tych wpisów reprezentuje czas działania komputera.

Wyświetlanie określonej liczby wierszy

Użycie ostatniego polecenia samodzielnie tworzy zrzut całego dziennika, przy czym większość z niego przeskakuje przez okno terminala. Część, która pozostaje widoczna, to najwcześniejsze dane w dzienniku. To prawdopodobnie nie to, co chciałeś zobaczyć.

Możesz powiedzieć ostatniemu, aby uzyskać określoną liczbę wierszy wyniku. Zrób to, podając liczbę linii, które chcesz w wierszu poleceń. Zwróć uwagę na myślnik. Aby zobaczyć pięć linii, musisz wpisać -5, a nie 5:

last -5

ostatnie -5 w oknie terminala

Daje to pierwsze pięć wierszy z dziennika, czyli najnowsze dane.

pierwsze pięć wierszy z twmp w oknie terminala

Wyświetlanie nazw sieci dla użytkowników zdalnych

Opcja -d (Domain Name System) informuje ostatnią, że należy spróbować przekształcić adresy IP użytkowników zdalnych w nazwę komputera lub sieci.

last -d

ostatnie -d w oknie terminala

Ostateczna konwersja adresu IP na nazwę sieci nie zawsze jest możliwa, ale polecenie zrobi to, gdy będzie to możliwe.

wyjście z ostatniego -d w oknie terminala

Ukrywanie adresów IP i nazw sieciowych

Jeśli nie interesuje Cię adres IP lub nazwa sieci, użyj opcji -R (brak nazwy hosta), aby pominąć to pole.

ostatnia -R w oknie terminala

Ponieważ daje to ładniejszy wynik bez brzydkich zawijania, ta opcja została użyta we wszystkich poniższych przykładach. Gdybyś używał ostatniego do próby zidentyfikowania nietypowej lub podejrzanej aktywności, nie pomijałbyś tego pola.

wyjście z ostatniego -R w oknie terminala

Wybieranie rekordów według daty

Możesz użyć opcji -s (od), aby ograniczyć dane wyjściowe do wyświetlania tylko zdarzeń logowania, które miały miejsce od określonej daty.

Jeśli chcesz zobaczyć tylko zdarzenia logowania, które miały miejsce od 26 maja 2019 r., Użyj następującego polecenia:

last -R -s 2019-05-26

ostatnie -R -s 2019-05-26 w oknie terminala

Dane wyjściowe zawierają rekordy ze zdarzeniami logowania, które miały miejsce od godziny 00:00 określonego dnia do najnowszych rekordów w pliku dziennika.

Wyjście z ostatnich -R -s 2019-05-26 w oknie terminala

Wyszukiwanie do daty zakończenia

Możesz użyć opcji -t (do), aby określić datę zakończenia. Pozwala to na wybranie zestawu rekordów logowania, które miały miejsce między dwoma interesującymi nas datami.

last -R -s 2019-05-26 -t 2019-05-27 w oknie terminala

To polecenie żąda od ostatniego pobrania i wyświetlenia zapisów logowania od 00:00 (świt) 26 dnia do godziny 00:00 (świt) 27 dnia. To zawęża listę do sesji logowania, które miały miejsce tylko 26 dnia.

Wyjście z ostatnich -R -s 2019-05-26 -t 2019-05-27 w oknie terminala

Formaty czasu i daty

Możesz używać zarówno dat, jak i godzin z opcjami -s i -t.

Różne formaty czasu, których można używać z ostatnimi opcjami używającymi dat i godzin, to (rzekomo):

RRRRMMDDhhmmss
RRRR-MM-DD gg: mm: ss
RRRR-MM-DD hh: mm – sekundy są ustawione na 00
RRRR-MM-DD – czas ustawiony na 00:00:00
gg: mm: ss – data jest ustawiona na dzisiaj
hh: mm – data zostanie ustawiona na dzisiaj, sekundy na 00
teraz
wczoraj – czas jest ustawiony na 00:00:00
dzisiaj – godzina jest ustawiona na 00:00:00
jutro – godzina jest ustawiona na 00:00:00
+ 5min
-5 dni

Dlaczego „rzekomo”?

Drugi i trzeci format na liście nie działały podczas badania do tego artykułu. Te polecenia zostały przetestowane w dystrybucjach Ubuntu, Fedora i Manjaro. Są to odpowiednio pochodne dystrybucji Debian, RedHat i Arch. To obejmuje wszystkie główne rodziny dystrybucji Linuksa.

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

Dane wyjściowe nieudanego ostatniego polecenia w oknie terminala

Jak widać, polecenie nie zwróciło żadnych rekordów.

Użycie pierwszego formatu daty i godziny z listy z tą samą datą i godziną co poprzednie polecenie powoduje zwrócenie rekordów:

last -R -s 20190526110000 -t 20190527130000

last -R -s 20190526110000 -t 20190527130000 w oknie terminala

Wyszukiwanie według jednostek względnych

Możesz również określić okresy, które są mierzone w minutach lub dniach w stosunku do bieżącej daty i godziny. Tutaj prosimy o nagrania sprzed dwóch dni aż do jednego dnia.

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

last -R -s -2days -t -1days w oknie terminala

Wczoraj, dziś i teraz

Możesz użyć wczoraj i jutro jako skrótu dla wczorajszej i dzisiejszej daty.

last -R -s yesterday -t today

ostatnia -R -s wczoraj -t dzisiaj w oknie terminala

Nie, żeby to nie obejmowało żadnych zapisów na dziś. To jest oczekiwane zachowanie. Polecenie prosi o rekordy od daty rozpoczęcia do daty zakończenia. Nie obejmuje rekordów z daty zakończenia.

Wyjście z ostatniego -R -s wczoraj -t dzisiaj w oknie terminala

Opcja „teraz” to skrót od „dzisiaj, w chwili obecnej”. Aby zobaczyć zdarzenia logowania, które miały miejsce od 00:00 (świtu) do czasu wydania polecenia, użyj tego polecenia:

last -R -s today -t now

ostatnie -R -s dzisiaj - t teraz w oknie terminala

Spowoduje to wyświetlenie wszystkich zdarzeń logowania do chwili obecnej, w tym tych, które są nadal zalogowane.

wyjście z ostatniego -R -s dzisiaj -t teraz

Obecna opcja

Opcja -p (obecna) umożliwia sprawdzenie, kto był zalogowany w danym momencie.

Nie ma znaczenia, kiedy się zalogowali lub wylogowali, ale jeśli byli zalogowani na komputerze w określonym przez Ciebie czasie, zostaną uwzględnieni na liście.

Jeśli określisz czas bez daty ostatniej, zakładasz, że masz na myśli „dzisiaj”.

last -R -p 09:30

ostatnie -R -p 09:30 w oknie terminala

Osoby, które są nadal zalogowane (oczywiście), nie mają czasu na wylogowanie; są opisywane jako nadal zalogowane. Jeśli komputer nie został ponownie uruchomiony od określonego czasu, będzie wyświetlany jako nadal uruchomiony.

Wyjście z ostatniego -R -p 09:30

Jeśli użyjesz skrótu now z opcją -p (obecny), możesz dowiedzieć się, kto jest zalogowany w momencie, gdy wydajesz polecenie.

last -R -p now

last -R -p teraz w oknie terminala

To dość skomplikowany sposób na osiągnięcie tego, co można osiągnąć za pomocą polecenia who.

Wyjście z last -R -p teraz w oknie terminala

Polecenie lastb

Polecenie lastb zasługuje na wzmiankę. Odczytuje dane z dziennika o nazwie btmp. Istnieje nieco większa zgoda co do tej nazwy dziennika. „B” oznacza zły, ale część „tmp” jest nadal przedmiotem dyskusji.

lastb wyświetla złe (nieudane) próby logowania. Akceptuje te same opcje, co ostatnia. Ponieważ były to nieudane próby logowania, wszystkie wpisy będą miały czas trwania 00:00.

Musisz użyć sudo z lastb.

sudo lastb -R

lastb - R w oknie terminala

Ostatnie słowo w tej sprawie

Wiedza o tym, kto zalogował się do komputera z systemem Linux oraz kiedy i skąd jest przydatna. Połączenie tego ze szczegółami nieudanych prób logowania zapewnia pierwsze kroki w badaniu podejrzanego zachowania.