GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So verwenden Sie auditd, um eine Dateilöschung in Linux zu überwachen

Sie haben also eine Situation, in der eine bestimmte Datei häufig gelöscht wird und Sie untersuchen müssen, wer die Datei löscht. Es kann ein Benutzer- oder Systemprozess sein, der eine Datei löschen kann. Der auditd-Dienst kann ein perfektes Werkzeug sein, um solche Probleme beim Löschen von Dateien zu untersuchen. Der Beitrag beschreibt die Schritte zum Installieren und Konfigurieren von auditd, um eine Dateilöschung der Datei /var/tmp/test_file.

zu überwachen

Red Hat Enterprise Linux stellt Audit-Regeln bereit, um die von Benutzern oder Prozessen durchgeführten Dateiaktivitäten zu protokollieren. Dies kann durch die Konfiguration von Überwachungsregeln erreicht werden.

Auditd installieren

1. Meistens finden Sie auditd bereits auf Redhat-basierten Distributionen installiert. Wenn nicht, installieren Sie es mit yum:

# yum install audit

2. Stellen Sie als Nächstes sicher, dass der Dienst beim Booten gestartet wird, und starten Sie den Dienst.

# systemctl enable auditd
# systemctl start auditd

Es wird empfohlen, den Befehl „service“ anstelle von systemctl in CentOS/RHEL 7 zu verwenden, während Sie den auditd-Dienst neu starten. Wenn Sie den Befehl systemctl verwenden, kann der folgende Fehler auftreten:

# systemctl restart auditd
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status auditd.service' for details.

3. Überprüfen Sie den Status des Dienstes:

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-16 03:29:19 UTC; 8s ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
  Process: 1951 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS)
  Process: 1946 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
 Main PID: 1947 (auditd)
    Tasks: 2
   CGroup: /system.slice/auditd.service
           └─1947 /sbin/auditd

Audit-Regeln konfigurieren

1. Um Überwachungsregeln zu konfigurieren, fügen Sie die folgende Zeile in die Datei /etc/audit/rules.d/audit.rules ein:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
Unter CentOS/RHEL 6 ist die Konfigurationsdatei /etc/audit/audit.rules statt /etc/audit/rules.d/audit.rules.

Die obigen Regeln überwachen alle Dateien auf dem System auf Änderungen wie Verknüpfung aufheben, Umbenennen, Löschen usw. Optional können Sie einen vollständigen Pfad des zu überwachenden Verzeichnisses angeben, wenn Sie beispielsweise das Löschen von Dateien nur in einer bestimmten Datei überwachen möchten System können Sie den Einhängepunkt angeben, indem Sie der Prüfregel das folgende Feld hinzufügen:

-F dir=[directory or mount point]

Die oben definierten Regeln werden nun zu einer einzigen Regel, wie unten gezeigt:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F dir=/var/tmp -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete_var

Bitte beachten Sie, dass ich auch den Schlüssel in den Regeln geändert habe.

2. Sie müssen den auditd-Dienst neu starten, damit die Regeln wirksam werden.

# service auditd restart

3. Verwenden Sie den Befehl „auditctl -l“, um die derzeit aktiven auditd-Regeln anzuzeigen.

# auditctl -l
-a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/var/tmp -F key=delete_var

Audit-Logs auf Dateilöschung prüfen

1. Sie können jetzt versuchen, die Datei „/var/tmp/test_file“ zu löschen, um zu sehen, ob die gerade erstellte auditd-Regel dieses Ereignis in der Protokolldatei protokolliert.

2. Dadurch werden die Dateilöschvorgänge in der Datei /var/log/audit/audit.log protokolliert , wir können jedoch den Befehl ausearch verwenden mit dem in der Prüfregel angegebenen Schlüssel (-k) zum Betrachten der Ereignisse:

# ausearch -k delete_var
...
----
time->Sat Jun 16 04:02:25 2018
type=PROCTITLE msg=audit(1529121745.550:323): proctitle=726D002D69002F7661722F746D702F746573745F66696C65
type=PATH msg=audit(1529121745.550:323): item=1 name="/var/tmp/test_file" inode=16934921 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:user_tmp_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529121745.550:323): item=0 name="/var/tmp/" inode=16819564 dev=ca:01 mode=041777 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:tmp_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529121745.550:323):  cwd="/root"
type=SYSCALL msg=audit(1529121745.550:323): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=9930c0 a2=0 a3=7ffe9f8f2b20 items=2 ppid=2358 pid=2606 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="rm" exe="/usr/bin/rm" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="delete_var"

Wie Sie im obigen Protokoll sehen können, hat der Benutzer root(uid=0) die Datei /var/tmp/test_file.

gelöscht(exe=”/usr/bin/rm”)


Cent OS
  1. So verwenden Sie den md5sum-Befehl unter Linux

  2. So verwenden Sie den Touch-Befehl unter Linux

  3. So verwenden Sie den Tar-Befehl unter Linux

  4. Verwendung von auditd zur Überwachung eines bestimmten SYSCALL

  5. Es wird behauptet, dass eine Datei verschwindet – So überwachen Sie eine Datei auf Löschung in Linux

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

So verwenden Sie AppImage unter Linux (Anfängerhandbuch)

So verwenden Sie den SCP-Befehl unter Linux

So verwenden Sie den Befehl lsof unter Linux

Wie verwende ich gzip unter Linux?

So verwenden Sie den Linux-Befehl shred