È necessario configurare auditd
per registrare execve
eventi. Esempio su RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Ignoro l'avvertimento dell'arco e non sembra importare ma puoi usarlo -F arch=b64
o -F arch=b32
impostarlo se vuoi.
Il risultato di quanto sopra è:
[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 ~]#
Questo è ovviamente veloce e sporco, ma sono le basi di come lo fai. Quello che devi fare esattamente probabilmente dipende fortemente da ciò che stai cercando di fare esattamente. Puoi ridurre il flusso di controllo usando vari filtri nel auditctl
comando ma non conosco nessuna di queste informazioni, quindi non so cosa includere. Se hai bisogno di qualcosa di più specifico, ti suggerisco di controllare la pagina man o pubblicare un commento a questa risposta e lo aggiornerò ancora.
Spero che ti aiuti a spingerti nella giusta direzione.
MODIFICARE:
Poiché la tua domanda riguarda l'esame di un determinato utente, posso mostrarti che:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Identico a quanto sopra, ma viene registrato solo execve
da qualcuno che esegue con l'ID utente effettivo di 16777216
. Se è necessario specificare il loginuid
valore dell'utente (da chi ha effettuato inizialmente l'accesso al sistema), filtrare auid
invece per:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
I filtri AUID / loginuid sarebbero utili, ad esempio, se l'utente eseguirà un root su
o sudo
. In quella situazione ci saranno molte cose in esecuzione come root, ma ti preoccupi solo delle cose che sono state lanciate dall'utente in questione. auditctl
ti consente anche di impilare i filtri in modo da poter filtrare per entrambi euid
e 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"