Tipps&Tricks: Unterschied zwischen den Versionen

Aus Fortinet Wiki
Zur Navigation springen Zur Suche springen
Zeile 178: Zeile 178:
         set internet-service-src-name "Botnet-C&C.Server" "Malicious-Malicious.Server" "Phishing-Phishing.Server" "Spam-Spamming.Server"
         set internet-service-src-name "Botnet-C&C.Server" "Malicious-Malicious.Server" "Phishing-Phishing.Server" "Spam-Spamming.Server"
         set schedule "always"
         set schedule "always"
        set match-vip enable
         set service "ALL"
         set service "ALL"
         set logtraffic all
         set logtraffic all

Version vom 3. April 2024, 09:02 Uhr

Tipps & Tricks - Best Practice Beispiele - How To

Tipp.svg FortiOS 64.svg FortiOS 70.svg FortiOS 72.svg FortiOS 74.svg Config cli.png

Vorwort

Dieses FAQ ist für Fortinet Systeme basierend auf FortiOS 6.4 und FortiOS 7.0. Sofern nicht anderes vermerkt, stand zu Test-Zwecken eine Fortigate 60E oder 60F zur Verfügung!


Datenschutz

        *********************************************************************
        *                                                                   *
        *  THIS FILE MAY CONTAIN CONFIDENTIAL, PRIVILEGED OR OTHER LEGALLY  *
        *      PROTECTED INFORMATION. YOU ARE PROHIBITED FROM COPYING,      *
        *    DISTRIBUTING OR OTHERWISE USING IT WITHOUT PERMISSION FROM     *
        *                   ALSO SCHWEIZ SWITZERLAND.                       *
        *                                                                   *
        *********************************************************************

"Die in diesen Artikeln enthaltenen Informationen sind vertraulich und dürfen ohne
  schriftliche Zustimmung der ALSO Schweiz AG gegenüber Dritt-Unternehmen nicht 
                         bekannt gemacht werden"

FortiGate - Best Practice

Wie kann ich auf der FortiGate geographische Regionen blockieren?

Wenn von einer Region wie zum Beispiel Russland geziehlt viele Hacker aktivitäten vorgenommen werden, ist es Sinnvoll auf der FortiGate eine Regel zu erstellen, welchen diesen Traffic Global blockiert. Dabei muss man natürlich darauf achten, dass wenn gewisse Services aus dieser Region denoch erreicht werden sollen, diese ausgenommen werden.

Am effizientesten ist es eine LocalIn Regel zu konfigurieren. Dies muss über die CLI vorgenommen werden. Eine manuelle LocalIn Regel sieht man auch nach dem konfigurieren im WebGui nicht, daher diese Regel in der Dokumentation so detailgerecht wie möglich niederschreiben. Was eine lokalIn Policy ist, kann man hier erfahren:

 FortiGate:FAQ#Was_ist_eine_Local-In_Policy.3F

Bevor eine LocalIn Regel konfiguriert wird, macht es Sinn die Adressobjekte vorab zu erstellen. Dafür nutzen wir die GeoIP Adressobjekte. In diesen Objekten sind geographisch zugeordnete IP-Adressen Range hinterlegt. Diese Objekte werden von der FortiGuard in einer Datenbank gepflegt und in ca 1 Monatigen abständen aktuell gehalten. Wie man ein GeoIP Adressobjekt im Webgui erstellt findet man hier:

FortiGate:FAQ#Wie_kann_ich_geographisch_gebundene_Adressobjekte_erstellen.3F

Für unser Beispiel wollen wir ein Adressobjekt für Russland und Weissrussland (Belarus) erstellen.

Fortinet-3119.jpg

Damit wir in der LocalIn Policy danach ohne grossen Aufwand weitere Regionen hinzu oder entfehrnen können, bilden wir eine Adressgruppe und schieben die entsprechenden Adressobjekte in die Gruppe:

Fortinet-3120.jpg

Nun wird eine Local In Policy erstellt: Grundlegendes über das konfigurieren von manuellen LocalIn Regeln, kann in diesem Wikiartikel entnommen werden:

FortiGate:FAQ#Wie_kann_ich_eine_manuelle_Local-In_Policy_konfigurieren.3F
Config cli.png Konfiguration über die CLI:
### Erstellen GEO-IP Objekte ###
config firewall address
    edit "net_geo_russland"
        set type geography
        set comment "Geo IP Russland"
        set color 6
        set country "RU"
    next
    edit "net_geo_belarus"
        set type geography
        set comment "Geo Objekte Weissrussland"
        set color 6
        set country "BY"
    next
end
### Erstellen Gruppe ###
config firewall addrgrp
    edit "net_geo_blocken"
        set member "net_geo_belarus" "net_geo_russland"
        set comment "Geo IP Objekte zum blocken"
        set color 6
    next
end
### Erstellen localIn Policy fuer ALLE Interface  ###
config firewall local-in-policy
    edit 0
        set intf "any"
        set srcaddr "net_geo_blocken"
        set dstaddr "all"
        set service "ALL"
        set schedule "always"
        set action deny        
        set comments "Blocken von unerwuenschten geographischen Regionen"
    next
