GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie das Auditing-System unter Linux – Konfigurieren, Audit-Protokolle und Generieren von Berichten

Bevor wir mit der Diskussion über das Auditing-System beginnen, möchte ich einige Fragen stellen. Wie überwachen Sie die vom Benutzer ausgeführten Befehle? Wie überwachen Sie, ob auf eine Datei oder ein Verzeichnis zugegriffen wurde? Wie zeichnen Sie verschiedene sicherheitsrelevante Ereignisse auf? Wie überwachen Sie Systemaufrufe, Netzwerkzugriffe usw. und wie generieren Sie schließlich einen Bericht daraus? Nun, das Linux Auditing-System ist die Antwort auf alle oben genannten Fragen.

Das Linux Auditing-System ermöglicht es einem Administrator, Audit-Regeln zu konfigurieren, um Systemaufrufe, Netzwerkzugriffe, Dateien usw. zu überwachen und einen zusammenfassenden Bericht zu erstellen, der später analysiert und auf verdächtige Aktivitäten untersucht werden kann. Ab Version 2.6 enthält der Linux-Kernel auditd Daemon und liest beim Start die vorkonfigurierten Regeln aus /etc/audit/audit.rules . Der Administrator kann auditctl verwenden Befehl, um das Prüfsystem zu steuern, Regeln zu erstellen usw. Die anderen beiden wichtigen Befehle sind:

  • aussuchen – Befehl, mit dem Sie die Audit-Protokolle basierend auf den angegebenen Kriterien abfragen können.
  • Aubericht – Befehl zum Generieren von Berichten.

Audit-Konfigurationsdateien befinden sich unter /etc/audit und Protokolle unter  /var/log/audit.

  • /etc/audit/audit.rules – Datei, in der die permanenten Regeln erstellt und beim auditd geladen werden Daemon wird gestartet.
  • /etc/audit/audit.conf – Audit-Konfigurationsdatei
  • /etc/audit/rules.d/ – Ordner, der benutzerdefinierte Regeldateien enthält.

Nachfolgend finden Sie eine Liste der Informationen, die von der Prüfung aufgezeichnet werden:

  • Zeitstempel, Art und Ausgang des Ereignisses
  • UID, GID, die das Ereignis ausgelöst hat
  • Sensitivitätsbezeichnungen von Subjekt und Objekt
  • Zugriff auf alle Authentifizierungssysteme wie SSH, Kerberos usw....
  • Dateiintegritätsprüfungen
  • Import und Export von Informationen.
  • Ereignisse basierend auf der Benutzeridentität, dem Betreff und anderen Attributen einschließen oder ausschließen.
  • Versuche, Überwachungskonfigurationsdateien und -protokolle zu ändern.

Wie konfiguriere ich auditd in CentOS und Ubuntu?

Auf CentOS:

# yum install audit

Auf Ubuntu:

# apt-get install auditd
::::::::::
Setting up auditd (1:2.4.5-1ubuntu2) ...
update-rc.d: warning: start and stop actions are no longer supported; falling ba ck to defaults
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...

Sobald das Paket installiert ist, wird die Datei auditd Daemon wird automatisch gestartet. Wenn nicht, können Sie es mit den folgenden Befehlen starten:

# /etc/init.d/auditd start

Listen Sie die aktiven Audit-Regeln auf:

# auditctl -l
 No rules

Wie erstellt man Audit-Regeln?

Lassen Sie uns eine Regel erstellen, um die Datei /etc/passwd zu überwachen

# auditctl -w /etc/passwd -p war -k audit-passwd

Der obige Befehl erstellt eine Überwachung der Datei /etc/passwd .

  • w /etc/passwd – erstellt eine Überwachung für die Datei /etc/passwd
  • -p Krieg – Legt den Berechtigungsfilter fest – w für Schreiben, r für Lesen, a für Attributänderung und e für Ausführen.
  • k audit-passwd – hier audit-passwd ist ein Schlüssel, um die Regel eindeutig aus den Protokollen zu identifizieren.

Grundsätzlich verfolgt der obige Befehl /etc/passwd für jeden, der versucht, Attribute der Datei zu schreiben, zu lesen oder zu ändern.

Jetzt ist die Regel erstellt, melden Sie sich als nicht privilegierter Benutzer an und versuchen Sie, auf /etc/passwd zuzugreifen Datei.

$ grep "someinformation" /etc/passwd
$ vim /etc/passwd

Die beiden obigen Befehle wurden von einem lokalen Benutzer namens „ubuntu“ ausgeführt, und diese Ereignisse werden voraussichtlich in /var/log/audit/audit.log protokolliert Datei.

Wie finde ich heraus, wer /etc/passwd geändert oder darauf zugegriffen hat?

Wir werden ausearch verwenden Befehl:

# ausearch -f /etc/passwd -i
type=PROCTITLE msg=audit(08/05/2016 11:56:10.088:72) : proctitle=grep --color=auto henry /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:10.088:72) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:10.088:72) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:10.088:72) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x7ffebf6cb887 a2=O_RDONLY|O_NOCT
 TY a3=0x0 items=1 ppid=14098 pid=14992 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 s
 es=1302 comm=grep exe=/bin/grep key=audit-passwd
 ----
 type=PROCTITLE msg=audit(08/05/2016 11:56:12.028:74) : proctitle=vim /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:12.028:74) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:12.028:74) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:12.028:74) : arch=x86_64 syscall=open success=yes exit=3 a0=0x556072132500 a1=O_RDONLY a2=0x0 a3=0x556072347f50 items
 =1 ppid=14098 pid=14993 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 ses=1302 comm=vi
 m exe=/usr/bin/vim.basic key=audit-passwd

