Kann ein Syslog-Server ein Client-Betriebssystem erkennen?

Kann ein Syslog-Server ein Client-Betriebssystem erkennen?

Ich habe vor kurzem einen zentralen Syslog-Server eingerichtet. Die Protokolle werden in Dateien organisiert, in Ordnern, die nach den Client-Rechnern benannt sind (mithilfe von DNS), und mit Logcheck gescannt.

Einige der Client-Rechner haben mehr als ein Betriebssystem (nämlich Linux und Windows) und haben am Ende dieselbe IP-Adresse und denselben Hostnamen. Das Ergebnis ist, dass Windows-Protokolle (Meldungen) und Linux-Protokolle in derselben Datei landen, was mich und logcheck ziemlich unglücklich macht. Ich bin daran interessiert, die Protokolle für verschiedene Betriebssysteme getrennt zu halten.

Meine Lösung bestand darin, Syslog auf mehreren Ports abhören zu lassen und Syslog/rsyslog auf den Linux- und Windows-Client-Rechnern so zu konfigurieren, dass sie unterschiedliche Portnummern verwenden. Auf diese Weise kann ich Protokolle entsprechend ihrer Quelle problemlos in entsprechende Dateien umleiten.

Allerdings bin ich von der Eleganz dieser Lösung nicht ganz überzeugt – nmap kann das Client-Betriebssystem über den Fingerabdruck des TCP/IP-Stacks erkennen.

Gibt es eine Möglichkeit, Syslog-ng so zu konfigurieren, dass die eingehenden Daten entsprechend dem Betriebssystem eines Client-Computers umgeleitet werden?

Antwort1

Ihr Ansatz mit unterschiedlichen Ports für Linux- und Windows-Rechner ist überhaupt nicht schlecht.

Alternativen:

  • Verwenden eines Programms als Ziel in syslog-ng (z. B. Ihr benutzerdefiniertes Skript, das das aktuelle Betriebssystem des Clientcomputers überprüft und in linux.log oder windows.log schreibt) – langsam und unzuverlässig.
  • Verwenden Sie match(...) im Syslog-ng-Filter, um zwischen Linux- und Windows-Syslog-Zeichenfolgen zu unterscheiden (ich bin nicht sicher, ob dies einfach und zuverlässig ist, es sei denn, Sie können eine Markierungsteilzeichenfolge in das Syslog des Clients einfügen) und verwenden Sie einen solchen Filter, um die Zielprotokolldatei auszuwählen.

Beides kann man kaum empfehlen.

Ein weiterer Trick kann die Verwendung von TCP-Transport für Syslog von Linux-Clients und UDP von Windows sein. Dann können Sie Dateiziele mit Filter für Protokoll konfigurieren.

verwandte Informationen