end

Obwohl man die manuellen LocalIn Policies im WebGui nicht sieht, gibt es einen kleinen Trick denoch zu erkennen, dass die Objektgruppe mit einer LocalIn Policy verknüpft ist:

Dafür geht man in die Adressobjekt übersicht in den Abschnitt Address Group und sucht das Gruppenobjekt. Wir sehen in der Spalte Ref. eine 1. Diese können wir anklicken und sehen, wo das Objekt überall verwendet wird:

Fortinet-3121.jpg
Fortinet-3122.jpg

Wir sehen hier, dass das Objekt in der LocalIn Policy 3 verwendet wird.


Diese Datei kann als Vorlage verwendet werden für diese Konfiguration in jede beliebege FortiGate einzufügen:

Wichtig.svg
Datei:Template localin-geoIP-drop.txt

Das verwenden dieses Templates basiert auf eigener Verantwortung.
Mit diesem Setup werden alle Zugriffe von und zu den konfigurierten Regionen blockiert.
Die ALSO Schweiz AG lehnt jede Haftung ab beim verwenden dieses Templates


add 10.03.2022 von 4Tinu

Wie kann ich Gefaehrliche Systeme über Firewall Regeln blockieren?

FortiOS 70.svg FortiOS 72.svg FortiOS 74.svg

Config webgui.png Konfiguration über das WebGui:

Falls bei den Features die Option Policy Disclaimer und/oder Multiple Interface Policies noch nicht aktiviert wurde, sollte diese jetzt noch eingeschalten werden. Navigiere dafür über folgenden Menupunkt:
System → Feature Visiblity und aktiviere die Option Policy Disclaimer und oder Multiple Interface Policies

Fortinet-3358.jpg → die Option Block notification kann in den Policies benutzt werden
Fortinet-3359.jpg → mehrere Interfaces oder ANY Interface kann in Policies benutzt werden 

In der CLI können die Features folgendermassen aktiviert werden:

     config system settings
          set gui-multiple-interface-policy enable
          set gui-policy-disclaimer enable
     end

Nun können die beiden Firewall Regeln erstellt werden. Wir konfigurieren eine Firewallregel welche von all zu den ISDB Objekten Botnet-C&C Server, Phishing Server, Malicious Server und Spam Server und umgekehrt den Zugriff blockieren. Bei den Interface werden wir jeweils als Source und Destination any verwenden. Bei der Ausgehenden Regel soll der Anwender eine Meldung bekommen, wenn der Zugriff blockier wird. Dafür schalten wir die Option Block notification ein.

Fortinet-3353.jpg

Um die ISDB Objekte auszuwählen muss im Source oder Destination Feld von IP Adressen auf Internet Services umgestellt werden. Achtung es sind entweder IP Adressen oder ISDB Objekte erlaubt, beides funktioniert nicht.

Mehr Infos über ISDB Objekte findet man Arikel: Was sind ISDB Objekte?

Fortinet-3354.jpg

Diese beiden Reglen sollten im vorhandenen Regelwerk ganz nach oben geschoben werden:

Fortinet-3355.jpg

Wenn eine ausgehende Verbindung blockiert wird, erhält der User eine Notification, dass er blockiert wurde.

Fortinet-3356.jpg

Im Forward Log kann man die blockierten Requests sehen:

Fortinet-3357.jpg
Config cli.png Konfiguration über die CLI:
 
config firewall policy
    edit 0
        set name "BLOCK_dangerous systems-outgoing"
        set srcintf "any"
        set dstintf "any"
        set srcaddr "all"
        set internet-service enable
        set internet-service-name "Botnet-C&C.Server" "Malicious-Malicious.Server" "Phishing-Phishing.Server" "Spam-Spamming.Server"
        set schedule "always"
        set logtraffic all
        set comments "Block Gefaehrliche Systeme - Ausgehende Kommunikation"
        set block-notification enable
    next
    edit 0
        set name "BLOCK_dangerous systems-incoming"
        set srcintf "any"
        set dstintf "any"
        set dstaddr "all"
        set internet-service-src enable
        set internet-service-src-name "Botnet-C&C.Server" "Malicious-Malicious.Server" "Phishing-Phishing.Server" "Spam-Spamming.Server"
        set schedule "always"
        set match-vip enable
        set service "ALL"
        set logtraffic all
        set comments "Block Gefaehrliche Systeme - Eingehende Kommunikation"
    next
end

add 02.04.2024 - 4Tinu

Wie kann ich unterbinden, dass private Netzwerke im Internet erreicht werden?

FortiOS 6x.svg FortiOS 70.svg

Private IP Adressen werden im Internet nicht geroutet und somit müssen diese auch nicht die FortiGate über den Internet Anschluss verlassen. Auf den Core Router werden im Normallfall diese Netze auch nicht ins grosse weite Internet geroutet. Wir haben verschiedene Möglichkeiten auf der FortiGate diese Netze gleich zu blockieren, damit die gar nie ins Internet gehen:

  • Mit Deny Policy
  • Mit Blackhole Routen

