CodeGym /Kursy /Docker SELF /Monitorowanie aktywnych użytkowników i logowań: komendy `...

Monitorowanie aktywnych użytkowników i logowań: komendy `who`, `w`, `last`

Docker SELF
Poziom 5 , Lekcja 4
Dostępny

Monitorowanie aktywnych użytkowników i logowań: komendy who, w, last

1. Dlaczego warto monitorować użytkowników?

Linux, podobnie jak każdy inny serwer (albo nawet wredne pudło z witrynami internetowymi), daje możliwość pracy wielu użytkownikom jednocześnie. Ale co, jeśli twój serwer został zhakowany? Albo jakiś znajomy-złoczyńca w nocy postanowi "przez przypadek" usunąć ważne pliki? Monitorowanie aktywności użytkowników pozwala zrozumieć, kto, kiedy i skąd logował się do systemu, a także jakie procesy wykonywał. To jak kamera wideo, tylko dla twojego serwera.

Podstawowe narzędzia monitoringu

Aby sprawdzić aktywność użytkowników na serwerze, Linux oferuje trzy kluczowe komendy:

  • who — pokazuje obecnych użytkowników pracujących w systemie.
  • w — daje nieco więcej informacji: działania użytkowników i obciążenie systemu.
  • last — przedstawia historię logowań do systemu.

Każda z tych komend ma swoje niuanse i jest używana w różnych scenariuszach. Prześledźmy je na przykładach.


2. Komenda who

Komenda who pokazuje listę użytkowników, którzy są aktualnie zalogowani w systemie. To trochę jak "księga rejestracji", gdzie możesz zajrzeć i zobaczyć, kto teraz jest na serwerze.

who

Przykład wyników komendy:

user1    pts/0        2023-10-20 09:10 (192.168.1.100)
root     pts/1        2023-10-20 09:15 (192.168.1.101)

Co tutaj widzimy:

  • Nazwa użytkownika user1, root.
  • Terminal, przez który są podłączeni pts/0, pts/1.
  • Czas logowania 2023-10-20 09:10.
  • Skąd połączenie 192.168.1.100.

Opcje dla who:

  • who -a: Pokazuje również dane systemowe, takie jak czas uruchomienia, działające procesy i użytkowników.
  • who am i: Pokazuje tylko informacje o użytkowniku, który uruchomił komendę.

3. Polecenie w

Jeśli who po prostu rejestruje, kto się zalogował, to w daje więcej informacji - pokazuje, co aktualnie robi użytkownik. To przydatne, aby zobaczyć, czy zajmuje się czymś pożytecznym, czy czymś, co trzeba natychmiast przerwać.

w

Przykład wyjścia:

10:20:42 up 1 day,  5:12,  2 users,  load average: 0.00, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user1    pts/0    192.168.1.100    09:10    1:00   0.01s  0.01s nano app.py
root     pts/1    192.168.1.101    09:15    2:00   0.02s  0.02s htop

Co się tu dzieje:

  • Górna linia daje informacje o systemie: aktualną godzinę, czas działania serwera, liczbę użytkowników i obciążenie systemu load average.
  • Tabela pokazuje:
    • Imię użytkownika user1, root.
    • Środowisko, przez które użytkownik jest podłączony pts/0, pts/1.
    • Adres IP użytkownika 192.168.1.100.
    • Czas zalogowania do systemu 09:10.
    • Czas bezczynności IDLE.
    • Aktualne zajęcie użytkownika WHAT, na przykład edycję pliku app.py za pomocą nano.

Opcje dla w:

  • w -h: Usuwa nagłówki tabeli.
  • w username: Pokazuje informacje tylko o konkretnym użytkowniku.

4. Komenda last

Jeśli who i w pokazują teraźniejszość, to last pozwala zajrzeć w przeszłość. Ta komenda wyświetla historię wszystkich logowań do systemu. Komenda czyta plik /var/log/wtmp, gdzie zapisywane są wszystkie logowania użytkowników.

last

Przykład wyniku:

user1    pts/0        192.168.1.100    Fri Oct 20 09:10 - 09:30  (00:20)
root     pts/1        192.168.1.101    Fri Oct 20 09:15 - down   (00:15)

Co tutaj widzimy:

  • Nazwa użytkownika user1, root.
  • Terminal pts/0, pts/1.
  • Adres IP lub nazwa hosta 192.168.1.100, 192.168.1.101.
  • Czas logowania Fri Oct 20 09:10.
  • Czas wylogowania 09:30 i całkowity czas sesji 00:20.

Opcje dla last:

  • last -n 10: Pokazuje tylko ostatnie 10 zapisów.
  • last username: Historia logowań dla konkretnego użytkownika.
  • last reboot: Pokazuje, kiedy serwer był restartowany.

5. Przykład praktyczny: analiza aktywności użytkowników

Wyobraźmy sobie, że chcesz sprawdzić, kto pracował na serwerze w nocy, aby upewnić się, że nie działo się nic podejrzanego. Zacznijmy od sprawdzenia obecnych użytkowników:

who

Teraz sprawdźmy, czym się zajmują:

w

Jeśli zauważysz coś dziwnego (np. nieznany proces), musisz sprawdzić, kto logował się w nocy. Użyjemy do tego:

last

Odszukajmy zapisy dla konkretnego użytkownika, który zwrócił naszą uwagę:

last user1

Jeśli widzisz coś nietypowego, na przykład logowanie z nieznanego IP, musisz podjąć działania: ograniczyć dostęp, włączyć uwierzytelnianie dwuskładnikowe lub zablokować użytkownika.


6. Cechy szczególne i typowe błędy

Podczas pracy z narzędziami monitorowania warto pamiętać, że:

  1. Plik logów może być wyczyszczony. Jeśli ktoś złośliwie usunął wpisy z /var/log/wtmp, polecenie last nic nie pokaże. To jeden z powodów, dla których warto regularnie tworzyć kopie zapasowe logów lub przesyłać je na zdalny serwer.

  2. Ułatwianie analizy wyników. Czasami wyjście poleceń może być zbyt obszerne (na przykład, gdy jest wielu użytkowników). Używaj filtrów, takich jak grep, aby znaleźć potrzebne informacje:

    last | grep user1
    
  3. Zależność od ustawień systemu. Niektóre systemy mogą nie prowadzić logów logowań, jeśli ta opcja jest wyłączona w ustawieniach. Upewnij się, że /var/log/wtmp jest regularnie aktualizowany.

Jak wykorzystać tę wiedzę w praktyce?

  • Administrowanie serwerami. Na przykład, jesteś administratorem firmy i musisz monitorować bezpieczeństwo systemu, żeby nikt przypadkowo albo celowo nie "zepsuł wszystkiego".
  • Wykrywanie zagrożeń. Narzędzia monitorujące pomogą ci wykryć próby nieautoryzowanego dostępu.
  • Audyt systemu. Podczas sprawdzania serwerów pod kątem zgodności z normami bezpieczeństwa te polecenia często wykorzystuje się do analizy aktywności użytkowników.
  • Diagnostyka. Zauważasz, że serwer zwolnił? Zobacz, kto i co tam robi!

Teraz jesteś gotów monitorować swój system jak szef! Nie zapominaj, że ochrona systemu zaczyna się od zrozumienia, co dzieje się pod jego maską.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION