auditctl
(эти правила не сохраняются после перезагрузки системы);
/etc/audit/audit.rules
.
auditctl
auditctl
позволяет управлять основными функциями системы аудита и определять правила, определяющие, какие события аудита регистрируются.
Примечание
# auditctl -b 256
# auditctl -f 2
в данной конфигурации в случае критической ошибки будет вызван kernel panic;
# auditctl -e 2
в результате все попытки изменить конфигурацию аудита будет отвергнуты:
The audit system is in immutable mode, no rule changes allowed
# auditctl -s
# auditctl -l
# auditctl -D
# auditctl -w путь_к_файлу -p разрешения -k имя_ключа
где:
/etc/shadow
:
# auditctl -w /etc/shadow -p wa
/etc/httpd2/
:
# auditctl -w /etc/httpd2/ -p wa -k apache
/sbin/modprobe
:
# auditctl -w /sbin/modprobe -p x -k modules
# auditctl -a список,действие -S имя_системного_вызова -F фильтры -k имя_ключа
task
— добавить правило к списку, отвечающему за процессы. Этот список правил используется только во время создания процесса — когда родительский процесс вызывает fork() или clone(). При использовании этого списка можно использовать только те поля, которые известны во время создания процесса (uid, gid и так далее);
exit
— добавить правило к списку, отвечающему за точки выхода из системных вызовов. Этот список применяется, когда необходимо создать событие для аудита, привязанное к точкам выхода из системных вызовов;
user
— добавить правило, отвечающее за список фильтрации пользовательских сообщений. Этот список используется ядром, чтобы отфильтровать события, приходящие из пользовательского пространства, перед тем как они будут переданы службе аудита. Могут быть использованы только следующие поля: uid, auid, gid, pid, subj_user, subj_role, subj_type, subj_sen, subj_clr, и msgtype. Все остальные поля будут обработаны, как если бы они не совпали;
exclude
— добавить правило к списку, отвечающего за фильтрацию событий определенного типа. Этот список используется, чтобы отфильтровывать ненужные события. События могут быть исключены по идентификатору процесса, идентификатору пользователя, идентификатору группы, идентификатору логина пользователя, типу сообщения или контексту предмета.
-a
— это действие, которое должно произойти в ответ на возникшее событие:
never
— аудит не будет генерировать никаких записей. Может использоваться для подавления генерации событий. Обычно необходимо подавлять генерацию сверху списка, а не снизу, поскольку событие инициируется на первом совпавшем правиле;
always
— установить контекст аудита. Всегда заполнять его во время входа в системный вызов, и всегда генерировать запись во время выхода из системного вызова.
-S
, задающая имя системного вызова, при обращении к которому должен срабатывать триггер (например, open, close, exit). Вместо имени может быть использовано числовое значение.
-F
используется для указания дополнительных параметров фильтрации события.
/etc
:
# auditctl -a always,exit -S open -F path=/etc/
# auditctl -a always,exit -S open -F path=/etc/ -F perm=aw
# auditctl -a always,exit -S all -F pid=1005
# auditctl -a always,exit -S openat -F auid=510
openat
:
# auditctl -a exit,always -S openat -F success!=0
/etc/shadow
:
# auditctl -a always,exit -F path=/etc/shadow -F perm=wa
# auditctl
-a список,действие [ -F arch=cpu -S имя_системного_вызова] -F exe=путь_к_файлу -k имя_ключа
/usr/bin/ping
:
# auditctl
-a always,exit -F exe=/usr/bin/ping -F arch=b64 -S execve -k execution_ping