Variante Firewall Regel:
Wir können aber auf der FortiGate gleich eine Firewall Regel konfigurieren, welche den Zugriff auf Private Netze im Internet gar nicht zulässt. Dafür konfigurieren wir drei Adressobjekte und fügen diese einer Gruppe hinzu. Danach wird zu Oberst im Regelwerk eine Firewall Regel von den Internen Interface auf die Internet Interfaces mit Source All und Destination das konfigurierte Gruppenobjekt erstellt, welche sämtliche Service blockiert.

Config cli.png Konfiguration über die CLI:

Adressen Objekte konfigurieren:

config firewall address
    edit "net_rfc1918-10.0.0.0-8"
        set comment "private net - RFC1918"
        set color 27
        set subnet 10.0.0.0 255.0.0.0
    next
    edit "net_rfc1918-172.16.0.0-12"
        set comment "private net - RFC1918"
        set color 27
        set subnet 172.16.0.0 255.240.0.0
    next
    edit "net_rfc1918-192.168.0.0-16"
        set comment "private net - RFC1918"
        set color 27
        set subnet 192.168.0.0 255.255.0.0
    next
end

Adressgruppe konfigurieren:

config firewall addrgrp
    edit "gr_net_RFC1918"
        set member "net_rfc1918-10.0.0.0-8" "net_rfc1918-172.16.0.0-12" "net_rfc1918-192.168.0.0-16"
        set comment "private networks RFC1918"
        set color 27
    next
end
Config webgui.png Konfiguration über das WebGui:
Fortinet-2996.jpg

Firewall Regel konfigurieren:

Config cli.png Konfiguration über die CLI:
config firewall policy
    edit 0
        set name "O_wlan_to_INTERNET-block-RFC1918"
        set srcintf "[INTERNAL-INTERFACE]"
        set dstintf "[WAN-INTERFACE]"
        set srcaddr "all"
        set dstaddr "gr_net_RFC1918"
        set schedule "always"
        set service "ALL"
        set logtraffic all
        set comments "Blocks all traffic to private networks RFC1918 to the INTERNET"
    next
end
Config webgui.png Konfiguration über das WebGui:
Fortinet-2997.jpg

Diese Firewall Regel muss zuoberst im Regelwerk platziert werden.

Fortinet-2998.jpg
Hinweis.svg

Details über den RFC 1918 findet man hier: https://datatracker.ietf.org/doc/html/rfc1918


Private Netze mit Blackhole Route verwerfen
Eine weitere Möglichkeit ist es, mit einer Blackhole Route zu arbeiten. Diese Lösung ist dann gleich allgemein gültig und nicht auf ein Interface begrenzt:

Config cli.png Konfiguration über die CLI:
config router static
edit 0
set dst 10.0.0.0/8
set distance 254
set comment "Blackhole 10.0.0.0/8 - RFC1918"
set blackhole enable
next
edit 0
set dst 172.16.0.0/12
set distance 254
set comment "Blackhole 172.16.0.0/12 -RFC1918"
set blackhole enable
next
edit 0
set dst 192.168.0.0/16
set distance 254
set comment "Blackhole 192.168.0.0/16-RFC1918"
set blackhole enable
next
end
Hinweis.svg

Mehr zum Thema Blachkole Route finden sich in diesem Artikel:

Wie konfiguriere ich die FortiGate für eine IPplus Lösung von Swisscom?

FortiOS 6x.svg FortiOS 70.svg
Dieser Artikel ist im Aufbau und wird noch editiert und ergänzt, bitte um ein wenig Geduld (4Tinu - 5.1.22)


Die Informationen sind aus diesem Dokument entnommen.

Adressobjekte definieren:

Fortinet-3082.jpg
Fortinet-3085.jpg

Gruppe Definieren:

Fortinet-3086.jpg

Adressobjekte definieren CLI:

config firewall address
    edit "IPplus-net_193.135.14.128-27"
        set comment "Reservierter IP Range für IP+ (SIP und RTP)"
        set color 6
        set subnet 193.135.14.128 255.255.255.224
    next
    edit "IPplus-net_193.135.14.160-27"
        set comment "Reservierter IP Range für IP+ (SIP und RTP)"
        set color 6
        set subnet 193.135.14.160 255.255.255.224
    next
    edit "IPplus-net_193.135.14.192-27"
        set comment "Reservierter IP Range für IP+ (SIP und RTP)"
        set color 6
        set subnet 193.135.14.160 255.255.255.224
    next
    edit "clientnet_voice"
        set comment "Client Netzwerk Voice Devices"
        set color 3
        set subnet 192.168.200.0 255.255.255.0
    next
end


config firewall addrgrp
    edit "gr_IPplus-net"
        set member "IPplus-net_193.135.14.128-27" "IPplus-net_193.135.14.160-27" "IPplus-net_193.135.14.192-27"
        set comment "Reservierter IP Ranges für IP+ (SIP und RTP)"
        set color 6
    next
end

Services gemäss Liste definieren:

Fortinet-3083.jpg
Fortinet-3084.jpg

Services definieren CLI:

