{"id":11916,"date":"2020-12-02T16:02:35","date_gmt":"2020-12-02T15:02:35","guid":{"rendered":"https:\/\/www.boc.de\/watchguard-info-portal\/?p=11916"},"modified":"2024-07-23T15:16:03","modified_gmt":"2024-07-23T13:16:03","slug":"howto-verwendung-von-regex-suchmustern-bei-der-suche-im-firebox-system-manager","status":"publish","type":"post","link":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/2020\/12\/howto-verwendung-von-regex-suchmustern-bei-der-suche-im-firebox-system-manager\/","title":{"rendered":"HOWTO &#8211; Verwendung von REGEX Suchmustern bei der Suche im Firebox System Manager"},"content":{"rendered":"<p>Die Suche im Traffic Monitor wird oft als schwach bezeichnet, weil hier keine &#8220;wildcards&#8221; unterst\u00fctzt werden.<\/p>\n<p>Diese Aussage ist jedoch schlicht falsch, da der FSM sehr wohl wildcards unterst\u00fctzt, allerdings nicht die &#8220;\u00fcblichen Verd\u00e4chtigen&#8221; und zudem erst nach zus\u00e4tzlicher Aktivierung der Suchmuster (REGEX). Wenn man sich ein wenig eingearbeitet hat, enth\u00e4lt der FSM durch Vewendung der REGEX einen der leistungsf\u00e4higsten Suchfilter, die so \u00fcblicherweise zur Verf\u00fcgung gestellt werden. Leider sind REGEX nicht wirklich intuitiv \ud83d\ude42<\/p>\n<p><!--more--><\/p>\n<h4>Vorbereitungen:<\/h4>\n<p>Zun\u00e4chst schaltet man im Firebox System Manager unter <strong>FILE &gt; SETTINGS<\/strong> die Regul\u00e4ren Ausdr\u00fccke frei:<\/p>\n<p><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h24_10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-11917 alignnone\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h24_10.png\" alt=\"\" width=\"494\" height=\"220\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h24_10.png 494w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h24_10-300x134.png 300w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/a><\/p>\n<p>Die &#8220;Maximum Log Messages&#8221; in Tausend Zeilen stehen per Default auf 1 (=1000 Log-Zeilen).<\/p>\n<p>Diese sind f\u00fcr den t\u00e4glichen Gebrauch meist viel zu niedrig, weil man \u00fcblicherweise ein intensives Logging aktiviert hat und damit deutlich mehr Logzeilen geschrieben werden. Der FSM holt dann alle 5 Sekunden die oben angegebene Anzahl Log-Zeilen von der Firebox (1000 Zeilen in 5 Sekunden sind bei gr\u00f6\u00dferen Fireboxen einfach zu wenig). Werte zwischen 15 und 25 haben sich als praktikabel erwiesen.<\/p>\n<p>Vorsicht hierbei beim &#8220;Remote-Managen&#8221; einer Box, die hinter einer sehr langsamen Leitung steht (z.B. ADSL\u00a0 6000). Durch den sehr beschr\u00e4nkten Upload kann man sich hier ggf. selbst ein Bein stellen.<\/p>\n<p>Logzeilen sind i.d.R. zwischen 150 und 600 Characters (z.B. im inneren eines HTTPS-Proxies mit Deep Inspection und langen URLs). Bei 150 Characters und 20.000 Log-Zeilen sind wir hier bereits bei 3 MByte \/ 5 Sekunden, was dann etwa knapp 5 MBit\/s entspricht.<\/p>\n<p>F\u00fcr o.g. langsame Au\u00dfenstellen sollte man sich dann doch eher mit weniger Zeilen begn\u00fcgen, oder die Suche \u00fcber eine Dimension komplett auslagern.<\/p>\n<p>Weiterhin sollte man den Suchmodus auf Filter Search Results stellen:<\/p>\n<p><a href=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h36_15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-11918 alignnone\" src=\"https:\/\/www.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h36_15.png\" alt=\"\" width=\"350\" height=\"106\" srcset=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h36_15.png 350w, https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-content\/uploads\/2020\/12\/2020-12-02_13h36_15-300x91.png 300w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/p>\n<h4>REGEX<\/h4>\n<p>Nachdem man obige Einstellungen get\u00e4tigt hat, kann man in der Suchmaske rechts auch Regul\u00e4re Ausdr\u00fccke (REGEX) verwenden.<\/p>\n<p>Was sind nun eigentlich REGEX? Regul\u00e4re Ausdr\u00fccke sind &#8220;Beschreibungssprache&#8221; f\u00fcr Zeichenketten (genauere Infos z.B. bei Wikipedia, s.u.).<\/p>\n<p>Man kann in Programmiersprachen ziemlich tief in REGEX eintauchen &#8211; ich m\u00f6chte mich in diesem Tutorial aber auf wenige F\u00e4lle spezialisieren, die hier beim FSM besonders hilfreich sind.<\/p>\n<h4>JOKER-Zeichen<\/h4>\n<p>Nat\u00fcrlich gibt es in Regul\u00e4ren Ausdr\u00fccken Joker-Zeichen:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">.          =&gt; ein beliebiges Zeichen, entspricht \"?\" in der DOS-Box\r\n*          =&gt; der Ausdruck links davon \"null oder viele Male\"\r\n+          =&gt; der Ausdruck links davon \"ein oder viele Male\"\r\n\\          =&gt; das nachfolgende Zeichen \"literally\"\r\n.*         =&gt; ein bielibiges Zeichen, null oder viele Male =&gt; entspricht \"*\" in der DOS-Box<\/pre>\n<p>Damit w\u00fcrde man ein <strong>*.doc<\/strong> also entweder als <strong>.*\\.doc <\/strong>oder als <strong>.+\\.doc<\/strong> schreiben. In den meisten F\u00e4llen muss der <span style=\"color: #ff0000;\"><strong>.<\/strong><\/span> aber nicht durch <strong>\\.<\/strong> beschrieben werden, da ein <strong>.<\/strong>\u00a0ja auch einem <strong>beliebigen Zeichen<\/strong> entspricht und damit ein <strong>.*.doc<\/strong> meistens nahe genug am gesuchten String ist.<\/p>\n<h4>Beispiel<\/h4>\n<p>Suchstring: <strong>10.10.1.3.*dns.*=&#8221;A&#8221;<\/strong><\/p>\n<p>Dabei wurden die Punkte in der IP-Adresse gelassen, dann wurde versucht auf DNS aus dns\/udp zu matchen, und auf den type=&#8221;A&#8221; der Zeile.<\/p>\n<p>Ergebnis:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">2020-12-02 14:25:26 Allow 10.10.1.3 10.10.1.11 dns\/udp 50151 53 Trusted Firebox DNS Forwarding 71 128 (Internal Policy) ...\r\n2020-12-02 14:25:43 Allow 10.10.1.36 10.10.1.11 dns\/udp 39297 53 Trusted Firebox DNS Forwarding 62 64 (Internal Policy) ...\r\n2020-12-02 14:26:18 Allow 10.10.1.3 10.10.1.11 dns\/udp 59785 53 Trusted Firebox DNS Forwarding 66 128 (Internal Policy) ...\r\n2020-12-02 14:26:18 Allow 10.10.1.3 10.10.1.11 dns\/udp 53603 53 Trusted Firebox DNS Forwarding 79 128 (Internal Policy) ...\r\n2020-12-02 14:26:39 Allow 10.10.1.3 10.10.1.11 dns\/udp 55703 53 Trusted Firebox DNS Forwarding 80 128 (Internal Policy) ...\r\n2020-12-02 14:27:14 Allow 10.10.1.3 10.10.1.11 dns\/udp 53617 53 Trusted Firebox DNS Forwarding 73 128 (Internal Policy) ...\r\n<\/pre>\n<p>(Logzeilen f\u00fcr den Artikel gek\u00fcrzt)<br \/>\nWie man sieht, ist der Match auf die IP nicht eindeutig, weil die 10.10.1.3 auch auf die 10.10.1.36 matcht.<\/p>\n<p><strong>Ein entsprechendes Leerzeichen nach der &#8220;10.10.1.3 &#8221; im Suchmuster behebt dies.<\/strong><\/p>\n<h4>Alternativen, Verkettungen &#8211; ODER<\/h4>\n<p>Mit dem | Zeichen kann man Bedingungen mittels &#8220;oder&#8221; verkn\u00fcpfen, und Klammern sind ebenfalls m\u00f6glich.<\/p>\n<h4>Beispiel<\/h4>\n<p>Suchstring: <strong>&#8220;<\/strong> <strong>(10.10.1.3|10.10.1.5) .* dns\/udp &#8220;<\/strong><\/p>\n<p>(Bitte die Leerzeichen im Suchstring beachten. Die Anf\u00fchrungszeichen sind nicht Teil des Suchstrings, sie sollen nur zeigen, dass zu Beginn und Ende des Suchstrings entsprechende Leerzeichen sitzen.<\/p>\n<p>Hier wird also nach den IP-Adressen 10.10.1.3 oder 10.10.1.5 gesucht, und zwar nach DNS-Queries via UDP.<\/p>\n<p>Das l\u00e4sst sich beliebig verketten:<\/p>\n<p>Suchstring: <strong>&#8220;<\/strong> <strong>(10.10.1.3|10.10.1.5) .* https\/tcp .* (ProxyAllow|ProxyInspect)&#8221;<\/strong><\/p>\n<h4>NOT &#8211; negativer lookahead<\/h4>\n<p>Leider ist REGEX relativ schwach in verneinten Matches &#8211; also filtern aller Zeilen, die bestimmte Texte enthalten.<br \/>\nHier kann man den weg \u00fcber einen sogenannten &#8220;negativen look-ahead&#8221; gehen. Die Schreibweise hierzu ist: <strong>(?!verbotener-text)<\/strong><\/p>\n<h4>Beispiel<\/h4>\n<p>Suchstring:\u00a0 <strong>&#8221; 10.10.1.3 .* dns\/udp &#8221;<br \/>\n<\/strong>(wieder ohne Anf\u00fchrungszeichen&#8230;)<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">2020-12-02 15:15:55 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:03 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:11 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:19 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:28 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:36 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:44 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:16:44 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"clients4.google.com\" \tTraffic\r\n2020-12-02 15:16:44 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"oauthaccountmanager.googleapis.com\" \tTraffic\r\n2020-12-02 15:16:52 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:17:00 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:17:08 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"AAAA\" question=\"radius.maiers.de\" \tTraffic\r\n2020-12-02 15:17:09 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"rts-euc.freshworksapi.com\" \tTraffic\r\n2020-12-02 15:17:09 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"mtalk.google.com\" \tTraffic\r\n<\/pre>\n<p>(Logzeilen f\u00fcr den Artikel gek\u00fcrzt)<br \/>\nIch will nun das Suchergebnis einschr\u00e4nken und Requests nach meinem Radius-Server filtern und nur den Rest zeigen.<br \/>\nDazu wird der Suchstring von oben um einen negativen lookahead erg\u00e4nzt. Ich suche nach Zeilen, die nach &#8220;question=&#8221; zus\u00e4tzlich nicht (beliebige Zeichen + Radius) enthalten.<\/p>\n<p>Suchstring:\u00a0 <strong>&#8221; 10.10.1.3 .* dns\/udp.*question=(?!.*radius)&#8221;<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">2020-12-02 15:16:44 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"clients4.google.com\" \tTraffic\r\n2020-12-02 15:16:44 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"oauthaccountmanager.googleapis.com\" \tTraffic\r\n2020-12-02 15:17:09 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"rts-euc.freshworksapi.com\" \tTraffic\r\n2020-12-02 15:17:09 Allow 10.10.1.3 10.10.1.11 dns\/udp ... type=\"A\" question=\"mtalk.google.com\" \tTraffic\r\n<\/pre>\n<h5>Weiterf\u00fchrende Links:<\/h5>\n<ul>\n<li><a href=\"https:\/\/de.wikipedia.org\/wiki\/Regul%C3%A4rer_Ausdruck\" target=\"_blank\" rel=\"noopener\">Artikel bei Wikipedia zu Regul\u00e4ren Ausdr\u00fccken<\/a><\/li>\n<li><a href=\"https:\/\/www.watchguard.com\/help\/docs\/help-center\/en-US\/Content\/en-US\/Fireware\/proxies\/general\/regular_expressions_c.html\" target=\"_blank\" rel=\"noopener\">Dokumenation bei WatchGuard zu Regul\u00e4ren Ausdr\u00fccken<\/a><\/li>\n<li><a href=\"https:\/\/www.regextester.com\/15\" target=\"_blank\" rel=\"noopener\">Web-Tester f\u00fcr Regul\u00e4re Ausdr\u00fccke am Beispiel f\u00fcr negative-lookaheads<\/a><\/li>\n<li><a href=\"https:\/\/wiki.selfhtml.org\/wiki\/Regul%C3%A4rer_Ausdruck\" target=\"_blank\" rel=\"noopener\">weiterf\u00fchrende Links zu Regul\u00e4ren Ausdr\u00fccken bei SELFHTML<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Die Suche im Traffic Monitor wird oft als schwach bezeichnet, weil hier keine &#8220;wildcards&#8221; unterst\u00fctzt werden. Diese Aussage ist jedoch schlicht falsch, da der FSM sehr wohl wildcards unterst\u00fctzt, allerdings nicht die &#8220;\u00fcblichen Verd\u00e4chtigen&#8221; und zudem erst nach zus\u00e4tzlicher Aktivierung der Suchmuster (REGEX). Wenn man sich ein wenig eingearbeitet hat, enth\u00e4lt der FSM durch Vewendung der REGEX einen der leistungsf\u00e4higsten Suchfilter, die so \u00fcblicherweise zur &hellip; <a href=\"https:\/\/wordpress.boc.de\/watchguard-info-portal\/2020\/12\/howto-verwendung-von-regex-suchmustern-bei-der-suche-im-firebox-system-manager\/\" class=\"more-link\">Weiterlesen <span class=\"screen-reader-text\">HOWTO &#8211; Verwendung von REGEX Suchmustern bei der Suche im Firebox System Manager<\/span> <span class=\"meta-nav\">&raquo;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[362],"tags":[276,718,473,714,715,717,716,81],"class_list":["post-11916","post","type-post","status-publish","format-standard","hentry","category-howto","tag-firebox-system-manager","tag-fsm","tag-howto","tag-regex","tag-regexp","tag-regulaere-ausdruecke","tag-regulaerer-ausdruck","tag-traffic-monitor"],"_links":{"self":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/11916"}],"collection":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/comments?post=11916"}],"version-history":[{"count":18,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/11916\/revisions"}],"predecessor-version":[{"id":21195,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/posts\/11916\/revisions\/21195"}],"wp:attachment":[{"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/media?parent=11916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/categories?post=11916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.boc.de\/watchguard-info-portal\/wp-json\/wp\/v2\/tags?post=11916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}