Beitragsbaum

 

 

Syslog… wie jetzt?

Wie hilfreich ein Syslog Server wirklich erscheint, erfährt man dann, wenn man diesen wirklich braucht. Sobald keine Möglichkeit mehr vorhanden ist für einen Zugriff auf ein entferntes Netzwerkgerät, würde man gerne wissen wollen, was sich zuletzt auf dem System getan hat. Kam es vielleicht zu einer Änderung in der Spanning Tree Topology, ein Schwenker im Routing oder doch eine fatale und unglückliche Änderung der Konfiguration seitens Administrator?

All diese Informationen könnte man schnell sammeln und herausfinden, wenn man eine gute Konfiguration des Syslogs auf dem Gerät, als auch einen gut konfigurierten Syslog Server hat. Die Konfiguration ist simpel. Das Einrichten des Syslogs auf Seiten des Netzwerkgerätes ist einfach, Bedarf allerdings den nötigen Informationen für den Umfang des Loggings. Daher ist mein erster Ratschlag erst einmal zu schauen…

… was will ich denn überhaupt alles loggen?
… in welchem Umfang ich loggen möchte und ob eine Priorisierung der Messages notwendig sei?
… was ist bereits an Syslog vorkonfiguriert und wie sieht meine Management Konfiguration des Netzwerkgerätes aus? Muss ich auf etwas spezielles achten?
… welche Hops habe ich zwischen Netzwerkgerät und Syslog Server zum Empfang der Messages?

 

Brainstorming

Man merkt schnell, dass ganze Thema kann ziemlich ausarten. Je nach System verhält sich das Logging auf dem Netzwerkgerät unterschiedlich. So lassen sich vielleicht ohne Priorisierung der Messages zu viele Logs anlegen und dies würde zu einem fatalen Performanceproblem führen? Noch besser. Einer meiner Standorte wäre beispielweise mit einer geringen Bandbreite in Form von 5Mbit angebunden. Habe nun aber zehn Geräte die haufenweise Logs die Sekunde an den Hauptstandort über diese Leitung schicken. Wie sehr würde diese Leitung dann eingeschränkt beziehungsweise belastet werden? Natürlich sind die Messages nicht wirklich groß, aber die Masse macht’s… vergleichbar mit einem Broadcast Storm.

Daher empfiehlt es sich wirklich gut überlegt zu handeln und Szenarien durchzuspielen. Ich werde euch einfach mal ein Beispiel anhand meiner Konfiguration zeigen und wie ich vorgegangen bin.

Da meine Netzwerkgeräte über Managementnetze angebunden sind, müssen die Logging Messages auch über dieses Netzsegment verschickt werden. Diese Logs müssen in der Regel eine oder mehrere Firewalls passieren bis diese dann wirklich am Syslog Server ankommen. Auf diesen Firewalls muss dann geschaut werden, ob diese passieren dürfen oder gedropt werden. Gegebenenfalls muss hier eine ACL definiert werden. Regulär werden Logging Informationen über den UDP Port 514 verschickt. Zum Schluss muss geschaut werden ob auf dem Server die Messages durch die Systemfirewall durchgelassen werden und ob diese dann auch wirklich in Dateien geschrieben werden.

 

Konfigurationsbeispiel

Als Beispiel zeige ich die Konfiguration des Syslogs für Cisco Switche und Router. Konfiguration kann je nach OS Version abweichen.

 

Basic

Als Erstes möchte ich erstmal in den archive configuration mode.

(config)# archive

Danach setze ich den logger in configuration mode um diesen anzupassen.

(config-archive)# log config

 

Natürlich will ich geloggt bekommen, wenn es Änderungen an der Konfiguration gibt.

(config-archive-log-config)# logging enable

 

Außerdem soll die maximale Größe der geloggten Messages begrenzt werden. Default sind hier 100 eingestellt, maximal sind 1000 möglich. Ich entscheide mich aber für 200 Nachrichten die im Cache verweilen sollen. Wenn die 200 erreicht sind, wird jedesmal der älteste bestehende Logeintrag für einen Neuen überschrieben.

(config-archive-log-config)# logging size 200

 

Natürlich sollen keine Passwörter mitgeloggt werden, daher muss dies extra definiert werden.

(config-archive-log-config)# hidekeys

 

Advanced

Die Messages haben standardmäßig einen Facility Value von 7 und dies behalten wir auch bei. Hier gibt es die Möglichkeit auch zu sagen das es sich um Mail Syslog handeln mit dem facility value mail und noch viel mehr…

(config)# logging facility local7

 

Jetzt will ich festlegen, dass nicht alle Systemmeldungen geloggt beziehungsweise verschickt werden. Cisco hat hier folgende Level festgelegt:

0 = Emergency
1 = Alert
2 = Critical
3 = Error
4 = Warning
5 = Notifications
6 = Informational
7 = Debug

 

Es reicht absolut aus ab Notification zu loggen, da es dort erst interessant wird für das Troubleshooting. Beispielsweise werden hier Lineprotocol up/down angezeigt oder Spanning Tree Änderungen.

(config)# logging trap notifications

 

Aus Sicht der Security wäre es nicht gerade schön, dass sämtliche Logging Informationen auch an meine Konsole geschickt werden. Ich will nicht, dass durch eine fehlerhafte Konfiguration irgendjemand die Logs empfängt, sobald dieser mit der Konsole verbunden ist. Mal davon abgesehen verbraucht dies auch zusätzlich CPU und das nicht als so wenig. Je mehr Logs, desto mehr CPU Auslastung und das muss ja nicht sein.

(config)# no logging console

 

Beschränken wie viele Logs intern gepuffert werden, möchte ich auch einstellen. Dies sollte nicht auf das Maximale ausgereizt werden, da dies auf den Memory schlägt.

(config)# logging buffered 64000

 

Wichtig meiner Meinung nach ist auf alle Fälle sämtliche Änderungen seitens Spanning Tree mit zu loggen. Denn Änderungen an einer laufenden STP Einrichtung kann fatale Folgen mit sich bringen. Darüber möchte man doch gerne informiert werden um schnell agieren zu können oder den Fehler zu analysieren.

(config)# spanning tree logging

 

Als Letztes gebe ich dem Switch die Information an welchen Host er die Syslog Messages überhaupt schicken soll. Außerdem habe ich noch den typischen Syslog Port 514 definiert. Natürlich muss hier die IP des Syslog Servers verwendet werden anstatt die Loopback…

(config)# logging host 127.0.0.1 transport udp port 514

 

Wichtig ist hier zu achten, ob ich direkt über ein Interface mit dem Managementnetz verbunden bin oder über beispielweise VRF angebunden bin. Falls dies der Fall ist, muss der Befehl noch mit der VRF Option erweitert werden. Auch hier die IP des Syslog Servers anstatt der Loopback.

(config)# logging host 127.0.0.1 vrf mgmt transport udp port 514

 

Zusammenfassung

Das war es dann auch schon mit der Konfiguration auf dem Switch. Zusammengefasst sieht die Konfiguration folgendermaßen aus.

archive
log config
logging enable
logging size 200
hidekeys
logging facility local7
logging trap informational
no logging console
logging buffered 64000
spanning-tree logging
logging host 127.0.0.1 transport udp port 514
! falls VRF vorhanden
! logging host 127.0.0.1 vrf mgmt transport udp port 514

Außerdem habe ich Konfiguration nochmal extra in einer eigenständigen Textdatei zusammengeschrieben: syslog.txt

 

over & out,

jonsch