Вопрос: В нашей системе много правил аудита, и все сгенерированные события отображаются в /var/log/audit/audit.log, но мы хотим, чтобы определенные события также передавались в rsyslog для дальнейшей обработки.
Как мы можем это сделать?
Давайте посмотрим.
1. Выберите средство syslog (от local0 до local7), которое будет использоваться для сообщений, которые будут доставляться в rsyslog (в следующих примерах был выбран local3).
2. Включите плагин audispd syslog и установите выбранное средство.
sed -i -e '/^active/s/=.*/= yes/' -e '/^args/s/=.*/= LOG_INFO LOG_LOCAL3/' /etc/audisp/plugins.d/syslog.conf
3. Создайте правило (правила) фильтра rsyslog, чтобы rsyslog мог сопоставлять определенные ключи событий аудита или типы сообщений аудита.
Например, чтобы сопоставить ключи событий аудита с именами perm_mod & time-change и типами событий SYSTEM_SHUTDOWN и USER_LOGIN, добавьте следующее в новый файл удаления rsyslog, например, /etc/rsyslog.d/audispd.conf:
## Next line will send all audispd local3 (syslog) messages matching specific keys or types to some file if $syslogfacility-text == 'local3' and $programname == 'audispd' and ($msg contains 'key="perm_mod"' or $msg contains 'key="time-change"' or $msg contains 'type=SYSTEM_SHUTDOWN' or $msg contains 'type=USER_LOGIN') then /var/log/some_log ## Optional: this line will send the same messages to a 2nd file & /var/log/some_other_log ## Optional: this line will send the same messages to a remote host over 514/udp & @10.0.0.1 ## This line will drop all audispd local3 (syslog) messages so they don't end up in other files if $syslogfacility-text == 'local3' and $programname == 'audispd' then ~
4. Перезапустите rsyslog, а затем auditd:
# service rsyslog restart # service auditd restart
Заключение
Приведенный выше пример синтаксиса rsyslog совместим как с rsyslog v5, так и с rsyslog v7.
Относительно CentOS / RHEL 7 – обратите внимание, что приведенные выше шаги приведут ко ВСЕМ событиям аудита, идущим в systemd-journald.