Systemy logowania i audytu w systemie Linux
W systemach Linux logowanie zdarzeń i audyt bezpieczeństwa stanowią jeden z kluczowych mechanizmów kontroli i diagnostyki. Dzienniki systemowe pozwalają śledzić działanie usług, wykrywać błędy oraz analizować aktywność użytkowników. W tym artykule omówię podstawowe elementy systemu logów, ich strukturę, konfigurację oraz narzędzia audytu dostępne w środowisku Linux.
1. Czym jest logowanie systemowe
Logowanie w systemie Linux polega na zapisywaniu zdarzeń i komunikatów generowanych przez jądro, usługi, aplikacje oraz użytkowników. Dzięki logom możliwe jest diagnozowanie problemów, kontrolowanie dostępu oraz odtwarzanie historii zdarzeń systemowych.
Najczęściej spotykane typy logów to:
- logi systemowe – dotyczą działania jądra i usług systemowych,
- logi aplikacyjne – generowane przez serwery i programy,
- logi bezpieczeństwa – rejestrujące zdarzenia autoryzacji i dostępu,
- logi audytowe – służące do śledzenia działań użytkowników i procesów.
2. Struktura katalogu /var/log
Wszystkie najważniejsze logi systemowe znajdują się w katalogu /var/log. Każdy plik logu odpowiada określonej usłudze lub grupie zdarzeń.
Najczęściej używane pliki logów:
- /var/log/syslog – ogólne komunikaty systemowe (Ubuntu, Debian),
- /var/log/messages – komunikaty jądra i usług (Red Hat, CentOS),
- /var/log/auth.log – logi związane z autoryzacją i logowaniem,
- /var/log/secure – odpowiednik auth.log w systemach Red Hat,
- /var/log/dmesg – komunikaty startowe jądra,
- /var/log/boot.log – przebieg uruchamiania systemu,
- /var/log/faillog – nieudane próby logowania,
- /var/log/audit/audit.log – logi audytowe generowane przez usługę auditd.
3. System rsyslog
W większości współczesnych dystrybucji Linux domyślnym systemem logowania jest rsyslog. Jest to następca starszego syslogd, oferujący filtrowanie, formatowanie i zdalne wysyłanie logów.
Plik konfiguracyjny znajduje się w: /etc/rsyslog.conf oraz w katalogu /etc/rsyslog.d/.
Przykładowa reguła zapisu logów:
auth,authpriv.* /var/log/auth.log
mail.* -/var/log/mail.log
*.info;mail.none;authpriv.none;cron.none /var/log/syslog
Każda linia określa źródło logów (facility), poziom ważności (priority) oraz miejsce zapisu.
4. Poziomy ważności logów
W systemie syslog i rsyslog stosowany jest standardowy zestaw poziomów ważności:
- emerg – sytuacja krytyczna (system bezużyteczny),
- alert – konieczna natychmiastowa reakcja,
- crit – poważny błąd,
- err – błąd programu lub procesu,
- warning – ostrzeżenie,
- notice – normalne, ale istotne zdarzenie,
- info – informacja,
- debug – szczegóły diagnostyczne.
Ustalanie odpowiedniego poziomu ważności pozwala na selektywne gromadzenie logów i unikanie nadmiernego obciążenia systemu.
5. Przeglądanie logów systemowych
Do przeglądania logów służą proste narzędzia tekstowe, takie jak:
- cat, less, grep – do wyszukiwania i filtrowania zawartości,
- tail -f – do bieżącego śledzenia logów,
- journalctl – do analizy logów w systemd.
Przykłady:
sudo tail -f /var/log/syslog
sudo grep „error” /var/log/auth.log
sudo journalctl -xe
Polecenie journalctl umożliwia filtrowanie logów według usług, jednostek systemd lub zakresów czasu.
6. System journalctl i journald
W dystrybucjach wykorzystujących systemd logi są obsługiwane przez usługę systemd-journald. Dane przechowywane są w postaci binarnej w katalogu /var/log/journal/.
Podstawowe przykłady użycia:
- Wyświetlanie wszystkich logów – journalctl
- Logi z ostatniego uruchomienia – journalctl -b
- Logi konkretnej usługi – journalctl -u ssh
- Logi od określonego czasu – journalctl –since „2025-11-01 10:00”
System journald umożliwia także przekazywanie logów do rsysloga lub zewnętrznego serwera centralnego.
7. Rotacja logów
W celu uniknięcia nadmiernego rozrostu plików logów stosowane jest narzędzie logrotate. Zadaniem logrotate jest automatyczne tworzenie kopii archiwalnych logów i usuwanie starych wpisów.
Konfiguracja znajduje się w: /etc/logrotate.conf oraz w katalogu /etc/logrotate.d/.
Przykład konfiguracji rotacji logów:
/var/log/syslog {
weekly
rotate 4
compress
missingok
notifempty
}
W tym przykładzie logi są rotowane co tydzień, przechowywane w czterech kopiach i automatycznie kompresowane.
8. System audytu (auditd)
Linux posiada wbudowany system audytu – auditd – pozwalający na szczegółowe rejestrowanie zdarzeń bezpieczeństwa, np. dostępu do plików lub zmian konfiguracji.
Usługa auditd działa w oparciu o reguły definiowane w pliku /etc/audit/audit.rules lub /etc/audit/rules.d/.
Przykłady reguł audytu:
- Rejestrowanie wszystkich prób modyfikacji pliku /etc/passwd:
-w /etc/passwd -p wa -k passwd_changes - Śledzenie uruchomień polecenia sudo:
-w /usr/bin/sudo -p x -k sudo_exec
Wyświetlanie zdarzeń audytu:
sudo ausearch -k passwd_changes
sudo aureport -x –summary
Usługa auditd jest szczególnie przydatna w środowiskach wymagających zgodności z normami bezpieczeństwa (np. ISO 27001, PCI-DSS).
9. Dobre praktyki logowania i audytu
- regularne monitorowanie plików logów w katalogu /var/log,
- stosowanie rotacji logów w celu oszczędzania przestrzeni dyskowej,
- centralizacja logów z wielu serwerów przy użyciu rsysloga lub journald,
- analiza logów bezpieczeństwa (auth.log, secure) pod kątem prób nieautoryzowanego dostępu,
- wdrażanie systemu audytu (auditd) w środowiskach produkcyjnych,
- utrzymywanie odpowiednich uprawnień do plików logów (tylko root powinien mieć pełny dostęp).
10. Podsumowanie
Systemy logowania i audytu w Linuxie umożliwiają pełną kontrolę nad bezpieczeństwem i stabilnością środowiska. Zarówno rsyslog, jak i systemd-journald pozwalają rejestrować, filtrować i archiwizować zdarzenia w sposób czytelny i bezpieczny. Dzięki integracji z mechanizmami audytu możliwe jest śledzenie działań użytkowników oraz wykrywanie prób naruszeń bezpieczeństwa. Świadome monitorowanie logów to podstawa skutecznego zarządzania każdym systemem Linux.