So richtest du die Fernprotokollierung mit Rsyslog unter Debian 12 ein

Rsyslog ist ein Open-Source-Logging-System-Daemon, der zum Sammeln, Filtern, Speichern und Weiterleiten von Protokollnachrichten von Betriebssystemen und Anwendungen verwendet wird. Es ist ein leistungsstarkes und flexibles Protokollierungssystem, das mehrere Protokolle unterstützt, darunter TCP, UDP und RELP (Reliable Event Logging Protocol). Du kannst Rsyslog verwenden, um die Protokolle deiner Server, Anwendungen und Datenbanken zu zentralisieren.

In dieser Anleitung erfährst du, wie du rsyslog installierst und die Fernprotokollierung auf dem Debian 12-Server einrichtest. Außerdem richtest du einen Linux-Server ein, der Protokolle aus der Ferne an den Rsyslog-Server sendet.

Voraussetzungen

Um mit dieser Anleitung zu beginnen, brauchst du Folgendes:

  • Einen Debian 12-Server
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten
  • Einen Linux-Rechner als Client zum Testen

Installieren von Rsyslog

Bevor du beginnst, musst du Rsyslog auf deinem Debian-Server installieren. In diesem Schritt installierst du Rsyslog über die APT und startest und aktivierst den Rsyslog-Dienst.

Führe zunächst den folgenden Befehl aus, um deinen Debian-Paketindex zu aktualisieren und Rsyslog auf deinem System zu installieren. Gib„Y“ ein, um die Installation zu bestätigen.

sudo apt update
sudo apt install rsyslog

rsyslog installieren

Nachdem die Installation abgeschlossen ist, führe den Befehl„systemctl“ aus, um den„rsyslog„-Server zu starten und zu aktivieren. Überprüfe dann, ob der Server läuft.

sudo systemctl enable --now rsyslog
sudo systemctl status rsyslog

In der folgenden Ausgabe kannst du sehen, dass Rsyslog läuft und aktiviert ist.

rsyslog prüfen

Einrichten der UFW (Unkomplizierte Firewall)

Nachdem Rsyslog installiert ist, installierst und konfigurierst du UFW (Uncomplicated Firewall). Du öffnest Port „22“ für den OpenSSH-Dienst und Port „514“ für Rsyslog. Dann startest du den UFW-Dienst und aktivierst ihn.

Um UFW zu installieren, führst du den folgenden„apt„-Befehl aus. Gib„Y“ ein, um die Installation zu bestätigen.

sudo apt install ufw

ufw installieren

Nach der Installation führst du den folgenden „ufw“-Befehl aus, um das„OpenSSH„-Profil zu aktivieren und den Zugriff auf Port „514“ zu ermöglichen. Das„OpenSSH„-Profil ermöglicht den SSH-Zugang und Port„514“ ist der Syslog-Port.

sudo ufw allow OpenSSH
sudo ufw allow 514

Starte nun UFW und aktiviere es mit dem folgenden Befehl. Gib zur Bestätigung„y“ ein und du erhältst eine Ausgabe wie„Firewall ist aktiv und beim Systemstart aktiviert„.

sudo ufw enable

Überprüfe abschließend den UFW-Status mit dem folgenden Befehl.

sudo ufw status

In der folgenden Ausgabe siehst du, dass die UFW aktiv ist, ein OpenSSH-Profil hat und der Port„514“ aktiviert ist.

ufw-Einrichtung

Rsyslog zum Empfangen von Logs vom Remote Server

Nachdem du Rsyslog installiert und UFW konfiguriert hast, kannst du nun Rsyslog so einrichten, dass es Protokolle von entfernten Servern empfängt. Dazu musst du die Datei „/etc/rsyslog.conf“ ändern und konfigurieren:

  1. Aktiviere das Modul„imudp„, um Logs von entfernten Servern über UDP zu empfangen.
  2. Optional: Aktiviere das Modul„imtcp„, um Logs über TCP zu empfangen
  3. Aktiviere die Option„AllowedSender„, um bestimmten Subnetzen zu erlauben, Logs aus der Ferne zu senden
  4. Hinzufügen einer benutzerdefinierten Vorlage für Rsyslog
  5. Überprüfen der Rsyslog-Konfiguration
  6. Starten, Aktivieren und Überprüfen des Rsyslog-Dienstes

Los geht’s.

Zuerst bearbeitest du die Datei„/etc/rsyslog.conf“ mit dem Editor„nano„.

sudo nano /etc/rsyslog.conf

Entferne die Kommentare in den folgenden Zeilen, um das„imudp„-Modul zu aktivieren und syslog zu ermöglichen, sich beim Rsyslog-Server anzumelden.

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

Wenn du Syslog über TCP aktivieren willst, aktiviere zusätzlich das Modul„imtcp“ wie folgt:

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="50514")

Füge nun die Option„AllowedSender“ hinzu und gib dein Netzwerk-Subnetz ein, das Syslog-Nachrichten an deinen Rsyslog-Server senden darf.

# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd
$AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.howtoforge.local, db.howtoforge.local

Gib die folgende Konfiguration ein, um eine Vorlage für Protokolldateien von den Remote-Servern einzurichten. In diesem Beispiel werden die Protokolldateien des Fernservers im Verzeichnis„/var/log/servers/server-ip“ gespeichert.

