Я пытаюсь написать плагин audisp на виртуальной машине Linux CentOS 7. Вместо того, чтобы статически устанавливать правила аудита через /etc/audit/rules.d/, я хотел динамически добавлять правила в плагин, используя интерфейсы libaudit (на основе некоторых системных настроек).
Мой код выглядит примерно так:
int fd_audit = audit_open(); // this is successful
if (audit_is_enabled(fd_audit) <= 0)
audit_set_enabled(fd_audit, 1); // "Permission denied" error given
}
else {
// set some rules
}
Проблема, с которой я столкнулся, связана с функцией audit_set_enabled (), поскольку в разрешении отказано при принудительном применении SELinux. Когда SELinux разрешает, audit_set_enabled () возвращает успешный статус, но добавить правило аудита по-прежнему не удается.
Я попытался найти сообщения об отказе от avc, но не нашел ни одного.
Любая помощь или совет приветствуются.
Удалось решить указанную выше проблему, отключив правила «не проводить аудит» с помощью sudo semodule -DB
.
Затем я смог получить журналы AVC и исправить правила sepolicy с помощью audit2allow
. Кажется, я пропал netlink_audit_socket { read write }
права доступа.