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ę plikuapp.py
za pomocąnano
.
- Imię użytkownika
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 sesji00: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:
Plik logów może być wyczyszczony. Jeśli ktoś złośliwie usunął wpisy z
/var/log/wtmp
, polecenielast
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.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
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ą.
GO TO FULL VERSION