Syslog Filter: Bug, Frage und Hilfestellung

Forum zum Thema Firewall

Moderator: Lancom-Systems Moderatoren

Antworten
Atom 2
Beiträge: 46
Registriert: 13 Dez 2008, 00:00
Wohnort: Wien / AT

Syslog Filter: Bug, Frage und Hilfestellung

Beitrag von Atom 2 »

Hallo Forum,
in Anlehnung an die Idee von @Jirka habe ich versucht. mich mal mit den Filtern zu spielen. Im Ergebnis wollte ich auf meinem 1781VA (over POTS), Release 10.42.0612RU5, Meldungen der folgenden Art, die häufig im Syslog aufscheinen, ausfiltern:

Code: Alles auswählen

n 	YYYY-MM-TT HH:MM:SS 	LOCAL3 	Alarm 	Dst: 123.123.123.123:pppp {1781VA}, Src: 210.210.210.210:ppppp (UDP): connection refused
Schritt 1: Offline Erstellen einer Perl regex, welche den Text der Syslog-Message matchen soll:

Code: Alles auswählen

^Dst: 123\.123.*\{1781VA\}, Src: .* \(UDP\): connection refused$
Danach prüfen mit einem online perl regex checker wie z.B. hier, ob die regex den Text tatsächlich matcht und anschließende Übernahme in das passende Feld der Tabelle Konfiguration -> Meldungen/Monitoring -> Protokolle -> Filter

Zwischenergebnis/Bug: Das Feld akzeptiert den Stern ("*") mit einer entsprechenden Popup Meldung nicht als gültiges Zeichen, obwohl der Stern tatsächlich ein gültiges Metazeichen gemäß Perl Syntax ist (Bedeutung: das vorherige Zeichen kommt 0 bis n-mal vor). Das dürfte ein Bug (allenfalls nur in der GUI) sein.

Schritt 1a: Dieser Bug ist hier aber deswegen kein Problem, weil stattdessen ebensogut das Pluszeichen ("+") verwendet werden kann (Bedeutung: das vorherige Zeichen kommt 1 bis n-mal vor). Damit ist nunmehr die Eingabe von

Code: Alles auswählen

^Dst: 123\.123.+\{1781VA\}, Src: .+ \(UDP\): connection refused$
im Feld möglich und kann übernommen werden. Bei der Filter-Aktion wird "Ablehnen" ausgewählt, als Abgleich-Quelle kommt "Router" zur Anwendung (Anm: dies nach meiner Ansicht deswegen, weil die Facility "LOCAL3" in der Nachricht vorkommt und diese gemäß der Tabelle "Facility-Zuordnung" mit dem "Router" korrespondiert). Der Eintrag "Setze Quelle" bleibt auf "Keine" (es soll keine Umschlüsselung stattfinden) und bei Abgleich-Level wird "Alarm" ausgewählt (die Meldung kommt ja auch als Alarm herein). Abschließend bleibt auch "Setze Level" auf "Keine" (auch hier erneut keine Umschlüsselung). Als Name habe ich IGN_UDP_CR vergeben.

Damit sollte der Filter eigentlich definiert sein, der nunmehr dem passenden Syslog-Server zugeordnet werden muß - so zumindest mein Verständnis. Daher auf zu Schritt 2.

Schritt 2: Zuordnung der erstellten Filterregel unter Konfiguration -> Meldungen/Monitoring -> Protokolle -> SYSLOG-Server. Dort gibt es eine Reihe von vordefinierten Einträgen je Quelle für den lokalen Server unter 127.0.0.1. Von Relevanz dürfte auch hier der (bei mir letzte) Eintrag für die Quelle Router (die ja LOCAL3 entsprechen sollte) sein. Diesen Eintrag habe ich nunmehr so modifiziert, daß unter Filter-Regel "Ablehnen" ausgewählt wird und als Filter-Name der definierte Filter "IGN_UDP_CR" ausgewählt wird. Die Priorität "Alarm" war bereits vorausgewählt und korrespondiert auch mit den in den Nachrichten vermerkten Priorität.

Zwischenfrage: Warum ist es erforderlich, der Zuordnung erneut eine Filter-Regel mit "Ablehnen" einzugeben, wenn das doch bereits in der Definition des Filters selbst unter dem Eintrag "Filter-Aktion" passiert ist? Was geschieht, wenn diese beiden Einträge einander widersprechen? Die Logik dahinter ist für mich aktuell nicht klar ...
Bemerkung: Ich hatte im übrigen bei der Filter-Regel (zuerst) "Zulassen" ausgewählt, weil ich das Feld ursprünglich als "Filter ist aktiv oder inaktiv" interpretiert hatte - die Aktion "Zulassen" oder "Ablehnen" wird ja wie gesagt im Filter selbst definiert. Das Manual hat mich dann aber zu "Ablehnen" gebracht, was im Ergebnis obige Zwischenfrage auslöst.

Danach alles speichern, hoffen und einige Zeit warten, ob immer noch derartige Nachrichten kommen ... und leider, ja, die Nachrichten scheinen weiterhin im Log auf. Überlegen, was könnte falsch sein ... allenfalls braucht die Perl regex das übliche delimiter-Teichen ("/") am Anfang und Ende. Daher erneuter Versuch:

Schritt 3: Änderung der Perl regex in der Filterdefinition von

Code: Alles auswählen

^Dst: 123\.123.+\{1781VA\}, Src: .+ \(UDP\): connection refused$
auf

Code: Alles auswählen

/^Dst: 123\.123.+\{1781VA\}, Src: .+ \(UDP\): connection refused$/
Die Eingabe wird akzeptiert, alles sichern, erneut hoffen und einige Zeit warten ... und leider wieder kein Erfolg: Die Nachrichten sind immer noch im Syslog zu finden.

Ich hatte noch Hoffnung, daß ich mittels trace weiterkomme, aber der Syslog-Server läßt sich leider nicht tracen ... und damit bin ich derzeit am Ende und weiß nicht, was ich hier falsch mache. Ich hoffe aber auf zielführende Hinweise eines Spezialisten von hier - eigentlich sollte das doch kein Hexenwerk sein.

Herzlichen Dank im voraus und liebe Grüße, Atom2
Antworten