Ich versuche, einen robusten Audit-Mechanismus auf meinen Centos 6.x-Boxen einzurichten. Ich habe verschiedene Audit-Tools ausprobiert und getestet, wie
- geprüft
- Berater
- psacct
Aber keines erfüllt meine Anforderungen. Meine Anforderungen sind ganz einfach und ich weiß, dass ein Auditsystem nicht für alle geeignet ist und ich möglicherweise verschiedene Auditsysteme gleichzeitig verwenden muss. Ich möchte
- Überwachen Sie alle von einem Benutzer ausgeführten Befehle
psacct macht das perfekt, aber es zeigt nur den vom Benutzer ausgeführten Befehl an und nicht die an den Befehl übergebenen Argumente. Wenn der Benutzer also ausführt vim /erc/passwd
, lastcomm <username>
wird nur angezeigt, dass der Vim-Befehl ausgeführt wurde, aber nicht, welche Datei tatsächlich bearbeitet wurde.
Und auditd sagt beispielsweise, dass der Vim-Befehl ausgeführt wurde und eine bestimmte Datei bearbeitet wurde, sagt aber nicht, wer die Datei bearbeitet hat.
Angenommen, ich führe einen Befehl als Sudo-Benutzer aus. Dann wird mir nicht mitgeteilt, welcher Benutzer die bestimmte Datei bearbeitet hat, wenn es 10 Sudo-Benutzer gibt, da die GID und UID in der Befehlsausgabe die des Superusers sind:
time->Sat Jun 20 15:52:45 2015
type=PATH msg=audit(1434795765.057:54685): item=4 name="/etc/passwd" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
type=PATH msg=audit(1434795765.057:54685): item=3 name="/etc/passwd" inode=152786 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=2 name="/etc/passwd+" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=1 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1434795765.057:54685): item=0 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=CWD msg=audit(1434795765.057:54685): cwd="/etc"
type=SYSCALL msg=audit(1434795765.057:54685): arch=c000003e syscall=82 success=yes exit=0 a0=7fffba897300 a1=7fd7cc94ece0 a2=7fffba8971c0 a3=0 items=5 ppid=14041 pid=14043 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=8494 comm="useradd" exe="/usr/sbin/useradd" key=(null)
- Möchte die tatsächlichen Änderungen an der Datei verfolgen
Das Hilfstool meldet, dass eine Datei geändert wurde. Wie kann ich jedoch Einzelheiten dazu erhalten, welcher Inhalt tatsächlich geändert wurde und welcher Benutzer die Änderung vorgenommen hat?
Antwort1
Sie können dies mit auditd und einem PAM-Modul implementieren. Sie müssen das PAM-Modul pam_tty_audit
unter Sitzung laden wie
session required pam_tty_audit.so disable=testuser1 enable=testuser,root
sowohl in /etc/pam.d/password-auth
als auch in /etc/pam.d/system-auth
Dateien.
und dann werden die Tastenanschläge der aktivierten Benutzer im Prüfprotokoll protokolliert.
Verwenden Sie beim Generieren des Prüfberichts die Option -i mit aureport, um den genauen Benutzernamen zu erhalten.
z.B:aureport --tty -i -ts today
Ein Nachteil dieser Methode besteht darin, dass alle Tastenanschläge protokolliert werden, einschließlich der im Terminal eingegebenen Passwörter.
Zur Nachverfolgung von Dateiänderungen kann ein Assistent verwendet werden. Dieser verwendet eine Prüfsummenüberprüfungsmethode. Die genauen Zeilenänderungen in der Datei sind jedoch nicht nachvollziehbar.