#Custom template to generate the log filename dynamically based on the client's IP address.
$template RemInputLogs, "/var/log/servers/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.?RemInputLogs

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den Befehl„rsyslogd“ aus, um die Rsyslog-Konfiguration zu überprüfen und sicherzustellen, dass du die richtige Konfiguration hast.

rsyslogd -f /etc/rsyslog.conf -N1

Wenn kein Fehler auftritt, führe den Befehl„systemctl“ aus, um den Dienst„rsyslog“ neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart rsyslog

rsyslog prüfen

Überprüfe abschließend den Status des„rsyslog„-Dienstes, um sicherzustellen, dass er läuft.

sudo systemctl status rsyslog

In der unten stehenden Ausgabe siehst du, dass„rsyslog“ läuft.

rsyslog-Dienst prüfen

Überprüfe außerdem den Port„514“ auf deinem Server, um sicherzustellen, dass Rsyslog läuft.

ss -tulpn | grep 514

Wie du unten siehst, wird der UDP-Port„514“ von Rsyslog verwendet.

check port rsyslog

Senden von Protokollen an den Rsyslog-Server

Nachdem du die Fernprotokollierung mit Rsyslog auf deinem Debian-Server konfiguriert hast, wollen wir nun versuchen, die Protokolle von„192.168.10.41“ an den„192.168.10.10„-Server zu senden. Dazu brauchst du Folgendes:

  • Installiere das Rsyslog-Paket auf deinem Rechner
  • Bearbeite die Rsyslog-Konfiguration und lege fest, welche Logs an den entfernten Rsyslog-Server gesendet werden sollen
  • Optional: Einrichten des Warteschlangenpuffers für Rsyslog

Installiere das „rsyslog“-Paket mit dem unten stehenden„apt„-Befehl. Gib„Y“ ein, um die Installation zu bestätigen.

sudo apt install rsyslog

rsyslog-Client installieren

Öffne nun die Standardkonfigurationsdatei„/etc/rsyslog.conf“ mit dem Editor„nano„.

sudo nano /etc/rsyslog.conf

Füge die folgende Konfiguration hinzu, um Logs an den Rsyslog-Server„192.168.10.10“ zu senden. In diesem Fall werden wir die Kernel-, Cron- und Authentifizierungsprotokolle an den Rsyslog-Server senden.

# Send logs to a remote syslog server over UDP
auth,authpriv.@192.168.10.10:514
kern.@192.168.10.10:514
cron.@192.168.10.10:514

Füge nun das Folgende hinzu, um einen Warteschlangenpuffer für Rsyslog einzurichten.

# Define Disk Queue Buffer in case the server goes down
$ActionQueueFileName queue # define a file name for disk assistance.
$ActionQueueMaxDiskSpace 1g # The maximum size that all queue files together will use on disk.
$ActionQueueSaveOnShutdown on # specifies that data should be saved at shutdown
$ActionQueueType LinkedList # holds enqueued messages in memory which makes the process very fast.
$ActionResumeRetryCount -1 # prevents rsyslog from dropping messages when retrying to connect if the server is not responding,

Speichere die Datei und beende den Editor.

Als Nächstes führst du den Befehl„rsyslogd“ aus, um deine Rsyslog-Konfiguration zu überprüfen und zu verifizieren.

rsyslogd -f /etc/rsyslog.conf -N1

Wenn kein Fehler auftritt, führe den Befehl„systemctl“ aus, um Rsyslog neu zu starten und zu überprüfen, ob es läuft.

sudo systemctl restart rsyslogd
sudo systemctl status rsyslogd

Unten siehst du, dass der Rsyslog-Dienst läuft und deine Logs an den Rsyslog-Server auf„192.168.10.10“ gesendet werden.

rsyslog-Dienst prüfen

Überprüfen der Logdateien auf dem Rsyslog-Server

Um sicherzustellen, dass dein Rsyslog funktioniert, musst du das Log-Verzeichnis überprüfen, das du in der Vorlage konfiguriert hast. In diesem Beispiel werden die Logdateien von Remote-Servern im Verzeichnis„/var/log/servers“ gespeichert.

Überprüfe das Log-Verzeichnis„/var/log/servers“ mit dem folgenden Befehl. Dadurch wird dir das Verzeichnis jedes Servers angezeigt.

ls /var/log/servers

Überprüfe nun das Log-Verzeichnis deines Servers, das sich im Verzeichnis„/var/log/servers/server-ip“ befindet. Du wirst sehen, dass mehrere Logdateien auf dem Rsyslog-Server vorhanden sind.

Du kannst nun die Logdateien mit dem Befehl„cat“ oder„tail“ überprüfen, um Details der Logs zu sehen.

cat /var/log/servers/logfile.log
tail -f /var/log/servers/logfile.log

Prüfprotokoll

Fazit

Herzlichen Glückwunsch! Du hast die Installation von Rsyslog auf dem Debian 12 Server abgeschlossen. Außerdem hast du die Fernprotokollierung über Rsyslog konfiguriert und das Protokoll über syslog UDP an den Server gesendet. Im nächsten Schritt kannst du auch TCP- und UDP-Eingabemodule einrichten und sie in Log-Systeme wie Rsyslog oder Logstash integrieren.

Das könnte dich auch interessieren …