Tipps&Tricks
Tipps & Tricks - Best Practice Beispiele - How To
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.
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:
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
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:
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:
Datei:Template localin-geoIP-drop.txt
Das verwenden dieses Templates basiert auf eigener Verantwortung. |
add 10.03.2022 von 4Tinu
Wie kann ich unterbinden, dass private Netzwerke im Internet erreicht werden?
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.
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 |
Konfiguration über das WebGui: |
|
Firewall Regel konfigurieren:
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 |
Konfiguration über das WebGui: |
Diese Firewall Regel muss zuoberst im Regelwerk platziert werden. |
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:
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 |
Mehr zum Thema Blachkole Route finden sich in diesem Artikel: |
Wie konfiguriere ich die FortiGate für eine IPplus Lösung von Swisscom?
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:
Gruppe Definieren:
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:
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:
#### 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:
[[
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:
DoS Policy (Optional):
FortiGate und Windows
Was kann ich tun, wenn die Remotedesktop Verbindung zu meinem Windows 10 System immer einfriert oder langsamer wird?
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.
Konfiguration über das WebGui: |
Service konfigurieren: Firewallregel konfigurieren: |
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 |
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:
Konfiguration Windows System: |
Unter Windows 10 im START Menu das Programm Ausführen starten. (Suchfeld Ausführen eintippen)
|
|
|
Damit die Konfiguration aktiv wird, das Windows System neu starten. |
Wir können auch im Registrationsfile direkt die Konfiguration vornehmen:
Konfiguration Windows System: |
Über Start das Programm Ausführen starten und die Datei |
Nun folgendermassen durchnavigieren um zum DWORD-Wert
*Die Werte bedeuten folgendermassen:
|
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:
Kommunikation mit TCP:
Wenn man auf das Icon der Verbindungsinformationen klickt erscheint bei TCP Verbindungen folgender Hinweis:
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:
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
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
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:
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