Wie konfiguriert man SELinux, um in jedem Eintrag im Prüfprotokoll Datum und Uhrzeit auszugeben?

Wie konfiguriert man SELinux, um in jedem Eintrag im Prüfprotokoll Datum und Uhrzeit auszugeben?

Ich verwende CentOS 5.5 und standardmäßig /var/log/audit/audit.logsieht meins so aus:

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)'

um genau zu sein, werden Logeinträge ohne Zeitstempel geschrieben. Das erschwert die Fehlersuche. Es gibt eine Manpage

 man auditd.conf 

aber in diesem Betreff steht nur:

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.

Wie konfiguriere ich es, um am Anfang jedes Eintrags Datum/Uhrzeit zu drucken?

Antwort1

Obwohl es keine Optionen gibt, mit denen Sie das Auditd-Protokoll in einem für Menschen analysierbaren Datumsformat erstellen können, gibt es eine Option, -idie eine für Menschen lesbare (oder vielleicht etwas besser lesbare) Ausgabe erzeugt, wenn Sie zum Durchsuchen Ihres Audit-Protokolls den Befehl „ausearch“ verwenden.

Wenn ich es beispielsweise ausearch -ts todayauf meinem neu gebooteten System ausführe, sehe ich:

# 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

Aber wenn ich ausführe ausearch -ts today -i, sehe ich:

# 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 

Funktioniert das für Sie? ausearchist wahrscheinlich das, was Sie ohnehin zum Anzeigen von Prüfdatensätzen verwenden werden. -iführt auch Dinge wie UID->Benutzername-Suchen und andere Auflösungen durch. BEARBEITEN: Oben können Sie sehen, dass ich Fedora 16 verwende, aber das Gleiche ausearch -igilt für RHEL5.

Antwort2

Die lange Zahl am Anfang ist ein Zeitstempel: Es sind Sekunden seit der Epoche. Vor ein paar Augenblicken habe ich Folgendes bekommen:

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

Um die Zahl in etwas besser lesbares umzuwandeln, versuchen Sie

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

(Offensichtlich benötigen Sie also „übliche sedTricks“, um die Teile unter einer Sekunde abzuschneiden.)

Ich habe keine SE-fähige Maschine zur Hand, aber vielleicht sealert -akönnen die Zeitstempel auch in etwas für Menschen Lesbares analysiert werden?

Antwort3

ausearch -i 

Aus der Hilfe:

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

das ist nicht die richtige Antwort, dennAbonnierenschrieb.

Es ist nicht nötig, tail -f auszuführen!

PS: Verdammte Punkte stapeln! Deshalb konnte ich weder kommentieren noch positiv bewerten.

Antwort4

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

verwandte Informationen