Wydaje się, że najbardziej niezawodne metody są kontrolowane:
http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html
Auditd zasadniczo przechwytuje wszystkie wywołania systemowe i sprawdza je pod kątem zestawu reguł. Więc w twoim /etc/audit/audit.rules
pliku miałbyś coś takiego:
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320
# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION
Ostatnia reguła jest jedyną regułą inną niż domyślna.
Główną wadą tego podejścia (i powodem, dla którego znalazłem to pytanie, szukając alternatyw) jest to, że nieprzetworzone pliki dziennika są dość tajemnicze i są pomocne tylko po uruchomieniu programu do wysyłania zapytań na surowym pliku dziennika: ausearch
Przykładowym zapytaniem dla tej reguły byłoby:
ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f
Rozsądnym rozwiązaniem byłoby prawdopodobnie utworzenie crona, który przeszuka surowe dzienniki audytujące, a następnie wyśle je do rozwiązania rejestrującego.
W dystrybucjach Red Hat zwykle używasz
/var/log/secure
dziennika, aby zidentyfikować, kto się loguje lub korzysta zsudo
systemu Fedora / CentOS / RHEL.Przykłady
przykład sudowynik dziennika:
przykład suwynik dziennika:
źródło
Jeśli masz współpracujących użytkowników, możesz skonfigurować rootsha, aby rejestrował wszystkie typy użytkowników root w syslog.
http://linux.die.net/man/1/rootsh
rpms rootsha są dostępne w EPEL.
Wersja sudo na RHEL6 może również rejestrować standardowe wyjście do pliku dla każdej sesji sudo. Zajrzyj na stronę podręcznika sudo_plugins.
Żadne z tych podejść nie jest całkowicie kuloodporne.
źródło