config firewall service custom
    edit "tcp_8070"
        set category "VoIP, Messaging & Other Applications"
        set comment "Chrome Browser : Hier wird die Session aufgebaut (vom Router zum SIP-Proxy)."
        set color 10
        set tcp-portrange 8070:1024-65535
    next
    edit "tcp_5222"
        set category "VoIP, Messaging & Other Applications"
        set comment "Business Communication APP/Client : Wird verwendet für Standard Messaging und Presence Protoc
ol (XMPP) Verbindungen"
        set color 10
        set tcp-portrange 5222:1024-65535
    next
    edit "tcp_5281"
        set category "VoIP, Messaging & Other Applications"
        set comment "Receptionist : Wird benutzt für bidirektionale Streams über Synchrone HTTPS Verbindungen"
        set color 10
        set tcp-portrange 5281:1024-65535
    next
    edit "udp-tcp_5075-5076"
        set category "VoIP, Messaging & Other Applications"
		set udp-idle-timer 180
        set comment "Business Communication APP/Client : Hier wird die Session aufgebaut (vom Router zum SIP-Proxy
)."
        set color 10
        set tcp-portrange 5075-5076:1024-65535
        set udp-portrange 5075-5076:1024-65535
    next
    edit "tcp_2209"
        set category "VoIP, Messaging & Other Applications"
        set comment "Estos ECSTA : Wird für den Zugang vom PC ins Internet verwendet (Datenfunktionen)"
        set color 10
        set tcp-portrange 2209:1024-65535
    next
    edit "tcp_5269"
        set category "VoIP, Messaging & Other Applications"
        set comment "Business Communication APP/Client : Benutzt für Federation Protokol Verbindungen"
        set color 10
        set tcp-portrange 5269:1024-65535
    next
    edit "tcp_8012"
        set category "VoIP, Messaging & Other Applications"
        set comment "Estos ECSTA : Wird für den Zugang vom PC ins Internet verwendet (Datenfunktionen)"
        set color 10
        set tcp-portrange 8012:1024-65535
    next
    edit "tcp_8443"
        set category "VoIP, Messaging & Other Applications"
        set comment "Centro Business : Wird für die Synchronisierung der Geräte-Konfiguration verwendet."
        set color 10
        set tcp-portrange 8443:1024-65535
    next
    edit "udp-tcp_16384-65535"
        set category "VoIP, Messaging & Other Applications"
		set udp-idle-timer 180
        set comment "Yealink, Mitel, Panasonic, Mediatrix: Hier findet die Sprachübertragung statt (Sprachprotokol
l vom Router zum Voiceserver)."
        set color 10
        set tcp-portrange 16384-65535:1024-65535
        set udp-portrange 16384-65535:1024-65535
    next
    edit "udp_1024-65535"
        set category "VoIP, Messaging & Other Applications"
		set udp-idle-timer 180
        set comment "Chrome Browser :  Hier findet die Sprachübertragung statt (Sprachprotokoll vom Router zum Web
RTC Router)."
        set color 10
        set udp-portrange 1024-65535:1024-65535
    next
    edit "udp-tcp_5061"
        set category "VoIP, Messaging & Other Applications"
		set udp-idle-timer 180
        set comment "SIP: Yealink, Mitel, Panasonic, Mediatrix :  Hier wird die Session aufgebaut (vom Router zum
SIP-Proxy)."
        set color 10
        set tcp-portrange 5061:1024-65535
    next
end

Gruppe definieren mit diesen Objekten:

Fortinet-3090.jpg
#### GRUPPE #####
config firewall service group
    edit "gr_IPplus-Services"
        set member "tcp_2209" "tcp_5222" "tcp_5269" "tcp_5281" "tcp_8012" "tcp_8070" "tcp_8443" "udp-tcp_16384-655
35" "udp-tcp_5075-5076" "udp_1024-65535" "HTTP" "HTTPS" "udp-tcp_5061"
        set comment "Business Communication Services"
        set color 10
    next
end

config firewall service group
    edit "gr_IPplus-Services"
        set member "tcp_2209" "tcp_5222" "tcp_5269" "tcp_5281" "tcp_8012" "tcp_8070" "tcp_8443" "udp-tcp_16384-655
35" "udp-tcp_5075-5076" "udp_1024-65535" "HTTP" "HTTPS" "udp-tcp_5061"
        set comment "Business Communication Services"
        set color 10
    next
end

Routing konfigurieren CLI:

