Потрібно налаштувати auditd
для запису execve
подій. Приклад на RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Я ігнорую попередження про арку, і це, мабуть, не має значення, але ви можете використовувати -F arch=b64
або -F arch=b32
встановити його, якщо хочете.
Результатом сказаного є:
[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 ~]#
Це очевидно швидко і брудно, але це основи того, як ви це робите. Те, що вам потрібно точно зробити, мабуть, сильно залежить від того, що ви намагаєтеся робити саме. Ви можете зменшити потік аудиту, використовуючи різні фільтри в auditctl
команді, але я не знаю жодної з цих даних, тому я не знаю, що включити. Якщо вам потрібне щось більш конкретне, я б вам запропонував або переглянути сторінку чоловіка або опублікувати коментар до цієї відповіді, і я ще трохи оновлю її.
Сподіваюся, що допоможе підштовхнути вас у правильному напрямку.
Редагувати:
Оскільки ваше запитання передбачає перегляд конкретного користувача, я можу вам показати, що:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Ідентично вищезазначеному, але буде зареєстровано лише execve
той, хто працює з ефективним ідентифікатором користувача 16777216
. Якщо вам потрібно вказати значення користувача loginuid
(кого вони спочатку увійшли в систему як), ви auid
замість цього фільтруєте :
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Фільтри AUID / loginuid були б корисні, наприклад, якщо користувач зробить a su
або sudo
викорінити корінь. У цій ситуації буде багато матеріалів, що працює як root, але ви переймаєтесь лише тими матеріалами, які розпочав користувач. auditctl
також дозволяє стекувати фільтри, щоб ви могли фільтрувати як euid
і 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"