Как настроить SELinux для печати даты и времени в каждой записи в журнале аудита?

Как настроить SELinux для печати даты и времени в каждой записи в журнале аудита?

Я использую CentOS 5.5 и по умолчанию мой /var/log/audit/audit.logвыглядит так:

type=USER_AUTH msg=audit(1331897657.359:8435): user pid=15610 uid=0 auid=4294967295 subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 msg='PAM: authentication acct="?" : exe="/usr/sbin/sshd" (hostname=c165-130.i02-2.onvol.net, addr=213.165.165.130, terminal=ssh res=failed)'
type=USER_LOGIN msg=audit(1331897657.360:8436): user pid=15610 uid=0 auid=4294967295 subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 msg='acct="oracle": exe="/usr/sbin/sshd" (hostname=?, addr=213.165.165.130, terminal=sshd res=failed)'

если быть точным, записи в журнале пишутся без временной метки, что затрудняет устранение неполадок. Доступна страница man

 man auditd.conf 

но все, что там говорится по этому поводу, это:

log_format
     The log format describes how the information should be stored on
     disk.  There  are  2 options: raw and nolog.  If set to RAW, the
     audit records will be stored in a format exactly as  the  kernel
     sends it. If this option is set to NOLOG then all audit informa-
     tion is discarded instead of writing to disk. This mode does not
     affect data sent to the audit event dispatcher.

Как настроить печать даты/времени в начале каждой записи?

решение1

Хотя нет никаких параметров, которые можно задать для создания журнала аудита с форматом даты, понятным человеку, если вы используете команду «ausearch» для поиска в журнале аудита, есть параметр, -iкоторый создает вывод, понятный человеку (ну, может быть, немного более понятный человеку).

Например, если я запустил его ausearch -ts todayна только что загруженной системе, я вижу:

# ausearch -ts today
----
time->Mon Mar 19 23:07:00 2012
type=DAEMON_START msg=audit(1332212820.421:3834): auditd start, ver=2.1.3 format=raw kernel=3.2.10-3.fc16.x86_64 auid=4294967295 pid=6438 subj=system_u:system_r:auditd_t:s0 res=success

Но если я побегу ausearch -ts today -i, то увижу:

# ausearch -ts today -i
----
type=DAEMON_START msg=audit(03/19/2012 23:07:00.421:3834) : auditd start, ver=2.1.3 format=raw kernel=3.2.10-3.fc16.x86_64 auid=unset pid=6438 subj=system_u:system_r:auditd_t:s0 res=success 

Это у вас работает? ausearchВероятно, вы в любом случае будете использовать его для просмотра записей аудита. -iТакже выполняет такие действия, как поиск uid->имя пользователя и другие разрешения. РЕДАКТИРОВАТЬ: Из вышесказанного видно, что я использую Fedora 16, но то же самое ausearch -iотносится и к RHEL5.

решение2

Это длинное число в начале — временная метка: это секунды с начала эпохи. Несколько минут назад я получил:

[0 1128 18:09:57] ~ % date +%s; date
1331917801
Fri Mar 16 18:10:01 CET 2012

Чтобы преобразовать число в более удобочитаемое, попробуйте

[0 1133 18:12:41] ~ % date -d @1331897657
Fri Mar 16 12:34:17 CET 2012

(Поэтому, судя по всему, вам понадобятся «обычные sedтрюки», чтобы отсечь части длительностью менее секунды.)

У меня нет под рукой машины с поддержкой SE, но, может быть, он sealert -aтакже преобразует временные метки в нечто понятное для человека?

решение3

ausearch -i 

Из справки:

-i,--interpret    Interpret results to be human readable

это не правильный ответjsbillingsнаписал.

Нет необходимости запускать tail -f!

P.S. Черт, стек-пойнты! Вот почему я не мог комментировать или голосовать.

решение4

tail -f /var/log/audit/audit.log | ausearch -i

Связанный контент