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

Wie kann ich die Datei /etc/shadow und /etc/passwd mit Auditd auf Änderungen überwachen?

Die Systemüberwachung ist eine sehr wichtige Aufgabe, die Teil jedes Servers sein sollte. Es ermöglicht uns, kleinste Details darüber zu prüfen, was genau im System passiert. Die meisten Systemadministratoren kennen möglicherweise grundlegende Überwachungsfunktionen, wie z. B. das Durchsuchen der /var/log/secure-Datei nach Anmeldeversuchen, aber wenn es um die Überwachung auf niedriger Ebene geht, muss hier die Arbeit erledigt werden.

Einige der Fälle, in denen die Systemprüfung hilfreich ist, sind:

  • Überwachung des Dateizugriffs :Wir möchten einen Bericht darüber haben, auf welche Dateien oder Verzeichnisse innerhalb Ihres Servers zu welcher Zeit und von welchem ​​Benutzer zugegriffen oder diese geändert wurden. Dies ist insbesondere dann ein wichtiger Aspekt, wenn wir den Zugriff auf wichtige Dateien auf unseren Servern erkennen oder herausfinden möchten, wer die Änderung vorgenommen hat, die sich auf die Produktionsumgebung ausgewirkt hat.
  • Systemaufrufe überwachen :Jeder Befehl, den wir hinten eingeben, macht einen Systemaufruf an den Kernel.

Überwachung von /etc/shadow und /etc/passwd auf Änderungen

1. Um die Dateien /etc/shadow und /etc/passwd zu überwachen, fügen Sie die folgenden 2 Regeln in die auditd-Regeldatei /etc/audit/rules.d/audit.rule.

ein

# vi /etc/audit/rules.d/audit.rule
-w /etc/shadow -p wa -k shadow
-w /etc/passwd -p wa -k passwd
Unter CentOS/RHEL 6 ist die Konfigurationsdatei /etc/audit/audit.rules statt /etc/audit/rules.d/audit.rules.

Der obige Befehl stellt Folgendes dar:

-w path-to-file -p permissions -k keyname

wobei die Berechtigung eine der folgenden ist:
r – Lesen der Datei
w – in die Datei
x schreiben – Führen Sie die Datei
a aus – Änderung des Dateiattributs (Eigentum/Berechtigungen)

2. Starten Sie den auditd-Dienst neu, nachdem Sie die beiden obigen Regeln definiert haben.

# service auditd restart
Hinweis :Verwenden Sie nicht den Befehl „systemctl“, um den Dienst auditd in CentOS/RHEL zu verwalten. Verwenden Sie stattdessen den alten „service“-Befehl. Der Grund für diese Einschränkung ist, dass der Audit-Daemon alle Änderungen am Audit-Trail aufzeichnen muss, einschließlich des Startens und Stoppens des Audit-Daemons selbst. Systemctl verwendet dbus, um mit dem System zu sprechen, das verbirgt, wer den Befehl ausgegeben hat, und sieht so aus, als hätte root es getan.

3. Verwenden Sie den Befehl „auditctl -l“, um die von Ihnen festgelegten Regeln zu überprüfen.

# auditctl -l
-w /etc/shadow -p wa -k shadow
-w /etc/passwd -p wa -k passwd

Bestätigen

Die Protokolldatei /var/log/audit/audit.log protokolliert alle auditd-bezogenen Protokollmeldungen. Sie können diese Protokolldatei überprüfen, um festzustellen, ob die shadow- und passwd-Dateien von jemandem geändert wurden. Diese Datei kann lang sein und das System kann viele Protokolle in dieser Datei generieren. Um die Regeln herauszufiltern, an denen wir interessiert sind, können wir den Befehl „ausearch“ mit dem Schlüssel verwenden, den wir beim Definieren der Regeln angegeben haben. Zum Beispiel:

# ausearch -k shadow
----
time->Sat Jun 16 06:23:07 2018
type=PROCTITLE msg=audit(1529130187.897:595): proctitle=7061737377640074657374
type=PATH msg=audit(1529130187.897:595): item=4 name="/etc/shadow" inode=551699 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=3 name="/etc/shadow" inode=636309 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=2 name="/etc/nshadow" inode=551699 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=1 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130187.897:595): item=0 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529130187.897:595):  cwd="/root"
type=SYSCALL msg=audit(1529130187.897:595): arch=c000003e syscall=82 success=yes exit=0 a0=7f443258a332 a1=7f443258a2bc a2=7f443a3517b8 a3=0 items=5 ppid=4320 pid=4486 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="passwd" exe="/usr/bin/passwd" subj=unconfined_u:unconfined_r:passwd_t:s0-s0:c0.c1023 key="shadow"

In ähnlicher Weise können wir für die Datei /etc/passwd die Protokolle herausfiltern mit:

# ausearch -k passwd
time->Sat Jun 16 06:22:56 2018
type=PROCTITLE msg=audit(1529130176.633:589): proctitle=757365726164640074657374
type=PATH msg=audit(1529130176.633:589): item=4 name="/etc/passwd" inode=638208 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=3 name="/etc/passwd" inode=636309 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=2 name="/etc/passwd+" inode=638208 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=1 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529130176.633:589): item=0 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529130176.633:589):  cwd="/root"
type=SYSCALL msg=audit(1529130176.633:589): arch=c000003e syscall=82 success=yes exit=0 a0=7ffc0729ae70 a1=55f815c79ce0 a2=7ffc0729ade0 a3=55f815ce21a0 items=5 ppid=4320 pid=4481 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="useradd" exe="/usr/sbin/useradd" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="passwd"
Verstehen der Systemüberwachung mit auditd


Cent OS
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Manuelle Änderungen an /etc/hosts oder /etc/sysconfig/network-scripts/ifcfg-* gehen verloren

  3. So deaktivieren Sie „sudo su“ für Benutzer in der sudoers-Konfigurationsdatei

  4. Befehl grpck – Entfernen Sie beschädigte oder doppelte Einträge in den Dateien /etc/group und /etc/gshadow.

  5. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

CentOS / RHEL 7 :So stellen Sie gelöschte Root-Einträge in /etc/shadow- und/oder /etc/passwd-Dateien wieder her

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wie erstelle ich in meiner Datei /etc/hosts/ unter Linux/OSX eine Wildcard-Subdomain?

Unterschied zwischen /etc/hosts und /etc/resolv.conf

So richten Sie /etc/issues ein, um die IP-Adresse für eth0 anzuzeigen