Auditing unter Linux

Auditing unter Linux

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_auditunter Sitzung laden wie

session required pam_tty_audit.so disable=testuser1 enable=testuser,root

sowohl in /etc/pam.d/password-authals auch in /etc/pam.d/system-authDateien.

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.

verwandte Informationen