Wechseln zu:Navigation, Suche
Wiki
Zeile 52: Zeile 52:
Folgender Regex wäre korrekt:<br>
Folgender Regex wäre korrekt:<br>
'''www\.securepoint\.de'''<br><br>
'''www\.securepoint\.de'''<br><br>
Warum muss der Regex so aussehen?<br>
Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash '''\''' die Regex-Funktion des folgenden Zeichen auf. So kann auch auf den Punkt gematcht werden. Man spricht in so einem Fall vom "escapen" eines Zeichens.<br>
Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash '''\''' die Regex-Funktion des folgenden Zeichen auf. So kann auch auf den Punkt gematcht werden. Man spricht in so einem Fall vom "escapen" eines Zeichens.<br>



Version vom 19. Dezember 2016, 15:53 Uhr

Vorlage:V11

Einleitung

Bei der Konfiguration der UTM stößt man an gleich mehreren Stellen auf die Verwendung von regulären Ausdrücken (Regex). Ein Regex wird dazu verwendet, eine Zeichenkette auf eine bestimmte Zusammensetzung zu prüfen. Im Folgenden wird die Zusammensetzung und die Anwendung von Regexen innerhalb der Securepoint UTMv11 erklärt.

Zusammensetzung

Grundlage dieses Wikis ist der Regex //. Der erste Slash steht für den Beginn des Regex und der zweite für das Ende des Regex. Innerhalb des Regex werden folgende Zeichen verwendet.

. steht für ein beliebiges Zeichen
[abc] matcht auf alle Buchstaben in den Klammern: a, b oder c
[^abc] matcht auf alle Buchstaben bis: a, b oder c
[a-z] matcht auf alle Buchstaben von: a bis z
[a-zA-Z] matcht auf alle Buchstaben von: a bis z oder A bis Z
^ steht für den Beginn einer Zeile
$ steht für das Ende einer Zeile
\s steht für ein Leerzeichen
\ hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen
\r\n ist eine Return oder eine Linefeed (Windows neue Zeile)
* wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal
+ wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal
{1} steht für das vorherige Zeichen, 1 Mal
{2,4} steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander
{3,} steht für das vorherige Zeichen, mindestens 3 Mal
[^:] steht für alles außer einem Doppelpunkt

Beispiele

allgemeiner Regex - einfach

Im einfachen Beispiel soll der eingegebene Wert eines Textfeldes geprüft werden. In dem Textfeld soll die Hausnummer eingetragen werden. Durch die vorher definierte Stadt bleiben nur Hausnummern von 1 bis 9 und Adresszusätze von a bis f.
Der Regex für diesen Fall würde so aussehen:
[1-9][a-f]

Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:
[1-9][A-F]

Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:
[1-9][a-fA-F]

allgemeiner Regex - fortgeschritten

Im fortgeschrittenen Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf point enden.
checkpoint
mountpoint
securepoint

Ein Regex der auf alle genannten Wörter matcht würde dann theoretisch so aussehen:
.*point

Praktisch würde auch folgendes vom Regex erfasst werden:
das ist kein point

Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:
[a-zA-Z]*point

URL-Regex

Im einfachen URL-Beispiel soll auf www.securepoint.de gematcht werden.
Folgender Regex wäre korrekt:
www\.securepoint\.de

Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash \ die Regex-Funktion des folgenden Zeichen auf. So kann auch auf den Punkt gematcht werden. Man spricht in so einem Fall vom "escapen" eines Zeichens.

Anwendungsbereiche von Regexen

HTTP-Proxy: Virenscanner

In der aktuellen UTMv11 gibt es in gleich mehreren Anwendungen die Möglichkeit mit Regexen zu arbeiten. Möchten Sie beispielsweise die URL http://www.securepoint.de/produkte/utm-firewalls.html in die Whitelist des Virenscanners aufnehmen, ist es sehr wichtig, dass letztendlich genau diese URL in die Whitelist aufgenommen wird.

Der passende Regex lautet also:
http://www\.securepoint\.de/produkte/utm-firewalls\.html
Alternativ kann man auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:
Beispiel: ^[^:]*://download\.windowsupdate\.com/

HTTP-Proxy: Authentifizierungsausnahmen

In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:
Beispiel: www\.securepoint\.de

HTTP-Proxy: SSL-Interception

Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.
Beispiel: www\.securepoint\.de oder .*\.securepoint\.de