Musisz skonfigurować, auditd
aby rejestrować execve
zdarzenia. Przykład na RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Ignoruję ostrzeżenie o łuku i wydaje się, że to nie ma znaczenia, ale możesz go użyć -F arch=b64
lub -F arch=b32
ustawić, jeśli chcesz.
Wynikiem powyższego jest:
[root@ditirlns01 ~]# ls /tmp/whatever
ls: /tmp/whatever: No such file or directory
[root@ditirlns01 ~]# grep whatever /var/log/audit/audit.log
type=EXECVE msg=audit(1386797915.232:5527206): argc=3 a0="ls" a1="--color=tty" a2="/tmp/whatever"
type=EXECVE msg=audit(1386797927.133:5527241): argc=3 a0="grep" a1="whatever" a2="/var/log/audit/audit.log"
[root@ditirlns01 ~]#
To oczywiście szybkie i brudne, ale to podstawy tego, jak to robisz. To, co musisz zrobić dokładnie, prawdopodobnie zależy w dużej mierze od tego, co chcesz dokładnie zrobić. Możesz ograniczyć przepływ inspekcji za pomocą różnych filtrów w auditctl
poleceniu, ale nie znam żadnej z tych informacji, więc nie wiem, co uwzględnić. Jeśli potrzebujesz czegoś bardziej konkretnego, sugeruję sprawdzenie strony podręcznika lub opublikowanie komentarza do tej odpowiedzi, a ja ją zaktualizuję.
Mam nadzieję, że pomożesz we właściwym kierunku.
EDYTOWAĆ:
Ponieważ twoje pytanie dotyczy konkretnego użytkownika, mogę ci pokazać, że:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Identyczny z powyższym, ale rejestrowany jest tylko execve
przez osobę działającą z efektywnym identyfikatorem użytkownika 16777216
. Jeśli musisz podać wartość użytkownika loginuid
(którego początkowo zalogował się w systemie jako), auid
zamiast tego filtruj według :
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Filtry AUID / loginuid byłyby przydatne na przykład, jeśli użytkownik zrobi a su
lub rootować sudo
. W tej sytuacji będzie wiele rzeczy działających jako root, ale martwisz się tylko o rzeczy, które zostały wyrzucone przez danego użytkownika. auditctl
umożliwia także układanie filtrów w stos, dzięki czemu możesz filtrować według obu tych elementów euid
i auid
:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216 -F euid=0
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]# ls /tmp/nashly -ltar
ls: /tmp/nashly: No such file or directory
[root@ditirlns01 ~]# grep nashly /var/log/audit/audit.log
type=EXECVE msg=audit(1386798635.199:5529285): argc=4 a0="ls" a1="--color=tty" a2="/tmp/nashly" a3="-ltar"
type=EXECVE msg=audit(1386798646.048:5529286): argc=3 a0="grep" a1="nashly" a2="/var/log/audit/audit.log"