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
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.
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
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.
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:
- Aktiviere das Modul„imudp„, um Logs von entfernten Servern über UDP zu empfangen.
- Optional: Aktiviere das Modul„imtcp„, um Logs über TCP zu empfangen
- Aktiviere die Option„AllowedSender„, um bestimmten Subnetzen zu erlauben, Logs aus der Ferne zu senden
- Hinzufügen einer benutzerdefinierten Vorlage für Rsyslog
- Überprüfen der Rsyslog-Konfiguration
- 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
Ü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.
Ü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.
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
Ö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.
Ü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
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.