auditd — logi audytu i compliance na Linuksie
Opublikowano: 9 kwietnia 2026 · Kategoria: Bezpieczeństwo
Kiedy ktoś włamie się na twój serwer i skasuje logi syslog, większość narzędzi zostaje ślepa. auditd (Linux Audit Framework) jest wyjątkiem — działa na poziomie jądra, zbiera zdarzenia zanim dotrą do przestrzeni użytkownika, a jego logi są chronione osobnymi regułami i mogą być wysyłane na bieżąco do zdalnego SIEM. Dla firm objętych PCI-DSS, HIPAA, ISO 27001 albo CIS Benchmarks auditd nie jest opcjonalny — jest wymogiem. Ten przewodnik pokazuje, jak zainstalować, skonfigurować i używać auditd na produkcyjnym serwerze.
Instalacja i uruchomienie
# Ubuntu / Debian sudo apt update && sudo apt install auditd audispd-plugins -y # RHEL / CentOS / Rocky / AlmaLinux (zwykle zainstalowany domyslnie) sudo dnf install audit audit-libs -y # Uruchomienie i wlaczenie przy starcie sudo systemctl enable --now auditd # Sprawdzenie statusu sudo systemctl status auditd sudo auditctl -s # Lokalizacja logow ls -l /var/log/audit/ # audit.log - glowny plik # audit.log.1..N - rotacja
Reguły audytu — auditctl i /etc/audit/rules.d
Reguły dodawane przez auditctl działają tylko do restartu. Do trwałych reguł używaj
plików w /etc/audit/rules.d/, które przeładuje
augenrules --load. Typowy zestaw reguł dla serwera produkcyjnego monitoruje
zmiany plików krytycznych, wywołania systemowe związane z uprawnieniami i aktywność
uprzywilejowanych użytkowników.
# /etc/audit/rules.d/hardening.rules # Identyfikatory uzytkownikow i hasla -w /etc/passwd -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/group -p wa -k identity -w /etc/gshadow -p wa -k identity -w /etc/sudoers -p wa -k scope -w /etc/sudoers.d/ -p wa -k scope # Konfiguracja sieci -w /etc/hosts -p wa -k network -w /etc/network/ -p wa -k network # Logowania i SSH -w /var/log/faillog -p wa -k logins -w /var/log/lastlog -p wa -k logins -w /etc/ssh/sshd_config -p wa -k sshd # Zmiany czasu systemowego (wazne dla forensics) -a always,exit -F arch=b64 -S adjtimex,settimeofday,stime -k time-change -a always,exit -F arch=b64 -S clock_settime -k time-change # Wywolania chmod/chown (potencjalna eskalacja) -a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod -a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod # Blokada dalszych zmian regul (immutable) -e 2 # Po edycji: sudo augenrules --load sudo auditctl -l # lista aktywnych regul
Analiza logów — ausearch i aureport
Surowy audit.log jest nieczytelny dla człowieka. auditd dostarcza dwa narzędzia:
ausearch do wyszukiwania konkretnych eventów po czasie, kluczu, PID, user, oraz aureport do generowania raportów statystycznych. Oba obsługują tryb CSV do dalszej obróbki.
# Wszystkie zdarzenia z ostatniej godziny sudo ausearch -ts recent # Zdarzenia powiazane z kluczem identity (zmiany /etc/passwd itd.) sudo ausearch -k identity # Nieudane logowania sudo ausearch -m USER_LOGIN --success no # Wszystko co zrobil user UID 1000 od wczoraj sudo ausearch -ua 1000 -ts yesterday # Eksport do formatu czytelnego dla czlowieka sudo ausearch -k perm_mod -i # Raport ogolny sudo aureport --summary # Raport nieudanych logowan sudo aureport -au --failed -i # Raport wykonanych komend (jesli wlaczone execve) sudo aureport -x --summary # Top 10 uzytkownikow generujacych eventy sudo aureport -u --summary -i | head
Compliance — PCI-DSS, HIPAA, CIS Benchmarks
Audit trail jest wymogiem kilku standardów compliance. Poniższa tabela podsumowuje, jakie wymagania stawiają popularne standardy, i jak auditd je spełnia.
| Standard | Wymóg | Jak spełnia auditd |
|---|---|---|
| PCI-DSS 10.2 | Rejestracja dostępu do danych kart, akcji admina | Reguły na /etc/passwd, sudoers, pliki CHD z kluczami |
| PCI-DSS 10.5 | Logi muszą być odporne na manipulację | Immutable mode (-e 2), forward do zdalnego SIEM |
| PCI-DSS 10.7 | Retencja 1 rok, 3 miesiące online | Rotacja w /etc/audit/auditd.conf (max_log_file, num_logs) |
| HIPAA §164.312(b) | Audit controls — mechanizm monitorujący dostęp do PHI | Reguły syscall na pliki ze zdrowotnymi danymi |
| ISO 27001 A.12.4 | Logging i monitoring | Centralizacja w SIEM + przeglądy |
| CIS Benchmark | Gotowy zestaw reguł (sekcja 4) | Plik audit.rules dostępny w repo CIS |
Forward do SIEM — rsyslog, Auditbeat, au-remote
Logi trzymane tylko lokalnie są bezwartościowe — atakujący skasuje je po przejęciu serwera.
auditd oferuje plugin architecture (/etc/audit/plugins.d/), która pozwala
wysyłać eventy do zewnętrznych systemów. Najczęściej używane rozwiązania:
- syslog plugin — gotowy moduł, który forwarduje eventy do lokalnego
rsyslog, który z kolei przesyła je do zdalnego serwera logów (Graylog, Splunk, ELK, Wazuh). - Auditbeat — lekki shipper od Elastic, czyta bezpośrednio audit.log i wysyła do Elasticsearch. Wspiera też moduły file integrity i system.
- au-remote — natywny dispatcher audit-remote do wysyłania eventów przez audisp-remote do dedykowanego serwera audit-remote (szyfrowanie TLS, GSS-API).
- Wazuh/OSSEC — host-based IDS, który czyta auditd i koreluje z własnymi regułami wykrywania anomalii.