Die obige Protokollausgabe zeigt an, dass der Benutzer ubuntu aufgerufen hat hatte auf die Datei /etc/passwd zugegriffen mit den Befehlen grep und vim . Standardmäßig verwendet die Protokollausgabe UID und GID, aber die Option „-i ‘ ordnet die uid und gid den entsprechenden Namen zu (vom Menschen lesbarer Benutzername und Gruppenname).

Wie erstelle ich eine Überwachung, um Änderungen eines bestimmten Benutzers zu überwachen?

#auditctl -w /usr/local/test -p wa -F uid=1001 -k audit-temp

Durchsuchen Sie das Protokoll nach Ereignissen:

#ausearch -ua 1001 -i

Der obige Befehl listet alle Ereignisse auf, die von der Benutzer-ID 1001 ausgelöst werden .

Permanente Regeln erstellen

Hinweis :Die mit auditctl erstellten Regeln Befehle sind temporär und bleiben bis zum auditd aktiv Daemon wird neu gestartet. Die folgenden Befehle erklären dieses Szenario.

# auditctl -l
 -w /etc/passwd -p rwa -k audit-passwd
 -a always,exit -S all -F dir=/etc -F perm=wa -F uid=1001 -F key=audit-temp
 -a always,exit -S all -F dir=/usr/local/test -F perm=wa -F uid=1001 -F key=audit

Der obige Befehl druckt die Liste der aktiven Regeln. Lassen Sie uns nun versuchen, auditd neu zu starten Dämon.

# /etc/init.d/auditd restart
 [ ok ] Restarting auditd (via systemctl): auditd.service.

Suchen Sie erneut nach aktiven Regeln.

# auditctl -l
 No rules

Sobald die Auditd Daemon neu gestartet wird, alle Regeln, die mit auditctl erstellt wurden Befehl wird entfernt (weil sie temporär waren). Wenn Sie mit auditctl experimentiert haben Befehl haben und diese Regeln dauerhaft erstellen möchten, können Sie entweder /etc/audit/audit.rules bearbeiten Datei oder erstellen Sie eine neue Regeldatei unter /etc/audit/rules.d/ Ordner.

# echo "-D" > /etc/audit/rules.d/new.rules
# auditctl -l >> /etc/audit/rules.d/new.rules

Der erste Befehl fügt die Regellöschaktion hinzu, bevor der neue Regelsatz hinzugefügt wird.

Wie erstelle ich einen Auditbericht?

Zusammenfassender Bericht:

# aureport
Summary Report
======================
Range of time in logs: 08/05/2016 11:45:39.464 - 08/08/2016 06:14:14.328
Selected time for report: 08/05/2016 11:45:39 - 08/08/2016 06:14:14.328
Number of changes in configuration: 7
Number of changes to accounts, groups, or roles: 5
Number of logins: 1
Number of failed logins: 6
Number of authentications: 8
Number of failed authentications: 6
Number of users: 3
Number of terminals: 8
Number of host names: 2
Number of executables: 37
Number of commands: 39
Number of files: 13
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 12
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 2
Number of process IDs: 214
Number of events: 1337

Der obige Befehl druckt den zusammenfassenden Bericht aller aufgezeichneten Ereignisse.

Drucken Sie einen zusammenfassenden Bericht aller fehlgeschlagenen Anmeldeversuche

# aureport --login --summary -i
Login Summary Report
============================
total auid
============================
6 henry
1 ubuntu

Generieren Sie einen zusammenfassenden Bericht über ausführbare Dateiereignisse:

# aureport -x --summary

Generieren Sie einen Bericht aller abgefragten Audit-Dateien und des Zeitbereichs der darin enthaltenen Ereignisse

# aureport -t
Log Time Range Report
=====================
/var/log/audit/audit.log: 08/05/2016 11:45:39.464 - 08/08/2016 06:17:01.068

Erstellen Sie einen Bericht aller aufgezeichneten Ereignisse innerhalb des Datumsbereichs:

# aureport --start 08/05/2016 00:00:00 --end 08/07/2016 00:00:00

Bericht aus ausearch erstellen Ausgabe

# ausearch -k audit-temp | aureport -f -i

Wie lösche ich alle Auditregeln?

# auditctl -D

Hinweis :Der obige Befehl löscht alle aktiven Regeln im laufenden auditd Dämon. Die permanenten Regeln in der Datei /etc/audit/audit.rules werden jedoch immer dann geladen, wenn auditd gestartet.

Ist das alles auditd tun können? Nö! Das Linux-Audit-System kann mehr, und was hier aufgeführt ist, ist nur ein winziger Teil dieses leistungsstarken Systems. Werfen Sie einen Blick auf die Manpages von auditd , auditctl , aussuchen und aureport für weitere Informationen.


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

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

  3. CentOS / RHEL:So stellen Sie eine gelöschte /etc/passwd-Datei wieder her

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

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

Wie generiert und verwendet man einen SSH-Schlüssel in einem Linux-System?

So installieren und verwenden Sie YouTube-DL auf einem Linux-System

So installieren und konfigurieren Sie AnyDesk auf einem Linux-System

So installieren und konfigurieren Sie Django auf einem Linux-System

So installieren und konfigurieren Sie PrestaShop auf einem Linux-System

So installieren und konfigurieren Sie Elasticsearch auf einem Linux-System