[[ Fortinet-3088.jpg
config router static
    edit 0
        set dst 193.135.14.128 255.255.255.224
        set gateway 192.168.150.1
        set device "internal1"
        set comment "Netz IPplus SIP und RTP"
    next
    edit 0
        set dst 193.135.14.160 255.255.255.224
        set gateway 192.168.150.1
        set device "internal1"
        set comment "Netz IPplus SIP und RTP"
    next
    edit 0
        set dst 193.135.14.192 255.255.255.224
        set gateway 192.168.150.1
        set device "internal1"
        set comment "Netz IPplus SIP und RTP"
    next
    edit 0
        set dst 194.209.29.192 255.255.255.224
        set gateway 192.168.150.1
        set device "internal1"
        set comment "Netz  SIP und RTP"
    next
end

FirewallRegel konfigurieren:

Fortinet-3087.jpg

DoS Policy (Optional):

Fortinet-3089.jpg

FortiGate und Windows

Was kann ich tun, wenn die Remotedesktop Verbindung zu meinem Windows 10 System immer einfriert oder langsamer wird?

Tipp.svg

Die Remotedesktopverbindung (RDP) ist die Standardmethode, welche in Windows 10 benutzt, um remote auf andere Windowsclients zuzugreifen. In Windows 10 gibt es ein Problem, bei dem nach dem Herstellen einer RDP-Verbindung zum Computer der Bildschirm nach einiger Zeit zufällig einfriert und man so die RDP Session trennen und sich neu verbinden muss.

RDP verwendet prinzipiell UDP- und TCP-Protokolle mit dem Port 3389. Seit der Veröffentlichung von Windows 8 und Server 2012 wurde RDP v8 eingeführt, welches im RDP Protokoll auch UDP verwendet Der Zweck von UDP ist es, die Verbindung schneller zu machen und die Benutzererfahrung zu verbessern.

in Windows 10 friert der RDP-Client den Bildschirm gelegentlich ein. Dies ist höchstwahrscheinlich auf einen Fehler im Windows 10 zurückzuführen, der nicht in der Lage ist, nahtlos zwischen dem TCP- und dem UDP-Protokoll zu wechseln. Dieses Problem wurde in den Windows 10 Versionen von 1809 bis 1903 berichtet. Mit folgenden Möglichkeiten können wir diesem Problem gegensteuern. Dabei können wir auf der FortiGate eine Regel konfigurieren oder wir lösen das Problem direkt auf den Windows Systemen:

Lösungsansatz auf der FortiGate:

Beim Versuch, einen Remotezugriff auf das hinter der FortiGate gehostete Windows System durchzuführen, wird der Client darauf hingewiesen, dass er versucht, über den UDP-Port 3389 statt über TCP 3389 über FortiGate FortiView-Sessions zuzugreifen. Der Client "spammt" riesigen UDP 3389-Verkehr und dies führt dazu, dass der Microsoft RDP client und die FortiGate einfrieren oder langsamer werden.

Konfiguriere eine Firewallregel welche den Port UDP3389 blockiert.

Config webgui.png Konfiguration über das WebGui:

Service konfigurieren:

Fortinet-3101.jpg

Firewallregel konfigurieren:

Fortinet-3110.jpg
Config cli.png Konfiguration über die CLI:

Service konfigurieren:

config firewall service custom
    edit "udp_3389"
        set category "Remote Access"
        set comment "RDP UDP Port"
        set color 10
        set udp-portrange 3389:1024-65535
    next
end

Firewallregel konfigurieren:

config firewall policy
    edit 0
        set name "block_udp-RDP"
        set srcintf "ssl.root" <-- Source Interface
        set dstintf "port1" <-- Destination Interface (Serverstandort)
        set srcaddr "net-office_ip-pool-support-198.18.10.128-25" <-- Source IP
        set dstaddr "h_ao-srv-win-ems-198.18.0.103" <-- Destinations IP (Windows System)
        set schedule "always" 
        set service "udp_3389" <-- Konfigurierter RDP-UDP Port
        set logtraffic all
        set groups "gr_support_DE" <-- nur bei SSL-VPN notwendig!
        set comments "Block UDP 3389"
    next
end
Hinweis.svg

Darauf achten, dass diese Firewallregel vor der regulären Firewallregel steht, welche den RDP Zugriff auf das Windows System bearbeitet, ansonsten wird diese Regel ignoriert!


Lösungsansätze beim Windows System:
Um das Einfrieren der RDP-Verbindung in Windows 10 zu beheben, muss das UDP-Protokoll des RDP-Clients mithilfe einer lokalen Gruppenrichtlinie deaktiviert werden.

Vorgehensweise:

Config webgui.png Konfiguration Windows System:

Unter Windows 10 im START Menu das Programm Ausführen starten. (Suchfeld Ausführen eintippen)

Fortinet-3102.jpg  Fortinet-3103.jpg
  1. In der Eingabemaske folgendes eingeben:pgedit.msc
  2. Mit OK wird das Programm gestartet
Fortinet-3104.jpg
  1. Navigiere über die Menus: Computerkonfiguration -> Adminisrative Vorlagen -> Windows-Komponenten-> Remotedesktopdienste->Remotedesktopverbundungs-Client
  2. Bei den Einstellungen den Menupunkt UDP auf Client deaktivieren anwählen und auf Richtlinieneinstellung bearbeiten klicken
Fortinet-3105.jpg
  1. Aktiviert auswählen
  2. Optional einen Kommentar erfassen
  3. mit Übernehmen und dann OK die Konfiguration aktivieren
Hinweis.svg

Damit die Konfiguration aktiv wird, das Windows System neu starten.


Wir können auch im Registrationsfile direkt die Konfiguration vornehmen:

Config webgui.png Konfiguration Windows System:

Über Start das Programm Ausführen starten und die Datei regedt32.exe starten:

 Fortinet-3106.jpg

Nun folgendermassen durchnavigieren um zum DWORD-Wert fClientDisableUDP zu gelangen:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client

Fortinet-3107.jpg
  1. Den DWORD-Wert fClientDisableUDP doppelklicken
  2. Den DWORD-Wert fClientDisableUDP muss auf den Wert 1 gesetzt werden.*
  3. Mit OK die Mutation bestätigen.

*Die Werte bedeuten folgendermassen:

  • 0 = Verwendet UDP und auch TCP.
  • 1 = Verwendet nur TCP.
  • 2 = Verwendet entweder UPD oder TCP.
Hinweis.svg

Damit die Konfiguration aktiv wird, das Windows System neu starten.

Erfolgskontrolle:
Folgendermassen kann überprüft werden, ob eine RDP Session mit UDP oder TCP kommuniziert:
Kommunikation mit UDP:
Wenn man auf das Icon der Verbindungsinformationen klickt erscheint bei UDP Verbindungen folgender Hinweis:

Fortinet-3108.jpg

Kommunikation mit TCP:
Wenn man auf das Icon der Verbindungsinformationen klickt erscheint bei TCP Verbindungen folgender Hinweis:

Fortinet-3109.jpg

Was kann ich tun, wenn ich mit Microsoft Teams Videokonferenzen Unterbrüche oder eine langsame Verbindung habe?

FortiOS 64.svg FortiOS 70.svg FortiOS 72.svg FortiOS 74.svg

Es ist mal wieder Zeit für ein technisches Rätsel, liebe Security Engineers! Heute geht es um das leidige Thema MS-Teams und Performance-Probleme. Es ist immer wieder ärgerlich, wenn eine Videokonferenz mit nur zwei Teilnehmern reibungslos funktioniert, aber sobald sich mehrere Nutzer zusammenschließen, stockt die Verbindung, die Videos hängen und die Sprachqualität erinnert eher an Terminator mit einem kaputten Funkgerät. Klingt nach keiner angenehmen Erfahrung, oder?

Aber zum Glück gibt es eine Lösung für dieses Problem! Wenn du DoS-Policies konfiguriert hast, wird höchstwahrscheinlich die Anomalie DoS-UDP-FLOOD zuschlagen. Um dem entgegenzuwirken, reicht es aus, eine Ausnahme-Regel für Teams zu erstellen:

Du solltest am besten eine DoS-Ausnahme-Regel mit den Teams-Adressen als Ziel konfigurieren und die UDP-Parameter auf "Monitor" setzen. Es ist leider nicht möglich, die ISDB-Objekte in den DoS-Regeln zu verwenden, daher müssen wir manuell die entsprechenden IP-Adressbereiche in der FortiGate erfassen. Keine Sorge, Microsoft bietet eine offizielle Seite, auf der du die entsprechenden IP-Adressbereiche und Dienste finden kannst. Besuche einfach folgenden Link: Microsoft Teams Adressen und Services

Um es zusammenzufassen, müssen wir also die folgenden Parameter in der FortiGate vorbereiten:

  1. Erfasse manuell die entsprechenden IP-Adressbereiche und Dienste auf der FortiGate.
  2. Erstelle eine Ausnahme-Regel für DoS mit den Teams-Adressen als Ziel.
  3. Setze die UDP-Parameter auf "Monitor".

Mit diesen Schritten sollte die Performance von MS-Teams bei Videokonferenzen mit mehreren Teilnehmern erheblich verbessert werden. Viel Spaß beim Optimieren und genießt flüssige Videokonferenzen ohne Stottern und Terminator-Sounds!

Folgende Parameter müssen auf der FortiGate vordefiniert werden:
IP Adressen Ranges:

  • 13.107.64.0/18
  • 52.112.0.0/14
  • 52.122.0.0/15
  • 52.238.119.141/32
  • 52.244.160.207/32

Services

  • HTTPS (TCP443) --> normalerweise vordefiniert
  • HTTP (TCP80) --> normalerweise vordefiniert
  • UDP 3478 - 3481

Um flexibler und übersichtlicher zu bleiben, empfehle ich euch je eine Adresse Gruppe und eine Service Gruppe zu bilden:

  • Gruppe IP Adressen: gr_ext-MS-TEAMS
  • Gruppe Services: gr_MS-TEAMS

Konfiguration im Webgui:

Config webgui.png Konfiguration über das WebGui:

Adressobjekte erstellen:

Fortinet-3310.jpg
  • Navigiere über Policy & Objects -> Adresses -> Create New -> Address
  • Erstelle für folgende Netze ein Adressobjekt:
    • 13.107.64.0/18
    • 52.112.0.0/14
    • 52.122.0.0/15
    • 52.238.119.141/32
    • 52.244.160.207/32

Wie Adressobjekte erstellt werden, kann in diesem Wiki Artikel nachgelesen werden.
Adressgruppe erstellen:
Wenn die Objekte erstellt sind, kannst du eine Adresse Gruppe erstellen:

  • Navigiere über Policy & Objects -> Adresses -> Create New -> Address Group
  • Benenne die Gruppe gr_ext-MS-TEAMS und füge die vorhin angelegten Adressobjekte hinzu.
Fortinet-3311.jpg

Service für Teams definieren:
Der HTTP und HTTPS Service ist auf der FortiGate standartmässig konfiguriert. Um die spezifischen Teams Ports zu konfigurieren über das Menu Policy & Objects -> Services -> Create New einen neuen Service definieren:

Fortinet-3312.jpg
  • Bei den Protocol Options folgendes konfigurieren:
    • Protocol Type : TCP/UDP/SCTP
    • Destination Port UDP 3478 - 1481
    • Option Specify Source Ports aktivieren und 1024 - 65535 eingeben

Gruppe für die Services definieren: Nun über Policy & Objects -> Services -> Service groups -> Create New eine Service Gruppe erstellen:

Fortinet-3313.jpg
  • Benenne die Gruppe gr_MS-TEAMS
  • Füge die Ports HTTP, HTTPS und udp_3478-3481 hinzu

Nun sind alle Parameter für die DoS Regel vorbereitet.

DoS Regel konfigurieren:
Die DoS Policy über Policy & Objects -> IPv4 DoS Policy -> Create New

Fortinet-3314.jpg
  • Als Interface das Interface richtung Internet auswählen (wan1 zum Beispiel)
  • Bei den Source kann all oder der Client Range gewählt werden.
  • Als Destination das Object gr_ext_MS-TEAMS auswählen
  • Bei den Services die vorhin angelegte Gruppe gr_MS-TEAMS konfigurieren
  • L3 Anomalien alle auf Block und die Logging Optionen aktivieren
  • L4 Anomalien alle auf Block und die Logging Optionen aktivieren
    • Ausnahme die Option udp_flood auf Monitor konfigurieren
  • Mit OK wird die DoS Policy erstellt

Mehr Informationen und Grundlagen zu DoS Regeln gibt es HIER im Wiki

Nun muss sichergestellt werden, dass die neu angelegte DoS Regel vor die Regel geschoben wird, welche das Teams blockt:

Fortinet-3315.jpg

Es kann mit Drag&Drop die Regel an die entsprechende Stelle verschoben werden:

Fortinet-3316.jpg

Konfiguration in der CLI:

Config cli.png Konfiguration via CLI:

IP Adressen Range definieren:

 
config firewall address
    edit "ext-TEAMS-13.107.64.0-18" 
        set comment "MS-Teams IP Range" 
        set color 20
        set subnet 13.107.64.0 255.255.192.0
    next
    edit "ext-TEAMS-52.112.0.0-14" 
        set comment "MS-Teams IP Range" 
        set color 20
        set subnet 52.112.0.0 255.252.0.0
    next
    edit "ext-TEAMS-52.238.119.141-32" 
        set comment "MS-Teams IP" 
        set color 20
        set subnet 52.238.119.141 255.255.255.255
    next
    edit "ext-TEAMS-52.244.160.207-32" 
        set comment "MS-Teams IP" 
        set color 20
        set subnet 52.244.160.207 255.255.255.255
    next
    edit "ext-TEAMS-52.122.0.0-15" 
        set comment "MS-Teams IP Range" 
        set color 20
        set subnet 52.122.0.0 255.254.0.0
    next
end

IP Objekt Gruppe mit MS-Teams relevanten IP-Netze/Adressen bilden:

 
config firewall addrgrp
    edit "gr_ext-MS-TEAMS"
        set member "ext-TEAMS-13.107.64.0-18" "ext-TEAMS-52.112.0.0-14" "ext-TEAMS-52.122.0.0-15" "ext-TEAMS-52.238.119.141-32" "ext-TEAMS-52.244.160.207-32"
        set comment "MS-Teams IP Adressen"
        set color 20
    next
end

MS-Teams relevante Services erstellen:

Config cli.png Konfiguration via CLI:
 

config firewall service custom
    edit "udp_3478-3481"
        set category "VoIP, Messaging & Other Applications"
        set comment "Teams Service"
        set color 20
        set udp-portrange 3478-3481:1024-65535
    next
end

Service Objekt Gruppe mit MS-Teams relevanten Services bilden:

 
config firewall service group
    edit "gr_MS-TEAMS"
        set member "HTTP" "HTTPS" "udp_3478-3481"
        set comment "MS Teams Service Gruppe"
        set color 20
    next
end

DoS Policy erstellen:

Config cli.png Konfiguration via CLI:
 

config firewall DoS-policy
    edit 0
        set name "Teams_[INTERFACE_NAME]" <-- z.B wan1
        set comments "Teams Ausnahme"
        set interface "[INTERFACE_NAME]"  <-- z.B wan1
        set srcaddr "all"
        set dstaddr "gr_ext-MS-TEAMS"
        set service "gr_MS-TEAMS"
        config anomaly
            edit "tcp_syn_flood"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "tcp_port_scan"
                set status enable
                set log enable
                set action block
                set threshold 1000
            next
            edit "tcp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "tcp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "udp_flood"
                set status enable
                set log enable
                set threshold 2000
            next
            edit "udp_scan"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "udp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "udp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "icmp_flood"
                set status enable
                set log enable
                set action block
                set threshold 250
            next
            edit "icmp_sweep"
                set status enable
                set log enable
                set action block
                set threshold 100
            next
            edit "icmp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 300
            next
            edit "icmp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 1000
            next
            edit "ip_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "ip_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "sctp_flood"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "sctp_scan"
                set status enable
                set log enable
                set action block
                set threshold 1000
            next
            edit "sctp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "sctp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
        end
    next
end

Natürlich könnt ihr dafür auch dieses Script gebrauchen. Ihr müsst nur den Parameter [INTERFACE_NAME] durch das entsprechende Interface (z.B. wan1) ersetzen. Die angelegte DoS Regel, noch vor die Allgemeine DoS Regel schieben, damit diese auch zur Anwendung kommt.

Das Template kann hier auf eigene Verantwortung heruntergeladen werden:

Datei:TMP-fgt DoS-Policy-4-MS-TEAMS.txt

edit 3.04.2024 - 4Tinu | übrigensChatGPD hat mir geholfen beim verfassen dieses Artikel ;-)

FortiGate Konfigurations Templates

Alle GEO-IP Regionen als Adressobjekte

Mit diesem Template können sämtliche GEO IP Adressobjekte auf einmal in die FortiGate erfasst werden.

  • Die Adressobjekte sind alle in der Farbe Rote (Farbcode: 6)
  • Syntax der Objekte net_geo-[Region]
  • Kommentar der Objekte IP networks from [Region]
  • Die Adressobjekte sind auf kein Interface referenziert.

Genereller Syntax des Geo IP Adressobjekt:

Config cli.png Konfiguration via CLI:
 
config firewall address 
    edit "net_geo-[Region]"
        set type geography
        set comment "IP networks from [Region]"
        set color 6
        set country "[COUNTRY_CODE]"
    next
end

Insgesamt sind es 250 Adressobjekte welche durch dieses Template eingelesen werden.
Template zum herunterladen:

Datei:TMP-fgt ALL-geoIP-objects.txt

add 6.12.2022 - 4Tinu

System NTP Template

Dieses Template kann verwendet werden um die globalen NTP Dienste auf der FortiGate zu benutzen. Dabei werden die NTP Server des Projekts https://www.pool.ntp.org/zone/ch verwendet.
Folgende NTP Server werden als Custom NTP Server verwendet:

  • 1.ch.pool.ntp.org
  • 2.ch.pool.ntp.org
Config cli.png Konfiguration via CLI:
 
config system ntp
     set ntpsync enable
     set type custom
         config ntpserver
         edit 1
             set server "1.ch.pool.ntp.org"
         next
         edit 2
             set server "2.ch.pool.ntp.org"
         next
      end
end

Die Globale Zeitzone wird auf MEZ (Code 26) konfiguriert

Config cli.png Konfiguration via CLI:
 
config system global
     set timezone 26
end

Template zum herunterladen:

Datei:TMP-fgt NTP-global-config.txt

add 06.12.2022 - 4Tinu

NTP Adressobjekte Template

Dieses Template legt vier FQDN Adressobjekte von NTP Server in der Schweiz aus dem NTP-Pool Projekt an und fasst diese in eine Gruppe zusammen. Dies kann als Objekt in Firewall Regeln benutzt werden um den NTP Dienst der Umsysteme oder Serversysteme freizuschalten.

  • Die Adressobjekte sind alle in der Farbe Rote (Farbcode: 6) abgebildet
  • Syntax der Adressobjekte ext_srv_[NUMMER].ch.pool.ntp.org
  • Syntax des Gruppenobjekt ext_srv_ch.pool.ntp.org
  • Die Adress und Gruppenobjekte sind auf kein Interface referenziert

Genereller Syntax des NTP Adressobjektes:

Config cli.png Konfiguration via CLI:
 
config firewall address
    edit "ext_srv_[NUMMER].ch.pool.ntp.org"
        set type fqdn
        set comment "NTP Server Projekt https://www.pool.ntp.org/zone/ch"
        set color 6
        set fqdn "[NUMMER].ch.pool.ntp.org"
     next
end

Template zum herunterladen:

Datei:TMP-fgt NTP-adressobjects-ntpPool.txt

add 06.12.2022 - 4Tinu

Template für einen IPSEC Site2Site VPN Tunnel

Das folgende Template kann für das erstellen eines Site2Site VPN Tunnels verwendet werden. Informationen über IPSEC Site2Site auf der FortiGate findet man unter folgendem Wiki Artikel:

Das Template ist für eine Seite und muss daher für das zweite Gerät noch gegengleich benutzt werden:

Datei:TMP-fgt IPSEC-Site2SiteVPN.txt

Bidirektionales Template ist in Arbeit und sollte bald verfügbar sein. (Muss noch auf Herz und Nieren überprüft werden ;-) )


add 07.12.2022 - 4Tinu