Wechseln zu:Navigation, Suche
Wiki
KKeine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Einleitung =
{{Set_lang}}
Bei der Konfiguration der UTM werden gleich an mehreren Stellen '''reguläre Ausdrücke (kurz Regex)''' benötigt. 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 ==
{{#vardefine:headerIcon|spicon-utm}}
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.<br><br>
{{:UTM/APP/Regex.lang}}
'''.''' steht für ein beliebiges Zeichen<br>
 
'''[abc]''' matcht auf alle Buchstaben in den Klammern: a, b oder c<br>
</div>{{Select_lang}}{{TOC2}}
'''[^abc]''' matcht auf alle Buchstaben bis: a, b oder c<br>
 
'''[a-z]''' matcht auf alle Buchstaben von: a bis z<br>
{{Header|11.8|
'''[a-zA-Z]''' matcht auf alle Buchstaben von: a bis z oder A bis Z<br>
* {{#var:3b|Artikelanpassung}}
'''^''' steht für den Beginn einer Zeile<br>
* {{#var:3c|Übersetzung}} 
'''$''' steht für das Ende einer Zeile<br>
}}
'''\s''' steht für ein Leerzeichen<br>
----
'''\''' hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen<br>
 
'''\r\n''' ist eine Return oder eine Linefeed (Windows neue Zeile)<br>
=== {{#var:Einleitung}} ===
'''*''' wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal<br>
<div class="Einrücken">{{#var:Einleitung--desc}}</div>
'''+''' wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal<br>
 
'''{1}''' steht für das vorherige Zeichen, 1 Mal<br>
=== {{#var:Zusammensetzung}} ===
'''{2,4}''' steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander<br>
<div class="Einrücken">{{#var:Zusammensetzung--desc}}</div>
'''{3,}''' steht für das vorherige Zeichen, mindestens 3 Mal<br>
 
'''[^:]''' steht für alles außer einem Doppelpunkt<br>
{| class="top pd5 Einrücken"
|-
| style="min-width: 70px;" | '''<code>.</code>''' || {{#var:8|steht für ein beliebiges Zeichen}}
|-
| '''<code>[abc]</code>''' || {{#var:9|matcht auf alle Buchstaben in den Klammern: '''a, b''' oder '''c'''}}
|-
| '''<code>[^abc]</code>''' || {{#var:10|matcht auf alle Buchstaben '''außer''': a, b oder c}}
|-
|'''<code>[a-z]</code>''' || {{#var:11|matcht auf alle Buchstaben von: a bis z}}<br>
|-
| '''<code>[a-zA-Z]</code>''' || {{#var:12|matcht auf alle Buchstaben von: a bis z oder A bis Z}}
|-
|'''<code>^</code>''' || {{#var:13|Steht für den Beginn einer Zeile}}
|-
| '''<code>$</code>'''||  {{#var:14|steht für das Ende einer Zeile}}
|-
| '''<code>\s</code>''' || {{#var:15|steht für ein Leerzeichen}}
|-
| '''<code>\</code>''' || {{#var:16|hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen}}
|-
| '''<code>\r\n</code>''' || {{#var:17|ist eine Return oder eine Linefeed (Windows neue Zeile)}}
|-
| '''<code>*</code>''' || {{#var:18|wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal}}
|-
| '''<code>+</code>''' || {{#var:19|wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal}}
|-
| '''<code>{1}</code>''' || {{#var:20|steht für das vorherige Zeichen, 1 Mal}}
|-
| '''<code>{2,4}</code>''' || {{#var:21|steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander}}
|-
| '''<code>{3,}</code>''' || {{#var:22|steht für das vorherige Zeichen, mindestens 3 Mal}}
|-
| '''<code>[^:]</code>''' || {{#var:23|steht für alles außer einem Doppelpunkt}}
|}
<br>
<br>


== Beispiele ==
=== {{#var:Beispiele}} ===
=== allgemeiner Regex - einfach ===
<div class="Einrücken">
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. <br>
==== {{#var:Beispiel 1}} ====
Der Regex für diesen Fall würde so aussehen:<br>
<div class="Einrücken">{{#var:Beispiel 1--desc}}
'''[1-9][a-f]'''<br><br>
* {{#var:27|Der Regex für diesen Fall würde so aussehen:}} <br>{{code| [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:<br>
* {{#var:28|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:}} <br>{{code| [1-9][A-F] }}
'''[1-9][A-F]'''<br><br>
* {{#var:29|Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:}} <br>{{code | [1-9][a-fA-F] |class=bold}}
Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:<br>
</div>
'''[1-9][a-fA-F]'''<br><br>


=== Allgemeiner Regex - fortgeschritten ===
==== {{#var:30|Beispiel 2}} ====
Im fortgeschrittenen Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf '''point''' enden.<br>
<div class="Einrücken">
checkpoint<br>
* {{#var:31|Im Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf '''point''' enden.}}<br>{{#var:32|checkpoint}}<br>{{#var:33|mountpoint}}<br>{{#var:34|securepoint}}
mountpoint<br>
* {{#var:35|Ein Regex der auf alle genannten Wörter matcht sieht so aussehen:}} <br>{{code | .*point }}
securepoint<br><br>
* {{#var:36|Praktisch würde auch folgendes vom Regex erfasst werden:}}<br>'''{{#var:37|das ist kein point}}'''
Ein Regex der auf alle genannten Wörter matcht würde dann theoretisch so aussehen:<br>
* {{#var:38|Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:}} <br>{{code | [a-zA-Z]*point |class=bold }}
'''.*point'''<br><br>
</div>
Praktisch würde auch folgendes vom Regex erfasst werden:<br>
'''das ist kein point'''<br><br>
Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:<br>
'''[a-zA-Z]*point'''


=== URL-Regex ===
==== {{#var:39|Beispiel 3 - URL-Regex}} ====
Im einfachen URL-Beispiel soll auf www.securepoint.de gematcht werden.<br>
<div class="Einrücken">
Folgender Regex wäre korrekt:<br>
{{#var:40|Im URL-Beispiel soll auf www.securepoint.de gematcht werden.}}<br>
'''www\.securepoint\.de'''<br><br>
* {{#var:41|Folgender Regex wäre korrekt:}} <br>{{code | \.securepoint\.de |class=bold}}<br>{{#var:42|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 '''<code>\</code>''' die Regex-Funktion des folgenden Zeichens auf. So kann auch auf den Punkt gematcht werden. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.}}
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. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.<br>
</div>
</div>


== Anwendungsbereiche von Regexen ==
=== {{#var:43|Anwendungsbereiche von Regexen}} ===
=== HTTP-Proxy: Virenscanner ===
<div class="Einrücken">
Soll beispielsweise die URL '''http://www.securepoint.de/produkte/utm-firewalls.html''' in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich '''genau diese''' URL in die Whitelist aufgenommen wird.<br><br>
==== {{#var:44|HTTP-Proxy: Virenscanner}} ====
'''Der passende Regex lautet also:'''<br>
<div class="Einrücken">
'''http://www\.securepoint\.de/produkte/utm-firewalls\.html'''
{{#var:45|Soll beispielsweise die URL '''<nowiki>http://download.windowsupdate.com</nowiki>''' in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich '''genau diese''' URL in die Whitelist aufgenommen wird.}}<br><br>
<br>
* {{#var:46|Der passende Regex lautet also:}} <br>{{code|<nowiki>http://download\.windowsupdate\.com/</nowiki>}}
Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:<br>
* {{#var:47|Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:}}<br>{{#var:48|Beispiel:}} {{code | <nowiki>^[^:]*://download\.windowsupdate\.com/</nowiki> }}
'''Beispiel: ^[^:]*://download\.windowsupdate\.com/'''


<br>
<br>
Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in [[Liste_Virenscanner|diesem Beitrag]] zu finden.
{{#var:49|Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in [[UTM/APP/HTTP_Proxy-Virenscanner|diesem Beitrag]] zu finden.}}
</div>


=== HTTP-Proxy: Authentifizierungsausnahmen ===
==== {{#var:50|HTTP-Proxy: Authentifizierungsausnahmen}} ====
In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:<br>
<div class="Einrücken">
'''Beispiel: www\.securepoint\.de'''
{{#var:51|In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:}}
* {{#var:48|Beispiel:}} {{code|www\.securepoint\.de}}
</div>


=== HTTP-Proxy: SSL-Interception ===
==== {{#var:52|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.<br>
<div class="Einrücken">
'''Beispiel: www\.securepoint\.de''' oder '''.*\.securepoint\.de'''
{{#var:53|Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.}}
* {{#var:48|Beispiel:}} {{code | www\.securepoint\.de}} oder {{code| \.securepoint\.de }}
</div></div>

Aktuelle Version vom 29. September 2023, 09:57 Uhr





























De.png
En.png
Fr.png








Syntax und Anwendung von Regex-Ausdrücken
Letzte Anpassung: 11.8
Neu:
  • Artikelanpassung
  • Übersetzung
notempty
Dieser Artikel bezieht sich auf eine Resellerpreview
-

Einleitung

Bei der Konfiguration der UTM werden für mehrere Anwendungen reguläre Ausdrücke (kurz Regex) benötigt. Ein Regex wird dazu verwendet, um eine Zeichenkette auf eine bestimmte Zusammensetzung zu prüfen. Im Folgenden wird die Zusammensetzung und die Anwendung von Regexen innerhalb der Securepoint UTM erklärt.

Zusammensetzung

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 außer: 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 ein Return oder ein 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

Beispiel 1

Im Beispiel wird der eingegebene Wert eines Textfeldes geprüft. 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]

Beispiel 2

  • Im 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 sieht so aus:
    .*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

Beispiel 3 - URL-Regex

Im URL-Beispiel soll auf www.securepoint.de gematcht werden.

  • Folgender Regex wäre korrekt:
    \.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 Zeichens auf. So kann auch auf den Punkt gematcht werden. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.

Anwendungsbereiche von Regexen

HTTP-Proxy: Virenscanner

Soll beispielsweise die URL http://download.windowsupdate.com in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich genau diese URL in die Whitelist aufgenommen wird.

  • Der passende Regex lautet also:
    http://download\.windowsupdate\.com/
  • Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:
    Beispiel: ^[^:]*://download\.windowsupdate\.com/


Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in diesem Beitrag zu finden.

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