FortiGate-5.0-5.2:FAQ: Unterschied zwischen den Versionen
4Tinu (Diskussion | Beiträge) |
4Tinu (Diskussion | Beiträge) |
||
| Zeile 36: | Zeile 36: | ||
</pre> | </pre> | ||
= BLOCKER 1 = | = BLOCKER 1 = | ||
Version vom 1. Mai 2026, 13:45 Uhr
FortiGate-5.0-5.2:FAQ
|
Das FortiOS 5.0 und 5.2 ist nicht mehr von Fortinet supportet. Bitte auf eine Supportete Version upgraden. Mehr Infos unter : https://support.fortinet.com/Information/ProductLifeCycle.aspx |
Vorwort
Diese FAQ's sind für Fortinet Systeme basierend auf OS 4 MR3 sowie 5.0/5.2. Zu Test-Zwecken stand eine Fortigate 60C/D 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 von der Schweiz AG gegenüber Dritt-Unternehmen nicht
bekannt gemacht werden"
BLOCKER 1
IPSEC VPN
Was sind die Grundlagen eines IPSec Tunnels sei es Main Mode oder Aggressive Mode?
Wenn ein IPSec Tunnel sei es im Main Mode und/oder Aggressive Mode konfiguriert und später event. anhand eines Troubleshooting untersucht werden muss, ist es Wichtig zu wissen wie ein IPSec Tunnel funktioniert um festzustellen in welchem Schritt des Aufbaus ein IPSec fehlschlägt. Grundsätzlich wird ein IPSec Tunnel in 4 Schritten aufgebaut:
1. Ein IPSec Tunnel wird dann aufgebaut wenn lokal Traffic initiert wird um als Destination die Remote Seite zu erreichen und
dadurch ein IPSec Tunnel dazu aufgebaut werden muss um diesen Traffic duch den IPSec Tunnel (encrypted und encapsulated)
auf die Remote Seite senden zu können.
2. Phase-1: In der Phase-1 wird eine einzelne IKE SA ausgetauscht (Security Association)
3. Phase-2: In der Phase-2 werden zwei IKE SA ausgetauscht (Security Association) und zwar je eine für jede Traffic Richtung (in/out)
4. Traffic wird über den etablierten IPSec Tunnel gesendet (in/out)
Somit in einem Troubleshooting ist es Wichtig zu wissen welcher Schritt konnte nicht durchgeführt werden um das Problem einzugrenzen. Bedeutet wiederum: Ist Phase-1 abgeschlossen ist das Pre-Shared Secret nicht das Problem denn dieser Schritt wurde bereits abgeschlossen. Desweiteren ist es Wichtig zu wissen wie ein Main Mode IPSec funktioniert und ein Aggressive Mode IPSec. Nachfolgend eine Aufstellung betreffend Main/Aggresive Mode:
Main Mode Komunikation
Für die etablierung des Main Mode werden 6 Packete für die Komunikation benutzt:
Datei:Fortinet-1422.jpg
1. Der Client initiert Traffic und der IPSec Tunnel benützt eine oder mehrere Sicherheitsrichtlinien.
2. Der Responder selektiert seine Sicherheitsrichtlinien die er benützen will und antwortet.
3. Der Client der den Traffic initiert hat sendet seinen Key.
4. Der Responder antwortet ebenfalls mit seinem Key.
5. Der Client sendet Final seine Peer ID und den hash payload.
6. Der Responder antwortet ebenfalls mit der Peer ID und dem hash payload.
NOTE Im Gegensatz zum Aggressive Mode sendet der Initiator seine Peer ID nicht zu Beginn somit kann die FortiGate die IPSec
Verbindung nicht mit dieser Information identifizieren. Als Identifikation wird die Source IP benutzt. Unter normalen
Umständen stellt dies kein Problem dar jedoch wenn mehrer Dial-Up Verbindung benutzt werden kann dies Probleme verursachen.
Weitere Informationen über diese Problematik findet man unter folgenden Artikel:
FortiClient:FAQ#Kann_ich_mehrer_Client2Site_IPSec_VPN_.28Dial-Up.29_auf_.22einer.22_FortiGate_konfigurieren_sei_es_f.C3.BCr_FortiClient.2C_iOS_und_Android.3F
Aggressive Mode Komunikation
Für die etablierung des Main Mode werden 3 Packete für die Komunikation benutzt:
Datei:Fortinet-1423.jpg
1. Der Client initiert Traffic und der IPSec Tunnel benützt eine oder mehrer Sicherheitsrichtlinien und der Key sowie Peer ID (Local ID) werden gesendet.
2. Der Responder antwortet mit den gleichen Informtionen plus sendet dieser den hash.
3. Der Client sendet dem Responder den hash payload.
NOTE Die "Peer ID" zur Identifizierung der VPN Verbindung wird in der Phase-1 als "Local ID" konfiguriert im Gegensatz
zum Main Mode dh. im Main Mode benutzt die FortiGate die Source IP um die IPSec Verbindung zu identifizieren denn die
Peer ID wird im Main Mode zu einem späteren Zeitpunkt übermittelt. Aus diesem Grund - wenn mehrere Dial-UP - IPSec
Verbindungen konfiguriert werden ist Aggressive Mode zu bevorzugen und für die Identifizierung der verschiedenen
Verbindungen ist die Peer ID in der Phase-1 zu konfigurieren (Local ID).
Desweiteren ist auf einer FortiGate für "Eingehende" IPSec Verbindung folgendes zu berücksichtigen:
Für alle Eingehenden IPSec Verbindungen selektiert eine FortiGate die erste konfigurierte
IPSec Verbindung in "Alphabetischer" Reihenfolge nach folgenden Kriterien:
1. Local Gateway
2. Mode (Main Mode oder Aggressive Mode)
3. Peer ID (Local ID) sofern Aggressive Mode
4. Authentication Methode (Pre-Shared Key or PKI)
5. Zertifikats Informationen sofern PKI
NOTE Der "Pre-Shared Key" ist kein Selektierungs Kriterium. Wie schon vorgängig erwähnt wenn mehrer Dial-Up IPSec Verbindungen
konfiguriert werden und da "Pre-Shared Key" kein Selektierungs Kriterium ist sollte Aggressive Mode mit Peer ID (Local ID)
benutzt werden. Weiter Informationen betreffend diesem Thema siehe auch:
FortiClient:FAQ#Kann_ich_mehrer_Client2Site_IPSec_VPN_.28Dial-Up.29_auf_.22einer.22_FortiGate_konfigurieren_sei_es_f.C3.BCr_FortiClient.2C_iOS_und_Android.3F
Wie sieht der "Output" für ein IPSec VPN im Debugging Mode aus?
Das nachfolgende Dokument zeigt wie ein Debugging für ein IPSec VPN betreffend Phase-1 und/oder 2 ausgeführt wird. Grundsätzlich benötigt man für das Debugging folgende Befehle:
# diagnose debug reset
# diagnose debug application ike -1
# diagnose vpn ike log-filter
# diagnose debug info
# diagnose debug enable
NOTE Um den Debugging Mode "diagnose debug enable" zu stoppen muss folgender Befehl abgesetzt werden:
# diagnose debug disable
Wenn es sehr viel "output" kommt im Debugging Mode kann der Befehl einfach in die Console kopiert werden
gefolgt von einem "Enter". Damit lässt sich der Debugging Mode beenden. Weiter ausführliche Informationen
betreffend "diagnose debug appplication" sowie "diagnose vpn ike" findet man im nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F
Wie schon erwähnt zeigt das nachfolgende Dokument alle Aspekte eines Debugging für IPSec in der Phase-1 und/oder 2. Dies bedeutet anhand eines Beispiels zeigt das Dokument jeden möglichen Fehler mit seinen Fehlermeldungen. Somit kann dieses Dokument auch benützt werden als Referenz für mögliche Fehler:
Datei:Fortigate-IPSEC-Debugging.pdf
Wie kann ich für ein IPSec VPN für Phase-1 und/oder 2 ein Debugging ausführen?
Ein Debug für IPSec VPN Phase-1 und/oder 2 kann anhand der Debugging Funktion (diagnose debug) auf einer Fortiate durchgeführt werden:
NOTE Das relativ Schwierige bei einem Debug für IPSec ist den Output dieses Debug's korrekt zu intepretieren. Der nachfolgende Artikel enhält ein Dokument von Fortinet das die verschienen Output's resp. Fehlermeldungen aufzeigt. Dieses Dokument soll helfen die Meldungen in der Phase-1 und/oder 2 korrekt zu intepretieren und Fehler zu beseitigen: FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F Desweitern sollte dem Initial Traffic dh. IKE 500 sowie ESP Aufmerksamkeit geschenkt werden dh. wenn der initiale Traffic nicht funktioniert sprich die Gateways nicht miteinander komunizieren können kann kein IPSec etabliert werden. Um den initial Traffic zu Sniffen kann "diagnose sniffer packet" benutzt werden. Weitere Informationen dazu siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Sniffe_Packete_f.C3.BCr_IPSec_betreffend_IKE_sowie_ESP_Traffic_.28NAT_.2F_NAT-T.29.3F
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application ike -l
NOTE Die gebräuchlichste Art den "ike" Debug durchzuführen ist mit der Angabe "-1" was wiederum bedeutet: Maximaler
"debug level". Ebenso wird des öfteren "debug level" "63" benutzt um die Phase-1 zu überprüfen im Main/Aggresive
Mode. Nichts desto trotz stehen zusätzlich folgende "debug level" für "ike" zur Verfügung:
1 Nur die Wichtigsten Error Meldungen werden angezeigt
2 Zeige nur Konfigurations Aenderungen
4 Zeige nur Verbindungsversuche
8 Zeige nur Phase-1 sowie Phase-2 Komunikations Meldungen
16 Zeige nur NAT-T Meldungen (Nat-Traversal)
32 Zeige nur DPD Meldungen an
64 Zeige nur Encryption/Decryption Key's an
128 Zeige nur den Encryption Traffic payload
# diagnose vpn ike log-filter [Log Filter zB Phase1 Name "name"]
NOTE Als "log-filter" stehen verschiedene Möglichkeiten zur Verfügung. Dies bedeutet: Ist auf einer Fortigate mehr
als ein IPSec VPN konfiguriert ist es Sinnvoll nur den Output eines VPN's anzuzeigen anstelle allen VPN's. Der
folgende Befehl listet die verschiedenen Möglichkeiten des Filters auf:
# diagnose vpn ike log-filter list
vd: any
name: any
interface: any
IPv4 source: any
IPv4 dest: any
IPv6 source: any
IPv6 dest: any
source port: any
dest port: any
autoconf type: any
autoconf status: any
Nachfolgender Befehl listet alle Möglichkeiten mit deren Kurzbeschreibung auf:
# diagnose vpn ike log-filter ?
clear Erase the current filter.
dst-addr4 IPv4 destination address range to filter by.
dst-addr6 IPv6 destination address range to filter by.
dst-port Destination port range to filter by.
interface Interface that IKE connection is negotiated over.
list Display the current filter.
name Phase1 name to filter by.
negate Negate the specified filter parameter.
src-addr4 IPv4 source address range to filter by.
src-addr6 IPv6 source address range to filter by.
src-port Source port range to filter by.
vd Index of virtual domain. -1 matches all.
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Deaktiviere den Debug Modus:
# diagnose debug disable
NOTE Es kann zu Situationen kommen in dem der Output des laufenden Debug Mode verhindert einen Befehl in der
Console einzugeben. Wenn dies der Fall ist, kopiere den Befehl einfach in die Console gefolgt durch
"Enter"!
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Setze den IKE "log-filter" zurück und kontrolliere diesen:
# diagnose vpn ike log-filter clear
# diagnose vpn ike log-filter list
Das Debug Kommando "diagnose debug application ike -1" zeigt Detailiert Informationen auf betreffend Kommunikation in der Phase-1/2. Zusätzlich zu diesem Kommando stehen für IPSec VPN's zusätzliche Kommandos zur Verfügung:
# get vpn ipsec state tunnel
NOTE Dieses Kommando zeigt die Anzahl VPN's auf einer FortiGate im Gesamten. Zusammen mit nachfolgenden Befehlen kann ein
Gesamtüberblick erreicht werden der IPSec VPN Konfiguration auf einer FortiGate im Gesamten:
# get vpn ipsec tunnel summary
# get ipsec tunnel list
Wenn für die einzelnen "aktiven" IPSec Tunnels Detailinformationen angezeigt werden sollen kann nachfolgender Befehl
benutzt werden:
# get vpn ipsec tunnel detail
Wie kann ich einen IPSec VPN Tunnel Manuell Stoppen und Starten?
Um einen IPSec VPN Tunnel Manuell zu stoppen/starten kann über das Web Mgmt. Interface folgendes durchgeführt werden:
VPN > Monitor > IPsec Monitor > [Markiere den entsprechenden Eintrag] > [Status bring-up/down]
Diese vorgehensweise über das Web Mgmt. Interface entspricht auf der Kommandozeile folgenden Befehl:
# diagnose vpn tunnel down [Name Phase-2]
# diagnose vpn tunnel up [Name Phase-2]
NOTE Das Kommando "diagnose vpn tunel" steht im Zusammenhang mit der Phase-2 und beeinflusst nicht die Phase-1.
Zusätzlich zu "down/up" stehen folgende Optionen zur Verfügung:
# diagnose vpn tunnel ?
down Shut down tunnel
up Activate tunnel
list List all tunnel
dialup-list Lit dialup tunnel
reset Flush tunnel SAs and reset NT-T and DPD configuration
flush Flush tunnel SAs
delinbsa Remove tunnel sa
deloutbsa Remove tunnel sa
dumpsa Dump all sa
Stat Tunnel statistic info
Das Problem bei der Anwendung -sei es über Web Mgmt. Interface- und/oder Kommandozeile ist das Restinformationen der SA nicht von grundauf Erneuert werden da wie schon erwähnt das hier gezeigte Kommando nur die Phase-2 beeinflusst. Dies bedeutet wenn kleinere Aenderungen an einem IPSec VPN durchgeführt werden sollte diese Vorgehensweise genügen. Sollte ein VPN IPSec von Grundauf neu gestartet werden mit sämtlichen Informationen sollte die vorgehensweise im nachfolgenden Artikel durchgeführt werden:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F
Spielt die Zeichenanzahl des Namens für ein IPSec in der Phase-1 und/oder 2 eine Rolle?
Der Name (Zeichenanzahl) für eine IPSec Konfiguration in der Phase-1 und/oder 2 sollte 15 Zeichen nicht übersteigen. In einem Site2Site VPN indem nur "ein" Tunnel geöffnet wird ist dies kein Problem. In einem Dial-UP VPN bei dem für zusätzliche Verbindungen zusätzliche VPN-Tunnels geöffnet werden, kann dies zu einem Problem führen, denn für jeden Tunnel wird ein "_#" (# steht für 0-9) angehängt. Dies bedeutet werden 10 zusätzliche Verbindunge geöffnet wird an jedem Tunnel "_##" (# steht für 10-99) angehängt. Sobald die Länge des Namens 15 übersteigt kommt es zu Problemen. Aus diesem Grund sollte eine IPSec in der Phase-1 und/oder 2 nie mehr als 12 Zeichen enthalten damit noch genug Zeichen noch vorhanden sind um "_##" (0-99) anzuhängen und somit 100 Gleichzeitige Verbindungen geöffnet werden können.
NOTE Unter FortiOS 5.2 wird diesem Umstand "visuell" über Web Mgmt. Interface Rechnung getragen wenn ein Dialup VPN konfiguriert wird. Wenn der Name eine bestimmte Länge überschreitet wird ein entsprechender Hinweis angezeigt und die Zahl möglicher Gleichzeitiger Verbindungen! Datei:Fortinet-1209.jpg
Wie kann ich ein IPSec VPN neu Initieren (Starten) damit von Grundauf neue Informationen (SA) aktiv werden?
Wenn eine IPSec Verbindung Konfiguriert wurde und nachträglich an dieser Konfiguration Aenderungen durchführt (event. auf beiden Seiten) kann es vorkommen, dass die neuen Informationen nicht übernommen/aktiv werden. Oft wird als letzte Alternative ein Neustart des Gerätes durchgeführtt. Nach einem Neustart werden die neuen Informatione sofort aktiv. Die Vorgehensweise einen Device neu zu starten ist zwar eine Möglichkeit aber nicht in jedem Fall machbar da event. mehrere IPSec Tunnel auf dem Device konfguriert wurden und durch dieses Vorgehen ein Unterbruch in den IPSec VPN Verbindungen stattfindet. Speziell wenn grundlegende Konfigurationsänderungen durchgeführt wurden in der IPSec Konfiguration, sei es betreffend Subnets oder in der Phase-1/2, kann folgendermassen vorgegangen werden um ein IPSec von grundauf neu zu Initieren (inkl. SA Informationen; Security Association):
"Erneuerung der Routing Table"
# execute router restart
"Erneuerung der SA (Security Associations ) für ALLE VDom's"
# diagnose debug application ike 2
# diagnose debug enable
# diagnose vpn ike restart
oder
# diagnose vpn ike gateway flush [name Phase 1]
NOTE Wenn ein "diagnose vpn ike restart" durchgeführt wird so wird der IKE Deamon der FortiGate neu gestartet. Dies bedeutet:
Sämtliche konfigurierten IPSec VPN's auf der FortiGate erfahren einen Neustart und somit wird ein Unterbruch stattfinden
auf sämtlichen IPSec Verbindung die auf der FortiGate konfiguriet wurden. Wenn dies nicht möglich ist, kann ein "diagnose
vpn ike gateway flush [name Phase 1]" durchgeführt werden. Zusätzlich steht der Befehl "diagnose vpn tunnel" zur Verfügung
um ein IPSec VPN neu zu starten etc. jedoch steht dieses Kommando nur im Zusammenhang mit der Phase-2 und beeinflusst somit
nicht die Phase-1 sprich die SA der Phase-1 kann mit diesem Befehl nicht erneuert werden. Mehr Informationen zum Kommando
"diagnose vpn tunnel" siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_einen_IPSec_VPN_Tunnel_Manuell_Stoppen_und_Starten.3F
Danach sollte das Debug wieder abgeschaltet werden:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Wenn die vorhergehende Ausführen keine Lösung bringt so sollte zu Troubleshooting Zwecken (Support) - und vor dem Reboot- folgendes durchgeführt werden:
NOTE Um das nachfolgende Scenario und Befehle besser zu verstehen gehen wir von folgenden Scenario aus:
_________________________ ___________ __________ ____________ _________________________
| | | | 1.1.1.1 | | 2.2.2.2 | | | |
| LAN Env. 10.1.1.0/24 |----- LAN ------| Forti I |------ WAN1 ------| IPSec |------ WAN 1 ------| Forti II |------ LAN -----| LAN Env. 10.2.2.0/24 |
|_________________________| |___________| |__________| |____________| |_________________________|
Phase-1 Interface auf der Forti I ist benannt: "toFGT2"
Phase-1 Interface auf der Forti II ist benannt: "toFGT1"
Folgende Symptome treten auf:
--> Der Tunnel ist "up" und wird dementsprechenden auch so im WebGui angezeigt.
--> Wenn ein ICMP Echo Request von 1.1.1.1 zu 2.2.2.2 gesendet wird dann:
. Ich sehe die ICMP Packet auf dem Forti I "internal" Intercace
. Ich sehe die ICMP Packet auf dem Forti I "toFGT2" Interface
. Ich sehe keinen Traffic auf der Forti II "toFGT1" Interface
Ausgehend von diesen Vorraussetzungen führe folgendes aus (Logge alles in ein File):
AUF DER FORTI I
Oeffne eine CLI Session 1 (IKE Debug und Debug Flow für ICMP Traffic
# diagnose debug reset
# diagnose debug console timestamp en
# diagnose vpn ike log-filter clear
# diagnose vpn ike log-filter dst-addr4 [Public IP Forti I dh. 2.2.2.2]
# diagnose debug application ike -1
# diagnose debug flow filter clear
# diagnose debug flow show console enable
# diagnose debug flow filter proto 1
# diagnose debug flow filter addr [Client IP Forti I Local Env. der den ICMP ausführt dh. 10.2.2.2]
# diagnose debug flow trace start 10000
# diagnose debug enable
Oeffne eine CLI Session 2 (Capture ICMP Traffic) ==
# diagnose sniffer packet any 'host [Client IP Forti II Local Env. nachdem der ICMP ausführt wird dh. 10.2.2.2] and icmp' 6 0 a
Oeffne eine CLI Session 3 (Capture IPSec Traffic) ==
# diagnose sniffer packet any 'host [Forti II WAN-1 2.2.2.2] and [esp oder UDP Port 4500]' 6 0 a
Oeffne eine CLI Session 4 (Capture IPSec Traffic) ==
# get sys status
# get ro info ro dat
# fnsysctl ps
# diagnose vpn ike status summary
# diagnose vpn ike status detailed
# get vpn ipsec tunnel summary
# diagnose vpn tunnel stat
# diagnose vpn ike crypto stats
# diagnose vpn ipsec status
# diagnose vpn ike gateway list
# diagnose netlink interface list [Name der Phase 1 auf Forti I dh. toFGT2]
# diagnose vpn ike routes
# diagnose vpn tunnel list
# diagnose vpn ike errors
# diagnose vpn ike counts
# diagnose hardware deviceinfo nic [Physical Interface über dessen IPSec läuft dh. wan1]
# fnsysctl cat /proc/net/ipsec0
# fnsysctl cat /proc/cp6kxp/kxp0/brief
# fnsysctl cat /proc/cp6kxp/kxp0/cmdq
# fnsysctl cat /proc/cp6kxp/kxp0/cmdqdis
# fnsysctl cat /proc/cp6kxp/kxp0/rng
# fnsysctl cat /proc/cp6kxp/kxp0/task
# fnsysctl cat /proc/cp7/vpn0/brief
# fnsysctl cat /proc/cp7/vpn0/registers
# fnsysctl cat /proc/cp8/vpn0/brief
# fnsysctl cat /proc/cp8/vpn0/registers
# fnsysctl cat /proc/fsoc/cp7/vpn0/brief
# fnsysctl cat /proc/fsoc/cp7/vpn0/registers
NOTE Der "fnsysctl" Befehl schreibt die CP6/CP7/CP8/SoC Statistik Informationen in die CLI Session.
Einige der Kommandos werden nicht funktionieren (file does not exist) da diese Kommandos alle ASIC's
abdecken resp. überprüft. NP2/NP4/SP Hardware Offload Informationen sind nicht enthalten das diese
Informationen auf dem FortiGate Modell basiert (Einige haben ein Chip, andere Zwei oder auch Vier).
AUF DER FORTI II
Oeffne eine CLI Session 1 (IKE Debug und Debug Flow für ICMP Traffic
# diagnose debug reset
# diagnose debug console timestamp en
# diagnose vpn ike log-filter clear
# diagnose vpn ike log-filter dst-addr4 [Public IP Forti I dh. 1.1.1.1]
# diagnose debug application ike -1
# diagnose debug flow filter clear
# diagnose debug flow show console enable
# diagnose debug flow filter proto 1
# diagnose debug flow filter addr [Client IP Forti I Local Env. der den ICMP ausführt dh. 10.1.1.1]
# diagnose debug flow trace start 10000
# diagnose debug enable
Oeffne eine CLI Session 2 (Capture ICMP Traffic) ==
# diagnose sniffer packet any 'host [Client IP Forti II Local Env. nachdem der ICMP ausführt wird dh. 10.1.1.1] and icmp' 6 0 a
Oeffne eine CLI Session 3 (Capture IPSec Traffic) ==
# diagnose sniffer packet any 'host [Forti II WAN-1 1.1.1.1] and [esp oder UDP Port 4500]' 6 0 a
Oeffne eine CLI Session 4 (Capture IPSec Traffic) ==
# get sys status
# get ro info ro dat
# fnsysctl ps
# diagnose vpn ike status summary
# diagnose vpn ike status detailed
# get vpn ipsec tunnel summary
# diagnose vpn tunnel stat
# diagnose vpn ike crypto stats
# diagnose vpn ipsec status
# diagnose vpn ike gateway list
# diagnose netlink interface list [Name der Phase 1 auf Forti II dh. toFGT1]
# diagnose vpn ike routes
# diagnose vpn tunnel list
# diagnose vpn ike errors
# diagnose vpn ike counts
# diagnose hardware deviceinfo nic [Physical Interface über dessen IPSec läuft dh. wan1]
# fnsysctl cat /proc/net/ipsec0
# fnsysctl cat /proc/cp6kxp/kxp0/brief
# fnsysctl cat /proc/cp6kxp/kxp0/cmdq
# fnsysctl cat /proc/cp6kxp/kxp0/cmdqdis
# fnsysctl cat /proc/cp6kxp/kxp0/rng
# fnsysctl cat /proc/cp6kxp/kxp0/task
# fnsysctl cat /proc/cp7/vpn0/brief
# fnsysctl cat /proc/cp7/vpn0/registers
# fnsysctl cat /proc/cp8/vpn0/brief
# fnsysctl cat /proc/cp8/vpn0/registers
# fnsysctl cat /proc/fsoc/cp7/vpn0/brief
# fnsysctl cat /proc/fsoc/cp7/vpn0/registers
NOTE Der "fnsysctl" Befehl schreibt die CP6/CP7/CP8/SoC Statistik Informationen in die CLI Session.
Einige der Kommandos werden nicht funktionieren (file does not exist) da diese Kommandos alle ASIC's
abdecken resp. überprüft. NP2/NP4/SP Hardware Offload Informationen sind nicht enthalten das diese
Informationen auf dem FortiGate Modell basiert (Einige haben ein Chip, andere Zwei oder auch Vier).
Nun Oeffne auf "Forti I" auf dem Client 10.1.1.1 ein DOS Box (cmd) und versuche den Client auf "Forti II" zu erreichen dh. 10.2.2.2!
C:\> ping 10.2.2.2
Sobald ersichtlich ist, dass der Ping den Client 10.2.2.2 auf "Forti II" nicht erreichen kann führe die Kommandos in der "ClI Session 4" auf Forti I und Forti II erneut aus:
Oeffne eine CLI Session 4 (Capture IPSec Traffic) ==
# get sys status
# get ro info ro dat
# fnsysctl ps
# diagnose vpn ike status summary
# diagnose vpn ike status detailed
# get vpn ipsec tunnel summary
# diagnose vpn tunnel stat
# diagnose vpn ike crypto stats
# diagnose vpn ipsec status
# diagnose vpn ike gateway list
# diagnose netlink interface list [Name der Phase 1 auf Forti II dh. toFGT1]
# diagnose vpn ike routes
# diagnose vpn tunnel list
# diagnose vpn ike errors
# diagnose vpn ike counts
# diagnose hardware deviceinfo nic [Physical Interface über dessen IPSec läuft dh. wan1]
# fnsysctl cat /proc/net/ipsec0
# fnsysctl cat /proc/cp6kxp/kxp0/brief
# fnsysctl cat /proc/cp6kxp/kxp0/cmdq
# fnsysctl cat /proc/cp6kxp/kxp0/cmdqdis
# fnsysctl cat /proc/cp6kxp/kxp0/rng
# fnsysctl cat /proc/cp6kxp/kxp0/task
# fnsysctl cat /proc/cp7/vpn0/brief
# fnsysctl cat /proc/cp7/vpn0/registers
# fnsysctl cat /proc/cp8/vpn0/brief
# fnsysctl cat /proc/cp8/vpn0/registers
# fnsysctl cat /proc/fsoc/cp7/vpn0/brief
# fnsysctl cat /proc/fsoc/cp7/vpn0/registers
NOTE Diese Kommandos in "CLI Session 4" erstellen einen Snapshot bevor der ICMP ausgeführt wird sowie nachträglich.
Das ist der Grund wieso die Kommands zweimal ausgeführt werden müssen.
Danach müssen alle "CLI Sessions" sauber abgespeichert werden sowie dem Support übermittelt werden. Mit diesen Informationen die vollumfänglich sind kann der Support eine tiefgreifenden Analyse durchführen!
Wie kann ich für ein IPSec VPN den Status der Security Association (SA) abfragen?
Die "Security Association" ist das Herzstück eines IPSec VPN's dh. diese wird erstellt zu Beginn eines IPSec VPN Aufbaus in der Phase-1 sowie diese wird nach gesetzer Keylifetime erneuert. Aus nachfolgenden Kommando können mehrere Wichtige Informationen gezogen werden betreffend Phase-1 SA:
# diagnose vpn ike gateway list
vd: root/0
version: 1
interface: port1 2
addr: 10.200.1.1:500 -> 10.200.3.1:500
created: 8683s ago
IKE SA: created 1/2 established 1/1 time 10/10/10 ms
IPSec SA: created 1/3 established 1/3 time 10/10/10 ms
id/spi: 2 a08fc739780e405b/cbb5f7ea30af294d
direction: responder
status: established 8660-8660s ago = 10ms
proposal: des-md5
key: b85e222c41ee9909
lifetime/rekey 86400/77469
DPD sent/recv: 000005d2/0000005b0
In diesem Output sieht man verschiedenen Informationen wie zB:
version: - Welche Version von IKE wird benutzt
interface: - Für das VPN wird welches Interface benutzt
created: - Wann wurde die Phase-1 erstellt
direction: - Welcher Gateway/IP hat das VPN initiert
proposal: - Welche Proposal werden benutzt für Phase-1
lifetime: - Welche lifetime wird benutzt
DPD sent/recv: - Letzet DPD sent/recv
Das Gleiche kann für die Phase-2 SA durchgeführt werden dh.:
# diagnose vpn tunnel list
name=Remote ver=1 serial=1 10.200.1.1:0->10.200.3.1:0
lgwy=static tun=intf mode=auto bound if=2
proxyid_num=2 child num=0 refcnt=7 ilast=0 olast=0
stat: rxp=0 txp=0 rxb=0 txb=0
dpd: mode=active on=1 idle=5000ms retry=3 count=0 seqno=1490
natt: mode=none draft=0 interval=0 remote_port=0
proxyid=Remote proto=0 sa0 ref=1 serial=1
src:0:10.0.1.0/255.255.255.0:0
dst:0:10.0.2.0/255.255.255.0:0
SA: ref=3 options=000000e type=00 soft=0 mtu=1446
expire=39766 replaywin=2048 seqno=1
life: type=01 bytes=0/0 timeout=43152/43200
dec: spi=bee75e37 esp=des key=8 af138cd415c7e900
ah=md5 key=16 47090e94d4fa026b652af1fea8d4d228
enc: spi=352f0146 esp=des key=8 faff7973e50093f0
ah=md5 key=16 97dff98d0aa7df779db5a7fib116905ff
npu_flag=00 npu_rgwy=10.200.3.1 npu_lgwy=10.200.1.1
npu selid=1
dec:pkts/bytes=0/0, enc:pkts/bytes=0/0
In diesem Output sind auch Wichtige Information die herausgelesen werden könnnen wie zB:
name=Remote ver=1 serial=1 10.200.1.1:0->10.200.3.1:0 - IP's der Gateways
natt: mode=none - Wird NAT-T (Nat Traversal) benutzt oder nicht. "silent" indiziert es wird NAT-T benutzt
dpd: mode=active on=1 idle=5000ms retry=3 count=0 - Die Position "count=0" indiziert ob DPD Fehler aufgetreten sind.
dec: - Indiziert die SPI dh. Austausch der Encryption sowie Authentication und zeigt den "key"
für den Traffic in beide Richtungen
dec:pkts/bytes=0/0, enc:pkts/bytes=0/0 - Stellt den Traffic counter dar für das IPSec VPN
Wenn man nun diese "SA" eines VPN von Grundauf erneuern möchte muss das IPSec VPN neu gestartet werden. Nachträglich kann wiederum mit den hier gezeigten Kommandos die Informationen kontrolliert werden. Wie ein IPSec VPN zur Erneuerung der SA neu gestartet wird siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F
Wann sollte ich den "Quick MOde Selector" benutzen, was muss ich berücksichtigen und welche Funktion hat dieser?
Wenn zwischen FortiGate's ein Site2Site VPN aufgebaut werden soll und/oder zwischen Interoperability Devices (Fremdprodukte) stellt sich die Frage ob die Netze/Subnet's in der Phase2 unter "Quick Mode" Selektor definiert werden sollen. In der Phase2 von IKE wird der "Quick Mode" verwendet (Schutz durch die IKE SA). Die gesamte Kommunikation in dieser Phase2 erfolgt verschlüsselt. Wie in der Phase1 wird zunächst ein Vorschlag (Proposal) gemacht und zusammen mit einem "Hashwert" und dem "Nonce" übertragen. Später werden die Schlüssel neu berechnet, und es fließen keinerlei Informationen aus den zuvor generierten SA's (Security Association) ein. Dies stellt sicher, dass niemand von den zuvor generierten Schlüsseln auf die neuen schließen kann (Perfect Forward Secrecy). Dies wird erreicht, indem ein zusätzlicher Diffie-Hellman-Austausch stattfindet. Die Geheimnisse zur Schlüsselbildung werden verworfen, sobald der Austausch abgeschlossen ist. Nun wenn man das liest fällt einem folgender Satz auf:
"In der Phase2 von IKE wird der "Quick Mode" verwendet...."
Dies ist "Die" relevante Aussage dh. durch die Konfiguration eines VPN's kann nicht gewählt werden ob der "Quick Mode Selector" benutzt werden soll oder nicht, denn dieser wird in der Phase2 immer benutzt! Die Frage ist nur "Wie" wird der "Quick Mode Selector" benutzt dh. folgende Varianten sind möglich:
-> In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor definiert
-> In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor als "wildcard" definiert dh. "0.0.0.0/0"
Aus diesen zwei Varianten fragt man sich "wo" die Vor- und Nachteile der Varianten sind? Nachfolgend die zwei Varianten mit dessen Vor- und Nachteile:
In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor definiert
Werden die Netze/Subnet's in der Phase2 definiert so werden diese zwischen dem Remote Gateway ausgetauscht und müssen
gegenüber dem Gateway 100% übereinstimmen in der Source und Destination. Dies bedeutet die Source als Netz/Subnet muss
auf dem Remote Gateway 100% betreffend Subnetting übereinstimmen mit dessen Definition der Destination. Das gleiche gilt
für die Destination muss auf dem Remote Gateway mit dessen Source 100% übereinstimmen. Werden falsche oder unterschiedliche
Netze/Subnet's definiert wird die betreffend Phase2 verworfen. Wenn mehrer Netze/Subnet's in der gleichen Phase2 konfiguriert
werden müssen ist das nicht auf jedem Interoperability Device möglich. Ist dies nicht möglich können "mehrere" Phase2 dafür
zur Phase1 definiert werden. Jede Phase2 beinhaltet dann die einzelne Definition der einzelnen Netze/Subnet's. Für einige
Interoperability Devices können in der Phase2 unter "Quick Mode Selector" Gruppen definiert werden. Diese Gruppen beinhalten
die einzelnen Netze/Subnet's (Unter FortiOS 5.2.1 möglich). Dies wird wiederum nicht für alle Interoperability Device's
unterstützt (zB Cisco ASA).
In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor als "wildcard" definiert dh. "0.0.0.0/0"
Wird in der Phase2 unter dem "Quick Mode Selector" "Wildcards" definiert dh. "0.0.0.0/0" sind potentiell "alle" Netze
erlaubt dh. im Austausch in der Phase2 mit dem Remote Gateway und ebenfalls durch dessen Konfiguration im "Quick Mode
Selector" durch "wildcards" wird potentiell vereinbart, dass alle Netze/Subnet's akzeptiert werden! Dies kommt jedoch
nur Zustande, wenn der Remote Gateway ebenfalls im "Quick Mode Selektor" die Konfiguration der "wildcards" benutzt. Nicht
alle Interoperability Devices unterstützen dies. Wie schon erwähnt -durch die "wildcard" Konfiguration "0.0.0.0/0"- ist
jedes Netz/Subnet in der Phase2 erlaubt. Somit fällt die Problematik von mehreren Netzen/Subnet's weg und die Definiton
einer Phase2 reicht für jede Konfiguration aus. Die Zugriffe werden nun gesteuert über "statische" Routen sowie über
entsprechende Firewall Policy Rules. In dieser Konfiguration anhand der "wildcards" ist es nicht ratsam in der Firewall
Policy Rule "all" zur Definition der Destination resp. Source zu benutzen da durch die "wildcards" potentiell sämtlicher
Traffic erlaubt ist.
Fazit
Die Konfiguration für den "Quick Mode Selector" durch "wildcards" ist einfacher und Transparenter auch für spätere Erweiterungen
da die Phase2 nur einmal konfiguriert werden muss. Sämtliche Konfiguration in einem späteren zeitpunkt werden über "statische
Routen" sowie "Firewall Policy Rules" gesteuert. Aus diesem Grund sollten Konfigurationen in einem Site2Site VPN in der zwischen
FortiGate's ein IPSec etabliert werden soll im "Quick Mode Selector" die Konfiguration von "wildcards" benutzt werden. Für
Interoperability Device's (Fremdprodukten) sollte dies Konfiguration in Betracht gezogen werden. Ist dies nicht möglich müssen
die Netze/Subnets im "Quick Mode Selector" definiert werden. Wenn mehrere Netze/Subnet's für Interoperability Devices definiert
werden müssen und "wildcard" ist nicht möglich können diese im "Quick Mode Selector" als Gruppen definiert werden die diese
verschiedenen Netze/Subnets beinhalten. Ist dies nicht möglich da der Interoperability Device dies nicht unterstützt können die
einzelnen Netze/Subnets einzel anhand verschiedenen Phase2 zur Phase1 hinzugefügt werden.
Aus den vorhergehnder Erklärung ergiebt sich folgede Fragestellung, auch dann wenn nur FortiGate Devices involviert sind:
• Welche Netze/Subnets werden benützt um ein Site2Site VPN aufzubauen (Wenn gleiche Netze/Subnet's benützt werden = Ovelapping Encryption Domain)?
• Wenn gleiche Netze/Subnets benutzt werden muss ein NAT (Network Address Translation) konfiguriert werden. Welche Netze/Subnets werden dazu benützt?
• Können beide Seiten für die Phase2 "wildcard" (0.0.0.0/0) im "Quick Mode" Selector benutzen?
• Welche Einstellungen sollen benutzt werden für die Phase1/2 die da sind:
Network
Interface based VPN (kein Policy based VPN)
IP Version: 4
Remote Gateway IP: ? (Statische Public IP / DDNS Name)
Mode Config: None
NAT Traversal: Activate
NAT Traversal Keepalive Frequency: 10
DPD (Dead Peer Detection): Activate
Authentication
Method: PSK (Preshared Key sollte über SMS und/oder Teleon ausgetauscht werden)
IKE: Version 1
Mode: Main-Mode (Für Site2Site VPN nur in Ausnahmefällen "Aggressive Mode" benutzen)
Phase1 Proposal
Encryption: AES256
Authentication: MD5
Fallback Encryption: AES256
Fallback Authentication: SHA1
DH Group (Diffie-Hellmann Group): 5
Key Lifetime (seconds): 86400
Local ID: None
XAUTH: None
Phase2 Proposal
Encryption: AES256
Authentication: MD5
Fallback Encryption: AES256
Fallback Authentication: SHA1
Enable Replay Detection: Activate
PFS (Perfect Forward Secret): Activate
DH Group (Diffie-Hellmann Group): 5
Autokey Keep Alive: Activate
Auto-negotiate: Activate
Key Lifetime (seconds): 43200
Quick Mode Selector Local Address: 0.0.0.0/0
Quick Mode Selector Remote Address: 0.0.0.0/0
• Beide Seiten des Site2Site VPN's müssen sich über die Angaben resp. Konfiguration einigen!
• Konfiguriere Phase1/2 anhand der ausgehandelten Angaben!
• Konfiguriere für Remote Address (Netz/Subnet) "Statische Routen" (als Interface wird Phase1 Name benutzt)
• Konfiguriere Firewall Policy Rule Netze/Subnet (nicht "all") für Incoming und/oder Outgoing Traffic (als Interface wird Phase1 benutzt)
NOTE Sobald beide Seiten das VPN ordnungsgemäss konfiguriert haben und sich auf das PSK (Preshared Key) geeinigt haben kann
das VPN getestet werden. Dabei ist es Hilfreich einen Server freizugeben im entsprechenden Netz (Firewall Policy Rule)
der über ICMP erreichbar ist (vorgängig testen). Für einen Test sollte nich das interne Interface der Firewall benutzt
werden sondern die effektive Destination (Routing!). Dabei sollte bei Problem folgendes berücksichtigt werden:
Wie sieht der "Output" für ein IPSec VPN im Debugging Mode aus?
Wie kann ich für ein IPSec VPN für Phase-1 und/oder 2 ein Debugging ausführen?
Desweiteren wenn ein Site2site VPN verändert wird dh. für Routing und/oder zB für neue Netz/Subnet's sollte die Erneuerung
des Routing (Routing Tabelle) sowie die Erneuerung der SA (Security Association) berücksichtigt werden:
Wie kann ich ein IPSec VPN neu Initieren (Starten) damit von Grundauf neue Informationen (SA) aktiv werden?
Kann man mit Fortigate eine IPSec VPN Verbindungen (Site2Site) mit Fremdanbietern herstellen (Interoperability Device)?
Fortigate's folgen betreffend IPSec einem IPSec Standard und somit gegenüber Fremdanbietern (Interoperability Device's) Kompatibel. Die offenen Fragen die sich ergeben in solchen Situationen/Konfigurationen betreffen Hauptsächlich die Phase-1 und/oder 2. Dies bedeutet beide Seiten müssen über die gleiche Konfiguration verfügen. Nur so komunizieren die unterschiedlichen Device's einwandfrei. Zu diesen Fragen sollten die in der Phase-1 und/oder 2 verwendeten Konfigurationspunkte gehören. Nachfolgend ein Beispiel um welche Konfigurationspunkte es sich handelt:
Datei:Fortinet-1165.jpg Datei:Fortinet-1166.jpg Datei:Fortinet-1167.jpg
Wenn die nötigen Informationen ausgetauscht sind, ist es Sinnvoll über bestimmte Sonderheiten betreffend dem Fremdanbieter kurz zu recherchieren. Folgende Seite von Fortinet gibt einige Hinweise über Fremdanbietern sowie gewissen Konfigurationspunkte. Dabei spielt jedoch Firmewarestand etc. event. eine Rolle;
http://kb.fortinet.com/kb/microsites/microsite.do?cmd=displayKC&externalId=FD30603
Nach der Konfiguration ist es Sinnvoll die Phase-1 und/oder 2 näher über den Debugging Mode zu kontrollieren um event. Fehlermeldungen zu verhindern:
NOTE Wenn es zu Problemen kommt sollte auf beiden Seiten ein Debug Mode ausgeführt werden. Nur in Kooperation kann die
Konfiguration vervollständigt werden um einen zukünftig einwandfreien Betrieb zu gewährleisten!
FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F
Nachfolgend einige Informationen betreffend Fremdanbietern (Interoperability Device):
IPSEC MICROSOFT AZURE <--> FORTIGATE:
Datei:IPsec-VPN-FGT-Microsoft-Azure.pdf
Fortinet Unterstützt AZURE betreffend FortiOS Site2Site VPN ab folgenden Versionen:
Ab 5.2.7 oder höher
Ab 5.4.x oder höher
Wenn FortiOS eingesetzt werden zB 5.2.6 oder tiefer kommt es nach einiger Zeit in der Phase2 zu Problemen (random failures).
Ebenfalls wird über folgenden Link aufgelistet betreffend AZURE welche Devices/OS für AZURE unterstützt werden:
https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-about-vpn-devices
https://azure.microsoft.com/en-us/documentation/articles/vpn-gateway-about-vpn-devices/
IPSEC CISCO ASA <--> FORTIGATE:
Datei:Configuring-IPsec-VPN-with-a-FortiGate-and-a-Cisco-ASA.pdf
IPSEC ASTARO/SOPHOS V8 <--> FORTIGATE:
http://www.sophos.com/de-de/support/knowledgebase/116130.aspx
NOTE Unter Astaro/Sophos im Zusammenhang mit Fortigate muss die Encryption "3DES" benutzt werden ansonsten kommt
es zu Problemen (Error INVALID-MESSAGE-ID)! Der Grund liegt in der Implementierung von "AES" seitens Sophos. Dies
gilt für FortiOS 4.x sowie 5.x basierend auf Astaro 8.x:
Astaro/Sophos Konfiguration 8.x
Datei:Fortinet-777.jpg
Fortigate Konfiguration 4.x / 5.x
Datei:Fortinet-778.jpg
IPSEC SOPHOS V9 <--> FORTIGATE:
NOTE Unter Sophos Version 9.x hat sich die Limitierung betreffend "3DES" geändert dh. folgende Konfiguration wurde getestet
und läuft einwandfrei:
Sophos Konfiguration 9.x
Datei:Fortinet-1342.jpg
Datei:Fortinet-1343.jpg
Datei:Fortinet-1344.jpg
Fortigate Konfiguration 5.x
Datei:Fortinet-1340.jpg
Datei:Fortinet-1341.jpg
Gibt es eine Möglichkeit mit einem Android über IPSec eine Verbindung aufzubauen zu einer Fortigate?
Die beiden offiziellen Apps von Fortinet für IPhone und/oder Android unterstützen in der 5.0 Version ausschliesslich das Browsen dh. wenn man verbunden ist mit dem APP kann der aufgebaute VPN Tunnel nur für das Browsen benutzt werden deshalb wird dieser Client auch "SSL proxy VPN connection agent" genannt. Neu unter FortiOS 5.2 unterstützt - im Gegensatz zu IOS - Android ebenfalls eine IPSec Verbindung. Will man eine klassische IPSec Verbindung anhand eines IOS Gerätes durchführen so ist das mit dem Cisco Client (Unity Client) möglich sowie mit der eingebauten VPN Funktion eines IPhones. Nachfolgende Links geben Auskunft wie so eine Verbindung zu konfigurieren ist auf Android:
FortiGate-5.0-5.2:FAQ#Gibt_es_f.C3.BCr_IOS_und_Android_einen_SSL_VPN_Client.3F NOTE Für die Konfiguration eines IOS Devices anhand des "build-in" Cisco Client's siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Gibt_es_eine_M.C3.B6glichkeit_mit_einem_IPhone.2FIPad_.C3.BCber_IPSec_eine_Verbindung_aufzubauen_zu_einer_Fortigate.3F
Gibt es eine Möglichkeit mit einem IPhone/IPad über IPSec eine Verbindung aufzubauen zu einer Fortigate?
Ab FortiOS 5.0.2 ist es möglich den "build-in" Cisco VPN Client anhand des "iPhone Configuration Utility" für Windows und/oder MAC zu konfigurieren anhand eines Profiles (.mobileconfig) und dieses wiederum auf der FortiGate unter "Endpoint Profile" einzulesen damit dieses Profile den IPhone/IPad Devices (min. IOS V5.1.1) zugewiesen wird. Dies geschieht über das "FortiClient" App. Folgendes Dokument beschreibt diesen Vorgang sowie dessen Konfiguration:
Datei:Mobile-configuration-profiles-technical-note.pdf (Mobile Configuration Profiles for iOS Devices Technical Note) NOTE Wenn die IPSec Konfiguration durchgeführt wird speziell mit dem Cisco Client muss Split Tunneling deaktiviert werden ansonsten kommt es zu Problemen! Das Tool das im vorhergehenden Dokument erwähnt ist um die VPN Konfiguration unter Windows als File .mobileconfig vorzukonfigurieren wird durch Apple unter Windows "nicht" mehr zur Verfügung gestellt. Nachfolgend wird dieses Tool unter Windows hier zur Verfügung gestellt jedoch ohne Gewähr: Datei:IPhoneConfigUtilitySetup 3.6.2.zip Windows 7 32bit/64bit
Damit diese Konfiguration anhand .mobileconfig durchgeführt werden kann muss die SSL-VPN Konfiguration (Web Portal) auf der FortiGate durchgeführt werden. Wie ein SSl-VPN auf einer FortiGate konfiguriert wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.2_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
Desweiteren stellt sich immer wieder die Frage "wie ein Zertifikat für iOS auf einer FortiGate zu erstellen ist sowie auf dem iOS Device zu installieren ist". Folgender Artikel gibt Auskunft über diese Thematik:
FortiGate-5.0-5.2:FAQ#Wie_installiere_ich_f.C3.BCr_FortiClient_f.C3.BCr_iOS_.28Apple.29_ein_Zertifikat_auf_den_entsprechenden_Device.3F
Nachfolgend einige Links mit zusätzlichen Informationen:
Support Notes für IPhone und IPad:
http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD30893&languageId=
Cisco Client (Unity Client):
http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD33376&languageId=
IPhone IPsec VPN Setup:
Datei:FortiGate-iPhone VPN Setup-Guide v1.0 English 2010210.pdf
http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD31619
Wie wird unter FortiOS 5.0 ein IPSec basierende Site2Site VPN Verbindung aufgebaut (Interface Based)?
In den nachfolgenden Schritten wird gezeigt wie eine Site2Site IPSec VPN Verbindung unter FortiOS 5.0 zwischen zwei Fortigate's konfiguriert wird. Für die Konfiguration gehen wir von folgender Situation aus:
_________________________ ___________ __________ ____________ _________________________
| | 192.168.2.99| |212.59.153.114/29 | | 193.193.135.66/29| |192.168.1.99 | |
| LAN Env. 192.168.2.0/24 |----- LAN ------| Forti I |------ WAN1 ------| Internet |------ WAN 1 ------| Forti II |------ LAN -----| LAN Env. 192.168.1.0/24 |
|_________________________| |___________| |__________| |____________| |_________________________|
Als Erstes konfigurieren wir die "Forti I" dh. erstelle zuerst eine IPSec Phase-1 und 2 für das IPSec basierende site2site VPN zur "Forti II":
VPN > IPsec > AutoKey (IKE) > Create Phase 1
Datei:Fortinet-143.jpg
Datei:Fortinet-144.jpg NOTE Ab FortiOS 5.0.4 wird ein VPN in der Phase-1 automatisch "Interface Based" konfiguriert und nicht mehr "Policy Based". Der entsprechende Konfigurationspunkt im Web Mgmt. Interface "Enable IPSec Interface Mode" steht nicht mehr zur Verfügung. Dies bedeutet im Hintergrund wird folgendes Kommando ausgeführt: # config vpn ipsec phase1-interface Grundsätzlich sollte kein IPSec VPN "Policy Based" mehr konfiguriert werden da diese Art von VPN's nicht beschleunigt wird. Ein "Interface Based" VPN wird per Standard beschleunigt (Acceleration). Wenn aus "Interoperability" Gründen eine "Policy Based" Konfiguration durchgeführt werden soll zeigt nachfolgender Artikel die nötigen Konfigurations Schritte: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_eine_IPSec_VPN_in_der_Phase-1.2F2_als_.22Policy_Based.22_VPN.3F
Erstelle nun auf der "Forti I" die Phase-1 für die "Forti II":
VPN > IPsec > AutoKey (IKE) > Create Phase 2
Datei:Fortinet-145.jpg
Datei:Fortinet-146.jpg
Nun die "Forti II" hat einen LAN Segment von "192.168.1.0/24". Diese LAN Segment muss auf der "Forti I" bekannt gemacht werden dh. Routing Technisch so definiert werden, damit die "Forti I" weiss wohin dieser IP Range geroutet werden muss! Da dieser IP Range der "Forti II" über das entsprechende IPSec Interface auf der "Forti I" erreichbar ist, muss dieser IP Range anhand eines statischen Route Eintrages auf das entsprechende IPSec Interface auf der "Forti I" geroutet werden. Dieser statische Route Eintrag kommt der "Encryption Domain" gleich. Die Encryption Domain ist per Definition der Bereich der verschlüsselt/entschlüsselt werden soll. Wenn mehrere IP Ranges im Spiel sind ist dabei zu beachten, dass die Definiton korrekt sind dh. die Subnet's übereinstimmen! Erstelle deshalb auf der "Forti I" einen statische Route für "192.168.1.0/24":
Router > Static > Static Route
NOTE Dieser Menüpunkt steht unter FortiOS 5.0 nur zur Verfügung wenn der entsprechende Menüpunkt unter
folgender Position aktiviert wurde:
System > Config > Feature > Advanced Routing
Danach muss kurz ausgeloggt sowie ein erneutes Login durchgeführt werden. Wurde das entsprechende
Feature nicht aktiviert steht der Menüpunkt für das "Static Route" unter folgenden Punkt zur Verfügung:
System > Network > Routing
Datei:Fortinet-147.jpg
Datei:Fortinet-148.jpg
Nun da es sich um einen neue Seite/Interface handelt auf der "Forti-I" kann für Policy Zwecken einen neue Zone erstellt werden:
NOTE Ab FortiOS 5.0.3 kann in einer Firewall Policy mehrere Interfaces definiert werden was in den vorhergehenden
Versionen nicht möglich war. Aus diesem Grund wurde oft mit Zonen gearbeitet. Da die Definition in der Firewall
Policy von mehreren Interface ab FortiOS 5.0.3 möglich ist sind Zonen nicht mehr zu empfehlen da diese gegenüber
der Firewall Policy Abhängigkeiten schaffen
System > Network > Interface > Create New > Zone
Datei:Fortinet-149.jpg
Datei:Fortinet-150.jpg
Die Zone ist nun bekannt jedoch benötigen wir noch die entsprechenden Firewall Policy Rules die den Traffic von oder zu "Forti-II" erlauben:
NOTE Anstelle der Zone kann auch direkt das entsprechende VPN Interface in der Firewall Policy benutzt werden!
Datei:Fortinet-151.jpg
Datei:Fortinet-152.jpg
Datei:Fortinet-153.jpg
Datei:Fortinet-154.jpg
Diese Firewall Policy Rules erlauben sämtlichen Traffic "Von" und "Zur" Encryption Domain. Auch hier ist zu empfehlen den Traffic einzuschränken und die effektiven IP Ranges klar zu definieren da diese als Definition der "Encryption Domain" gelten. Es sollte dem Grunsatz gefolgt werden:
Statischer Route Eintrag = Firewall Policy Destination
Die Konfiguration auf der "Forti-I" ist somit abgeschlossen. Führe auf der "Forti-II" exakt die gleiche Konfiguration durch wie für die "Forti-I" jedoch mit den entsprechenden Anpassungen des Segments. Danach kann ein Test ausgeführt werden. Bei diesem Test zB auf der Fortigate selber (über Console) ist zu berücksichtigen, dass wenn ein Ping abgesetzt wird sollte dieser mit der korrekten Source durchgeführt werden. Die Source in einem Ping kann folgendermassen ausgeführt werden:
# exec ping-options source [IP der gewünschten Source zB LAN Interface .99]
# exec ping [Destination LAN Env Forti-I oder Forti-II]
Wenn die Verbindung Probleme bereitet und ein Debug nötig wird so sollten folgende Artikel berücksichtigt werden:
FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F
Wenn der IPSec VPN Tunnel etabliert wurde jedoch der Traffic nicht auf der anderen Seite ankommt, muessen die Firewall Policy Rules angeschaut werden. Um zu sehen ob ein Packet abgesendet wird etc. kann der Sniffer benutzt werden. Anhand dieses Sniffer's kann jedes einzelne Interface überprüft werden ob der entsprechende Traffic das entsprechende Interface erreicht.
# diagnose sniffer packet [Interface Name zB wan1 oder internal] icmp
NOTE Weitere Informationen zur Verwendung der "sniffer" Funktion siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F
Wie wird unter FortiOS 5.2 ein IPSec basierende Site2Site VPN Verbindung aufgebaut (Interface Based)?
In den nachfolgenden Schritten wird gezeigt wie eine Site2Site IPSec VPN Verbindung unter FortiOS 5.2 zwischen zwei Fortigate's konfiguriert wird. Für die Konfiguration gehen wir von folgender Situation aus:
_________________________ ___________ __________ ____________ _________________________
| | 192.168.2.99| |212.59.153.114/29 | | 193.193.135.66/29| |192.168.1.99 | |
| LAN Env. 192.168.2.0/24 |----- LAN ------| Forti-I |------ WAN1 ------| Internet |------ WAN 1 ------| Forti-II |------ LAN -----| LAN Env. 192.168.1.0/24 |
|_________________________| |___________| |__________| |____________| |_________________________|
Unter FortiOS 5.2 wurde die Art und Weise wie ein VPN konfiguriert wird grundlegend modifiziert. Dies bedeutet: Unter FortiOS 5.2 stehen sogenannte "Template's" (Vorlagen) zur Verfügung zB:
Dialup - FortiClient (Windows, Mac, OS, Androis)
Site to Site - FortiGate
Dialup - iOS (Native)
Dialup - Android (Native L2TP/IPSec)
Dialup - Cisco Firewall
Site to Site - Cisco
NOTE Alle diese "Template's" haben eines Gemeinsam denn diese "Template's" erstellen/konfigurieren
im Hintrgrund automatisch die Konfiguration inkl. Firewall Policy und event. Routing. Diese
"Template's" heranzuziehen um eine Konfiguration zu erstellen ist Sinnvoll bei Dialup Verbindungen
wie FortiClient, iOS, Android jedoch nicht für klassische IPSec Site2Site Verbindungen. Für
Site2Site Verbindungen sind diese "Template's" zu wenig Transparent in der Konfiguration. Egal
Ob diese "Template's" benutzt werden oder nicht sollte immer im Auge behalten werden, dass für
eine VPN Verbindung folgende Aspekte zu berücksichtigen sind:
• Nach der Erstellung des IPSec VPN's kontrolliere Phase-1 und/oder 2!
• Kontrolliere ob die entsprechenden Routing Einträge für das IPSec erstellt wurden!
• Kontrolliere ob eine entsprechende Firewall Policy Rule erstellt wurde!
Folgende Kommandos auf der CLI können benützt werden um die Kontrolle durchzuführen:
# config vpn ipsec [phase1-interface | phase2-interface]
# config router static
# config firewall policy
Wir empfehlen für eine Site2Site IPSec VPN Konfiguration diese ohne die Hilfe der "Template's" durchzuführen. Gemäss unserem Beispiel nachfolgend die Schritte für die Konfiguration auf der "Forti-I":
Konfiguration Phase-1/2 IPSec VPN
VPN > IPSec > Tunnels > Create New
Datei:Fortinet-1185.jpg
Datei:Fortinet-1186.jpg
Datei:Fortinet-1187.jpg
Datei:Fortinet-1188.jpg
Datei:Fortinet-1189.jpg
Datei:Fortinet-1190.jpg
NOTE Die Position "Phase-2 Selectors" stellt die Funktion des "Quick-Mode Selectors" dar und ist unter normalen
Umständen nicht konfiguriert werden!
Erstellen der nötigen Adress Obejkte für Forti-I
VPN > IPSec > Tunnels > Create New
Datei:Fortinet-1191.jpg
Datei:Fortinet-1192.jpg
Datei:Fortinet-1193.jpg
Konfigurieren des Routing für Destination Forti-II
System > Network > Routing > Create New
Datei:Fortinet-1194.jpg
Datei:Fortinet-1195.jpg
Erstellen der Firewall Policy für Forti-I Incoming/Outgoing
Policy > Policy > IPv4 > Create New
Datei:Fortinet-1196.jpg
Incoming
Datei:Fortinet-1197.jpg
Datei:Fortinet-1196.jpg
Outgoing
Datei:Fortinet-1198.jpg
Die Konfiguration auf "Forti-I" ist abgeschlossen. Nun muss auf der "Forti-II" exakt die gleiche Phase-1/2 konfiguriert werden sowie das Routing und Firewall Policy im umgekehrten Sinne. Wenn das IPSec anhand eines Debugging Mode für Phase-1/2 verfiziert werden soll siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
Wenn Traffic für den IPSec Tunnel verifiziert werden soll kann anhand der Sniffer Funktion diese durchgeführt werden:
FortiGate-5.0-5.2:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F
Wenn nach der Grundkonfiguration Modifikationen des IPSec VPN durchgeführt wurden sei es im Routing und/oder Phase-1/2 ist es Sinnvoll das VPN komplett runterzufahren um es erneut von Grundauf neu zu starten. Nachfolgender Artikel zeigt wie dies korrek durchgeführt wird:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F
Wie konfiguriere ich eine IPSec VPN in der Phase-1/2 als "Policy Based" VPN?
Bis FortiOS 5.0.3 konnte man in der Phase-1 den Konfigurations Punkt "Enable IPSec Interface Mode" aktivieren. Wurde dieser aktiviert, wurde die entsprechende Phase-1/2 als "Interface Baed" VPN konfiguriert. Wurde dieser Punkt nicht aktiviert so wurde die entsprechende Phase-1/2 als "Policy Based" VPN konfiguriert. Da der Punkt "Enable IPSec Interface Mode" nicht per Standard aktiviert war wurden VPN's bis FortiOS 5.0.3 per Standard als "Policy Based" VPN konfiguriert. Ab FortiOS 5.0.3 existiert dieser Konfigurationspunkt "Enable IPSec Interface Mode" nicht mehr. Ab FortiOS 5.0.3 wird bei der Konfiguration über das Web Mgmt. Interface einer Phase-1/2 automatisch folgender Befehl ausgeführt:
config vpn ipsec phase1-interface
NOTE Wenn unter FortiOS 5.2 ein IPSec VPN erstellt wird "ohne" Template so steht der Konfigurationspunkt
"Enable IPSec Interface Mode" wieder in der Phase-1 zur Verfügung!
Somit ist der "Interface Mode" ab FortiOS 5.0.3 der Standard auf einer Fortigate. "Policy Based" VPN's sollten nicht mehr konfiguriert werden da diese Art der VPN's über keine Beschleunigung (Acceleration) verfügen. Es kann auf "Interoperability" (Fremdanbietern) Devices vorkommen, dass nur ein "Policy Based" VPN die Kompatiblität innerhalb eines VPN's gewährleistet. Ein "Policy Based" VPN wird im Web Mgmt. Interface innerhalb der Firewall Policy konfiguriert. Dieses Feature steht jedoch ab FortiOS 5.0.4 nur dann zur Verfügung, wenn dieses über folgende Position aktiviert wird:
System > Config > Features > Show More > Policy-based IPsec VPN
Datei:Fortinet-815.jpg
Wird das Feature aktiviert kann ein Policy Based VPN in der Firewall Policy konfiguriert werden:
FortiOS 5.0
Datei:Fortinet-1168.jpg
FortiOS 5.2
Datei:Fortinet-1169.jpg
Ueber Kommandozeile kann der "Policy Based" Mode folgendermassen konfiguriert werden:
FortiOS 5.0
# config vpn ipsec phase1
# edit [Name der Phase1 Policy Based]
# get
name : [Name der Phase1]
type : static
interface :
ip-version : 4
ike-version : 1
local-gw : 0.0.0.0
nattraversal : enable
dhgrp : 5
keylife : 28800
authmethod : psk
peertype : any
xauthtype : disable
mode : main
mode-cfg : disable
proposal : 3des-sha1 aes128-sha1
localid :
localid-type : auto
negotiate-timeout : 30
fragmentation : enable
dpd : enable
forticlient-enforcement: disable
comments :
npu-offload : enable
remote-gw : 0.0.0.0
monitor :
add-gw-route : disable
psksecret : *
keepalive : 10
auto-negotiate : enable
dpd-retrycount : 3
dpd-retryinterval : 5
# config vpn ipsec phase2
# edit [Name der Phase1 Policy Based]
# get
name : [Name der Phase2]
phase1name : [Name der Phase1]
use-natip : enable
selector-match : auto
proposal : 3des-sha1 aes128-sha1
pfs : enable
replay : enable
keepalive : disable
auto-negotiate : disable
keylife-type : seconds
encapsulation : tunnel-mode
comments :
dhgrp : 5
keylifeseconds : 1800
FortiOS 5.2
# config vpn ipsec phase1
# edit [Name der Phase1 Policy Based]
# get
name : [Name der Phase1]
type : static
interface :
ike-version : 1
local-gw : 0.0.0.0
nattraversal : enable
keylife : 86400
authmethod : psk
mode : main
peertype : any
autoconfig : disable
proposal : aes128-sha256 aes256-sha256 3des-sha256 aes128-sha1 aes256-sha1 3des-sha1
localid :
localid-type : auto
fragmentation : enable
dpd : enable
forticlient-enforcement: disable
comments :
npu-offload : enable
dhgrp : 14 5
wizard-type : custom
xauthtype : disable
mesh-selector-type : disable
remote-gw : 0.0.0.0
psksecret : *
keepalive : 10
auto-negotiate : enable
dpd-retrycount : 3
dpd-retryinterval : 5
# config vpn ipsec phase2
# edit [Name der Phase1 Policy Based]
# get
name : [Name der Phase2]
phase1name : [Name der Phase1]
use-natip : enable
selector-match : auto
proposal : aes128-sha1 aes256-sha1 3des-sha1 aes128-sha256 aes256-sha256 3des-sha256
pfs : enable
dhgrp : 14 5
replay : enable
keepalive : disable
auto-negotiate : disable
keylife-type : seconds
encapsulation : tunnel-mode
comments :
keylifeseconds : 43200
Wenn ein "Policy Based" VPN konfiguriert wird stellt sich die Frage, auf welches Interface muss das IP Segment, dass erreicht werden soll über das "Policy Based" VPN, geroutet werden? Da in einem "Policy Based" VPN kein Interface zur Verfügung steht wie im "Interface Mode" muesste das entsprechende IP Segment auf den Default Gateway geroutet werden!
Wie implementiere ich für ein IPSec VPN ein NAT (Source/Destination) für "Overlapping Encryption Domain)?
Wenn ein IPSec zwischen zwei Fortigate's konfiguriert wird ist zu beachten, dass auf beiden Seiten unterschiedliche IP Sgemente existieren. Dies bedeutet: Beide Fortigates dürfen in deren IP Sgementen nicht den gleichen IP Range/Subnet benutzen. Ist dies der Fall spricht man von einer "Overlapping Encryption Domain". In so einer Situation kann/muss ein Source/Destination NAT implementiert werden. Nachfolgendes Beispiel zeigt eine Situation auf, in der auf beiden Seiten das gleiceh IP Segment existiert 192.168.1.0/24:
_________________________ ___________ __________ ____________ _________________________
| | 192.168.1.99| |212.59.153.114/29 | | 193.193.135.66/29| |192.168.1.99 | |
| LAN Env. 192.168.1.0/24 |----- LAN ------| Forti-I |------ WAN1 ------| Internet |------ WAN 1 ------| Forti-II |------ LAN -----| LAN Env. 192.168.1.0/24 |
|_________________________| |___________| |__________| |____________| |_________________________|
Die nachfolgende Konfiguration zeigt auf, wie auf der Seite von "Forti-I" aussehen würde. Da "Forti-I" als Destination für "Forti-II" nicht 192.168.1.0/24 benützen kann muss ein IP Range definiert werden. Dieser IP Range muss mit Forti-II abgesprochen werden, denn dieser darf ebenfalls nicht auf "Forti-II" existieren. Die Ausgangslage ist folgende:
Overlapping Encryption Domain Forti-I --> Forti-II:
Source: 192.168.1.0/24
Destination: 192.168.1.0/24
Source/Destination NAT Forti-I <--> Forti-II:
Source: 192.168.1.0/24 (Source NAT 10.10.10.0/24)
Destination: 192.168.1.0/24 (Destination 192.168.100.0/24)
Source/Destination NAT Forti-II <--> Forti-I:
Source: 192.168.1.0/24 (Source NAT 192.168.100.0/24)
Destination: 192.168.1.0/24 (Destination 10.10.10.0/24)
NOTE Bei der Konfiguration von Source/Destination NAT ist folgendes betreffend NAT/Routing zu berücksichtigen:
Es gilt = "NAT vor Routing"
Nachfolgend die Konfiguration der Outgoing Firewall Policy Rule für "Forti-I" in der die Source translated wird auf 10.10.10.0/24 und als Destination für "Forti-II" 192.168.100.0/24 benutzt:
Outgoing Forti-I --> Forti-II
**********************************
Source Destination
192.168.1.0/24 192.168.100.0/24
NOTE Auf der Fortigate innerhalb einer Firewall Policy wird exakt diese Rule für das IPSec VPN konfiguriert. Dabei
muss auf der "Forti-I" beachtet werden, dass der IP Range/Subnet "192.168.100.0/24" der benutzt wird durch die
User auf der "Forti-I" um die Destinationen auf der "Forti-II" zu erreichen im Netz der "Forti-I" zur Fortigate
geroutet wird. Gleichzeitig muss der IP Range den wir benutzen für die Destintion auf das IPSec der "Forti-II"
geroutet werden. In dieser Firewall Policy wird "Source NAT" aktiviert und der IP Range/Subnet 192.168.1.0/24
translated 1:1 NAT anhand des IP Range/Subnet 10.10.10.0/24!
Aktiviere Central NAT Table
System > Config > Features > Show More > Central NAT Table
Datei:Fortinet-1170.jpg
Destination Routing IPSec Forti-II
Datei:Fortinet-1171.jpg
Datei:Fortinet-1172.jpg
Erstellen des Source NAT Objekts (VIP IP-Pool)
FortiOS 5.0
Firewall Objects > Virtual IP > IP Pools > Create New
FortiOS 5.2
Policy & Objects > Objects > IP Pools > Create New
Datei:Fortinet-1173.jpg
Datei:Fortinet-1174.jpg
Erstellen der Adress Objekte für Forti-I/II
FortiOS 5.0
Firewall Objects > Address > Address > Create New
FortiOS 5.2
Policy & Objects > Objects > Addresses > Create New
Datei:Fortinet-1175.jpg
Datei:Fortinet-1176.jpg
Datei:Fortinet-1175.jpg
Datei:Fortinet-1177.jpg
Konfiguration des Source NAT in der Central NAT Table
Policy & Objects > Policy > Central NAT Table > Create New
Datei:Fortinet-1178.jpg
Datei:Fortinet-1179.jpg
Konfiguration der Firewall Policy Outgoing (Forti-I --> Forti-II)
FortiOS 5.0
Policy > Policy > Policy > Create New
FortiOS 5.2
Policy > Policy > IPv4 > Create New
Datei:Fortinet-1180.jpg
Datei:Fortinet-1181.jpg
NOTE Durch die Aktivierung der Position NAT wird die Funktion des Source NAT aktiviert. Inerhalb
dieser Position wird Central NAT Table aktiviert. Aus diesem Grund wird diese Central NAT
Table benutzt um das Source NAT durchzuführen.
Nachfolgend die Konfiguration der Incoming Firewall Policy Rule für "Forti-I" in der die Destination 10.10.10.0/24 -die durch "Forti-II" benutzt wird- translated wird auf 192.168.1.0/24 und "Forti-II" als Source 192.168.100.0/24 benutzt:
Incoming Forti-II --> Forti-I
**********************************
Source Destination
192.168.100.0/24 10.10.10.0/24 (vip)
NOTE Auf der Fortigate innerhalb einer Firewall Policy wird exakt diese Rule für das IPSec VPN konfiguriert.
In dieser Firewall Policy wird "Destination NAT" 1:1 NAT konfiguriert dh. anhand eines VIP Objektes auf dem
Destination Interface "Forti-II"!
Erstellen des Destination NAT Objekts (VIP)
FortiOS 5.0
Firewall Objects > Virtual IP > Virtual IPs > Create New
FortiOS 5.2
Policy & Objects > Objects > Virtual IPs > Create New
Datei:Fortinet-1182.jpg
Datei:Fortinet-1183.jpg
Konfiguration der Firewall Policy Incoming (Forti-II --> Forti-I)
FortiOS 5.0
Policy > Policy > Policy > Create New
FortiOS 5.2
Policy > Policy > IPv4 > Create New
Datei:Fortinet-1180.jpg
Datei:Fortinet-1184.jpg
Die Konfiguration auf der "Forti-I" ist nun abgeschlossen. Nun muss auf der "Forti-II" exakt die gleiche Konfiguration durchgeführt werden jedoch mit der umgekehrten Konstellation! Wenn die Konfiguration mehrmals geändert wird durch zB Troubleshooting sollte das IPSec komplett neu gestartet werden. Nähere Informationen dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F
Wie konfiguriere/erlaube ich für einen IPSec VPN Tunnel ein "netbios forward"?
"Netbios" Anfragen werden auf einer Fortigate per Standard nicht über andere IP Range's/Segmente/Interface's weitergeleitet sondern geblockt. Wenn jedoch zB eine "Active Directory" Replizierung benutzt wird in einem IPSec VPN Tunnel muss "netbios foward" erlaubt werden ansonsten funktioniert die "Active Directory" Replizierung nicht. Die Konfiguration "netbios forward" in einem IPSec VPN Tunnel zu erlauben ist identisch wie die Konfiguration "netbios forward" über verschieden Interface's zu erlauben. Die Konfiguration die durchgeführt werden muss anhand "netbios-forward" ist basierend auf den Interface's. Wie das auf einem Interface konfiguriert wird zeigt nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Eine_.22Active_Directory.22_Replizierung_funktioniert_nicht_.C3.BCber_ein_VPN_Tunnel_.28netbios_forward.29.3F
Wie überprüft man ob eine IPSec VPN Verbindung die Hardware Acceleration benutzt (encrypt/decrypt)?
Wenn eine IPSec VPN Verbindung konfiguriert wird, steht die Frage im Raum "ob die Verbindung Beschleunigt wird" resp. decrypt/encrypt (Offloding) benutzt wird? Ob eine Beschleunigung resp. die Hardware Acceleration benutzt wird oder nicht hängt vom verwendeten Mode ab (Interface/Policy Based), eingesetzen ASIC sowie FortiOS Version dh. somti spielt der Remote Peer (Interoperability Device) auch eine Rolle. Um festzustellen ob die Hardware Beschleunigung (ASIC) oder die Software benutzt wird, kann folgender Befehl abgesetzt werden:
NOTE Je nach FortiGate Device gestaltet sich die Darstellung anderst dh. neuere Versionen des CP Prozessors oder
zusätzliche NP Prozessoren. Wichtig dabei ist das die entsprechenden Einträge nicht unter "Software" erscheinen
da dies bestätigen würde das "keine" Beschleunigung über die Hardware stattfindet (Offloading):
# diagnose vpn ipsec status
All ipsec crypto devices in use:
CP6
null: 0 0
des: 0 0
3des: 0 0
aes: 11342694 118453159
null: 0 0
md5: 0 0
sha1: 11342694 118453159
sha256: 0 0
sha384: 0 0
sha512: 0 0
SOFTWARE:
null: 0 0
des: 0 0
3des: 0 0
aes: 0 0
null: 0 0
md5: 0 0
sha1: 0 0
sha256: 0 0
sha384: 0 0
sha512: 0 0
Aus diesem Output geht hervor das der "Content Prozessor" dh. CP eine Beschleunigung durchführt für das IPSec VPN. Daraus resultiert die Frage wieso der CP resp. "Content Prozessor" dies durchführt und nicht der NP resp. "Network Prozessor". Auf einer FortiGate ist der CP grundsätzlich zuständig im UTM Bereich eine Beschleuningung durchzuführen. Zusätzlich übernimmt jedoch auf einer FortiGate der CP die Beschleuningung des IPSec VPN's. Dies wird jedoch nur zur Beginn eine IPSec VPN durchgeführt dh für den Aufbau und zur Unterstützung für die Performance. Ausgehend von FortiOS 5.0 sowie bis FortiOS 5.2.2 muss dies explizit konfiguriert werden was wiederum bedeutet:
Für NP2 und NP4 bis FortiOS 5.2.2
# config system npu
# set dec-offload-antireplay enable
# set enc-offload-antireplay enable
# set offload-ipsec-host enable
# end
NOTE Für NP6, NP4lite sowie ab FortiOS 5.2.3 ist dies nicht mehr nötig und wird automatisch durchgführt!
Somit um die nötige Performance im IPSec VPN Bereich zu erreichen sollte auf sämtliche Software basierende IPSec VPN's verzichtet werden. Dazu gehören zB:
-> Policy Based VPN's
-> L2TP VPN's
Wenn man die Beschleunigung für IPSec VPN in den Session Table überprüfen möchte kann das entsprechende Kommando dazu benutzt werden um die Session Table aufzulisten. Weitere Informationen dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_momentanen_einzelnen_Sessions_auf_einer_FortiGate_auflisten.3F
Dabei ist von Wichtigkeit die "npu_flag" Informationen korrekt zu intepretieren was wiederum folgendes bedeutet:
Solange kein Traffic nach dem Aufbau der Phase-2 durch den IPSec VPN Tunnel gesendet wird steht das Flag "npu_flag" auf "00".
Dies bedeutet wiederum die SA wird nicht zum NPU gesendet. Wenn aus kompatibilitätsgründen der Traffic nicht Beschleunigt
werden kann bleibt dieses Flag "npu_flag" auf "00". Wenn Traffic initiert wird für Outbound und das erste Packet Beschleunigt
werden kann für Outbound so wechselt das "npu_flag" auf "01". Wenn Traffic für Inbound die FortiGate erreich so wird das erste
Packet mit dem "npu_flag" mit "02" versehen resp. damit zum NPU gesendet sofern dieses Beschleunigt werden kann. Wenn beide
Richtungen Beschleunigt werden können resp. beide SA bereits für Inbound/Outbound zum NPU gesendet wurde wechselt das "npu_flag"
auf "03".
Auf was muss ich achten wenn ein IPSec VPN konfiguriert wurde und der IPSec Tunnel immer aktiv bleiben soll?
Wenn ein IPSec VPN konfiguriert wird so wird per Standard Phase-1/2 nur dann abgearbeitet wenn Traffic transportiert werden soll. Dies bedeutet: die Phase-1/2 wird initiert wenn Traffic produziert wird zwischen den Peer's. Wenn der Tunnel nicht oft genutzt wird zB einmal im Tag wird Traffic übermittelt für eine kurze Zeit, ist die Standard Konfiguration ausreichend. Wird der Tunnel oft genutzt ist es besser den IPSec Tunnel "immer" aktiv zu halten da ansonsten Phase-1/2 bei jedem Traffic neu Initiert wird. Wenn der IPSec Tunnel "immer" aktiv ist, werden mehr Resourcen auf der Fortigate alloziertt um den IPSec Tunnel aktiv zu halten. Soll der IPSec Tunnel zwischen den Peer's immer aktiv bleiben müssen zwei Optionen aktiviert werden:
FortiOS 5.0
VPN > IPsec > [Wähle die Phase2 des entsprechenden VPN] > Advanced
FortiOS 5.2
VPN > IPsec > Tunnels > [Wähle die Phase2 des entsprechenden VPN] > Edit Phase 2 > Advanced
Autokey Keep Alive
Auto-negotiate
Diese zwei Optionen stehen über Web Mgmt. Interface in der Phase-2 für FortiOS 5.0 / 5.2 unter Advanced zu verfügung und müssen aktiviert werden. Unter FortiOS 4 steht über das Web Mgmt. Interface nur die Option "Auto-Negotiate" zur Verfügung und "Autokey Keep Alive" steht nur über Kommandozeile zur Verfügung und zwar über folgende Position:
# config vpn ipsec phase2-interface
# edit [Name der Phase2]
# set auto-negotiate enable
# set keepalive enable
# end
NOTE Wird ein Policy Based VPN benutzt muss folgender Befehl benutzt werden:
# config vpn ipsec phase2
Diese Optionen stehen zum Teil ebenfalls auf Interoperability Devices (Fremdprodukte) zur Verfügung und müssen auf diesen Devices auch aktiviert werden! Weitee Informationen wie der DPD Mechanismus funktioniert siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_funktioniert_DPD_.28Dead_Peer_Detection.29_und_in_welchem_Zusammenhang_steht_DPD_mit_der_Option_.22keepalive.22.3F
Nachdem die Konfiguration durchgeführt wurde sollte der VPN Tunnel neu gestartet werden:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_einen_IPSEC_VPN_Tunnel_Manuell_Stoppen_und_Starten.3F
Wie funktioniert DPD (Dead Peer Detection) und in welchem Zusammenhang steht DPD mit der Option "keepalive"?
Eine FortiGate stellt im IPSec Bereich ein Mechanismus zur Verfügung der sich DPD nennt dh. "Dead Peer Detection". Dieser Mechanismus stellt bei Aktivierung sicher, dass ein IPSec Tunnel permanent etabliert bleibt/ist. DPD wird durch die folgende Option aktiviert/deaktiviert:
# config vpn ipsec phase2-interface
# edit [Name der Phase2]
# set keepalive [enable | disable]
# end
Wenn kein Datenverkehr stattfindet zwischen beiden Endpunkten (Peer's) dh. die Verbindung "Idle" ist, wird durch DPD gewährleistet das der IPSec Tunnel etabliert bleibt (alive). Ebenfalls werden sogenannte "dead IKE peers" durch DPD gelöscht (clean-up) da diese nicht mehr erreicht werden können (Dead Peer Detection). Dies bedeutet: Dieser Mechanismus im "IKE Verfahren" stellt fest ob ein "Peer" noch "up and running" ist sprich erreichbar ist (alive). Da es sich um ein einfaches Verfahren handelt, minimiert dies den Traffic zwischen den verschiednen "Peer's" um festzustellen ob diese noch erreichbar sind. Im diesen Verfahren wird kurz gesagt folgendes durchgeführt:
Die IPSec Devices senden einen DPD "R_U-THERE" nur dann, wenn vor dem letzten DPD Interval Daten durch den IPSec Tunnel gesendet wurden und
dieser Traffic nicht beantwortet wurde (returning traffic). Wenn der Traffic "bi-directionaler" Natur ist, wird durch den DPD Meachanismus
"nie" ein Packet gesendet dh. ein DPD "R_U-THERE" auch dann wenn DPD explizit aktiviert ist! Dies entspricht keinem Fehlverhalten sondern
folgt dem RFC 3706 von IPSEC dh.:
https://tools.ietf.org/html/draft-ietf-ipsec-dpd-04
Siehe: DPD Protocol
DPD befasst sich mit der Unzulänglichkeiten des IKE Keepalives- und Heartbeat-Systeme durch die Einführung einer vernünftiger Logik innerhalb
des Nachrichtenaustauschs. Im Wesentlichen: "Keepalives" und "Heartbeats" tauschen "HELLO's" unter normalen Umständen in regelmässigen Abständen
aus. Im Gegensatz zu einer IPSec Verbindung "mit" aktivierten DPD, ist jeder "Peer" DPD Zustand weitgehend unabhängig von dem anderen. Einem
"Peer" steht es somit frei den Nachweis zu erbringen ob dieser noch "up and running" ist sprich "alive". Dies bedeutet: es existieren keine
vorgeschriebenen Intervalle für diesen Mechanismus. Diese "asynchrone" Eigenschaft des DPD Mechanismus (Austausch) ermöglicht es möglichst wenig
Traffic resp. minimierte Nachrichten zu senden um somit eine höhere Skalierbarkeit zu erreichen.
Dabei ist zu beachten "Wann" die Entscheidung getroffen wird ein DPD zu senden denn diese Entscheidung ist spezifizierter Natur:
https://tools.ietf.org/html/draft-ietf-ipsec-dpd-04#section-6.4
Siehe: DPD Protocol > Impetus for DPD Exchange
Anstelle das DPD auf einem spezifizierten Zeitintervall basiert, kann der Austausch auf die Frage DPD "R_U-THERE" jederzeit erfolgen. Aus diesem
Grund sollte ein "IKE Peer" nur dann diese Anfragen DPD "R_U-THERE" stellen, wenn es Sinn ergiebt (kein "return traffic). Somit ist ein DPD Anfrage
zwischen den "Peer's" solange ein Datenaustausch stattfindet (inkl. bi-directional) unnötig und sollte nicht initiert werden.
Ein "Peer" muss den den Zustand einer bestimmten DPD Austausches zwischen speichern. Das bedeutet: sobald eine "R-U-THERE" Abfrage von einem "Peer"
gesendet wird so wird innerhalb eines bestimmten implementierten Zeitintervalls ein "ACK" als Antwort erwartet. Nach einem bestimmten definierten
Zeitintervall sollte eine erneut Anfrage anhand "R-U-THERE" durchgeführt werden, wenn es nicht gelingt einen "ACK" als Antwort zu erhalten. Nach
einer bestimmten Anzahl von erneuten Anfragen - die nicht durch "ACK" beantwortet werden - sollte der "Peer" als "unreachable" deklariert werden
und somit die IPSec Verbdindung resp. die IKE SA (IKE Security Association) gelöscht werden.
https://tools.ietf.org/html/draft-ietf-ipsec-dpd-04#section-6.4
Siehe: DPD Protocol > Implementation Suggestion
Ob ein "Peer" "up and running" (alive) ist wäre demnach nur dann fragllich, wenn "kein Datenverkehr" ausgestauscht wird. Eine mögliche Implementierung
wäre ein bestimmtes Monitoring um festzustellen ob Daten ausgestauscht wird. Dies würde jedoch wiederum zusätzlichen Traffic verursachen. Um festzustellen
ob ein "Peer" "up and running" (alive) ist wäre demnach nur dann "Wichtig" wenn der Datenverkehr ausgehend (Outbound) ist. Somit macht ein DPD Nachrichten
Austausch durch die Anfrage DPD "R_U-THERE" nur dann Sinn wenn für eine bestimmte Zeitspanne der Outbound Traffic "idle" ist und Outbound Traffic gesendet
werden soll. Somit kann auch ein DPD Austausch stattfinden, wenn zware Outbound Traffic stattfindet, jedoch auf diesen Traffic keine Antwort erhalten wird
(Inbound IPSec Packete). somit ist der DPD Austausch von Nachrichten dh. "R-U-THERE" und "R-U-THERE-ACK" als Nachweis zu sehen für ein "up and running"
einer IPSec Verbindung.
NOTE Berücksichtige das ein DPD kein bestimmten Zeitintervall vorschreibt!. Diese "idle period" (Ruhezeit) die auch als "worry metric" verstanden wird
ist eine Implementierungsfrage des Produktes/Herstellers und nicht eine Frage der Definition eines ausgehandelten Wertes!
Wie kann ich ein IPSec Site2Site VPN im Interface Mode komplett auf Kommandozeile konfigurieren?
Ausgehend davon, dass ein Site2Site VPN basierend im Interface Mode zwischen zwei "FortiGate" Device konfiguriert werden soll und zwar auf Kommandozeile (Ohne Wizard und/oder Web Mgmt. Interface) ist folgendes durchzuführen/zu konfigurieren:
NOTE Die hier gezeigten Kommandos basieren auf FortiOS 5.2. Das Grundprinzip kann jedoch ebenfalls auf FortiOS 5.0
übertragen werden.
Konfiguriere eine Phase1 für das Site2Site VPN Interface Mode
# config vpn ipsec phase1-interface
# edit [Gebe einen entsprechenden Namen ein für Phase1 zB "site2site-ph1"]
# set type static
# set interface [Gebe das entsprechende Interface an der Public IP zB "wan1"]
# set ip-version 4
# set ike-version 1
# set local-gw [Gebe spezifische IPv4 Adresse an sofern gewünscht (wenn nicht "wan1" IP) ansonsten "0.0.0.0"]
# set nattraversal enable
# set keylife 86400
# set authmethod psk
# set mode main
# set peertype any
# set mode-cfg disable
# set proposal aes256-sha1 aes256-md5
# set localid [Gebe sofern gewünscht eine Local ID an zB Name Phase1 "site2site"]
# set localid-type auto
# set negotiate-timeout 30
# set fragmentation enable
# set dpd enable
# set forticlient-enforcement disable
# set comments [Gebe einen entsprechenden Comment ein sofern gewünscht zB "IPSec Phase1 site2site"]
# set npu-offload enable
# set dhgrp 5
# set wizard-type custom
# set xauthtype disable
# set mesh-selector-type disable
# set remote-gw [Gebe die entsprechende IPv4 Adresse an des Remote GW zB "212.59.153.125"]
# unset monitor
# set add-gw-route disable
# set psksecret [Gebe ein Preshared Key an für Phase1 zB "only4also!"]
# set keepalive 10
# set auto-negotiate enable
# set dpd-retrycount 3
# set dpd-retryinterval 5
# end
Konfiguriere eine Phase2 für das Site2Site VPN Interface Mode
# config vpn ipsec phase2-interface
# edit [Gebe einen entsprechenden Namen ein für Phase2 zB "site2site-ph2"]
# set phase1name [Gebe den entsprechenden Namen ein der Phase1 zB "site2site-ph1"]
# set proposal aes256-sha1 aes256-md5
# set pfs enable
# set dhgrp 5
# set replay enable
# set keepalive enable
# set auto-negotiate enable
# set keylife-type seconds
# set encapsulation tunnel-mode
# set comments [Gebe einen entsprechenden Comment ein sofern gewünscht zB "IPSec Phase2 site2site"] :
# set protocol 0
# set src-addr-type subnet
# set src-port 0
# set dst-addr-type subnet
# set dst-port 0
# set keylifeseconds 43200
# set src-subnet 0.0.0.0 0.0.0.0
# set dst-subnet 0.0.0.0 0.0.0.0
# end
NOTE In der Phase2 werden die "Quick Mode Selector" (src-subnet/dst-subnet) auf 0.0.0.0 gesetzt dh. potentiell ist in der Phase2
sämtlicher Traffic erlaubt. Weitere Informationen zum "Quick Mode Selector" findet man im nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wann_sollte_ich_den_.22Quick_MOde_Selector.22_benutzen.2C_was_muss_ich_ber.C3.BCcksichtigen_und_welche_Funktion_hat_dieser.3F
Konfiguriere ein statisches Routing damit der entsprechende Traffic in den Site2site VPN Tunnel gesendet wird
Variante 1: Nur ein bestimmtes Netz/Netze soll durch den Site2Site VPN Tunnel gesendet werden (NOT "Route all Traffic through Gateway")
# config router static
# edit [Gebe einen entsprechenden Integer an zB "2"]
# set device [Gebe das entsprechende Phase1 Interface an zB "site2site-ph1"]
# set dst [Gebe das Remote Network an zB "10.10.10.0/24]
# set comment [Gebe einen entsprechenden Kommentar ein zB "Route IPSec site2site-ph1"]
# end
NOTE Wenn ein weiteres Netz konfiguriert werden soll muss einfach ein weiterer statischer Eintrag erstellt werden!
Variante 2: Sämtlicher Traffic soll durch den Site2Site VPN Tunnel gesendet werden ("Route all Traffic through Gateway")
# config router static
# edit [Gebe einen entsprechenden Integer an zB "2"]
# set device [Gebe das entsprechende Phase1 Interface an zB "site2site-ph1"]
# set dst 0.0.0.0 0.0.0.0
# set comment [Gebe einen entsprechenden Kommentar ein zB "Route All IPSec site2site-ph1"]
# end
NOTE Diese Konfiguration dh. dass sämtlicher Traffic durch den Site2Site VPN Tunnel geroutet wird muss gut überlegt sein und
der "Hub"(Star Topology Spoke/Hub) muss die entsprechende Bandbreite zB betreffend Internet bereitstellen da der "Spoke"
Gateway über den "Hub" das Internet erreicht.
Wenn diese Konfiguration abgeschlossen ist kann nun der Hub und/oder Spoke konfiguriert werden dh. die Phase1 sowie Phase2 werden exact genau gleich Konfiguriert mit der Ausnahme des Konfigurationspunktes des "set remote-gw" IP. Es kann Grundsätzlich der gleiche Name der Phase1/2 auf beiden Devices resp. Hub/Spoke benutzt werden jedoch empfohlen wird dies nicht da das Troubleshooting schwieriger wird um Hub/Spoke zu unterscheiden. Bei dem Konfigurationspunkt "set localid" muss auf beiden Seiten die gleiche ID benutzt werden sofern diese überhaupt konfiguriert/benutzt wird. Wie schon erwähnt erlaubt diese Konfiguration durch die Definition im "Quick Mode Selector" 0.0.0.0 potentiell sämtlicher Traffic. Durch die entsprechende Konfiguration der statischen Routen werden jedoch die entsprechenden Netze in den Site2Site VPN Tunnel gesendet. Als letzen Schritt müssen nun die entsprechenden Firewall Policy definiert werden durch Source sowie Destination unter Benutzung der Phase1 Interfaces auf dem entsprechenden Device (Hub/Spoke). Dabei ist es "Wichtig" nicht mit Destinationen/Source "all" zu arbeiten sondern die Netze korrekt zu definieren in Destination und Source. Dabei sollte folgender Grundregel gefolgt werden. Firewall Policy = Routing und Routing = Firewall Policy. Dies bedeutet: Wenn im Routing ein Netz zB 192.168.0.0/24 auf das IPsec Phase1 geroutet wird so muss in der Firewall Policy dieses Netz als Destination für das Remote Netzwerk konfiguriert werden. Wie die Phase1 und 2 im Debug Modes zu Troubleshooten sind geben nachfolgende Artikel Auskunft:
FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F
FortiClient
Wo finde ich Informationen über den FortiClient und wie ein Client2Site IPSec VPN zu konfigurieren ist?
Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:
FortiClient:FAQ
L2TP
Gibt es eine Dokumentation die zeigt wie man ein L2TP IPSec auf einer Fortigate/Windows 7 konfiguriert?
Folgende Dokumente geben Auskunft über die nötige Konfiguration einer L2TP IPSec Konfiguration auf einer Fortigate sowie einem Windows 7 Client/Workstation:
Datei:Technical Note+ L2TP Windows7 IPSEC.pdf Datei:Configuring-a-FortiGate-unit-as-an-L2TP-IPsec-server.pdf NOTE Das Dokument betreffend der Konfiguration eines Windows 7 Client/Workstaton stammt aus dem folgenden Knowledge Base Artikel: http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33431&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=50115989&stateId=0 0 50117406
Eine "L2TP" Verbindung ist basierend auf "Policy Based VPN". Dieses Feature muss - damit die entsprechende Firewall Policy - über Web Mgmt. Interface konfiguriert werden kann über folgende Position aktiviert werden:
# config system global
# set gui-policy-based-ipsec enable
# end
Wenn man die "L2TP" Verbindung über Kommandozeile konfigurieren möchte müsste folgendes ausgeführt werden:
# config vpn l2tp
# set eip [IPv4 Start IP des Ranges für IP Pool]
# set sip [IPv4 End IP des Ranges für IP Pool]
# set status enable
# set usrgrp [Name der entsprechenden User Gruppe für L2TP]
# end
# config vpn ipsec phase1
# edit [Name der Phase1 des Policy Based VPN]
# set type dynamic
# set interface [Name des Interfaces auf dem verbunden wird zB "wan1"]
# set dhgrp 1 2 5 14
# set proposal 3des-sha1 aes128-sha1
# set localid [Name der LocalID zB Name der Phase1"
# set dpd disable
# set psksecret [Preshared Secret]
# next
# end
# config vpn ipsec phase2
# edit [Name der Phase1 des Policy Based VPN]
# set phase1name [Name der Phase1 des Policy Based VPN]
# set proposal 3des-sha1 aes128-sha1
# set pfs disable
# set keylife-type both
# set encapsulation transport-mode
# set l2tp enable
# set keylifeseconds 3600
# set keylifekbs 250000
# next
# end
Wird L2TPv3 IPSec auf einer Fortigate unterstützt/supported?
L2TPv3 wird auf einer FortiGate "nicht" unterstützt und ist eine Weiterentwicklung von L2TP, das eine Alternative zum MPLS Protokoll zur Verkapselung von verschiedenen Protokollen auf der Ebene 2 des OSI-Modells darstellt. Es arbeitet wie L2TPv2 über UDP oder andere PSNs (Packet Switched Networks), aber kann auch direkt IP nutzen. Außerdem können auch andere Protokolle der Sicherungsschicht als PPP getunnelt werden. Die Spezifikation ist in RFC-3931 definiert. L2TPv3 kann als eine abgespeckte Version von MPLS angesehen werden. Ein nicht eingebautes Feature stellt z.B. das Traffic Engineering dar. Weitere Informationen findet man unter folgendem Link:
https://de.wikipedia.org/wiki/Layer_2_Tunneling_Protocol#L2TP_Version_3
Wie kann ich ein Debugging für eine L2TP IPSec Verbindung auf einer FortiGate ausführen?
Wenn für eine "L2TP" Verbindung resp. Phase1 und 2 eine Debugging Mode ausgeführt werden soll muss folgendes durchgeführt werden:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application l2tp -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
NOTE Wenn der Deamon für "L2TP" neu gestartet werdensoll da eine Modifikatione in der Konfiguration
durchgeführt wurde kann folgendes ausgeführt werden:
# diagnose test application l2tpcd 99
Der "diagnose debug" Befehl ist "persistent" dh. auch wenn ausgeloggt wird läuft dieser im Hintergrund weiter und belastet -je nach Debugging- den Device im hohen Masse. Aus diesem Grund ist es wichtig den Debug wiederum zu "disablen" dh. führe folgendes aus:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Nachfolgend ein Beispiel einer erfolgreichen "L2TP" Verbindung anhand des Debugging für "l2tp" sowie "ike":
VERBINDUNG STARTEN
# diagnose debug reset
# diagnose debug application l2tp -1
# diagnose debug enable
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Identity Protection id=3bd31e3b4c673fb4/0000000000000000 len=384
ike 0: in 3BD31E3B4C673FB400000000000000000110020000000000000001800D0000D40000000100000001000000C801010005030000280101000080010007800E0100800200028004001480030001800B0001000000400007080030000280201000080010007800E0080800200028004001380030001800B0001000C000400007080030000280301000080010007800E0100800200028004000E80030001800B0001000000400007080030000240401000080010005800200028004000E80030001800B0001000C000400007080000000240501000080010005800200028004000280030001800B0001000C0004000070800D0000181E2B516905991C7D7C96FCBFB587E461000000080D0000144A131C81070358455C5728F20E95452F0D00001490CB80913EBB696E086381B5EC427B1F0D0000144048B7D56EBCE88525E7DE7F00D6C2D30D000014FB1DE3CDF341B7EA16B7E5BE0855F1200D00001426244D38EDDB61B3172A36E3D0CFB81900000014E3A5966A76379FE707228231E5CE8652
ike 0:3bd31e3b4c673fb4/0000000000000000:13: responder: main mode get 1st message...
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID MS NT5 ISAKMPOAKLEY 1E2B516905991C7D7C96FCBFB587E46100000008
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID RFC 3947 4A131C81070358455C5728F20E95452F
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID draft-ietf-ipsec-nat-t-ike-02\n 90CB80913EBB696E086381B5EC427B1F
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID FRAGMENTATION 4048B7D56EBCE88525E7DE7F00D6C2D3
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID unknown (16): FB1DE3CDF341B7EA16B7E5BE0855F120
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID unknown (16): 26244D38EDDB61B3172A36E3D0CFB819
ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID unknown (16): E3A5966A76379FE707228231E5CE8652
ike 0:3bd31e3b4c673fb4/0000000000000000:13: negotiation result
ike 0:3bd31e3b4c673fb4/0000000000000000:13: proposal id = 1:
ike 0:3bd31e3b4c673fb4/0000000000000000:13: protocol id = ISAKMP:
ike 0:3bd31e3b4c673fb4/0000000000000000:13: trans_id = KEY_IKE.
ike 0:3bd31e3b4c673fb4/0000000000000000:13: encapsulation = IKE/none
ike 0:3bd31e3b4c673fb4/0000000000000000:13: type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.
ike 0:3bd31e3b4c673fb4/0000000000000000:13: type=OAKLEY_HASH_ALG, val=SHA.
ike 0:3bd31e3b4c673fb4/0000000000000000:13: type=AUTH_METHOD, val=PRESHARED_KEY.
ike 0:3bd31e3b4c673fb4/0000000000000000:13: type=OAKLEY_GROUP, val=2048.
ike 0:3bd31e3b4c673fb4/0000000000000000:13: ISAKMP SA lifetime=28800
ike 0:3bd31e3b4c673fb4/0000000000000000:13: SA proposal chosen, matched gateway ipsec-l2tp
ike 0:ipsec-l2tp:13: selected NAT-T version: RFC 3947
ike 0:ipsec-l2tp:13: cookie 3bd31e3b4c673fb4/6d049cce9a23138a
ike 0:ipsec-l2tp:13: out 3BD31E3B4C673FB46D049CCE9A23138A0110020000000000000000A40D00003800000001000000010000002C01010001000000240401000080010005800200028004000E80030001800B0001000C0004000070800D0000144A131C81070358455C5728F20E95452F0D000014AFCAD71368A1F1C96B8696FC775701000D0000148299031757A36082C6A621DE00050124000000144048B7D56EBCE88525E7DE7F00D6C2D3
ike 0:ipsec-l2tp:13: sent IKE msg (ident_r1send): 193.193.135.66:500->193.193.135.67:500, len=164, id=3bd31e3b4c673fb4/6d049cce9a23138a
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Identity Protection id=3bd31e3b4c673fb4/6d049cce9a23138a len=388
ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A0410020000000000000001840A00010437C4B027AF9F64B86B474DD68F8CDCB55B6054AD2BC62B232EED3178776F11BDDE3A5504E34FA05266B6F957725CFAB67EC8C3D0C45ECCAAAF1C735E42AC3D5878290323F7E602CCB760CE09F68CDA5F0C541F5C373126E4E0AAD2E29D00A3C92391AE0809504E883D68D9B57070D5C9D2000762934EA79473EA88E3B5BA722AC4F0004E6337E8F79CDBC0FBDCA0D02C91F8E29B8037C6856B8C4E84B6C9438692344AB46F6EB0858070FE3B68E126F3E6315269A76921D11460BB1EE0EA10EE4FD058B0E01DB3F8893071C5299BCE7425AA27E417FD0FA821B8EBA727BB2FA3524391630D64EFA0123EE336C978037D901EC2019F623DB881AD2BD7006B6782140000341FFDAB9C35462A582B3ECBC1DD8BEAE250C7469F509CB0AA9A446E2DC2814350F4C3322A2A3E67F68235D0CED120D0D8140000187EA7844D04FABC1D8FD254A28D4F00E72218511000000018A7C95E50A591EFEB864404BDAFF514FE7FE62851
ike 0:ipsec-l2tp:13: responder:main mode get 2nd message...
ike 0:ipsec-l2tp:13: NAT not detected
ike 0:ipsec-l2tp:13: out 3BD31E3B4C673FB46D049CCE9A23138A0410020000000000000001640A000104020D3831C433A61449E89ADC6839CCA74E0D650117189F912BD1AE6BA225CE8F1C8C50786DD85111F7B1FC3334C5BF6C502396949B5461824D440111C38CB160E2B2264B359E03612AFCF5B09482DB9210025D7B45B298D6A4DF9263B788844F0065CE66B943C1C4D9BC9B41AA5BBB20449BAB03AF8A322DE6EBFD02D77F7920A6C6C1245C713E2DC8F91036CBE0DB8DC567F3329FAD8FEBDD9C0B85935779E1ACDC9631032BD66DA780A32AEEC1904003CBBC05B2013F4D27B10CF32E9F8E5FCD774384ED00F3FC2201C552606DF6D0E88F6D645F3ABA8DDDEA41B535E63CB16150BFDDB438516E8B707BC8094BC813C68B8BDEA2CA6CC9FE5F5C1A6920600C14000014764821B32E0D83B4D7B82BEA3246D8B914000018A7C95E50A591EFEB864404BDAFF514FE7FE62851000000187EA7844D04FABC1D8FD254A28D4F00E722185110
ike 0:ipsec-l2tp:13: sent IKE msg (ident_r2send): 193.193.135.66:500->193.193.135.67:500, len=356, id=3bd31e3b4c673fb4/6d049cce9a23138a
ike 0:ipsec-l2tp:13: ISAKMP SA 3bd31e3b4c673fb4/6d049cce9a23138a key 24:9573946379AAC144B11098E29A3CFBBE477437AA288B4BD1
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Identity Protection id=3bd31e3b4c673fb4/6d049cce9a23138a len=68
ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A0510020100000000000000445AC59A20DF5B43DEFBA2E1BA4BEDD20583ABF72F94416546411A9926820A5974D4A5BEACDCAA1F25
ike 0:ipsec-l2tp:13: responder: main mode get 3rd message...
ike 0:ipsec-l2tp:13: dec 3BD31E3B4C673FB46D049CCE9A23138A0510020100000000000000440800000C01000000C1C187430000001845C9FB9F09E42AF4E1BE1AD73D32421566BB977800000000
ike 0:ipsec-l2tp:13: PSK authentication succeeded
ike 0:ipsec-l2tp:13: authentication OK
ike 0:ipsec-l2tp:13: enc 3BD31E3B4C673FB46D049CCE9A23138A051002010000000000000046080000120200000069707365632D6C32747000000018B0F445E77B4277AD162C7835D6F4CE9A3536139C
ike 0:ipsec-l2tp:13: out 3BD31E3B4C673FB46D049CCE9A23138A05100201000000000000004C21B4D86F53FAEBD7E2F7480469ACF3055333D64FED11E4B6F0C803D4A5AA490B304E0A0556E4418973F37F2DAE29852E
ike 0:ipsec-l2tp:13: sent IKE msg (ident_r3send): 193.193.135.66:500->193.193.135.67:500, len=76, id=3bd31e3b4c673fb4/6d049cce9a23138a
ike 0:ipsec-l2tp:13: established IKE SA 3bd31e3b4c673fb4/6d049cce9a23138a
ike 0:ipsec-l2tp: adding new dynamic tunnel for 193.193.135.67:500
ike 0:ipsec-l2tp_0: added new dynamic tunnel for 193.193.135.67:500
ike 0:ipsec-l2tp_0:13: no pending Quick-Mode negotiations
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Quick id=3bd31e3b4c673fb4/6d049cce9a23138a:00000001 len=308
ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000001343CC4ECDBF4BD68977AB494C9D038A9D1172FA1B228EF3DD766F1F5F192A541792443E698AA8709904CA642F31E469F64B46FD6D9F99A77214BF11290300AAD38702B1594AD36C1896D9D123D502560E2C1188D6A4EBAAE85ED98260DD2C406C72F7E854E23BDA04B35A447D534CD84DE1A2C0B738AF078281022C69DA5ABD49A16F0F9BC1C059FFB29F5476521E54B4BF04693B49D5AC8F0370990FEBF3FD26DBF9527DCBFCD75818F536C71B580F29772ADA3848FBA076BB6F1578998CDB02DFDBD8146B9D34D78CD9267926993C76673450378A88791E0B7A25824E2D565306167DBBE102CCB816C72450BD219D1BB9361A877C3A34FFC583E0BAD821AA1EB744C9F2E489560C3C82366D27D7A1AE43E60D001464D1230
ike 0:ipsec-l2tp_0:13:4: responder received first quick-mode message
ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000001340100001811FDC78DFE2364F375B9602EB4ED71DB3C4391940A0000AC0000000100000001020000380103040118A94F220000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D090020000340203040118A94F2200000028010300008004000280050002800100010002000400000E1080010002000200040003D090000000340303040118A94F2200000028010200008004000280050002800100010002000400000E1080010002000200040003D0900500003490AE6EE410F0B8A0F89CA4D38F6AD04222E24A23DD195F9251CE65F801C33B36E0FB6E9DE5E252D333EF4799B4045CDA0500000C011106A5C1C187430000000C011106A5C1C187420000000000000000
ike 0:ipsec-l2tp_0:13:4: peer proposal is: peer:17:193.193.135.67-193.193.135.67:1701, me:17:193.193.135.66-193.193.135.66:1701
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: trying
ike 0:ipsec-l2tp_0:13:4: trancreate_new_tunnel()-91: Allocated new Tunnel id=9, total count = 1
handle_control_packet()-551:
check_control_hdr()-173: check_control_hdr: control, peer_call_id = 0, Ns = 0, Nr = 0
check_control_hdr()-185: Updated control rec seqno. Value is now 1
__avp_protocol_version()-233: peer is using version 8, revision 128.
__avp_framing_caps()-248: supported peer framing:
__avp_bearer_caps()-264: supported peer bearers:
__avp_firmware_rev()-279: peer's firmware version 2048
_avp_hostname()-295: Peer's hostname is 'SatellitePro770'
__avp_vendor()-310: peer's vendor 'Microsoft'
__avp_assigned_tunnel()-339: peer's tunnel 5
avp_receive_window_size()-359: peer's RWS 8.
run_ctrl_state_machine()-91: run_ctrl_state_machine: message type is (1). Tunnel is 5, call is 0.
run_ctrl_state_machine()-97: ** run_ctrl_state_machine - SCCRQ **
run_ctrl_state_machine()-108: Rule 193.193.135.67 to 193.193.135.67avp_put_hostname()-84: Sent the host name = 193.1
run_ctrlavp_handler()-72monitor_ctrl_pkt_xmit()-94:
monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
monitor_ctrl_pkt_xmit()-94:
monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
sport mode, override with 17:193.193.135.66-193.193.135.66:1701 -> 17:193.193.135.67-193.193.135.67:0
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: matched phase2
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: dynamic client
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: my proposal:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: proposal id = 1:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: protocol id = IPSEC_ESP:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: trans_id = ESP_3DES
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: trans_id = ESP_AES (key_len = 128)
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: incoming proposal:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: proposal id = 1:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: protocol id = IPSEC_ESP:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: trans_id = ESP_AES (key_len = 128)
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: negotiation result
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: proposal id = 1:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: protocol id = IPSEC_ESP:
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: trans_id = ESP_AES (key_len = 128)
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: using transport mode.
ike 0:ipsec-l2tp_0:13: enc 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000000A4010000185624D8349FF1B2CF42B23112A0F59C05444C30310A00004400000001000000010000003801030401658C806F0000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D09005000014D456FBE1630773A0B30A30E4358DFBAD0500000C011106A5C1C187430000000C011106A5C1C18742
ike 0:ipsec-l2tp_0:13: out 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000000AC2E3A6CF7C38C9C6A35518A7AAC801CC9D13D630A238309E0B4A5B278A296B15A5892FAC8D7CFBBF4CD13B627156111FE9ED171396D5CE64A0E01F88A497DECFD6D7C14B1EC09305BD919228EB6C9BDB02D384DA32D7C33BF19E00ACAA81B72D47F4020415DF10B9991DA114857605B874604C10DE75BBA9A0B9AC6BA20E43A13840892F249EAB7ED4C1121C7A99B3B00
ike 0:ipsec-l2tp_0:13: sent IKE msg (quick_r1send): 193.193.135.66:500->193.193.135.67:500, len=172, id=3bd31e3b4c673fb4/6d049cce9a23138a:00000001
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Quick id=3bd31e3b4c673fb4/6d049cce9a23138a:00000001 len=60
ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A08102001000000010000003CA771E1353C0D69A77799E0B70C8A0D72D4C9E6454706A61EF7B450B883DA644F
ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A08102001000000010000003C00000018A89375EB213244A17A91AE6937F082FCF6DB40AF0000000000000000
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: replay protection enabled
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: SA life soft seconds=3585.
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: SA life hard seconds=3600.
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: set sa life soft/hard kbytes=249488/250000.
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: IPsec SA selectors #src=1 #dst=1
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: src 0 7 17:193.193.135.66-193.193.135.66:1701
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: dst 0 7 17:193.193.135.67-193.193.135.67:0
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: add dynamic IPsec SA selectors
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: tunnel 1 of VDOM limit 0/0
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: add IPsec SA: SPIs=658c806f/18a94f22
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: IPsec SA dec spi 658c806f key 16:FF99BC6BB64447317EB945EE89621FD8 auth 20:742DFE688B8A95D9C4415264AE9DC7D93FF9BFA8
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: IPsec SA enc spi 18a94f22 key 16:00418CCFAA5F33B2636F969A43FFE559 auth 20:9ACEC891E841C6B8E258847655C8B79F1131E200
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: transport mode encapsulation is enabled
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: added IPsec SA: SPIs=658c806f/18a94f22
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: sending SNMP tunnel UP trap
ike 0: unknown SPI 658c806f 5 193.193.135.67:0->193.193.135.66
ike 0: found ipsec-l2tp_0 193.193.135.66 5 -> 193.193.135.67:500
ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: ignoring invalid SPI 658c806f, IPsec SA just negotiated
ike 0: IP 198.18.4.129 (30) is down
ike shrank heap by 122880 bytes
send_hello()-33: L2TP: send Hello for tunnel 5
schedule_event()-94:
schedule_event()-100: Message due 1237048, now = 1236948
start_hello_timer()-59: L2TP: starting Hello timer for tunnel 5, next in 60 seconds.
schedule_event()-94:
schedule_event()-100: Message due 1242948, now = 1236948
handle_control_packet()-551:
handle_control_packet()-580: L2TP received control ZLB.
monitor_ctrl_pkt_xmit()-94:
monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
send_hello()-33: L2TP: send Hello for tunnel 5
schedule_event()-94:
schedule_event()-100: Message due 1237048, now = 1236948
start_hello_timer()-59: L2TP: starting Hello timer for tunnel 5, next in 60 seconds.
schedule_event()-94:
schedule_event()-100: Message due 1242948, now = 1236948
handle_control_packet()-551:
handle_control_packet()-580: L2TP received control ZLB.
monitor_ctrl_pkt_xmit()-94:
monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
VERBINDUNG BEENDEN
ike 0: IP 198.18.4.129 (30) is down
handle_control_packet()-551:
check_control_hdr()-173: check_control_hdr: control, peer_call_id = 1, Ns = 4, Nr = 3
check_control_hdr()-185: Updated control rec seqno. Value is now 5
__avp_assigned_call()-381: close call id 1
run_ctrl_state_machine()-91: run_ctrl_state_machine: message type is (14). Tunnel is 5, call is 1.
run_ctrl_state_machine()-333: ** run_ctrl_state_machine - CDN **
run_ctrl_state_machine()-374: Connection closed to 193.193.135.67, serial 0 ()
handle_network_packet()-274: Sending a ZLB to acknowledge last message
send_zlb()-73: ** send_zlb **
l2tp_handle_calls()-312: closing The master call
close_call()-410: ** close_call **
close_call()-425: Closing call 10
free_call()-211: ** free_call **
l2tp_vdbind_msg_handler()-87: del_vdbind message:vd=root 0 devindex=30 ppp1
handle_control_packet()-551:
check_control_hdr()-173: check_control_hdr: control, peer_call_id = 1, Ns = 5, Nr = 3
check_control_hdr()-185: Updated control rec seqno. Value is now 6
__avp_assigned_tunnel()-339: peer's tunnel 5
avp_result_code()-581: peer closing for reason 6, error = 0 ()
run_ctrl_state_machine()-91: run_ctrl_state_machine: message type is (4). Tunnel is 5, call is 1.
run_ctrl_state_machine()-187: ** run_ctrl_state_machine - StopCCN **
run_ctrl_state_machine()-218: Connection closed to 193.193.135.67, port 1701 (), Local: 9, Remote: 5
handle_network_packet()-274: Sending a ZLB to acknowledge last message
send_zlb()-73: ** send_zlb **
l2tp_handle_calls()-299: closing down tunnel 9
close_tunnel()-446: ** close_tunnel **
close_tunnel()-459: Closing and destroying tunnel 9
L2TPD 26: 461:Client 193.193.135.67 control connection (id 9) finished
close_calls_for_tunnel()-100:
free_call()-211: ** free_call **
free_tunnel()-117: Done close_calls_for_tunnel
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Informational id=3bd31e3b4c673fb4/6d049cce9a23138a:f43a1269 len=76
ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A08100501F43A12690000004C9336FA63AEE33FC452C3458BDA9635882FA5C562512FE20B1817986F23B33AE3C36D1B1AE1A2CA73BD85EAA48BC3768D
ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A08100501F43A12690000004C0C000018368BC53A5E50D742437F395AAB12C5C560F21A8100000010000000010304000118A94F220000000000000000
ike 0:ipsec-l2tp_0:13: recv IPsec SA delete, spi count 1
ike 0:ipsec-l2tp_0: deleting IPsec SA with SPI 18a94f22
ike 0:ipsec-l2tp_0:ipsec-l2tp: deleted IPsec SA with SPI 18a94f22, SA count: 0
ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap for ipsec-l2tp
ike 0:ipsec-l2tp_0:ipsec-l2tp: delete
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Informational id=3bd31e3b4c673fb4/6d049cce9a23138a:022bd834 len=84
ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A08100501022BD8340000005462DFFDD9EE8B3C5509C70B15F49A89D81B9617500F11FE2949C7D7D2462DFD7E73CDC9703621AFF3D60DED96A67FC2FFCF37B68D5DEB850B
ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A08100501022BD834000000540C000018CD2CC02F0F240B28E8BD4492D683D6E28604E2F10000001C00000001011000013BD31E3B4C673FB46D049CCEA23138A00000000
ike 0:ipsec-l2tp_0:13: recv ISAKMP SA delete 3bd31e3b4c673fb4/6d049cce9a23138a
ike 0:ipsec-l2tp_0: deleting
ike 0:ipsec-l2tp_0: flushing
ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap
ike 0:ipsec-l2tp_0: flushed
ike 0:ipsec-l2tp_0: delete dynamic
ike 0:ipsec-l2tp_0: deleted
# diagnose debug disable
# diagnose debug reset
VERBINDUNG STARTEN
# diagnose debug reset
# diagnose debug application ike -1
# diagnose debug enable
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Identity Protection id=622d112386920eab/0000000000000000 len=384
ike 0: in 622D112386920EAB00000000000000000110020000000000000001800D0000D40000000100000001000000C801010005030000280101000080010007800E0100800200028004001480030001800B0001000C000400007080030000280201000080010007800E0080800200028004001380030001800B0001000C000400007080030000280301000080010007800E0100800200028004000E80030001800B0001000C000400007080030000240401000080010005800200028004000E80030001800B0001000C000400007080000000240501000080010005800200028004000280030001800B0001000C0004000070800D0000181E2B516905991C7D7C96FCBFB587E461000000080D0000144A131C81070358455C5728F20E95452F0D00001490CB80913EBB696E086381B5EC427B1F0D0000144048B7D56EBCE88525E7DE7F00D6C2D30D000014FB1DE3CDF341B7EA16B7E5BE0855F1200D00001426244D38EDDB61B3172A36E3D0CFB81900000014E3A5966A76379FE707228231E5CE8652
ike 0:622d112386920eab/0000000000000000:12: responder: main mode get 1st message...
ike 0:622d112386920eab/0000000000000000:12: VID MS NT5 ISAKMPOAKLEY 1E2B516905991C7D7C96FCBFB587E46100000008
ike 0:622d112386920eab/0000000000000000:12: VID RFC 3947 4A131C81070358455C5728F20E95452F
ike 0:622d112386920eab/0000000000000000:12: VID draft-ietf-ipsec-nat-t-ike-02\n 90CB80913EBB696E086381B5EC427B1F
ike 0:622d112386920eab/0000000000000000:12: VID FRAGMENTATION 4048B7D56EBCE88525E7DE7F00D6C2D3
ike 0:622d112386920eab/0000000000000000:12: VID unknown (16): FB1DE3CDF341B7EA16B7E5BE0855F120
ike 0:622d112386920eab/0000000000000000:12: VID unknown (16): 26244D38EDDB61B3172A36E3D0CFB819
ike 0:622d112386920eab/0000000000000000:12: VID unknown (16): E3A5966A76379FE707228231E5CE8652
ike 0:622d112386920eab/0000000000000000:12: negotiation result
ike 0:622d112386920eab/0000000000000000:12: proposal id = 1:
ike 0:622d112386920eab/0000000000000000:12: protocol id = ISAKMP:
ike 0:622d112386920eab/0000000000000000:12: trans_id = KEY_IKE.
ike 0:622d112386920eab/0000000000000000:12: encapsulation = IKE/none
ike 0:622d112386920eab/0000000000000000:12: type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.
ike 0:622d112386920eab/0000000000000000:12: type=OAKLEY_HASH_ALG, val=SHA.
ike 0:622d112386920eab/0000000000000000:12: type=AUTH_METHOD, val=PRESHARED_KEY.
ike 0:622d112386920eab/0000000000000000:12: type=OAKLEY_GROUP, val=2048.
ike 0:622d112386920eab/0000000000000000:12: ISAKMP SA lifetime=28800
ike 0:622d112386920eab/0000000000000000:12: SA proposal chosen, matched gateway ipsec-l2tp
ike 0:ipsec-l2tp:12: selected NAT-T version: RFC 3947
ike 0:ipsec-l2tp:12: cookie 622d112386920eab/82890a11b0e6719a
ike 0:ipsec-l2tp:12: out 622D112386920EAB82890A11B0E6719A0110020000000000000000A40D00003800000001000000010000002C01010001000000240401000080010005800200028004000E80030001800B0001000C0004000070800D0000144A131C81070358455C5728F20E95452F0D000014AFCAD71368A1F1C96B8696FC775701000D0000148299031757A36082C6A621DE00050124000000144048B7D56EBCE88525E7DE7F00D6C2D3
ike 0:ipsec-l2tp:12: sent IKE msg (ident_r1send): 193.193.135.66:500->193.193.135.67:500, len=164, id=622d112386920eab/82890a11b0e6719a
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Identity Protection id=622d112386920eab/82890a11b0e6719a len=388
ike 0: in 622D112386920EAB82890A11B0E6719A0410020000000000000001840A00010400D2D361DFD71F79B84F457F482771727C31DF91846DE9A316369439E230769914E717897ABA5FCD637E50858C2C1C942438CB46425F0E2866CBDF5A5B83E3496ACA886EBB0315370474571D0848668BB31D52731630671BB0C67209FA02A9755B8BEC743F7A5224E87CA02E7F7AB0CF4A4499FABE449C7627F6B48B0ABCD7D870BF7831BB74AFB9318C516F89A0EE990CBAD996FB1B4CF99C9FA0085C1EF6C658B943F2459A6FB0DEF73070AC0D1F94CE2869021292410976942D38A5359D7D77A302DEE5236E1386558DEEDBFC0382CD59121D04AE63C83C98896D0780FE653F67AF7342FD62B0D8996D52DDD3AC9388FFC0F879152AE3B230B78B2A24356A14000034595D169F928B002D58CC3AF8860BC094A326A273113256D128690F5CE9351C32DA9C32F7D92AB125F4F2637D098D6861140000186D227FBE6C5B82736CD3B473F3B9BC67A93A833300000018A00F6ED1DF05508A27D3B1D79C71D707AEE56A6B
ike 0:ipsec-l2tp:12: responder:main mode get 2nd message...
ike 0:ipsec-l2tp:12: NAT not detected
ike 0:ipsec-l2tp:12: out 622D112386920EAB82890A11B0E6719A0410020000000000000001640A0001040BAF8E272033202823B8E9EB29F6EC26D28C6741616289DEA59301AE4204C31E3D28CA98AB064CBF8A9082C77B660AA845CDEF3891472A4921BCFE1A5D030ACAED376B5A93A1B5148A0FA60349BF3E221DC6F4C6C93935030AD7905756EA6B29E3998F511D49CA66D443C5B785956F5D2AEE09FACCA3E87F48561E49DB3842C2030EFAEA6028229DCFBBE66B8B46B7470AFB7D1A9BB1AB8E3155A71139058CFF9B6A2A47C4983E41CFD6891AD12E3D231B61A8C036397A3837ECABEB3320D2A1A32290E1F07C5819835107E57337336835372B647E3E2F6F0DCBB07354147305AC11D78EC93DEFBB6B6AF1695F3CB211643AC1B4B40E90FE7D7B396477ACC88F140000141A96B745FD3004E4FA1F3B7774688A8214000018A00F6ED1DF05508A27D3B1D79C71D707AEE56A6B000000186D227FBE6C5B82736CD3B473F3B9BC67A93A8333
ike 0:ipsec-l2tp:12: sent IKE msg (ident_r2send): 193.193.135.66:500->193.193.135.67:500, len=356, id=622d112386920eab/82890a11b0e6719a
ike 0:ipsec-l2tp:12: ISAKMP SA 622d112386920eab/82890a11b0e6719a key 24:8BB676EDAF67D6B1507AA56F79E8C76FAFBFCBC615BB6C57
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Identity Protection id=622d112386920eab/82890a11b0e6719a len=68
ike 0: in 622D112386920EAB82890A11B0E6719A051002010000000000000044CAE9716F333EF834B2C25392998B0BDF8117E7B4709D683C8586B6A167C2A637AE34BE5206F01D42
ike 0:ipsec-l2tp:12: responder: main mode get 3rd message...
ike 0:ipsec-l2tp:12: dec 622D112386920EAB82890A11B0E6719A0510020100000000000000440800000C01000000C1C1874300000018849275683995E0DAC92CFC23558FF836F6002A6E00000000
ike 0:ipsec-l2tp:12: PSK authentication succeeded
ike 0:ipsec-l2tp:12: authentication OK
ike 0:ipsec-l2tp:12: enc 622D112386920EAB82890A11B0E6719A051002010000000000000046080000120200000069707365632D6C32747000000018358811170A2C3B8E0FA0BCDBA685C073C45B5C0E
ike 0:ipsec-l2tp:12: out 622D112386920EAB82890A11B0E6719A05100201000000000000004C0B7C17447CF0E75452F13BE3B9DCB9602316AD0C23CDF55F2EBB96CDA0D75C95F5705AD7BB23C2E053B18D80BFE8BFF9
ike 0:ipsec-l2tp:12: sent IKE msg (ident_r3send): 193.193.135.66:500->193.193.135.67:500, len=76, id=622d112386920eab/82890a11b0e6719a
ike 0:ipsec-l2tp:12: established IKE SA 622d112386920eab/82890a11b0e6719a
ike 0:ipsec-l2tp: adding new dynamic tunnel for 193.193.135.67:500
ike 0:ipsec-l2tp_0: added new dynamic tunnel for 193.193.135.67:500
ike 0:ipsec-l2tp_0:12: no pending Quick-Mode negotiations
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Quick id=622d112386920eab/82890a11b0e6719a:00000001 len=308
ike 0: in 622D112386920EAB82890A11B0E6719A08102001000000010000013484FC3439E9C63DF19AE6EBB5B1A37180C3801539091C8E571B1EE1CD1E384EBA8ABE01AB78F2D537829D9FA5A553FBDEBCE35C51988E5C6214803A02881EE01F86C01F9823414C05C5546F1DCF15AA7E0FE7E68D9D8DA23EA3339F7FEF7B9050C6A487826E1987D91C5783EB4BEDC0760372693C4194B7C91212C016340694321C6CD8207FE0C9A8A95169E31BBAE1869DCD924223449C469760BD76FC536A995ABDBCAD6AA5E8ADD76BB61B40BCC6D66356CD1A169E5D663E37D78ACAD9BFD98A409589F9E374F668A073830E52FC846806AF811E09C1C97671EBCC346606127C6D024A1247032EB7FDAEC47AC8531093AD12EF8969010D54B247E8AD7567194DAD08C2B724663CBB949A822453CC1FC8F1AC01AE46A1CA
ike 0:ipsec-l2tp_0:12:3: responder received first quick-mode message
ike 0:ipsec-l2tp_0:12: dec 622D112386920EAB82890A11B0E6719A08102001000000010000013401000018839626BA24EFE558DB5D3DEE30F99C2B3DAE54A40A0000AC0000000100000001020000380103040179247F5D0000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D090020000340203040179247F5D00000028010300008004000280050002800100010002000400000E1080010002000200040003D090000000340303040179247F5D00000028010200008004000280050002800100010002000400000E1080010002000200040003D090050000347E0F9F3465181420B56D51A1BF311AC839DAF8A3F2190C8F9F6713B0AA61E961D0E59C4732DF0B855D2527BDF9C8F25A0500000C011106A5C1C187430000000C011106A5C1C187420000000000000000
ike 0:ipsec-l2tp_0:12:3: peer proposal is: peer:17:193.193.135.67-193.193.135.67:1701, me:17:193.193.135.66-193.193.135.66:1701
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: trying
ike 0:ipsec-l2tp_0:12:3: transport mode, override with 17:193.193.135.66-193.193.135.66:1701 -> 17:193.193.135.67-193.193.135.67:0
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: matched phase2
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: dynamic client
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: my proposal:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: proposal id = 1:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: protocol id = IPSEC_ESP:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: trans_id = ESP_3DES
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: trans_id = ESP_AES (key_len = 128)
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: incoming proposal:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: proposal id = 1:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: protocol id = IPSEC_ESP:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: trans_id = ESP_AES (key_len = 128)
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: negotiation result
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: proposal id = 1:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: protocol id = IPSEC_ESP:
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: trans_id = ESP_AES (key_len = 128)
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: encapsulation = ENCAPSULATION_MODE_TRANSPORT
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: type = AUTH_ALG, val=SHA1
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: using transport mode.
ike 0:ipsec-l2tp_0:12: enc 622D112386920EAB82890A11B0E6719A0810200100000001000000A40100001821EE756AD2264F00CE6BA1632CEA93F8BE5777B10A00004400000001000000010000003801030401658C806E0000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D090050000145B6484AE7D210E1E62B20D9ADDE1D05D0500000C011106A5C1C187430000000C011106A5C1C18742
ike 0:ipsec-l2tp_0:12: out 622D112386920EAB82890A11B0E6719A0810200100000001000000AC1B887C353B84B1FB5F65213F04F06EF1248E0D6CD1BE1BF02AA75B0FCC62DD5290794B80F063251AB3973AF200900AFFBE11F8343222B6F568074C6A97D3C8BC4C5E3F4CAF114C41EC48B28E0E4B11CE5CD4E993436826828C367026007004D207FC41AB2499B7EEB0C5AFB503AC63AE1623A29B6C274EF3E3A5544C5CC0822948791073A99038356FB79B73B7A2B5
ike 0:ipsec-l2tp_0:12: sent IKE msg (quick_r1send): 193.193.135.66:500->193.193.135.67:500, len=172, id=622d112386920eab/82890a11b0e6719a:00000001
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Quick id=622d112386920eab/82890a11b0e6719a:00000001 len=60
ike 0: in 622D112386920EAB82890A11B0E6719A08102001000000010000003CA487CA0980EAE54B3F4579661F3CCDEF664F9CB147AEC486899B4399C1302E0A
ike 0:ipsec-l2tp_0:12: dec 622D112386920EAB82890A11B0E6719A08102001000000010000003C0000001885D917E15AD341C16CE50A837320FFE2E871DAE20000000000000000
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: replay protection enabled
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: SA life soft seconds=3585.
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: SA life hard seconds=3600.
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: set sa life soft/hard kbytes=249488/250000.
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: IPsec SA selectors #src=1 #dst=1
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: src 0 7 17:193.193.135.66-193.193.135.66:1701
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: dst 0 7 17:193.193.135.67-193.193.135.67:0
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: add dynamic IPsec SA selectors
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: tunnel 1 of VDOM limit 0/0
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: add IPsec SA: SPIs=658c806e/79247f5d
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: IPsec SA dec spi 658c806e key 16:2C3E30B183B935DB335E74AD5235B39F auth 20:8F0480B09EDD77D0043CE088253819CA96505506
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: IPsec SA enc spi 79247f5d key 16:DF6DEFD6172238920E0FA7253CA488BA auth 20:5F024605CEA91B199E7454AA5CC753E126F30E2F
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: transport mode encapsulation is enabled
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: added IPsec SA: SPIs=658c806e/79247f5d
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: sending SNMP tunnel UP trap
ike 0: unknown SPI 658c806e 5 193.193.135.67:0->193.193.135.66
ike 0: found ipsec-l2tp_0 193.193.135.66 5 -> 193.193.135.67:500
ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: ignoring invalid SPI 658c806e, IPsec SA just negotiated
ike 0: IP 198.18.4.129 (29) is down
ike shrank heap by 122880 bytes
VERBINDUNG BBENDEN
ike 0: IP 198.18.4.129 (27) is down
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Informational id=139f97ee253792aa/fb41cf2ac6ea413a:f02e4234 len=76
ike 0: in 139F97EE253792AAFB41CF2AC6EA413A08100501F02E42340000004C0181DD9CA0EFB7237D82CB4A64EA5521A81B0680A8BC4A1B296616D9BDDF403403C183C4815A3F40A1EEFC869A60167B
ike 0:ipsec-l2tp_0:10: dec 139F97EE253792AAFB41CF2AC6EA413A08100501F02E42340000004C0C000018769ABD37E279BD4D0E10C79C78F0F660021369C5000000100000000103040001E06C12220000000000000000
ike 0:ipsec-l2tp_0:10: recv IPsec SA delete, spi count 1
ike 0:ipsec-l2tp_0: deleting IPsec SA with SPI e06c1222
ike 0:ipsec-l2tp_0:ipsec-l2tp: deleted IPsec SA with SPI e06c1222, SA count: 0
ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap for ipsec-l2tp
ike 0:ipsec-l2tp_0:ipsec-l2tp: delete
ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
ike 0: IKEv1 exchange=Informational id=139f97ee253792aa/fb41cf2ac6ea413a:29cadd72 len=84
ike 0: in 139F97EE253792AAFB41CF2AC6EA413A0810050129CADD7200000054E57C377F515B71A3AA4C25BC781BC12A6FD34F4252399BB6D2A97619311FD64B2F4003BD78DE2848971B42BE23294DF4B3823E120D68B439
ike 0:ipsec-l2tp_0:10: dec 139F97EE253792AAFB41CF2AC6EA413A0810050129CADD72000000540C000018F44257616ED28299EB82CDBD53F4F56CF036E2DC0000001C0000000101100001139F97EE253792AAFB41CF2AC6EA413A00000000
ike 0:ipsec-l2tp_0:10: recv ISAKMP SA delete 139f97ee253792aa/fb41cf2ac6ea413a
ike 0:ipsec-l2tp_0: deleting
ike 0:ipsec-l2tp_0: flushing
ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap
ike 0:ipsec-l2tp_0: flushed
ike 0:ipsec-l2tp_0: delete dynamic
ike 0:ipsec-l2tp_0: deleted
ike shrank heap by 122880 bytes
# diagnose debug disable
# diagnose debug reset
Wie kann ich auf Windows 7 eine L2TP IPSec Verbindung konfigurieren?
Wenn auf Windows 7 ein "L2TP" Verbindung konfiguriert werden soll muss zu aller Erst kontrolliert werden ob folgende zwei Services aktiviert sind:
IPSec Richtlinien Agent (IPsec Policy Agent)
IKE- und AuthIP IPsec-Schlüsselerstellungsmethode (IKE and AuthIP IPsec Keying Modules)
Diese werden benötigt für den "L2TP" Service auf Windows 7. Danach muss folgendes ausgeführt werden:
Start > Systemsteuerung > Netzwer und Internet > Netzwerk- und Freigabecener > Neue Verbindung oder neues Netzwerk einrichten
Datei:Fortinet-1326.jpg
Datei:Fortinet-1327.jpg
Datei:Fortinet-1328.jpg
Datei:Fortinet-1329.jpg
Datei:Fortinet-1330.jpg
Datei:Fortinet-1331.jpg
Start > Systemsteuerung > Netzwer und Internet > Netzwerk- und Freigabecener > Adaptereinstellungen ändern > [Adapter markeren und rechte Maustaste > Eigenschaften]
Datei:Fortinet-1332.jpg
Datei:Fortinet-1333.jpg
Datei:Fortinet-1334.jpg
Datei:Fortinet-1335.jpg NOTE Wenn bei der Authentifizierung "PAP" gewählt wird so wird die Authentifizierung "clear-text" übertragen. Wenn die Authentifizierung "verschlüsselt" durchgeführt werden soll, so sollte "CHAP" gewählt werden. Wenn hohe Datenvolumen übertragen werden in einer L2TP Verbindungen (zB RDP) und im Zusammenhang mit der Authentifizierung auf dem Client "MS-CHAP v2" aktiviert wurde, kann es zu unerwartenden Unterbrüchen kommen. In so einem Fall, bei Benutzung von "MS-CHAP v2", sollte dieser Punkt auf dem Client deaktiviert werden. Um diesem Umstand zu umgehen empfehlen wir "CHAP" zu wählen sofern eine Verschlüsselung für die Authentifizierung gewünscht ist ansonsten kann "PAP" benutzt werden.
Datei:Fortinet-1336.jpg
Datei:Fortinet-1337.jpg
Datei:Fortinet-1338.jpg
NOTE Die folgende Position "xxxxx" steht im Zusammenhang mit der "Split Tunneling" Funktion. Wenn "Split Tunneling" aktiviert werden soll muss die folgende Position "deaktiviert" werden. Weitere Informationen dazu siehe Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_Windows_7_f.C3.BCr_eine_L2TP_IPSec_Verbindung_ein_.22splitt_tunneling.22_konfigurieren.3F Datei:Fortinet-1339.jpg
Wie kann ich auf Windows 7 für eine L2TP IPSec Verbindung ein "splitt tunneling" konfigurieren?
Wenn auf Windows 7 für "L2TP" ein "Split Tunneling" konfiguriert werden soll muss die folgende Position deaktiviert werden:
Start > Systemsteuerung > Netzwer und Internet > Netzwerk- und Freigabecener > Adaptereinstellungen ändern > [Adapter markeren und rechte Maustaste > Eigenschaften]
Register "Netzwerk" > Internet Protokoll 4 > Eigenschaften > Erweitert > [Aktivierte die nachfolgende Position]
Datei:Fortinet-1339.jpg
NOTE Weitere Informationen um was es sich bei der "Split Tunneling" Funktion handelt siehe nachfolgenden Link:
FortiClient:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Split_Tunneling.22.3F
L2TP IPSec Implementierung/Fehlermeldung Windows 7 "Security layer encountered a processing error during initial negotiations"?
Wenn eine L2TP IPSec Implementierung durchgführt wird und anhand eines Windows 7 Client/Workstation versucht wird zu zugreifen, kommt es zu einer Fehlermeldung auf dem Windows 7 Client/Workstation:
security layer encountered a processing error during initial negotiations
Der Grund dafür ist die IPSec Phase-2 dh. der Windows 7 Client/Workstation überprüft in der Phase-2 die "lifetime proposal" und wenn diese nicht übereinstimmt wird diese Fehlemeldung ausgegeben! Auf der Seite von Windows 7 ist diese "lifetime proposal" folgendermassen konfiguriert:
3600s/250000kbps
Um die Konfiguration auf der Fortigate anzupassen führe folgendes durch:
# config vpn ipsec phase2
# edit "[Name der Phase 2]"
# set keylife-type both
# set keylifekbs 250000
# set keylifeseconds 3600
# next
# end
SSL-VPN
Gibt es für SSL-VPN eine Limitation betreffend "Concurrent Sessions"?
Nein so eine Limitierung betreffend Concurrent Sessions gibt es nicht. Dies bedeutet die "Concurrent Sessions" hängen von den zur Verfügung stehenden System Resourcen ab! Ein Anhaltspunkt betreffend der SSL-VPN Limitierung pro Device bietet das Datasheet des Devices. Diese findet man unter folgenden Artikel:
Fortinet:ProduktInfo#FortiGate NOTE In den Datasheets unter "Specifications" findet man zwei Positionen die den Anhaltspunkt liefert: SSL-VPN Throughput Concurrent SSL-VPN Users (Recommended Max)
Wie kann ich den Access Port für die SSL-VPN Funktion konfigurieren?
Die SSL-VPN Funktion läuft per Standard unter FortiOS 5.0 auf Port TCP 10443. Unter FortiOS 5.2 läuft dieser Port per Standard auf Port TCP 443. Dieser kann über WebGui und/oder CLI geändert werden. Ueber WebGui kann dies folgendermassen durchgeführt werden:
FortiOS 5.0
VPN > SSL > Config > Login Port
FortiOS 5.2
VPN > SSL > Settings > Listen on Port
Wenn der SSL-VPN Port gesetzt wird, ist zu berücksichtigen, dass dieser nicht bereits anderweitig genutzt wird. Dies bedeutet: Unter FortiOS 5.0 ist der Admin Port für das Management der FortiGate per Standard auf Port TCP 443 gesetzt und wie schon erwähnt der Port für die SSL-VPN Funktion auf TCP 10443. Nun wenn der SSL-VPN Port auf TCP 443 verschoben werden will muss zuerst der Admin Port verschoben werden:
Admin Port FortiOS 5.0 / 5.2
# config system global
# set admin-port [Setze die entsprechende Port Nummer]
# end
SSL-VPN Port FortiOS 5.0
# config system global
# set sslvpn-sport 10443
# end
SSL-VPN Port FortiOS 5.2
# config vpn ssl settings
# set port [Setze die entsprechende Port Nummer]
# end
NOTE Unter FortiOS 5.0 wird kein Hinweis über das Web Mgmt. Interface angezeigt wenn der Port bereits
belegt ist. Ebenfalls konnte die Konfiguration unter FortiOS 5.0 ohne "Warnung" durchgeführt
werden. Unter FortiOS 5.2 wurde diesem Umstand Rechnung getragen und neu wird seitens Admin Port
und/oder SSL-VPN Port ein Hinweis angezeigt wenn der Port bereits belegt ist!
Datei:Fortinet-1130.jpg
Datei:Fortinet-1131.jpg
Welche Vorraussetzungen gelten wenn ich für das SSL-VPN und/oder den Adminstrative Access den gleiche Port vewenden möchte?
Nun wenn eine Public IP auf dem externen Interface exisitert und die FortiGate von extern über den Administrativen Port erreichbar sein soll läuft dieser per Standard auf Port HTTPS 443. Nun möchte man die SSL-VPN Funktion ebenfalls auf diesen Port HTTPS 443 setze ist das technisch gesehen nicht möglich da eine IP und ein Port nur "einmalig" für einen Service vergeben werden kann. Auch wenn nun auf dem externen Interface eine zweite Public IP zB als "secondary" vergeben wird ändert dies nichts an der Situatuion denn der Administrative Access und der SSL-VPN Access stellen zwei System Services die sich "ein" Port nicht teilen können. Also muss konsequent für jeden System Service ein anderer Port vergeben werden zB für Adminstrative Access HTTPS 443 und für SSL-VPN HTTPS 10443. Möchte man dies dennoch bewerkstelligen gilt folgende Grundvorraussetzung damit dies ermöglicht werden kann:
Zwei Public IP's die zum "externen" Interface der FortiGate geroutet werden. Die einte IP wird als "main" IP auf dem
Interface konfiguriert und die zweite IP als "secondary" unter der "main" IP!
NOTE In dem nachfolgenden Beispiel wird nur gezeigt "wie" die Konfiguration betreffend HTTPS 443 für das SSL-VPN Portal durchzuführen ist. Dies bedeutet das Beispiel geht davon aus, dass der Service des SSL-VPN mit allen Komponenten bereits existiert. Siehe auch Artikel: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.2_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
Wenn die Grundvorraussetzungen gegeben sind, kann die Konfiguration im nachfolgenden Dokument durchgeführt werden. Dabei wird ein "Workaround" angewendet anhand eines "loopback" Interfaces. Auf diesem "loopback" Interface wird ein VIP (Destination NAT) Objekt konfiguriert, dass den Port HTTPS 443 von Extern auf HTTPS 10443 Intern (Port Forward) durchführt da das SSL-VPN nicht auf HTTPS 443 konfiguriert werden kann da es sich um "System Services" handelt und für diese nicht den "gleichen Port" vergeben werden kann:
Datei:Using-Port-443-for-MGMT-Access-and-SSL-VPN.pdf
Wie kann ich ein SSL-VPN auf einer FortiGate per Kommandozeile (CLI) konfigurieren?
Ausgehend vom nachfolgenden Artikel kann ein SSL-VPN sei es im Tunnel und/oder Web Mode per Mgmt. Web Interface eingerichtet werden:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
Es kann jedoch durchaus Sinn ergeben die ganze Konfiguration per Kommandozeile (CLI) durchzuführen. Bei folgendem Beispiel wird ein Tunnel Mode sowie ein Web Portal Mode konfiguriert und zwar in dem Sinne, dass diese seperate gehalten werden. Diese Separierung ist für mehr Transparenz zu empfehlen:
Konfiguration VPN-SSL Settings FortiOS 5.0
# config vpn ssl settings
# set sslvpn-enable enable
# set dns-server1 [IPv 4 Adresse]
# set dns-server2 [IPv 4 Adresse]
# set idle-timeout [Setze das Timeout in Sekunden für das SSL VPN zB "1800"; Standard 0]
# set tunnel-ip-pools [Definiere das Address Objekt für IPv4 Pool Adressen]
# set route-source-interface disable
# set port [Definiere den SSL-VPN TCP Access Port zB 10443]
# set port-precedence enable [Bei gleicher Port Belegung SSL-VPN hat höhere Presendence als HTTPS]
# set auto-tunnel-policy disable
# set auto-tunnel-static-route disable
# set source-interface disable
# end
NOTE Ab FortiOS 5.0 gibt es die Optionen "auto-tunnel-policy und static". Diese zwei Optionen sind per
Standard aktiviert und ermöglichen eine Konfiguration OHNE eine Route sowie einer Policy. Aus diesem
Grund empfehlen wir diese Optionen zu deaktivieren. Unter FortiOS 5.2 gibt es nur noch die Option
"auto-tunnel-static". Weitere detaillierte Informationen findet man im folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F
Konfiguration VPN-SSL Settings FortiOS 5.2
# config vpn ssl settings
# set dns-server1 [IPv 4 Adresse]
# set dns-server2 [IPv 4 Adresse]
# set idle-timeout [Setze das Timeout in Sekunden für das SSL VPN zB "1800"; Standard 0]
# set tunnel-ip-pools [Definiere das Address Objekt für IPv4 Pool Adressen]
# set route-source-interface disable
# set port [Definiere den SSL-VPN TCP Access Port zB 10443]
# set port-precedence enable [Bei gleicher Port Belegung SSL-VPN hat höhere Presendence als HTTPS]
# set auto-tunnel-static-route disable
# set source-interface disable
# set source-adddress [Definiere ein entsprechendes Address Objekt oder "all"]
# set default-portal [Namen des entsprechenden Portals zB "web-acces-only"]
# config authentication-rule
# edit [Gebe einen entsprechenden Integer an]
# set users [Gebe einen entsprechenden User's an]
# set groups [Gebe eine entsprechende Gruppe an]
# set portal [Gebe ein entsprechendes Portal an]
# end
# end
NOTE Wenn "authentication-rule" nicht konfiguriert wird so gilt folgendes: Per Standard benützen alle
User das Portal das über die Option "default-portal" definiert wird. Wenn andere Portale als das
"default-portal" benützt werden sollen müssen diese unter "authentication-rule" definiert werden!
FortiOS 5.0 WebPortal Only
# config vpn ssl web portal
# edit [Name des Profile zB "web-acces-only"]
# set allow-access [Setze Global welche Funktionen erlaubt sind zB "web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward"]
# set heading [Gebe den Header an der "im" WebPortal angezeigt wird zB "Welcome to VPN-SSL Portal"]
# set page-layout [Setze das Layout dh. für Zweispaltig "double-column"]
# set allow-user-bookmark enable
# set mac-addr-check disable
# set auto-prompt-mobile-user-download disable
# set limit-user-logins enable
# set host-check none
# set virtual-desktop disable
# set os-check disable
# set cache-cleaner disable
# config widget
# edit 1
# set name "Session Information"
# set type info
# set column one
# set collapse disable
# next
# edit 2
# set name "Connection Tool"
# set type tool
# set column two
# set collapse disable
# set allow-apps [Gebe an WAS erlaubt ist im Connection Tool zB "web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward"]
# next
# edit 3
# set name Bookmarks
# set type bookmark
# set column one
# set collapse disable
# set allow-apps web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward
# config bookmarks
# edit TerminalServerRDPNative
# set apptyp rdpnative
# set description "TerminalServerRDPNative"
# set host [IPv 4 Adresse]
# set full-screen-mode disable
# set screen-height 900
# set screen-width 1600
# next
# edit TerminalServerRDP
# set apptyp rdp
# set description "TerminalServerRDP"
# set host [IPv 4 Adresse]
# set full-screen-mode disable
# set screen-height 900
# set screen-width 1600
# set keyboard-layout de-ch
# end
# next
# edit 5
# set name "Login History"
# set type history
# set column one
# set collapse disable
# set display-limit 5
# next
# end
# end
FortiOS 5.2 WebPortal Only
# config vpn ssl web portal
# edit [Name des Profile zB "web-acces-only"]
# set web-mode enable
# set tunnel-mode disable
# set heading [Gebe den Header an der "im" WebPortal angezeigt wird zB "Welcome to VPN-SSL Portal"]
# set page-layout [Setze das Layout dh. für Zweispaltig "double-column"]
# set user-bookmark enable
# set mac-addr-check disable
# set display-connection-tools enable
# set display-forticlient-download disable
# set display-history enable
# set display-history-limit 10
# set auto-prompt-mobile-user-download disable
# set limit-user-logins enable
# set host-check none
# set virtual-desktop disable
# set os-check disable
# set cache-cleaner disable
# set display-status enable
# config bookmark-group
# edit [Name der Kategorie zB URL]
# config bookmarks
# edit [Name des Bookmark's]
# set description [Beschreibung des Bookmark's]
# set url "http://www.beispiel.ch"
# end
# config bookmark-group
# edit [Name der Kategorie zB RDP]
# config bookmarks
# edit [Name des Bookmark's zB RDP]
# set description [Beschreibung des Bookmark's]
# set apptype [Application zB rdp; Zur Auswahl stehen citrix, ftp, portforward, rdp, rdpnative, smb, ssh, telnet, vnc, web]
# set description [Beschreibung]
# set host [IPv4 Adresse oder FQDN]
# set screen-height 900
# set screen-width 1600
# set keyboard-layout [Keyboard Layout Code zB de-ch]
# set logon-user [Optional Username]
# set logon-password [Optional Passwort]
# end
# end
# config bookmark-group
# edit [Name der Kategorie zB SSH]
# config bookmarks
# edit [Name des Bookmark's zB SSH]
# set description [Beschreibung des Bookmark's]
# set apptype [Application zB ssh; Zur Auswahl stehen citrix, ftp, portforward, rdp, rdpnative, smb, ssh, telnet, vnc, web]
# set description [Beschreibung]
# set host [IPv4 Adresse oder FQDN]
# end
# end
# end
FortiOS 5.0 / 5.2 TunnelMode Only
Um den TunnelMode erfolgreich zu konfigurieren benötigen wir zwei Objekte dh. eines stellt das
LAN dar und das Andere den IPv4 IP Pool Range der dem User über DHCP bei der Verbindung zugeordnet
wird:
Address Objekt FortiOS 5.0 / 5.2
# config firewall address
# edit [Name des IPv 4 IP Pool zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
# set type iprange
# set visibility enable
# set start-ip [198.18.1.1]
# set end-ip [198.18.1.127]
# next
# edit [Name des IPv 4 LAN IP Range zB "net-ip-pool-ssl-vpn-198.18.0.0-24"]
# set type iprange
# set visibility enable
# set start-ip [198.18.0.1]
# set end-ip [198.18.0.254]
# end
# end
FortiOS 5.0 TunnelMode Only
# config vpn ssl web portal
# edit [Name des Profile zB "tunnel-acces-only"]
# set mac-addr-check disable
# set auto-prompt-mobile-user-download disable
# set limit-user-logins enable
# set host-check none
# set virtual-desktop disable
# set os-check disable
# set cache-cleaner disable
# config widget
# edit 4
# set name Tunnel Mode
# set type tunnel
# set column two
# set collapse disable
# set split-tunneling enable
# set dns-server1 [IPv4 Adresse]
# set dns-server2 [IPv4 Adresse]
# set ip-mode range
# set ip-pools [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
# set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
# set save-password [enable | disable]
# set keep-alive disable [enable | disable]
# set auto-connect [enable | disable]
# next
# end
# end
FortiOS 5.2 TunnelMode Only
# config vpn ssl web portal
# edit [Name des Profile zB "tunnel-acces-only"]
# set tunnel-mode enable
# set web-mode disable
# set cache-cleaner disable
# set host-check none
# set limit-user-logins enable
# set mac-addr-check disable
# set os-check disable
# set virtual-desktop disable
# set ip-mode range
# set auto-connect disable
# set keep-alive disable
# set save-password disable
# set ip-pools
# set ip-pools [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
# set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
# set dns-server1 [IPv4 Adresse]
# set dns-server2 [IPv4 Adresse]
# end
Als Letzteres muss der entsprechende IP Pool als statische Route eingetragen werden auf dem "ssl-root" Interface dh.:
FortiOS 5.0 / 5.2 Routing
# config router static
# edit [Integer zB "2"]
# set comment "SSL-VPN IP-Pool Route]
# set device "ssl.root"
# set distance 10
# set dst [IPv4 IP-Pool Network Range zB "198.18.1.0/25]
# set priority 0
# end
# end
Technisch gesehen ist der WebPortal und/oder TunnelMode bereit für den Gebrauch jedoch benötigen wir nun noch die entsprechenden Rules die den Gebrauch erlauben:
FortiOS 5.0 Policy
# config firewall policy
# edit [Gebe einen Integer für die Policy zB "1"
# set comments "VPN TunnelMode Access"
# set srcintf "ssl.root"
# set dstintf [Setze die Destination die erlaubt ist im TunnelMode zB "internal1"]
# set srcaddr [Setze die Source resp. das Objekt das die IPv 4 IP Pool Netowrk Range darstellt zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
# set dstaddr [Setze die Destination resp. das Objekt das die IPv 4 LAN Network Range darstellt zB "net-lan-198.18.0.0-24"]
# set action accept
# set schedule "galways"
# set service [Setze die Service die erlaubt sind zB "ALL"]
# set logtraffic all
# next
# edit [Gebe einen Integer für die Policy zB "2"
# set comments "VPN Portal Access"
# set srcintf [Setze das entsprechende Source Interface resp. Interne zB "wan1"]
# set dstintf [Setze das entsprechende Destination Interface zB "internal1"]
# set srcaddr [Setze das entsprechende Objekt das die Source darstellt zB "all"]
# set dstaddr [Setze das entsprechende Objekt das die Destination darstellt zB "net-192.168.1.0-24"]
# set action ssl-vpn
# set identity-based enable
# config identity-based-policy
# edit [Gebe einen entsprechenden Integer ein zB "1"]
# set schedule "always"
# set logtraffic all
# set groups [Gebe die entsprechende Gruppe an für die Authentifizierung zB "FortiGroup"]
# set service [Setze den entsprechenden Service der erlaubt ist zB "ALL"]
# set sslvpn-portal [Gebe das entsprechende WebPortal Profil an zB "web-access-only"]
# next
# end
# next
FortiOS 5.2 Policy
# config firewall policy
# set comments "VPN TunnelMode Access"
# set srcintf [Setze das entsprechende Source Interface resp. Interne zB "ssl.root"]
# set dstintf [Setze das entsprechende Destination Interface zB "internal1"]
# set srcaddr [Setze das entsprechende Objekt das die Source darstellt zB "all"]
# set dstaddr [Setze das entsprechende Objekt das die Destination darstellt zB "net-192.168.1.0-24"]
# set action accept
# set schedule "always"
# set service "ALL"
# set logtraffic all
# set groups [Setze einen entsprechende Gruppe]
# set users [Setze einen entsprechende User]
# set devices [Setze einen entsprechenden Device]
# end
NOTE Wenn User und/oder Gruppen definiert werden die nicht das unter "config vpn ssl settings" definierte
"default-portal" benützen, muss dies unter "config vpn ssl settings" unter "config authentication-rule"
definiert werden!
Nun kann getestet werden. Wenn es zu Problemen kommt kann mit folgenden Befehl ein Debug ausgeführt werden:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application sslvpn -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Führe nun eine Zugriff über Portal oder TunnelMode durch und achte auf den Output! Nach der Benutzung des Debug sollte dieser wieder zurückgestellt und deaktiviert werden:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Wie konfiguriere ich unter FortiOS 5.0 ein SSL-VPN Portal/Tunnel auf einer Fortigate?
Nachfolgende Dokumentation gibt Auskunft wie ein SSL-VPN unter FortiOS 5.0 -sei es im Portal und/oder Tunnel Mode- aufgebaut wird. In unserem Beispiel gehen wir davon aus, dass eine Fortigate über folgende Konstellation verfügt (Factory Defaults):
NOTE Eine 40C unterstützt nur noch 1 VPN Portal dh. weitere VPN Portale können nicht erfasst werden. Versucht
man dies über CLI mit folgendem Befehl erscheint folgendes, was wiederum bestätigt, dass nur ein SSL-VPN Portal
möglich ist:
# config vpn ssl web portal
# edit new
Too many entries in all tables of .vpn.ssl.web.portal in vdom root: 1 / vdom-max = 1
____________ _________________________
193.193.135.66/29| | 192.168.1.99 | |
----- WAN 1 -----| Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
|____________| |_________________________|
Als Erstes erfassen wir einen User sowie eine Gruppe. Der neu erfasste User wird Mitglied dieser neuen Gruppe:
User & Device > User > User Definition
Datei:Fortinet-68.jpg
Datei:Fortinet-69.jpg
Datei:Fortinet-1132.jpg
Datei:Fortinet-1133.jpg
Datei:Fortinet-1134.jpg
NOTE Wenn der User auf LDAP gesetzt wird so wird die Authentifizierung über Active Directory verifiziert! Desweiteren kann für einen User eine Two Factor Authentication aktiviert werden dh. sei es über Hard Token oder ODA. Weitere Informationen betreffend Einbinden eines Active Directory's siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_einen_lokalen_User_Two-Faktor_Authentication_anhand_ODA.3F
User & Device > User > User Groups
Datei:Fortinet-70.jpg
Datei:Fortinet-71.jpg NOTE Im Gegensatz zu FortiOS 4 MR3 wird unter FortiOS 5.0 das entsprechende Portal nicht mehr in der User Gruppe zugeordnet dh. Unter FortiOS 5.0 wird der entsprechende User und/oder Gruppe in der "Identity Based Policy" dem entsprechenden Portal zugeordnet! Für eine Active Directory Authentifizierung muss eine entsprechende Gruppe dementsprechend konfiguriert resp. eingebunden werden.
Anhand der SSL-VPN Funktion wird auf der Fortigate ein Portal und/oder ein Tunnel zur Verfügung gestellt. In unserem Beispiel gehen wir davon aus, dass wir einen internen WebServer (192.168.1.12) haben den wir erreichen möchten. Per Standard ist innerhalb der globalen Konfiguration der SSL-VPN Funktion die Option " sslvpn-enable" aktiviert. Dies bedeutet wiederum, dass die SSL-VPN Funktion zur Verfügung steht. Möchte man die komplette SSL-VPN Funktion deaktivieren so muss diese Option auf "disabled" (deaktiviert) gesetzt werden.
# config vpn ssl settings
# set sslvpn-enable enable
# end
Nun erstellen wir für den WebServer (192.168.1.12) ein Adress Objekt. Führe dazu folgendes aus:
Firewall Objects > Address > Address
Datei:Fortinet-94.jpg
Datei:Fortinet-95.jpg
Nun damit wir die Internal IP LAN Defintion in den Policy's benutzen können benötigen wir ein Adress Objekt das dieses darstellt:
Datei:Fortinet-110.jpg
Datei:Fortinet-111.jpg
Für die SSL-VPN Funktion benötigt man einen IP-Pool dh. dieser IP-Pool weist den Usern nach erfolgreicher Authentifizierung eine IP zu. Somit kommt dieser IP-Pool einem DHCP Server gleich. Es kann der "vordefinierte" IP-Pool "SSLVPN_TUNNEL_ADDR1" benutzt werden oder einen eigenen definierten:
Firewall Objects > Address > Address
Datei:Fortinet-94.jpg
Datei:Fortinet-1135.jpg
Dieser IP-Pool der definierte wurde kann nun als "Globaler IP-Pool" definiert werden. Dies bedeutet er wird für "Alle" SSL-VPN Portale benutzt sofern im SSL-VPN Portal selber kein anderer definiert wird:
VPN > SSL > Config
Datei:Fortinet-96.jpg
NOTE Wie schon erwähnt wird unter "VPN > SSL > Config" die globale SSL-VPN Konfiguration durchgeführt. Dazu gehört
ebenfalls ein DNS Server der den SSL-VPN Client's zusätzlich zur IP-Pool Adresse nach erfolgreicher Authentifizierung
zugewisen wird. Wird im SSL-VPN Profile selber ein anderer IP-Pool definiert als unter der globalen Konfig so
überschreibt die Konfiguration im SSL-VPN Profile die globale Konfiguration!
Im nächsten Schritt wird ein "SSL-VPN Priofile erstellt die den SSL-VPN Usern die verschiedenen Funktionen für SSL-VPN bereitstellt:
VPN > SSL > Portal
Datei:Fortinet-100.jpg
Datei:Fortinet-379.jpg NOTE Dem Punkt "Split Tunneling" kommt eine wichtige Funktion zu dh. Diese Konfiguration steuert welche Packet auf dem Client/ Workstation durch den SSL-VPN Tunnel gesendet werden. Weitere Informationen dazu siehe nachfolgender Artikel: FortiClient:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Split_Tunneling.22.3F
Nach der Konfiguration kann anhand der Position "View Portal" überprüft werden wie das SSL-VPN Portal nach einem erfolgreichen einloggen aussieht:
Datei:Fortinet-102.jpg NOTE Möchte man das Aussehen modifizieren zB die verschiedenen Positionen Zweispaltig anzeigen so muss dies über Kommandozeile durchgeführt werden. Weitere Informationen dazu siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F
Datei:Fortinet-1136.jpg
In den vorhergehenden Konfigurations Schritten haben wir einen IP-Pool erfasst. Dieser wird benutzt um dem Usern eine IP nach einer erfolgreichen Authentifizierung zu zuweisen. Damit die Fortigate weiss wo sich dieser SSL-VPN IP-Pool befindet, muss dieser geroutet werden dh. auf das Interface "ssl.root" das unser SSL-VPN Funktion darstellt:
Router > Static > Static Route
NOTE Ist dieser Menüpunkt nicht vorhanden muss/kann dieser über folgende Position aktiviert werden:
System > Config > Feature > Advanced Routing
Nach der Aktivierung dieses Features muss kurz ausgeloggt sowie wieder eingeloggt werden!
Datei:Fortinet-108.jpg
Datei:Fortinet-109.jpg NOTE Dieser Routing Eintrag ist ab FortiOS 5.0 nicht mehr in jedem Fall nötig! Wir empfehlen "Dringend" den Routing Eintrag dennoch durchzuführen! Weitere "wichtige" Informationen dazu siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F
Als letzen Schritt benötigen wir eine entsprechnenden Firewall Policy die den Traffic resp. die SSL-VPN Funktion erlaubt. Der nächste Schritt zeigt die Firewall Policy Rule für das WebPortal. Diese wird über eine "Identity Based Policy" erstellt:
Policy > Policy > Policy > Create New
Datei:Fortinet-112.jpg
NOTE Es darf/sollte für die Destination Adressen nicht "ALL" und/oder "ANY" definiert werden denn wird dies durchgeführt erscheint
eine Fehlermeldung "Destination address of Split Tunneling policy is invalid" sobald das Split Tunneling aktiviert wird!
Datei:Fortinet-380.jpg
NOTE Ab FortiOS 5.0.5 fällt auf, dass in der "Identity Based Policy" im Mgmt. Gui kein Abschnitt mehr erscheint für "service".
Diese Position wurde vom Gui entfernt dh. wenn für SSL-VPN betreffend "service" eingeschränkt werden soll muss dies über CLI
konfiguriert werden. Per Standard steht die Positionen "service" in den "Identity Policy" auf "ALL". Um die Konfiguration über
CLI durchzuführen führe folgendes durch:
# config firewall policy
# edit [Gebe die ID an der entsprechenden Policy in der SSL-VPN konfiguriert wurde]
# config identity-based-policy
# edit [Gebe die ID an für die entsprechende Policy unter der Identity Policy]
# set service [Gebe den entsprechenden Service an zB HTTP]
# end
# end
Um die entsprechende Firewall Policy für SSL-VPN zu finden resp. die ID zu eruieren kann über CLI folgendes Kommando abgesetzt
werden:
# show firewall policy
Um eine Firewall Policy Rule für den Tunnel Mode zu erstellen führe folgendes aus:
Datei:Fortinet-1137.jpg NOTE Diese Firewall Policy ist ab FortiOS 5.0 nicht mehr in jedem Fall nötig! Wir empfehlen "Dringend" die Policy dennoch zu implementieren! Weitere Informationen dazu siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F
Die Konfiguration der SSL-VPN Funktion ist nun abgeschlossen. Um diese zu testen kann folgendes durchgeführt werden:
Teste WebPortal Zugriff https://[Public IP WAN Adresse]:[SSL-VPN Port]
NOTE Unter FortiOS 5.0 sobald die VPN Funktion aktiviert ist und die Option "sslvpn-enable" Option unter der
global Konfiguration nicht auf "disabled" (deaktiviert) gesetzt ist, kann das WebPortal auf jedem Interface
der FortiGate erreicht werden. Möchte man dies verhindern und das WebPortal soll "nur" über "wan1" Interface
erreichbar sein siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F
Teste Tunnel Mode Zugriff über SSL-VPN Client
Der dazu benötigte Client kann über https://support.fortinet.com runtergeladen werden. Der Download befindet sich
im entsprechenden Verzeichnis (SSL-VPN) des Image (Firmware) Downloads einer FortiGate. Desweiteren kann dieser
Tunnel Mode ebenfalls mit dem FortiClient getestet werden (IPSec-Only). Weitere Informationen dazu siehe nachfolgenden
Artikel:
FortiClient:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F
Um den Debug Modus auf der Console SSL-VPN Funktion auszuführen führe folgendes aus:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application sslvpn -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Wie konfiguriere ich unter FortiOS 5.2 ein SSL-VPN Portal/Tunnel auf einer Fortigate?
Unter FortiOS 5.2 wird ein SSL-VPN Portal/Tunnel anderst konfiguriert als unter FortiOS 5.0. Die Konfiguration ist im Hintrgrund mehr oder weniger dieselbe jedoch wird der Tunnel Mode und der Portal Mode völlig unterschiedlich gehandhabt. Wir gehen von folgenden Beispiel aus:
____________ _________________________
193.193.135.66/29| | 192.168.1.99 | |
----- WAN 1 -----| Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
|____________| |_________________________|
Um den Tunnel und/oder Portal Mode korrekt zu konfigurieren benötigt man einige Adress Objekte sowie einen User/Gruppe wie:
Adress Objekt des internen LAN net-lan-192.168.0.0-24
Adress Objekt des IP-Pool's net-ip-pool-10.10.0.0-24
User user-1 (Mitglied in gr-ssl-vpn-tunnel / gr-ssl-vpn-portal
Gruppe gr-ssl-vpn-tunnel
Gruppe gr-ssl-vpn-portal
Um diese zu erstellen wähle folgendes:
Policy & Objects > Objects > Addresses
Datei:Fortinet-1138.jpg
net-lan-192.168.0.0-24
Datei:Fortinet-1139.jpg
Datei:Fortinet-1138.jpg
net-ip-pool-10.10.0.0-24
Datei:Fortinet-1140.jpg
NOTE Der IP-Pool Bereich stellt nichts anderst dar als einen DHCP Server. Dies bedeutet: Wenn der SSL-VPN
User ein Login durchführt wird diesem nach erfolgreicher Authentifizierung aus diesem IP-Pool (DHCP)
eine Adresse zugewiesen!
User & Device > User Definition
Datei:Fortinet-1141.jpg
user-1
Datei:Fortinet-1142.jpg
Datei:Fortinet-1143.jpg
Datei:Fortinet-1144.jpg
User & Device > User Groups
Datei:Fortinet-1145.jpg
gr-ssl-vpn-tunnel
Datei:Fortinet-1146.jpg
Datei:Fortinet-1145.jpg
gr-ssl-vpn-portal
Datei:Fortinet-1147.jpg
In den nächsten Schritten konfigurieren wir einen Tunnel Mode dh. Zugriff auf die SSL-VPN Funktion anhand des Client's sei es der SSL-VPN Client und/oder FortiClient Endpoint Security im VPN-Only mode:
NOTE Weitere Informationen zum FortiClient Endpoint Sercurity VPN-Only siehe nachfolgenden Artikel: FortiClient:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F
Tunnel Mode Only Profile
VPN > SSL > Portals
Datei:Fortinet-1148.jpg
Datei:Fortinet-1149.jpg NOTE Weitere Informationen zur Funktion "Split Tunneling" siehe nachfolgender Artikel: FortiClient:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Split_Tunneling.22.3F Viele der einzelnen Funktionen eines SSL-VPN Portal's sind nur über Kommandozeile konfigurierbar. Nachfolgender Artikel zeigt wie ein SSL-VPN über die Kommandozeile konfiguriert wird: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F
VPN > SSL > Settings
Datei:Fortinet-1150.jpg
NOTE Unter FortiOS 5.0 wurde die SSL-VPN Funktion auf "allen" Interface's zur Verfügung gestellt. Um dies zu verhindern
musst unter FortiOS 5.0 eine "Local-In" Policy implementiert werden. Dies ist unter FortiOS 5.2 nicht mehr nötig da über
"Listen on Interface" die Interface's auf denen die SSL-VPN Funktion zur Verfügung gestellt wird über diese Position
konfiguriert werden kann. Desweiteren, wenn auf der Position "Listen on Port" ein Konflikt besteht da dieser Port bereits
besetzt ist, wird ein entsprechender Hinweis eingeblendet. Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_den_Access_Port_f.C3.BCr_die_SSL-VPN_Funktion_konfigurieren.3F
Datei:Fortinet-1151.jpg
Datei:Fortinet-1152.jpg NOTE Unter "All Other Users/Groups" muss ein entsprechendes SSL Portal definiert werden. Dieses Portal match sofern in der oberen Zeilen kein "match" stattfindet. Es gilt "top down first match wins". Dabei sollte die Funktion "Realm" miteinbezogen werden um zwischen den zwei Portalen zu unterscheiden!
Datei:Fortinet-1153.jpg
Datei:Fortinet-1154.jpg
Datei:Fortinet-1155.jpg NOTE Unter FortiOS 5.2 existiert keine "Identity Based Policy" mehr sondern die SSL-VPN Funktion mit der entsprechenden Gruppe/User wird in der "regulären" Firewall Policy konfiguriert!
Als letzter Schritt muss die IP-Pool Adresse für die SSL-VPN Funktion geroutet werden und zwar auf das Interface "ssl.root". Dieses Interface's tellt die SSL-VPN Funktion dar:
Datei:Fortinet-1163.jpg
Datei:Fortinet-1164.jpg
NOTE Diese Konfiguration des Routings ist nicht in allen Fällen notwendig da eine Option existiert unter "vpn ssl settings" die diese Konfiguration Automatisiert. Weitere Informationen dazu siehe Artikel: FortiGate-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F
Die Tunnel Mode Konfiguration ist nun abgeschlossen. Als Naechstes konfigurieren wir einen Portal Mode dh. Zugriff auf die SSL-VPN Funktion anhand des Browser auf ein SSL-VPN Portal das vers. Funktionen zur Verfügung stellen kann:
Portal Mode Only Profile
VPN > SSL > Portals
Datei:Fortinet-1148.jpg
Datei:Fortinet-1156.jpg NOTE Viele der einzelnen Funktionen eines SSL-VPN Portal's sind nur über Kommandozeile konfigurierbar. Nachfolgender Artikel zeigt wie ein SSL-VPN über die Kommandozeile konfiguriert wird: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F
Datei:Fortinet-1157.jpg
Datei:Fortinet-1158.jpg
Datei:Fortinet-1159.jpg NOTE In unserem Beispiel ist darauf zu achten -da wir mit zwei Portalen dh. tunnel-mode/portal-mode arbeiten- das dasjenige des "portal-mode" zuerst gelistet ist und ann das "tunnel-mode" Portal. Es gilt für diesen Konfigurationspunkt "Authentication/ Portal Mapping" die Regel "top down first match wins": Datei:Fortinet-1162.jpg Wenn die Unterscheidung zwischen User/Gruppen sowie Portalen nicht ausreicht kann anhand der Funktion "realm" die Konfiguration erweitert werden. Dies bedeutet: Wenn ein User in beiden Gruppen die vorkommt dh. für Tunnel und Web Mode kann die Evaluierung zwischen Tunnel und Web Mode nicht mehr durchgeführt werden da der User in beiden Gruppen vorkommt. Die Einzige unterscheidungs Möglichkeit liegt im "Realm". Dies bedeutet soll der Web Mode vom Tunnel Mode unterschieden werden kann ein Realm "Tunnel" erstellt werden. Dieser wird dann dazu benutzt zwischen den Portalen sei es Web und/oder Tunnel zu unterscheiden! Das Feature "realm" ist per Standard deaktiviert und wird über die folgende Position aktiviert: System > Config > Features > Show More > SSL-VPN Realms Nach Aktivierung des Features steht die Funktion "Realms" unter folgender Position zur Verfügung: VPN > SSL > Realms
Datei:Fortinet-1160.jpg
Datei:Fortinet-1161.jpg
Um ein Web Mode und Tunnel Mode inkl. den VPN Settings komplett über Kommandozeile zu konfigurieren kann folgendes durchgeführt werden:
VPN SSL Settings Web Portal
# config vpn ssl web portal
# edit [Name des Web Portals zB "web-acces.local"]
# set tunnel-mode disable
# set ipv6-tunnel-mode disable
# set web-mode enable
# set cache-cleaner disable
# set host-check none
# set limit-user-logins enable
# set mac-addr-check disable
# set os-check disable
# set virtual-desktop disable
# set auto-prompt-mobile-user-download disable
# set display-bookmark enable
# set user-bookmark enable
# set config bookmark-group
# set edit "Intranet-Kategorie"
# set config bookmarks
# set edit "Intranet"
# set set description "Intranet Site"
# set set url "www.mydomain.intra"
# set end
# set display-connection-tools enable
# set display-forticlient-download disable
# set display-history enable
# set display-history-limit 10
# set display-status enable
# set heading "Welcome to mydomain.ch"
# set page-layout double-column
# unset redir-url
# set theme blue
# set custom-lang en
# end
VPN SSL Settings Tunnel Mode
# config vpn ssl web portal
# edit [Name des Web Portals zB "tunnel-acces.local"]
# set tunnel-mode enable
# set ipv6-tunnel-mode disable
# set web-mode disable
# set cache-cleaner disable
# set host-check none
# set limit-user-logins enable
# set mac-addr-check disable
# set os-check disable
# set virtual-desktop disable
# set ip-mode range
# set auto-connect disable
# set keep-alive enable
# set save-password enable
# set ip-pools [Adress Objekt für IP Pool SSL VPN zB "net-ip-pool-10.10.0.0-24"]
# set split-tunneling enable
# set split-tunneling-routing-address [Adress Objekt für Destination LAN zB "net-lan-192.168.0.0-24"]
# set dns-server1 [IPv4 Adresse für DNS Server]
# set dns-server2 0.0.0.0
# set wins-server1 0.0.0.0
# set wins-server2 0.0.0.0
# end
VPN SSL Settings Realm
# config vpn ssl web realm
# edit [Name des Realms zB "tunnel"]
# set max-concurrent-user 100
# set login-page "<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
<title>
login
</title>
<meta http-equiv=\"Pragma\" content=\"no-cache\">
<meta http-equiv=\"cache-control\" content=\"no-cache\">
<meta http-equiv=\"cache-control\" content=\"must-revalidate\">
<link href=\"/sslvpn/css/login.css\" rel=\"stylesheet\" type=\"text/css\">
<script type=\"text/javascript\">
if (top && top.location != window.location) top.location = top.location;
if (window.opener && window.opener.top) {
window.opener.top.location = window.opener.top.location;
self.close();
}
</script>
</head>
<body class=\"main\">
<center>
<table width=\"100%\" height=\"100%\" align=\"center\" class=\"container\" valign=\"middle\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=middle>
<td>
<form action=\"%%SSL_ACT%%\" method=\"%%SSL_METHOD%%\" name=\"f\" autocomplete=\"off\">
<table class=\"list\" cellpadding=10 cellspacing=0 align=center width=400 height=180>
<tr class=\"dark\">
<td colspan=2>
<b>
<br>
WARNING:
<br>
<p style=\"text-align:justify; margin-left:0px; margin-right:0px\">
You must have prior authorization to login to this system. All connections are logged and monitored. By login to this system you fully consent to all monitoring. Unauthorized login or use will be prosecuted to the full extent of the law. You have been warned! </p>
<br>
</b>
</td>
</tr>
%%SSL_LOGIN%%
<tr>
<td>
</td>
<td id=login>
<input type=button name=login_button id=login_button value=\"Login\" onClick=\"try_login()\" border=0>
</td>
</tr>
</table>
%%SSL_HIDDEN%%
</form>
</td>
</tr>
</table>
</center>
</body>
<script>
document.forms[0].username.focus();
</script>
</html>"
# end
VPN SSL Settings
# config vpn ssl settings
# set reqclientcert disable
# set sslv2 disable
# set sslv3 enable
# set tlsv1-0 enable
# set tlsv1-1 enable
# set tlsv1-2 enable
# set ssl-big-buffer disable
# set ssl-insert-empty-fragment enable
# set ssl-client-renegotiation disable
# set force-two-factor-auth disable
# set servercert self-sign
# set algorithm default
# set idle-timeout 1800
# set auth-timeout 28800
# set auto-tunnel-static-route disable
# set tunnel-ip-pools [Adress Objekt für IP Pool SSL VPN zB "net-ip-pool-10.10.0.0-24"]
# set dns-server1 [IPv4 Adresse für DNS Server]
# set dns-server2 0.0.0.0
# set wins-server1 0.0.0.0
# set wins-server2 0.0.0.0
# set route-source-interface disable
# set url-obscuration disable
# set http-compression disable
# set http-only-cookie enable
# set port 10443
# set port-precedence enable
# set auto-tunnel-static-route disable
# set source-interface [Interface ISP zB "wan1"]
# set source-address [Adress Objekt oder "all"]
# set source-address-negate disable
# unset source-address6
# set default-portal "web-access.intra"
# config authentication-rule
# edit 1
# set source-interface [Interface ISP zB "wan1"]
# set source-address [Adress Objekt oder "all"]
# set source-address-negate disable
# unset source-address6
# set source-address6-negate disable
# set groups "gr-ssl-vpn-tunnel"
# set portal "tunnel-acces.local"
# set realm tunnel
# set client-cert disable
# set cipher any
# set auth local
# next
# edit 2
# set source-interface "wan1"
# set source-address "all"
# set source-address-negate disable
# unset source-address6
# set source-address6-negate disable
# set users local
# set groups "gr-ssl-vpn-portal"
# set portal "web-acces.local"
# unset realm
# set client-cert disable
# set cipher any
# set auth local
# next
# end
# end
Firewall Policy""
Nachträglich muss für die Konfiguation eine Firewall Policy implementiert werden:
Datei:Fortinet-1161.jpg
Wie kann ich ein SSL-VPN Portal betreffend Authentifizierung anhand der Source einschränken?
Unter FortiOS 5.0 kann ein SSL-VPN Portal anhand der definierten Source in der "Identity-Based Policy" eingeschränkt werden. Dazu folgendes Beispiel:
Datei:Fortinet-380.jpg NOTE Soll die Source in diesem Beispiel eingeschränkt werden so muss unter "Remote Address" ein entsprechender IP Range definiert werden. Wenn ein zweites Portal konfiguriert wird mit einer anderen Einschränkung dh. IP Range so muss einfach eine zusätzliche "Identity Policy" erstellt werden mit der Einschränkung.
Unter FortiOS 5.2 gibt es diese "Identity Based Policy" nicht mehr und ein SSL-VPN Portal wird nicht mehr über die Reguläre Policy definiert resp. konfiguriert. Neu wird das SSL-VPN Portal über folgende Position konfiguriert:
VPN > SSL > Settings
Datei:Fortinet-1150.jpg
Die Authentication Rule resp. Portal Mapping wird im Abschnitt "Authentication/Portal Mapping" konfiguriert. In diesem Abschnitt wird das entsprechende "Web Portal" sowie die entsprechende "Gruppe" zueinander "gemappt". Möchte man nun eine Einschränkung anhand der Source Adressen durchführen kann dies anhand dieser Position auf Kommandozeile durchgeführt werden:
Gruppe 1 "ssl-vpn-group-1" soll WebPortal benutzen "ssl-vpn-portal-1" und nur von der Source "net-ssl-vpn-group-1"
Gruppe 2 "ssl-vpn-group-2" soll WebPortal benutzen "ssl-vpn-portal-2" und nur von der Source "net-ssl-vpn-group-2"
Der zuständige Befehl um die "Authentication/Portal Mapping" zu konfigurieren ist "config authentication rule". Durch diesen Befehl kann die Source anhand eines IP Ranges eingeschränkt werden. Dabei ist zu berücksichtigen, dass in der "Authentication/Portal Mapping" nach "top down first match winns" evaluiert wird.
# config vpn ssl settings
# set reqclientcert disable
# set sslv2 disable
# set sslv3 enable
# set tlsv1-0 enable
# set tlsv1-1 enable
# set tlsv1-2 enable
# set ssl-big-buffer disable
# set ssl-insert-empty-fragment enable
# set ssl-client-renegotiation disable
# set force-two-factor-auth disable
# set servercert self-sign
# set algorithm default
# set idle-timeout 1800
# set auth-timeout 28800
# set auto-tunnel-static-route disable
# set tunnel-ip-pools "[Gebe den entsprechenden IP Range für IP Pool an für den Tunnel Mode]"
# set dns-suffix mydomain1.local
# set dns-server1 [IPv4 Adresse für den DNS Server]
# set dns-server2 [IPv4 Adresse für den DNS Server]
# set wins-server1 0.0.0.0
# set wins-server2 0.0.0.0
# set route-source-interface disable
# set url-obscuration disable
# set http-compression disable
# set http-only-cookie enable
# set port 10443
# set port-precedence enable
# set auto-tunnel-static-route disable
# set source-interface "[Interface auf dem das SSL-VPN Portal zur Verfügug gestellt werden soll zB wan1]"
# set source-address "all"
# set source-address-negate disable
# set source-address6 "all"
# set default-portal "[Name des Default SSL-VPN Portal"
# config authentication-rule
# edit 1
# set source-interface [Interface ISP zB "wan1"]
# set source-address [net-ssl-vpn-group-1]
# set source-address-negate disable
# unset source-address6
# set source-address6-negate disable
# set groups "ssl-vpn-group-1"
# set portal "ssl-vpn-portal-1"
# unset realm
# set client-cert disable
# set cipher any
# set auth local
# next
# edit 2
# set source-interface [Interface ISP zB "wan1"]
# set source-address [net-ssl-vpn-group-2]
# set source-address-negate disable
# unset source-address6
# set source-address6-negate disable
# set groups "ssl-vpn-group-2"
# set portal "ssl-vpn-portal-2"
# unset realm
# set client-cert disable
# set cipher any
# set auth local
# next
# end
# end
NOTE Das Default SSL-VPN Portal wird in dem Abschnitt "Authentication/Portal Mapping" als letzte Position eingefügt und somit das in
diesem Abschnitt "top down first match wins" gilt dieses SSL-VPN Portal für alles das nicht evauluiert werden kann. Zusätzlich zur
Einschränkung der Source Adresse kann ein "realm" gesetzt werden. Diese Funktion ist jedoch per Standard deaktiviert und kann
folgendermassen im Web Mgmt. Interface aktiviert werden:
System > Config > Features > Show More > SSL-VPN Realms
Nach Aktivierung des Features steht die Funktion "Realms" unter folgender Position zur Verfügung:
VPN > SSL > Realms
Wie kann ich ein SSL-VPN Portal zu einem "realm", zu einer bestimmten Gruppe sowie zu einem bestimmten Interface zuweisen?
Diese Konfiguration ist unter FortiOS 5.0 nicht möglich und wird nur für FortiOS 5.2 unterstützt. Grundlage für diese Konfiguration ist folgendes Beispiel:
Gruppe 1 "ssl-vpn-group-1" soll WebPortal benutzen "ssl-vpn-portal-1" und nur von der Source "net-ssl-vpn-group-1" sowie realm "group-1" auf interface "wan1"
Gruppe 2 "ssl-vpn-group-2" soll WebPortal benutzen "ssl-vpn-portal-2" und nur von der Source "net-ssl-vpn-group-2" sowie realm "group-2" auf interface "wan2"
Somit müssen folgende Schritte durchgeführt werden um diese Konfiguration durchzuführen:
Schritt 1:
Konfiguriere die zwei benötigten Gruppen:
# config user group
# edit [Name der Gruppe "ssl-vpn-group-1"]
# set member [Name des/der User]
# end
# config user group
# edit [Name der Gruppe "ssl-vpn-group-2"]
# set member [Name des/der User]
# end
Schritt 2:
Konfiguriere die zwei benötigten SSL-VPN Portale:
# config vpn ssl web portal
# edit [Name des Web Portals zB "ssl-vpn-portal-1"]
# set tunnel-mode disable
# set ipv6-tunnel-mode disable
# set web-mode enable
# set cache-cleaner disable
# set host-check none
# set limit-user-logins enable
# set mac-addr-check disable
# set os-check disable
# set virtual-desktop disable
# set auto-prompt-mobile-user-download disable
# set display-bookmark enable
# set user-bookmark enable
# set config bookmark-group
# set edit "Intranet-Kategorie"
# set config bookmarks
# set edit "Intranet"
# set set description "Intranet Site"
# set set url "www.mydomain.intra"
# set end
# set display-connection-tools enable
# set display-forticlient-download disable
# set display-history enable
# set display-history-limit 10
# set display-status enable
# set heading "Welcome to mydomain.ch"
# set page-layout double-column
# unset redir-url
# set theme blue
# set custom-lang en
# end
# config vpn ssl web portal
# edit [Name des Web Portals zB "ssl-vpn-portal-2"]
# set tunnel-mode disable
# set ipv6-tunnel-mode disable
# set web-mode enable
# set cache-cleaner disable
# set host-check none
# set limit-user-logins enable
# set mac-addr-check disable
# set os-check disable
# set virtual-desktop disable
# set auto-prompt-mobile-user-download disable
# set display-bookmark enable
# set user-bookmark enable
# set config bookmark-group
# set edit "Intranet-Kategorie"
# set config bookmarks
# set edit "Intranet"
# set set description "Intranet Site"
# set set url "www.mydomain.intra"
# set end
# set display-connection-tools enable
# set display-forticlient-download disable
# set display-history enable
# set display-history-limit 10
# set display-status enable
# set heading "Welcome to mydomain.ch"
# set page-layout double-column
# unset redir-url
# set theme blue
# set custom-lang en
# end
Schritt 3:
Erstelle die nötigen 2 "realms"
NOTE Die Funktion "realm" ist per Standard auf dem Web Mgmt. Interface ausgeblendet kann jedoch aktiviert werden:
System > Config > Features > Show More > SSL-VPN Realms
Nach Aktivierung des Features steht die Funktion "Realms" unter folgender Position zur Verfügung:
VPN > SSL > Realms
# config vpn ssl web realm
# edit [Name des Realms zB "group-1"]
# set max-concurrent-user 100
# set login-page "<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
<title>
login
</title>
<meta http-equiv=\"Pragma\" content=\"no-cache\">
<meta http-equiv=\"cache-control\" content=\"no-cache\">
<meta http-equiv=\"cache-control\" content=\"must-revalidate\">
<link href=\"/sslvpn/css/login.css\" rel=\"stylesheet\" type=\"text/css\">
<script type=\"text/javascript\">
if (top && top.location != window.location) top.location = top.location;
if (window.opener && window.opener.top) {
window.opener.top.location = window.opener.top.location;
self.close();
}
</script>
</head>
<body class=\"main\">
<center>
<table width=\"100%\" height=\"100%\" align=\"center\" class=\"container\" valign=\"middle\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=middle>
<td>
<form action=\"%%SSL_ACT%%\" method=\"%%SSL_METHOD%%\" name=\"f\" autocomplete=\"off\">
<table class=\"list\" cellpadding=10 cellspacing=0 align=center width=400 height=180>
<tr class=\"dark\">
<td colspan=2>
<b>
<br>
WARNING: REALM 1
<br>
<p style=\"text-align:justify; margin-left:0px; margin-right:0px\">
You must have prior authorization to login to this system. All connections are logged and monitored. By login to this system you fully consent to all monitoring. Unauthorized login or use will be prosecuted to the full extent of the law. You have been warned! </p>
<br>
</b>
</td>
</tr>
%%SSL_LOGIN%%
<tr>
<td>
</td>
<td id=login>
<input type=button name=login_button id=login_button value=\"Login\" onClick=\"try_login()\" border=0>
</td>
</tr>
</table>
%%SSL_HIDDEN%%
</form>
</td>
</tr>
</table>
</center>
</body>
<script>
document.forms[0].username.focus();
</script>
</html>"
# end
# config vpn ssl web realm
# edit [Name des Realms zB "group-2"]
# set max-concurrent-user 100
# set login-page "<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
<title>
login
</title>
<meta http-equiv=\"Pragma\" content=\"no-cache\">
<meta http-equiv=\"cache-control\" content=\"no-cache\">
<meta http-equiv=\"cache-control\" content=\"must-revalidate\">
<link href=\"/sslvpn/css/login.css\" rel=\"stylesheet\" type=\"text/css\">
<script type=\"text/javascript\">
if (top && top.location != window.location) top.location = top.location;
if (window.opener && window.opener.top) {
window.opener.top.location = window.opener.top.location;
self.close();
}
</script>
</head>
<body class=\"main\">
<center>
<table width=\"100%\" height=\"100%\" align=\"center\" class=\"container\" valign=\"middle\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=middle>
<td>
<form action=\"%%SSL_ACT%%\" method=\"%%SSL_METHOD%%\" name=\"f\" autocomplete=\"off\">
<table class=\"list\" cellpadding=10 cellspacing=0 align=center width=400 height=180>
<tr class=\"dark\">
<td colspan=2>
<b>
<br>
WARNING: REALM 2
<br>
<p style=\"text-align:justify; margin-left:0px; margin-right:0px\">
You must have prior authorization to login to this system. All connections are logged and monitored. By login to this system you fully consent to all monitoring. Unauthorized login or use will be prosecuted to the full extent of the law. You have been warned! </p>
<br>
</b>
</td>
</tr>
%%SSL_LOGIN%%
<tr>
<td>
</td>
<td id=login>
<input type=button name=login_button id=login_button value=\"Login\" onClick=\"try_login()\" border=0>
</td>
</tr>
</table>
%%SSL_HIDDEN%%
</form>
</td>
</tr>
</table>
</center>
</body>
<script>
document.forms[0].username.focus();
</script>
</html>"
# end
Schritt 4:
Konfiguriere die IP-Pool Adressen für die jeweilige Gruppe:
# config firewall address
# edit [Name des IP-Pools zB "net-ssl-vpn-group-1"]
# set type ipmask
# set subnet [IP Range IP Pool für "net-ssl-vpn-group-1" zB "192.18.1.0/24"]
# end
# config firewall address
# edit [Name des IP-Pools zB "net-ssl-vpn-group-2"]
# set type ipmask
# set subnet [IP Range IP Pool für "net-ssl-vpn-group-2" zB "192.18.2.0/24"]
# end
Schritt 5:
Konfiguriere die SSL-VPN Settings:
# config vpn ssl settings
# set reqclientcert disable
# set sslv2 disable
# set sslv3 enable
# set tlsv1-0 enable
# set tlsv1-1 enable
# set tlsv1-2 enable
# set ssl-big-buffer disable
# set ssl-insert-empty-fragment enable
# set ssl-client-renegotiation disable
# set force-two-factor-auth disable
# set servercert self-sign
# set algorithm default
# set idle-timeout 1800
# set auth-timeout 28800
# set auto-tunnel-static-route disable
# set tunnel-ip-pools "[Gebe den entsprechenden IP Range für IP Pool an für den Tunnel Mode oder "unset"]"
# set dns-suffix mydomain1.local
# set dns-server1 [IPv4 Adresse für den DNS Server]
# set dns-server2 [IPv4 Adresse für den DNS Server]
# set wins-server1 0.0.0.0
# set wins-server2 0.0.0.0
# set route-source-interface disable
# set url-obscuration disable
# set http-compression disable
# set http-only-cookie enable
# set port 10443
# set port-precedence enable
# set auto-tunnel-static-route disable
# set source-interface "[Interface auf dem das SSL-VPN Portal zur Verfügug gestellt werden soll zB "wan1" "wan2"]"
# set source-address "all"
# set source-address-negate disable
# set source-address6 "all"
# set default-portal "[Name des Default SSL-VPN Portal]"
# config authentication-rule
# edit 1
# set source-interface [Interface ISP zB "wan1"]
# set source-address [net-ssl-vpn-group-1]
# set source-address-negate disable
# unset source-address6
# set source-address6-negate disable
# set groups "ssl-vpn-group-1"
# set portal "ssl-vpn-portal-1"
# set realm "group-1"
# set client-cert disable
# set cipher any
# set auth local
# next
# edit 2
# set source-interface [Interface ISP zB "wan2"]
# set source-address [net-ssl-vpn-group-2]
# set source-address-negate disable
# unset source-address6
# set source-address6-negate disable
# set groups "ssl-vpn-group-2"
# set portal "ssl-vpn-portal-2"
# set realm group-2
# set client-cert disable
# set cipher any
# set auth local
# next
# end
# end
NOTE Der Abschnitt "authentication-rule" überschreibt die globalen Settings für "config vpn ssl settings"!
Schritt 6:
Jetzt muss eine entsprechende Firewall Policy konfiguriert werden mit folgender Konfiguration:
Source Interface: ssl.root
Source Address: net-ssl-vpn-group-1
net-ssl-vpn-group-2
Source User(s): net-ssl-vpn-group-1
net-ssl-vpn-group-2
Outgoing Interface: [Name des internen Interface zB "internal"]
Destination Address: [Subnet/Address Objekt des internen Interfaces]
Schedule: always
Service: [Das/die entsprechende/n Service Objekte oder auch "ALL"]
Nun kann auf "wan1" verbunden werden anhand des "realms" und es wird das entsprechende SSL-VPN Portal "ssl-vpn-portal-1" zugewiesen sowie der entsprechende IP Pool "net-ssl-vpn-group-1". Ebenso muss mit einem User aus der Gruppe "net-ssl-vpn-group-1" ein Login durchgeführt werden. Das gleiche gilt Analog für "wan2" jedoch mit seperatem SSL-VPN Portal, IP-Pool sowie Gruppe.
Wieso funktioniert ab FortiOS 5 mein SSL-VPN auch ohne die IP Pool Route und/oder Policy zu implementieren?
Nun ab FortiOS 5.0 hat Fortinet zwei neue Optionen eingeführt dh. diese implementieren für SSL-VPN Funktion eine automatische Konfiguration in zwei Bereichen:
--> Routen den IP Pool automatisch auf das ssl.root Interface
--> Implementieren automatisch eine "Local In Policy" damit der Traffic von ssl.root auf Internal erlaubt wird (Gilt nicht für FortiOS 5.2)
Die zuständigen Optionen für die Automatisierung sind die folgenden:
# config vpn ssl settings
# set auto-tunnel-policy [enable | disable]
# set auto-tunnel-static-route [enable | disable]
# end
NOTE Die Option "auto-tunnel-policy" steht für FortiOS 5.2 nicht mehr zur Verfügung!
Bedeutet somit folgendes:
auto-tunnel-policy (Automatische Policy "source=ssl.root to destination=internal")
auto-tunnel-static-route (Automatische Route für den definierten IP-Pool)
Das Unschöne an der ganzen Sache ist folgende:
--> Ueber den Routing Monitor im Gui wird keine entsprechende Route angezeigt/gelistet!
--> In der Local In Policy wird kein entsprechender Eintrag angzeigt/gelistet für die Policy!
Wir empfehlen diese beiden Optionen zu deaktivieren und wie bis anhin die Implementierung gemäss nachfolgenden Artikel durchzuführen. Der Grund liegt in der Transparenz sowie Granularität dh. mehrere Gruppen, IP Pools, restriktive Rules etc.:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
Wie kann ich für das Active Directory (LDAP) eine Passwort Expyring/Renewal Nachricht für SSL-VPN konfigurieren?
Die Funktion des Active Directory Passwort Expyring/Renewal muss in der LDAP Konfiguration auf der Fortigate aktiviert werden (Per Standard deaktiviert). Für nähere Informationen siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_eine_Active_Directory_.28LDAP.29_Anbindung_ein_Passwort_Expyring_Renewal_Nachricht_konfigurieren.3F
Kann ich für ein SSL-VPN Portal innerhalb der "bookmarks" eine VIP (NAT) Adresse konfigurieren?
Wenn man ein SSL-VPN Portal erstellt und den Usern die das SSL-VPN Portal benützen ein "bookmark" (Link zu einem Server) zur Verfügung stellen möchte zB für einen WebServer kann keine VIP (NAT) Adresse benützt werden. Dies ist für folgende FortiOS nicht möglich:
FortiOS 4.x
FortiOS 5.0
FortiOS 5.2
Der Workaround ist relativ einfach dh. man definiert die real IP des Servers als "bookmark". Eine weitere Möglichkeit ist anstelle des Portal Modes den Tunnel Mode zu benutzen. Dabei ist jedoch folgendes zu beachten:
Ab FortiOS 5.2.2 kann ein VIP (NAT) Objekt nur dann in einer Firewall Policy Rule selektiert werden wenn für die definierte "Tunnel Mode"
Gruppe der User nicht zusätzlich der "Portal Mode" definiert wurde. Somit, wenn einer Gruppe "nur" der "Tunnel Mode" zugewiesen wurde ohne
"Portal Mode" kann in der entsprechenden Firewall Policy Rule für die entsprechende Gruppe für "Tunnel Mode" ein VIP (NAT) Objekt benutzt
werden!
Wie kann ich unter FortiOS 5.2 innerhalb des SSL-VPN Portal für das "connection tool" die verschiedenen Services FTP, RDP konfigurieren?
Ausgehend von FortiOS 5.0 war es möglich innerhalb eines SSL-VPN Portals (nicht "Tunnel Mode") die Services wie FTP, RDP usw. für das "connection tool" zu definieren. Durch diese Konfiguration wurde definiert welche Services im "connection tool" für das entsprechene SSL-VPN Portal dem entsprechenden User zur Verfügung gestellt wird. Dies wurde folgendermassen durchgeführt:
# config vpn ssl web portal
# edit [Name des entsprechenden SSL-VPN Portal Mode]
# set allow-access [Definiertr Global für die "bookmarks" die Services wie zB web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward]
# set heading [Definiert einen Header zB "Welcome to mydomain.ch"]
# set page-layout double-column
# set allow-user-bookmark [enable | disable]
# set mac-addr-check [enable | disable]
# set auto-prompt-mobile-user-download [enable | disable]
# set limit-user-logins [enable | disable]
# set host-check none
# set virtual-desktop [enable | disable]
# set os-check [enable | disable]
# set cache-cleaner [enable | disable]
# config widget
# edit 1
# set name "Session Information"
# set type info
# set column one
# set collapse disable
# next
# edit 3
# set name "Bookmarks"
# set type bookmark
# set column one
# set collapse disable
# set allow-apps web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward
# next
# edit 4
# set name "Connection Tool"
# set type tool
# set column two
# set collapse disable
# set allow-apps [Definiert die erlaubten Services im "connection tool" wie zB web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward]
# next
# edit 5
# set name "Login History"
# set type history
# set column one
# set collapse disable
# set display-limit 5
# next
# end
# end
Nun diese Möglichkeit der Definition der Service die zur Verfügung stehen sollen im "connection tool" existiert unter FortiOS 5.2 nicht mehr. Dabei stellt sich die Frage wie denn dies zu Konfigurieren ist? Die Lösung ist denkbar einfach dh. die Konfiguration der Services für das "connection tool" wird innerhalb des Firewall Policy Rule durchgeführt für die entsprechende SSL-VPN Portal Mode Firewall Policy Rule. Dies bedeutet: Für den Service innerhalb der Firewall Policy Rule für SSL-VPN Portal Mode wird der entsprechende Service definiert wie zB FTP, RDP, SMP usw. Eine Definition über "config vpn ssl web portal" steht unter FortiOS 5.2 nicht mehr zur Verfügung.
Wie kann ich ein Timeout für SSL-VPN Verbindungen konfigurieren?
Es kann anhand nachfolgenden Kommandos ein Timeout für SSL-VPN Verbindungen resp. User konfiguriert werden. Dies bedeutet: Wenn ein User länger verbunden ist sprich "idle" als dieses Timeout wird er durch das System automatisch (forced) ausgeloggt. Um die Konfiguration durchzuführen führe folgendes unter der CLI durch:
# config vpn ssl settings
# set auth-timeout [Sekunden zB 18000]
# end
NOTE Mögliche Werte für das Timeout sind "0" bis "259 200" Sekunden (3 Tage). Wenn das Timeout auf "0" gesetzt wird
so wird das Timeout komplett deaktiviert!
Diese Konfiguration sollte nicht verwechselt werden mit dem "idle-timeout". Dies bedeutet das "idle-timeout" stellt den Wert dar für das Timeout wenn der Client das Portal nicht benutzt und somit in das "idle-timeout" läuft. Um dieses "idle-timeout" unter der CLI zu setzen benütze folgendes Kommando:
# config vpn ssl settings
# set idle-timeout [Sekunden zB 300]
# end
NOTE Mögliche Werte für das Timeout sind "0" bis "259 200" Sekunden (3 Tage). Wenn das Timeout auf "0" gesetzt wird
so wird das Timeout komplett deaktiviert! Es ist empfehlenswert das "idle-timeout" möglichst tief zu halten. Per Standard
ist dieses auf 300 Sekunden (5 Minuten) gesetzt!
Gibt es für IOS und Android einen SSL VPN Client?
Die beiden offiziellen Apps von Fortinet für IPhone und Android unterstützen in der 5.0 Version ausschliesslich das Browsen dh. wenn man verbunden ist mit dem APP kann der aufgebaute VPN Tunnel nur für das Browsen benutzt werden deshalb wird dieser Client auch "SSL proxy VPN connection agent" genannt. Neu unter FortiOS 5.2 unterstützt - im Gegensatz zu IOS - Android ebenfalls eine IPSec Verbindung (siehe 5.2 User Guide). Will man eine klassische IPSec Verbindung anhand eines IOS Gerätes durchführen so ist das mit dem Cisco Client (Unity Client) möglich sowie mit der eingebauten VPN Funktion eines IPhones. Nachfolgende Links geben Auskunft wie so eine Verbindung zu konfigurieren ist:
NOTE Für die Konfiguration eines IOS Devices anhand des "build-in" Cisco Client's siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Gibt_es_eine_M.C3.B6glichkeit_mit_einem_IPhone.2FIPad_.C3.BCber_IPSec_eine_Verbindung_aufzubauen_zu_einer_Fortigate.3F
Für Android:
https://play.google.com/store/apps/details?id=com.fortinet.forticlient
http://www.fortinet.com/resource_center/product_downloads.html
FortiOS 5.0
Datei:FortiClient-v5.0.1-Android-Release-Notes.pdf
Datei:FortiClient-v5.0.2-Android-Release-Notes.pdf
Datei:FortiClient-v5.0.3-Android-Release-Notes.pdf
Datei:Forticlient-android-user-guide.pdf
Datei:Connecting-an-Android-to-a-FortiGate-with-SSL-VPN.pdf
FortiOS 5.2
Datei:FortiClient-v5.2.0-Android-Release-Notes.pdf
Datei:FortiClient-v5.2.1-Android-Release-Notes.pdf
Datei:FortiClient-v5.2.2-Android-Release-Notes.pdf
Datei:FortiClient-v5.2.3-Android-Release-Notes.pdf
Datei:FortiClient-v5.2.6-Android-Release-Notes.pdf
Datei:FortiClient-vpn-v5.2.2-Android-Release-Notes.pdf
Datei:FortiClient-vpn-v5.2.1-Android-Release-Notes.pdf
Datei:FortiClient-vpn-v5.2.3-Android-Release-Notes.pdf
Datei:FortiClient-vpn-v5.2.6-Android-Release-Notes.pdf
Datei:Forticlient-android-user-guide-52.pdf
Datei:Forticlient-android-user-guide-524.pdf
Datei:Forticlient-android-user-guide-526.pdf
Für IOS:
http://itunes.apple.com/us/app/fortimobile-ssl-vpn/id345361028?mt=8
http://www.fortinet.com/resource_center/product_downloads.html
FortiOS 5.0
Datei:FortiClient-v5.0-Patch-Release-1-iOS-Release-Notes.pdf
Datei:FortiClient-v5.0-Patch-Release-2-iOS-Release-Notes.pdf
Datei:FortiClient-v5.0-Patch-Release-3-iOS-Release-Notes.pdf
Datei:Forticlient-v5-ios-quickstart.pdf
FortiOS 5.2
Datei:Forticlient-v5.2.0-ios-release-notes.pdf
Datei:Forticlient-ios-user-guide-52.pdf
Wie kann ich auf einer FortiGate das SSL-VPN Package unter FortiGuard "up-to-date" bringen?
Auf einer FortiGate unter nachfolgender Position wird ein SSL-VPN Package zur Verfügung gestellt. Dieses Package kann manuell auf den neusten Stand gebracht werden:
System -> Settings -> FortiGuard -> Package Information SSL-VPN
Wenn man dieses Package "up-to-date" bringen möchte kann man von der Support Site von Fortinet das entsprechende Package runterladen:
https://support.fortinet.com/Download/FirmwareImages.aspx
Im entsprechenden Verzeichnis dh. zB "/FortiGate/v5.00/5.2/5.2.4/VPN/SSLVPNTools/" kann das entsprechende Package runtergeladen werden sowie über die vorhergehende Position raufgeladen werden. Dabei ist zu beachten, das nur entweder ein 32bit oder ein 64bit Package raufgeladen werden kann. Das Packgage das raufgeladen wird, wird in das folgende Verzeichnis kopiert:
# fnsysctl ls -l /var/log/package_cache/
-rw-r--r-- 1 0 0 Mon Jun 1 14:46:12 2015 1125 sslvpn_version.h
-rw-r--r-- 1 0 0 Mon Jun 1 14:46:11 2015 2906511 sslvpnclient.tar.gz
Das Package das Standard existiert ist ein 64bit Package. Das File "sslvpn_version.h" kann mit folgenden Befehl eingesehen werden:
# fnsysctl more /var/log/package_cache/sslvpn_version.h
Wenn zB das Package "sslvpnclient64pkg_4.4.2317.tar.gz" raufgeladen wird so sieht man nach einer Kontrolle nicht den Namen dieses Package sondern wiederum:
# fnsysctl ls -l /var/log/package_cache/
-rw-r--r-- 1 0 0 Thu Aug 13 15:49:12 2015 1125 sslvpn_version.h
-rw-r--r-- 1 0 0 Thu Aug 13 15:49:11 2015 2981238 sslvpnclient.tar.gz
Wenn das File "sslvpn_version.h" mit dem nachfolgenden Befehl kontrolliert wird, gibt dieses die neue Version aus:
# fnsysctl more /var/log/package_cache/sslvpn_version.h
--------------- output sslvpn_version.h ---------------
// version.h
//
// This file should be generated or updated by the build script
//
// All the project resource files should include this file rather than
// hardcode the version number
//
#define SSLVPN_MAJOR_RELEASE_NUM 4
#define SSLVPN_MINOR_RELEASE_NUM 0
#define SSLVPN_BUILD_NUM 2317
//
#define SSLVPN_MAJOR_RELEASE "4"
#define SSLVPN_MINOR_RELEASE "0"
#define SSLVPN_BUILD "2317"
//
#define SSLVPN_COMPANY_NAME_ID "Fortinet"
#define SSLVPN_COMPANY_NAME "Fortinet Inc."
#define SSLVPN_LEGAL_COPYRIGHT "2004 - 2014 Fortinet Inc. All rights reserved."
#define SSLVPN_LEGAL_COPYRIGHT_VALUE 2004 - 2014 Fortinet Inc. All rights reserved.
//
#define SSLVPN_VERSION_2PARTS SSLVPN_MAJOR_RELEASE "." SSLVPN_MINOR_RELEASE
#define SSLVPN_VERSION_3PARTS SSLVPN_MAJOR_RELEASE "." SSLVPN_MINOR_RELEASE "." SSLVPN_BUILD
#define SSLVPN_VERSION_4PARTS SSLVPN_MAJOR_RELEASE "." SSLVPN_MINOR_RELEASE "." SSLVPN_BUILD ".0"
//
#define SSLVPN_VERSION SSLVPN_VERSION_3PARTS
#define SSLVPN_TXT_VERSION SSLVPN_MAJOR_RELEASE"."\
SSLVPN_MINOR_RELEASE"."\
SSLVPN_BUILD
--------------- output sslvpn_version.h ---------------
Wenn ein Cluster betrieben wird und das entsprechende File über den Master raufgeladen wird so wird diese nicht automatisch zum Slave transferiert dh. es muss manuell auf dem Slave ebenfalls eingespielt werden.
Wie installiere ich für FortiClient für iOS (Apple) ein Zertifikat auf den entsprechenden Device?
Das nachfolgenden Dokument gibt Auskunft wie ein Zertifikat zu erstellen ist auf einer FortiGate und dieses auf einem iOS (Apple) Device installiert wird:
Datei:Provision-certificates-to-ios-devices-technical-note.pdf
Desweiteren stehen und den Dokumentationen weitere Dokumente zur Verfügung:
FortiGate-5.0-5.2:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F
Kann ich den SSL Traffic betreffend encryption/decryption optimieren und beschleunigen?
Dies ist unter Umständen möglich (Ab FortiOS 5.0.3)! Eine FortiGate führt per Standard die Encryption/Decryption (Entschlüsselung/Verschlüsselung) andhand der CP7 oder CP8 FortiASIC Prozessoren durch. Wenn die FortiGate einer hohen Belastung ausgesetzt ist dh. durch eine hohe Anzahl von SSL Traffic und die eingesetzte FortiGate über mehr als 4 CPU's verfügt, kann die SSL Encryption/Decryption Optimiert werden. Dies geschieht indem der FortiGate mitgeteilt wird "WIE" der SSL Traffic zum CPU gesendet werden soll sprich wieviele "worker" bereitgestellt werden. Bei "worker" handelt es sich effektiv um Prozessoren. Um festzustellen über wieviele CPU's die eingesetzte FortiGate verfügt benütze folgende Befehl:
# get hardware cpu
Wenn die FortiGate über mehr als 4 CPU's verfügt können die entsprechenden "worker" (CPU) die für die SSL Verarbeitung benützt werden sollen konfiguriert werden:
# config system global
# set optimize-ssl [enable oder disable]
# set ssl-worker-count [Anzahl der "worker" (CPU)]
# end
NOTE Wenn die Anzahl der "worker" (CPU) erhöht wird sollte das System zu Beginn übewacht
werden um festzustellen ob die Anzahl der "worker" andere Funktionen auf dem System
nicht beeinträchtigen!
Wie kann ich den SSL Traffic betreffend Security zB TLS 1.0, SSLv2 konfigurieren und absichern?
Wenn man mit einem SSL-VPN Portal resp. Tunnel Mode arbeitet sind die folgenden Einstellungen relevant um den SSL-VPN Traffic auf bestimmte Versionen von TLS und/oder SSL zu beeinflussen:
sslv2 : disable
sslv3 : enable
tlsv1-0 : enable
tlsv1-1 : enable
tlsv1-2 : enable
algorithm : default
Diese Einstellungen stellen den Standard dar. Wenn man eine Uebersicht erlangen möchte was dies genau bedeutet und welche "cipher" aktiv sind durch "algorithm" kann dies anhand eines Scripts überprüft werden. Erstelle auf einem Linux ein File "cipherscan" und fülle es mit dem Inhalt der Datei "Cipherscan.txt" ab:
# mkdir /opt/scripts
# vi /opt/scripts/cipherscan
# chown root:root /opt/scripts/cipherscan
# chmod 700 /opt/scripts/cipherscan
Datei:Cipherscan.txt NOTE Weitere Scripte auf für Windows und Anweisung siehe Link https://github.com/jvehent/cipherscan. Eine andere Möglichkeit einen Scan durchzuführen ist folgender Link zu benutzen: https://www.ssllabs.com/ssltest/
Nun führe den Scan aus und berücksichtige das die IP sowie der Port der benutzt wird im Kommando Analog für das SSL-VPN Portal Zugriff benutzt wird sowie im Allgemeinen der Zugriff vom Linux Server erlaubt wird:
# /opt/scripts/cipherscan 198.18.0.1:443
custom openssl not executable, falling back to system one from /bin/openssl
...............................
Target: 198.18.0.1:443
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
2 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
3 ECDHE-RSA-AES256-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
4 DHE-RSA-AES256-GCM-SHA384 TLSv1.2 DH,1024bits None
5 DHE-RSA-AES256-SHA256 TLSv1.2 DH,1024bits None
6 DHE-RSA-AES256-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 DH,1024bits None
7 DHE-RSA-CAMELLIA256-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 DH,1024bits None
8 AES256-GCM-SHA384 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES256-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
11 CAMELLIA256-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
12 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
13 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
14 ECDHE-RSA-AES128-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
15 DHE-RSA-AES128-GCM-SHA256 TLSv1.2 DH,1024bits None
16 DHE-RSA-AES128-SHA256 TLSv1.2 DH,1024bits None
17 DHE-RSA-AES128-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 DH,1024bits None
18 DHE-RSA-CAMELLIA128-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 DH,1024bits None
19 AES128-GCM-SHA256 TLSv1.2 None None
20 AES128-SHA256 TLSv1.2 None None
21 AES128-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
22 CAMELLIA128-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
23 DHE-RSA-SEED-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 DH,1024bits None
24 SEED-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
25 ECDHE-RSA-RC4-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
26 RC4-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
27 RC4-MD5 SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
28 ECDHE-RSA-DES-CBC3-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
29 EDH-RSA-DES-CBC3-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 DH,1024bits None
30 DES-CBC3-SHA SSLv3,TLSv1,TLSv1.1,TLSv1.2 None None
Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 300
OCSP stapling: not supported
Cipher ordering: server
Bei diesem "output" sieht man schön welche "cipher" erlaubt werden wie zB "RC4" das als unsicher gilt. Ebenso sieht man welche TLS und/oder SSL Versionen aktiviert und somit benutzt werden können. Die nachfolgenden Befehle deaktivieren verschiedene TLS und/oder SSL Versionen. Dabei ist jedoch zu berücksichtigen das die Kompatibilität sinkt dh. ältere Browser etc. können danach nicht mehr zugreifen weil diese zB TLSv1.2 "noch nicht" unterstützen. Deshalb ist zu bedenken wie weit man dies einschränken möchte. Die verschiedenen zur Verfügung stehenden "cipher" werden über die Option "algorithm" gesteuert dh. über "default, high und low". Um möglichst eine "high" Encryption Algorithmus zu erlauben sowie nur TLSv1.2 kann folgendes ausgeführt werden:
# config vpn ssl settings
# set tlsv1-0 disable
# set tlsv1-1 disable
# set sslv3 disable
# set algorithm high
# end
NOTE Diese Einstellungen sind nur zu benutzen in einem kontrollierten Umfeld dh. wie schon erwähnt sinkt die Kompatibilität
betreffend Zugriff dh. ältere Browser oder Browser die KEINE TLSv1.2 unterstützen sowie die nachfolgenden "cipher"
können keine Verbindung mehr aufbauen!
Nach der Konfiguration der Optionen kann wiederum ein Test ausgeführt werden der zeigen soll was noch zur Verfügung steht:
# /opt/scripts/cipherscan 198.18.0.1:443
custom openssl not executable, falling back to system one from /bin/openssl
..........................
Target: 198.18.0.1:443
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,secp384r1,384bits secp384r1
2 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,secp384r1,384bits secp384r1
3 ECDHE-RSA-AES256-SHA TLSv1.2 ECDH,secp384r1,384bits secp384r1
4 DHE-RSA-AES256-GCM-SHA384 TLSv1.2 DH,1024bits None
5 DHE-RSA-AES256-SHA256 TLSv1.2 DH,1024bits None
6 DHE-RSA-AES256-SHA TLSv1.2 DH,1024bits None
7 DHE-RSA-CAMELLIA256-SHA TLSv1.2 DH,1024bits None
8 AES256-GCM-SHA384 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES256-SHA TLSv1.2 None None
11 CAMELLIA256-SHA TLSv1.2 None None
12 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,secp384r1,384bits secp384r1
13 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,secp384r1,384bits secp384r1
14 ECDHE-RSA-AES128-SHA TLSv1.2 ECDH,secp384r1,384bits secp384r1
15 DHE-RSA-AES128-GCM-SHA256 TLSv1.2 DH,1024bits None
16 DHE-RSA-AES128-SHA256 TLSv1.2 DH,1024bits None
17 DHE-RSA-AES128-SHA TLSv1.2 DH,1024bits None
18 DHE-RSA-CAMELLIA128-SHA TLSv1.2 DH,1024bits None
19 AES128-GCM-SHA256 TLSv1.2 None None
20 AES128-SHA256 TLSv1.2 None None
21 AES128-SHA TLSv1.2 None None
22 CAMELLIA128-SHA TLSv1.2 None None
23 ECDHE-RSA-DES-CBC3-SHA TLSv1.2 ECDH,secp384r1,384bits secp384r1
24 EDH-RSA-DES-CBC3-SHA TLSv1.2 DH,1024bits None
25 DES-CBC3-SHA TLSv1.2 None None
Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 300
OCSP stapling: not supported
Cipher ordering: server
NOTE Wie man sieht arbeitet "Diffie Hellmann" dh. DH mit 1024bit. Möchte man mit einer höheren Bit Anzahl arbeiten steht folgendes
Kommando zur Verfügung:
# config firewall ssl settings
# set ssl-dh-bits [1024 | 1536 | 2048 | 768]
# end
Wenn man den VDOM Mode aktiviert hat steht dieser Parameter unter "config global" zur Verfügung!
Wie man sieht wird die Konfiguration "quotiert" dh. es steht nur noch TLSv1.2 zur Verfügung und die unsicheren "cipher" stehen nicht mehr zur Verfügung. Um zu bestätigen, dass die unsicheren "cipher" wie zB "RC4" nicht mehr zur Verfügung stehen kann anhand "openssl" das auf jedem Linux System vorhanden ist folgender Test mit dem Client Teil ausgeführt werden:
# openssl s_client -connect 198.18.0.1:443 -cipher "RC4"
CONNECTED(00000003)
140687385839520:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:744:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 73 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
NOTE Eine andere Variante dh. alle "RC4" "ciphers" zu durchsuchen und festzustellen ob anhand diesen eine Verbindung
zustande kommt wäre folgender Befehl der auf den meisten Linux Derivaten funktionieren sollte:
# for i in `openssl ciphers -v 'RC4' | awk '{print $1}'`; do echo -ne "$i\t" ; echo | openssl s_client -connect [FQDN des Hosts oder IPv4]:443 -cipher "$i" 2>&1 | grep New; done
ECDHE-RSA-RC4-SHA New, (NONE), Cipher is (NONE)
ECDHE-ECDSA-RC4-SHA New, (NONE), Cipher is (NONE)
AECDH-RC4-SHA New, (NONE), Cipher is (NONE)
ADH-RC4-MD5 New, (NONE), Cipher is (NONE)
ECDH-RSA-RC4-SHA New, (NONE), Cipher is (NONE)
ECDH-ECDSA-RC4-SHA New, (NONE), Cipher is (NONE)
RC4-SHA New, (NONE), Cipher is (NONE)
RC4-MD5 New, (NONE), Cipher is (NONE)
Wie man sieht die Verbindung kommt nicht zustande dh. "handshake failure". Die relevante Position ist "New, (NONE), Cipher is (NONE)". Wie gesagt "Security" technisch gesehen ist die Konfiguration korrekt jedoch die Kompatibilität leidet.
Welche IP wird benutzt für das SSL-VPN Portal und kann ich diese manipulieren?
Grundsätzlich hört ein SSL-VPN Portal auf "alle" IP's die auf dem Interface konfiguriert sind (FortiOS 5.0). Bedeutet: hätte man ein externes Interface mit einer "public IP" in einem Range zB 193.193.135.66/29 hört das SSL-VPN Portal auf die IP "193.193.135.66/29". Möchte man nun zB die IP "193.193.135.67/29" benutzen konfiguriert man diese IP als "Secondary IP" zusätzlich zur IP "193.193.135.66/29". Wenn die IP "193.193.135.66/29" jedoch nicht für den Zugang für das SSL-VPN Portal benutzt werden soll kann dies über eine manuelle "Local-In Policy" verhindert werden da diese vor der regulären Policy abgearbeitet wird. Das Gleiche gilt für alle anderen Interfaces dh. das SSL-VPN Portal ist unter FortiOS 5.0 per Standard auf allen Interface's erreichbar. Soll dies verhindert werden, kann dies über eine manuelle "Local-In Policy" verhindert/konfiguriert werden. Nähere Informationen zu der Erstellung einer "Local-In Policy" siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F
Wenn für den "interne" Request eine andere IP benutzt werden soll so kann dies mit einer entsprechenden NAT Rule/Implementierung gewährleistet werden. Nähere Informationen betreffend NAT Rule/Implementierung siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_wird_ein_Source.2FDestination_NAT_auf_einer_Fortigate_implementiert.3F NOTE Unter der global SSL-VPN Konfiguration stehen desweiteren folgende Optionen zur Verfügung: # config vpn ssl settings # set route-source-interface [enable | disable] # set source-interface [enable | disable] # end
Wenn VDom's aktiviert wurden und eine zusätzlcihe VDom zur "root" VDom über einen "inter-vdom" Link verbunden ist so komuniziert der über's SSL-VPN Portal eingeloggt User über das Interface des "inter-vdom" Link's auf der "root" VDom Seite:
______________________ _______________________
193.193.135.66/29| | Interface-root-vdom interface-vdom1-vdom | |
----- WAN 1 -----| Fortigate vdom-root |------------------------- inter-vdom-link -------------------------| Fortigate vdom-vdom1 |
|______________________| |_______________________|
NOTE Die Erklärung dazu ist das das "Interface-root-vdom" Interface als WAN Interface gilt für die
VDom "vdom1"!
Kann ich für SSL-VPN ein "Custome Language File" erstellen/konfigurieren?
Auf einer FortiGate ist das Web Mgmt. Gui und andere Gui's auf Englisch. Unter der folgende Position können andere Sprachen gewählt werden:
System > Admin > Settings > View Settings > Language > [English | French | Spanish | Portuguese | Japanese | Tradional Chinese | Simplified Chinese | Korean]
Andere Sprachen wie Deutsch stehen nicht zur Verfügung. Ab FortiOS 5.2 ist es jedoch möglich für folgende Funktion ein eigenes "Sprachefile" anzulegen (Custome Language File):
• SSL VPN Portal
• SSL VPN Personal Bookmarks
• Guest Management Admin Accounts (Guest Access Provisioning)
NOTE Weitere Informationen betreffend "Guest Access Provisioning" siehe nachfolgender Artikel:
FortiAP:FAQ#Wie_implementiere_ich_ein_.22Wireless_Guest_Access_Provisioning.22.3F
FortiAP:FAQ#Wie_implementiere_ich_ein_.22Wireless_Guest_Access_Provisioning.22_.28Guest_Management.29_ein_.22Custome_Language_File.22.3F
Wenn für das SSL-VPN Portal sowie User Settings ein eigenes "Sprachfile" erstellt werden soll muss folgendermassen vorgegangen werden:
# config system global
# set gui-custom-language enable
# end
Durch die Aktivierung von "gui-custom-language" wird ein zusätzlicher Menüpunkt auf dem Web. Mgmt. Interface auf der Fortiate
aktiviert:
System > Config > Advanced > Language
Datei:Fortinet-1285.jpg
Unter der Position "Download Sample Language Template" kann eine Vorlage runtergeladen werden, die herangezogen werden kann um
das "Sprachfile" zu erstellen. Nachfolgend ein Beispiel dieses "Sample Language Template":
Datei:Sample-language-template.txt
Nachdem das "Sprachfile" modifiziert wurde kann es unter folgender Position wieder raufgeladen werden:
System > Config > Advanced > Language > Create New
Datei:Fortinet-1286.jpg
Danach kann das entsprechende File raufgeladen werden:
Datei:Fortinet-1287.jpg
Damit das entsprechende File benutzt wird in der Funktion muss dies unter Kommandozeil und/oder über Web Mgmt. Interface
konfiguriert werden:
VPN > SSL > Portals > [Wähle das entsprechende Portal] > Page Layout > [Wähle das entsprechende "Sprachfile"]
Datei:Fortinet-1288.jpg
# config vpn ssl web portal
# edit [Wähle das entsprechende Portal]
# set web-mode enable
# set custom-lang [Wähle das entsprechende "Sprachfile"]
# end
# end
Um das "Sprachfile" betreffend "SSL VPN Personal Bookmarks" basierend zu konfigurieren muss folgendes durchgeführt werden:
# config vpn ssl web user-bookmark
# edit [Wähle einen entsprechenden Namen]
# set custom-lang [Wähle das entsprechende "Sprachfile"]
# end
# end
NOTE Die Funktion "SSL VPN Personal Bookmarks" ist eine Zusatzfunktion und wird per Standard nicht über das
Web Mgmt. Interface angezeigt dh. dieses Feature kann über folgende Position aktiviert werden:
System > Config > Feature > Show More > SSL-VPN Personal Bookmark Management
Wie kann ich für die SSL-VPN Funktion eine Statistik betreffend Memory, Verbindungen, Max User anzeigen lassen?
Eine SSL-VPN Statistik kann über Kommandozeile und über folgenden Befehl aufgelistet werden:
# diagnose vpn ssl statistics
SSLVPN statistics (root):
------------------
Memory unit: 1
System total memory: 1928445952
System free memory: 1473814528
SSLVPN memory margin: 314572800
SSLVPN state: normal
Max number of users: 0
Max number of tunnels: 0
Max number of connections: 0
Current number of users: 0
Current number of tunnels: 0
Current number of connections: 0
Bei dieser Statistik ist folgendes zu berücksichtigen: Wenn der "SSLVPN state" von "normal" auf "busy" wechselt, geht/befindet sich der SSL-VPN Deamon im Conserve Mode. Oft ist der "busy" Status zurückzuführen auf zuwenig Memory, dass für den Deamon zur Verfügung steht. Wenn der SSL-VPN Deamon im Conserve Mode ist, heisst dies nicht das sich die FortiGate im Conserve Mode befindet. Die Ursache wieso der SSL-VPN Deamon sich im Conserve Mode befindet sollte untersucht werden, da dies geschieht/ausgeführt wird um nicht die ganze FortiGate zu beeinträchtigen. Somit ist der Conserve Mode des SSL-VPN Deamons nicht gleich Conserve Mode der FortiGate!
Wie kann ich den SSL-VPN Deamon bei Problemen neu starten?
Eine Variante den SSL-VPN Deamon bei und/oder nach Problemen neu zu starten, ist durch die PID (Process ID) und anhand des "kill" Befehls den Deamon zu zwingen einen Neustart auszuführen. Damit dies durchgeführt werden kann, muss zuerst die PID (Prozess ID) eruiert werden. Dies kann durch folgenden Befehl durchgeführt werden:
# diagnose sys top 5 20
NOTE Weitere Informationen dazu siehe nachfolgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_rausfinden_was_ein_High_CPU_verursacht_und_was_kann_ich_dagegen_tun.3F
Eine andere Variante die Prozess ID (PID) zu eruieren ist über den folgenden Befehl:
# fnsysctl ls -l /var/run/
NOTE In diesem Verzeichnis befinden sich sämtliche Deamon Prozesse. Für SSL-VPN ist der folgende zuständig:
sslvpnd.pid
Um nun die PID des Files zu eruieren benütze folgenden Befehl:
# fnsysctl more /var/run/sslvpnd.pid
75
Wenn die Prozess ID (PID) eruiert wurde kann der Deamon mit folgenden Befehl neu gestartet werden:
# diagnose sys kill [Kill Level/Sequenz 1 - 32 wobei 11 den Prozess stopp und neu startet] [PID des Prozesses zB. "75"]
Wie kann ich für ein SSL-VPN (Web Mode/Tunnel Mode) ein Registry Check konfigurieren (Host Check)?
Mit einem SSL-VPN Portal/Tunnel Mode ist es möglich einen sogenannten "Registry Check" (Host Check) auszuführen dh. wenn der User zB den Browser öffnet und auf das Web Portal (Web Mode) über FQDN und/oder IP zugreift sowie einloggt, wird im Hintergrund ein sogenannter "Host Check" ausgeführt. Soll ein Login in das SSL-VPN Web Portal nur dann ermöglicht werden, wenn ein bestimmter "Registry Eintrag" existiert, kann dies über die Funktion "Registry Check" durchgeführt/konfiguriert werden. Das Gleiche gilt für den SSL-VPN Tunnel Mode was wiederum bedeutet: Versucht sich ein User über SSL-VPN Tunnel Mode einzloggen, wird das Einloggen nur dann erlaubt wenn ein bestimmter "Registry Eintrag" existiert. Dies erlaubt zu unterscheiden, ob ein Zugriff über einen bestimmten Device erlaubt ist wie zB der Zugriff über einen Device im "Internet Café" soll verhindert werden und der Zugriff über einen "Geschäfts Laptop" soll erlaubt werden. Damit dieser "Registry Check" im SSL-VPN Web/Tunnel Mode durchgeführt werden kann, muss der SSL-VPN Client auf dem Device von dem auf den SSL-VPN Web/Tunnel Mode zugegriffen werden soll installiert werden dh. als:
- FortiClient SSL-VPN
- SSL-VPN Client ActiveX
- SSL-VPN Client Java Mode
Da der FortiClient/SSL-VPN Client im SSL-VPN Web/Tunnel Mode "immer" als Administrator installiert werden muss, sind die Voraussetzungen gegeben um den entsprechenden "Host Check" auszuführen (Zugriff auf Registry). Um die Konfiguration durchzuführen für den "Web/Tunnel" Mode muss folgendes konfiguriert werden:
Definition des entsprechenden Registry Checks
# config vpn ssl web host-check-software
# edit [Name für den Registry Check]
# config check-item-list
# edit [Gebe einen entsprechenden Integer an zB "1"]
# set target [Gebe den entsprechenden Registry Key an zB "HKLM\\SOFTWARE\\Something\\Example"]
# set type registry
# next
# end
# next
# end
Angabe des entsprechenden Web Portal sowie Aktivierung des Registry Checks
# config vpn ssl web portal
# edit [Name des entsprechenden Web/Tunnel Mode]
# set host-check custom
# set host-check-policy [Name des Registry Check vergeben für "host-check-software"]
# next
# end
Wenn ein Client versucht eine Authentifizierung für den entsprechenden Mode SSL-VPN Web/Tunnel Mode auszuführen wird wenn der "Registry Eintrag" nicht existiert folgendes angzeigt:
SSL-VPN Tunnel Mode
Datei:Fortinet-1371.jpg
SSL-VPN Web Mode
Datei:Fortinet-1372.jpg
NOTE Wird im Web Mode kein entsprechender SSL-VPN Client vorinstalliert so erscheint im Browser folgende Nachricht
um auf diesen Umstand hinzuweisen:
If you see the yellow warning bar that the hostcheck ActiveX control is not installed or need permission to run, please click on it
to install or run it. Alternatively, if you do not want to install or run the ActiveX control, the host checking function can be
performed by a Java applet.
Wie kann ich für ein SSL-VPN (Web Mode/Tunnel Mode) ein "Windows OS Check" konfigurieren (OS Check)?
Für ein SSL-VPN Web Mode/Tunnel Mode ist es möglich betreffend Windows Version einen sogenannten "OS Check" durchzuführen. Dies bedeutet: Greift der User mit einem Client zu, wird im Hintergrund überprüft ob der User ein bestimmtens OS installiert hat und über einen bestimmten Patch Level verfügt. Beim Patch Level wird angegeben über welchen Patch Level er im "minimum" verfügt. Ist der "OS Check" nicht erfolgreich wird der Zugriff resp. Login nicht erlaubt. Damit dieser "OS Check" im SSL-VPN Web/Tunnel Mode durchgeführt werden kann, muss der SSL-VPN Client auf dem Device von dem auf den SSL-VPN Web/Tunnel Mode zugegriffen werden soll installiert werden dh. als:
- FortiClient SSL-VPN
- SSL-VPN Client ActiveX
- SSL-VPN Client Java Mode
Ein "Windows OS Check" wird folgendermassen konfiguriert:
# config vpn ssl web portal
# edit [Name des entsprechenden Portals im Web Mode/Tunnel Mode]
# set os-check [enable | disable]
# config os-check-list [windows-7 | windows-8 | windows-8.1 | windows-2000 | windows-vista | windows-xp]
# set action [check-up-to-date | deny | allow]
# set latest-patch-level [1 - 255]
# set tolerance 1
# end
# end
NOTE Wird die "action" auf "allow" gesetzt muss kein entsprechender Patch Level definiert werden da nur kontrolliert wird
ob der Client über das definierte "OS" verfügt. Möchte man ein Patch Level überprüfen muss die Option "check-up-to-date"
gesetzt werden! Wird "check-up-to-date" gesetzt wird mit dem entsprechenden "latest-patch-level" so steht die Definition
"tolerance" im direkten Zusammenhang mit "latest-patch-level". Dies bedeutet die "tolerance" definiert -1 für die Definition
"latest-patch-level". Die Option kann variert werden dh. möchte man zB "windows-7" im "latest-patch-level" mit einer
"tolerance 1" erlauben jedoch "windows-xp" nicht würde man folgendes konfigurieren:
# config vpn ssl web portal
# edit [Name des entsprechenden Portals im Web Mode/Tunnel Mode]
# set os-check enable
# config os-check-list windows-7
# set action check-up-to-date
# set latest-patch-level 2
# set tolerance 1
# end
# config os-check-list windows-xp
# set action deny
# end
# end
Grundsätzlich ist zu bedenken, dass die Informationen die im Hintergrund durch die FortiGate benutzt werden um das OS zu überprüfen statisch sind dh. wenn Microsoft einen Patch lanciert der diese Ueberprüfung des OS beeinflusst kann es zu Problemen kommen dh. FortiGate muss dann die neuen Informationen wieder in die Ueberprüfung einfliessen lassen. Aus diesem Grund sollte auch die Definition des Patch Levels nicht zu eng gesetzt werden und der OS Check für eine grössere Sicherheit event. mit dem "Host Check" kombiniert werden. Dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_SSL-VPN_.28Web_Mode.2FTunnel_Mode.29_ein_Registry_Check_konfigurieren_.28Host_Check.29.3F
Wie starte/stoppe ich den FortiSSLVPNclient auf auf einer Workstation auf der Kommandozeile?
Wenn ein "FortiSSLVPNclient" auf einer Workstation installiert wird (nicht FortiClient Endpoint Security) kann dieser per Kommandozeile manipuliert werden. Dies bedeutet: Soll dieser zB per Kommandozeile anhand eines Scripts gestartet oder gestoppt werden kann folgender Befehl benutzt werden (Dos Box):
> FortiSSLVPNclient.exe [connect | disconnect]
Es stehen ebenfalls für diese "FortiSSLVPNclient.exe" zusätzliche Optionen zur Verfügung:
Datei:Fortinet-1596.jpg NOTE Wurde der FortiClient Endpoint Security installiert und man möchte verhindert das dieser automatisch startet siehe nachfolgenden Artikel: FortiClient:FAQ#Wie_kann_ich_verhindern_das_der_FortiClient_Endpoint_Security_auf_einer_Workstation_einen_automatischen_Start_ausf.C3.BChrt.3F
Welche Firewall Policy Rule muss konfiguriert werden wenn über ein VPN SSL (Web Mode) die Destinationen einer IPSec Verbindung erreicht werden will?
Ausgehend davon, dass wir ein SSL-VPN konfiguriert haben im "Web Mode" dh. nicht über ssl.root und anhand des FortiClients und über dieses SSL-VPN im Web Mode eine Destination über IPSec erreichen möchten muss bei der Firewall Policy Implementation folgendes implementiert/konfiguriert werden:
NOTE Betreffend Konfiguration eines SSL-VPN im Web Mode siehe nachfolgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.2_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
Das nachfolgende Beispiel basiert auf FortiOS 5.0.x dh. unter diesem Release wird ein SSL-VPN im "Web Mode" über eine
sogenannte "Identity Based Policy" erstellt. Unter FortiOS 5.2.x gibt es diese Art dh. "Identity Based Policy nicht"
mehr. Somit muss eine normale Rule implementiert werden die anhand der SSL-VPN Gruppe für die Authentifizierung den
Traffic erlaubt. Unter FortiOS 5.2.x stehen betreffend "Web Mode" unter CLI zusätzliche Kommandos zur Verfügung anhand
dieser die Source IP des "Web Mode" beeinflusst werden kann!
Ordentliche Firewall Policy Rule für den VPN-SSL Zugang (Web Mode)
# config firewall policy
# edit [Integer zB "1"]
# set srcintf [Interface des ISP zB "wan1"]
# set dstintf [Interface der Destination die über SSL-VPN erreichbar sein sollen zB "internal"]
# set srcaddr [Source Public IP Adressen IPv4 oder "all"]
# set dstaddr [Destination IP Adress Objekt für internal zB "net-lan-192.168.1.0-24"]
# set action ssl-vpn
# set comments [Kommentar zB "Allow Incoming SSL VPN Portal"]
# set identity-based enable
# config identity-based-policy
# edit 1
# set schedule "always"
# set logtraffic all
# set utm-status enable
# set groups [Name User Gruppe für SSL-VPN]
# set service [Definition der Service zB "ALL"]
# set sslvpn-portal [Name des SSL-VPN Portals]
# next
# end
# next
Zusätzliche Firewall Policy Rule für den VPN-SSL Zugang zum IPSec (Web Mode)
Im nachfolgenden Beispiel gehen wir davon aus, dass auf der FortiGate auf dem das SSL-VPN (Web Mode) konfiguriert
wurde ein Site2Site VPN exisitiert (Interface Based) mit dem Namen "ipsec-vpn1". Das Destination Netzwerk im IPSec
das erreicht werden soll ist der IP Rang 10.10.10.0/24. Ebenso wurde für das SSL-VPN ein "IP Pool" Objekt definiert
mit dem IP Range 192.168.5.0/24.
NOTE Grundvoraussetzung damit die Destination des IPSec erreicht werden kann ist ein routing Eintrag der den IP Range
10.10.10.0/24 auf das IPSec Interface "ipsec-vpn1" sendet. Ebenfalls muss die Source IP des "IP Pool" Bereichs von der
Remote Destination zurück geroutet werden damit das Packet von der Remote Seite wieder den Ausgangspunkt erreicht! Dies
bedeutet die Remote Seite muss den IP Range für IP Pool 192.168.5.0/24 zurück Routen.
# config firewall policy
# edit [Integer zB "2"]
# set srcintf [Interface der Source zB "wan1"]
# set dstintf [Interface des IPSec Phase1 zB "ipsec-vpn1"]
# set srcaddr [Source Public IPv4 Adresse Objekt oder "all"]
# set dstaddr [Destination IP Adress Objekt für ipsec-vpn1 zB "net-lan-10.10.10.0-24"]
# set action ssl-vpn
# set comments [Kommentar zB "Allow Outgoing IPSec Reqeust for SSL-VPN Portal"]
# set identity-based enable
# config identity-based-policy
# edit 1
# set schedule "always"
# set logtraffic all
# set utm-status enable
# set groups [Name User Gruppe für SSL-VPN]
# set service [Definition der Service zB "ALL"]
# set sslvpn-portal [Name des SSL-VPN Portals]
# next
# end
# next
# config firewall policy
# edit [Integer zB "3"]
# set srcintf [Interface der Source IPSec Phase1 zB "ipsec-vpn1"]
# set dstintf [Interface der Destination zB "wan1"]
# set srcaddr [Source IP Adress Objekt für ipsec-vpn1 zB "net-lan-10.10.10.0-24"]
# set dstaddr [Destination IP Adress Objekt für IP Pool zB "net-ip-pool-192.168.5.0-24"]
# set action "accept"
# set comments [Kommentar zB "Allow Incoming IPSec Reqeust for SSL-VPN Portal"]
# end
Certificate
Was für ein Standard Zertifikat (Default CA) ist auf einer FortiGate installiert?
In der Vergangenheit war auf jedem FortiGate Device das gleiche Standard Zertifikat (Default CA) installiert (FortiOS 5.0.x). Weitere Informationen dazu siehe nachfolgenden Link:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-4948
Ab FortiOS 5.2 wird dieses Standard Zertifikat "für den Device" initialisiert (Device Spezifisch) sobald dieses durch eine Funktion benötigt wird wie zB "Deep Inspection, Zugriff über https auf Web Mgmt Interface". Für einige Funktionen wie zB High Availibility (HA) und Load Balancing wird nachwievor das Standard Zertifikat herangezogen für die Konfiguration. Dies kann jedoch per Konfiguration auf das "für den Device" initialisierte Zertifikat geändert werden.
NOTE Bei einem Upgrade auf FortiOS 5.2 werden die vorhandenen Standard Zertifikat und dessen Konfiguration nicht verändert!
Wenn die Initialisierung eines Zertifikates "für den Device" manuell ausgeführt werden soll so kann folgendes durchgeführt werden:
Das folgende Kommando generiert den "Public Key" basierend auf der CA (Certificate Authority):
# execute vpn certificate local generate default-ssl-ca
NOTE Weitere Informationen zu diesem Befehl siehe auch folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_ein_Certificate_.22Regenerieren.22_um_ein_.22Device_Spezifisches.22_Certificate_zu_erhalten.3F
Das folgende Kommando generiert den "Private Key" (Auch Server Key) basierend auf der CA (Certificate Authority):
# execute vpn certificate local generate default-ssl-serv-key
NOTE Wenn ein Zertifikat von einer FortiGate zu einer anderen FortiGate exportiert/importiert werden soll siehe nachfolgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_.22Local_Certificate.22_von_einer_FortiGate_exportieren_und_in_eine_andere_FortiGate_importieren.3F
Im Hintergrund wird anhand der Befehle folgendes ausgeführt:
Public Key
# execute vpn certificate local generate default-ssl-ca
--------------- diagnose debug cli -1 ---------------
# config vpn certificate local
# edit "Fortinet_CA_SSLProxy"
# set password ENC 3XUrWIPNc/BA42RxIdqcY9GWrZUcHds2An+wxlrPVBof7yVMJkd5iVzRTRXbsdG8j/b2CZ/xVKV6Tc6t5Qxi3CjlSYotGk58lCcZ1BVAwnxFhu5G5bEBBuKPkWT1BmhmbNJX5m0qF6CAFDARCojarpeLaFyE7p7oZ6+6khGfD6rQKVLQo0MBzJIZoNkOuY4cuDC07w==
# unset private-key
# set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIE10eK8o+FwoCAggA
MBQGCCqGSIb3DQMHBAijxt3zyI/ycASCBMgaGu4CjJxFC2creE81Y4qcycEixRfb
MgvvPAk84mhJjAaV3OJNWZO8TPf+wA2Y7CZOlUS/oiXLFa385ij6xqAvyJlTG8Zu
pGbo3Gxw79i/VthViMmxiuuh3RYmxFFHRzgDeKDySnm5+o/kMwhr6pdvQhLyOkPW
IY6CIglgiYOUE9DkmT/PLQEAE7NTobT/N6indklWjnPcWf60UeXG5/eel1+kBdmA
JPdY6R164Ih4TW5x5rCWlZY+xKH4VQk0uQJtjjeUt55Boo/x3lVPyx46Yhi/QWfk
z5Zo2Gt7lGQUH6g5onhW6cTHmOqvSRpbEw+2oN03DakXOPRXQMd/iC7FbxBsBzqr
X8W/PzISKX4GeBdAYkAdEMqFvezd+WG7jGSas5ckCSbiOIm3fx2PGso0SUPHyvnS
6eeyfbv281/UBID5XYQ2vvbQ9JDEA7i0yR2Lk8GORjjbiZJdExQrnNyzc1dAESJj
W9r5g55BFLuz1VuCZQo7rcqkb/0QLtkj3eYYl5biS1GdDjIt0wT9lKFiCQnSbu4i
JqT8bMFMj69aUG4AJOCHmC+gfALT6FDoExW9sI/R42s3WZhVb53kAB8ClUb1IwWh
xwA+UnnsrzvMXRl6uO30SKYnTNz6hG6KNgi/In2P7CjD/QZtIROJkpdk62dTqqDn
qHMs8v/LszGnfOQsOs8X5YL4e/0VMx/xFr4r8itGlD7V/Oqv3G3afaQQj0CIUS13
DQcCe+R0Op3PunVDy1EP+xzh4L0LUWT9cnQT5W/wUSUduMcAeXTGSMwvkU0Yj+n7
ETUh1+GhMmMjYcOSZcawQyG2dXtRhzl5683jrJUbCTgK8ECWktK2YK1HYVZ3xtyv
THon+8GS6Ks8Gl/WI9cMTSHY9Rtv1C8Mu/yXOG+dGA42hWE18fHmoz3JPl9ltpHy
JHrCbUD4IgLSOgVdfhBm6pAVM+nZhrWSiplq7hEk+iTAZhVA1TPGeOtyfSOrBShV
WUn68Rb92C81WT5a8PMMqoWRny8OFq15MaEIQyyAwQYTyurJu8exuxHMF0t3XM4T
hLnqSJERjyjux+TyCzdTPNTRNsBMkbQwz6u0T3gAiAYEjaYaEWcXE7Vr+pqefU7j
cJQHBMUxQBKpq6ErQmpKH6ONQFhdPRfqaAXpCM57GA796FaElGyi+GeQuzTTasVf
wCpODSVKmsSJ9Opbvy1qTkGTc7q2epPPdWGW7/HHGpfH83Wx8qLnompZ+LbL0x6l
FgnRiNY0l3nvMXobgQfXT11Qg+Z4ZN84VQDmlQNb/wabqFqKoHsqzJ4n63IUMMqI
4TVZZ7v6i9xZt7N09E+1gex/+qXn+2c2+A4BXMbt2RgXB3qWQFg4SGqltQxd1g+8
fXMUZdEYCsFGC4EtocScgN4fAKVs9Q8atpEXCHIRu8GEJxpuN9Bv795y/yZkTIbK
uE3XD2XjYsmgI1DffnVbEi6CZDJY6ljdx7vIR1pmC19xE646aEGeSpt+P5i2us1f
V4nkNxz6MoGk/MfA9iGOK0KOpzMgGWpn5bgGzgEFD9o7knfbRuJsFHizmx3jc76R
dfTzOw83sIL5nUEf85FxNiaHyp+cOH3rdGgq9OZ8cxFYfp4ffBdjjOGYnALHhjhy
-----END ENCRYPTED PRIVATE KEY-----"
# unset certificate
# set certificate "-----BEGIN CERTIFICATE-----
MIID2jCCAsKgAwIBAgIEAdKqcjANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMC
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVN1bm55dmFsZTERMA8G
A1UECgwIRm9ydGluZXQxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0eTEV
MBMGA1UEAwwMRm9ydGlHYXRlIENBMSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGZv
cnRpbmV0LmNvbTAeFw0xNDA4MTExNTA0MzJaFw0yNDA4MTExNTA0MzJaMIGlMQsw
CQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAGA1UEBwwJU3Vubnl2
YWxlMREwDwYDVQQKDAhGb3J0aW5ldDEeMBwGA1UECwwVQ2VydGlmaWNhdGUgQXV0
aG9yaXR5MRUwEwYDVQQDDAxGb3J0aUdhdGUgQ0ExIzAhBgkqhkiG9w0BCQEWFHN1
cHBvcnRAZm9ydGluZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAnPRyKu6hfz40NJF7FfZB+E/KCylUgqkqc5V4qyHQahq/Deyai/dvctF748NV
+7ojuu2t33PoYokyz9L5C/FaBCTnQzYbJNCdgNZFUkzvafTcn8yk9KQYoptB1Lrl
cix7NLf5xBztlvPhfwT8WCOXZKKhQ0wRC8iUrjkjBWMvMdxZio/2mcPGw2w8/r1q
Dm6zLVUbr3DQSadmBFXtgFyZ7hZrA2SClRDr/uNg58c5Lds+p8rIA/2icpOGPlEt
rAjAuXnkk1vHGNaZLN15XGCLnPDjHs6MQ1KRRn24NG/HS8boG4hsAQCO1zteG6kM
ZwXxZYhbsE//MLJHVgrGxkkMiwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqG
SIb3DQEBBQUAA4IBAQBcubmobonUjYBWUuKA8zNRH58JwOlYiEfm5b981OvfwiNY
Vgu48ikq1hp+lzoETfE239ZDnWw4tClLrlnlVPuEQ7JTNl/TvvT6KjoyLCXDADRz
51tJLHbLglXmNHE3BlPfMJV41Xg0lpeU3sXkhbGTsnFPBSmeEfFNwA4ylBQEVlT+
BYEAK76vEd4seEs1+bkMCorZTWipMEb1i2uz9Jh/k1MN4KcfRwqOlfXP8PNXjcsS
oKhXYJ0/FVXjX19xQKdzHyE9C6qAnyYuJiGgOR51FgRcYVjhaluYqZbfSqv4vW+N
+6ZmD74gUohcntwE8tLpZpt7YrCLuzwz
-----END CERTIFICATE-----"
# unset ike-localid-type
# end
--------------- diagnose debug cli -1 ---------------
Private Key (Server Key)
--------------- diagnose debug cli -1 ---------------
# execute vpn certificate local generate default-ssl-serv-key
# config vpn certificate local
# edit "Fortinet_SSLProxy"
# set password ENC PtvSApK8tvLRVCM3VshEE/b9RZNswrjVxKtor0QfbMvAI74mGp5c1ib37WV6y4K0Y1r/tpOIQydoGAxruMpzYri5oQASMJf2kewHw5z5uEXcP1G3nywC1uL58Hf0iVJsZMzz8GMhtYiw5GsRYlsFB45g0KfgVBw5r/ktsCRTiOL0MgDhTz5ZgOLx0Ai6ttNRCLc8Mw==
# unset private-key
# set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIB0WErcyXLGICAggA
MBQGCCqGSIb3DQMHBAjU9T3m5lo+YgSCBMhcwlABHfktvX5EZoknsLnwnYGBD0NL
vDvgYgcc5Yo9jPGjVWR8YgRcfqXE7BBJ/zWtQvWOsMBsvWbmDgNInQzIxBZ/W9R7
3wl+pEt/PFgXbiLwToFfH2WqD7IiYokn+zwR77cWOpyIsUP338fzPgFhhtDD1ub4
67MAeRPeviuKynEsOLSP/jL+L1D4ktmssBV1CWrNxGmRIwby4ng4FpsOE8TbOjf6
m+CMnQvEgiDo9t+eDZV0pohJovN2G8QszM9Yd79ZA5SE9GlgVBblpxrEX3nbWYeP
FLmI5ipUdtLz2/npspfLLu8N8d2pJEbadnh5RhF3e5GdMoIkJR+LyvJDDnHyLPWR
50dBgYLU3/G5/tzy/2zFdUjFQ0c2quYgytoo7x2LYKDaDmpniio0YGQChQ95xWwb
ivof3YY/cEfyp12Yywv6marvRTEjLctiFggoX6YxDkCu429bL5OssU8WBp046vgR
tehG9fgvFn3xqh/qNUo1PJ4fgGhCz+vssIvzuAX2qQBpq5/yULhoHeS8Vj8nJFm/
tY0+VEBFMIHg/+wxzxEXniPIk5rnlA5muqnx0EQoY8gGUtez5BRW9ZVhtel+cQRN
iyJWcbzWjn1If1npyJnYSaW5JpVvZmpYFbSY7puOfYPcGMksFJzA2v5VaYJBE243
tE4im9KXtVHgml0zKc37Rq7hV2c6xq0GzriADnsPxbggTvdm4eqtau31ELvmbpiy
T/GRCK8S48RlmTNXN42NIzXlezmFs7+i9OX92HsvI4VFhVU1a84b5vYDnvXjEa8d
AII4FBHa9ASTr3iDZaF78g7X2Pa4q9Bq/9EC6RcTgK0dbGa7tj8dCbS7Jkwmf/Ns
acwWIQ9yWahPwCzDes+CAmRpqoNUZI6DXpWU9SqkqSSBp0sYIa9oCZjO5yDtLnku
mEkdI6T/OFdk7n89vmyDfVXFBVqgrSxhy4ngvueLaPeNDiIaMNz+EieSoQDDrcTD
rc3RpeQAT76YMlJKCTaisqCc2KdejwUthw7XoOJeQKddveVs4raf23v0qH/vcc61
66PoBgeaJyg7dla+mQN+6Yhq8/yBpBdz3Vb+Q3it63HLzkzWK861vK+kyEU+tGED
g6v3FXDZtpWvSOynxgyEssCdyKHYE9g8f37BXDoiXnfLi/Qv//1DsVRCEuoj0Ck8
7noCN1UUmM+PmXIjuu85dHOU8wjA7VNa96KsbZWuC9XvXrrGSYDXyWpyosJh9/ha
iML+P9Yc8zkZW7dQ/Hi9CgwkqHtDEetv1WwhnIzeHenJwVJ0yW61LKHdMMNouEk4
5g+QjqeLV0NULpHVsM5ia88aGNlv/3XRDrJiialLcI9EwhKCkc0LF2P+mBpFRZpn
C6zfGD/Ak15TH3tptXgxu5loc3uXX5ZV7pzoiOgrKpz0k2XWFXPY4YSK3Awy9DCl
LUOPzU/Q9iwpp9MIKdjMpsoGcX4PiCVnQbHfpuQaeMC2xiGZLO6MW0gXFXb6FpZR
8F68bCkaoWWq5RNLSyIhvyStsuLeyNmLjGAyENO+Tm4URVv6oio375ddDbh2nSYj
DMt71GMH5OPbRPgumOfR0rlWu+hfFskR2CHXUDcWs6Iz9uptxFY1MVmS9z2Ea4xo
-----END ENCRYPTED PRIVATE KEY-----"
# unset certificate
# set certificate "-----BEGIN CERTIFICATE-----
MIIDxzCCAq+gAwIBAgIEazUooTANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMC
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVN1bm55dmFsZTERMA8G
A1UECgwIRm9ydGluZXQxEjAQBgNVBAsMCUZvcnRpR2F0ZTEZMBcGA1UEAwwQRm9y
dGlHYXRlIFNlcnZlcjEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmb3J0aW5ldC5j
b20wHhcNMTQwODExMTUwNzIwWhcNMjQwODExMTUwNzIwWjCBnTELMAkGA1UEBhMC
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVN1bm55dmFsZTERMA8G
A1UECgwIRm9ydGluZXQxEjAQBgNVBAsMCUZvcnRpR2F0ZTEZMBcGA1UEAwwQRm9y
dGlHYXRlIFNlcnZlcjEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmb3J0aW5ldC5j
b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvrifnOIq20gB89y+y
ZIA3xzHsdx4x3UsElXBgBpI3cDoVfYJ997WIr0+MLvik7XGHyQAwu92dH+l3U2Mj
CK7dqkeAIspBx5btS+WTyafWqjF9uKLy3Dp9ukp1opWJ7uBx9jmY/uArPcFL9jAl
HlbR5CepqGGxhp70cEmvrsDT/XYVjX+jvqDMUt8O7aqWmuXrraP41LI3xP2FXADG
ZvqrszxgU2IVkA38pyj/tokccmBBVn6omPprqAUdlbS89WHBpaeH1ouH6qsW9PSe
+ojYKCDDFUE/qnebvT0feeWaMrFDaTNHp2ckTXbhQb8al7uuQ4Yl1OmXRS/ONp4d
idz7AgMBAAGjDTALMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADggEBACaPr9uc
71GNMcV7CkbGqVnT/edZJ1zyYqW/0cUFO++yNUU8IkwUfCw9+VShHSj1qkJbDrHl
wxfVpKXg80FFka0mZRGKAspMGvRwluuJWXI2OAuGLzgg8r6LhElvaRr/EYm8QhAI
CJm8GVisdqr9W4yBEHr7MxgacLWSdVmCsWjXjMGzMWcl1Q0tvGaiJ4mlZQtyKEOr
yYOe1T0O58tYANwPDN+ojrhR1R8WKuBdul7cnh2ZKHHFnTOGBCpY92ZMNZXHCTFP
QapfB8TxrVTCewUiKyY4RK79mFAiysEZ9mnP4X5POSejpQS/Ro3oOKKWq+X6njqH
IrqxQzTo=
-----END CERTIFICATE-----"
# unset ike-localid-type
# end
--------------- diagnose debug cli -1 ---------------
Wie kann ich auf einer FortiGate ein Certificate "Regenerieren" um ein "Device Spezifisches" Certificate zu erhalten?
Wie im nachfolgenden Artikel erklärt wird auf allen FortiGate betrieben mit FortiOS 5.0.x das gleiche Zertifikat benutzt (Per Standard):
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-4948
Mit FortiOS 5.2.x wurde dies geändert dh. unter FortiOS 5.2.x wird eine "Device Spezifisches Zertifikat" benutzt und wird dann initialisiert sobald eine spezifische Zertifikats Abhängige Funktion benutzt wird (zB https Zugriff auf das Web Mgmt. Interface):
FortiGate-5.0-5.2:FAQ#Was_f.C3.BCr_ein_Standard_Zertifikat_.28Default_CA.29_ist_auf_einer_FortiGate_installiert.3F
Aus diesen Gründen -um ein Maschinenspezifisches Zertifikat zu erzwingen/generieren- wurde unter FortiOS 5.2.x ein neues Kommando zur Verfügung gestellt um dies "nach einem Upgrade" auszuführen. Das folgende Kommando sollte ausgeführt werden um anhand des Standard Zertifikats ein Maschinenspezfisches Zertifikat zu erhalten:
# execute vpn certificate local generate default-ssl-ca
Nach dem ausführen des Befehls wird das "default-ssl-ca" Re-generiert dh. dies kann über folgende Befehl kontrolliert werden:
# config vpn certificate local
# edit Fortinet_CA_SSLProxy
# get
NOTE Achte beim Output auf das Datum sprich "Valid from" sowie auf den "Fingerprint" sowie "Serial Num" denn es handelt sich
nun um ein "Device Spezifisches" Zertifikat!
Wie kann ich ein Zertifikat umkonvertieren damit ich dieses in die Fortigate importieren kann?
Ueber folgende Seite lässt sich ein Zertifikat umkonvertieren damit es nachträglich mit dem richtigen Format in die Fortigate importiert werden kann:
http://www.msxfaq.de/signcrypt/openssl.htm
Was ist zu beachten bei einem Import eines Zertifikates auf einer Fortigate?
Zertifikate werden von CA's ausgestellt (Certifcation Authority). Normalerweise werden diese Certificate als PKCS#12 Format ausgeliefert. Das Certifcate das man vom Certifcation Authority erhält beinhaltet den:
public key (Oeffentliches Zertifikat)
private key (Privates Zertifikat)
Nachfolgend einige Certificate Formate:
Datei:Fortinet-46.jpg
Je nach Gebrauch müssen diese Certificates umkonvertiert werden um einen erfolgreichen Import zu ermöglichen. Folgender Artikel gibt Auskunft wie so eine Umkonvertierung zu bewerkstelligen ist:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_Zertifikat_umkonvertieren_damit_ich_dieses_in_die_Fortigate_importieren_kann.3F
Um nun ein Certificate in eine Fortigate zu importieren führe folgendes durch:
Muss ein Certificate Request durchgeführt werden kann dies direkt auf die Fortigate durchgeführt werden:
System > Certificates > Local Certificates > Generate
Dieses Certificate-Output wird dann benutzt um dieses auf einem CA (Certificate Authority) signieren zu
lassen (gegenzeichnen). Sobald das Certificate signiert ist kann dieses wiederum über folgende Position
importiert werden:
System > Certificates > Local Certificates > Import
Wurde der Certificate-Request nicht auf der Fortigate erstellt (zB bei Wildcard Certificat *.mydomain.ch)
kann dieses nicht auf der Fortigate importiert werden. Solch ein Import kann nur folgendermassen bewerkstelligt
werden:
--> PKCS#12 File/Cert
--> getrenntes .crt und .key File/Cert
Es ist bei solchen Imports auf Fortigate empfehlenswert die Variante der getrennten .crt und .key File/Cert zu
wählen. Danach können beide Files dh. .crt und .key über folgende Position importiert werden:
System > Certificates > Local Certificates > Import
Sobald der Import durchgeführt wurde muss deklariert werden für WAS dieses Certificate verwendet werden
soll. Dies wird über eine Drop-Down-Liste gewählt zB:
IPSec
SSL VPN
etc.
Eine Einstellung (v3.0/4.0) muss über Kommandozeile angegeben werden:
# config system global
# set admin-server-cert [cert-name]
# end
NOTE
Ist das Zertifikat nicht direkt von der CA, sondern von einem Intermediate Device/CA (Device
das ein signiertes Certifcate besitzt von der CA) erstellt worden, wird dieses als NICHT
trusted angeschaut. Eine Variante solch ein Intermediate Certificate dennoch als Trusted zu
verifizieren wäre:
Import des Intermediate Zertifikat auf der Fortigate als „CA Certificate“
Das Intermediate Certificate kann direkt von der CA herunter geladen werden oder es ist im .crt File
des eigenen Certificate enthalten. Die .crt-Datei kann einfach mit dem Wordpad geöffnet und der
entsprechende Abschnitt in ein eigenes .crt File gespeichert werden:
Beispiel:
--------------- certificate example ---------------
Bag Attributes
localKeyID: …
friendlyName: ALSO Schweiz AG
subject=/C=CH/O=ALSO Schweiz AG/CN=*.also.com/emailAddress=info@also.com
issuer=/C=CH/O=SwissSign AG/CN=SwissSign Server Gold CA 2008 - G2
-----BEGIN CERTIFICATE-----
MII…
…
…xmQ=
-----END CERTIFICATE-----
Bag Attributes
localKeyID: …
subject=/C=CH/O=SwissSign AG/CN=SwissSign Server Gold CA 2008 - G2
issuer=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
-----BEGIN CERTIFICATE-----
MII…
…
…0qo=
-----END CERTIFICATE-----
Bag Attributes
localKeyID: …
subject=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
issuer=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
-----BEGIN CERTIFICATE-----
MII…
…
…ZfJ
-----END CERTIFICATE-----
--------------- certificate example ---------------
In diesem .crt File ist ein Zertifikat für CN=*.also.com zu sehen (erster Abschnitt). Dieses ist
signiert worden vom Intermediate Certificate CN=SwissSign Server Gold CA 2008 - G2. Der
dazugehörige (im Beispiel Fett markiert) Abschnitt muss für unserem Fall in ein .crt File gespeichert
werden, welches dann als CA-Certificate in der Fortigate importiert werden kann. Im letzten
Abschnitt in diesem Beispiel ist das CA Certificate CN=SwissSign Server Gold CA 2008 - G2
aufgeführt. Ist das Certificate aufgeführt als "Vertrauenswürdiges Certificate" so muss es nicht
hinterlegt resp. importiert werden. Ist dies nicht der Fall muss in die CA auf der Fortigate
importiert werden.
ACHTUNG HINWEIS FUER FORTIMAIL
Ist das Certificate signiert/gezeichnet worden von einem Intermediate Zertifikat muss folgendes berücksichtigt werden:
Das Intermediate Zertifikat darf NICHT als CA Certificate eingelesen werden sofern das
.crt File NICHT NUR das public Certificate selbst sondern die GESAMTE Certificate Informationen
enthält (wie obiges Certifcate Beispiel). Ist dies der Fall gibt Fortimail die gesamten Informationen weiter!
Wie kann ich ein "Local Certificate" von einer FortiGate exportieren und in eine andere FortiGate importieren?
Wenn zB ein Hardware Upgrade betreffend einer FortiGate durchgeführt (zB FG-60D auf FG-100D) wird kann durch Manipulation des Backup Files ein Restore auf der neuen FortiGate durchgeführt werden. Durch den Restore anhand des Backup Files wird das "Local Certificate" ebenfalls Wiederhergestellt. Ist jedoch so ein Restore auf der neuen FortiGate nicht möglich muss das "Local Certificate" zuerst auf der alten FortiGate exportiert werden sowie auf der neun importiert. Nachfolgend die Schritt die dazu nötig sind:
NOTE Die nachfolgenden Schritte beschreiben den Export des "Private Key". zu diesem Zweck gehen wir von
folgenden Beispiel aus:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,21F46CF768868B66
Zw+r9xa1L6r79qbsLnpk7o8Dj99fsdfsdfdYRFvPUhzC0ORelfcPzwrvDoyRQJKJ
QSfAIQ5lwaWsJoWw9e8O1nl8asdwesu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
[trunkated]
bsLnpk7o8Dj99fjsJywFdYRFvPUhzC0ORelfcPzwrvDoyRQJKJfsf9sfsdfsfsfs
QSfAIQ5lwaWsJoWw9e8O1nl8o+EpYDu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
-----END RSA PRIVATE KEY-----
Alte FortiGate
1. Führe ein Login durch über Serial Console, Telnet oder SSH.
2. Gebe folgenden Befehl ein:
# config vpn certificate local
# show full
Durch diesen Befehl werden all Zertifikate aufgelistet. Der "Private Key" wird in der Auflistung folgendermassen
aufgeführt:
set private-key "-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,21F46CF768868B66
Zw+r9xa1L6r79qbsLnpk7o8Dj99fsdfsdfdYRFvPUhzC0ORelfcPzwrvDoyRQJKJ
QSfAIQ5lwaWsJoWw9e8O1nl8asdwesu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
[trunkated]
bsLnpk7o8Dj99fjsJywFdYRFvPUhzC0ORelfcPzwrvDoyRQJKJfsf9sfsdfsfsfs
QSfAIQ5lwaWsJoWw9e8O1nl8o+EpYDu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
-----END RSA PRIVATE KEY-----"
Um den "Private Key" zu sichern muss folgendes in ein Text File (*.txt) gesichert werden (Achte darauf das die Zeichen "
nicht enthalten sind):
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,21F46CF768868B66
Zw+r9xa1L6r79qbsLnpk7o8Dj99fsdfsdfdYRFvPUhzC0ORelfcPzwrvDoyRQJKJ
QSfAIQ5lwaWsJoWw9e8O1nl8asdwesu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
[trunkated]
bsLnpk7o8Dj99fjsJywFdYRFvPUhzC0ORelfcPzwrvDoyRQJKJfsf9sfsdfsfsfs
QSfAIQ5lwaWsJoWw9e8O1nl8o+EpYDu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
-----END RSA PRIVATE KEY-----
3. Nun muss für "dieses" Zertifikat ein Passwort gesetzt werden. Dies wird folgendermassen durchgeführt:
# config vpn certificate local
# get
NOTE Durch "get" werden alle Einträge aufgelistet. Verifizieren den entsprechenden Eintrag und editiere
den entsprechenden Eintrag der unser Zertifikat darstellt:
# edit [Name des entsprechenden Zertifikates]
# set password [Gebe ein entsprechenes Passwort an]
# end
4. Gehe nun auf das Web Mgmt. Interface und führe folgendes durch:
System > Certificates > Local Certificates
NOTE Wird im Web Mgmt. Interfaces die Menüposition "Certificates" nicht angezeigt muss diese unter folgender
Position aktiviert werden:
System > Config > Features > Show More > Certificates
Danach sollte ein Logout sowie ein erneutes Login durchgeführt werden!
Markiere nun den Eintrag des entsprechenden Zertifikates und wähle "Download". Nun kann das Zertifikat als "*.cer"
runtergeladen werden.
Neue FortiGate
1. Ueber das Web Mgmt. Interface auf den neuen FortiGate führe folgendes durch:
System > Certificates > Local Certificates
Wähle im Menü die Position "Import" und danach:
Type Certificate
Certificate file [Gebe das *.cer File an]
Key File [Gebe das *.txt File an]
Password [Gebe das entsprechende Passwort an das gesetzt wurde]
Nach dem Import kontrolliere ob das entsprechende Zertifikat unter der folgenden Position erscheint:
System > Certificates > Local Certificates
Wir erstelle ich auf einer Fortigate einen Certificate Request und zeichne diesen im Microsoft root CA?
Wenn man eine Certificate, dass auf einer Fortigate erstellt wurde (Certificate Request) innerhalb eines Microsoft root CA (Certificate Authority) zeichnen möchte um diesen nachträglich auf der Fortigate zu importieren gehe folgendermassen vor:
ACHTUNG Fortiate unterstützt folgende zwei Formate: "DER" und "Base-64"
--> Um den Certificate Requests zu erstellen der nachträglich im "Microsoft Root CA" gegengezeichnet werden kann wähle:
System > Certificate > Local Certificate > Generate
Geben nun folgende Angaben an:
Certificate Name: [Name des Certificates]
ID Type: [Host IP / Domain Name (FQDN) / Email Adresse]
Organization Unit: [zB ALSO Schweiz AG]
Organization : [zB Informatik]
Locality (City): [zB Emmen]
State/Province: [zB Luzern]
Country/Region: [zB Schweiz]
e-mail: [zB info@also.com]
Key Type RSA
Key Size 2048 Bit
Enrollment Method File Based
Wenn man nun den "OK" Button anklickt wird im Hintergrund der "Requet" erstellt. Sieht man sich die Liste unter folgender Position an so erkennt man das dieser Request auf "Pending" steht. Dies bedeutet, dass dieser Request noch nicht gegengezeichnet ist:
System > Certificate > Local Certificate
Nun markiert man diese Zeile und geht oben auf die "Download" Position um den Request runterzuladen. Dabei ist wichtig den Download so runterzuladen damit er in einem File gespeichert wird (.csr). Dieses File -wenn man es sich ansieht (zB Wordpad)- sieht folgendermassen aus (es darf nicht gespeichert werden im Wordpad sonst kann das File unbrauchbar werden):
Datei:Fortinet-219.jpg
Danach geht man auf die "Microsoft Certificat Authority" Konsole und führt folgendes aus:
Datei:Fortinet-220.jpg
Datei:Fortinet-221.jpg
Datei:Fortinet-222.jpg
Datei:Fortinet-223.jpg NOTE Dieses File das hier gespeichert wird MUSS auf der Fortigate unter den "Local Certificates" importiert werden, denn dieses Certificate stellt unser gezeichnetes Certificate dar!
Zurück auf der Fortigate führen wir den Import Vorgang durch:
Datei:Fortinet-224.jpg
Datei:Fortinet-225.jpg
Nun das Problem das noch besteht ist das der Fortigate Device momemtan kein Root Certificat hat vom "Microsoft root CA". Dieses muss zuerst aus dem "Certicate Authority" exportiert werden um nachträglich wiederum auf der Fortigate importiert werden. Führe folgendes durch:
Datei:Fortinet-226.jpg
Datei:Fortinet-227.jpg
Datei:Fortinet-228.jpg
Datei:Fortinet-229.jpg
Erstelle nun eine Verbindung zur Fortigate und importiere das soeben exportierte Certificate:
Datei:Fortinet-230.jpg
Dieses "Microsoft root CA" muss nun nur noch in den Broswer auf jedem Client/Workstation importiert werden dh. als "Vertrausenwürdiges Stammzertifikat". Das Certificate ist nun importiert und steht vers. Funktionen zur Verfügung dh. zB kann eine Fortigate Anmeldung des Admin Users (über einen Brosser) über ein Certificate durchgeführt werden. Dafür muss folgender Befehl über CLI abgesetzt werden:
# config system global
# set admin-server-cert "Admin_Users"
# end
Wenn dies durchgeführt wird muss bei der ersten Verbindung (Browser) das Certifcate (public key) importiert werden dh. in den Container "vertrauenswürdige Stammzertifikate".
Wie installiere ich für FortiClient für iOS (Apple) ein Zertifikat auf den entsprechenden Device?
Weitere Informationen siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_installiere_ich_f.C3.BCr_FortiClient_f.C3.BCr_iOS_.28Apple.29_ein_Zertifikat_auf_den_entsprechenden_Device.3F
Was ist im Allgemeinen der Unterschied zwischen "SSL Certificate Inspection" und "Full SSL Inspection"?
Dieser Artikel beschreibt im Allgemeinen den technischen Unterschied zwischen "SSL Certificate Inspection" und "Full SSL Inspection". Dies bedeutet: der Artikel beschreibt nicht im technischen Sinne speziell die Funktion des WebFilters (URL Scan Only" sondern beschreibt im Allgemeinen die Funktion die für alle UTM/Security Profiles zu tragen kommen! Als Hintergrund Information folgendes: Transport Layer Security (TLS) und dessen Vorgänger sowie Secure Sockets Layer (SSL) sind kryptographische Protokolle, um eine sichere Komunikation im Internet zu gewährleisten. Diese kryptographische Protokolle benützen x.509 Zertifikate damit eine asymmetrische Kryptographie für die Authentifizierung ermöglicht wird. Dies bedeutet: Durch diese Authentifizierung wird die Gegenpartei durch einen symmetrischen Schlüssel Authentifiziert resp. erkannt. Dieser symmetrische Schlüssel wird dann verwendet, um Daten zwischen den Parteien zu verschlüsseln. Damit X.509 Zertifikaten angewendet werden können, sind Zertifizierungsstellen und eine öffentliche Schlüssel-Infrastruktur notwendig, um eine Ueberprüfung zwischen den Zertifikaten durchzuführen. Da ein Protokoll entweder mit oder ohne TLS (oder SSL) betrieben werden kann, ist es erforderlich, dass der Client dem Server dies übermittelt resp. eine TLS Verbindung initiert. Eine Möglichkeit des Client dies dem Server mitzuteilen ist ein spezifischer Port zu benützen (zB 443 https). Eine andere Möglichkeit wäre, wenn der Client dem Server dies übermittelt zB auf TLS zu wechseln. Dabei werden Protokoll spezifische Mechanismen benutzt wie zB für TLS den STARTTLS Befehl(SMTP). Durch diesen STARTTLS Befehl übermittelt im SMTP Protokoll der Client dem Server die Absicht auf TLS zu wechseln, um die Komunikation verschlüsselt (TLS) durchzuführen. Sobald dies geschieht, wird durch eine Stateful Verbindung im Zusammenhang mit eine Handshake Verfahren (siehe Punkt 6) und durch vereinbarte Parameter eine verschlüsselte Verbindung zwischen Server und Client etabliert.
1. Der Client sendet dem Server seine SSL-Versionsnummer, Cipher Einstellungen, Session-spezifische Daten und andere Informationen,
die der Server benötigt um mit dem Client eine verschlüsselte Verbindung (SSL) zu etablieren.
2. Der Server sendet dem Client ebenfalls seine SSL-Versionsnummer, Cipher Einstellungen, Session-spezifische Daten und andere Informationen,
die der Server benötigt um mit dem Client eine verschlüsselte Verbindung (SSL) zu etablieren. Der Server sendet ebenfalls sein eigenes
Zertifikat zum Client. Werden durch den Client Server-Resourcen angefragt, die eine Authentifizierung des Client Voraussetzen, fordert
der Server ebenfalls für die Authentifizierung das Zertifikat des CLient an.
3. Der Client verwendet die Informationen die vom Server gesendet wurden, um die Server-Authentifizierung durchzuführen zB im Fall eines
Web-Browsers wird eine Verbindung zu einem Web-Server etabliert. Der Browser prüft, ob der Name des empfangene Zertifikat gleich dem
Namen des Servers ist (Fully Qulified Domain Name), der Aussteller des Zerfikates eine annerkannte Zertifizierungsstelle ist (Trusted CA;
Certificate Authority), das Zerfikat noch gültig ist resp. nicht abgelaufen ist (Datum) und ob es nicht Wiederrufen (revoked) wurde
(siehe Punkt 7). Wenn der Server durch diese Informationen nicht Authentifiziert werden kann, wird der Benutzer von dem Problem gewarnt
und darüber informiert, dass eine verschlüsselte und authentifizierte Verbindung nicht hergestellt werden kann (Browser Meldung). Wenn
der Server erfolgreich authentifiziert wird, geht der Client zum nächsten Schritt.
4. Mit allen bisher im Handshake erzeugten Daten zwischen Client und Server -abhängig von den Cipher Einstellungen-, sendet der Client
seinen erstellten "pre-master key" für die verschlüsselte Verbindung dem Server, der verschlüsselt wurde anhand des "public key" des
Servers (Zertifikat des Servers).
5. Wenn der Server zum Client eine Authentifizierung Anfrage sendet (Optional im Handshake), signiert der Client Daten die Einzigartig sind
innerhalb des Handshake's und beiden bekannt sind dh. Client und Server. In so einem Fall sendet der Client zum Server beides dh. das
einzigartige signierte Datenpacket und sein eigenes Zertifikat sowie den erstellten und verschlüsselten "pre-master key".
6. Wenn der Server eine Client-Authentifizierung angefordert hat, versucht der Server den Client anhand der übermittelten Daten zu Authentifizieren.
Wenn der Client nicht Authentifiziert werden kann, endet die Sitzung. Wenn der Client erfolgreich authentifiziert wird, verwendet der Server
seinen "private key" um den "pre-master" key des Client zu entschlüsseln und führt einige Schritte durch um den "master key" zu generieren.
Diese Schritte führt der Client ebenfalls durch und benützt dabei den "pre-master" key.
7. Beide dh. der Client und der Master benützen den "master key" um den "session key" zu erstellen/generieren. Dieser "session key" ist ein
"symmetrischer key" der benutzt wird um die Informationen in der SSL Session zu ver-/entschlüsseln sowie die Integrität zu überprüfen.
8. Der Client sendet eine Nachricht zum Server, dass dessen Informationen für zukünftige Uebermittlungen anhand des "session key" verschlüsselt
werden. Danach sendet der Client eine getrennte verschlüsselte Meldung, dass der Handshake abgeschlossen ist.
9. Der Server sendet ebenfalls eine Nachricht an den Client, dass zukünftige Information Uebermittlungen anhand des "session key" verschlüsselt
werden. Danach sendet der Server ebenfalls einen getrennte verschlüsselte Meldung, dass der Handshake abgeschlossen ist.
10. Der SSL Handshake ist nun abgeschlossen und die Session beginnt. Der Client/Server benützen nun beide den "session key" um die Daten bei der
Uebertragen zu ent-/verschlüsseln sowie die Datenintegrität zu überprüfen.
SSL Certificate Inspection:
Wenn nun eine "SSL Certificat Inspection" auf einer FortiGate benützt wird so wird der SSL Handshake nicht beeinflusst jedoch liest die
FortiGate das SNI Feld des Zertifikates aus. Das SNI Feld ist ist eine TLS Erweiterung und beinhaltet die komplette URL die aufgerufen
wird. Dies wird von den meisten modernen Browsern unterstützt sofern TLS benutzt wird. Wenn jedoch dies durch den Browser nicht unterstützt
wird liest die FortiGate den "CN" (Common Name) des Zertifikates mit. Der "CN" Teil beinhaltet im normal Fall einen Teil der URL dh. zB
den FQDN (Fully Qualified Domain Name). Dieser "CN" wird herangenommen um das WebFiltering durchzuführen resp. die Kategorisierung. Dies
bedeutet: Durch eine "SSL Certificate Inspection" wird nur das SNI Feld ausgelsen oder der "CN" und die FortiGate ist nicht fähig in den
TLS/SSL Inhalt reinzuschauen und somit Daten und dessen Inhalt zu verifizieren/auszulesen (Keine Full SSL Inspection).
Full SSL Inspection:
Wenn dies Art der Inspection verwendet wird, übernimmt die FortiGate den Part des Servers (Man of the middle) resp. simuliert den Server
selber. Den Client Part übernimmt ebenfalls die FortiGate selber nicht der Client resp. Workstation. In dieser Konstellation ist klar das
der SSL/TLS Handshake unterbrochen wird und die FortiGate ist erforderlich um ein Zertifikat zur Verfügung zu stellen, dass durch den Client
resp. durch die URL angefordert wird. Da die FortiGate zwischen den effektiven Client Server steht (man of the middle), muss der FortiGate
Device dieses Zertifikat zur Verfügung stellen, um einen korrekten Handshake durchzuführen. Dieses Zertifikat wird durch die FortiGate selber
signiert. Da die FortiGate kein anerkannte Zertifizierungsstellen erkennen kann (Trusted Certificate Authority), um dieses zu signieren, wird
eine Warnmeldung an den Client ausgegeben die besagt, dass der Unterzeichner des Zertifikates keiner anerkannten Zertifizierungs Stelle
entspricht. Bei Verwendung dieser Inspection fließt der Traffic von dem Server zur FortiGate verschlüsselt und von der FortiGate an den Client
ebenfalls verschlüsselt. Der einzige Teil in der Traffic unverschlüsselt ist, wäre auf der FortiGate selber. Dadurch wird es der FortiGate
ermöglicht in die Daten (Inspection) reinzuschauen und UTM/Security Profiles im Full SSL Inspection Mode (nicht nur WebFilter wie SSL
Certificate Inspection) anzuwenden wie Antivirus, WebFilter etc. Um dies zu ermöglichen muss das "SSL_Proxy_Inspection Zertifikat" auf der
Workstation/Client importiert werden als "Vertrauenswürdige Stammzertifikate" (Trusted Authority). Nur so kann verhindert werden, dass keine
entsprechende Zertifikatsmeldung auf der Workstation/Client erscheint sowie das Zertifikat als "Vertrauenswürdiges Stammzertifikat" erkannt
wird und somit keine Warnmeldung erscheint.
Fazit
Möchte man "alle" UTM/Security Profiles im Full SSL Inspection benutzen, muss ein entsprechendes Zertifikat auf dem Client als
"Vertrauenswürdiges Stammzertifikat" importiert werden. Dabei ist zu berücksichtigen, dass einige Browser nicht auf das auf dem
Betriebssystem zur Verfügung stehenden Repositories der "Vertrauenswürdigen Stammzertifikate" zurück greiffen sondern Ihre eigenen
Repositories benutzen.
Wenn man "nur" WebFiltering im SSL benutzen möchte kann eine SSL Certificat Inspection durchgeführt werden was "kein" Zertifikat
auf der Workstation/Client benötigt. Alle anderen UTM/Security Profiles haben im SSL Certificat Inspection keine Auswirkungen resp.
können nicht genutzt werden da eine Full Inspection Möglichkeit fehlt.
Nachfolgenden Links geben weitere Informationen betreffend diesem Thema im Zusammenhamg mit Zerfifikaten sowie Inspectio Mode und URL Scan Only (Certicate Inspection):
Allgemein:Zertifikate-SymmetrischeAsymmetrische FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F FortiGate-5.0-5.2:FAQ#Wie_wird_das_.22Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.22_ohne_.22Deep_Inspection.22_konfiguriert.3F FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Gibt es eine Möglichkeit "Root CA" Zertifikate manuell aus dem Internet runterzuladen und auf eine FortiGate zu importieren?
Basierend auf FortiOS 5.0 sowie 5.2 kontrolliert eine FortiGate betreffend Zertifikate ausschliesslich den CN (Common Name) sowie das Datum eines Zertifikates. Die effektive Kontrolle der Zertifikate selber anhand der "Root CA" sowie wie diese zB im Internet Explorer anhand des Containers "Stammzertifikate" durchgeführt wird ist nicht möglich da eine FortiGate über keine Liste der "Root CA" verfügt. Da würde es "theoretischerweise" naheliegen diese Liste der "Root CA's" selber zu importieren. Dies ist "theoretischerweise" auch möglich ist jedoch ein manueller Vorgang und im effektiven Sinne nicht praktikable da diese Liste immer "up-to-date" gehalten werden müsste. Ebenso müsste die Liste für andere "CA's" ebenso unterhalten werden dh. bei zB Unternehmen die Ihre eigene "CA" propagieren. Aus diesem Grund ist die das importieren der "Root CA" auf einer FortiGate ein theoretischer Lösungsansatz jedoch aus unserer Sicht nicht praktikable da aus administrativer Sicht zu intensiv. Der nachfolgende Artikel beschreibt und zeigt wie die Liste der "Root CA" manuell aus dem Internet (Mozilla CA Tree) heruntergelade werden kann sowie diese in auf eine FortiGate importiert werden kann:
Allgemein:Zertifikate-SymmetrischeAsymmetrische#Gibt_es_eine_M.C3.B6glichkeit_.22Root_CA.22_Zertifikate_manuell_aus_dem_Internet_runterzuladen.3F
User / Gruppen
Was ist die maximal Länger eines Passwortes für eine User Authentication?
Unter FortiOS 5.0 war die maximal Länge eines Passwortes für eine User Authentication in den verschiedenen Funktionen unterschiedlich. Ab FortiOS 5.2 wurde dies vereinheitlich dh. Jede Authentifizierung im Zusammenhang mit einem User ist die maximale Länge des Passwortes:
128 Zeichen
Die Authentifizierung im Zusammenhang mit einem User ist so zu verstehen, dass zB für eine User Authentifizierung über LDAP ebenfalls unter FortiOS 5.2 die max. Länge von 128 Zeichen gilt!
Wie kann ich für die Authentication ein "debug" ausführen um ein Troubleshooting durchzuführen?
Wenn für diverse Funktionen auf einer FortiGate eine Authentifizierung konfiguriert wird und nachträglich bei Problemen ein "debug" ausgeführt werden soll, kann dies über den "FortiGate None-Blocking Auth Deamnon" durchgeführt werden. Diese wird folgendermassen ausgeführt:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application fnbamd -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
NOTE Wenn der Deamon "fnbamd" neu gestartet werden soll führe folgendes aus:
# diagnose test application fnbamd 99
Der "diagnose debug" Befehl ist "persistent" dh. auch wenn ausgeloggt wird läuft dieser im Hintergrund weiter und belastet -je nach Debugging- den Device im hohen Masse. Aus diesem Grund ist es wichtig den Debug wiederum zu "disablen" dh. führe folgendes aus:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Wie kann ich das das Passwort des User "admin" (Administrator) ändern?
Das "admin" Passwort kann innerhalb des "Dashboards" unter folgenden Position geändert:
Datei:Fortinet-16.jpg
Das Passwort kann auch über die "Administratoren" Position geändert werden:
Datei:Fortinet-17.jpg
Möchte man das Passwort des User's admin über Kommandozeile ändern muss folgendes durchgeführt werden:
# config system admin
# edit admin
# set password [Setze ein neues Passwort]
# next
Wie aktiviere ich für den User "admin" den Management Zugriff und was muss ich dabei berücksichtigen?
Der User "admin" der per Standard existiert ist eine Administrator der über ein Profile "super_admin" (Volle Rechte) verfügt. Dieser User "admin" kann grundsätzlich auch gelöscht werden und mit einem neuen Administrator ersetzt werden basierend auf dem Profile "super_admin". Dies wird jedoch nicht empfohlen. Die Profile für die Administratoren können anhand neu angelegter Profile unter folgender Position erstellt werden:
System > Admin > Admin Profile > Create New
In einem Profile können vers. Funktionen im "Read Only, Read-Write sowie auf None" gesetzt werden und somit eingeschränkt werden. Weitere Einschränkungen in den einzelnen Funktionen die zur Verfügung stehen sind nicht möglich und stehen auch nicht auf Kommandozeile zur Verfügung. Wenn dies gewünscht wird muss ein FortiManager eingesetzt werden denn dieser ist Mandantenfähig. Ein zusätzlicher Administrator kann unter folgender Position erstellt werden und bei der Erstellung kann das entsprechende Profile dem Administrator hinzugefügt werden:
System > Admin > Administrators
Um den Zugriff für die Administratoren auf die FortiGate sei es per HTTPS, PING, HTTP, SSH zu gewährleisten muss auf einem entsprechenden Interface der nötige Service aktiviert werden. Dazu wähle folgendes:
System > Network > Interfaces > [Wähle das entsprechende Interface zB "internal"] > Administrative Access > [Aktiviere den entsprechenden Service]
NOTE Dabei ist folgendes zu berücksichtigen: Im Hintergrund wird eine entsprechende "Local-In" Policy implementiert (Automatisch) die den Zugriff für
den entsprechenden Service "aus dem Segment" erlaubt. Dies bedeutet: Würde man HTTP auf dem Interface "internal" aktiviert würde folgende Rule
Automatisch im Hintergrund implementiert werden:
Source [IP Range/Segment Interface oder "Trusted Host 1-3 ACL Administrator"]
Destination [IP des Interface]
Service [HTTP]
User [Administrator mit entsprechenden Rechte]
Action [Allow]
Diese Policy kann eingsehen werden unter folgenden Punkt:
Policy / Policy Objects > Policy > Local In > Administrative Access
NOTE Leider ist diese "Local In" Policy nicht sehr Transparent dh. es wird unter "Administrative Access" nicht detailliert angezeigt WAS
Implementiert wurde. Dies bedeutet die "Trusted Host 1-3" für Administratoren werden nicht abgebildet!
Wenn ein Administrator zB User "admin" mit "Trusted Host 1-3" versehen wird werden die aktivierten Services ebenfalls auf diese "Trusted Host 1-3" beschränkt. Dies bedeutet würde man auf Interface "wan1" HTTPS und PING aktivieren und den User "admin" beschränken auf eine bestimmte Public IP würde ein Login auf HTTPS sowie ein PING nur noch von dieser Source möglich sein. "Trusted Host 1-3" werden innerhalb eines Administrators und folgender Position definiert:
System > Admin > Administrators > [Wähle den entsprechenden Administrator] > [Aktiviere "Restrict this Administrator Login from Trusted Hosts Only"] > [Definiere "Trusted Host" IP Range]
Wenn die Konfiguration auf Kommandozeile durchgeführt werden möchte ist folgendes durchzuführen:
Aktivieren eines Service auf einem Interface
# config system interface
# edit [Name des Interfaces]
# set allowaccess [http | https | ping | ssh | telnet]
# end
Hinzufügen von "Trusted Host" für einen Administrator
# config system admin
# edit [Name des Administrators zB "admin"]
# set trusthost1 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost2 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost3 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost4 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost5 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost6 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost7 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost8 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost9 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# set trusthost10 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
# end
NOTE IM Web Mgmt. Interface sind die "trusthost" Einträge limitiert für FortiOS 5.0.x dh. auf 3. Ab FortiOS 5.2.x max 10 Einträge
zur Verfügung. Auf Kommandozeile stehen für FortiOS 5.0.x sowie 5.2.x max. 10 Einträge zur Verfügung.
Wenn das Passwort des User's "admin" (Administrator) nicht mehr bekannt ist wo kann ich dieses zurücksetzen/neu setzen?
Als Grundvorraussetzung muss die Serien Nummer der Fortigate bekannt sein, denn diese wird benötigt um sich als User maintainer einzuloggen. Zugleich ist dieser Vorgang nur anhand einer Seriellen Verbindung möglich:
-> Erstelle eine Serielle Console.
8 bits
no parity
1 stop bit
9600 baud (the FortiGate-300 uses 115,000 baud)
Flow Control = None
NOTE Weitere Informationen betreffend RS-232 Console findet man im folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F
-> Schalte den Device aus und ein oder starte diesen neu.
-> Sobald der Login erscheint gebe ein:
User = maintainer
Password = bcpbFGT[Serien Nummer ohne Produktbezeichnung "FGT" dh. zB 60C4613015338]
Welcome!
# config system admin
# edit admin
# set password [Neues Passwort]
NOTE Dieser Vorgang im Ganzen dh. das Einloggen anhand des Users "maintainer" steht nach dem ersten
erscheinen des regulären "login's" 2 Minuten zur Verfügung (auf einigen Devices nur 14 Sekunden) dh.
wird innerhalb dieser 2 Minuten der User "maintainer" nicht benutzt für das Einloggen so deaktiviert
sich dieser Funktion dh. muss diese wiederum genutzt werden so muss erneut ein Neustart ausgeführt
werden! Dieser Vorgang dh. das Zurücksetzen des Superadmin Passwort ist für alle Geräte von Fortinet
durchzuführen. Für das Passwort des Users "maintainer gilt:
bcpb[Fortinet Produkt Bezeichnung zB FortiGate "FGT" oder FortiWifi "FWF"][Serien Nummer ohne Produktbezeichnung]
Möchten man die "Funktion" des "maintainer" deaktivieren dh. keine Möglichkeit geben diesen zu benutzen so kann
dies folgendermassen durchgeführt werden:
# config system global
# set admin-maintainer disable
# end
Anstelle des "maintainer" -der nur benutzt werden kann über die lokale Consolen- kann auch der Consolen Port komplett
deaktiviert werden. Nähere Informationen siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_setze_ich_eine_Fortigate_auf_.22Factory_Defaults.22.3F
Fortinet hat im Juli 2013 ein Dokument unter "SysAdmin's Notebook" released das diesen Vorgang ebenfalls beschreibt/zeigt:
Datei:Resetting a lost admin password.pdf (Resetting a lost admin password)
Kann ich das Timeout für ein Login komplett ausschalten?
Per Standard für eine FortiGate ein "Login Recording" durch dh. sobald ein Login durcheführt wird setzt ein Counter ein und zeichnet diesen Login auf. Sobald betreffend diesem Login ein "Timeout" erreicht wird so wird ein "Logout" durchgeführt. Unter FortiOS 5.0 ist das standard Verhalten einer FortiGate und kann -ausser ein Timeout zu setzen- nicht manipuliert werden. Unter FortiOS 5.2 kann das "Login Recording" komplett deaktiviert werden mit folgender globalen Option:
# config system global
# set login-timestamp disable
# end
Um unter FortiOS 5.0 die verschiedenen "Timeout's" zu setzen siehe nachfolgende Links:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F FortiGate-5.0-5.2:FAQ#Welches_Timeout_gilt_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_und_wo_manipuliere_ich_Dieses.3F
Gibt es eine Möglichkeit nicht erfolgreiche Admin Login's aufzulisten?
Login's des Admin's werden im Hintergrund aufgezeichnet/geloggt. Ueber Gui sieht man diese Login's der Admins sei es erfolgreich oder nicht über die "Alert Message Console" dh.:
System > Dashboard > Status > Alert Message Console
Neu ab FortiOS 5.2.1 steht ebenfalls in der CLI folgendes Kommando zur Verfügung das "nicht erfolgreiche" Login's der Admin's auflistet:
# diagnose debug admin error-log
The recent admin user failed login details:
error code : -102
method : ssh
login name : admin
cmdb name : admin
login vdom : root
current vdom : root
override vdom : null
login profile : super_admin
override profile: null
login time : 2014-09-22 10:43:19
Welches Timeout gilt für den User "admin" (Administrator) und wo manipuliere ich Dieses?
Für den Administrator gilt 5 Minuten als Timeout. Dieses wird über folgenden Menüpunkt manipuliert:
Datei:Fortinet-24.jpg NOTE Ueber die Kommandozeile wird die Konfiguration folgendermassen durchgeführt: # config system global # set admintimeout [Timeout Minutes] # end
Wenn das Timeout für den Administrator betreffend SSH angepasst werden soll siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_das_Timeout_f.C3.BCr_SSH.3F
Das Timeout kann unter FortiOS 5.2 auch komplett ausgeschaltet werden. Dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_das_Timeout_f.C3.BCr_ein_Login_komplett_ausschalten.3F
Wie konfiguriere ich für den User "admin" (Administrator) eine Public Key Authentication?
Logge dich als User "root" auf dem System ein auf dem der Zugriff auf die FortiGate erfolgen soll. In unserem Beispiel wäre dies ein CentOS basierendes System. Nach dem Einloggen wechsle in das Root Verzeichnis des User's "root". In unserem Beispiel wäre dies "/root":
# cd /root
# pwd
/root
Die "Public Key Authentication" Informationen werden im User "root" Verzeichnis im Verzeichnis "/root/.ssh" abgelegt. Erstelle dieses Verzeichnis und vergebe die entsprechenden Rechte:
# mkdir /root/.ssh
# chmod 700 /root/.ssh
# chown root:root /root/.ssh
Als nächsten Schritt erstellen wir für die Public Key Authentication eine "privat" sowie einen "public" Key. Diese sind voneinander abhängig dh. der "public" Key basiert auf dem "privat" Key:
# which ssh-keygen
/usr/bin/ssh-keygen
# ssh-keygen -t rsa -f /root/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
2b:cf:8d:7f:51:cb:5b:d4:77:13:d4:79:93:ab:da:63 root@mydomain.local.intra
NOTE Gebe keine "passphrase" ein sondern einfach "Enter"!
Nach der erfolgreichen Generierung haben wir folgende Keys:
# ls -la /root/.ssh/*
-rw------- 1 root root 1675 Dec 9 13:07 /root/.ssh/id_rsa
-rw-r--r-- 1 root root 408 Dec 9 13:07 /root/.ssh/id_rsa.pub
Das File "id_rsa" stellt den "privat" Key dar und MUSS umbedingt geschützt werden dh. vergebeentsprechende Rechte:
# chmod 600 /root/.ssh/id_rsa
Der Public Key muss nun auf der FortiGate konfiguriert werden. Dies wird folgendermassen durchgeführt:
# more /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsum+V+qTCDNAfjGCtgn/X771NZHveHJgHAfoi6JXjVpZ7Ojd7wQ/30jM7Ma8kwecbAdGV/MStq/lX2Z09qZ/Wkq3V0k+XctrNBOc5fR26vsMwZk5GeJuYLmhXD+agTNNDf1VfRhOKj7UcLoV45kKYBZwzkOFt1E0dODFcdOY+12LwVgAHGd5cPSR3tRXY07HEEnlob0fOSb6XuKZmpgBWhEfNbGBH2gI+bEJC9E9ZoqWYGF3Vi5RgvoeW8l9zSYwtj+zwG9VG0MN9SKJR6gAhqpSvSLsZEUkbNJ9zHocxMsIw4qZ+ATU9+QYhECJTfZmWWCuC1amyV+e1KljpiH9aQ== root@mydomain.local.intra
NOTE der "ssh-rsa" Key ist "eine" Zeile dh. achte darauf wenn die Information für "key-value"
im nächste Schritt auf der FortiGate konfiguriert wird!
Auf der FortiGate führe folgendes aus:
# config system admin
# edit admin
# set ssh-public-key1 "[key-type] [key-value]"
# end
Für unseres Beispiel würde das folgendes bedeuten:
# config system admin
# edit admin
# set ssh-public-key1 "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsum+V+qTCDNAfjGCtgn/X771NZHveHJgHAfoi6JXjVpZ7Ojd7wQ/30jM7Ma8kwecbAdGV/MStq/lX2Z09qZ/Wkq3V0k+XctrNBOc5fR26vsMwZk5GeJuYLmhXD+agTNNDf1VfRhOKj7UcLoV45kKYBZwzkOFt1E0dODFcdOY+12LwVgAHGd5cPSR3tRXY07HEEnlob0fOSb6XuKZmpgBWhEfNbGBH2gI+bEJC9E9ZoqWYGF3Vi5RgvoeW8l9zSYwtj+zwG9VG0MN9SKJR6gAhqpSvSLsZEUkbNJ9zHocxMsIw4qZ+ATU9+QYhECJTfZmWWCuC1amyV+e1KljpiH9aQ== root@mydomain.local.intra"
# end
Nun ist alles bereit dh. vom Linux System aus kann nun ein Test durchgeführt werden:
# ssh admin@mydomain.local.intra
The authenticity of host 'mydomian.local.intra (mydomain.local.intra)' can't be established.
RSA key fingerprint is 71:cb:81:d8:2d:e0:09:82:0a:c1:e9:28:10:05:ad:35.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mydomain.local.intra' (RSA) to the list of known hosts.
#
NOTE Die Frage nach dem spezifischen Host der unsere FortiGate erscheint
nur einmal zu Beginn der ersten Verbindung! Bei der zweiten Verbindung
erscheint diese Frage nicht mehr. Der Host auf dem zugegriffen wird dh.
unsere FortiGate wird mit dessen Hostnamen und/oder IP im folgenden File
abgelegt:
# cat /root/.ssh/known_hosts
mydomain.local.intra ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDrSes+GhiRczY3D/X+AzEHp8X+esH017S4VeqFs4yaGh8rbyUb/iGIoeixqJkB3B1YxLlQ7jc5kgHXspoDl5XN2uoUjd65mBpXZ61/cezNZR+YFmCKCsozHsNjO+LZsvfgXmW03tdX6lL53MzGZdYrW7AOzI2SOJXE7kDANMh5xQ==
NOTE Wechselt der Name resp. die IP des Hosts muss der entsprechende Eintrag im
File "known_hosts" gelöscht werden ansonsten wird der Zugriff verweigert!
Zusätzlich zum SSH Zugriff kann SCP für den Admin auf der FortiGate aktiviert werden. Dazu siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F
Um den Zugang zu tesen benutze vom Linux System aus folgendes Kommando:
# scp admin@mydomain.local.intra:sys_config /root/
sys_config 100% 104KB 20.7KB/s 00:05
# ls -la /root/sys_config
-rw------- 1 root root 106032 Dec 9 13:31 sys_config
Dieser Vorgang kann nun benutzt werden um auf dem Linux ein autom. Backup der FortiGate zu erstellen! Dies kann zB anhand eines "crontab" Eintrages konfiguriert werden:
# crontab -e
-------------- crontab --------------
30 3 * * 0 scp admin@mydomain.local.intra:sys_config /root/$(date +%Y%m%d)-sys_config
-------------- crontab --------------
NOTE Der Cron Eintrag hat folgende Bedeutung und Aufbau:
* * * * * [Path to script or command]
* Minuten (0-59)
* Stunden (0-23)
* TagDesMonats (1-31)
* Monat des Jahres (1-12)
* TagDerWoche (0-6 with 0=Sunday)
Wie kann ich für den User "admin" (Administrator) zusätzlich zum SSH SCP aktivieren?
Die Funktion SSH wird über folgende Positon aktiviert:
System > Network > Interfaces > [Wähle das entsprechende Interface] > Administrative Access > [Aktiviere SSH]
Diese Konfiguration umfasst auschliesslich SSH (per Standard auf Port 22) und nicht SCP. Möchte man SCP für den Administrator zusätzlich zu SSH freischalten führe auf der Kommandozeile folgendes durch:
# config system global
# set admin-scp enable
# end
Wie setze ich für den User "admin" (Administrator) das Timeout für SSH?
Per Standard gilt für den Administrator bezüglich SSH Timeout 2 Minuten (120 seconds). Um dieses Timeout anzupassen benutze folgenden Befehl auf der Console:
# config system global
# set admin-ssh-grace-time [Angaben der Sekunden von 0 - 3600]
# end
Wie kann ich für eine User "admin" (Administrator) für HTTPS eine bestimmte TLS Version zB 1.0 deaktivieren?
Ab FortiOS 5.2.2 gibt es unter den "config system global" eine Konfigurationsmöglichkeit um die benutzten TLS Versionen für den Web Mgmt. Zugriff über "https" zu definieren. Folgender Befehl steht zur Verfügung (Pers Standard ist TLS 1.1 sowie 1.2 aktiviert):
# config system global
# set admin-https-ssl-versions [sslv3 | tlsv1-0 | tlsv1-1 | tlsv1-2]
# end
Die aktiven Version dh. TLS Versionen können einfach überprüft werden sowie die benutzen "DH" Parameter. Dafür kann ein kleines Script installiert werden das über einen Linux Server ausgeführt werden kann. Kopiere den Inhalt des Files "Cipherscan.txt" in ein File auf dem Linux Server dh. zB:
# mkdir /opt/scripts
# vi /opt/scripts/cipherscan
# chown root:root /opt/scripts/cipherscan
# chmod 700 /opt/scripts/cipherscan
Datei:Cipherscan.txt NOTE Weitere Scripte auf für Windows und Anweisung siehe Link https://github.com/jvehent/cipherscan. Eine andere Möglichkeit einen Scan durchzuführen ist folgender Link zu benutzen: https://www.ssllabs.com/ssltest/
Danach kann auf dem Linux ein Scan durchgeführt werden auf den Mgmt. Port der FortiGate sprich zB auf das LAN Interface. Der Port auf dem LAN Interface resp. HTTPS muss aktiviert sein. Wenn der Mgmt. Port nicht über Standard HTTPS 443 konfiguriert wurde muss der Port dem Script durch folgendes Kommando mitgegeben werden:
# /opt/scripts/cipherscan 198.18.0.1:8443
custom openssl not executable, falling back to system one from /bin/openssl
.................................
Target: 198.18.0.1:8443
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
2 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
3 ECDHE-RSA-AES256-SHA TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
4 DHE-RSA-AES256-GCM-SHA384 TLSv1.2 DH,1024bits None
5 DHE-RSA-AES256-SHA256 TLSv1.2 DH,1024bits None
6 DHE-RSA-AES256-SHA TLSv1.1,TLSv1.2 DH,1024bits None
7 DHE-RSA-CAMELLIA256-SHA TLSv1.1,TLSv1.2 DH,1024bits None
8 AES256-GCM-SHA384 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES256-SHA TLSv1.1,TLSv1.2 None None
11 CAMELLIA256-SHA TLSv1.1,TLSv1.2 None None
12 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
13 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
14 ECDHE-RSA-AES128-SHA TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
15 DHE-RSA-AES128-GCM-SHA256 TLSv1.2 DH,1024bits None
16 DHE-RSA-AES128-SHA256 TLSv1.2 DH,1024bits None
17 DHE-RSA-AES128-SHA TLSv1.1,TLSv1.2 DH,1024bits None
18 ECDHE-RSA-DES-CBC3-SHA TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
19 DHE-RSA-SEED-SHA TLSv1.1,TLSv1.2 DH,1024bits None
20 DHE-RSA-CAMELLIA128-SHA TLSv1.1,TLSv1.2 DH,1024bits None
21 EDH-RSA-DES-CBC3-SHA TLSv1.1,TLSv1.2 DH,1024bits None
22 AES128-GCM-SHA256 TLSv1.2 None None
23 AES128-SHA256 TLSv1.2 None None
24 AES128-SHA TLSv1.1,TLSv1.2 None None
25 SEED-SHA TLSv1.1,TLSv1.2 None None
26 CAMELLIA128-SHA TLSv1.1,TLSv1.2 None None
27 DES-CBC3-SHA TLSv1.1,TLSv1.2 None None
28 ECDHE-RSA-RC4-SHA TLSv1.1,TLSv1.2 ECDH,prime256v1,256bits prime256v1
29 RC4-SHA TLSv1.1,TLSv1.2 None None
30 RC4-MD5 TLSv1.1,TLSv1.2 None None
31 EDH-RSA-DES-CBC-SHA TLSv1.1,TLSv1.2 DH,1024bits None
32 DES-CBC-SHA TLSv1.1,TLSv1.2 None None
Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 300
OCSP stapling: not supported
Cipher ordering: client
Wie man vom "output" sieht sind die Version TLSv1.1 sowie 1.2 aktiv. Um nun die Version 1.1 zu deaktivieren führe folgendes aus:
# config system global
# set admin-https-ssl-versions tlsv1-2
# end
Nun kann abermals ein Scan ausgeführt werden:
# /opt/scripts/cipherscan 198.18.0.1:8443
custom openssl not executable, falling back to system one from /bin/openssl
.................................
Target: 198.18.0.1:8443
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
2 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
3 ECDHE-RSA-AES256-SHA TLSv1.2 ECDH,prime256v1,256bits prime256v1
4 DHE-RSA-AES256-GCM-SHA384 TLSv1.2 DH,1024bits None
5 DHE-RSA-AES256-SHA256 TLSv1.2 DH,1024bits None
6 DHE-RSA-AES256-SHA TLSv1.2 DH,1024bits None
7 DHE-RSA-CAMELLIA256-SHA TLSv1.2 DH,1024bits None
8 AES256-GCM-SHA384 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES256-SHA TLSv1.2 None None
11 CAMELLIA256-SHA TLSv1.2 None None
12 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
13 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
14 ECDHE-RSA-AES128-SHA TLSv1.2 ECDH,prime256v1,256bits prime256v1
15 DHE-RSA-AES128-GCM-SHA256 TLSv1.2 DH,1024bits None
16 DHE-RSA-AES128-SHA256 TLSv1.2 DH,1024bits None
17 DHE-RSA-AES128-SHA TLSv1.2 DH,1024bits None
18 ECDHE-RSA-DES-CBC3-SHA TLSv1.2 ECDH,prime256v1,256bits prime256v1
19 DHE-RSA-SEED-SHA TLSv1.2 DH,1024bits None
20 DHE-RSA-CAMELLIA128-SHA TLSv1.2 DH,1024bits None
21 EDH-RSA-DES-CBC3-SHA TLSv1.2 DH,1024bits None
22 AES128-GCM-SHA256 TLSv1.2 None None
23 AES128-SHA256 TLSv1.2 None None
24 AES128-SHA TLSv1.2 None None
25 SEED-SHA TLSv1.2 None None
26 CAMELLIA128-SHA TLSv1.2 None None
27 DES-CBC3-SHA TLSv1.2 None None
28 ECDHE-RSA-RC4-SHA TLSv1.2 ECDH,prime256v1,256bits prime256v1
29 RC4-SHA TLSv1.2 None None
30 RC4-MD5 TLSv1.2 None None
31 EDH-RSA-DES-CBC-SHA TLSv1.2 DH,1024bits None
32 DES-CBC-SHA TLSv1.2 None None
Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 300
OCSP stapling: not supported
Cipher ordering: client
Wie man sieht ist "nur" noch die Version TLSv1.2 aktiv. Was in diesem "output" ebenfalls ersichtlich ist sind die "ciphers" die eigentlich nicht benutzt werden sollen. Wenn man auf einem Linux Server das Package "openssl" vorhanden ist (which openssl) kann anhand des Client Teil von OpenSSL ein Test ausgeführt werden um festzustellen ob eine entsprechende "cipher" akzeptiert würde. Im nachfolgenden Beispiel wird getestet ob die "cipher" DES möglich ist:
# openssl s_client -connect 198.18.0.1:8443 -cipher "DES"
CONNECTED(00000003)
depth=1 C = US, ST = California, L = Sunnyvale, O = Fortinet, OU = Certificate Authority, CN = support, emailAddress = support@fortinet.com
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
0 s:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=FortiGate/CN=FG300C3913601712/emailAddress=support@fortinet.com
i:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
1 s:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
i:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDRTCCAi2gAwIBAgIDC9W6MA0GCSqGSIb3DQEBBQUAMIGgMQswCQYDVQQGEwJV
UzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMREwDwYD
VQQKEwhGb3J0aW5ldDEeMBwGA1UECxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRAw
DgYDVQQDEwdzdXBwb3J0MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGZvcnRpbmV0
LmNvbTAeFw0xMzAzMDUwMjAyMzFaFw0zODAxMTkwMzE0MDdaMIGdMQswCQYDVQQG
EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMREw
DwYDVQQKEwhGb3J0aW5ldDESMBAGA1UECxMJRm9ydGlHYXRlMRkwFwYDVQQDExBG
RzMwMEMzOTEzNjAxNzEyMSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGZvcnRpbmV0
LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvbxgu84VKi3SL78ZpAdB
5yaqOQfNf44KFwxFAqk94D8vjcNi0i0igSVdNZD80hRJUqbkVprgAaOPG4BvnadN
2LIB0S1ajvjJfOctdfstpiVYRU2W3i5sjqkoRLyn1Vy0olZ3MVQMZUP0saPqQPnF
vrBSwDJ/CJ31mMMyyIP+JncCAwEAAaMNMAswCQYDVR0TBAIwADANBgkqhkiG9w0B
AQUFAAOCAQEANb9WMN1Tedd+qvQuYvtjCJm5XEgWuQNG3LfSsHFU7ZB2Sjybj39/
cfzHZuFdUtib6QPO1AuOvWyXZwIK8bcx6eFxoq7Ox6rTJVgJkw9XxoUbC2s2Du/o
CtfPNc5cJJ/Xjlmufr3mNUT+26kG1RG1E8+QViTsRzwT/L9+SIX4KDvqUaZI+gqj
6VSgVD2EkUK2OtHS1CvtFsCbVpwBTmcKErjPcnUl1RyvWoBtMLDbHOc09r/joJoS
ruKoDlXKinkPMDeuazIR3JFYj40V3+OXXlSoc1H1DuXKKyZsZXFp9gKfoQXAllkO
qlBsAiyXAsieWQsQoiAyyAyNpp8zGgIKxA==
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=FortiGate/CN=FG300C3913601712/emailAddress=support@fortinet.com
issuer=/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
---
No client certificate CA names sent
Server Temp Key: DH, 1024 bits
---
SSL handshake has read 2394 bytes and written 271 bytes
---
New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : EDH-RSA-DES-CBC-SHA
Session-ID: F4B05A8E17FE406186242860D92EC90B9FF09EE731FE2C9DC3CE3B0EB57D50DC
Session-ID-ctx:
Master-Key: 36EDD661CE7E6688395FF8FF1F76349A1E7054F62EE4D55590A24BB1C15B6FDF9EC3B3B92A7ECF3731424F4F5D9C3626
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1435042817
Timeout : 300 (sec)
Verify return code: 19 (self signed certificate in certificate chain)
---
Dieser "output" bestätigt die Verbindung kommt zu stande und dies ist im "generellen" schlecht dh. Grundsätzlich sollten folgende "cipher" deaktiviert werden:
aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA
Die FortiGate bietet die Möglichkeit diese mit folgenden Befehl zu deaktiveren:
# config system global
# set strong-crypto enable
# end
NOTE Das aktivieren von "strong-crypto" beeinflusst den Mgmt. Access für HTTPS/SSH!
Nun führen wir wiederum einen Test durch:
# /opt/scripts/cipherscan 198.18.0.1:8443
custom openssl not executable, falling back to system one from /bin/openssl
................
Target: 198.18.0.1:8443
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
2 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,prime256v1,256bits prime256v1
3 ECDHE-RSA-AES256-SHA TLSv1.2 ECDH,prime256v1,256bits prime256v1
4 DHE-RSA-AES256-SHA256 TLSv1.2 DH,1024bits None
5 DHE-RSA-AES256-SHA TLSv1.2 DH,1024bits None
6 AES256-SHA256 TLSv1.2 None None
7 AES256-SHA TLSv1.2 None None
8 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
9 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,prime256v1,256bits prime256v1
10 ECDHE-RSA-AES128-SHA TLSv1.2 ECDH,prime256v1,256bits prime256v1
11 DHE-RSA-AES128-GCM-SHA256 TLSv1.2 DH,1024bits None
12 DHE-RSA-AES128-SHA256 TLSv1.2 DH,1024bits None
13 DHE-RSA-AES128-SHA TLSv1.2 DH,1024bits None
14 AES128-SHA256 TLSv1.2 None None
15 AES128-SHA TLSv1.2 None None
Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
TLS ticket lifetime hint: 300
OCSP stapling: not supported
Cipher ordering: client
Nun sieht das Ganze korrekt aus dh. nur die gewünschten "cipher" sind aktiv und dies kann wiederum getestet werden zB anhand "DES":
# openssl s_client -connect 198.18.0.1:8443 -cipher "DES"
CONNECTED(00000003)
140357317728160:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:744:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 73 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
NOTE Eine andere Variante dh. zB alle "RC4" "ciphers" zu durchsuchen und festzustellen ob anhand diesen eine Verbindung
zustande kommt wäre folgender Befehl der auf den meisten Linux Derivaten funktionieren sollte:
# for i in `openssl ciphers -v 'RC4' | awk '{print $1}'`; do echo -ne "$i\t" ; echo | openssl s_client -connect [FQDN des Hosts oder IPv4]:443 -cipher "$i" 2>&1 | grep New; done
ECDHE-RSA-RC4-SHA New, (NONE), Cipher is (NONE)
ECDHE-ECDSA-RC4-SHA New, (NONE), Cipher is (NONE)
AECDH-RC4-SHA New, (NONE), Cipher is (NONE)
ADH-RC4-MD5 New, (NONE), Cipher is (NONE)
ECDH-RSA-RC4-SHA New, (NONE), Cipher is (NONE)
ECDH-ECDSA-RC4-SHA New, (NONE), Cipher is (NONE)
RC4-SHA New, (NONE), Cipher is (NONE)
RC4-MD5 New, (NONE), Cipher is (NONE)
Wie man sieht kommt die Verbindung nicht zustande dh. dies indiziert die Position "hadshare failure" sowie "New, (NONE), Cipher is (NONE)"! Wenn Wert gelegt wird auf Sicherheit sollte auf jeder FortiGate folgende Einstellungen durchgeführt werden:
# config system global
# set strong-crypto enable
# set admin-https-ssl-versions tlsv1-2
# end
Beachte jedoch durch die höhere Security leidet die Kompatibilität dh. ältere Browser sind nicht mehr fähig zu verbinden da diese "noch" die "alten" Versionen resp. tlsv1-0/1 usw. unterstützen.
Wie kann ich ein "Passwort Lockout" des User's "admin" (Administrator) konfigurieren/verändern?
Wenn ein Administrator sich 3 X falsch anmeldet wird ein "Lockout" ausgeführt dh. für eine bestimmte Zeit kann der Administrator sich nicht mehr anmelden. Die Anzahl der Versuche sowie die Zeitspanne kann angepasst werden dh. führe folgendes auf der Console aus:
# config system global
# set admin-lockout-threshold [Anzahl Möglichkeiten; Standard Wert ist 3]
# set admin-lockout-duration [Zeitspanne in Sekunden; Stanard Wert ist 60]
# end
Wie kann ich einen "read-only" Administrator konfigurieren/erstellen?
Unter folgender Positionen kann für eine "Administrator" ein eigenes "Profil" erstellt werden zB "read-only" und dieses nachträglich einem "read-only" Administrator als Profil zugewiesen werden:
Datei:Fortinet-18.jpg
Datei:Fortinet-19.jpg
Datei:Fortinet-20.jpg
Datei:Fortinet-21.jpg
Datei:Fortinet-22.jpg
Wie aktiviere ich für einen lokalen User Two-Faktor Authentication anhand ODA?
Wenn man einen User lokal erfasst geschieht dies normalerweise anhand eines Usernamens und Passwortes. Möchte man nun -um die Sicherheit zu erhöhen- diesen User mit einem ODA (On Demand Authentication) versehen zB SMS Token kann dies auf Kommandozeile konfiguriert werden. Ausgangslage zu diesem Beispiel ist, dass ein Lokaler User mit Username und Passwort unter der folgenden Position erfasst wird:
User & Device > User Definition > Create New
NOTE Ab FortiOS 5.0.3 steht nach "Create New" ein Setup Wizard zur Verfügung. Wähle in diesem "Local User"
und vergebe einen Usernamen und Passwort. Definiere für SMS eine Mobiel Nummer sowie den SMS Server
jedoch aktiviere Two-Factor Authentication nicht! Dies geschieht über Kommandozeile!
Um nun dem lokalen User zusätzlich zum Usernamen und Passwort beim Login ein SMS Token zu senden (ODA) führe für den entsprechenden User den wir erfasst haben folgende Konfiguration aus:
NOTE Wenn ein SMS Server erfasst werden soll dh. "Custom" und nicht "FortiGuard" erfasse/konfiguriere diesen. Wie das geschieht siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_meinen_eigenen_SMS_Provider.2FServer.3F
# config user local
# edit [Wähle den entsprechenden User]
# set two-factor [Wähle disable | fortitoken | email | sms]
# set sms-server [Wähle fortiguard | custom]
# set sms-custom-server [Wähle den entsprechenden "Custom" SMS Server sofern vorhanden]
# set authtimeout [Setze das Timeout der Authentifizierung dh. "0 - 1440" wobei 0 = Global Konfiguration gilt]
# set auth-concurrent-override [Sind mehrfache Login's erlaubt "enable | disable]
# end
NOTE Wenn für "authtimeout" 0 gewählt wird gilt die "Globale Konfiguration" diese wird folgendermassen
definiert:
# config system global
# set two-factor-sms-expiry [Setze 30 bis 300 Sekunden; Standard ist 60 Sekunden gesetzt]
# two-factor-email-expiry [Setze 30 bis 300 Sekunden; Standard ist 60 Sekunden gesetzt]
# end
Der User kann nun zB für das SSL-VPN Portal konfiguriert werden. Wenn sich der User einloggt gibt er normal Usernamen und Passwort ein. Im Hintergrund werden die Informationen übermittelt und wenn der User auf SMS Two Factor Authentication gesetzt ist, wird ein SMS ausgelöst sofern Usernamen und Passwort korrekt verifiziert wurden. Dem User wird auf eine neue Seite weitergeleitet auf der er den ODA Token (On Demand Authentication) -der im über SMS zugesendet wird- eingegeben kann (Token Code:)!
NOTE Die Seite des SMS Token Code Eingabe kann über die "Replacement Message Groups" modifiziert und angepasst werden! FortiGate-5.0-5.2:FAQ#Was_sind_.22Replacement_Message_Groups.22_und_wie_verwende_ich_diese.3F
Grundsätzlich kann die Funktion für jede Authentifizierung im Zusammenhang mit FortiGate benutzt werden inder ein User lokal definiert wird. Remote Authenentifizierungen innerhalb von Gruppen wie zB LDAP und/oder Radius können nicht zusätzlich mit einer Two Factor Authentification ausgestattet werden dazu benötigt man den FortiAuthenticator.
Wie kann ich für die User und Gruppen das Authentication Timeoute setzen?
Ein "Authentication Timeout" kann auf Globaler Ebene gesetzt werden dh. für ALLE User oder auf gruppen Ebene für eine bestimmte Gruppe:
Global für ALLE User (exkl. "admin"):
# config user setting
# set auth-timeout [Anzahl Minuten; per Standard 5; Maximum 1440 minutes (24 Stunden)]
# set auth-timeout-type [idle-timeout | hard-timeout | newsession]
# end
Auf Gruppen Ebene:
# config user group
# edit [Name der Gruppe]
# set authtimeout [Anzahl Minuten; per Standard 0)
# end
NOTE Falls ein User Mitglied von mehreren User Gruppen ist, bei welchen jeweils ein gruppenspezifisches
authtimeout konfiguriert wurde, gilt für den Benutzer das global definierte authtimeout (Default 5 Min.).
Ab FortiOS 5.2 kann das "Login" Timeout komplett in den globalen Optionen deaktiviert werden. Dazu siehe
nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_das_Timeout_f.C3.BCr_ein_Login_komplett_ausschalten.3F
Desweiteren ist zu berücksichtigen, dass es für bestimte Funktionen wie den Admin, Console etc. spezifische Timeouts gibt die man explizit setzen kann:
# config system global
# set admintimout [Globales "admin" Timeout; Möglicher Wert 480 Minuten (8 Stunden); Standard 5 Minuten]
# set admin-console-timeout [Ueberschreibt "admintimeout" für Console; Standard 0 = Kein Timeout resp. "admintimeout gilt]
# set admin-ssh-grace-time [Timout für SSH zwischen Verbindung und Authentication; Möglicher Wert 10 - 3600 Sekunden; Standard 120 Sekunden]
# set remoteauthtimout 5
# end
Wie kann ich für jeden User (inkl. "admin") und/oder User in Gruppen ein "multiple login" verhindern?
Per Standard erlaubt eine FortiGate "multiple" Login's der User, Gruppen sowie für den "admin" User von der gleichen sowie unterschiedlichen IP's/Subnet. Um dies zu verhindern kann für den "admin" folgende Option deaktiviert werden:
# config system global
# set admin-concurrent [enable | disable]
# end
NOTE Wenn diese Option deaktiviert wird dh. nur noch ein Login möglich ist sollte die Option des "admin" Timeouts
berücksichtigt werden dh. wird die Option "admin-concurrent" deaktiviert und die Verbindung zur FortiGate wird
unvorhergesehen unterbrochen kann in einigen Situationen nicht mehr eingeloggt werden solange das Timeout des
"admin" noch besteht! Weitere Informationen betreffend des "admin" Timout siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F
Wenn ein "multiple login" für User/Gruppen verhindert werden soll so stehen folgende Optionen zur Verfügung:
Global für ALLE User/Gruppen:
# config system global
# set policy-auth-concurrent [Multiple Logins Definition; Standard 0 = No Limit]
# end
Sofern in „group“ und/oder „local“ override „enable“ gesetzt ist wird die Global Option überschrieben und gilt nicht mehr!
Auf Gruppen Ebene (Ueberschreibt Globale Konfig):
# config user group
# edit [Name der Gruppe]
# set auth-concurrent-override [enable | disable]
# set auth-concurrent-value [Wenn "auth-concurrent-override" auf enable Definiton der Login's zB "1"]
# end
Auf User Ebene (Ueberschreibt Globale Konfig):
# config user local
# edit [Name des User's]
# set auth-concurrent-override [enable | disable]
# set auth-concurrent-value [Wenn "auth-concurrent-override" auf enable Definiton der Login's zB "1"]
# end
Auch bei den User/Gruppen ist das Timout zu berücksichtigen. Dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F FortiGate-5.0-5.2:FAQ#Was_kann_ich_betreffend_.22User_Authentication.22_auf_globaler_User_Ebene_sowie_Grupen_Ebene_konfigurieren.3F
Was kann ich betreffend "User Authentication" auf globaler User Ebene sowie Grupen Ebene konfigurieren?
Betreffend Authentifizierung auf User Ebene sowie Gruppen Ebene sind verschiedenen Konfigurationen möglich. Eine davon wäre die Konfiguration des "Timeouts". Details siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F
Zusätzlich zum "Timeout" kann folgendes gesetzt werden:
Global für ALLE User:
# config user setting
# set auth-blackout-time [Setze die "blackout-time"; 0 - 3600 Sekunden möglich; Standard 0]
# set auth-http-basic [enable | disable]
# set auth-invalid-max [Anzahl möglicher Authentifizierung bevor User geblockt wird; Standard 5]
# set auth-lockout-duration [Lockout Zeit in Sekunden; Standard 0]
# set auth-lockout-threshold [Lockout Threshold; Danach wird "lockout-duration" ausgeführt; Standard 3]
# set auth-multi-group [enable | disable]
# set auth-secure-http [enable | disable]
# set auth-type [ftp | http | https | telnet]
# set auth-timeout [Anzahl Minuten; per Standard 5; Maximum 1440 minutes (24 Stunden)]
# set auth-timeout-type [idle-timeout | hard-timeout | newsession]
# config auth-ports
# end
NOTE Diese Konfiguration unter "config user setting" sind Global. In den Gruppen der User können diese Optionen mit Ausnahme des "Timeout's"
nicht differenziert gesetzt werden da diese Optionen nur unter "config user setting" vorhanden sind. Auch in den local User setting dh.
"config user local" kann mit Ausnhame des Timeouts diese Konfiguration anhand dieser Optionen nicht local für den User gesetzt werden
da diese Optionen nur unter "config user setting" dh. Global zur Verfügung stehen. Zu den oben angegeben Optionen folgende Erläuterungen:
auth-blackout-time Bei der Blackout Time handelt es sich um folgendes: Wenn eine Authentifizierung innerhalb von einer Minute 5 Mal
falsch durchgeführt wird so wir die Source IP des Authentifizierenden für die Blackout Time gesperrt!
auth-http-basic Wenn aktiviert wird so wird anstelle der Login Seite des Fortinet OS das reguläre Pop-Up Fenster des Browsers
angzeigt um die Authentifizierung durchzuführen.
auth-multi-group (Standard aktiviert) steuern ob ein User -sei es local oder ActiveDirectory in mehrer Gruppen vorkommt. Ist dies
nicht der Fall dh. jeder User nur in einer Gruppe kann diese Funktion deaktiviert werden. Die Funktione
auth-secure-http Wird diese Option aktiviert so wird ein Redirect ausgeführt auf den sicheren Port HTTPS (per Standard deaktiviert)
auth-type Wenn der User eine Authentifizierung durchführen soll betreffend einer Firewall Policy können hier die verschiedene
Protokolle die für diese Authentifizierung benutzt werden sollen aktiviert/deaktiviert werden. Per Standard sind alle
Protokolle aktiviert/definiert.
config auth-ports Werden keine Standard Ports benutzt für "ftp | http | https | telnet" können diese "nicht" Standard Ports hier definiert
werden.
Redirection
In einer Redirection zB für eine Authentifizierung wird auf der Fortigate die IP anstelle des FQDN benutzt?
Wenn zB in einer "Identiy Based Policy" zB für HTTPS Zugriff (User muss sich Authentifizieren um HTTPS aufzurufen) benutzt wird so wird sobald der User eine HTTPS Seite aufruft ein Redirect auf die Authentifizierungs Seite (ebenfalls ein HTTPS Port; Standard 1003) der Fortigate ausgelöst. Die Weiterleitung auf diese Authentifizierungs Seite geschieht IP basierend dh. im Link der Authentifizierungs Seite erscheint die interne IP der Fortigate. Wird mit Zertifikaten gearbeitet löst dies jedoch wieder eine Zertifikats Hinweis/Fehlermeldung aus da das Zertifikat Namens Basierend ist und nicht IP basierend. Die Lösung wäre den Redirect Namens basierend auszulösen und nicht IP basierend.
NOTE Der Lösungsansatz den Redirect Namens basierend auszulösen und nicht IP basierend ist auch dann in Anwendung zu
bringen wenn der User hinter einem NAT Device (zB Router) sitzt!
Für das bessere Verständnis nachfolgend ein kurzes Schema wie so ein Redirect ausgelöst wird (per Standard):
| USER | ----> network -----> | FortiGate | -- HTTPS Site/Resources
1 --------> User "matched" eine Firewall Rule/Policy für HTTPS in der "Identiy Based Policy" aktiviert ist
2 <------- Ein Redirect auf einen HTTPS Port (Standard 1003) und auf eine IP Adresse der Fortigate wird ausgelöst
3 --------> User führt Authentifizierung aus
4 --------> User Authentifiziert sich erfolgreich und wird zur gewünschten HTTPS Seite weitergeleitet
Nachfolgend wird über die Console aufgezeigt wie die Konfiguration durchzuführen ist damit ein FQDN (Fully Qualified Domain Name) benutzt wird anstelle der IP:
ACHTUNG Der benutzte FQDN muss sauber "intern" aufgelöst werden können. Wird ein externes Zertifikat benutzt das extern mit einer
Public IP auflöst muss anhand eines Split DNS Servers die nötigen Konfiguration durchgeführt werden damit "intern" der
FQDN mit einer "internen" IP aufgelöst wird. Ist intern kein Splitt DNS Server vorhanden kann die Fortigate herangezogen
werden um dies zu erreichen!
FortiGate-5.0-5.2:FAQ#Kann_ich_auf_der_Fortigate_einen_Splitt_DNS_Server_einrichten.3F
# config firewall policy
# edit [Gebe die entsprechende Policy ID an inder die "Identiy Based Policy" für HTTPS Zugriff aktiviert wurde]
# set auth-redirect-addr "[Gebe hier den Fully Qualified Domain Name an]"
# next
# end
Wenn es nötig wird eine spezielle IP Adresse zu definieren (zB NAT Device) dann kann auch eine IP definiert werden:
# config firewall policy
# edit <my_policy_ID>
# set auth-redirect-addr "[Definiere hier die spezielle IP Adresse zB NAT IP Adresse]"
# next
# end
Wenn man den Standard Port 1003 verändern möchte dh. auf einen anderen Port dann benütze folgendes:
# config system global
# set auth-https-port [Setze hier den gewünschten HTTPS Port]
# end
Möchte man HTTP für die Authentifizierung ebenfalls aktivieren (Per Standard deaktiviert) führe folgendes aus:
# config user setting
# set auth-secure-http enable
# end
Authentication
Wie kann ich eine Two-Factor Authentication zB ODA implementieren?
ODA steht für "On Demand Authentication" was wiederum zu vestehen ist ist als "Auf Abruf". Diese Authentifizierungs Methode ist die Gleiche wie eine Token Authentifizierung jedoch wird bei ODA diese durch den User selber ausgelöst (On Demand). Für weitere Informationen siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_einen_lokalen_User_Two-Faktor_Authentication_anhand_ODA.3F
Wie kann ich Authentifizierte User auf der FortiGate Auflisten/Monitoren?
Wenn auf einer FortiGate eine Authentifizierung zB anhand Radius, LDAP, Lokal durchgeführt wird, können die authentifizierten User über GUI anhand des Monitors aufgelistet werden. Die entsprechende Position findet man unter:
User & Device > Monitor > Firewall
Diese authentifizierten User können ebenfalls über CLI aufgelistet werden. Dazu steht für das Filtering ebenfalls ein entsprechende Funktion zur Verfügung:
# diagnose firewall auth filter
Current filters used to list authenticated policies:
Policy ID: any
User: any
Group: any
Source(IPv4): any
Source(IPv6): any
Method: any
Um einen Filter zu setzen benutze die entsprechend zur Verfügung stehenden Filter:
# diagnose firewall auth filter ?
clear Clear all filters.
source IPv4 source address.
source6 IPv6 source address.
policy Policy ID.
user User name.
group Group name.
method method
NOTE Um zB eine "source" zu setzen benütze:
# diagnose firewall auth filter source 192.168.1.1
Danach kann der Filter abermalls kontrolliert werden:
# diagnose firewall auth filter
Current filters used to list authenticated policies:
Policy ID: any
User: any
Group: any
Source(IPv4): 192.168.1.1
Source(IPv6): any
Method: any
Nun können die "authentifizierten" User anhand dieses gesetzten Filter aufgelistet werden:
# diagnose firewall auth list
Um den Filter zurück zu setzen benütze:
# diagnose firewall auth filter clear
Wenn es bei den aufgelisteteten User zu Problemen kommt betreffend Authentifizierung kann ebenfalls die betreffende Session des Users aufgelistet werden. Dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Welche_Informationen_werden_f.C3.BCr_eine_einzelne_Session_in_der_.22session.22_Liste_aufgef.C3.BChrt_und_was_bedeuten_diese.3F
Radius
Wie kann ich einen Radius Server Anbindung Troubleshooten?
Nun ein Radius Server wird auf der FortiGate über die folgenden Position konfiguriert resp. hinzugefügt:
User & Device > Authentication > RADIUS Servers
Dabei werden Angaben wie der Name (FQDN) sowie die IP des Radius Server angegeben. Die Konfiguration des Radius Server geschieht auf der FortiGate anhand eines "Preshared Key" (Server Secret). Ebenso wird die FortiGate auf dem Radius Server als sogenannten "Radius Client" erfasst und zwar mit demselben "Preshared Key". Anhand dieser Einträge sowie des "Preshared Key" wird der Traffic über TCP 1812 (New Radius) sowie -sofern benutzt- für das Accounting TCP 1813 verschlüsselt und Authorisiert. Die Etablierung der Authentifizierung kann über die FortiGate - sofern diese als Radius Client auf dem Radius Server erfasst wurde - anhand des "Test" Button durchgeführt werden. Um die Komunikation zwischen dem Radius Client und Server zu überprüfen stehen folgende Diagnose Kommandos zur Verfügung:
Teste einene entsprechenden User mit dessen Passwort:
# diagnose test authserver radius [Server Name] [Schema] [Gebe einen entsprechenden User an] [Gebe das Passwort an des gewählten Users]
NOTE Als "Schema" kann folgendes definiert werden:
chap, pap, mschap, mschap2
Kontrolliere den Traffic über den entsprechenden Port:
# diagnose sniffer packet [Name des Interfaces zB "internal"] 'port 1812' 3
NOTE Weiter Informationen betreffend "Sniffer" Kommando siehe nachfolgenden ARtikel:
FortiGate-5.0-5.2:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F
Muss der Radius Port von New Radius 1812 auf Old Radius 1645 gewechselt werden führe folgendes auf der Kommandozeile durch:
# config system global
# get | grep radius-port
radius-port :1812
# set radius-port 1645
# get | grep radius-port
radius-port :1645
# end
Desweiteren ist es möglich die Kommunikation zwschen der FortiGate sowie dem Radius Server einzusehen anhand folgenden Debug Mode:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application authd –1
NOTE Beim "authd" handelt es sich um den Deamon für sämtliche lokalen, remote sowie FSSO Authentifizierungen!
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Deaktiviere die Debug Funktion
# diagnose debug disable
Setze den Debug Filter zurück
# diagnose debug reset
Desweiteren steht für ein Debug betreffend Radius "fnbamd" zur Verfügung:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application fnbamd –1
NOTE Beim "fnbadm" handelt es sich um den "Fortigate non-blocking auth deamon"!
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Deaktiviere die Debug Funktion
# diagnose debug disable
Setze den Debug Filter zurück
# diagnose debug reset
Kann ich für eine FortiGate über Radius mit LDAP Anbidung ein Single-Sign-On konfigurieren (RSSO)?
Ja dies ist möglich und wird im nachfolgenden Dokument von Fortinet anhand des FortiAuthenticator's Schritt für Schritt beschrieben:
Datei:FortiGate-Solutions-RSSO-RADIUS-Single-Sign-On.pdf Datei:Fortios-rsso-with-win-server-2012-and-nps.pdf
Active Directory (LDAP)
Wie binde ich ein Active Directory (LDAP) für eine Authentifizierung ein?
Nun um ein ActiveDirectory für verschiedenen Authentifizierungen einzubinden gehe folgendermassen vor:
User & Device > Authentication > LDAP Server > Create New
Datei:Fortinet-719.jpg
NOTE Für "Regular" (empfohlen) muss ein Active Directory User erstellt werden mit einem entsprechenden Passwort.
Es wird empfohlen diesen User als Read/Only Administrator zu erfassen und diesem Rechte über das ganzen Tree resp.
Active Directory zu vergeben. Natürlich ist es möglich eine regulären User zu erfassen (nicht Administrator)
und diesem die entsprechenden Rechte im Active Directory zu vergeben! Sobald der entsprechende User mit dessen
Passwort unter "Regular" konfiguriert wurde kann anhand des Button "Test" die Konfiguration getestet werden. Dieser
Test beinhaltet nur den Access dh. es zeigt nicht ob durch das Active Directy ein "browsing" durchgeführt werden
kann. Möchte man dies Testen so benutze das gezeigte "icon" denn damit lässt sich das Active Directory effektiv
öffnen:
Datei:Fortinet-837.jpg
Wenn die Verbindung zum Active Directory verschlüsselt durchgeführt werden soll (Port 689) so muss ein entsprechendes
Certificat definiert werden denn diese Verbindung basiert auf einer SSL Verbindung! Es stehen LDAPS sowie STARTTLS zur
Verfügung.
Sobald die Active Directory (LDAP) Konfiguration erfolgreich durchgeführt wurde kann nun eine Gruppe erstellt werden um dort das Active Directory einzubinden:
User & Device > User > User Group
Datei:Fortinet-720.jpg
NOTE Nun im unteren Bereich anhand des "Add" Button kann der entsprechende Active Directory (LDAP) Server hinzugefügt werden.
Die Position "Any" bedeutet, dass ein entsprechender User (Active Directory Username) über das "ganze" Active Directory
mit dessem Tree durchsucht wird. Wir der entsprechende User gefunden wird die Authentifizierung durchgführt. Die Position
"Specify" gibt die Möglichkeit eine Gruppe zu definieren. Anhand dieser Definition wird wiederum der Tree des Active
Directory durchsucht um festzustellen ob der User der eine Authentifizierung durchführt Mitglied ist dieser Gruppe. Ist
dies der Fall wird eine Authentifizierung durchgeführt. Der Gruppen Name der unter "Specify" angegeben wird muss "unique"
sein dh. wenn mehrer Gruppen mit dem gleichen Name im Tree des Active Directory existieren gilt "Top Down first Match wins".
Wenn mehrere Gruppen definiert werden soll so kann anhand des "Add" Button eine weitere Zeile mit einer weiteren Gruppen
Definition hinzugefügt werden. Um eine LDAP Anbidung zu troubleshooten siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_.22Active_Directory.22_.28LDAP.29_Anbindung_debuggen.3F
Die Generellen Vorbereitungen für eine Active Directory Authentifizierung sind abgeschlossen nun kann diese Konfiguration für verschiedenen weitere Konfigurationen benutzt werden wie:
FortiGate-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_einen_Webfilter_betreffend_.22Local_Category.22_eine_Authentifizierung_.28authenticate.29_.C3.BCber_Active_Directory_.28LDAP.29_konfigurieren.3F FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
Nachfolgend einige wichtige Informationen betreffend einer Anbindung eines Active Directory's dh. welche Ueberlegungen durchgeführt werden sollten sowie welche Möglichkeiten zur Verfügung stehen:
Bestimmung und Identifizierung folgender LDAP Komponenten:
• User
• User group
• container (Shared folder)
• Organization unit (ou)
Die Komponenten besitzen folgende Active Directory Struktur:
• root wird definiert als dc
• organizational unit wird definiert als ou
• container oder user/group wird definiert als cn
Daraus resultiert der dn dh. im Klartext werden die Struktur vom User zu root aufgelistet. Um den dn zu ermitteln gehen wir von folgenden Beispiel aus:
Datei:Fortinet-205.jpg
Somit ergiebt sich folgendes:
• ou=Testou2
• ou=Testou1
• ou=Vancouver
• dc=get
• dc=local
• cn=Users
• dc=get
• dc=local
SIMPLE BINDING WITHOUT GROUP SEARCH
Nachfolgends Beispiel zeigt eine Anbindung ohne "group search" Funktion (simple binding). Dies wird benutzt, wenn
die User die Authentifiziert werden müssenk, direkt in containers oder organizational units befinden dh. in
unserem Beispiel sind die User "Testou1" und "Testou2" in der organizational unit "Vancouver". Somit ergiebt sich
folgendes:
Vancouver --> get --> local
oder
• ou=Vancouver
• dc=get
• dc=local
Um dies zu konfiguriere gebe auf der Console folgendes ein:
# config user ldap
# edit ldaptest
# set server [Active Directory Server IP]
# set cnid cn
# set dn ou=Vancouver,dc=get,dc=local
# next
# end
ACHTUNG Nur User die direkt in der organizational unit "Vancouver" drin sind werden authentifiziert.
User die nicht in dieser organizational unit oder unter "childs" (ous) von der organizational unit
"Vancouver" drin sind werden nicht authentifiziert. Ebenfalls User die in Gruppen drin sind, die
unter der organizational unit "Vangouver" drin sind, werden nicht authentifiziert.
REGULAR BINDING WITHOUT GROUP SEARCH
Nachfolgends Beispiel zeigt ebenfalls eine Anbindung ohne "group search" Funktion (regular binding) jedoch
befinden sich die User in verschiedenen containers und/oder organizational units! Für diese Art der
Konfiguration wird ein username und password benötigt um die Anbidung an das Active Directory durchzuführen.
Für diesen Zweck sollte auf dem Active Directory ein spezieller User erstellt werden der über die nötigen Rechte verfügt
in die vers. containers oder organizational units' reinzuschauen (Read Only Administrator). In unserem Beispiel
wären dies der User "user1ou1" in der orgainizational unit "ou1":
# config user ldap
# edit testldap
# set server [Active Directory Server IP]
# set cnid cn
# set dn dc=get,dc=local
# set type regular
# set username cn=user1ou1,ou=ou1,dc=get,dc=local
# set password [Passwort des Users user1ou1]
# next
# end
ACHTUNG In diesem Beispiel spielt es keine Rolle "wo" sich die User befinden dh. in welchen "containers"
und/oder "organizational units".
SIMPLE BINDING WITH GROUP SEARCH
Nachfolgends Beispiel zeigt eine Anbindung mit "group search" Funktion (simple binding). Dies wird benutzt, wenn
die User die Authentifiziert werden müssenk zu einer bestimmten Gruppe gehören und ALLE User dieser Gruppe liegen im
gleichen containers oder organizational units! Es ergiebt sich folgendes wenn eine Gruppe "Test Users"
existiert im container "Builtin" sowie alle Mitglieder der Gruppe "Test Users" in dem container "Users" befinden:
folgendes:
Builtin > Test Users --> get --> local
oder
• cn=Test Users
• cn=Builtin
• dc=get
• dc=local
Um dies zu konfigurieren gebe folgendes über die Console ein:
# config user ldap
# edit ldaptest
# set server [Active Directory Server IP]
# set cnid cn
# set dn cn=Users,dc=get,dc=local
# set group cn="Test Users",cn=Builtin,dc=get,dc=local
# next
# end
ACHTUNG Wenn in den Namen Leerschläge vorkommen dh. wie in unserem Beispiel "Test Users" so muss bei
der Konfiguration der Name mit Hochkommas angegeben werden!
REGULAR BINDING WITH GROUP SEARCH
Nachfolgends Beispiel zeigt ebenfalls eine Anbindung mit "group search" Funktion (regular binding) jedoch
befinden sich die User in Gruppen und diesen Gruppen in verschiedenen containers und/oder orgainizational
units. Ebenfalls können dies Mitglieder dieser Gruppe in "child" oder "parent" container existieren! Für diesen
Zweck sollte auf dem Active Directory ein spezieller User erstellt werden der über die nötigen Rechte verfügt in
die vers. containers oder organizational units' reinzuschauen (Read Only Administrator). In unserem Beispiel
wären dies der User "user1ou1" in der orgainizational unit "ou1":
Builtin > Test Users --> get --> local
oder
• cn=Test Users
• cn=Builtin
• dc=get
• dc=local
Um dies zu konfigurieren gebe folgendes über die Console ein:
# config user ldap
# edit ldaptest
# set server 10.151.0.35
# set cnid cn
# set dn "dc=get,dc=local"
# set type regular
# set username cn=user1ou1,ou=ou1,dc=get,dc=local
# set password [Passwort des Users user1ou1]
# set group cn="Test Users",cn=Builtin,dc=get,dc=local
# next
# end
Um eine Verbindung betreffend "Active Direktory" zu debuggen benütze folgendes:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_.22Active_Directory.22_.28LDAP.29_Anbindung_debuggen.3F
Wie finde ich für eine Active Directory Anbindung (Regular) den entsprechenden User DN resp. Bind DN heraus?
Wenn ein Active Directory Anbindung auf einer FortiGate konfiguriert wird so kann das über das Web Mgmt. Interface durchgeführ werden unter folgender Position:
User & Device > Authentication > LDAP Server
Um einen Active Directory Anbindung für die meist gebräuchliche Art dh. "Regular Bind" zu konfiguriren sind 3 Grundsätzliche Informationen unerlässlich:
Administrator Username und dessen Passwort
User DN (Regular Bind, Bind Type User DN mit Passwort)
Bind DN (Distiguished Name)
Für den Administrator empfehlen wir - unter normalen Umständen - einen Administrator auf dem Active Directory zu erstellen mit "vollen" Rechten jedoch "read-only". Dieser Administrator wird benutzt um die Verbindung in das Active Directory zu ermöglichen. Um den entsprechenden "User DN" herauszufinden kann "auf" dem Active Directory Server in einer DOS Box folgendes eingegeben werden:
NOTE Die Dos Box dh. "cmd" muss auf dem Active Directory Server als Administrator gestartet werden. Wird dies nicht explizit
durchgeführt wird "dsquery" nicht gefunden!
> dsquery user -name [Name des Adminstrators]
cn=Adminstrator,cn=users,dc=also,dc=com
Um den korrekten "Bind DN" herauszufinden kann "auf" dem Active Directory Server in einer DOS Box folgendes eingegeben werden:
> dsquery user -samid Administrator
cn=Adminstrator,cn=users,dc=also,dc=com
Somit kann für die Konfiguration folgendes benutzt werden:
Name [Name des Active Directory Servers; empfohlen FQDN]
Server IP/Name [IPv4 Adresse des Active Directory Servers]
Server Port 389
Common Name Identifier ["cn" für vollständiger Name | "sAMAccountName" für Login Name]
Distiguished Name [dc=also,dc=com]
Bind Type Regular
User DN [1:1 Output von "dsquery user -samid Administrator" dh. cn=Adminstrator,cn=users,dc=also,dc=com]
Password [Entsprechendes Passwort des Administrator Username]
NOTE Wird für "Common Name Identifier" die Konfiguration "cn" benutzt muess die User mit dessen vollständigen Namen einloggen
im Gegensatz zu "sAMAccountName" der den Login Name der User akzeptiert!
Wie kann ich für eine Active Directory (LDAP) Anbindung ein Passwort Expyring Renewal Nachricht konfigurieren?
Wenn zB ein SSL-VPN betreffend Authentifizierung über ein Active Directory konfiguriert wird ist zu berücksichtigen, dass wenn ein "Passwort Renewal" konfiguriert wurde im Active Directory, dies ebenfalls für die Active Directory Anbindung auf der FortiGate zu konfigurieren ist. Dies bedeutet führe folgendes durch in der CLI um die "Expyring" Warnung sowie das "Renewal" zu aktivieren:
# config user ldap
# edit [LDAP Server Name]
# set password-expiry-warning [enable oder disable]
# set password-renewal [enable oder disable]
# end
NOTE Wird diese Konfigurtion durchgeführt muss berücksichtigt werden, dass die LDAP Anbindung auf der
FortiGate anhand eines Administrators durchgeführt wird der "Read/Write" Rechte besitzt, denn wenn
die Funktion "password-renewal" aktiviert ist so muss ein Schreibprozess durch die LDAP Anbindung
auf der FortiGate in das ActiveDirecory erfolgen! Ohne Read/Write Rechte des Administrators -der
die Anbindung zum ActiveDirectory ermöglicht- kann dieser Schreibprozess nicht erfolgen. Im Grundsatz
wird dies nicht empfohlen!
Kann ich einen WiFi Client/Workstation über einen Active Directory LDAP Server unter Benutzung von WPA/WPA2 Authentifizieren?
Ein direkte Anbindung eines "LDAP" Servers im Zusammenhang mit einer "WPA/WPA2 LDAP Authentifizierung" wird für WiFi Clients/Workstations unterstützt. Jedoch nicht jeder "LDAP" Server. Dies bedeutet: der benutzte "LDAP" Server muss erlauben, dass das Passwort des "WiFi Clients/Workstation" über "clear-text" gesendet wird resp. der benutzte "LDAP" Server muss "clear-text" Passwörter akzeptieren. Ein "Windows Active Directory" unterstützt diese Art dh. "clear-text" Uebermittlung nicht mehr (seit Windows 2000). Aus diesem Grund müssen "WiFi Clients/Workstations" für "WPA/WPA2 LDAP Authentifizierung" über einen OpenLDAP eingebunden werden da nur ein "OpenLDAP" ein "clear-text" Uebermittlung des Passwortes akzeptiert. Der Grund für diesen Umstand ist, das "WPA" und "WPA2" Sicherheits Protokolle verschiedene "Hash Schemas" verwenden die nicht "Windows Active Directory" Kompatibel sind. Das ist der Grund wieso eigentlich für "WPA/WPA2" LDAP die Anbindungen über "OpenLDAP" Server geschehen muss/sollte.
http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33251&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=33038401&stateId=0
Um das Problem zu umgehen - wenn "OpenLDAP" nicht in Frage kommt - ist die Authentifizierung über Radius durchzuführen in dem das "Windows Active Directory" Angebunden/Konfiguriert wurde. Dies bedeutet: Die "WiFi Clients/Workstation" senden für "WPA/WPA2 LDAP Authentifizierung" deren Passwörter über "clear-text" zum Radius Server. Dieser erstellt die nötigen "Hash Schemas" die durch "Windows Active Directories" verstanden werden und sendet die Authentifizierungs Informationen zum angebundenen/konfigurierten "Windows Active Directory". Somit kann die Authentifizierung für "WPA/WPA2 LDAP Authentifizierung" über ein "Windows Active Directory" durchgeführt werden. Als Radius Server kann ein "FortiAuthenticator" eingesetzt werden oder auch anderen Radius Server die eine "Windows Active Directory" Anbinung ermöglichen.
Wie kann ich die "Password Renewal" Funktion für ein "Active Directory" (LDAP) Anbindung aktivieren?
Wenn ein "Active Directory" (LDAP) Anbindung konfiguriert wird zB. im Zusammenhang mit FortiClient IPSec Verbindung oder SSL-VPN stellt sich die Frage - wenn auf einem Active Directory die "Password Renewal" Funktion aktiviert ist - wie die User das Passwort wechseln können für das "Active Directory" wenn diese nicht Vorort sind? Diese Situation ist dann zu berücksichtigen, wenn User nicht sehr oft Vorort sind im internen LAN und somit angewiesen sind das Passwort zB über FortiClient IPSec oder SSL-VPN zu wechseln. Für diese Konfiguration gelten zwingend folgende Voraussetzungen:
Die Implementation für die "Password Renewal" Funktion ist zwingend beschränkt für "Microsoft Active Directory". Andere
LADP Anbindungen wie zB OpenLDAP, Oracle usw. werden nicht unterstützt. Die Funktion des "Password Renewal" muss in der
entsprechenden "Active Directory" Konfiguration auf der FortiGate mit folgenden Kommandos aktiviert werden:
# config user ldap
# edit [Name des entsprechenden Active Directory resp. "Microsoft Active Directory"]
# set password-expiry-warning [disable | enable]
# set password-renewal [disable | enable]
# end
Desweiteren ist zwingend, dass die entsprechende Konfiguration auf der FortiGate für das "Active Directory" resp. für den
"Microsoft Active Directory" Server mit verschlüsselten Port durchgeführt werden muss dh. der Port muss von 389 auf 689
gesetzt werden sprich LDAPS. Die "Password Renewal" Funktion wird nicht über "clear-text" Port unterstützt dh. 389. Für
die Konfiguration für LDAPS ist folgendes zu definieren ausgehend davon das ein bestehende Konfiguration besteht:
# config user ldap
# edit [Name des entsprechenden Active Directory resp. "Microsoft Active Directory"]
# set secure ldaps
# set ca-cert [Name des entsprechenden Zertifikats des "Microsoft Active Directory" Server]
# end
NOTE Das benutzte Zertifikat des "Microsoft Active Directory" Servers muss auf der FortiGate entsprechend Importiert werden!
Wenn diese zwei Voraussetzungen gegeben sind kann die "Password Renewal" Funktion im Zusammenhang mit FortiGate Funktionen benutzt werden.
Eine "Active Directory" Replizierung funktioniert nicht über ein VPN Tunnel (netbios forward)?
Wenn zwei FortiGate's verbunden werden über einen VPN Tunnel und über diesen eine "Active Directory" Replizierung durchgeführt wird so wird dieser Traffic geblockt. Der Grund dafür ist das der "netbios" Traffic "forward" nicht über ein Interface per Standard erlaubt ist. Um diesen Traffic dennoch zu erlauben muss auf dem entsprechenden Interface "netbios" erlaubt werden:
# config system interface
# edit [Name des Interface]
# set netbios-forwarding enable
# end
NOTE Diese Konfiguration ist durchzuführen für eine NAT Firewall. Wird eine Transparent
Firewall benutzt resp. muss "netbios forward" über eine Transparent Firewall konfiguriert
werden muss folgendes Kommando abgesetzt werden:
# config system interface
# edit [Name des Interface]
# set l2forward enable
# end
Wie kann ich eine "Active Directory" (LDAP) Anbindung debuggen?
Um eine "LDAP" Anbindung zu testen kann ein entsprechender User mit dessen Passwort der im ActiveDirectory existiert herangezogen werden um einen entsprechenden Test auf der FortiGate durchzuführen:
# diagnose test authsever ldap [Server Name] [Gebe einen entsprechenden User an] [Gebe das Passwort an des gewählten Users]
Desweiteren kann über "diagnose debug" Befehl folgendes ausgeführt werden:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application fnbamd –1
NOTE Beim "fnbadm" handelt es sich um den "Fortigate non-blocking auth deamon"!
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Deaktiviere die Debug Funktion
# diagnose debug disable
Setze den Debug Filter zurück
# diagnose debug reset
Desweiteren steht für ein Debug "authd" zur Verfügung für alle lokalen, remote sowie FSSO Authentifizierungen:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application authd –1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Deaktiviere die Debug Funktion
# diagnose debug disable
Setze den Debug Filter zurück
# diagnose debug reset
Eine weitere Möglichkeit LDAP Authentifizierungs Probleme zu verifizieren ist über das Sniffer Kommando eine entsprechende "error" Nachricht zu erhalten zB "user not found". Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiGate:Diagnose-Sniffer-Guide#Sniffe_Packet_f.C3.BCr_LDAP_Port_389_um_entsprechende_.22error.22_Nachrichten_zu_erhalten.3F
Wie kann ich eine "Active Directory" (LDAP) Anbindung testen?
Um eine Anbindung zu einem Active Directory auf "User" Basis zu testen kann folgender "diagnose test" Befehl ausgeführt werden:
# diagnose test authserver ldap [Name Windows LDAP Server] [Username] [Passwort]
authenticate '[Username]' against 'WindowsLDAP' succeeded!
FSSO (Fortinet Single-Sign-On)
Wie ist FSSO zu verstehen?
FSSO steht für "Fortinet Single-Sign-On" und steht im Zusammenhang mit "Directory Services". Es werden Windows Active Directory unterstützt sowie Novell eDirecotry. FSSO wird ebenfalls durch FSAE (Fortinet Server Authentication Extension) benutzt oder früher war FSSO auch bekannt als "Fortinet Server".
Was kann mit FSSO durchgeführt/angezeigt werden?
FSSO kann folgende Information verarbeiten:
> Zeigt Login Events an
> Zeigt Workstation Name, Domain und User an
> Löst den Workstation Name zur korrespondierenden IP Adresse auf
> Löst Gruppen auf zu dessen User Mitglieder sind
> Sendet Login Informationen zum Fortigate Device
> Erstellt Log Einträge auf dem Fortigate Device
Grundsätzlich gilt: Die FSSO Funktion überwacht welche User über Active Directory oder eDirecorry eingeloggt sind und leitet diese Information dem Fortigate Device weiter! Ist der User Mitglied einer Gruppe die in einer Policy definiert wurde, erhält der User Zugriff auf die Netzwerk Resource!
Es gibt zwei Arten wie FSSO arbeitet; welche sind das?
FSSO kann in zwei vers. Arten ausgeführt werden:
Domain Controller Agent mode
Polling mode
Wie funktioniert der "Controller Agent mode"?
Für den "Controller Agent mode" muss auf jedem Domain Controller der Domain Controller Agent installiert werden. Zusätzlich auf einem Windows Server der Wahl muss der Collector Agent installiert werden. Dieser "Collector Agent" erhält die Login Informationen übe den "Domain Controller Agent" und leitet diese dem Fortigate Device weiter. Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy.
NOTE In dieser Konstellation gilt als Nachteil, dass auf jedem Domain Controller ein Agent
(Software) zu installieren ist. In grossen Umgebungen kann dies einigen Aufwand bringen.
Für die korrekte Uebermittlung der Informationen zum Collector Agent muss zwischen dem
Domain Controller und Collector Agent eine garantierte Bandbreite von 64 kb zur Verfügung
stehen.
Wie funktioniert der "Polling mode"?
Für den "Polling mode" muss auf dem Domain Controller kein "Domain Controller Agent" installiert werden. Es reicht den Collector Agent auf einem Server der Wahl zu installieren. Der "Collector Agent" weist den Domain Controller in kurzen (wenige Sekunden) Abständen an (polling) die Login Informationen der User zu übermitteln um diese sogleich dem Fortigate Device weiterzuleiten. Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy.
NOTE Wenn der "Domain Controller" ausgelastet ist, kann es vorkommen das Login Informationen nicht
durch den "Collector Agent" verifiziert werden. Dies gilt als Nachteil wobei in grossen
Environemnts mit vielen Domain Controllern der Vorteil übewiegt nicht auf jedem Domain
Controller eine Software zu installieren da die Installation eines Collector Agents ausreicht!
Ueber welchen Port kommuniziert FSSO (Collector Agent) und der Fortigate Device?
FSSO (Collectory Agent) benutzt den Port 8256 für die Uebermittlung der Informationen zum Fortigate Device!
Kann NTLM im Zusammenhang mit FSSO benutzt werden?
Ja dies ist möglich. In so einer Konstellation initiert der Fortigate Device eine NTLM Komunikation (negotiation) mit dem Client Browser (Internet Explorer only; FireFox benötigt ein NTLM Plug-In). Der Fortigate Device übermittelt die NTML Package zum "Fortigate Collector" und dieser überprüft die Informationen über den "Domain Controller". Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy. Auf der entsprechenden Rule muss für die Identity Based Policy folgende Optionen gesetzt werden:
# config firewall policy
# edit [Gebe den Integer an der entsprechenden Policy]
# set srcintf [Gebe das Source Interface an]
# set dstintf [Gebe das Destination Interface an]
# set srcaddr [Definiere die Source Adresse/n an]
# set dstaddr [Definiere die Destination Adresse/n an]
# set action accept
# set service "webproxy"
# set identity-based [enable]
# set ip-based [enable]
# set active-auth-method [ntlm]
# set sso-auth-method [fsso]
# edit [Gebe den Integer an einer neuen Identity Based Policy zB "1"]
# set schedule "always"
# set utm-status [enable]
# set groups [Definiere eine Active Directory Gruppe]
# set webfilter-profile [Definiere einen entsprechenden WebFilter]
# set profile-protocol-options [Definiere ein entsprechendes Profil]
# next
# end
Wie kontrolliere ich ob der FSSO "Collector Agent" und die Fortigate zusammen kommunzieren?
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application auth 8256
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Nach Gebrauch deaktivieren wieder den debug Modus!
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Wie kann ich kontrolliere welche User moment eingeloggt sind über FSSO?
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug authd fsso list
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
NOTE Zusätzlich zu der Angaben "auth fsso list" kann "firewall auth list" benützt werden um die
Authentifizierung an der Firewall anzuzeigen!
Desweiteren steht anstelle von "list" noch folgende Parameter zur Verfügung:
clear logon (Löscht alle Login Informationen)
list (Listes alle momentan Login auf)
refresh-groups (Erneure das Group Mapping)
refresh-logons (Re-Synchronisiere die Login Database)
server status (Zeige FSSO Server Verbindungen)
summary (Summary der momentanen Login's)
Um den Debug auszuschalten führe folgendes aus:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
HA (High Availibility)
Gibt es für Cluster (Hardware und/oder Virtuell) Spezielle Konditionen bei Fortinet?
Nun Fortinet bietet seinen Resellern Spezielle Konditionen auf Hardware (keine speziellen Konditionen auf Virtuell Appliance sprich VMware) für einen Cluster! Dabei gelten folgenden Vorrausetzungen:
*************************************************************************************************************************************
* NOTE Diese Informationen sind ab 1. April 2015 "nicht mehr gültig" dh. bei spezielleren Projekten grösser 15'000 CHF hat man die *
* Möglichkeit Anfragen über einen SPR (Special Price Request) bei Fortinet zu platzieren. Diese Aenderungen gelten für die *
* Schweiz und Oesterreich dh. in allen anderen Ländern ist diese Aenderung dh. dass Fortinet keine Cluster Konditionen mehr *
* bietet seit mehr als 2 Jahren aktiv. *
*************************************************************************************************************************************
-> Nur auf Hardware 100D oder grösser
-> Hardware muss identisch sein dh. zB 2 X 100D
-> FortiCare (min. 8 X 5) und FortiGuard (Bundle) muss bezogen werden für jeden Node (ab 1000C "Next Generation Firewall" FortiGuard Update Service möglich)
-> Minimum Laufzeit für FortiCare (min. 8 X 5) und FortiGuard für jeden Node mind. 2 Jahre
-> Darauffolgende Jahre FortiCare (min. 8 X 5) und FortiGuard keine speziellen Konditionen für 1 Jahr Renewal
-> Darauffolgende Jahre FortiCare (min. 8 X 5) und FortiGuard spezielle Konditionen für 2 Jahr Renewal oder mehr
Folgende Konditionen gelten für Hardware und/oder Services:
-> Hardware = 1ter Node 100% (Regulärer Partnerpreis)
2ter node 50% auf Regulärer Partnerpreis
Bedeutet
Listenpreis minus Partner Status Discount zB Bronze 25% = Regulärer Partnerpreis
Regulärer Partnerpreis minus Cluster Discount 50% = Cluster Konditionen Hardware
-> Service (FortiCare / FortiGuard (Bundle) ) = 1ter Node 100% (Regulärer Partnerpreis)
2ter node 30% auf Regulärer Partnerpreis
Bedeutet
Listenpreis minus Partner Status Discount zB Bronze 12.5% = Regulärer Partnerpreis
Regulärer Partnerpreis minus Cluster Discount 30% = Cluster Konditionen Service
Folgende Dokumente geben detailliert Auskunft über das oben beschriebene:
Datei:FORTINET ALPS High Availability Policy.pdf Datei:Fortinet HApolicy Discount-Matrix-Reseller.pdf
Kann ich mit unterschiedlichen FortiGate Hardware einen Cluster bauen?
Nun grundsätzlich Nein dh. das FGCP (FortiGate Cluster Protokoll) basiert auf der Hardware dh. mit unterschiedlicher FortiGate Hardware zB FG-60C mit FG-60D kann KEIN Cluster gebaut werden. Auch innerhalb der gleichen Devices gibt es vers. Revisionen sowie Hardware Generationen. Weitere Informationen betreffend Hardware Revisions/Generationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_verifiziere_ich_die_Hardware_Revision_eines_FortiGate_Devices.3F
Diese Ueberprüfung der gleichen Hardware Revisions/Generationen kann mit folgenden Befehl deaktiviert werden:
# execute ha ignore-hardware-revision status
The ignore mode is disabled
Im normal Fall wird Hardware für einen Cluster als Cluster Hardware bezogen dh. um in den Genuss der Cluster Konditionen zu kommen. Weitere Informationen siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Gibt_es_f.C3.BCr_Cluster_.28Hardware_und.2Foder_Virtuell.29_Spezielle_Konditionen_bei_Fortinet.3F
Dies bedeutet wird ein Hardware Device als Standalone bezogen, und erst später daraus ein Cluster gebaut, kommt man nicht in den Genuss der Cluster Konditionen. Ebenfalls kann diese Situation einige Probleme verursachen dh. wenn es sich beim zusätzlichen Node um eine andere Hardware Revision/Generation handelt, muss nachfolgender Befehl auf der Kommandozeile abgesetzt werden um die unterschiedlichen Revisionen/Generation innerhalb des FGCP zu ignorieren:
# execute ha ignore-hardware-revision enable
# execute ha ignore-hardware-revision status
The ignore mode is enabled
Desweiteren darf sich die Hardware von beiden Nodes nicht unterscheiden dh. beiden müssen über die gleiche Anzahl/Art Interface verfügen. Ebenfalls müssen beiden Nodes über eine Disk in der gleichen Grösse verfügen. Ist dies zB nicht der Fall können die Disk zB unformatiert bleiben, sprich dadurch sind diese nicht mehr in Gebrauch und werden ignoriert.
NOTE Es ist zu empfehlen gleiche Hardware in einem Cluster jedoch mit unterschiedlichen Revisions etc. zu verhindern,
denn dies kann zu Problemen führen im Betrieb des Clusters. Wichtig ist auch, dass bei einem allfälligen RMA
Austausch klar für den Device der auszutauschen ist, den Hinweis zu liefern, dass dieser in einem Cluster benützt
wird (Serien Nummer). Somit ist gewährleistet, dass Fortinet als Austausch eine kompatiblen Device liefert. Ist/Wäre
dieser Device für einen Austausch nicht mehr lieferbar sendet Fortinet zwei Devices mit gleicher Revisions.
Ist es möglich ein FortiGate Cluster zu konfigurieren wenn DHCP/PPPoE auf den Interfaces benutzt wird (HA)?
Bis anhin war dies nicht möglich unter FortiOS 5.0. Dies bedeutet, war ein Interface -ob in Gebrauch oder nicht- als DHCP und/oder PPPoE definiert stand der Befehl "config system ha" nicht zur Verfügung. Neu ist unter FortiOS 5.2 ist dies möglich dh. für Active-Passive Cluster. Weitere Informationen wie ein Active-Passive Cluster konfiguriert wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
Wie setze ich für Fortigate einen Cluster auf (HA)?
Wenn man einen Cluster (HA) für zwei Fortigate aufsetzen möchte dann ist folgendes dabei zu beachten:
-> Gleiche Hardware Konfiguration (Kein Support für unterschiedliche Modelle in einem Cluster)
-> Gleiche Konfiguration/Grösse für die Harddisk
-> Gleiche Zusatz Karten sofern vorhanden (AMC / FMC)
-> Gleicher mode Interface/Switch/Hub (Sofern Switch Interfaces vorhanden sind)
-> Gleiche Softswitch Konfiguration
-> Kein Interface im PPPoE oder DHCP Mode (HA Mode ist Deaktiviert resp. "config system ha" steht nicht zur Verfügung FortiOS 5.0)
-> Gleiche Firmware auf beiden Devices
-> Gleicher Operation Mode (Transparent oder NAT)
-> Gleicher VDOM mode (aktiviert oder deaktiviert)
NOTE Betreffend vers. FortiGate Modelle/Revisions in einem Cluster siehe nachfolgender Artikel: FortiGate-5.0-5.2:FAQ#Kann_ich_mit_unterschiedlichen_FortiGate_Hardware_einen_Cluster_bauen.3F Unter FortiOS 5.2 ist es möglich im Gegensatz zu FortiOS 5.0 einen Active-Passive Cluster zu konfigurieren obwohl DHCP und/oder PPPoE benutzt wird!
In unserem Beispiel gehen wir von folgender Konstellation aus:
NOTE Beide Fortigate's befinden sich in Factory Default Status dh. das Internal Interface ist mit der
IP 192.168.1.99/24 versehen!
__________
| |
| INTERNET |
|__________|
|
_______|______
________________| |________________
| | Red Switch | |
| WAN1 |______________| | WAN1
_____|_____ _____|_____
| | | |
| |<---- DMZ Interface Heartbeat------>| |
| | | |
| FORTI | | FORTI |
| | | |
| |<---- WAN2 Interface Heartbeat----->| |
|___________| |___________|
| ______________ |
| INTERANL | | | INTERNAL
|________________| Green Switch |_______________|
|______________|
|
_____|____
| |
| LAN |
|__________|
Wenn diese Vorraussetzungen gegeben sind gehe folgendermassen vor:
Starte den "Master" und logge dich ein auf dem Web Mgmt. Interface und setze den Hostname für den Master:
System > Dashboard > Status > System Information > Host Name
Nun gehe zur folgenden Position um den HA Modus zu aktivieren:
System > Config > HA
Mode Active-Passive
Device Priority 128
Group Name FGT-HA
Password ********
Enable Session Pick-up [aktiviert]
NOTE Wenn "Enable Session Pick-up" nicht aktiviert wird so werden die aktiven Sessions des Master's nicht
dem Slave Device mitgeteilt dh. bei einem "Failover" vom Master zum Slave kommt es zum Unterbruch da
der Slave nicht weiss welche Sessions er übernehmen muss. Die zuständigen Interfaces für diese Session
Uebermittlung sind die "Heartbeat" Interfaces. Ein "Heartbeat" Interface sollte exklusiv benutzt werden
dh. NUR für die Uebermittlung der Sessions (100 Mbit). Der Wert der Priority dieses Interfaces sollte
höher liegen als des zweiten Interfaces (zB 100). Es ist zu empfehlen ein zweites "Heartbeat" Interface
zu definieren. Dieses muss nicht exkl. für "Heartbeat" resp. zur Session Uebermittlung benutzt werden.
Wenn zB das "wan2" genutzt wird kann diess auf Priority "50" gesetzt werden. Da das "Heartbeat" das
exkl. zur Session Uebermittlung auf "100" steht wird nur dieses genutzt und über "wan2" da nur auf
"50" gesetzt keine Sessions Uebermittelt (Kein Traffic). Dieses "wan2" wird nur dann genutzt wenn das
exkl. "Heartbeat" das auf "100" steht ausfällt. Für das "Heartbeat" Interface muss nicht zwingen eine
IP Konfig durchgeführt werden:
FortiGate-5.0-5.2:FAQ#Welche_IP_Adressen_werden_in_einer_HA_Konfiguration_f.C3.BCr_ein_Heartbeat_Interface_vergeben.3F
Wenn als zweites Interface für den "Heartbeat" ein reguläres Interface benutzt wird zB "Internal" sollte
berücksichtigt werden, dass die Session Uebermittlung in "clear-text" erfolgt dh. Potentiell können die
Sessions/Traffic mitgehört werden. Dies sollte man verhindern indem man den "Heartbeat" Traffiv verschlüsselt:
FortiGate-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_den_Heartbeat_eine_Verschl.C3.BCsselung_und.2Foder_eine_Authentifizierung_aktivieren.3F
Desweiteren hat Fortinet betreffend "Heartbeat" ein Dokument released das aufzeigt wie dieses Konfiguriert wird.
In diesem Dokument wird gezeigt was bei einem "Heartbeat" zu berücksichtigen ist:
Datei:FGSP Configuration Guide.pdf (FortiGate Session Life Support Protocol)
dmz Heartbeat Interface Enable (Priority 100)
wan2 Heartbeat Interface Enable (Priority 50)
NOTE Später muss der Slave ebenfalls im gleichen Sinne konfiguriert werden. Möchte man das der Master immer als Master
aggiert (nach Failover wird der effektive Master Device wieder Master was normalerweise nicht geschieht da beide
Device über die gleiche Priority verfügen) kann die Priority gegenüber dem Slave höher angesetzt werden! Dies gilt jedoch
nur insofern, dass die Priority überschrieben wird von der Anzahl Monitored Inferfaces sowie dem "age" (uptime des Device).
Nachfolgende Abbildung gibt Auskunft nach welchen Kritieren/Funktionen ein Primary zum Primary wird:
Datei:Fortinet-336.jpg
Das Kommando das eingegeben werden muss auf dem Device um die Device Priority über die Console anzupassen wäre:
# config system ha
# set priority [Priority]
# end
PLEASE NOTE Um zu gewährleisten, dass der Device mit der höheren Priority zum Primary wird kann die Option "override"
benutzt werden. Diese Option ist per Standard "disabled" sofern es sich nicht um einen virtuellen Cluster
handelt denn in so einem Fall ist "override" per Standard "enabled". Die Option "override" löst eine häufigere
"negotiation" aus für die Cluster Devices. Die Option "override" überschreibt wenn diese auf "enabled" steht
die Funktion "age". Dies bedeutet wiederum das "priority" an erster Stelle steht "vor" der Funktion "age".
Somit wird "age" nicht deaktiviert sondern "priority" greift zuerst "vor" der Funktion "age". Haben beide
Devices die gleiche Priority und "override" steht auf "enabled" so greift das System zurück auf die Funktion
"age". Im Grundsatz wird empfohlen die Option "override" auf "disabled" zu belassen. Wenn diese dennoch auf
"enabled" gesetzt wird muss folgendes berücksichtigt werden um einen Konfigurations Verlust zu verhindern:
- Devices in einem Cluster müssen beide einwandfrei Mitglieder des Clusters sein (get system ha status)
- Device Priority auf dem Primary Device MUSS höher sein als auf dem Slave Device
- Bei Austausch von Devices ist Vorsicht geboten um einen Konfigurationsverlust zu verhindern da der "master"
mit "override" aktiviert den "slave" überschreibt!
Um "override" zu benutzen muss auf dem PRIMARY folgender Befehl abgesetzt werden:
# config system ha
# set override enable
# end
Wenn nun die Konfiguration mit Device Priority sowie mit der Funktion "override" belassen wird reagiert der Cluster nicht auf
Ausfälle von Interfaces sondern nur auf den Ausfall eines Devices im Cluster. Um einen Interface Verlust abzudecken muss das
betreffenden Interface für das Monitoring konfiguriert werden. Weitere Informationen siehe Artikel:
NOTE Das Montitoring der Interface darf erst dann aktiviert werden wenn der Cluster vollumfänglich aktiv ist und alle Interfaces
sauber angeschlossen und überprüft worden sind!
FortiGate-5.0-5.2:FAQ#Wie_soll_die_Funktion_des_.22Port_Monitoring.22_der_Interface_in_einem_HA_Cluster_benutzt_werden.3F
NOTE Es ist zu empfehlen 2 oder mehrere Interfaces als Heartbeat zu definieren. Wenn nur ein Hearbeat konfiguriert ist
und dieser unterbrochen wird, (Cluster sehen sich nicht mehr) aggiert jeder Device als Standalone (split-brain configuration)
und es kommt es zum Netzwerkunterbruch! Aus diesem Grund sollten mind. 2 Interfaces als Hearbeat konfiguriert werden. Wenn
mehr als 1 "Hartbeat" (exklusiv oder geshared) benutzt wird und über die gleiche Priorität verfügen, wird der Hartbeat Traffic
über das Interface gesendet, dass über den kleineren "has map order value" verfügt. Wenn die Priorität unterschiedlich gesetzt
ist wird der "Hartbeat" Traffic über das Interface gesendet mit der höheren Priorität und das Interface mit der "kleineren" wird
als "fallback" benutzt!
Bestätige die Konfiguration und es geschieht folgendes:
Temporaer kann die Verbindung zur Fortigate verloren gehen da die Fortigate bei der Bestätigung die MAC Adresse der Interfaces
entfernt und eine virtuelle MAC Adresse für den Cluster erstellt. Möchte man den Unterbruchen so klein wie möglich halten die
ARP Table auf der Workstation über die man auf die Fortigae zugreift gelöscht werden (zB für Windows):
arp -d *
NOTE Weitere Befehle siehe im DOS Prompt "arp /?"!
Nun muss der "Master" runtergefahren werden! Bevor dies geschieht, erstellen wir vom "Master" ein Backup:
System > Dashbaoard > System Information > Backup
Nun fahre nachdem erstellen des "Backup's" den Master über die CLI runter (ausschalten):
# execute shutdown
Starte den Slave (nicht am Netz)! Konfiguriere den Slave exact im gleichen Sinne wie der Master dh. Hardware-Technisch, Firmware
(nicht vergessen event. die Harddisk zu formatieren "execute formatlogdiks"). Oeffne das Backup File des Masters und ändere den
Hostname (Position):
# config system global
# set hostname [Gewünschter Hostname]
Nachdem der Slave Hardware-Technisch sowie Firmware-Technisch exakt genau gleich aufgesetzt ist wie der Master, erstelle
auf die Slave Maschine eine Verbindung auf das Web Mgmt. Führe nun anhand des modifizierten Backup Files des Masters ein
"Restore" durch unter:
System > Dashbaoard > System Information > Backup
NOTE Bei FortiOS 5 benötigt das File keine Modifikationen wenn es auf einem anderen/neuen Device wiederum als Restore
eingespielt wird. Bei FortiOS 4 benötigt man Modifikationen des Files ansonsten kann das File nicht auf einem anderen
Device eingespielt werden. Folgender Artikel gibt Auskunft was bei FortiOS 4 durchzuführen ist:
FortiGate-5.0-5.2:FAQ#Was_ist_bei_einem_Restore_zu_ber.C3.BCcksichtigen.3F
Nachdem Neustart des Devices greife erneut auf das Web Mgmt. zu. Es gilt nun die IP resp. die Zugangsinformationen gemäss
Restore resp. Backup File des Masters. Auf dem Web Mgmt. ändere die Priorität des Slave (Tiefere Priorität) dh. unter:
System > Config > HA > [Rechts auf Edit]
Nach dieser Konfiguration fahre ebenfalls den Slave runter und schalte diesen aus (über CLI oder Web Mgmt):
# exec shutdown
Nun verkable die beiden Devices gemäss Abbildung die zu Beginn dieses Artikel aufgezeigt wird. Bei den Heartbeat's können ebenfalls
Crossover Kabel zum Zuge kommen oder "transparente" VLAN's! Sobald die Devices korrekt verkabelt wurden starten zuerst den:
Master
Sobald der Master "up" ist kontrolliere diesen über das WebMgmt. Danach starte den "Slave" Der Cluster Aufbau findet beim Start der
Devices statt und benötigt keine weitere Konfiguration. Wenn man auf der Console des "Slave's" das Ganze mitverfolgt fällt einem auf,
dass nachdem Start folgende Meldungen auf der Console erscheinen:
[Hostname des Slaves] login: slave's external files are not in sync with master, sequence:0. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:1. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
Dieser Zustand dh. "not in sync" bleibt solange bis der "erste" Sync durchgeführt wurded (ca. 2 - 3 Minuten). Danach erscheint eine Bestätigung
des erfolgreichen "Sync":
slave succeeded to sync external files with master
Sobald der Cluster aktiv ist kann dieser wie eine Single Unit konfiguriert werden. Die einzelnen Device des Clusters können nicht mehr
angesprochen werden sofern nicht je Device ein "Dediziertes Management Interface mit IP's" benutzt wird. Sobald der Cluster Aktiv ist wird
diser nur noch mit den Cluster MAC Adressen und dazugehöriger IP angesprochen. Es wird für die einzelnen Nodes kein IP Adresse mehr benötigt.
Als nächstes kann/können die benötigten Interfaces mit deren IP Adressen konfiguriert werden. Um auf die Fortigate zu verbinden öffnet einen
Broswer und verbinde dich auf die Virtuelle Cluster Adresse und logge dich ein:
https://192.168.1.99
Wenn es Probleme gibt betreffend Verbindung so konfiguriee den Client mit einer IP aus dem gleichen Subnet dh. zB 192.168.1.1/24. Konfiguriere
nun den Cluser betreffend IP Adressen, DNS Server, Routing etc. wie gewohnt.
NOTE Nun kann nach Abschluss der Konfiguration und der korrekten Verkabelung das Monitoring der Interfaces eingeschaltet werden:
System > Config > HA
Weitere Informationen zu diesem Thema findet man im Artikel:
FortiGate-5.0-5.2:FAQ#Wie_soll_die_Funktion_des_.22Port_Monitoring.22_der_Interface_in_einem_HA_Cluster_benutzt_werden.3F
ACHTUNG Sobald die Grundkonfiguration durchgeführt wurde betreffend IP Adressen, DNS sowie Routing teste den Cluster in seinen Funktionen
dh. führe einen kontrollierten Failover durch sowie unkontrollierte Failovers (ausstecken eines Ethernet Kabels). Achte darauf ob
und welcher Device NACH dem Failover wiederum Master wird! Nach einem Failover wird durch Fortigate kein Failover auf den Ausgangs
Device durchgeführt sofern die Priorität dieses Devices nicht höher liegt als die des Failover Devices (Master/Slave)!
Wie führe ich auf einem Cluster ein Firmware Update durch?
Das manuelle Einspielen auf einem FortiGate Cluster einer neuen Firmware ist grundsätzlich der gleiche Vorgang wie auf einem Standalone Device. Das Besondere auf einem Cluster ist zu wissen WAS im Hintergrund geschieht damit im Fall der Fälle eingegriffen werden kann. Der nachfolgende Artikel erklärt wie so ein Firmware Update auf einem Cluster vor sich geht:
FortiGate-5.0-5.2:FAQ#Wie_f.C3.BChre_ich_auf_einem_Cluster_ein_Firmware_Update_durch.3F
Kommando über CLI "set mode" für "config system ha" steht nicht mehr zur Verfügung?
Wenn man eine Fortigate in den HA/Cluster Mode setzen möchte so muss der "mode" für den Cluster gesetzt werden. Hat man zB eine Fortigate im "factory default" Status kann das Kommando "set mode" resp. "set mode ?" nicht abgesetzt werden. Der Grund dafür ist, dass die Fortigate im "factory default" status Interface's auf PPPoE oder DHCP gesetzt hat (FortiOS 5.0). Ist dies der Fall kann kein HA/Cluster konfiguriert werden da die Fortigate für PPPoE und DHCP kein HA/Cluster unterstützt. Setze alle Interfaces auf "static" und nachträglich steht das Kommando in der CLI "set mode" resp. "set mode ?" wieder zur Verfügung (Neustart wird nicht benötigt):
NOTE Ab FortiOS 5.2 ist es möglich einen Cluster HA zu konfigurieren auch wenn auf einem Interface PPPoE und/oder DHCP konfiguriert wird. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Ist_es_m.C3.B6glich_ein_FortiGate_Cluster_zu_konfigurieren_wenn_DHCP.2FPPPoE_auf_den_Interfaces_benutzt_wird_.28HA.29.3F
# config system ha
# set mode ?
The system may run in HA a-a or HA a-p mode only when all interfaces are not using PPPoE/DHCP as an addressing mode
NOTE Bei älteren Release's von FortiOS 5.0 steht das Kommando "set mode" nicht zur Verfügung solange
Interfaces existieren die "nicht" auf Static gesetzt sind:
# config system ha
# mode | grep mode
NOTE Um festzustellen "ob" solche Interfaces existieren kann folgender Befehl abgesetzt werden:
# show system interface | grep -f mode
Durch die Angabe "grep -f" wird der Context der Konfig "mode" angezeigt für "system interface"!
Kontrolliere ob solche Interface's existieren resp. auf DHCP und/oder PPPoE gesetzt sind. Sofern
dies der Fall ist wechsle diese betroffenen interfaces auf "set mode static":
# config system interface
# edit [Port Name zB wan1]
# set mode static
# end
Jetzt sollte der "set mode" wieder erscheinen resp. kann gesetzt werden:
# config system ha
# get | grep mode
mode : standalone
# config system ha
# set mode ?
# config system ha
# set mode a-p
Welche Sessions werden im Fall eines Failovers in einem HA Cluster übernommen?
Grundsätzlich werden in einem Cluster die Sessions des Masters (Session Table) über den/die Heartbeat Interface's Synchronisiert. Somit weiss der Slave (Standby in einem Active-Passive Konfiguration) welche Sessions übernommen werden müssen im Fall eines "Failovers". Dies gilt jedoch nicht für folgende Sessions oder Funktionen:
- UTM Features (Speziell Antivirus und IPS)
- Zertifikat Basierende Funktionen
NOTE Eine Aussnahme stellt die 100D dar die über eine spezielle Funktion verfügt.
Diese Funktion "frup-settings" kann über CLI aktiviert werden! Diese Funktion setzt
jedoch vorraus, dass das zB ein "wan1" Interface übers Kreuz mit zwei Routern
verbunden ist. "frups" benützt virtuelle MAC Adressen sowie virtuelle IP's.
Desweiteren ist zu beachten das die Funktion "frup" unter FortiOS 5.4 nicht
mehr unterstützt wird!
Datei:Fortinet-753.jpg
Fortinet hat zusätzlich unter "Supplementary Recipes" ein Dokument bereitgestellt, dass zeigt wie eine FRUP Konfiguration gemäss vorhergehenden Abbildung durchgeführt wird. Das Dokument findet man im nachfolgenden Artikel im Abschnitt "Cookbook Supplementary Recipes FortiOS 5.0":
FortiGate-5.0-5.2:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F
Kann ich die Differenz für das Cluster "age" anpassen oder verändern?
Die Funktion "age" basiert auf der "Uptime eines Devices" im Cluster dh. für die Kriterien die herangezogen werden ob ein Master/Primary zum Master/Primary wird ist die Funktion "age" an zweiter Stelle nach der Anzahl überwachter Interfaces (Interface Monitoring):
Datei:Fortinet-336.jpg
Wenn man nun die Differenz die herangezogen wird für das "age" verändern möchte (Per Default gilt 300 Sekunden oder 5 Minute) zB bei einem Firmware Upgrade (Dauer des Upgrades) kann folgendes über die Console eingegeben werden:
# config system ha
# set ha-uptime-diff-margin [Dauer in Sekunden von 1 - 65535]
# end
Um die Differenz eines Devices anzuzeigen benütze folgenden Befehl:
# diagnose sys ha dump 1
HA information.
vcluster id=1, nventry=2, state=work,
digest=fe.21.14.b3.e1.8d...
ventry idx=0,id=1,FG50012205400050,prio=128,0,claimed=0,
override=0,flag=1,time=0,mon=0.
mondev=port5,50
ventry idx=1,id=1,FG50012204400045,prio=128,0,claimed=0,
override=0,flag=0,time=194,mon=0.
NOTE Das Kommando "diagnose sys ha dump" existiert ab FortiOS 5.0.5 nicht mehr und wurde mit
folgenden Kommandos ersetzt:
# diagnose sys ha dump-by [all-xdb | all-vcluster| rcache | all-group | memory | debug-zone | vdom | kernel | device | stat| sesync]
Zusätzlich stehen noch folgende Kommandos zur Verfügung:
# diagnose sys ha sesync-stats
# diagnose sys ha extfile-sig
Der erste Eintrag betreffend der Zeile "ventry" zeigt den Device auf dem der Administrator momentan eingeloggt ist. Die zweite Zeile betreffend "ventry" zeigt den untergeordneten Device. Die Zeile "mondev" gibt an welche Interface überwacht werden. Auf dem Device auf dem der Administrator momentan eingeloggt ist zeigt betreffend "time" immer "0". Der untergordnete Device zeigt die Differenz zum Primary dh. in unserem Beispiele "194" (194 geteil durch 10 = 19.4 Sekunden). Wenn nun "age" als Standard auf "300" Sekunden steht hat dies KEINEN Einfluss als Kriterium ob der Device zum Primary wird oder nicht, denn solange die Differenz der Devices diese "300" Sekunden nicht übersteigt hat "age" keinen Einfluss.
Wenn nun aus vers. Gründen die "age" zurückgestellt werden soll (wenn zB der Primary über die Priorität gesteuert werden soll) auf ALLEN Devices, kann folgender Befehl ausgeführt werden:
# diagnose sys ha reset-uptime
NOTE Dieses Kommando sollte mit bedacht angewendet werden denn die "age" Zeit wird intern zurückgestellt.
Dies bedeutet kontrolliert man nachträglich mit dem Kommando "diagnose sys ha dump 1" die "age" oder
über das Dashboard die Uptime sowie in der Cluster Member List wir die Zeit die der Device up-and-runnig
ist wie gewohnt angezeigt. Dies bedeutet dieser Befehl setzt nicht die "Uptime" Global zurück sondern
nur für die Funktion "age" im Clustering!
Wie soll die Funktion des "Port Monitoring" der Interface in einem HA Cluster benutzt werden?
Für die einzelnen Interfaces in einem HA Cluster kann das "Monitoring der Interface" eingeschaltet werden. Es ist folgendes zu berücksichtigen:
• Bevor ein Monitoring konfiguriert/verändert werden soll muss der Cluster up and running sein
• Alle Interfaces müssen zum Cluster korrekt verbunden sein sowie keien RX/TX, Duplex Mismatch etc. verursachen
Um ein "Interface Monitoring" zu aktivieren auf einem spezifischen Interface resp. Port benütze folgenden Befehl:
# config system ha
# set monitor [Spezifizieren den zu überwachenden Port zB port1]
# end
NOTE Wird in einem Cluster "kein" Interface/Port für das Monitoring konfiguriert handelt es
sich bei solch einem Cluster um einen reinen "Device Failover only". Dies bedeutet "nur"
der Ausfall eines Devices erzwingt einen Failover! Somit wird "nur" die Hardware eines
Devices in einem Cluster überwacht jedoch nicth die einzelnen Interface's.
Desweiteren kann zusätzlich zum "Port Monitoring" auch die Verbindung selber übwacht werden. Nähere Informationen dazu siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_im_Cluster_Mode_zus.C3.A4tzlich_zum_.22Port_Monitoring.22_ein_.22Destination_Monitoring.22_.28DGD.29_konfigurieren.3F
Kann ich für den Heartbeat eine Verschlüsselung und/oder eine Authentifizierung aktivieren?
Grundsätzlich sollte "ein" dediziertes/seperates Interface benutzt werden für den "Heartbeat" resp. für die Synchronisation der "Session Table". Wenn ein zusätzliches "Heartbeat" zB über das WAN Interface benutzt wird -als Fallback- so ist es ratsam dieses zu Verschlüsseln und zu Authentifizieren. Wenn dies nicht geschieht ist es event. möglich, dass der Traffic über ein Sniffing mitgehört werden kann um zB falsche Cluster Status Informationen zu senden oder die Session Table abzuhören. Per Standard ist die Verschlüsselung sowie die Authentifizierung deaktiviert. Wenn diese aktiviert werden möchte führe folgendes aus:
# config system ha
# set authentication enable
# set encryption enable
# end
NOTE Wenn die Verschlüsselung sowie die Authentifizierung aktiviert werden so sinkt die Performance auf den
Devices denn diese wird benötigt um die Packet zu Verschlüsseln etc. sowie zu Authentifizieren! Der Impact ist
zwar nicht enorm dennoch muss dieser mitberücksichtigt werden! Für die Verschlüsselung/Authentifizierung wird in
einem Fortinet Cluster Verbund folgendes benutzt:
AES-128 für die Verschlüsselung
SHA1 für die Authentifizierung
Welche IP Adressen werden in einer HA Konfiguration für ein Heartbeat Interface vergeben?
Das FGCP (FortiGate Cluster Protokoll) vergibt "link-local IP4 Adressen" (RFC 3927) im Range 169.254.0.x für HA "Heartbeat Interfaces" sowie für "inter-VDOM Link". Wenn ein Cluster initial gestartet wird so wird dem Primary "Heartbeat Interface" die Adresse 169.254.0.1 zugewiesen und für den Slave eine IP aus folgendem Range 169.254.0.2 - 63. Für "inter-VDOM Link's" wird der Range 169.254.0.65 und höher benutzt. Um die vergebene IP Adresse für das Heartbeat in einem HA Cluster zu eruieren gebe folgendes Kommando über die Console ein:
# get system ha status
Model: 300
Mode: a-p
Group: 0
Debug: 0
ses_pickup: enable, ses_pickup_delay=disable
Master:128 alsochlu-sg0e1 FG300C3913601712 1
Slave : 96 alsochlu-sg0e2 FG300C3913602452 0
number of vcluster: 1
vcluster 1: work 169.254.0.2
Master:0 FG300C3913601712
Slave :1 FG300C3913602452
Die Auslastung auf einem Heartbeat Interface ist zu hoch und es kommt zu einem unkontrollierten Fail-Over?
Wenn in einem HA Cluster die Auslastung steigt -zB durch hohes Verkehrsaufkommen- wird der CPU stark beansprucht. In so einem Fall kann es vorkommen das die Heartbeat Packete -durch den Primary- nicht zur richtigen Zeit über das Heartbeat Interface -zum Slave- gesendet werden da der CPU anderweitig beschäftigt ist. In so einem Fall kann es zu einem unkontrollierten Fail-Over kommen da der Slave vom Primary keine oder verspätete und somit abgelaufene Packete bekommt und den Primary Part übernimmt. So eine Situation kann ebenfalls eintreffen wenn eine "syn flood attacke" gefahren wird der den Device komplett auslastet und somit wiederum die nötigen Heartbeat Packet nicht oder verspätet zum Slave gesendet werden. Wenn der Grund eines unkontrollierten Fail-Over die Auslastung regulärem Traffic ist so können die Intervall und/oder die Threshold der Packet angepasst werden um einen unkontrollierten Fail-Over zu verhindern. Dazu können über die Console folgende Kommandos abgesetzt werden:
# config system ha
# set hb-interval [Gebe den Interval in Sekunden an 1 - 20]
# set hb-lost-threshold [Gebe den Thresold dh. wieviele Packete 1 - 60]
# set helo-holddown [Gebe den Holddown in Sekunden an 5 - 300]
# end
hb-interval
Der Heartbeat Interval gibt an "wielange" benötigt wird um die Heartbeat Packete zu senden.
Per Standard gilt "2" (200 ms). Der Interval Range der konfiguriert werden kann ist 1 bis 20.
Wenn der Heartbeat Interval zu tief ist wird die Bandbreite unnötig ausgelastet. Wenn der
Heartbeat Interval zu gross gesetzt ist verliert der Cluster an "sensitivität" betreffend
Netzwerkveränderungen etc. Der Interval steht ebenfalls im Zusammenhang mit dem Threshold
dh. wenn der Threshold auf 6 Packete konfiguriert ist und der Interval auf 2 so wird ein
Fail-Over ausgelöst wenn der Cluster innerhalb von 6 X 200 ms = 1200 ms (1.2 Sekunden) keine
Packete mehr erhält. Somit stehen hier Konfigurations Möglichkeiten zur Verfügung um lange
Strecken Rechnung zu tragen dh. wenn der Delay zur Uebermittlung von Packeten grösser wird.
hb-lost-threshold
Der Threshold gibt an wieviel Packete verloren gehen dürfen bevor ein Fail-Over ausgelöst wird.
Per Standard gelten "6" Packete (möglich 1 - 60 Packete). Dies bedeutet, dass wenn der Slave
6 Packete nicht bekommt davon ausgeht das der Primary nicht mehr korrekt funktioniert und zum
Primary wird. Das Gleiche gilt für den Primary selbst dh. wenn er vom Slave die 6 Packet nicht
bestätigt bekommt geht der Primary davon aus das der Slave nicht mehr ordnungsgemäss funktioniert.
Im Generellen gilt: je kleiner der Threshold desto schneller wird ein Fail-Over durchgeführt.
helo-holddown
Der hello State hold-down ist die Dauer in Sekunden die der Cluster wartet bis dieser vom
"hello-state" zum "work-state" wechselt. Nach einem Fail-Over oder beim starten des Clusters
arbeitet der Cluster im "hello-state" dh. Heartbeat Packete werden im Cluster zu den Devices
im Cluster gesendet damit jeder Device im Cluster sich austauschen kann. Sobald alle Devices
im Cluster Verbund erreicht wurden geht der Status auf "work-state". Sehen sich die Devices
im Cluster aus irgendwelchen Gründen nicht kann dies zu Unterbrüchen führen da der Cluster
nicht vollständig ist. Ein Grund, dass sich die Devices nicht finden ist zB ein unterschiedlicher
Standort mit weiten Strecken zwischen den Standorten dh. durch den Delay in der Komunikation
kann der Status nicht von "hello-state" in den "work-state" gehen. In so einem Fall kann die
Zeit die benötigt wird damit die Devices untereinander komunizieren können heraufgesetzt
werden. Per Standard gilt 20 (20 Sekunden). Die Zeitspanne die konfiguriert werden kann ist
5 bis 300 Sekunden.
Eine weitere Möglichkeit wäre bei einem hohen Aufkommen von "Sessions" über das "Heartbeat" Interface zusätzliche Ports zu definieren um das "Heartbeat" Interface zu entlasten. Bei dieser Möglichkeit werden nicht zusätzliche "Heartbeat" Interface definiert sondern durch die Konfiguration der zusätzlichen Ports "zum" Heartbeat Interface wird die FortiGate angewiesen ein "Load Balancing" über diese definierten Ports durchzuführen. Dies bedeutet: Die "Session Table" wird grundsätzlich über das definierte "Heartbeat" Interface abgewickelt und die zusätzlich definierten Ports übernehmen die arbeit des "Heartbeat" Interface's in dessen Namen. Dies bedeutet ebenfalls, dass die definierten Ports die Synchronisation übernehmen. Was wiederum bedeutet, dass über das "Hearbeat" Interface solange die defnierten Ports erreichbar sind keine Uebermittlung mehr stattfindet. Sind diese definierten Ports nicht mehr erreichbar (available) übernimmt wiederum das "Heartbeat" Interface die Arbeit der Uebermittlung der "Session Table". Die definierten Ports müssen Netzwerktechnisch wie ein "Heartbeat" Interface innerhalb eines Cluster verbunden werden. Um in einem HA Cluster diese Ports zu konfigurieren führe folgendes durch:
# config system ha
# set session-sync-dev port10 port12
# end
NOTE Diese Konfiguration sollten nur dann durchgeführt werden wenn wirklich ein sehr "hohes" Aufkommen von "Sessions"
zu erwarten ist oder stattfindet! Die Konfiguration der zusätzlichen Ports ist über Web Mgmt. Interface nicht ersichtlich.
Wie setzt sich die virtuelle MAC Adresse in einem HA Cluster zusammen und wie ändere ich diese?
Die virtuelle MAC Adresse in einem HA Cluster setzt sich wie folgt zusammen:
00-09-0f-09-<group-id_hex>-<vcluster_integer><idx>
Die <group-id_hex> ist die HA Group ID des HA Clusters umgerechnet in Hexdecimal. Nachfolgende Tabelle zeigt auf wie die Group ID in Hexdecimal für die virtuelle MAC Adresse umgerechnet wird:
Datei:Fortinet-334.jpg
Der <vcluster_integer> ist 0 für den virtuellen Cluster 1 und für den virtuellen Cluster 2 die 2. Wenn VDom nicht aktiviert sind setzt der HA Cluster die 1 und alle Interfaces befinden sich in der VDom "root". Wenn man die Formel anwendet für einen virtuellen Cluster oder einer virtuellen Domain (VDom) ändert sich die MAC Adress Formel nicht dh. man wendet diese an ob VDom existiert oder virtuelle Cluster angewendet wird.
Die Position <idx> in der Formle ist die Anzahl der Interfaces. Interfaces werden durchnummeriert von 0 bis x wobei x für die Nummer des Interfaces steht. Interfaces werden in "hash map" aufgelistet. Dies bedeutet das diese zuerst Alphabetisch geordnet werden und danach nach Index Nummer (Beispiel: base1 wird zuerst gelistet und danach port1).
NOTE Nur die <idx> Position für die virtuelle MAC Adresse variert für jedes Interface. Die Position <vcluster_integer>
variert nur dann wenn VDom verwendet werden.
Nachfolgend einige Beispiele für virtuelle MAC Adressen und deren Umrechnung:
Group ID 0 (Default) und VDom's sind nicht aktiviert
• port1 virtual MAC: 00-09-0f-09-00-00
• port10 virtual MAC: 00-09-0f-09-00-01
• port2 virtual MAC: 00-09-0f-09-00-02
• port3 virtual MAC: 00-09-0f-09-00-03
• port4 virtual MAC: 00-09-0f-09-00-04
• port5 virtual MAC: 00-09-0f-09-00-05
• port6 virtual MAC: 00-09-0f-09-00-06
• port7 virtual MAC: 00-09-0f-09-00-07
• port8 virtual MAC: 00-09-0f-09-00-08
• port9 virtual MAC: 00-09-0f-09-00-09
• port11 virtual MAC: 00-09-0f-09-00-0a
• port12 virtual MAC: 00-09-0f-09-00-0b
Group ID 34 und VDom's sind nicht aktiviert
• port1 virtual MAC: 00-09-0f-09-22-00
• port10 virtual MAC: 00-09-0f-09-22-01
• port2 virtual MAC: 00-09-0f-09-22-02
• port3 virtual MAC: 00-09-0f-09-22-03
• port4 virtual MAC: 00-09-0f-09-22-04
• port5 virtual MAC: 00-09-0f-09-22-05
• port6 virtual MAC: 00-09-0f-09-22-06
• port7 virtual MAC: 00-09-0f-09-22-07
• port8 virtual MAC: 00-09-0f-09-22-08
• port9 virtual MAC: 00-09-0f-09-22-09
• port11 virtual MAC: 00-09-0f-09-22-0a
• port12 virtual MAC: 00-09-0f-09-22-0b
Um eine virtuelle MAC Adresse zu setzen führe folgendes auf der Console aus:
# config system interface
# edit port1
# set macaddr [MAC Adresse]
# end
# end
Bevor man einen Cluster baut ist die MAC Adresse = Hardware Adresse:
# get hardware nic internal
MAC: 02:09:0f:78:18:c9
Permanent_HWaddr: 02:09:0f:78:18:c9
Man sieht das die MAC Adresse = der Hardware Adresse ist. Konfiguriert man einen Cluster und setzt wiederum den Befehl ab zeigt sich folgendes Bild:
# get hardware nic internal
MAC: 00:09:0f:09:00:02
Permanent_HWaddr: 02:09:0f:78:18:c9
Man sieht nach der HA Cluster Konfiguration sind die MAC Adresse und die Physische MAC Adresse unterschiedlich. Möchte man also die virtuelle MAC Adresse auf allen Interfaces wechseln um zB einen MAC Adressen Konflikt zu umgehen muss "nur" die Group ID geändert werden:
# config system ha
# set group-id <id_integer>
# end
Kann ich anhand eines Befehls den HA Sync Prozess einsehen?
Folgender Befehl gibt die Möglichkeit den HA Sync Prozess einzusehen:
# diagnose debug application hasync -1
NOTE Ab FortiOS 5.2.1 kann der "hasync" Debug über Schalter "switch on/of" beeinflusst werden. Dies bedeutet: über folgenden Befehl können vorgängig die benötigten Schalter aktiviert oder deaktiviert werden. Dies kommt einer Filterfunktion für "diagnose debug application hasync" gleich. Es stehen folgende Schalter zur Verfügung: # diagnose test application hasync [1-19,50-53] NOTE Die Schalter "[1-19,50-53]" haben folgende Bedeutung: 1 Dump all states of debug switches. 2 Turn off all debug switches. 3 Toggle debug switch of hsync core. 4 Toggle debug switch of ha-diff. 5 Toggle debug switch of FIB. 6 Toggle debug switch of route6. 7 Toggle debug switch of BYOD. 8 Toggle debug switch of endpoint_compliance. 9 Toggle debug switch of NEB. 10 Toggle debug switch of zebos. 11 Toggle debug switch of haconf. 12 Toggle debug switch of proxy. 13 Toggle debug switch of time. 14 Toggle debug switch of snmp. 15 Toggle debug switch of gtp. 16 Toggle debug switch of auth. 17 Toggle debug switch of IPsec. 18 Toggle debug switch of fdb. 19 Toggle debug switch of arp. 50 Dump ha sync statistics. 51 Dump FIB information. 52 Dump extfile's signature. 53 Recalculate external files signature.
Was ist zu beachten wenn ich die Priorität eines Cluster Nodes anpasse/verändere?
Die Konfiguration der Priorität eines Devices in einem Cluster wird nicht innerhalb des Clusters synchronisiert da die Priorität auf den Device gebunden ist. Somit wenn die Priorität angepasst wird in einem Cluster muss dies auf dem jeweiligen Device durchgeführt werden:
# config system ha
# set priority [Nummerische Zahl]
# end
NOTE um in einem Cluster auf einen Node zu verbinden siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_Manage_ich_einen_Cluster_resp._wie_erlange_ich_Zugriff_auf_einen.2Fden_.22nicht.22_aktiven_Node.3F
Wie Manage ich einen Cluster resp. wie erlange ich Zugriff auf einen/den "nicht" aktiven Node?
Wenn man einen Cluster aufsetzt und nicht ein entsprechendes Interface unter der nachfolgenden Position konfiguriert, kann auf die einzelnen Nodes im Cluster nicht mehr zugegriffen werden:
System > Config > HA > [Setze den Mode auf "Active-Passive" oder "Active-Active] > Reserve Management Port for Cluster Member
Diese Position bewirkt, dass das definierte Interface komplett aus dem Cluster Verbund genommen wird und unabhängig als reguläres Interfaces agiert. Bedeutet diese Interfaces können je Node mit einer normalen IP versehen werden. Somit kann anhand dieser Interface auf die Nodes im Cluster zugegriffen werden sowie die einzelnen Nodes zB über SNMP überwacht werden!
NOTE Beachte dabei, dass immer auf den richtigen Node zugegriffen wird, wenn eine Konfiguration durchgeführt werden muss!
Denn der "nicht" aktive Node wird vom "aktiven" Node alle 15 Minuten überschrieben. Dies bedeutet würde man eine
Konfiguration "irrtümlicherweise" auf dem "Slave" durchführen und dies nicht bemerken, wird diese Konfiguration
durch den Master wiederum überschrieben da die Konfiguration nicht auf dem Master stattgefunden hat!
Diese Konfiguration eines seperaten definierten Interfaces pro Node in einem Cluster um die Nodes zu überwachen, managene sowie für das Troubleshooting ist "absolut" zu empfehlen. Ist dies aus irgendwelchen Gründen nicht möglich kann der Zugriff auf den "nicht aktive" Node nur über die Kommandozeile des Master erfolgen. Bedeutet dies wird folgendermassen ausgeführt:
Erstelle eine Verbindung auf die Kommandozeile (CLI) des Masters. Verifiziere
die "Device ID" des nicht aktiven Nodes im Clusterverbund:
# execute ha manage ?
<id> please input peer box index.
<0> Subsidary unit [Serial Nummer des Devices[
Wähle nun die entsprechende "id" des Devices resp. des nicht aktiven Nodes:
# execute ha manage 0
Nun wird in der Kommandozeile (CLI) der Prompt des nicht aktiven Nodes angezeigt!
Wie kann ich überprüfen ob ein Cluster "In-Synch" ist?
Folgender Befehl zeigt ob ein Cluster "In-Synch" ist dh. ist dies der Fall muss auf beiden Nodes die gleiche Checksum erscheinen:
# diagnose sys ha showcsum
Weitere Befehle um den Status eines Clusters abzufragen siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_den_Status_eines_HA_Cluster_abfragen.3F_2
Heartbeat "Ethertype Packete" werden durch den Switch verworfen wieso und was ist zu tun?
Normale IP Packete sind 802.3 Packete die über ein "Ethernet" Feld verfügen mit der Wert:
0x0800
Andere Werte werden innerhalb des "Ethernet" Feldes als Level 2 Frames verstanden anstelle von IP Packeten. HA Heartbeat Packete von NAT/Route Mode (ha-eth-type) Cluster benutzen den "Ethernet" Type "0x8890". Diese Packete werden spezielle dazu benutzt die Mitglieder des Clusters und/oder anderen Cluster im Netz zu finden. HA Heartbeat Packet im Transparent Mode (hc-eth-type) benutzen den "Ethernet" Type "0x8891". HA Telnet Sessions (l2ep-eth-type) zwischen Cluster Devices over HA Heartbeat Links benützen den "Ethernet" Type "0x8893". Somit muss der Switch der für das Heartbeat benutzt wird diese "Ethernet" Types erlauben. Ist dies nicht der Fall da der Switch diese "Ethernet" Types bereits für interne Funktionen benützt muss der "Ethernet" Type modifiziert werden. Dies kann über Kommandozeile durchgeführt werden:
# config system ha
# set ha-eth-type [ha_ethertype_4-digit_hex]
# set hc-eth-type [hc_ethertype_4-digit_ex]
# set l2ep-eth-type [l2ep_ethertype_4-digit_hex]
# end
NOTE Bei Cisco N5K/Nexus Switches wird der "Ethernet" Type 0x8890 für interne Funktionen benützt. Wenn
dieser Switch solche "Ethernet" Type Packet erhält verwirft er diese (CRC errors) und dies verhindet
die einwandfreie Komunikation zwischen den Nodes innerhalb eines Cluster. Lösung wäre der "Ethernet"
Type auf einem freien Wert zu definieren zB "0x888".
Wie kann ich für einen HA Cluster den Gruppen Namen auf Kommandozeile konfigurieren?
Der Gruppen Name in einem Cluster ist dazu da um die dazugehörigkeit der Nodes in einem Cluster zu konfigurieren. Dazu gehören ebenfalls das Cluster Passwort sowie die Group ID. Andere Cluster im Netz dürfen nicht den gleichen Gruppen Namen benützen sondern müssen sich für eine eindeutige Identifikation unterscheiden. Um den Gruppen Namen in einem Cluster über CLI zu definieren führe folgendes aus:
# config system ha
# set group-name [Gruppen Namen]
# end
Wie kann ich für einen HA Cluster den Gruppen ID auf Kommandozeile konfigurieren?
Die Group ID ist wie der Gruppen Namen und das Passwort dazu da einen Cluster Verbund zu identifizieren dh. andere Cluster im Netz dürfen nicht die gleiche Group ID, Passwort sowie Gruppen Namen benützen. Um die Group ID für einen Cluster über CLI zu konfigurieren benütze:
# config system ha
# set group-id [Group ID 0 - 255]
# end
Wie kann ich für einen HA Cluster das Passwort der Gruppe auf Kommandozeile konfigurieren?
In einer Cluser Konfiguration wird zur einen Seite ein Gruppen Namen gesetzt und zum anderen ein Passwort. Dieses Passwort sowie der Gruppen Name muss für alle Node's im Cluster gesetzt werden dh. andere Cluster im gleichen Netz dürfen weder den gleichen Gruppen Namen noch über das gleiche Passwort verfügen. Um das Passwort zu setzen über CLI benutze folgendes Kommando:
# config system ha
# set password [Passwort max. Länge 19]
# end
Wie kann ich über Kommandozeile den Status eines HA Cluster abfragen?
Folgender Befehl gibt eine kurze Auskunft über den Status eines HA Clusters:
# get system ha status
Model: 620
Mode: a-a
Group: 0
Debug: 0
ses_pickup: disable
Master:128 620_ha_2 FG600B3908600825 0
Slave :128 620_ha_1 FG600B3908600705 1
number of vcluster: 1
vcluster 1: work 169.254.0.1
Master:0 FG600B3908600825
Slave :1 FG600B3908600705
Folgender Befehl zeigt ob der Cluster "in synch" ist dh. die Checksum muss auf beiden Nodes gleich sein:
# diagnose sys ha showcsum
is_manage_master()=1, is_root_master()=1
debugzone
global: bc 3b 17 fe 44 b2 2d c7 1e d1 59 44 8b cd 64 a9
root: b9 c0 bf 46 f3 00 e6 fe d5 ed 2a 6c 79 38 01 c7
VDOM-1: a8 0b bf 2e cb d8 5d 26 43 a9 00 b9 e3 3b 9a a1
VDOM-2: 9b d1 63 60 79 9d 1c a3 7c 1e eb 7a c5 50 77 bc
VDOM-3: 43 da 8b 01 1f a3 7d 24 e1 0b 49 29 3a b1 90 29
all: 16 a0 79 8b 64 39 c0 37 40 ed c6 ee 77 62 16 7e
checksum
global: bc 3b 17 fe 44 b2 2d c7 1e d1 59 44 8b cd 64 a9
root: b9 c0 bf 46 f3 00 e6 fe d5 ed 2a 6c 79 38 01 c7
VDOM-1: a8 0b bf 2e cb d8 5d 26 43 a9 00 b9 e3 3b 9a a1
VDOM-2: 9b d1 63 60 79 9d 1c a3 7c 1e eb 7a c5 50 77 bc
VDOM-3: 43 da 8b 01 1f a3 7d 24 e1 0b 49 29 3a b1 90 29
all: 16 a0 79 8b 64 39 c0 37 40 ed c6 ee 77 62 16 7e
Betreffend Konfiguration etc. gibt es noch folgende Befehle die angewendet werden können um den Status inkl. Konfiguration eines HA abzufragen:
# show full-configuration system ha
config system ha
set group-id 0
set group-name "FGT-HA"
set mode a-p
set password ENC
set hbdev "port5" 20 "port6" 10
set route-ttl 10
set route-wait 0
set route-hold 10
set sync-config enable
set encryption disable
set authentication disable
set hb-interval 2
set hb-lost-threshold 6
set helo-holddown 20
set arps 5
set arps-interval 8
set session-pickup enable
set link-failed-signal disable
set uninterruptable-upgrade enable
set vcluster2 disable
set override enable
set priority 254
set monitor "port4" "port5" "port6"
unset pingserver-monitor-interface
set pingserver-failover-threshold 0
set pingserver-flip-timeout 60
end
# diagnose sys ha status
HA information
Statistics
traffic.local = s:2096712 p:2541238162 b:1972123729708
traffic.total = s:9497465 p:2541238496 b:1972123977459
activity.fdb = c:0 q:0
Model=311, Mode=2 Group=0 Debug=0
nvcluster=1, ses_pickup=1
HA group member information: is_manage_master=1.
FG311B1111111111, 0. Master:254 myfirewall1
FG311B1111111112, 1. Slave:128 myfirewall2
vcluster 1, state=work, master_ip=10.0.0.1, master_id=0:
FG311B1111111111, 0. Master:254 myfirewall1(prio=0, rev=0)
FG311B1111111112, 1. Slave:128 myfirewall2(prio=1, rev=1)
Wie kann ich einen FortiGate HA Cluster eine "Manuelle Synchronisation" ausführen/kontrollieren?
Wenn ein FortiGate HA Cluster überprüft werden soll so wird/kann folgendes Kommando auf jedem "Node" des Cluster dazu abgesetzt werden um zu überprüfen ob der HA Cluster in "Synchronisation" ist (in-sync):
master # diagnose sys ha cluster-csum
--------------- node-1 ---------------
is_manage_master()=0, is_root_master()=0
debugzone
global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
checksum
global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
--------------- node-1 ---------------
slave # diagnose sys ha cluster-csum
--------------- node-2 ---------------
is_manage_master()=1, is_root_master()=1
debugzone
global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
checksum
global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
--------------- node-2 ---------------
NOTE Soll das Kommando auf einer FortiGate benutzt werden die mehrer VDOM's konfiguriert hat muss folgendes
Kommando abgesetzt werden:
# diagnose system ha showcsum <level> <vdom>
Die möglichen "level" sind "01-04"! Dies ergiebt wiederum als Beispiel folgendes Kommando:
# diagnose system ha showcsum 01 root
In unserem Beispiel wurde das Kommando auf jedem Node ausgeführt und die "checksum" ist auf beiden Node's gleich dh. der HA Cluster ist "in-sync". Ist dies nicht der Fall kann eine "Manuell Synchronisation" ausgeführt werden:
master # execute ha synchronize start
Wurde die "Synchronisation" ausgeführt kann abermalls mit "diagnose sys ha cluster-csum" die "checksum" überprüft werden. Ist die "checksum" unterschiedlich muss eventuel ein Objekt neu "Kalkuliert" werden denn jede Position dieser "checksum" stellen Objekte der FortiGate Konfiguration dar. Um eine "Re-Kalkulierung" durchzuführen führe folgendes auf jedem Node aus:
master # diagnose sys ha csum-recalculate
slave # diagnose sys ha csum-recalculate
Danach kann wiederum eine "Manuelle Synchronisation" anhand "execute ha synchronize start" ausgeführt werden sowie muss wiederum auf jedem Node die "checksum" überprüft werden dh. anhand des Befehls "diagnose sys ha cluster-csum". Ist die "checksum" danach unterschiedlich kann eruiert werden "Welches Objekt" diesen Unterschied hervorruft. Dies bedeutet: Wie schon erwähnt stellen diese einzelnen "checksum" innerhalb des Kommandos "diagnose sys ha cluster-csum" einzelne Objekte der Konfiguration dar. Diese einzelnen Positionen können anhand folgendes Befehls eingesehen werden:
master # diagnose sys ha showcsum 2
accprofile.prof_admin: e6c12eee11f0793a0da0fcb864f0a522
accprofile.webfilter-admin: f6f2be9a42fe61f0326ee56d6c3a8c06
vap.fortinet4guest: selected-usergroups.gr-wifi-captive-local.intra: 237da722b1ac1bd9d7a5ab6c83ead6ea
0edcb17a269eafa5890d746dba1c1380
vap.fortinet4intern: ba17ba924e2cbd36f75e313b938cfcb2
interface.dmz: b7c816698773650a428ed780eaf43663
interface.fortinet4guest: f2c026f8dd449374d4216afa7b10d068
interface.fortinet4intern: 96fd253d8d6e8e92b071f32567e23a47
interface.internal1: 302ebffe4602fafdfbb7d6cafd44ca52
interface.internal2: 54dcf24a0990698798297df3ac868ab6
interface.internal3: 225e1a910c0745ff7113d411a92d4edb
interface.internal4: 0d52b772ff93a73420aa22d975ee7cac
interface.internal5: 7f9e66a49f626a251a904c5d3c13fde7
interface.internal6: 9c420bdb806c33f558abcb6c2428e829
interface.internal7: 9e62abe84d68395870d6f8c5c32e671d
interface.ipsec-cisco: e768abdb46431c65a8fd6b25efb8e4c5
interface.ipsec-fc: ac4f31e8ee548b1e45542eaca899b9e2
interface.ipsec-ios: 607a0d3651451d1be408e0b1794a413a
interface.modem: 42199dc9dfc27125d4498c0a74d85fd5
interface.ssl.root: 3741086cbe973343bd0f624f23ee81d5
interface.wan1: c7af1e6fbb378fd788a4ee1eabf29965
interface.wan2: b1c8e61b1719b68539e09048a2d861cf
admin.FMG-Admin-local: vdom.root: e88d11390bb3c55f75284028ee0c7bd7
e078130dceee55940c5d43a469a3b69a
admin.WebFilter-Admin-local: vdom.root: 5584a69e82404d24f11e2fcdd5db8baa
ea050dfa9a23ccb7c1b84e6eb8259296
admin.WiFi-Admin-local: vdom.root: 5c6cf9d1d0c112254716d3352e8f485d
guest-usergroups.gr-wifi-captive-local.intra: 0bbd732c8a5225e7ad902539c99dc223
efd19ec8e4c24d0502b7c242ad132212
admin.admin: vdom.root: 1658041e980edb6ebf6336b748f5a4f6
dashboard-tabs.1: f3ef99ffd22012e54e2f98b4d78e3a32
dashboard-tabs.2: 49d7b151b650aa80725b3806d5cd48e0
dashboard-tabs.3: fca4025c88b2ed28864ac361ec82e612
dashboard-tabs.4: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.1: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.2: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.3: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.4: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.5: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.6: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.21: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.31: 96ab9f8d5da1f045f7f30ee600be509d
dashboard.41: 96ab9f8d5da1f045f7f30ee600be509d
cab9fdba23cedba3807d953f03e7f999
storage.FLASH1: 2b5863acb8708ae8bc6b7db8f7a42664
ddns.1: monitor-interface.wan1: bea6622a30a0d0c3a763b2654681694b
bea6622a30a0d0c3a763b2654681694b
replacemsg-image.logo_fguard_wf: a0b1569aca4c011c24ac7f71b0f64d05
replacemsg-image.logo_fnet: fc9bc11e0b91daacfcef45bbfea09039
replacemsg-image.logo_fw_auth: 0eb3bf0f8fc1a2861d9159ff76048ac7
replacemsg-image.logo_v2_fguard_wf: 8081ff5484a4ab6a52e6c19a43db3c0c
replacemsg-image.logo_v2_fnet: abaaae5c8cf8fd067715a6c717a6e1da
mail.email-block: 215f70c3662a8ff70c4054eef899716e
mail.email-dlp-ban: 1d28183b29e358018793b08bd25124c4
mail.email-dlp-subject: 2f66423880dd8358dd1ba9f80e69ceeb
mail.email-filesize: 95827a836428dc88ef6d5123ab725ba4
mail.partial: 106ca8627465ff1bbc6c0275634e4073
mail.smtp-block: 35d514772329e1b496d5f75f475d175a
mail.smtp-filesize: e7141c57579943dc527fdee44e808832
http.bannedword: aad5d9f4173a50c5c6feb89d486c57c3
http.http-archive-block: c60cb7b8d02e5376092f0f1406dae69c
http.http-block: 4839486226787ef5a68062ca615bf61f
http.http-client-archive-block: cee9ba86151c7f3ec0d4c943557aaf20
http.http-client-bannedword: 1abbc597e3ae31bceea29b989ded8491
http.http-client-block: cf32f82860f35d3f597826b154cf0fea
http.http-client-filesize: dba9dd30d113825d36f9007e2fa18631
http.http-contenttypeblock: 25b90bd05db96f11454c114bc39fb52b
http.http-dlp-ban: 07ef324d3aa1f37a45cfc00c4ac9c22b
http.http-filesize: 03c1ed216b09eeb5a8a1d879ce6f3528
http.http-post-block: ca741d301ae8268e6a0bb6952c1e6738
http.https-invalid-cert-block: d009b717b9f83bda22ab9ca248d5321a
http.infcache-block: d5afec4d6d02c3da29f33017fd6d9316
http.switching-protocols-block: f1f10383086f133f3a34f72c880dc225
http.url-block: ce3082f810da35079e1fdb77db909179
http.urlfilter-err: 121b0079e8177d83fc565d85e232d214
webproxy.auth-authorization-fail: 1e27f0aa24b4da6ae054372ec1e0e4c1
webproxy.auth-challenge: 08d7c0209e3262f55112eaed8682b012
webproxy.auth-login-fail: 57e88aecf0f70424efecfa55b4c657d6
webproxy.deny: eaf4a33e901aa6a8f50c2e8f89409207
webproxy.http-err: cb31aa748ea3ee6d8434d64f76e1118f
webproxy.user-limit: 735ab20d5751b212788bbcf9a293a62e
ftp.ftp-dl-archive-block: f6563b7432483299884cd9b847d74802
ftp.ftp-dl-blocked: e47ed3508020c70d0edfe91fa8ae4cc5
ftp.ftp-dl-dlp-ban: 835f625ed95a4841e38feb5cfd5f492c
ftp.ftp-dl-filesize: ce6e771adb6df55f1fd110d185523167
ftp.ftp-explicit-banner: fc0f30c41c1d5595e8858ede9f0930c2
nntp.nntp-dl-blocked: bd5aff6faa2ca4263377a2063d5a6190
nntp.nntp-dl-filesize: 00a9b573695e0fb3b399de40e3759a12
nntp.nntp-dlp-ban: cdf8928fb4266d3fbacdd13ad614522f
nntp.nntp-dlp-subject: 2939108716199734af3795cd735c78dd
fortiguard-wf.ftgd-block: 69436e64aaaaa73402e3f6fe2c1c5491
fortiguard-wf.ftgd-ovrd: f410194115b47fac24e8f5ec4cff5a48
fortiguard-wf.ftgd-quota: 33353214bc24c18710ead5334e82b941
fortiguard-wf.ftgd-warning: 07b28e0ffb1ba243c54e30ed9a050f0f
fortiguard-wf.http-err: 2ac16407ecfc615bdc297400204ebf9c
spam.ipblocklist: e9a0a3bb116c02269b59ccecff467d77
spam.reversedns: b52e9929a298ef41b4e7460b30ad32c4
spam.smtp-spam-ase: cd190fa14463135f6d1cec545c718896
spam.smtp-spam-bannedword: 37eac5ec0099f90b44bac6eb97559327
spam.smtp-spam-dnsbl: 092cfc6f3933b87db727513a0b5cb9cc
spam.smtp-spam-emailblack: 08272682bf0e3b33657099e9f2bd477b
spam.smtp-spam-feip: 75bce07b7e201beb788732f8d2b86e0e
spam.smtp-spam-helo: e0cbe3142ec6b06469af0af8f94ecdbb
spam.smtp-spam-mimeheader: 0f875724f74904ccef95e08e2643a739
spam.submit: cde7381d8842f56de56d97cc98fbc886
im.im-dlp: 1993cf162e3d48565ab40cb6f31aacb5
im.im-dlp-ban: 790bf4ff27936e1f3a2b24f42989b96f
im.im-file-xfer-block: 75270b801ee0f557be5aa478da96926d
im.im-file-xfer-infected: d6d0a299f34e6ee92a812d5226687b97
im.im-file-xfer-name: ce291ae8efcb5cc321d3e5eaa4e10f74
im.im-file-xfer-size: cc555d2eab349eb2817df1ab094086a9
im.im-long-chat-block: 78c3d8995a4c9c2d86c85d68ac7f24f3
im.im-photo-share-block: a773777ecbb63c7e9f33c948ac04ac7c
im.im-video-chat-block: 461f2b67932c4518cc41ac668f49d271
im.im-voice-chat-block: d59e6c20aeb88a796fffbfeabdcc895c
alertmail.alertmail-block: b2f4e0425097ef0857cf4acce641e4de
alertmail.alertmail-crit-event: 206c14630f7101127d5f7987aef10095
alertmail.alertmail-disk-full: 7d77b6b59bd54fe12235c4b6460039bb
alertmail.alertmail-nids-event: ec40fe2bdecda9105e0ce4497d58e6bb
alertmail.alertmail-virus: 17a10ca304354cd77591e6119ba9d689
admin.post_admin-disclaimer-text: 5b9fa46ff007122aa6eeb5d33780f9fa
admin.pre_admin-disclaimer-text: 588b1a8c4f2996cfa1b01ac4fd7b059c
auth.auth-cert-passwd-page: 3ab646d6485ed6423592f5df8d55e82b
auth.auth-challenge-page: d5bc10632bd2e9cf53f9408792ce7df8
auth.auth-disclaimer-page-1: daca77388620229a9024c854b698275b
auth.auth-disclaimer-page-2: 3ab48006284d6cfdec39cbeef07cf1f5
auth.auth-disclaimer-page-3: 2e857f6c46674079bb92dd8c48520a8e
auth.auth-email-failed-page: f056f7c0d08fb0f574d6b87fd2e7b097
auth.auth-email-harvesting-page: f23be16befe3f27f86bf15b164b1f9c5
auth.auth-email-token-page: 70f1aaba159818bc0db3cb1c8a745eba
auth.auth-fortitoken-page: c473d24ec3f412b5588ad02785bbfaad
auth.auth-guest-email-page: f871f75eed48f9b603c21344441d33a9
auth.auth-guest-print-page: a3a6584ea87dd959fd9de6e0b9648910
auth.auth-keepalive-page: 49f82155fd508f8bf682a8fdee3bc0e3
auth.auth-login-failed-page: c4dfdf2bb4d6005dc0394cb85ba7f0e9
auth.auth-login-page: 6ca9a45313cd0cd04fbb3a388421387f
auth.auth-next-fortitoken-page: cd5293d456d287fa31500fd7e51f87fa
auth.auth-password-page: ba9b34aa8483f63af8be1500a55d3f62
auth.auth-portal-page: ce1c67dee85591385f76397aa974cb63
auth.auth-reject-page: d1cef4e64560147613e42f6da551c8fe
auth.auth-sms-token-page: 73d79a5c745fb5707a0a1ca366706152
auth.auth-success-msg: 46625386e08fe57aff7e2ea89abdc346
auth.auth-token-login-failed-page: 9f051e20eca9f037e6cf2e0bf6c04a4e
auth.auth-token-login-page: 5f8d80a39b38dd93245b83bc1d9c120e
captive-portal-dflt.cpa-disclaimer-page-1: 24b79b5f924ce0ec4a1608f933dc6230
captive-portal-dflt.cpa-disclaimer-page-2: 047d091290f33bee8581ca7e20c96b10
captive-portal-dflt.cpa-disclaimer-page-3: de7f93e046e199f6cf24fab5bd1f773e
captive-portal-dflt.cpa-login-failed-page: 0d83b8a677a520dd898727615ed1fa7f
captive-portal-dflt.cpa-login-page: 529bf84ce4e1f75b66470167b3042ba3
captive-portal-dflt.cpa-reject-page: 9a60315063471c82f220af25302620b5
sslvpn.sslvpn-limit: 41d883501e833dfe2a23d3d9dae13a7b
sslvpn.sslvpn-login: 5bd84c065547ce06936c56d64572d94a
ec.endpt-download-portal: dd2ff1e3bb81964b630ad1fc95261dcb
ec.endpt-download-portal-aos: ce6fab68eb943137fb09b9164f892cf8
ec.endpt-download-portal-ios: c5ba6f053fca28d69b1309af11f5424f
ec.endpt-download-portal-mac: 7aa645f2de82b85d2463a0bcdfebb107
ec.endpt-download-portal-other: 0d6695569919be015f26aa4ac017f280
device-detection-portal.device-detection-failure: 33956ec31fb6cd51a6989b8a9d3569e5
nac-quar.nac-quar-dlp: 029293d9f9abbe3057a7f5b4cd382552
nac-quar.nac-quar-dos: 95ae75398b57991dc2cd63aaae5b9ffb
nac-quar.nac-quar-ips: 3ec4f59ba62e2a369400c8cd46649777
nac-quar.nac-quar-virus: 7d87c03bd6b7a7f2fe88c8c687f09d77
traffic-quota.per-ip-shaper-block: eabc45be536adb930bc78e5bf069effc
utm.dlp-html: 87ef0cbcb3cbcab70a51d6aff3baef7a
utm.dlp-text: 76a3e1acb1a0af911b9375e866bf62bc
utm.virus-html: 804de49134b9de8dc1bd51fd40615d5f
utm.virus-text: 01e280340d7dc5a4e8330a0681ec0b2c
device-category.all: db290eda5dc00d7757946b786a847ef2
device-category.android-phone: 774be2d630cdbd86d85d652da35acaec
device-category.android-tablet: f5fe456bb6b8feb29f0c2bac04719542
device-category.blackberry-phone: bd98886e9ef03cee1eb5a842b5b16462
device-category.blackberry-playbook: c36afa9e5e3f362b844da0e9299452ff
device-category.collected-emails: 04797efde106db7aa8c8d1ffe2d73af9
device-category.fortinet-device: 1c5d31d6defc163997885b2d46506aa4
device-category.gaming-console: 1bf36a48b915fa2a0b0fc31a3ca0f665
device-category.ip-phone: e803d00fea368ff7b0c67b38cdde1f68
device-category.ipad: 8ab3079cec093a6898121492d41d6705
device-category.iphone: d35841f5c22f46a74935c1be079879bb
device-category.linux-pc: f66e74ef0d2490fdf0943d492f0a40dc
device-category.mac: 6ddb5d6141e7b6643b366f577ea8b0cf
device-category.media-streaming: 143b727dc8f623dcd69f4300a0cce39a
device-category.other-network-device: c3276590b5c3e82208f7535caa15bbc7
device-category.router-nat-device: f81423a950779f73e262d69e5d5d8ec9
device-category.windows-pc: 3f3d3087919f1d1438cec42e0205ae40
device-category.windows-phone: 9f4de14f15d1751ddf4f63d53109fe8e
device-category.windows-tablet: 3b3f8459c77854dd83e2001be0f1356f
service.ftp: 7eae36f56100443fea72c5ab76be7ef8
service.ftps: d15f1668020cfcb980f95c16ac2af03c
service.http: c0f9eec57d6906eb2a21782b736b9843
service.https: d1de9fab1fb277e8b7a46aafab710961
service.im: ed850151a7c86ace0b2d5bec2213616a
service.imap: 7588123dbc53ddfbd60cd6cbc00b1190
service.imaps: a132952e51bf10b4db59e8ef833cdcc2
service.nntp: 6ce18bff5025d7d8c15d028cb1a1c3d6
service.pop3: b2d30fb99a90653c147c68a0377ec88c
service.pop3s: b5cf20208ac994c4da113cf347c5fa4a
service.smtp: 4e03925a250839d71a1e8152e8e5a564
service.smtps: 9b31e571ccbe3daf27090f0d73fce7b8
storage.FLASH1: 9b31e571ccbe3daf27090f0d73fce7b8
session-helper-1: dfedb7f1b41f4a293552710f56622ca8
session-helper-2: bc635b8b106c498155455ad5ff9729b2
session-helper-3: cbc209e98b2ce0b0d3fd64762148182a
session-helper-4: db24d580f9422d39bb5ff28e01f690c7
session-helper-5: 552826ed4886dd25fcd808d835cd0177
session-helper-6: c947bacff9c3c986d060c9430b267dfb
session-helper-7: a0f263e4b36cae603df8fa59a46163e7
session-helper-8: c1ca8b0c5d0099ac3d805fb06378041b
session-helper-9: 9fba0cb41a2716e859698324560c6930
session-helper-10: ccceeb64feec514e9939ea0a10f83041
session-helper-11: 5fda52bbdf945cfe3a1d0519fbdbf49e
session-helper-12: 4fef3e9ae29223fbda89bedd107949a6
session-helper-13: 672c0353e341a982ce022b2bbd2c8cdc
session-helper-14: 26eb138059e2cf0cabf61b1b2b646b38
session-helper-15: c2fea018351bea2856ad042b92a5320a
session-helper-16: 41b2418b1c48ec90c75b8f296d1d52e8
session-helper-17: 7f4ee1a14d0dc5269c5bdfa154be7f06
session-helper-18: 89165aebbcbd8f531c8c15126b14fdf6
session-helper-19: 24ec476747dd6dea3d522836559ed393
interface.dmz: 293547b7c09961fcea1a00d502b5b005
interface.fortinet4guest: ba51b5c8b5944a675df22987ae0c0953
interface.fortinet4intern: a2ead6e9d77aed2c26f746a71e07cc30
interface.internal1: 1ac06432534ae099140b40375ec5253d
ntpserver.1: 8ec37555eba565a1166fc2a8c4365282
ntpserver.2: 917e47ca71df43e638d3484363442631
Führe nun auf dem "slave" ebenfalls diesen Kommando aus und vergleiche jede Position resp. Objekt denn alle müssen "in-sync" sein:
slave # diagnose sys ha showcsum 2
Wenn eine entsprechendes Objekt nicht "in-sync" ist kann dieses anhand folgendes Befehls näher angeschaut werden:
# diagnose system ha showcsum <path.object>
NOTE Dies bedeutet zB als Beispiel folgendes:
# diagnose sys ha showcsum system.admin
Wir für ein Objekt ein Unterschied festgestellt muss dieser Unterschied anhand des Objektes auf der FortiGate Konfiguration eruiert werden. Zur Problemlösung macht es event. Sinn -sofern möglich- das entsprechende Objet zu löschen und neu zu erstellen (master/slave). Danach eine "Re-Kalkulierung" auszuführen sowie die "checksum" Kontrolle.
Kann ich für einen Cluster eine VDOM erstellen die ausschliesslich für das Management benutzt wird?
Auf der einen Seite gibt es in einem Cluster die Möglichkeit ein spezifisches Interface auf jedem Node zu konfigurieren (HA Reserved Management Interface) die für das Management der einzelnen Nodes zuständig sind. Diese Art der Konfiguration ermöglicht es die einzelnen Nodes zu überwachen (SNMP) und diese über das spezifische Interface zu Managen/Troubleshooten. Der Nachteil in dieser Konfiguration liegt im Logging Bereich dh. bei der Log Uebertragung auf einen Remote Log Server wie zB "Syslog". Nichts desto trotz ist dies die meist gewählte Implementierung und sollte auch unter normalen Umständen gewählt werden. Dazu wählt man in der HA Konfiguration ein dezidiertes Interface:
System > Config > HA > Reserve Management Port for Cluster Member
NOTE Beachte dabei das dieses Interface vom "Clustering" ausgenomme ist dh. durch das Konfigurieren
einer IP für jeden Node auf dem spezifischen Interface das als "Reserve Management Port for
Cluster Member" konfiguriert wurde kann über diese IP jeder Node einzeln angegangen werden.
Dies ermöglichkt auch -über dieses Interace- jeden Node einzeln über SNMP zu überwachen.
Wie oben beschrieben unter normalen Umständen sollte diese Art der Implementation eines Management Interface's konfiguriert werden. Möchte man jedoch mit einer "seperaten" VDOM dh. Mgmt. VDOM arbeiten und die Möglichkeit haben über diese VDOM den Cluster zu managen sowie Log's einzel für jeden Node zB zu einem Syslog zu senden kann eine "Management VDOM" implementiert werden. Dabei ist zu beachten, dass diese Management VDOM "nicht" im Clustering enthalten ist dh. diese wird nicht "synchronized" und ist komplett unabhängig vom Cluster. Alle Interfaces/Ports die innerhalb einer solchen "Management VDOM" zur Verfügung stehen können genutzt werden um den Cluster zu Administrieren. Dabei spielt es keine Rolle ob man die Interfaces/IP's benutzt des Slaves und/oder des Masterw da die "Management VDOM" nicht Bestandteil des "Clustering" ist. Aus diesem Grund werden ebenfalls die Logs unabhängig für jeden Node einzel mit dessen IP resp. die für die Management VDOM benutzt werden zB einem "Syslog" übermittelt. Gleichzeitig kann wie bei der "HA Reserved Management Interface" jeder einzelne Node des Clusters über diese IP's/Interfaces zB über SNMP überwacht werden. Um eine solche Konfiguration durchzuführen bedarf es FortiOS 5.0. Folgendes muss durchgeführt werden über die Console auf dem Cluster:
__________
| |
| INTERNET |
|__________|
|
_______|______
________________| |________________
| | Red Switch | |
| WAN1 |______________| | WAN1
_____|_____ _____|_____
| | | |
| |<---- PORT1 Interface Heartbeat---->| |
| | | |
| FORTI | | FORTI |
|____ | | ____|
| | | | | |
MGMT VDOM |____|______| |______|____| MGMT VDOM
| | ______________ | |
MGMT1 | | INTERANL | | INTERNAL | | MGMT1
| |________________| Green Switch |_______________| |
| |______________| |
| | |
| _____|____ |
| | | |
| | LAN | |
| |__________| |
| |
_|_____________ _____________|_
| | | |
| Mgmt. Switch | | Mgmt. Switch |
|_______________| |_______________|
| |
| |
| |
| Mgmt. Network | Mgmt. Network
| |
NOTE Dieses Beispiel geht davon aus das beide Devices "nicht" produktiv sind und nicht im Netzwerk verbunden sind. Die Devices dh. der Master und der Slave werden Standalone Konfiguriert und erst zu einem späteren Zeitpunkt über das Heartbeat Interface verbunden! Dabei gelten die gleichen Vorraussetzungen für den Bau eines Cluster wie im folgenden Artikel beschrieben: FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
Master
# config system global
# set vdom-admin enable
# end
# config vdom
# edit [Erstelle eine neue VDOM zB mit dem Namen "MGMT"]
# end
# config global
# config system global
# set management-vdom [Name der neu erstellten VDOM zB "MGMT"]
# end
NOTE Wenn das Kommando "management-vdom" benutzt wird kann die "root"
VDOM nicht angegeben werden in der Konfiguration!
# config system ha
# set mode [Setze den Mode Active/Passive dh. "a-p"]
# set hbdev [Setze die Ports für den Heartbeat (Sync) sowie Priorität zB "port1 50"]
# set standalone-mgmt-vdom enable
# set priority [Setze einen Integer für Prority zB "200"]
# set group-name [Gruppen Namen zB "FG-HA-SG0E0]
# set group-id [Group ID zB "10"]
# set password [Passwort max. Länge 19]
# set override enable
# end
# end
NOTE Die Option "override enable" wird benutzt damit der Master bei einem Failover
nachträglich wiederum Master wird! Weitere Informationen zu dieser Option siehe
nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
# config vdom
# edit [Gebe den Namen der erstellten Mgmt. VDOM an zB "MGMT"]
# config system interface
# edit [Wähle das Interface für die Mgmt. VDOM zB "mgmt1"]
# set vdom [Füge das Interface der Mgmt. VDOM hinzu "MGMT"]
# set ip [Vergebe die IPv4 Adresse mit deren Subnet zB "192.168.1.99/24]
# end
# config router static
# edit 1
# set device [Wähle das Interface für den Routing Eintrag zB "mgmt1"]
# set gateway [Konfiguriere den Gateway als IPv4 Adresse zB "192.168.1.1"]
# next
# end
SLAVE
# config system ha
# set mode [Setze den Mode Active/Passive dh. "a-p"]
# set set hbdev [Setze die Ports für den Heartbeat (Sync) sowie Priorität zB "port1 50"]
# set standalone-mgmt-vdom enable
# set priority [Setze einen Integer für Prority zB "100"]
# set group-name [Gruppen Namen zB "FG-HA-SG0E0]
# set group-id [Group ID zB "10"]
# set password [Passwort max. Länge 19]
# end
NOTE Beim "hbdev", "mode", "group-name", "group-id" sowie "password" müssen die gleichen Werte wie
beim "Master" Device gesetzt werden!
Nun führe einen "shutdown" durch für den Slave dh.:
# execute shutdown
Verbinde nun den Master mit dem Slave Device über das konfigurierte "Heartbeat" (hbdev) Interface.
Danach starte den "Slave" Device erneut und kontrolliere über die Console auf dem Slave das folgende
Meldung erscheint:
slave's external files are not in sync with master, sequence:1. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
slave succeeded to sync external files with master
slave succeeded to sync external files with master
Sobald der Slave Device in "sync" ist mit dem Master kann nun auf dem Slave Device das Interface für
die Management VDOM -wie schon auf dem Master geschehen- durchgeführt werden:
# config vdom
# edit [Gebe den Namen der erstellten Mgmt. VDOM an zB "MGMT"]
# config system interface
# edit [Wähle das Interface für die Mgmt. VDOM zB "mgmt1"]
# set vdom [Füge das Interface der Mgmt. VDOM hinzu "MGMT"]
# set ip [Vergebe die IPv4 Adresse mit deren Subnet zB "192.168.1.100/24]
# end
# config router static
# edit 1
# set device [Wähle das Interface für den Routing Eintrag zB "mgmt1"]
# set gateway [Konfiguriere den Gateway als IPv4 Adresse zB "192.168.1.1"]
# next
# end
Nun kann zB ein "Syslog" Server konfiguriert werden:
# config log syslogd setting
# set status enable
# set server "192.168.1.103"
# end
Wenn man sich nun die Logs anschaut - die auf dem Syslog Server übermittelt werden - sieht man das diese "pro" Node mit unterschiedlichen IP's übermittelt werden da diese über jeden Node einzeln über die Management VDOM gesendet werden:
Feb 17 16:06:44 192.168.1.99 date=2014-02-16 time=23:09:10 devname=FG3K9B3E13700260 devid=FG3K9B3E13700260 logid=0001000014 type=traffic subtype=local level=notice vd=MGMT srcip=
192.168.1.103 srcport=137 srcintf="mgmt1" dstip=192.168.1.255 dstport=137 dstintf="MGMT" sessionid=865 status=deny policyid=0 dstcountry="Reserved" srccountry="Reserved" trandisp=noop
service=137/udp proto=17 app=137/udp duration=0 sentbyte=0 rcvdbyte=0
Feb 17 16:06:44 192.168.1.100 date=2014-02-16 time=23:09:10 devname=FG3K9B3E10700346 devid=FG3K9B3E10700346 logid=0001000014 type=traffic subtype=local level=notice vd=MGMT srcip=
192.168.1.103 srcport=137 srcintf="mgmt1" dstip=192.168.1.255 dstport=137 dstintf="MGMT" sessionid=704 status=deny policyid=0 dstcountry="Reserved" srccountry="Reserved" trandisp=noop
service=137/udp proto=17 app=137/udp duration=0 sentbyte=0 rcvdbyte=0
Weitere Informationen betreffend Einrichtung eines Syslog Servers siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_Fortigate_die_Logs_zus.C3.A4tzlich_einem_Syslog_Server_senden.3F
Wie kann ich auf einer FortiGate im Cluster Mode zusätzlich zum "Port Monitoring" ein "Destination Monitoring" (DGD) konfigurieren?
In einem FortiGate Cluster wird "Port Monitoring" aktiviert um den Status (Link) der Interfaces zu übewachen. Wird dieser Link beeinträchtigt wird ein Failover ausgeführt. In einigen Konstellation kann es Wichtig sein nicht nur den Port resp. das Interface zu übewachen sondern die Verbindung selber. Dies kann zusätzlich zum FortiGate HA Cluster konfiguriert werden anhand der Funktion "Dead Gateway Detection" (Link Monitor). Damit dies durchgeführt werden kann muss zuerst die Funktion des "Dead Gateway Detection" im HA konfiguriert werden:
# config system ha
# set pingserver-monitor-interface [Definition der Interfaces für die Aktivierung der "Dead Gateway Detection" Funktion zB "port1" "port2"]
# set pingserver-failover-threshold [Gewichtung des Failovers; Möglich 0 - 50, Standard 10]
# set pingserver-flip-timeout [Flip-Timout in Minuten; Möglich 6 to 2147483647; Standard 6]
# end
NOTE Die Option "pingserver-failover-threshold" steht im direkten Zusammenhang mit "ha-priority" konfiguriert unter "config
router gwdetect". Wird der Wert unter "pingserver-failover-threshold" auf 0 gesetzt wird ein Failover durchgeführt sobald
ein Ping verloren geht. Unter "pingserver-flip-timeout" wird definiert, dass wenn auf allen Cluster Nodes die definierte
Destination nicht erreichbar ist während des gesetzten Wertes ein Failover verhindert wird.
Nachdem die Funktion im HA durch "pingserver-monitor-interface" aktiviert wurde, kann diese unter "Dead Gateway Detection" (Link Monitor) konfiguriert werden:
# config router gwdetect
# edit 1
# set failtime [Anzahl Fehlversuche bevor ein Failover ausgeführt wird; Möglich 1 - 5; Standard 5]
# set ha-priority [Definiton der Gewichtung; Möglicher Wert 1 - 50; Standard 1]
# set interface "port1"
# set server [IPv4 Adresse des Servers resp. Pingserver]
# next
# edit 2
# set failtime [Anzahl Fehlversuche bevor ein Failover ausgeführt wird; Möglich 1 - 5; Standard 5]
# set ha-priority [Definiton der Gewichtung; Möglicher Wert 1 - 50; Standard 1]
# set interface "port2"
# set server [IPv4 Adresse des Servers resp. Pingserver]
# next
# end
NOTE Die "ha-priority" kommt eine wichtige Funktion zu dh. der definierte Wert wird bei Verlust des Pings der HA Gewichtung hinzugefügt. Wenn
unter "config system ha" die Option auf "pingserver-failover-threshol" 10 gesetzt wird und die "ha-priority" auf 5, wird dêr Wert 5 bei
jedem Ping Verlust addiert dh. gehen 2 Pings verloren (5+5) = 10 = Failover da der Wert für "pingserver-failover-threshold" erreicht ist!
Die Option "ha-priority" wird nicht synchronisert in einem Cluster.
Wireless-Controller
Wo finde ich Informationen betreffend FortiGate Wireless Controller und Forti Access Points?
Nachfolgender Artikel gibt Auskunft über die verschiedenen Konfigurationen und Betrieb von Forti Access Points im Zusammenhang mit dem FortiGate Wireless Controller:
FortiAP:FAQ
Vdom
Was ist eine Vdom und was ist darunter zu verstehen sowie wie aktiviere ich diese?
VDom (Virtuell Domain) wurde durch Fortinet 2004 vorgestellt und ist seitdem her ein fester Bestandteil jeder FortiGate Firewall. VDom ist eine Virtualisierung einer Firewall Instanz im Gesamten dh. sämtliche Firewall Komponenten/Konfiguration wird separariert. Eingeloggte Administratoren sehen auf den Ihnen zugeteilter VDom Instanz nur deren Konfiguration. Interkomunikation zwischen VDom Instanzen sind über virtualisierte Interfaces (Inter-VDOM-Link) direkt möglich ohne physikalische zu benutzen. Jede FortiGate hat die Möglichkeit -ohne zusätzliche Lizensierung- 10 VDOM's zu benutzen. Bis zur FortiGate-1000 können diese VDOM's nicht erweitert werden. Für FortiGate 1000 und grösser können die VDOM Instanzen anhand 25er Package erweitert werden! Die VDOM Funktionalist auf einer FortiGate ist per Standard deaktiviert. Um diee Funktion zu aktivieren führe folgendes durch:
# config system global
# set vdom-admin enable
# end
You will be logged out for the operation to take effect
Do you want to continue (y/n)y
NOTE Duruch die Aktivierung der VDOM Funktion auf einer FortiGate wird die bestehende Instanz zur "root" VDOM. Diese Instanz kann nicht unbenannt werden! Weitere Informationen betreffend Details, Informationen sowie Konfiguration siehe nachfolgenden Artikel: Datei:Fortigate-vdoms-50.pdf Desweiteren sollte betreffend CLI im Zusammenhang mit VDOM's folgender Artikel berücksichtigt werden: FortiGate-5.0-5.2:FAQ#Was_muss_in_der_CLI_.28Kommandozeile.29_betreffend_VDom.27s_beachtet_werden.3F
Was ist betreffend VDOM und verschiedenen Administratoren Rechte zu berücksichtigen?
Wenn ein FortiGate Device betrieben wird mit veschiedenen VDOM's so können für diese VDOM's verschiedene Administratoren erstellt werden sowie diese den einzelnen VDOM' zugewiesen werden. Diesen Administratoren kann anhand der entsprechenden Mgmt. Profiles Rechte zugewiesen werden. Diese Mgmt. Profiles steuern auf welche Funktionen diese Administratoren Zugriff erlangen (zB Read-Only). Weitere Informationen über diese Mgmt. Profiles siehe auch folgendender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_einen_.22read-only.22_Administrator_konfigurieren.2Ferstellen.3F
Wenn mehrer VDOM's existieren und einzelne Administratoren diesen VDOM's zugewiesen wurden, sollte darauf geachtet werden, dass diese zusätzlichen Adminstratoren im Gegensatz zum Super Administrator nicht über folgende Rechte verfügen:
- Kein Zugriff auf die Kommandozeile (CLI) sei es per SSH, Telnet, Console und CLI Widget
- Zugriff sollte nur erlaubt werden auf Web Mgmt. Interface ohne CLI Widget
Der Grund liegt im undokumentierten Befehl "fnsysctl". Weitere Informationen über "fnsysctl" siehe nachfolgender Artikel:
FortiGate:fnsysctl
Anhand dieses Befehls kann "jeder" Administrator über die Kommandozeile (CLI) die Konfiguration jeder einzelnen VDOM sowie Globale Komponenten auslesen. Die "einzige" Möglichkeit dies zu verhindern ist der sogenannte "FIPS-CC Mode" in der eine FortiGate betrieben wird. Dabei handelt es sich um einen Standard resp. FIPS bedeutet "Federal Information Processing Standard". Siehe auch:
http://de.wikipedia.org/wiki/Federal_Information_Processing_Standard
Per Standard ist "FIPS-CC Mode" auf jeder FortiGate "deaktivert" und dies kann anhand folgenden Befehls kontrolliert werden:
# get system status | grep FIPS
FIPS-CC mode: disable
Wenn dieser Mode aktiviert werden soll kann dies durch folgenden Befehl durchgeführt werden:
# config system fips-cc
# set status enable
# end
Es ist jedoch absolut Ünabdingbar vorhergehend sich Ausgiebig zu informieren um was es sich beim "FIPS-CC Mode" handelt und welche Einschränkungen/Auswirkungen zu beachten sind. Dazu steht unter folgenden Link ein Dokument zur Verfügung das dies ausführlich beschreibt:
Datei:Fips-cc-50.pdf Datei:FIPS-CC-Certification-History.pdf
Was muss in der CLI (Kommandozeile) betreffend VDom's beachtet werden?
Sobald auf der Kommandozeile (CLI = Command Line Interface) die VDOM Funktion aktiviert wird erweitert sich die hirarchische Struktur in der CLI um die einzelnen Konfigurationen der Firewall Instanzen abzubilden. Wie die VDOM Funktion aktiviert wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F
Nach dem die VDOM Funktion aktiviert ist verhätl sich die CLI folgendermassen:
Global Editieren
# config global
# config sytem global
VDOM Editieren
# config vdom
# edit [Vdom Name]
Müssen VDom Instanzen lizensiert werden und wie kann man diese Erweitern?
Jede Fortigate besitzt per Standard 10 VDom Instanzen (FortiGate bis 1000er Serie untersützten 10 VDom’s und sind nicht erweiterbar). Upgrade auf einer höhere Anzahl VDom's bei grösseren Devices als FortiGate 1000er Serie sind jederzeit möglich (25 Package)! Die Virtualisierte Version der FortiGate unterstützt in der Basis Version (VM-00) KEINE VDom's und kann nicht anhand VDOM Lizenzen mit VDom's versehen werden! Wieviel VDom's welche virtuelle Version der FortiGate unterstützt und ob diese Erweiterbar sind sieht man aus dem folgenden Dokument:
Fortinet:ProduktInfo#FortiGate_VM
Wie Registriere/Aktiviere ich eine zusätzliche VDom Lizenz auf einer FortiGate?
Nachfolgender Artikel gibt Auskunft welche FortiGate (inkl. Virtualisierung) wieviele VDom's unterstützen:
FortiGate-5.0-5.2:FAQ#M.C3.BCssen_VDom_Instanzen_lizensiert_werden_und_wie_kann_man_diese_Erweitern.3F
Wenn eine FortiGate sei es Physisch oder Virtualisiert mit zusätzlichen VDom's erweitert wird, muss folgendermassen vorgegangen werden:
- Die zusätzlichen VDom Lizenzen werden anhand eines Lizenz Zertifikates geliefert!
- Auf diesem Lizenz Zertifikat ist unter "VDOM License Number:" der entsprechende Lizenz Code aufgeführt!
- Logge dich auf https://support.fortinet.com auf den Account ein indem die FortiGate mit dessen Serien Nummer registriert ist!
- Wähle "Manage/View Products" klicke auf die entsprechende Serien Nummer der FortiGate auf der die VDom Lizenzerweiterung durchgeführt werden soll!
- Wähle unter der entsprechenden Serien Nummer der FortiGate "Add VDOM License" und geben den auf dem Zertifikat aufgeführten "VDOM License Number:" ein!
- Führe die Registration durch!
- Nach der Registration wird ein entsprechender VDom Key unter "Add VDOM License" aufgeführt.
- Nun muss der entsprechende "VDom Key" auf der FortiGate unter folgender Position eingespielt werden:
Dashboard > Status > License Information > Virtual Domains
NOTE Wenn ein Cluster Betrieben wird MUSS vorgängig ein Backup durchgeführt werden! Der "VDom Key"
muss auf beiden Nodes des Clusters eingespielt werden! Das Einspielen der Lizenz führt zu einem
sofortigen Neustart der Fortigate ohne Warnung!
- Nach dem Neustart kann die max. Anzahl der VDom's unter folgender Position verifiziert werden:
System > Dashboard> License Information > Virtual Domains
NOTE Diese Verifikation sollte auf Master und Slave durchgeführt werden!
Kann ich die zur Verfügung stehenden Resourcen wie Memory, CPU etc. auf einer FortiGate einer bestimmten VDOM zuweisen?
Nein dies ist so nicht möglich dh. eine feste Zuweisung von Resourcen wie zB RAM Bereich und/oder CPU usw. ist nicht möglich. Was konfiguriert werden kann ist die "Limitierung" von Resourcen. Damit wird gewährleistet, dass durch "Eine" VDOM/Instanz nicht alle Resourcen aufgebraucht werden und somit andere VDOM's beeinträchtigt werden. Nachfolgend die Konfigurationspunkte die für die Limitierung konfiguriert werden können (Stand FortiOS 5.0.4 / 5.2):
Folgende Position zeigt die "Globalen Resourcen" die zur Verfügung stehen:
Datei:Fortinet-812.jpg
Unter folgender Position können die "Globalen Resourcen" für die einzelnen VDOM's limitiert werden:
Datei:Fortinet-813.jpg
Einige Resourcen sind für die einzelnen VDOM Instanzen über Mgmt. Web Interface ersichtlich. Dies gilt für folgende Resourcen:
• Interface
• Ref. (Spalte im Web Mgmt. Interface per Standard deaktiviert)
NOTE Ab FortiOS 5.2 sind zusätzlich folgende Resourcen über Web Mgmt. Interface ersichtlich:
• CPU
• Memory
• New Sessions per Second (Spalte im Web Mgmt. Interface per Standard deaktiviert)
• Sessions (Spalte im Web Mgmt. Interface per Standard deaktiviert)
Datei:Fortinet-1127.jpg
NOTE Auf der Kommandozeile steht für FortiOS 5.2 folgendes Kommando zur Verfügung:
# diagnose sys vd stats
vdom-1 cpu:0% mem:0%
root cpu:5% mem:14%
Kann ich die "management-vdom" Funktion die der "root" VDOM zugewiesen ist einer anderen VDOM zuweisen?
Der Funktion "management-vdom" kommt einer wichtigen Funktion gleich dh. über diese VDOM resp. deren Interfaces wird sämtlicher "local" Traffic ausgeführt. Dies bedeutet die FortiGate benötigt für Ihre Services wie Antivirus, IPS, Application Control, WebFilter usw. Definition Files, DNS Resolution etc. All dieser "local" Traffic wird über die "management-vdom" abgewickelt resp. deren Interface's. Per Standard ist die VDOM "root" als "management-vdom" definiert. Möchte man das Aendern kann dies über Web Mmt. Interface durchgeführt werden:
Datei:Fortinet-1128.jpg NOTE Die Auswirkungen, wenn die "managemnt-vdom" von der VDOM "root" auf eine neue VDOM verschoben wird, sollten gut überlegt sein sowie deren Auswirkungen. Die Konfiguration kann ebenfalls über die Kommandozeile durchgeführt werden: # config system global # set managemtn-vdom [Name der entsprechenden VDOM] # end
Welche Konfiguration/Resourcen werden durch die "Globale Instanz" einer VDom Instanz zur Verfügung gestellt?
VDom's sind Firewall Instanzen die komplett separiert sind und zB keine Routing Table, Policy, Object etc. teilen. Nichts desto trotz werden vers. Komponenten von der "Global Instanz" den VDOM Instanzen zur Verfügung gestellt. Dies sind zB Antivirus Definition Files, Firmware etc. Nachfolgend einen Ueberblick "was" von der "Global Instanz" den VDom Instanzen zur Verfügung gestellt wird:
- Hostname
- DNS Settings
- System Time (NTP)
- Firmware Version
- Log Konfiguration betreffend Log Speicherort
- Endpoint Scans
- UTM Datenbanken
NOTE Zertifikate werden in der "Globalen Instanz" vewaltet und sind Global zu betrachten!
Alle diese Funktionen benötigen teilweise Internet Access und werden auf einer FortiGate auch als "local-in/out" Traffic angesehen. Dieser "local-in/out" Traffic wird über das Interface der "management-vom" abgewickelt (Standard VDOM "root"). Die Zuweisung der "management-vdom" kann verändert werden. Dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_die_.22management-vdom.22_Funktion_die_der_.22root.22_VDOM_zugewiesen_ist_einer_anderen_VDOM_zuweisen.3F
Ist das Routing für eine VDom "Global" oder per "VDom" zu verstehen?
Das Routing ist nicht "Global" implementiert sondern per "VDom". Dies bedeutet eine "VDom" ist wie eine seperate in sich geschlossene Routing Instanz und verfügt somit auch ihre eigenen Routing Table. Deshalb muss in jeder "VDom" seperat geroutet werden! Ein Routing Eintrag innerhalb einer VDom wird wie üblich erstellt:
Datei:Fortinet-138.jpg NOTE Ein entsprechender Routing Eintrag kann ebenfalls über die Kommandozeile durchgeführt werden: # config vdom # edit [Name der entsprechenden VDom] # config router static # edit [Gebe einen Sequenz an zB "1"] # set dst [IPv4 Subnet] # set gateway [IPv4 Adresse] # end
Was muss ich berücksichtigen im Zusammenhang mit einer VDom und Layer 2?
Eine VDom im Transparent Modus reagiert eigentlich wie eine Bridge dh. die Interface's die für eine Transparent VDom benutzt werden sind nicht konfigurierbar mit einer IP. Die Aussage, dass eine Fortigate im Transparent Modus als "Bridge" agiert ist zwar im Grundsatz richgit dennoch wiederum nicht ganz richtig dh. richtig wäre "wie ein Switch". Der Grund liegt in den UTM Möglichkeiten im Transparent Modus denn diese benötigen einen Layier um eine Proxyfizierung durchzuführen und deshalb die Festellung "wie ein Switch". Auch im Layer 2 sind einige Umstände zu berücksichtigen damit Traffic von Layer 2 korrekt abgearbeitet wird. Fortinet hat in der "Knowledge Base" ein Dokument Released das diesem Umstand Rechnung trägt:
Datei:Fortinet+Solutions+for+Transparent+Mode+(Layer-2)-v2.pdf
Können VDom's im HA (High Availability) betrieben werden?
VDOM’s sind Vollumfänglich HA-fähig (Cluster). In Active-Passive Mode laufen sämtliche VDOM’s per Standard jeweils auf der aktiven FortiGate. Der andere passive Device wird erst aktiv sobald die aktive FortiGate resp der primäre Device ausfällt. Dies ist das Standard Verhalten im Cluster (Active-Passive Modus). Es kann jedoch aus Resourcen Gründen (zB Performance) auf einer Active-Passive Installation VDom's auf den Passiven Device ausgelagert werden. Wenn dies durchgeführt wird bleibt der Cluster zwar Active-Passive aber die jeweiligen Nodes übernehmen betreffend den VDom's entweder den Activen Part und/oder den Passiven Part.
Node Active Node Passive
Phyiscal-Node1 Physical-Node2
vdom-1 (Active) vdom-1 (Passive)
vdom-2 (Passive) vdom-2 (Active)
Wie kann ich eine neue VDom erzeugen/erstellen
Grundvoraussetzung um eine VDom auf einer FortiGate zu erstellen ist das die Funktion aktiviert ist. Nachfolgender Artikel gibt Auskunft wie dies durchgeführt wird:
FortiGate-5.0-5.2:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F
Wenn die Funktion VDom aktiviert wird so wird automatisch anhand der vorhandene Konfiguation eine VDom mit dem Namen "root" erstellt (kann nicht umbenannt werden)! Möchte man zu dieser VDom eine zusätzliche VDOM erzeugen so kann dies im Mgmt. Web Interface über folgende Position durchgeführt werden:
Global > VDOM > VDOM > Create New
Es muss ein entsprechender Name vergeben werden sowie der "Operation Mode" den die VDOM benutzen soll. Möchte man eine Transparent Vdom erstellen muss eine "Management IP/Netmask" konfiguriert werden. Diese "Management IP/Netmask" stellt ein entsprechendes Interface dar auf der FortiGate auf der die entsprechende IP konfiguriert ist. Da eine Transparent VDom über kein Routing verfügt (Bridge) muss für das "Management IP/Netmask" Interface ein Routing definiert werden. Dieses Routing beschränkt sich einzig und alleine auf diese "Management IP/Netmask" resp. auf das physisch konfigurierte Interface. Weitere Informationen betreffend Konfiguration einer Transparent VDom siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere.2Ferstelle_ich_eine_VDom_Instanz_im_Transparent_Mode.3F
Wie konfiguriere/erstelle ich eine VDom Instanz im Transparent Mode?
Wenn man eine Transparent VDom erstellen möchte kann auch ohne die VDom Funktion zu aktivieren die "root" VDom die als NAT definiert ist als "Transparent Mode" definiert werden. Wenn jedoch zusätzlich zur "root" VDom eine zusätzliche VDom im Transparent Mode erstellt werden soll muss zuerst die VDom Funktion aktiviert werden. Wie dies durchzuführen ist siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F
Danach erstelle eine neue VDOM und konfiguriere diese für Transparent Modus:
# config vdom
# edit [Name der neuen VDom zB "vdom-2"]
# config system settings
# set opmode transparent
# set manageip [IPv4 Adresse des Management Interfaces]
# end
# config router static
# edit 1
# set gateway [IPv4 Adresse des Gateway für "manageip"]
# end
# end
NOTE Die Option "manageip" definiert die IP eines bestehenden und konfigurierten physischen Interfaces. Dieses
wird benutzt um die Transparent Firewall zu verwalten da diese ja nicht zugänglich ist da eine Transparent
Firewall über keine IP verfügt (Bridge). Aus diesem Grund muss für dieses Interface "manageip" eine Route
gesetzt werden. Diese Route ist beschränkt auf die Konfiguration "manageip" resp. auf das physische Interface.
Eine VDom im Transparent Modus reagiert eigentlich wie eine Bridge dh. die Interface's die für eine Transparent
VDom benutzt werden sind nicht konfigurierbar mit einer IP. Die Aussage, dass eine Fortigate im Transparent
Modus als "Bridge" agiert ist nicht ganz richtig dh. richtig wäre "wie ein Switch". Der Grund liegt in den
UTM Möglichkeiten im Transparent Modus denn diese benötigen einen Layier um eine Proxyfizierung durchzuführen
und deshalb die Festellung "wie ein Switch". Im nachfolgenden Dokumentation wird erklärt wie Interface's im
Zusammenhang mit VDom's zu benützen sind:
Hosting More as one FortiOS instance on a single FortiGate using VDOMS an VLANs"
Im Zusammenhang mit Layer 2 und VDom's sind einige Umstände zu berücksichtigen dh. Fortinet hat in der "Knowledge
Base" ein Dokument Released das diesem Umstand Rechnung trägt:
Datei:Fortinet+Solutions+for+Transparent+Mode+(Layer-2)-v2.pdf
Was sind inter-VDom-Links (Interfaces) und wie werden diese erstellt?
Immer wieder ist von inter-VDom-Links resp Interface die Rede. Inter-VDom-Links sind "Virtuelle Interfaces" (Soft-Link), welche eine NAT/Routing-VDommit einer anderen NAT/Routing-VDomverbinden. Diese Inter-VDom-Links ersetzen "physische Kabel". Inter-VDom-Links sollten -sofern keine Transparent Mode VDom- immer mit einer IP Konfiguration versehen werden obwohl dies nicht ein "muss" ist. Empfohlen wird zwischen Zwei VDom NAT Firewall zB ein "Transfer Segment" zu konfigurieren und die entsprechenden IP Ranges/Subnets darüber zu Routen. Auch können mit inter-VDom-Links "meshed" Netzwerke zwischen verschiedenen VDom’s etabliert werden. Um Ringrouten (Loop) zu vermeiden, wird der TTL eines IP-Packets durch die Inter-VDom-Links auf 6 "hope" beschränkt. Das Packet kann also maximal 6x durch ein Inter-VDom-Link übertragen werden bevor es verworfen wird.
NOTE Unter FortiOS 4 MR3 war es nicht möglich Inter-VDom-Links zu erstellen zwischen zwei VDom's in vers. Modi dh. Transparent
und/oder NAT. Inter-VDom-Links waren unter FortiOS 4 MR3 nur möglich wenn beide VDom's im gleichen Mode liefen. Die einzige
Möglichkeit in solche einem Scenario unter FortiOS 4 MR3 war die "physischen Interfaces" mit einem RJ-45 zu verbinden. Unter
FortiOS 5.0 / 5.2 ist es nun möglich Inter-VDom-Links zu erstellen zwischen VDom's die in unterschiedlichen Modi konfiguriert
sind. dh. NAT und Transparent Modus.
Ein Inter-Vdom-Link kann nur in der "Globalen" Instanz konfiguriert werden und so einer entsprechenden Instanz zur Verfügung gestellt werden. Ein Inter-VDom-Link wird folgendermassen erstellt:
NOTE Es ist möglich unter bestimmten Vorraussetzungen eine Acceleration für einen Inter-VDom-Link zu konfigurieren. Um welche Vorraussetzung es sich handelt siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Kann_man_f.C3.BCr_einen_Inter-VDom-Link_eine_Interface_Acceleration_konfigurieren.3F
System > Network > Interface
Datei:Fortinet-135.jpg
Datei:Fortinet-136.jpg
Datei:Fortinet-137.jpg
In unserem Beispiel wurde die VDom "root" verbunden mit der VDom "root-2" anhand eines Transfernetzes 172.20.0.0/24! Wenn hinter der VDom "root-1" ein weiteres Netzwerk existieren würde müsste dieses auf der VDom "root" geroutet werden dh. auf den VDom Link! Da unsere VDom "root-1" mit einem inter-VDOM-Link versehen ist muss der Default Gateway der VDom "root-1" auf den Inter-VDom-Link von "root" zeigen dh. erstelle einen Routing Eintrag und berücksichtige folgender Artikel:
FortiGate-5.0-5.2:FAQ#Ist_das_Routing_f.C3.BCr_eine_VDom_.22Global.22_oder_per_.22VDom.22_zu_verstehen.3F
Datei:Fortinet-138.jpg
Kann man für einen Inter-VDom-Link eine Interface Acceleration konfigurieren?
Unter FortiOS 4 M3 war dies nicht möglich. Neu mit FortiOS 5.0 / 5.2 ist dies nun möglich, jedoch nur wenn der Device über "NP4/NP6 Network Processor" verfügt (Kein SoC). Der Unterschied zwischen dem NP4 und/oder NP6 Prozessor liegen daher gehend, dass eine Acceleration für ein Inter-VDom-Link zwischen einer NAT und Transparent VDom nur mit einem NP6 Prozessor möglich ist jedoch nicht für NP4. Wenn ein Inter-VDom-Link mit Acceleration versehen wird (verlinkt) so erscheinen diese Links folgendermassen:
npuX-vlink0
npuX-vlink1
NOTE "X" indiziert den Index des NP4/NP6 Prozessors! Ein Beispiel wäre:
npu0-vlink0, npu0-vlink1 (Inter-VDOM Link ist verlinkt mit dem "Ersten" ("0") Prozessors des NP4/NP6 Prozessors)
npu1-vlink0, npu1-vlink1 (Inter-VDOM Link ist verlinkt mit dem "Zweiten" ("1") Prozessors des NP4/NP6 Prozessors)
Um Inter-VDom-Link's aufzulisten um festzustellen ob diese Accelerated resp. verlinkt sind zum "NP4/NP6 Prozessor" gebe auf der Kommandozeile folgendes ein:
# get hardware nic | grep npu
Folgendes Kommando auf der CLI zeigt auf welche Ports auf den "NP4/NP6 Prozessor" verlinkt sind:
# diagnose npu [np4 | np6] list
ID Model Slot Interface
0 On-board port1 port2 port3 port4
port5 port6 npu0-vlink0 npu0-vlink1|
1 FMC-C20 FMC3 fmc3/1 fmc3/2 fmc3/3 fmc3/4
fmc3/5 fmc3/6 fmc3/7 fmc3/8
fmc3/9 fmc3/10 fmc3/11 fmc3/12
fmc3/13 fmc3/14 fmc3/15 fmc3/16
fmc3/17 fmc3/18 fmc3/19 fmc3/20
npu1-vlink0 npu1-vlink1
NOTE Weitere Informationen siehe Knowledge-Base Artikel:
http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33888&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=48363952&stateId=0 0 48365253
In Zusammenhang mit VDom's auf einer FortiGate über welche VDom läuft der Mgmt. Traffic?
Wenn ein Fortigate im Zusammenhang mit VDom benutzt wird und mehrer VDom Instanzen vorhanden sind ist zu berücksichtigen, dass der Mgmt. Traffic per Standard über die "root" VDom läuft. Als Mgmt. Traffic wird der "local-in/out" Traffic definiert. Dieser "local-in/out" Traffic wird definiert als zB:
DNS
NTP
External Logging
FortiGuard
Alert Emails
SNMP traps
Quarantine
Wir die "root" VDom als Transparent VDom konfiguriert übernimmt der Mgmt. Traffic das Interface das in der Transparent VDom als "manageip" definiert wird. Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere.2Ferstelle_ich_eine_VDom_Instanz_im_Transparent_Mode.3F
Wenn auf einer Fortigate der Mgmt. Traffic "nicht" über die "root" VDom abgewickelt werden möchte kann die Aufgabe einer anderen VDom zugewiesen werden. Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_die_.22management-vdom.22_Funktion_die_der_.22root.22_VDOM_zugewiesen_ist_einer_anderen_VDOM_zuweisen.3F
Kann ein physisches Interface auf einer FortiGate mehreren VDom's zugewiesen werden?
Als Grundsatz gilt: Ein physisches Interface kann nur "einer" VDom zugewiesen werden. Wenn ein physisches Interface mehreren VDom's zugewiesen werden soll, muessen auf dem physischen Interface VLAN's konfiguriert werden und diese VLAN's den einzelnen VDom's zugewiesen werden. Nur so kann ein physisches Interface für mehrere VDom's benutzt werden. Nachfolgend ein Beispiel einer Konfiguration:
# config system interface
# edit [Name des VLAN's]
new entry added
# set interface port1
# set vlanid [VLAN ID]
# set ip [VLAN IP Adresse sowie Subnet Maske zB 10.100.1.10/24]
# set vdom [Name der entsprechenden VDOM]
# end
Kann ich für eine FortiGate eine VDOM erstellen die ausschliesslich für Management genutzt wird?
Um dies zu realisieren stehen vers. Möglichkeiten zu Verfügung. Grunsätzlich geht man jedoch von zwei Möglichkeiten aus dh. wird ein Cluster betrieben kann die HA Funktion "Reserve Management Port for Cluster Member" benützt weden oder anderseits kann in einem Cluster eine VDOM erstellt werden die ausschlisslich für Management Zwecke zur Verfügung steht. Beide Möglichkeiten stehen im Zusammenhang mit dem Clustering. Weitere detaillierte Informationen zu diesen zwei Möglichkeiten siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_einen_Cluster_eine_VDOM_erstellen_die_ausschliesslich_f.C3.BCr_das_Management_benutzt_wird.3F
Ich möchte BGP Traffic über eine Transparent VDOM/Firewall erlauben jedoch wird dieser geblockt?
Wenn man eine Transparent Firewall (normalerweise eine VDOM) konfiguriert und auf jeder Seite der Interface's ein Router angeschlossen ist, die miteinander komunizieren und BGP Informationen austauschen (TCP 179), wird dieser Traffic durch die Transparent Firewall -sofern eine entsprechende Firewall Policy Rule existiert- abgearbeiet. Damit der Traffic sauber durchgeht muss folgendes kontrolliert werden:
• Auf der Transparent Firewall muss eine Multicast Policy konfiguriert werden (Per Standard existiert diese dh. "all allow")
• Es muss eine Firewall Policy konfiguriert werden die den BGP Traffic erlaubt zwischen den Interfaces (TCP-179)
• Auf den Interface's muss folgendes konfiguriert werden (sofern mit mehreren Segmenten gearbeitet wird zB VLAN's):
# config system interface
# edit [Gebe das ensprechende Interface an zB wan1]
# set l2forward enable
# set forward-domain 10
# end
# config system interface
# edit [Gebe das ensprechende Interface an zB internal1]
# set l2forward enable
# set forward-domain 10
# end
NOTE Durch die Konfiguration der Interface's in der gleichen "forward-domain" werden diese
direkt verbunden! Dies bedeutet "Layer 2 broadcasts" werden beschränkt auf die gleiche Gruppe.
Per Standard sind alle Interfaces in der Gruppe "0". Das Kommando "forward-domain" steht nur
im Transparent Mode zur Verfügung. Wenn VLAN's im Transparent Mode benutzt werden muss/sollte
jedes VLAN in eine seperate "forward-domain" da ansonsten ARP Packete dupliziert werden da
für jedes VLAN im Transparent Mode die gleiche MAC Adresse benutzt wird. Somit kann/kommt es
zu Kollisionnen! Desweiteren sollte die MTU kontrolliert werden dh. wenn die BGP Session kurz
hochgefahren wird um nachträglich gleich wieder in den "closed" Status zu gehen muss die MTU
Size auf den Router kontrolliert sowie event. die der Fortinet angepasst werden. Die MTU Size
auf einer Fortigate anzupassen wird wiefolgt durcheführt:
FortiGate-5.0-5.2:FAQ#Wie_passe_ich_auf_einem_Interface_die_MTU_Size_an.3F
Client Reputation/Threat Weight/Device Identification
Wie funktioniert "Client Reputation/Threat Weight" und/oder "Device Identification" sowie auf welchen Geräten steht diese Funktion zur Verfügung?
Eine "Client Reputation" (Ab FortiOS 5.0) sowie "Threat Weight" (Ab FortiOS 5.2) bedeutet, dass Clients überprüft werden anhand eines Scores wie deren Reputation (Ruf) aussieht. Dies wird anhand des Logs durchgeführt. Was wiederum bedeutet, dass die Reputation anhand der Logs und deren Events eine Auswertung durchführt um die Reputation jedes einzelnen Clients zu ermitteln. Die Ermittlung der Clients umfasst die folgenden Informationen:
• MAC Adresse
• IP Adresse
• Operating System
• Hostname
• Username
• Zeit die vergangen ist seit ein Device das letzte Mal erkannt wurde und über welches Interface diese Erkennung stattgefunden hat.
Diese Client Informationen sind über folgende Position auf einer FortiGate ersichtlich:
NOTE Unter FortiOS 5.2 wurde der Name betreffend "Client Reputation" gewechselt auf
"Threat Weigt". Ebenfalls wurde die Menüpositon verschoben und ist neu ersichtlich
unter:
Log & Report > Log Config > Threat Weight
User & Device > Device > Device Definition
Die Auswertung um die Reputation der Clients zu ermitteln umfasst folgende Funktionen:
• Firewall Policy Block
• Verbindungend Fehlgeschlagen
• Intrusion Protection
• Malware Detection
• Web Aktivitäten
• Application Protection
• Geo Lokation
NOTE Um die Reputation der Clients zu ermitteln werden die UTM Funktionen auf der FortiGate benützt! Dies bedeutet folgende UTM
Funktionen müssen folgendermassen konfiguriert sein:
• UTM Security Profiles > Antivirus
Konfiguriere für DLP die Funktionen die notwendig sind!
• UTM Security Profiles > Web Filter
In den WebFilter Profilen müssen die entsprechenden Kategorien die nicht zugelassen sind auf "Block" sein sowie ALLE Kategorien
die erlaubt sind auf "Monitor". Kombinationen mit "Authenticate" sind natürlich ebenfalls möglich. Da die "Client Reputation"
über das Log ermittelt wird muss einfach gewährleistet sein, dass die Clients über den WebFilter anhand zB "Monitor" übewacht werden!
• UTM Security Profiles > Application Control > Application Sensor
Für die Funktion Application Controll gilt dasselbe wie für den WebFilter dh. auch hier analysiert die Client Reputation die
Logs was wiederum bedeutet, dass ALLE Applicationen entweder auf "Block" oder auf "Monitor" gesetzt werden ob "known" oder
"unknown". Nur so könnend die Clients überwacht werden (Log) und später durch die "Client Reputation" das Log ausgewertet werden.
• UTM Security Profiles > Intrusion Protection > IPS Sensor
Im IPS Sensor muss für die "Clients" ein Client Sensor konfiguriert werden dh. ein Sensor der ALLE Signaturen betreffend Client
"Monitored" und ins Log schreibt. Nur so ist gewährleistet das die "Client Reputation" die nötigen Auswertungen über das IPS Log
durchführen kann. Wenn Server etc. ebenfalsl in die "Client Reputation" einbezogen werden sollen muss ein entsprechender IPS
Sensor mit den nötigen Signaturen konfiguriert und über "Monitor" in das Log geschrieben werden.
• UTM Security Profiles > Email Filter
Konfiguriere Email Filtering die Funktionen die notwendig sind!
• UTM Security Profiles > Data Leak Prevention > Sensor
Konfiguriere für DLP die Funktionen die notwendig sind!
Die Funktion "Client Reputation" für FortiOS 5.0 sowie "Threat Weight" für FortiOS 5.2 stehen auf folgenden Devices zur Verfügung (Siehe Software Matrix "UTM"):
FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
Um die "Client Reputation" zu aktivieren auf einem Device muss innerhalb der "Interface" Konfiguration unter "System > Network > Interface" die Position "Detect and Identify Devices" aktiviert werden. Dies bedeutet das die "Client Reputation/Threat Weight" im direkten Zusammenhang steht mit der Device Identifikation! Die "Client Reputation/Threat Weight" kann unter folgender Position aktiviert sowie konfiguriert werden:
FortiOS 5.0
User & Device > Client Reputation > Reputation Definition
FortiOS 5.2
Log & Report > Log Config > Threat Weight
NOTE Sobald die "Client Reputation" aktiviert wird erscheint eine Hinweis/Warnmeldung, dass alle Policys und alle Funktionen
auf Log gesetzt werden. Dieser Umstand gilt für FortiOS 5.0 jedoch nicht für FortiOS 5.2. Da die "Client Reputation/Threat Weight"
über Log Analyse durchgeführt wird und als Grundlage muss geloggt werden. Dies bedeutet die vers. zB Policys können nicht mehr
für das Logging deaktiviert werden da die entsprechende Position auf dem WebGui "invers" erscheint da geforced durch die
(gilt nur für FortiOS 5.0) "Client Reputation". Aus diesem Grund hier nochmals der Hinweis, dass "Client Reputation" sehr
Performance intensiv ist und nur auf den entsprechenden Devices und auch dort mit Vorsicht zu implementieren ist.
Was ist der Unterschied zwischen "Client Reputation" und "Threat Weight"?
Unter FortiOS 5.0 wurde "Client Reputation" Funktion neu implementiert. Details betreffend "Client Reputation" siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_funktioniert_.22Client_Reputation.2FThreat_Weight.22_und.2Foder_.22Device_Identification.22_sowie_auf_welchen_Ger.C3.A4ten_steht_diese_Funktion_zur_Verf.C3.BCgung.3F
Unter FortiOS 5.2 wurde "Client Reputation" umgetauft auf "Threat Weight" und die Menüposition verschoben:
Log & Report > Log Config > Threat Weight
Der "offensichtliche" Hauptunterschied liegt darin, dass unter FortiOS 5.0 dh. für "Client Reputation" die Log's "geforced" aktiviert werden. Dies bedeutet sobald ich unter FortiOS 5.0 "Client Reputation" benutzen möchte, werden ALLE Logs aktiviert und diese können nicht mehr deaktiviert/manipuliert werden. Unter FortiOS 5.2 wird dies nicht durchgeführt und die Logs bleiben konfigurier/manipulierbar. Nicht nur die Menüposition wurde für FortiOS 5.2 verschoben sondern ebenfalls das Kommando in der CLI:
# config log threat-weight
# set blocked-connection [low | medium | high | critical | disable]
# set failed-connection [low | medium | high | critical | disable]
# set malware-detected [low | medium | high | critical | disable]
# set max-rep-db-size [Maximum MBytes]
# set url-block-detected [low | medium | high | critical | disable]
# set window-size [Maximal Tage des Zeitfenster für die Daten 1 - 30]
# config application
# edit [Gebe einen entsprechenden Category ID an; benutze ? für weitere Infos]
# set category [category_int>
# set level [low | medium | high | critical | disable]
# end
# config geolocation
# edit [Gebe einen entsprechenden Integer an zB 1]
# set country [Gebe den entsprechenden Country Code an]
# set level [low | medium | high | critical | disable]
# end
# config ips
# set info-severity [low | medium | high | critical | disable]
# set low-severity [low | medium | high | critical | disable]
# set medium-severity [low | medium | high | critical | disable]
# set high-severity [low | medium | high | critical | disable]
# set critical-severity [low | medium | high | critical | disable]
# end
# config level
# set low [1 bis 10]
# set medium [5 bis 30]
# set high [10 bis 50]
# set critical [30 bis 100]
# end
# config web
# edit [Gebe einen entsprechenden Integer an zB 1]
# set group [Gebe eine Entsprechende Group Category ID an; benutze ? für weitere Infos]
# set level [disable | low | medium | high | critical]
# end
# end
Wie kann ich über die Device Identification Funktion anhand einer Mac Adresse einen Device blocken (802.11x)?
Wenn über die Funktion der "Device Identification" ein spezifischer Device mit einer spezifischen MAC Adresse geblockt werden soll (802.11x) so kann dies folgendermassen konfiguriert werden:
# config user device
# edit [Name für den entsprechenden Device zB "phone-1"
# set mac [MAC Adresse des Device den man blocken möchte zB "01:12:13:14:15:16"]
# next
# end
NOTE Diese Konfiguration kann ebenfalls über das Web Mgmt. Interface durchgeführt werden und zwar über folgende
Position:
User & device > Device > Device definition > Create new
Die nachfolgende Konfiguration ist nur über Kommandozeile möglich. Dies bedeutet. Als Erstes muss eine Liste zB. "black-list" erfasst werden und der vorgängig erfasste Device mit dessen MAC Adresse zu dieser "black-list" hinzugefügt werden:
# config user device-access-list
# edit [Name der Liste zB "black-list "]
# set default-action [accept | deny; Standard "accept"]
# config device-list
# edit [Gebe einen entspechenden Integer an zB "1"]
# set device [Name des entsprechenden Device das unter "config user device" definiert wurde zB "phone-1"]
# set action [Gebe die entsprechende Action ein dh. "deny | accept"]
# next
# end
# next
# end
NOTE Wenn eine "device-access-list" erstellt wird und alle Device erfasst werden die Zugriff erlangen sollen dh. "white-list"
kann die "default-action" auf "deny" gesetzt werden. Wenn die Position "default-action" auf "deny" steht werden alle nicht
definierten/bekannten Device's geblockt!
Nun muss die "device-access-list" die erstellt wurde unter dem entsprechenden Device konfiguriert werden:
# config system interface
# edit [Name des entsprechenden Devices zB "internal"]
# set device-identification enable
# set device-access-list [Name der entsprechende "device-access-list" zB "black-list"]
# next
# end
Wenn diese Konfiguration im Zusammenhang mit einer Forti Access Point genutzt werden soll gibt nachfolgender Artile Auskunft über diese Konfiguration:
FortiAP:FAQ#Wie_und_soll_ich_.C3.BCberhaupt_f.C3.BCr_eine_SSID_einen_Mac_Filter_.28802.11x.29_Konfigurieren_f.C3.BCr_eine_Authentifizierung.3F
Wie kann ich im Log einer FortiGate die MAC Adressen von Device's anzeigen lassen?
Wenn im "Forward" Log auf einer FortiGate sowie im "Traffic" Log eines FortiAnalyzer die MAC Adresse der Devices in der Spalte "Source MAC" aufgelistet werden soll so muss auf dem entsprechenden Interface die "Identify and Detect Device" Funktion aktiviert werden. Dazu steht im Mgmt. Interface ein entsprechender Punkt zur Verfügung der aktiviert werden kann. Um die Funktion auf Kommandozeile zu aktivieren führe folgendes aus:
# config system interface
# edit [Name des entsprechenden Devices zB "internal"]
# set device-identification enable
# end
Danach steht die MAC Adresse in der Spalte "Source Mac" Adresse im Log sei es auf der FortiGate und/oder FortiAnalyzer zur Verfügung.
UTM Proxy Options / Protocol Options
Wie konfiguriere ich die UTM Proxy/Protocol Options manuell über Kommandozeile?
Bei kleineren Devices steht die Menüposition für die UTM Proxy/Protocol Options nicht mehr über Gui zur Verfügung. Diese müssen für diese Devices zB 40C über Kommandozeile konfiguriert werden. Dies wird folgendermassen durchgeführt:
NOTE Unter FortiOS 5.2 existiert die Positione "extended-utm-log" nicht mehr! Um "streaming" von UTM auszuschliessen existiert unter FortiOS 5.2 folgende option die jedoch für FortiOS 5.0 nicht exisitert: streaming-content-bypass Wenn "streaming" von UTM ausgeschlossen werden soll muss unter FortiOS 5.0 explizit eine "Content-Header" Konfiguration durchgeführt werden. Weitere Informationen findet man unter folgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_innerhalb_eines_WebFilters_einen_bestimmten_.22MIME.22_Type_.28zB_Audio.29_blockieren_.28Content-Header.29.3F Desweiteren wurde unter FortiOS 5.2 das Protokoll "im" komplett entfernt und steht für eine Konfiguration nicht mehr zur Verfügung.
FortiOS 5.0
# config firewall profile-protocol-options
# edit [Wähle das entsprechende Profile]
# get
name : default
comment : all default services
replacemsg-group :
oversize-log : disable
switching-protocols-log : disable
extended-utm-log : disable
http:
ports : 80
status : enable
inspect-all : disable
options : no-content-summary
comfort-interval : 10
comfort-amount : 1
post-lang :
fortinet-bar : disable
streaming-content-bypass : enable
switching-protocols : bypass
oversize-limit : 10
retry-count : 0
ftp:
ports : 21
status : enable
inspect-all : disable
options : no-content-summary splice
comfort-interval : 10
comfort-amount : 1
oversize-limit : 10
imap:
ports : 143
status : enable
inspect-all : disable
options : fragmail no-content-summary
oversize-limit : 10
mapi:
ports : 135
status : enable
options : fragmail no-content-summary
oversize-limit : 10
pop3:
ports : 110
status : enable
inspect-all : disable
options : fragmail no-content-summary
oversize-limit : 10
smtp:
ports : 25
status : enable
inspect-all : disable
options : fragmail no-content-summary splice
oversize-limit : 10
server-busy : disable
nntp:
ports : 119
status : enable
inspect-all : disable
options : no-content-summary splice
oversize-limit : 10
im:
status : enable
options :
oversize-limit : 10
dns:
ports : 53
status : enable
mail-signature:
status : disable
signature :
FortiOS 5.2
# config firewall profile-protocol-options
# edit [Wähle das entsprechende Profile]
# get
name : default
comment : all default services
replacemsg-group :
oversize-log : disable
switching-protocols-log: disable
http:
ports : 80
status : enable
inspect-all : disable
options : no-content-summary
comfort-interval : 10
comfort-amount : 1
post-lang :
fortinet-bar : disable
streaming-content-bypass: enable
switching-protocols : bypass
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : disable
block-page-status-code: 200
retry-count : 0
ftp:
ports : 21
status : enable
inspect-all : disable
options : no-content-summary splice
comfort-interval : 10
comfort-amount : 1
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : disable
imap:
ports : 143
status : enable
inspect-all : disable
options : fragmail no-content-summary
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : disable
mapi:
ports : 135
status : enable
options : fragmail no-content-summary
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : enable
pop3:
ports : 110
status : enable
inspect-all : disable
options : fragmail no-content-summary
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : disable
smtp:
ports : 25
status : enable
inspect-all : disable
options : fragmail no-content-summary splice
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : disable
server-busy : disable
nntp:
ports : 119
status : enable
inspect-all : disable
options : no-content-summary splice
oversize-limit : 10
uncompressed-oversize-limit: 10
uncompressed-nest-limit: 12
scan-bzip2 : disable
dns:
ports : 53
status : enable
mail-signature:
status : disable
signature :
Nun kann das entsprechende UTM Proxy/Protocol Options in die entsprechende Firewall Policy Rule implementiert werden:
# config firewall policy
# edit [Wähle die entsprechende Policy ID]
# set utm-status enable
# set profile-protocol-options [Wähle das entsprechende Proxy/Protocol Option Profil]
# end
Wie konfiguriere ich die UTM SSL Proxy/Protocol Options manuell über Kommandozeile?
Bei kleineren Devices steht die Menüposition für die UTM Proxy/Protocol Options nicht mehr über Gui zur Verfügung. Diese müssen für diese Devices zB 40C über Kommandozeile konfiguriert werden. Die SSL Proxy/Protocol Options werden benutzt in folgenden Situationen:
• SSL Deep Inspection (Client Zertifikat muss auf dem Client/Workstation installiert werden)
• URL Scan only (Es wird kein Client Zertifikat auf dem Client/Workstation benötigt jedoch "WebFilter Only")
NOTE Betreffend "URL Scan only" Konfiguration siehe nachfolgende Artikel:
FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Die Konfiguration der SSL Proxy/Protocol Options auf der Kommandozeile erfolgt folgendermassen:
NOTE Unter FortiOS 5.2 wurde die "Deep Inspection Engine" für eine bessere Performance
modifiziert. Ebenfalls wurde der Name in der Kommandozeile umbenannt und ist neu zu finden
unter:
# config firewall ssl-ssh-profile
Folgende Option wurde unter FortiOS 5.2 entfernt:
extended-utm-log
Folgende Option ist unter FortiOS 5.2 dazugekommen:
# config ssl-exempt
# config ssl
# set inspect-all [disable | certification-inspection | deep-inspection]
# end
# config [https | ftps | impas | pop3s | smtps]
# set status [disable | certification-inspection | deep-inspection]
# end
Somit kann durch "certification-inspection" über alles (inspect-all) oder
in den einzelnen Protokollen (zB https) gesettzt werden!
# config firewall deep-inspection-options
# edit [Wähle das entsprechende Profile]
# get
name : default
comment : all default services
ssl:
inspect-all : disable
allow-invalid-server-cert: disable
ssl-ca-list : disable
https:
ports : 443
status : enable
client-cert-request : bypass
unsupported-ssl : bypass
allow-invalid-server-cert: disable
ssl-ca-list : disable
ftps:
ports : 990
status : enable
client-cert-request : bypass
unsupported-ssl : bypass
allow-invalid-server-cert: disable
ssl-ca-list : disable
imaps:
ports : 993
status : enable
client-cert-request : inspect
unsupported-ssl : bypass
allow-invalid-server-cert: disable
ssl-ca-list : disable
pop3s:
ports : 995
status : enable
client-cert-request : inspect
unsupported-ssl : bypass
allow-invalid-server-cert: disable
ssl-ca-list : disable
smtps:
ports : 465
status : enable
client-cert-request : inspect
unsupported-ssl : bypass
allow-invalid-server-cert: disable
ssl-ca-list : disable
caname : Fortinet_CA_SSLProxy
certname : Fortinet_SSLProxy
ssl-server:
extended-utm-log : disable
NOTE Zusätzlich steht in den SSL/SSH Protocol Options wie schon erwähnt "config ssl-exempt" zur Verfügung. Dies bedeutet: Soll innerhalb der "Deep Inspection" Konfiguration eine Seite von der "Deep Inspection" Funktion ausgenommen werden kann diese Seite unter "config ssl-exempt" konfiguriert werden: # config firewall ssl-ssh-profile # edit [Wähle das entsprechende Profile] # config ssl-exempt # edit [Wähle einen Integer zB 1] # set type [fortiguard-category | address | address6] # set fortiguard-category [sofern set type fortiguard-category] # set address [sofern set type address] # set address6 [sofern set type address6] # end Fortinet hat ein Dokument Released der diese neue Funktion umschreibt und erklärt wieso diese implementiert wurde: Datei:Preventing-security-certificate-warnings-52.pdf
Nun kann das entsprechende UTM SSL Proxy/Protocol Options in die entsprechende Firewall Policy Rule implementiert werden:
# config firewall policy
# edit [Wähle die entsprechende Policy ID]
# set utm-status enable
# set deep-inspection-options [Wähle das entsprechende SSL Proxy/Protocol Option Profil]
# end
Wann muss ich die UTM SSL Proxy/Protocol Options in der Firewall Rule aktivierten und definieren?
Wenn ein UTM SSL Proxy/Protocol Option Profile konfiguriert wird so fragt sich wann diese in einer Firewall Rule zusammen mit einem UTM Feature konfiguriert werden muss. Diese Frage ist FortiOS 5.0 resp. 5.2 abhängig da unter FortiOS 5.2 die "Deep Inspection Options" modifiziert wurden. Nachfolgend eine Uebersicht:
FortiOS 5.0
Die SSL Proxy/Protocol Options werden dann definiert wenn:
• SSL Deep Inspection (Client Zertifikat muss auf dem Client/Workstation installiert werden)
• URL Scan only (Es wird kein Client Zertifikat auf dem Client/Workstation benötigt jedoch "WebFilter Only")
NOTE Betreffend "URL Scan only" Konfiguration siehe nachfolgenden Artikle:
FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
FortiOS 5.2
Die SSL Proxy/Protocol Options werden "automatisch" definiert wenn:
• Ein Security Profile selektiert wird!
Die SSL Proxy/Protocol Options müssen "manuell" definiert werden wenn:
• "SSL Deep Inspection" benötigt wird
Grundsätzlich unterscheidet sich FortiOS 5.0 und/oder FortiOS 5.2 in den SSL Proxy/Protocol Options folgendermassen:
FortiOS 5.0
• SSL Proxy/Protocol Options Profile, All UTM Features (https-url-scan disabled)
• HTPPS URL Scan Only, WebFilter Only (https-url-scan enabled)
FortiOS 5.2
• Certificate Inspection ("certificate-inspection" Option in der CLI), Untersucht nur den SSL Handshake
• Deep Inspection ("deep-inspection" Option in der CLI), Aktiviert Full Deep Inspection für SSL Traffic
NOTE Diese Konfiguration kann für jedes Protokoll zB https, ftps seperate durchgeführt werden zB:
# config firewall ssl-ssh-profile
# edit [Gebe einen Namen ein für das Profile]
# config https
# set status [disable | certificate-inspection | deep-inspection]
# end
# config ftps
# set status [disable | certificate-inspection | deep-inspection]
# end
Für FortiOS 5.2 existiert eine "vordefiniertes" Profile mit dem Namen "certificate-inspection".
Dieses Profile ist basierend auf der Funktion "certificate-inspection" und wird als Default
Profile benutzt im Hintergrund wenn ein UTM Feature benutzt wird. Dies ist auch der Grund
wieso ein SSL Proxy/Protocol Option Profile nur dann in einer Firewall Rule zusammen mit einem
UTM Feature definiert werden muss, wenn "Deep Inspection" benützt wird. Die neue Funktion
"certificate-inspection" ersetzt die unter FortiOS 5.0 Option "https-url-scan"!
Wie aktiviere ich für die SSL Proxy Options auf einer FortiGate das Extended-UTM-Log?
Für die sogenannten "deep-inspection-options" kann auf einer FortiGate das "Extended-UTM-Log" aktiviert werden. Die Konfiguration wird folgendermassen durchgeführt:
NOTE Unter FortiOS 5.2 gibt es diese Option "extended-utm-log" nicht mehr. Ebenfalls wurden die "deep-inspection-options" modifiziert. Weitere Informationen betreffend diesen Neuerungen FortiOS 5.2 findet man im nachfolgenden Artikeln: FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
# config firewall deep-inspection-options
# edit [Name des Profile]
# set extended-utm-log [enable | disable]
# set ssl-invalid-server-cert-log [enable | disable]
# set allow-invalid-server-cert [enable | disable]
# end
NOTE Die Option "allow-invalid-server-cert" steht im Zusammenhang mit "extended-utm-log". Dies bedeutet
wird "allow-invalid-server-cert" aktiviert muss "extended-utm-log" auf enabled stehen! Dies gilt nur für
FortiOS 5.0 und nicht für FortiOS 5.2 da diese Option unter FortiOS 5.2 nicht existiert.
Wird unter FortiOS 5.0/5.2 betreffend "deep-inspection" für Transparent/Explizit Proxy die TLS 1.2 Verschlüsselung unterstützt?
TLS 1.2 wird grundsätzlich im Zusammenhang mit "deep-inspection" für Explizit/Transparent Proxy auf einer FortiGate ab FortiOS 5.2.1 unterstützt! Für SSL Offloading und andere Proxy Features wird jedoch TLS 1.2 nicht unterstützt. Ab FortiOS 5.2.8 wird TLS 1.2 in folgender Funktion unterstützt:
• SSL offload (LoadBalancer VIP)
Ab FortiOS 5.4 wird TLS 1.2 in folgenden Funktionen unterstützt:
• Transparent proxy-based SSL deep-inspection
• Explicit-proxy-based SSL deep-inspection
• SSL offload (LoadBalancer VIP)
• Wan Opt SSL tunnels
• SIP over SSL/TLS
DLP
Wie schalte ich für einen DLP Sensor auf einer FortiGate das Extended-UTM-Log ein?
Im normal Fall werden "DLP Events" im regulären Log geloggt (Traffic Log). Nun möchte man die Event's seperiert in einem Log loggen, kann dies durch das sogenannte Extended-UTM-Log (Nur für FortiOS 5.0) erreicht werden. Um dieses Extended-UTM-Log zu aktivieren führe folgendes durch:
NOTE Das Kommando "extended-utm-log" steht für FortiOS 5.2 nicht mehr zur Verfügung. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
# config dlp sensor
# edit [Gebe das entsprechende Profile an]
# set extended-utm-log [enable | disable]
# set dlp-log [enable | disable]
# set nac-quar-log [enable | disable]
# end
Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehen, kann das "UTM Monitoring" wiederum aktiviert werden. Weitere Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
Kann die DLP Funktion im Zusammenhang mit verschlüsselten Verbindungen benutzt werden?
Ja dies ist möglich, sprich in Verbindung mit der DLP Funktion kann "Deep Inspection" benutzt werden mit folgenden Services:
HTTPS
FTPS
SMTPS
POP3S
IMAPS
NOTE Wenn man einen neuens Filter erstellt in der DLP (Data Leak Prevention) Funktion so kann man
die entsprechenden Protokolle anwählen jedoch stehen nur die unverschlüsselten Protokolle zur
Wahl wie zB SMTP. Wenn zB SMTP angewählt ist und es wird "Deep Inspection" im Zusammenhang mit
DLP benutzt (anhand des SSL Proxy/Protocol Options) so wird automatisch SMTPS benutzt. Das
Beispiel für SMTP/SMTPS gilt auch für die anderen Protokoll wie oben aufgeführt. Wie/Wann eine
"Deep Inspection" konfiguriert wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Wie kann ich verhindern das eine bestimmte Grösse von Files übermittelt werden?
Wenn man verhindern will, dass eine bestimmte Grösse von Files runtergeladen/raufgeladen wird zB will man alles verhindern das grösser ist als 20 MB (20480) so muss diese Konfiguration über einen "DLP Sensor" (Data Leak Prevention) durchgeführt werden. Innerhalb eines existierenden "DLP Sensor" wählt man folgendes:
FortiOS 5.0 / 5.2
Datei:Fortinet-1118.jpg
Datei:Fortinet-1119.jpg
NOTE Die Positon "File Size >=" ist zu verstehen als "Grösser und/oder Gleich"!
Gebe im Filter die entsprechenden Protokolle an wie "HTTP-POST" (Upload) und/oder "HTTP-GET" (Download) etc. Wenn die Protokolle im Zusammenhang mit "Deep Inspection" benutzt werden sollten folgende Artikel berücksichtigt werden:
FortiGate-5.0-5.2:FAQ#Kann_die_DLP_Funktion_im_Zusammenhang_mit_verschl.C3.BCsselten_Verbindungen_benutzt_werden.3F FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Wie erstelle ich ein autom. Fingerprinting und benutze dieses in einem DLP Profile?
Ein DLP Fingerprinting wird benutzt um Dokumente durch einen Hash zu schützen. Dies bedeutet: Anhand eines autom. Suchvorganges -und/oder manuellen Uploads- wird einem bestimmten Dokument zB einem Word Dokument ein Hash zugewiesen. Anhand dieses Hash's und des zuständingen DLP Profiles in einer Policy, wird das Dokument wieder erkannt und verhindert, dass dieses übermittelt wird. Um ein Hash automatisch auf einem Fileshare zu erzeugen konfiguriere folgendes:
NOTE Unter FortiOS 5.2 steht das Fingerprinting für Devices 100D und kleiner nur noch den Devices 60C/D sowie 90D zur Verfügung. Auskunft darüber gibt die Software Matrix: FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
UTM Security Profiles > Data Leak Prevention > Document Fingerprinting
- Danach wähle unter Document Sources > Create New
Datei:Fortinet-637.jpg
NOTE In diesem Beispiel wird ein Windows Share konfiguriert. In diesem Share soll nach einem Mountpoint
"export" gesucht werden und darin nach Files "*.txt". Werden diese gefunden sollen diese mit einem
Sensitive Level "Private" (Hash) versehen werden. Der Scan kann auch per Schedule regelmässig aus-
geführt werden. Unter Advanced sind einige zusätzliche Einstellungen möglich die je nach Bedarf
aktiviert oder deaktivert werden können! Unter FortiOS 5.2 gibt es die "seperate" Menüpositon zur
Konfiguration des Fingerprintings nicht mehr und muss über CLI durchgeführt werden:
# config dlp doc-source
# set name [Gebe einen entsprechenden Namen ein für die Doc Source]
# set server-type [samba]
# set server [IPv4 Adresse des Servers]
# set period [none | daily | weekly | monthly]
# set vdom [mgmt | current]
# set scan-subdirectories [enable | disable]
# set remove-deleted [enable | disable]
# set keep-modified [enable | disable]
# set username [Gebe den entsprechenden Usernamen an]
# set password [Gebe das entsprechende Passwort an]
# set file-path [Setze den entsprechenden File Path]
# set file-pattern [Setze einen entsprechenden File Pattern]
# set sensitivity [Critical | Private | Warning]
# end
Damit den Hash zu speichern muss eine Datenbank zur Verfügung gestellt werden
sowie ein Storage Device:
# config dlp settings
# set storage-device [Der zur Verfügung stehende Device zB Internal]
# set size [Grösse in MB der Datenbank; Standard 16]
# set db-mode [remove-modified-then-oldest | remove-oldest | stop-adding]
# set cache-mem-percent [Zur Verfügung stehenden Cache von Memory 1-15; Standard 2]
# set chunk-size [Setze den Chunksize; Standard 2800]
# end
Nachdem das Fingerprinting durchgeführt wurde kann dieses in einem DLP Profil hinzugefügt werden! Erstelle ein neues DLP Profile und füge den Fingerprint hinzu:
UTM Security Profiles > Data Leak Prevention > Sensor > Create New
NOTE Unter FortiOS 5.2 gibt es die seperate Menüposition "Sensor" nicht mehr sondern
die Menüposition "Data Leak Prevention" stellt die "Sensor" Position direkt dar!
Datei:Fortinet-638.jpg
- Vergebe einen Namen für das DLP Profile und wähle danach "Create New":
Datei:Fortinet-639.jpg
Datei:Fortinet-640.jpg NOTE Achte auf die verschiedenen Einstellungen dh. wie zB "Action" Block sowie die zu ueberwachenden Services (Wähle nur diese die Zweckmässig und Angebracht sind)!
Das DLP Profile ist nun konfiguriert und kann in einer entsprechenden Policy benutzt werden:
Policy > Policy > Create New
Datei:Fortinet-641.jpg
Wenn nun versucht wird ein dementsprechendes File des Shares in der konfigurierten Policy zu übermitteln, wird dieses je nach konfigurierter "Action" behandelt dh. in unserem Fall "Block". Diese "Action" ist ersichtlich -sofern das Log im DLP Profile akiviert ist- unter:
Log & Report > UTM Security Log > Data Leak Prevention
NOTE Diese Art des DLP ist sehr Performance Intensiv und sollte nur dann genutzt werden wenn der
Device auch dementsprechende über genügend Performance verfügt! Betreffend Log Konfiguration
im Zusammenhang mit DLP siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_einen_DLP_Sensor_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
Wie kann ich verhindern das bestimmte Files wie zB .exe runtergeladen werden?
Wenn man verhindern möchte, dass bestimmte Files zB über einen "Explicit Proxy" runtergeladen werden können so muss diese Konfiguration über DLP anhand eines entsprechenden Filters/Profiles durchgeführt werden. Die gleiche Konfiguration kann benutzt werden um das runterladen der bestimmten Files über einen "Transparent Proxy" zu verhindern. Als Erstes muss ein entsprechender "File Filter" erstellt werden:
NOTE Diese Konfiguration ist unter FortiOS 5.2 nicht mehr nötig resp. die Menüposition
"File Filter" steht nicht mehr zur Verfügung. Die entsprechende Konfiguration unter
FortiOS 5.2 kann direkt innerhalb des Sensor's/Profile durchgeführt werden! Weitere
Details entnehme aus dem nachfolgenden Abschnitt für FortiOS 5.2!
FortiOS 5.0
UTM Profiles > Data Leak Prevention > File Filter
Datei:Fortinet-264.jpg
Datei:Fortinet-265.jpg
Datei:Fortinet-266.jpg
NOTE Es kann zwischen "File Name Pattern" und "File Type" gewählt werden! Der Unterschied liegt darin, dass der "File Name Pattern"
ausschliesslich "Namens" basierend ist dh. es wird im Header des Files nicht nachgeschaut ob es sich wirklich zB um ein .exe
handelt sondern wie erwähnt nur die angegebene Extension "Namens" basierend angeschaut. Somit wenn ein "File Name Pattern" *.exe
konfiguriert ist und man würde einem User so ein File auf dem Internet für das Runterladen bereitstellen, müsste man dieses damit es
runtergeladen werden kann einfach vorgehend umbenennen um das Runterladen zu ermöglichen. Möchte man dies verhindert so muss ein
"File Type" konfiguriert werden dh. in diesem Filter wird verifiziert -im Application Header des Files- um was es sich hier
für ein File handelt. Somit bringt das umbenennen des Files vor dem Runterladen nichts, denn auch durch das Umbenennen bleibt
der "Application Header" des Files bestehen und wird somit auch als bestimmter "File Type" erkannt.
Datei:Fortinet-267.jpg
Datei:Fortinet-268.jpg
Datei:Fortinet-269.jpg
Nun erstellen wir einen DLP Sensor und fügen unser File Pattern Filter diesem DLP Sensor hinzu:
UTM Profiles > Data Leak Prevention > Sensor
Datei:Fortinet-270.jpg
Datei:Fortinet-271.jpg
Datei:Fortinet-272.jpg
Datei:Fortinet-273.jpg
NOTE Unter FortiOS 5.0 wurde die Menüführung verändert dh. wenn man auf "Create New" geht steht einem ein Filter Menü zur Verfügung indem vers.
Varianten konfiguriert werden können. Ausgehend von dieser hier gezeigten Konfiguration kann der "File Filter" der vorgehend Konfiguriert
wurde über die Menüpositionen "Files > File Type included in" ausgewählt werden. Welche Protokolle für den Filter kontrolliert werden sollen
kann über die Position "Examine the following Services" gewählt werden. Unter FortiOS 5.0 wird die Definition der Services zB HTTP über
folgende Konfiguration gesteuert "UTM Proxy Options"!
Datei:Fortinet-274.jpg
FortiOS 5.2
Security Profiles > Data Leak Prevention > Create New
Datei:Fortinet-1115.jpg
Datei:Fortinet-1116.jpg
Unter FortiOS 5.2 muss nicht zuerst ein "File Filter" erstellt werden sondern die Konfiguration des "File Types"
sowie des "File Name Patterns" kann Analog FortiOS 5.0 direkt im Profile eingegeben/konfiguriert werden:
Datei:Fortinet-1117.jpg
Datei:Fortinet-264.jpg
Nun muss nur noch den erstellten DLP Sensor zur entsprechenden Policy für den "Explicit Proxy" (Wenn kein "Explicit Proxy" benutzt wird einfach die entsprechende Policy wählen) hinzugefügt werden:
Policy > Policy > Policy
Datei:Fortinet-275.jpg
Wie kann ich den Prozess des Fingerprintings neu starten?
Folgender Befehl kann benützt werden auf der CLI um DLP "fingerprinting" Deamon neu zu starten:
# diagnose test app dlpfingerprint 99
IPS (Intrusion Prevention System)
Was ist der Unterschied zwischen "regular" und "extended" IPS Database?
Ab FortiOS 5 stehen zwei Datenbanken zur Verfügung dh. eine Reguläre und eine Erweiterte! Die Erweiterte Datenbank steht folgenden Geräten zur Verfügung:
FWF-81CM, 110C und höher
NOTE Ab FortiOS 5 110C oder höher. Der entsprechende Konfigurationspunkt um die "extended" Database
zu aktivieren befindet sich innerhalb "System > Config > FortiGuard"!
Die erweiterte Datenbank ist folgende Modelle nicht konfigurierbar dh. nur die Reguläre steht zur Verfügung:
20C bis 60C und alle andere 8x Modelle
NOTE Neu steht die "extended" Database ab FortiOS 5.0.6 für die "D" Desktop Modelle zur Verfügung
sowie wird für folgende Modelle ab FortiOS 5.2.4 per Standard aktiviert:
300D/500D/1000D/1200D/1500D/3700D/3700DX/3810D/5001D
Der Unterschied dieser zwei Datenbanken für IPS Signaturen liegt in der Grösse dh. regulär ca. 5700 IPS Signaturen und die erweiterte ca. 7700 IPS Signaturen. Folgendes Kommando kann benutzt werden um die Reguläre oder die Erweiterte Datenbank zu defnieren/aktivieren:
# config ips global
# set database [extended / regular]
# end
NOTE Wenn die Database auf "extended" konfiguriert wird sollte event. die Acceleration
überprüft werden dh. dazu siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_IPS_Funktion_auf_einer_FortiGate_.C3.BCber_Hardware_beschleunigen.3F
Wie kann ich auf einer FortiGate die Packet Statistike für IPS anzeigen/auflisten?
Wenn man auf einer FortiGate IPS im Einsatz hat und die Statistik der Packet anzeigen/auflisten möchtek kann nachfolgender Befehl benutzt werden um dies durchzuführen:
# diagnose ips packet status
PACKET STATISTICS:
total packets 60347021
tcp packets 48904151
udp packets 10835395
icmp packets 607475
other packets 16256
PACKET ACTION STATISTICS:
PASS 3351862 0
DROP 87 0
RESET 0 0
RESET_CLIENT 0 0
RESET_SERVER 0 0
DROP_SESSION 66 0
PASS_SESSION 3585 0
CLEAR_SESSION 0 0
EXEMPT 0 0
Weitere Optionen resp. Daten für die IPS Engine/Monitor können über folgenden Befehl abgerufen werden:
# diagnose test application ipsmonitor
IPS Engine Test Usage:
1: Display IPS engine information
2: Toggle IPS engine enable/disable status
3: Display restart log
4: Clear restart log
5: Toggle bypass status
6: Submit attack characteristics now
10: IPS queue length
11: Clear IPS queue length
12: IPS L7 socket statistics
13: IPS session list
14: IPS NTurbo statistics
15: IPSA statistics
16: Display device identification cache
17: Clear device identification cache
96: Toggle IPS engines watchdog timer
97: Start all IPS engines
98: Stop all IPS engines
99: Restart all IPS engines and monitor
Wie kann ich auf einer FortiGate den IPS Prozess/Service stoppen, neu starten oder einen "bypass" aktivieren?
Der IPS Service resp. die Funktion von IPS ist die Resourcenintensivste Funktion auf einer FortiGate. Speziell dann wenn diese Funktion nicht korrekt eingesetzt resp. konfiguriert wird. Wenn es mit dem IPS Service resp. Funktion zu Problemen kommt sollte der IPS Service/Prozess nicht regulär anhand "diagnose sys kill" neu gestartet werden. Wenn der IPS Prozess/Service eine sehr hohe Auslastung zeigt und vermutet wird das der Prozess/Service zB hängen geblieben ist kann versucht werden kurzfristig den "bypass" zu aktivieren dh. kurzfristig die "IPS inspection" zu deaktivieren. Dies kann ebenfalls benutzt werden, wenn durch die hohe Auslastung durch den IPS Prozess/Service, die verursacht wurde durch eine nicht korrekte IPS Konfiguration, eine weitere Konfiguration zur Fehlerkorrektur nicht möglich ist. Dies kann anhand folgendes Befehls durchgeführt werden:
# diagnose test application ipsmonitor 5
bypass: enable
Durch diesen Befehl wird die IPS Engine angewiesen keine "IPS inspection" mehr durchzuführen dh. der Prozess/Service der IPS Engine wird dadurch nicht gestoppt sondern die "IPS inspection" deaktiviert. Um den "bypass" zu deaktivieren geben wiederum folgender Befehl ein:
# diagnose test application ipsmonitor 5
bypass: disable
Wenn dennoch aus irgendwelchen Gründen der IPS Service/Prozess neu gestartet werden soll kann folgender Befehl benutzt werden:
# diagnose test application ipsmonitor 99
restarting ipsmonitor
Desweiteren steht für diesen Befehl "diagnose test application ipsmonitor" weitere Optionen zur Verfügung:
# diagnose test application ipsmonitor
IPS Engine Test Usage:
1: Display IPS engine information
2: Toggle IPS engine enable/disable status
3: Display restart log
4: Clear restart log
5: Toggle bypass status
6: Submit attack characteristics now
10: IPS queue length
11: Clear IPS queue length
12: IPS L7 socket statistics
13: IPS session list
14: IPS NTurbo statistics
15: IPSA statistics
16: Display device identification cache
17: Clear device identification cache
96: Toggle IPS engines watchdog timer
97: Start all IPS engines
98: Stop all IPS engines
99: Restart all IPS engines and monitor
Wann sollte das "Packet Logging" für IPS eingeschaltet werden?
Das "Packet Logging" ist nicht zu verwechseln mit dem "Logging" an und für sich dh. "Packet Logging" ähnelt einem "tcpdump" und hat mit dem "Logging" an und für sich nichts zu tun. Diese Funktion sollte mit bedacht eingesetzt werden sowie dass "Packet Logging" sollte nur zu "Development" Zwecken eingeschaltet werden da es enorm Peformance Intensiv (CPU, RAM) ist. Diesie aus dem "Packet Logging" stammenden Informationen können später im zB "Wireshark" anylysiert werden um selber zB zu bestimmten Zwecke Signaturen zu erstellen! Die Position für das "Packet Logging" findet man in einem "IPS Filter" dh.:
Datei:Fortinet-43.jpg
Kann eine Fortigate betreffend IPS als "Sniffer" eingesetzt werden?
Ja, dies ist möglich. Dazu benötigt man auf einem Switch einen Monitor/Mirror Port sowie die Fortigate muss auf einem bestimmten Port auf den Sniffer Modus gesetzt werden. Um den Sniffer Port zu konfigurieren/aktivieren muss folgender Befehl auf der CLI ausgeführt werden:
# config system interface
# edit [Name des Ports zB port3]
# set ips-sniffer-mode enable
# end
Wie sollte auf einer Fortigate ein "IPS Profil" aktiviert werden?
Um optimale Performance zu erreichen sollten vers. Profile für IPS (Sensor) erstellt werden dh. schränkt man die Möglichkeiten ein innnerhalb eines IPS Sensors senkt sich die Anzahl der zu überprüfenden Signaturen. Dies bedeutet erstelle Profile für spezielle Zwecke dh. Server und/oder Clients. Nachfolgend ein Beispiel wie so ein Profil erstellt wird:
NOTE Wenn aus irgendwelchen Gründen die IPS zuviel Performance benötigt speziell im RAM Bereich kann folgender Befehl
dazu benutzt werden um den Speicher für IPS zu begrenzen:
# config ips global
# set algorithm low
# end
INFO Zusätzlich zur benützten IPS Engine kann die Buffer Size durch den Befehl "socket-size" gesetzt werden dh.
bei den meisten Devices ist die Standard Einstellung die korrekte und die Anzuwendende. Dies bedeutet diese
Einstellung ist Device Art Abhängig!
Für die IPS Engine sind grundsätzlich folgende Einstellungen möglich:
engine-pick Die IPS Engine selber entscheidet welche Methode die Beste ist.
high Schnellste Methode jedoch benötigt mehr Memory. Sollte nur eingesetzt
werden für FortiGate's mit mind. 1 GB Memory.
low Langsamere Methode jedoch Memory Resource schonender. Dieser Mode sollte
auf FortiGates eingesetzt werden die über 512 MB Memory verfügen oder weniger.
super Dieser Mode sollte für FortiGate's gewählt werden die mehr als 4 GB Memory verfügen
Datei:Fortinet-44.jpg
Datei:Fortinet-45.jpg NOTE Ab FortiOS 5.0.4 stehet ein zusätzliche Menüpunkt innerhalb der IPS zur Verfügung dh. wenn man "Filter Based" aktiviert kann zwischen "Basic" und "Advanced" umgestellt werden. Es ist zu empfehlen wenn IPS benutzt wird "Filter Based > Advanced" zu wählen da einem diese Variante mehr Optionen bietet den Sensor für den bestimmten Zweck einzuschränken. Zusätzlich können unter den -durch "Advanced"- eingeblendeten Menüpunkte "Appliaction" und "Protocol" unter "Show more..." zusätzliche Positione eingeblendet werden. Dies gibt einem die Möglichkeite den Sensor so zu optimieren: Datei:Fortinet-809.jpg
Was bedeutet IPS "fail-open" und wie verhält es sich?
Nun IPS "fail-open" bedeutet, dass wenn ein IPS Profil/Sensor auf einer Policy aktiv ist und der IPS Service nicht mehr korrekt arbeitet das der Traffic/Verkehr komplett für diese Policy geblockt wird. Per Standard ist "fail-open" auf enabled gesetzt sprich wenn IPS nicht mehr korrekt funktioniert wird der Traffic dennoch durchgelassen. Wenn dies geschieht hat dies keine Auswirkungen auf die restlichen Profile wie Antivirus etc. Wenn der IPS Senso in einem High Security Umgebung eingesetzt wird so kann "fail-open" auf disabled gesetzt werden dh. wenn der IPS Service nicht mehr korrekt arbeitet wird sämtlicher Verkehr/Traffic für die betreffende Policy geblockt. Um "fail-open" auf disable zu setzen gebe auf der Console folgendes ein;
# config ips global
# set fail-open disable
# end
Kann ich wenn der Traffic verschlüsselt ist (SSL) IPS aktivieren?
Die FortiOS V4.x war nicht fähig den verschlüsselten Traffic (SSL) aufzubrechen um eine IPS Ueberprüfung für den Traffic durchzuführen! Mit FortiOS 5.x ist dies nun möglich jedoch ist folgendes zu berücksichtigen:
Verschlüsselter (SSL) Traffic kann für IPS sowie für Application Controll überprüft werden für folgende Protokolle:
HTTPS, FTPS, IMAPS, POP3S sowie SMTPS
Dabei ist zu berücksichtigen das Application Control sowie IPS nur im "Flow-based" Proxy Mode benutzt werden können da für diese zwei Funktionen "Proxy-based" nicht zur Verfügung steht. Werden in einer Firewall Policy "Proxy-based" sowie "Flow-based" Mode konfiguriert, führt die FortiGate für diese Firewall Policy "Proxy-based" durch für alle Profiles die diesen Mode unterstützen. Dies bedeutet: Wird Antivirus im "Flow-based" Mode konfiguriert sowie WebFilter im "Proxy-based" führt die FortiGate für alle Funktionen inkl. Antivirus "Proxy-based" Mode durch. Dies gilt nicht für Application Control sowie IPS da diese zwei Funktionen nur den "Flow-based" Mode unterstützen. Der "Flow-based" Mode steht zusätzlich zum "Proxy-based" Mode für folgende Funktionen zur Verfügung:
flow-AV, flow-Web Filering, flow-Antispam sowie flow-DLP
Der jeweilige Mode kann in diesen Funktionen im jeweiligen "Security Profile" konfiguriert werden!
Wie erfasse ich für RDP eine IPS Signature um den Zugriff zu schützen?
Nun wenn betreffend RDP auf einen Server zugegriffen werden möchte ist es ratsam diesen Zugriff zu schützen. Predistiniert dazu wäre eine RDP Signatur im IPS Bereich. Jedoch diese existiert so nicht von Hause aus. Soit muss eine manuell erfasste IPS Signatur für RDP konfiguriert werden. Dies kann über folgende Position geschehen:
UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend dieser Konfiguration siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F
Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:
NOTE Die folgenden Signaturen sind für Windows (RDP.1), Linux (RDP.2) sowie Mobile (RDP.3).
Name: RDP.1
Signature: F-SBID( --name "RDP.1"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|E0|"; --distance 5,packet; --within 1,packet; --pattern "mstshash="; --within 50; --pcre "/mstshash=\s*/sm"; --distance -12; --within 50; --rate 3,15; --track src_ip; )
Name: RDP.2
Signature: F-SBID( --name "RDP.2"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|03 00|"; --within 2,packet; --pattern "|e0 00 00 00 00|"; --distance 3; --within 20; --rate 3,15; --track src_ip; )
Name: RDP.3
Signature: F-SBID( --name "RDP.3"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|84 11 3d 4f 2e 62 28 62 51 5d 6e ee f4 49 c2 7e fe 84 11 e6 61 e0 19 20 c9 e5 d3 39 3d f5 7e 24 46 49 84 11 15 be fa 6b 7d 35 09 44 8a c9 32 e7 1b 6e 65|"; --within 51,packet; --data_size 51; --rate 3,15; --track src_ip; )
Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:
Datei:IPS-Signature-Syntax-Guide.pdf
Wie kann ich eine IP ausschliessen innerhalb eines IPS Sensors resp. Profil (Exempt IP)?
Diese Funktion steht erst ab FortiOS 5.0.3 zur Verfügung. Natürlich waren solche Ausnahmen ebenfalls früher möglich über die Policy, jedoch nur indem man eine zusätzliche Rule implementierte für eine bestimmte Source und Destination. Auf dieser zusätzlichen Rule wurde dann der Sensor resp. das Profil nicht aktiviert. Neu ab FortiOS 5.0.3 kann diese Ausnahme einer Source und Destination direkt im Sensor konfiguriert werden. Vorraussetzung dafür ist, dass man spezifizierte Signaturen verwendet (Specify Signatures) und nicht Filter Basierend (Filter Based).
Nehmen wir an wir hätten einen Microsoft Exchange Server im DMZ. Dieser wird von aussen angegangen mit einem Inbound NAT. Bedeutet eine Rule wird implementiert WAN > DMZ. Auf dieser Rule implementiert man einen IPS Sensor der den Microsoft Exchange Server schützen soll vor Angriffen. Nehmen wir weiter an, dass immer der gleiche MX Relay Server Mail's übermittelt zu diesem Microsoft Exchange Server im DMZ. Dieer MX Relay Server steht unter unserer Kontrolle (trusted). In diesem Scenario macht es keinen Sinn den IPS Sensor auf den MX Relay Server anzuwenden. Genau hier können wir eine "Ausnahme" Implementieren. Da der IPS Sensor einer der Performance intensivsten Funktionen auf einer FortiGate ist kann dies die Performane erhöhen und Resourcen sparen da die Verbindung des MX Relay bei Mailübermittlungen nicht mehr durch den IPS Sensor überprüft wird. Die neue Funktion findet man unter dem IPS Sensor sobald "Specify Signature" angewählt sowie eine entsprechende Signature ausgewählt wird:
Datei:Fortinet-786.jpg
Nun kann über "Create New" anhand der Source IP (In unserem Beispiel der MX Relay Server) und der Destination IP (In unserem Beispiel die internal IP des Microsoft Exchange Servers) die Ausnahme konfiguriert werden.
Wie kann ich eine "Brute Force" Attacke betreffend POP3 und/oder SMTP über eine IPS "Custome Signature" verhindern?
Eine "Brute Force" Attacke stellt einen Angriff dar in der "potentielle Lösungen" eine nach der Anderen durchprobiert wird (http://de.wikipedia.org/wiki/Brute-Force-Methode). Für Pop3 und/oder SMTP im Zusammenhang mit "unverschlüsselten" Protokollen dh. nicht POP3S und/oder SMTPS kann ein "potentieller Angreifer" zB eine "dictionary attacke" durchführen dh. er probiert ein Passwort nach dem Anderen durch. Um das zu verhindern kann zB eine "Custome Signature" erstellt werden die das verhindert. Die bessere Variante ist jedoch klar auf ein verschlüsseltes Protokoll zu wechseln. Wenn dennoch so eine manuelle "Custome Signatur" erstellt werden soll führe folgendes durch:
UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend dieser Konfiguration siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F
Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:
Name: POP3.Brute.Force
Signature: F-SBID( --name "POP3.Brute.Force"; --protocol "tcp"; --service POP3; --flow from_server,reversed; --pattern "-ERR [AUTH] Password supplied"; --rate 10,180; --track src_ip; )
Name: SMTP.Brute.Force
Signature: F-SBID( --name "SMTP.Brute.Force"; --pattern "AUTH LOGIN"; --service SMTP; --no_case; --context header; --rate 10,180; --track src_ip;)
In diesem Zusammenhang ist es Wichtig die Position "--rate" zu verstehen da diese Zuständig ist um die Aktion durchzuführen. Dies bedeutet folgendes:
--rate <matches_int>,<time_int>;
• <matches_int> Ist die Anzahl (integer) der Uebereinstimmungen innerhalb einer Zeitspanne [time_int] in der die Signature anschlägt (matched)
• <time_int> Ist die Zeitspanne (seconds) die definiert wird in der die Signature Uebereinstimmung [matches_int] auftritt.
NOTE Im oberen Beispiel wurde definiert "--rate 10,180". Dies wiederum bedeutet: Wenn ein "innerhalb" (time_int) 180 Sekunden 10 Mal (mateches_int)
versucht wird zB einzuloggen "AUTH LOGIN" so "matched" die "Custome Signature" und es wird ein Log Eintrag erstellt. Wenn die "Custome Signature"
Im IPS Profile auf Monitor steht wird ein Log Eintrag erstellt. Ist die "Custome Signature" auf "block" kann durch eine entsprechende "quarantine"
Konfiguration die entsprechende Source IP (--track src-ip) für eine gewisse Zeit ausgeschlossen resp. blockiert werden!
Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:
Datei:IPS-Signature-Syntax-Guide.pdf
Kann ich IPS Funktion auf einer FortiGate über Hardware beschleunigen?
Ja dies ist möglich und zwar bei FortiGate's die über einen CPx oder NPx Prozessor verfügen. Wenn die Beschleunigung über diese Prozessoren aktiviert wird werden die IPS Pattern über diese CPx oder NPx Prozessoren verarbeitet und dadurch beschleunigt. Um festzustellen ob die zur Verfügung stehende FortiGate über diese Funktion resp. über diese CPx und/oder NPx Prozessoren verfügt kann mit folgenden Befehl verifiziert werden ob der "hardware-accel-mode" zur Verfügung steht:
# config ips global
# set hardware-accel-mode [ engine-pick | none | CP-only | NP-only | NP+CP ]
# end
NOTE Diese Option steht ab FortiOS 5.0.3 zur Verfügung! Ab FortiOS 5.0.6 wurde das
Kommando ersetzt durch das Kommando np-accel-mode" sowie "cp-accel-mode" um mehr
Granularität zu bieten. Ab FortiOS 5.0.10 wird für die FG-300D und/oder FG-500D dieses
Kommando auf "none" gesetzt. Dies bedeutet diese zwei Device's unterstützen keinen
"np-accel-mode". Wird dieser Mode bei diesen Devices dennoch aktiviert beeinträchtigt
dies im negativen Sinne die Performance:
# config ips global
# set np-accel-mode [none | basic]
# set cp-accel-mode [none | basic | advanced]
# end
Dabei gilt "np" für Network Prozessor und "cp" Content Prozessor! Per Standard
steht die Option auf "cn-accel-mode advanced"
Die einzelne Optionen haben folgende Bedeutung:
• engine-pick --> Die IPS Engine wählt den besten Mode
• none --> Hardware Beschleunigung ist deaktiviert
• CP-Only --> Hardware Beschleunigung aktiviert über CPx (Content) Prozessoren
• NP-only --> Hardware Beschleunigung aktiviert über NPx (Network) Prozessoren
• NP+CP --> Hardware Beschleunigung aktiviert über CPx (Content) und NPx (Network) Prozessoren
NOTE Bei einer FortiGate 60C steht zB diese Option auf "engine-pick"!
Kann ich über eine IPS Signature eine bestimmte WebSite blockieren?
Grundsätzlich ist das möglich anhand einer Custom Signature! Es muss jedoch klar festgestellt werden, dass dies nur unter "nicht normalen" Umständen durchzuführen ist da dies klar nicht die Aufgabe einer IPS Funktion ist. Um eine WebSite zu blockieren steht auf einer FortiGate die WebFilter Funktion zur Verfügung. Weitere Informationen zur WebFilter Konfiguration siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F
Wenn es dennoch keinen anderen Weg gibt -wieso auch immer- kann eine "Custome Signature" manuell erstellt werden und zwar folgenermassen:
UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
dieser Konfiguration siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F
Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:
Name: RDP.1
Signature: F-SBID( --name "WEB SITE BLOCK"; --protocol tcp; --service HTTP; --flow from_client; --pattern "mydomain.ch"; --no_case; --context host; )
Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:
Datei:IPS-Signature-Syntax-Guide.pdf
Kann ich über eine IPS Signature für DNS Request ein Monitoring einschalten für Domain Namen?
Wenn man intern ein "Public DNS Server" betreibt und man bei Anfragen von extern herausfinden will -ohne den DNS Server zu konsultieren- welche Domains in den DNS Requests abgefragt werden, kann eine IPS Signature erstellt werden. Diese IPS Signture Monitored die DNS Request betreffend "Domain Name" und zeigt in den Logs den DNS Request auf:
UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
Name: Domain-Monitor
Signature: F-SBID( --name Domain-Monitor; --protocol udp; --service dns; --log DNS_QUERY;)
NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
dieser Konfiguration siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F
Im Dezember 2014 hat Fortinet ein "Cookbook Supplementary" herausgegeben das diese Konfiguration beschreibt:
Datei:Ips-logging-dns-domain-kookups.pdf
Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:
Datei:IPS-Signature-Syntax-Guide.pdf
Kann ich über eine IPS Signature Media Downloads für ITunes Monitoren und/oder Blocken?
Dies kann über eine entsprechende selbsterstellte IPS Signature konfiguriert werden dh. nachfolgende selbsterstellt Signaturen ermöglichen es ITunes zu Monitoren und/oder zu Blocken. folgendes ist durchzuführen:
UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
Name: iTunes_Monitor
Signature: F-SBID( --name iTunes_Monitor; --protocol tcp; --flow from_client; --service http; --parsed_type http_get; --pattern "User-Agent: iTunes"; --context header; --no_case; --tag set,Tag.iTunes.client;)
UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
Name: iTunes_Music_Block
Signature: F-SBID( --name iTunes_Music_Block; --protocol tcp; --flow from_server; --service http; --pattern "Content-Type: audio"; --context header; --no_case; --tag test,Tag.iTunes.client;)
NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! In diesem Beispiel wird die Signature auf iTunes_Monitor auf "montor" gesetzt und iTunes_Block auf "block". Weitere Auskunft wie das durchzuführen ist siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F
Diese Signaturen verhindern "nur" den Media Donwload jedoch nicht den Zugriff auf iTunes selber. In der "Application Control" sethen verschiedenen Signaturen zur Verfügung die Zugriffe auf "iTunes" verhindern jedoch nicht explizit den iTunes Media Download:
iCloud - Block
iTunes.Store - Block
iTunes.Podcast - Block
iTunes.filesharing - Block
iTunes_Broadcast - Block
iTunes.mDNS - Block
iTunes.iMix - Pass
iTunes - Pass
iTunes-Mobile - Pass
iTunes-Appl.Store. - Pass
Apple.Support - Pass
Apple.Ipad - Pass
Apple.Iphone - Pass
Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:
Datei:IPS-Signature-Syntax-Guide.pdf
DDos
Wieso ist die DDos Sensor Menüposition im WebGui nicht mehr ersichtlich nach einem Upgrade?
Wenn man ein Upgrade durchführt 4.3 Patch 7 fällt einem auf, dass die Menüposition im Web Gui betreffend DDoS nicht mehr vorhanden ist. Dieser Menüpunkt steht für kleinere Geräten (FGT-20/40/50/60/80) nicht mehr über Web Gui zur Verfügung. Die Funktion selber steht jedoch nach wievor zur Verfügung und zwar auf der CLI:
NOTE Die Menüposition steht für kleinere Devices ebenfalls für FortiOS 5.0 / 5.2
nicht mehr über Web Gui zur Verfügung!
FortiOS 4 MR3
Datei:Fortinet-327.jpg
Datei:Fortinet-328.jpg
FortiOS 5.0 / 5.2
NOTE Unter FortiOS 5.0 / 5.2 wurde diese Funktion in der CLI verschoben in "config firewall DoS-policy":
Datei:Fortinet-723.jpg
Datei:Fortinet-724.jpg
Um ein DoS Sensor in der CLI unter FortiOS 5.0 / 5.2 zu konfigurieren siehe nachfolgendes Beispiel:
# config firewall DoS-policy
# edit [Definiere einen DoS Policy ID zB "1"]
# set interface [Setze ein entsprechendes Interface zB "wan1"]
# set srcaddr [Setze eine entsprechende Source IP Adresse zB "all"]
# set dstaddr [Setze eine entsprechende Destination IP Adresse zB "all"]
# set service [Setze einen entsprechenden Port zB "ALL"]
# config anomaly
# edit "tcp_syn_flood"
# set status enable
# set action block
# set threshold 2000
# next
# edit "tcp_port_scan"
# set status enable
# set threshold 1000
# next
# edit "tcp_src_session"
# set status enable
# set threshold 5000
# next
# edit "tcp_dst_session"
# set status enable
# set threshold 5000
# next
# edit "udp_flood"
# set status enable
# set action block
# set threshold 2000
# next
# edit "udp_scan"
# set status enable
# set threshold 2000
# next
# edit "udp_src_session"
# set status enable
# set threshold 5000
# next
# edit "udp_dst_session"
# set status enable
# set threshold 5000
# next
# edit "icmp_flood"
# set status enable
# set action block
# set threshold 250
# next
# edit "icmp_sweep"
# set status enable
# set threshold 100
# next
# edit "icmp_src_session"
# set status enable
# set threshold 300
# next
# edit "icmp_dst_session"
# set status enable
# set threshold 1000
# next
# edit "ip_src_session"
# set threshold 5000
# next
# edit "ip_dst_session"
# set threshold 5000
# next
# edit "sctp_flood"
# set threshold 2000
# next
# edit "sctp_scan"
# set threshold 1000
# next
# edit "sctp_src_session"
# set threshold 5000
# next
# edit "sctp_dst_session"
# set threshold 5000
# next
# end
# next
# end
Wie wird auf einer Fortigate ein "DoS" Sensor aktiviert/definiert?
In unserem Beispiel erstellen wir einen "DoS Sensor" der und vor "basic flood" schützt! Führe folgendes durch:
NOTE Wenn die Menüposition betreffend DoS Sensor nicht ersichtlich ist siehe folgender Artikel: FortiGate-5.0-5.2:FAQ#Wieso_ist_die_DDos_Sensor_Men.C3.BCposition_im_WebGui_nicht_mehr_ersichtlich_nach_einem_Upgrade.3F
UTM Profiles > Intrusion Protection > DoS Sensor
Editiere den per Standard existierende Sensor "blook_flood" Eintrag:
Datei:Fortinet-155.jpg
In diesem vordefinierten Sensor sind drei spezifische Anomalien aktiviert dh. "tcp_syn_flood, udp_flood und icmp_flood". Um nun den "icmp_flood" anzupassen setze diesen auf "20" sowie aktiviere das Logging:
Datei:Fortinet-156.jpg
Damit der "DoS Sensor" auch in Benützung ist, muss dieser in einer entsprechenden "DoS Policy" aktiviert werden. Führe folgendes durch:
Policy > Policy > DoS Policy
Datei:Fortinet-157.jpg
Datei:Fortinet-158.jpg
In unserem Beispiel schützen wir das "internal" Inteface vor diesen Angriffen. Natürlich können Source und Destination je nach Zweck eingeschränkt werden. Um das Ganze zu testen kann innerhalb der Defintion der "Source" auf einem Windows basierenden Client anhand "fping" (http://fping.sourceforge.net) folgendes durchgeführt werden:
fping [Destination IP] -c -t0 -w0
Das Kommando bewirkt das "fping" ICMP Packete abschickt ohne auf Antwort zu warten. Einige dieser Packete werden durch unseren definierten "icmp_flood" Sensor geblockt da die abgesetzen ICMP Packet die Definition (20 per second) übersteigt. Unter folgender Position können die Log's eingesehen sowie der Vorgang verifiziert werden:
FortiOS 4 MR3
Log&Report > Log & Archive Access > UTM Log
FortiOS 5.0 / 5.2
Log & Report > Traffic Log
Weitere Informationen betreffend Log Konfiguration unter FortiOS 5.0 / 5.2 findet man unter folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
Was muss berücksichtigt werden wenn ich meine internen Server/Clients schützen möchte vor DoS Attacken?
In erster Linie muss berücksichtigt werden, dass die DDoS Policy auf einer FortiGate "nicht" abgearbeitet wird innerhalb der Stateful Firewall Inspection/Policy sondern seperat. Dies bedeuet möchte man einen Server im internen Bereich schützen "vor" einer DDoS Attacke darf im Gegensatz zur "Stateful Firewall Inspection/Policy" Konfiguration nicht das VIP (Destination NAT) Objekt benutzt werden inneerhalb der definierten DDoS Policy sondern es muss ein adress Objekt benutzt werden mit das definiert wurde mit der Public IP des internen Servers. In einer Definition einer DDoS Policy würde das folgendes bedeuten:
# config firewall DoS-policy
# edit 1
# set interface "wan1"
# set srcaddr "all"
# set dstaddr [Name des Adress Objektes mit der Public IP des internen Servers]
# set service [Definiation des Service zB "any" oder spezifiziert "SMTP"]
# config anomaly
# edit [Name der Anomaly zB "tcp_src_session"]
# set status enable
# set action block
# set quarantine attacker
# set quarantine-expiry 10
# set quarantine-log enable
# set threshold 100
# next
# end
# next
# end
NOTE Wenn solch eine Konfiguration durchgeführt wird ist es "fundamental" sich zu verinnerlichen wie ein Service funktioniert und wie dieser
zu schützen ist. Dies bedeutet: Würde man im oberen Beispiel als Public IP des Servers die IP benutzen eine SMTP Servers zB MX Record
und als "Anomaly" entweder "tcp_src_session" und/oder "tcp_dst_session" sowie einen "threshold" von 100 so wird dieser SMTP Server
betreffend möglichen Sessions auf dem Service "SMTP" limitiert. Bedeutet wiederum, dass dieser vor "Denial of Service" Attacken im
Service SMTP geschützt würde.
Ein Schutz im entgegengesetzer Richtung ist natürlich ebenfalls möglich dh. wenn man zB ein Client Subnet Bereich schützen müchte damit event. "worm" Attacken die FortiGate nicht beeinträchtigen kann folgendes implementiert werden:
# config firewall DoS-policy
# edit 1
# set interface "wan1"
# set srcaddr [Definiation des Subnet der Client's anhand eines Objektes; benutze nicht "all"]
# set dstaddr [Name des Adress Objektes mit der Public IP des internen Servers]
# set service [Definition "any"]
# config anomaly
# edit "tcp_syn_flood"
# set status enable
# set action block
# set threshold 2000
# next
# edit "tcp_dst_session"
# set status enable
# set action block
# set threshold 5000
# next
# edit "ip_dst_session"
# set status enable
# set action block
# set threshold 5000
# next
# edit "tcp_port_scan"
# set status enable
# set action block
# set threshold 1000
# next
# end
# next
# end
NOTE Die Anomaly Definition in diesem Beispiel verhindert, dass aus dem Client Subnet und/oder ein spezifizierter Client diese
Vorgänge durchführt und somit die FortiGate und dessen Umgebung beeinträchtigt. Die "Standard Werte" sind als Beispiele
anzusehen und müssen je nach Umgebung angepasst werden jedoch können diese als "Start" benützt werden! Auch in diesem Fall sind
die Auswirkungen zu berücksichtigen dh. ein Software wie zB Skype sucht sich anhand solcher Funktionen den Ausgang. Dies bedeutet:
Wenn im im internen Bereich Skype eingesetzt wird und zB "tcp_src_*" definiert werden mit einem zu kleinen "threshold" kann diese
Definition es Skype verunmöglichen - da durch die DDoS Policy dieser Vorgang geblockt wird - um mit dem Internet zu komunizieren.
Wie kann ich für eine "DDoS Policy" verschiedenen Informationen anzeigen lassen?
Wenn eine "DDoS Policy" konfiguriert wird, kann nachträglich mit folgenden Kommando vers. Informationen dieser DDoS Policy augezeigt werden:
# diagnose ips anomaly [clear | config | filter | list | status]
NOTE Die aufgeführten Optionen haben folgende Bedeutung:
clear Clear anomaly meters
config Liste die DOS-sensoren auf
filter Liste den "anomaly" Filter auf
list Liste die "anomaly" meters auf
status Liste den "anomaly" status auf
Nachfolgende einige Beispiele:
# diagnose ips anomaly config
DoS sensors in kernel vd 0:
DoS id 1 proxy 0
0 tcp_syn_flood status 1 log 1 nac 0 action 7 threshold 2000
1 tcp_port_scan status 1 log 1 nac 0 action 0 threshold 1000
2 tcp_src_session status 1 log 1 nac 0 action 0 threshold 5000
3 tcp_dst_session status 1 log 1 nac 0 action 0 threshold 5000
4 udp_flood status 1 log 1 nac 0 action 7 threshold 2000
5 udp_scan status 1 log 1 nac 0 action 0 threshold 2000
6 udp_src_session status 1 log 1 nac 0 action 0 threshold 5000
7 udp_dst_session status 1 log 1 nac 0 action 0 threshold 5000
8 icmp_flood status 1 log 1 nac 0 action 7 threshold 250
9 icmp_sweep status 1 log 1 nac 0 action 0 threshold 100
10 icmp_src_session status 1 log 1 nac 0 action 0 threshold 300
11 icmp_dst_session status 1 log 1 nac 0 action 0 threshold 1000
12 ip_src_session status 0 log 0 nac 0 action 0 threshold 5000
13 ip_dst_session status 0 log 0 nac 0 action 0 threshold 5000
14 sctp_flood status 0 log 0 nac 0 action 0 threshold 2000
15 sctp_scan status 0 log 0 nac 0 action 0 threshold 1000
16 sctp_src_session status 0 log 0 nac 0 action 0 threshold 5000
17 sctp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
# diagnose ips anomaly status
meter budget: 100000
meter used: 8/8
meter depth: 2
# diagnose ips anomaly list
list nids meter:
id=udp_dst_session ip=198.41.0.4 dos_id=1 exp=5998 pps=0 freq=0
id=udp_flood ip=198.41.0.4 dos_id=1 exp=998 pps=13 freq=13
id=udp_src_session ip=193.193.135.65 dos_id=1 exp=5998 pps=0 freq=0
id=udp_scan ip=193.193.135.65 dos_id=1 exp=998 pps=14 freq=14
id=udp_flood ip=193.193.135.66 dos_id=1 exp=998 pps=0 freq=3
id=udp_dst_session ip=192.228.79.201 dos_id=1 exp=5898 pps=0 freq=0
id=udp_flood ip=192.228.79.201 dos_id=1 exp=898 pps=0 freq=1
id=udp_flood ip=255.255.255.255 dos_id=1 exp=35 pps=0 freq=0
NOTE Diese Liste zeigt nicht zwingen IP's resp. Sourcen von "Attacken" sondern Source IP's für die eine DDoS Policy
matched. Die Position "exp=" gibt ein Wert an in Sekunden nachdem der Eintrag entfernt wird sofern die Source
IP nicht mehr für eine DDoS Policy matched. Die Position "pps=" gibt an wieviele "Packet Pro Sekunde" von dieser
Source IP gesendet wurden/werden.
Wenn die Liste für "diagnose ips anomaly" sehr lang ist kann anhand der Option "filter" ein entsprechender Filter gesetzt werden. Wenn nachträglich "diagnose ips anomaly list" ausgeführt wird so wird der gesetzte Filter benutzt:
# diagnose ips anomaly filter
anomaly filter:
id any
ip 0.0.0.0 mask 0.0.0.0
nps 0 - 0
freq 0 - 0
Antivirus
Wo konfiguriere ich die Updates der Antivirus Pattern und was ist per Standard konfiguriert?
Die Antivirus Pattern (Database) einer FortiGate dh. Zeit und Intervall können über das Web Mgmt. Interface über folgende Position konfiguriert werden:
System > Config > FortiGuard > AV & IPS Download Options
Per Standard gilt für FortiOS 5.0 die Einstellungen für ein "daily" Update dh. einmal pro Tag. Ab FortiOS 5.2.4 wurde diese Standard Einstellungen geändert auf alle "2 hours". In einem "normalen" Umfeld empfehlen wir ein Update Interval von 6 Stunden. Dies wird auf der Kommandozeile folgendermassen konfiguriert:
# config system autoupdate schedule
# set status enable
# set frequency every
# set time 06:00
# end
Desweiteen empfehlen wir unter normalen Umständen die "push" Updates zu deaktivieren. Dies bedeutet: Auch wenn der Zeitintervall einer FortiGate auf alle "6 Stunden" steht und "push" aktiviert ist, benachrichtig FortiGuard bei einem neuen Update den FortiGate Device, dass neue Informationen resp. Updates vorhanden sind. Durch diese Benachrichtigung, bei aktivierten "push", wird der FortiGate Device angewiesen die neuen Informationena aus FortiGuard runterzuladen und so die Antivirus DB resp. Pattern Files auf den neuste Stand zu bringen. Es muss dabei berücksichtigt werden das bei einem Update die Antivirus Engine neu gestartet werden muss dh. kurzfristig entsteht durch das Update der Antivirus DB resp. Patterns eine hohe Auslastung auf dem Device die dadurch entsteht da die Antivirus Engine neu gestartet werden muss um die neuen Information der Antivirus DB einzulesen. Um "push" Updates zu deaktivieren kann folgendes auf der Kommandozeile ausgeführt werden:
# config system autoupdate push-update
# set status disable
# end
Wie setze/blocke ich die File Limite (maximum file size) für den Antivirus?
Wenn man eine Limite setzen möchte (empfehlenswert) betreffend "maximum file size" im Antivirus Bereich so muss dies über die Console definiert werden. Möchte man zB eine Limite setzen von 15 MB (unkomprimiert) so würde der Befehl folgendermassen lauten:
ACHTUNG Die Grösse resp. die Limite die angegeben wird für die Files im Zusammenhang mit der Antivirus Funktion steht
direkt im Zusammenhang mit der Performance! Dies bedeutet wenn diese zu Gross gesetzt wird zB über 100 MB kann
dies enorme Performance Einbussen nachsich ziehen! Wieso die Grösse im 10 - 15 MB Bereich liegen sollte zeigt
nachfolgendes Dokument auf. Dieses gibt Auskunft in welchen File Grössen sich die meisten Anitmalware befinden:
Datei:MalwareFileSize.pdf
NOTE Unter FortiOS 5.2 existiert der Befehl "antivirus service" nicht mehr dh. alle Optionen wurden in die Protocol Options verschoben resp. "firewall profile-protocol-options". Dies bedeutet: Unter FortiOS 5.2 muss die maximum File Size für Antivirus in den Protocol Options für die einzelnen Services konfiguriert werden. Dazu stehen die folgenden Optionen innerhalb der Protocol Options zur Verfügung: # config firewall profile-protocol-options # edit [Name des entsprechenden Profiles] # config [http | ftp | imap | mapi | pop3 | smtp | nntp ] # set uncompressed-oversize-limit 10 # set uncompressed-nest-limit 12 # set block-page-status-code [Setzt den Return Code für HTTP; Standard 200] # set scan-bzip2 [enable | disable] # end # end Weitere Informationen zu den unter FortiOS 5.2 "firewall profile-protocol-options" siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
# config antivirus service [ftp | ftps | http | https | im | imap | imaps | nntp | pop3 | pop3s | smtp | smtps]
# set uncompsizelimit [Maximum File unkomprimiert für Antivirus Scanning; Standard 10]
# set uncompnestlimit [Setzt die max. Tiefe des Achrives 1 - 100; Standard 12]
# set block-page-status-code [Setzt den Return Code für HTTP; Standard 200]
# scan-bzip2 [enable | disable]
# end
NOTE Die Option "uncompnestlimit" gilt für folgende Format:
arj, bzip2, cab, gzip, lha, lzh, msc, rar, tar, zip (bzip2 Support ist per Standard deaktiviert)
Wenn man den Befehl "uncompsizelimit" in Zusammenhang mit dem Wert "0" absetzt gilt dies
als "unlimited maxmimum file size". Dies ist nicht empfehlenswert dh. man sollte immer
ein Maximum definieren! Das Maximum kann von Modell zu Modell varieren dh. um die gesetzte Grösse
zu ermitteln benütze folgendne Befehl (Output Beispiel 60C):
# config antivirus service http
# set uncompsizelimit ?
<value> max unompressed size to scan (1-44MB or use 0 for unlimited)
# end
Wird Antivirus im Zusammenhang mit verschlüsselten Protokollen benutzt wie https, imaps etc. muss "Deep Inspection" benutzt werden. Was dabei zu beachten ist siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Nun die Limite betreffend "Antivirus" ist zwar gesetzt jedoch ist folgendes zu berücksichtigen betreffend File Grösse:
Die Angaben von "uncompsizelimit" gelten als max. Grösse für das Antivirus Scanning. Wird diese Grösse Ueberschritten
erscheint im entsprechenden Log der Hinweis "oversize". Das File wird jedoch nicht "geblockt/gesperrt" sondern wird
ohne Antivirus Scanning durchgelassen. Möchte man dies verhindern kann ein "oversize block" konfigurieren und zwar
folgendermassen
Policy > Policy > Protocol/Proxy Options
Wähle die Position Oversized File/Email und den entsprechenden Wert:
Datei:Fortinet-245.jpg
NOTE Wenn die Konfiguration über die Kommandozeile durchgeführt werden soll muss folgendes durchgeführt werden:
# config firewall profile-protocol-options
# edit [Name des entsprechenden Profiles]
# config [http | ftp | impa | mapi | pop3 | smtp | nntp]
# set options [oversize | clientcomfort | servercomfort | no-content-summary | chunkedbypass]
# set oversize-limit [Max. Grösse für Antivirus Scanning]
# end
# end
Wenn die "oversize-limit" gesetzt wird so stellt dies die maximale Grösse dar für Antivirus Scanning. Wird
unter "set opitons" NICHT "oversize" gesetzt wird das File NICHT geblockt! Somit möchte man zB für "http"
eine max. Antivirus Scanning Grösse von 10MB konfigurieren und alles was Grösser ist als 10MB blocken,
würde die vollständige Konfiguration folgendermassen aussehen:
# config antivirus service http
# set uncompsizelimit 10
# set uncompnestlimit 12
# set block-page-status-code 200
# scan-bzip2 disable
# end
# config firewall profile-protocol-options
# edit [Name des entsprechenden Profiles]
# config http
# set options oversize no-content-summary
# set oversize-limit 10
# end
# end
Diese Konfiguration ersetzt grunsätzlich nicht "das Maximum eines Files das über die FortiGate runtergeladen werden kann" sondern es steuern einzig und alleine ob ein File geblockt wird, wenn es die "Maximale Grösse von Antivirus Scan übersteigt". Möchte man eine Konfiguratin durchführen für "max. File Grösse betreffend Download/Upload" siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_verhindern_das_eine_bestimmte_Gr.C3.B6sse_von_Files_.C3.BCbermittelt_werden.3F
Kann ich die Antivirus Engine/Database manuell auf den neusten Stand bringen?
Was manuell auf den neusten Stand gebracht werden kann ist das reguläre "Antivirus Definiton File" (ETDB) der FortiGate (enthält ebenfalls Update der Engine). Im Zusammenhang mit dem FortiClient (Premium) kann dies anhand des VCM Files durchgeführt werden. Dies bedeutet ein VCM File ist das "Antivirus Definition File" das benötigt wird damit dem FortiClient (Premium/Endpoint Security) seine Antivirus Definition Files bekommt. Diese Definiton Files können auf der Fortigate dem FortiClient (Premium/Endpoint Security) zur Verfügung gestellt werden. Das Definition File findet man unter folgender URL:
https://support.fortinet.com/Download/AvNidsDownload.aspx NOTE Damit man die Files runterladen kann muss man sich mit seinem Support Account zuerst anmelden. Danach muss der Verifizierungscode auf der Seite mit dem "confirm" Button bestätigt werden. Danach können die vers. Files wie zB VCM runtergeladen werden. Für einen Fortinet Device benötigt man das "ETDB" File.
Sobald das Definition File runtergeladen wurde kann dies über folgende Menüposition eingespielt werden:
System > Config > FortiGuard > AV Definition / VCM Plugins / IPS Definition > ....via Mnaual Update ) [Update]
Was ist der Hauptunterschied in der Antivirus Funktion zwischen FortiOS 5.0 und 5.2?
Unter FortiOS 5.0.x wurde die Antivirus Funktion per Standard im "proxy-based" Modus verwendet (Default Profile). Der Grund war die Performance sowie die Antivirus Datenbank. Sprich unter FortiOS 5.0 konnte im "flow-based" Mode keine "extended" Antivirus Datenbank aus Performance Gründen genutzt werden. Dies bedeutet auch: Unter FortiOS 5.0.x waren im Hintergrund für "proxy-based" und "flow-based* zwei unterschiedliche "Engine's" im Einsatz.Unter FortiOS 5.2 wurde die Performance betreffend "flow-based" Antivirus massiv verbessert sowie viele der Features die unter "proxy-based" zur Verfügung stehen, können nun auch im "flow-based" benutzt werden. Der Grund dafür ist einfach: Unter FortiOS 5.2.x gibt es "nicht" mehr zwei Engines dh. für "proxy-based" und "flow-based" sondern die Antivirus Engine unter 5.2.x benützt die gleiche Engine und diese unterstützt "proxy-based" und/oder "flow-based". Unter FortiOS 5.0.x war es so, dass Archive nicht entpackt werden konnten und somit gescannt werden konnte da unter FortiOS 5.0 "flow-based" (seperate Antivirus Engine in FortiOS 5.0.x) das "ende" des Files nicht erkannt hat. Dies wurde unter FortiOS 5.2.x geändert und "flow-based" erkennt nun das "ende" eines Files und kann somit dieses -zB als Archive- entpacken und Scannen da für "proxy-based" und/oder "flow-based" die "gleiche" Antivirus Engine benutzt wird. Zusätzlich zu den genannten Neuerungen kann nun unter FortiOS 5.2.x und "flow-based" ebenfalls mit der "extended" Antivirus Datenbank benutzt werden, was unter FortiOS 5.0.x nicht möglich war (Performance Gründe). Aus diesen verschiedenen Verbesserungen sind die per Standard existierenden Profile's unter FortiOS 5.2 "flow-based" und nicht mehr "proxy-based". Neu unter FortiOS 5.2.x kann "flow-based" im Sniffer Mode benutzt werden.
NOTE Weitere wichtige Informationen betreffend unterstützter Formate sowie Zusatzinformationen siehe nachfolgender Artikel: FortiGate-5.0-5.2:FAQ#Welche_.22compressed.22_Formate_werden_f.C3.BCr_die_Antivirus_Engine_auf_einer_FortiGate_unterst.C3.BCtzt.3F
Welche "compressed" Formate werden für die Antivirus Engine auf einer FortiGate unterstützt?
Wenn es um die "Antivirus Engine" geht für eine FortiGate stellt sich zuerst die Frage "Welche" Version eingesetzt wird. Der Grund siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F
Nachfolgendes Dokument "official released" von Fortinet zeigt welche "compressed" Formate in der Antivirus Engine unterstützt werden und liefert "Wichtig" Zusatzinformationen:
Datei:Fortios-scanning-of-archive-compressed-files.pdf
Nachfolgend ein Kurzüberblick über die unterstützten Formate (Auszug aus dem Dokument):
Archive / Compression Formats
• ZIP
• ZIPX (BZIP2, INFLATE64, LZMA, LZMA2)
• JAR
• RAR
• 7Z
• BZIP2
• CAB
• TAR
• GZIP
• ARJ
• LZH
• MSC (Microsoft Compress)
• SIS (Symbian Installer Package)
• SISX (Symbian Installer Package for 9.x)
• SWF
• NSIS (Nullsoft Installer Package)
• E32Image (Symbian 9.x, compressed with custom LZW algorithm)
• XZ (starting with AV engine v4.3)
• CPIO (starting with AV engine v4.3)
• AutoIt (starting with AV engine 5.0)
• TNEF ( starting with AV engine 5.1)
Self Extracting Formats
• SFX ZIP
• SFX RAR
• SFX LZH
• SFX ARJ
• SFX CAB
• SFX 7Z
Static Packers
• UPX
• ASPACK
• PETITE
• FSG
Generic/Custom Packers
• UPACK
• Mew
• PECompact
• ASProtect
• PecBundle
• PEncrypt
• ACProtect
Document Formats
• PDF
• MS OFFICE
• RTF
• WORDML
• MIME
Wie kann ich die "Extreme Virus Database" für die Antivirus Funktion aktivieren?
Nun die "Standard Datenbank" (normal) einer FortiGate für die Antivirus Funktion enthält Virendefinitions die "comment" sind dh. alte "legacy" Virendefinitionen sind nicht mehr enthalten. Diese "legacy" Virendefinitionen stellen im normal Fall keine Gefahr mehr da denn diese nützen Lücken und Security Vulnaribility aus für "alte" Betriebssystem und zB Browser. Dies bedeutet: Um die Grösse der Virendefinitionen-Datenbank klein zu halten werden sollte "legacy" Definitionen von der Datenbank entfernt da die Gefahr einer Infizierung minimal ist. Um in einem Umfeld mit hohen Ansprüchen dennoch die vollständige Datenbank (inkl. "legacy") zu benützen aktiviere diese vollständige Datenbank auf der CLI folgendermassen:
# config antivirus settings
# set default-db extrem
# end
NOTE Diese Funktion sollten nur dann genützt werden wenn die entsprechenden Resourcen auf
einer FortiGate auch vorhanden sind! Es stehen grundsätzlich -ausser auf kleineren Geräten-
folgende Optionen zur Verfügung:
[extended | extreme | normal]
Wenn die Antivirus Funktion unter FortiOS 5.0 im "flow-based" Mode betrieben wird, ist es
aus "Performance" Gründen nicht möglich die "extreme" Datenbank zu aktivieren. Da die Antivrus
Funktion unter FortiOS 5.2 massive verbessert wurd ist dies nun möglich. Weitere Informationen
finden man im folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F
Nachdem die Konfiguration durchgeführt wurde sollte ein Update ausgeführt werden damit die vollständige Datenbank geladen wird. Dafür führe folgendes durch:
# execute update-now
Nun sollte nach einiger Zeit die Datenbank vollständig auf den neusten Stand sein. Kontrolliere nach einiger Zeit das Datum des letzten Updates um dies zu verifizieren.
Wie kann ich die "grayware" Erkennung für Antivirus aktivieren?
"Grayware" ist die Funktion innerhalb der Antivirus Funktion die "adware" sowie zB "dialer" erkennen kann. Um die "Grayware" Erkennung einzuschalten führe auf der Console folgendes durch:
# config antivirus settings
# set grayware [enable oder disable]
# end
Wie kann ich die Antivirus Database in den gewünschten Modus (extended, extreme, normal) setzen?
Die Antivirus Funktion mit Ihren Database Definition kann in 3 vers. Modi gesetzt werden. Diese wären:
extended — Beinhaltet "Wild Virus" sowie eine Umfanggreiche Definition der "Zoo Virus".
"Zoo-Viruses" sind in den normalen Studien nicht mehr aufgeführt da sehr selten.
Dies bedeutet diese Art zu wählen macht nur Sinn in einer "Security" Umgebung!
extreme — Beinhaltet "Wild Virus" sowie der "Zoo Virus". "Zoo-Viruses" sind in den normalen
Studien nicht mehr aufgeführt da sehr selten. Dies bedeutet diese Art zu wählen
macht nur Sinn in einer "High Security" Umgebung! Der Unterschied zum "extended"
Modus ist, dass in der "extrem" ALLE "Zoo Virus" enthalten sind.
normal — Beinhaltet die "Wild Virus" sowie die "üblichen Virus". Für eine "normale" Absicherung
resp. Abdeckung gegen Virus sollte diese Art benutzt werden.
Um den entsprechenden Modus zu setzen benütze:
# config antivirus settings
# set default-db [extended | extreme | normal]
# end
NOTE Unter FortiOS 5.2 wurden betreffend der Antivirus Funktion massive Verbesserungen
durchgeführt. Weitere Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F
Was ist "flow-based" Scanning und welche Vor- und Nachteile sind in diesem Zusammenhang zu berücksichtigen?
"Flow-based" Scanning steht im Zusammenhang mit Antivirus, Web Filtering und DLP! Das "proxy" Scanning ist zwar schneller jedoch das "flow-based" Scanning ist Resourcenschonender. Beim "proxy-based" Scanning wird das zu überprüfende File auf dem Proxy Server zwischengespeichert (caching) um das File, wenn es als Ganzes gecached ist, zu überprüfen. Um diese Art dh. "proxy-based" durchzuführen -und weil die Files zuerst als Ganzes gecached werden müssen - wird mehr Memory alloziert dh. Resourcenintensiver. Beim "flow-based" Scanning wird das File als "flow" geprüft. Wie gesagt es wird nicht nicht das ganze File im Gesamten überprüft sonder ein Teil dh. eben nur ein "flow". Dadurch entstehen gewissen Nachteile wie zB ein ZIP File muss zuerst als Gesamtes zur Verfügung stehen (cached) um es zu entpacken und den Inhalt zu überprüfen. Bei einer "flow-based" Konfiguration ist dies nicht möglich da das File nie als Gesamtes zur Verfügung steht. "Flow-based" ist zwar Resourcenschonender jedoch muss folgendes berücksichtigt werden: Wenn Antivirus und DLP als "flow-based" konfiguriert sind jedoch Web Filtering nicht so ist diese Konstellation der Konfiguration NICHT Resourcenschonend da durch das Web Filtering Memory alloziert wird. Dies scheint im ersten Augenblick ein Nachteil zu sein jedoch ist dies nur die halbe Wahrheit denn wenn die Fortigate durch Memory Belastung oder Session Limits ausgelastet ist kann durch die "flow-based" Konfiguration ein Vorteil entstehen um den Device zu entlasten und um zu verhindern, dass eine Fortigate in den "conserve mode" schaltet (stoppen aller "proxy-based" basierenden Scans). Dieser "conserve mode" wird solange aufrecht gehalten bis wieder die nötigen Resourcen zur Verfügung stehen. Mit einer Kombination aus "proxy-based" Basierender Konfigurtion und "flow-based" kann diesem Umstand entgegengetreten werden. Die "flow-based" Konfiguration wird folgendermassen konfiguriert:
NOTE Unter FortiOS 5.2 wurden betreffend der Antivirus Funktion massive Verbesserungen durchgeführt. Dies bedeutet die oben erwähnten Umstände stimmen für FortiOS 5.2 nicht mehr für die Antivirus Funktion im "flow-based" Mode. Dies bedeutet: Es gibt praktisch keine Einschränkungen mehr. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F
Aktivieren von "flow-based" Antivirus Scanning
UTM Profiles > AntiVirus > Virus Database
--> Selektiere "Flow-based Virus Database"
Aktivieren von flow-based Web Filtering
UTM Profiles > Web Filter > [Wähle das entsprechende Profil]
--> Selektiere unter "Inspection Mode" Flow-based
ACHTUNG "flow-based" Scanning unterstützt KEIN "Web Content Filtering". Wenn der "Inspection Mode"
auf "flow-based" gesetzt wird so führt die Fortigate für "Content Filtering" proxy Scanning
durch und für Web Filtering "flow-based"!
Aktivieren von "flow-based" DLP
UTM Profiles > Data Leak Prevention > [Wähle das entsprechende Profil]
--> Selektiere unter "Inspection Mode" Flow-based Detection
ACHTUNG Wird unter DLP "Flow-based Detection" aktiviert so gibt es unter diesem Modus KEINE
"File Grössen Limitierung"!
Desweiteren ist zu berücksichtigen wenn in einer Firewall Policy Rule unter FortiOS 5.2 der Proxy Mode gemischt wird dh. "flow-based" und "proxy-based" und was in so einer Situation gilt. Weitere Informationen dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Welche_.22Security.22_Funktionen_unterst.C3.BCtzt_eine_FortiGate_im_.22flow-based.22_und.2Foder_.22proxy-based.22_Mode.3F
Kennt die Antivirus Funktion einer FortiGate die "Heuristic" und wie kann ich diese aktivieren?
Die Antivirus Funktion auf einer FortiGate kennt die sogenannt "Heuristic". Diese kann aktiviert werden ist jedoch per Standard deaktiviert. Um die "Heuristic" Funktion zu aktivieren benütze folgenden Befehl in der CLI:
# config antivirus heuristic
# set mode [ pass | block | disable]
# end
NOTE Die Values "pass" sowie "block" bedeuten folgendes:
pass - Enable heuristics but detected files are passed
block - Enable heuristics and detected files are blocked
Was bedeutet unter FortiOS 5.2 der Konfigurationspunkt "emulator" in einem Service für ein Antivirus Profile?
Im Antivirus Profile für die verschiedenen Service wie zB http, smtp, pop3 usw. existiert eine Option "emulator". Diese Option hat nur Auswirkungen wenn ein Antivirus Profile im Proxy Mode benutzt wird dh. diese Option ist nicht unterstützt für Flow Mode:
# config antivirus heuristic
# config [Gebe den entsprechenden Service an zB http | ftp | imap | pop3 | smtp | mapi | nttp]
# set emulator [enable | disable]
# end
# end
Diese Option emuliert den Scan basierend auf Win32 und soll dadurch den Durchsatz erhöhen und wird speziell für "malware dedection" benutzt. Es kann jedoch zu Problemen kommen wenn ein File durch die Antivirus Funktion resp. Scan für Malware untersucht wird und in der AV Database keine entsprechende Definition enthalten ist. Dadurch bindet der Scan Prozess überdurschnittlich viele Resourcen und zeigt in machen Fällen eine vorübergehende sehr hohe CPU Auslastung. Ebenso kann es vorkommen das die Session für den Scan nicht korrekt beendet wird (crash). Wenn dies geschieht, markiert die Funktion "emulator" das File mit dem "suspicious flag". Ein Hinweid darauf geben die Informationen für "Suspicious Files" die im Widget unter "Advance Threat Protection Statistics" aufgeführt sind da diese Win32 Emulation Scan enthalten:
Dashboard > Status > [Wähle Widget] > [Aktiviere "Advance Threat Protection Statistics"]
Datei:Fortinet-2155.jpg
Werden somit zwischenzeitliche "crash" festgestellt oder hohe CPU Last sollte diese Option vorübergehend deaktiviert werden um zu verifizieren ob diese zwischenzeitliche hohe Resourcenbindung für diese Option "emulator" benutzt wird.
Wie schalte ich für Antivirus auf einer FortiGate das Extended-UTM-Log ein?
Im normal Fall werden Antivirus Events im regulären Log geloggt (Traffic Log). Nun möchte man die Event's seperiert in einem Log loggen, kann dies durch das sogenannte "Extended-UTM-Log" (Nur für FortiOS 5.0) erreicht werden. Um dieses "Extended-UTM-Log" zu aktivieren führe folgendes durch:
# config antivirus profile
# edit [Gebe das entsprechende Profile an]
# set extended-utm-log [enable | disable]
# set av-block-log [enable | disable]
# set av-virus-log [enable | disable]
# end
NOTE Durch "av-virus-log" wird jeder Scan Vorgang betreffend Antivirus für ein File das gescannt werden
soll geloggt. Durch "av-block-log" wird ein Log Eintrag erstellt wenn ein Virus Scann Positiv
abgeschlossen wurde! Die beiden Befehle "av-block-log" sowie "av-virus-log" stehen unter FortiOS 4.3.x
sowie unter FortiOS 5.0 / 5.2 zur Verfügung jedoch das "Extended-UTM-Log" steht nur unter FortiOS 5 zur
Verfügung! Weitere Informationen betreffend "Extended-UTM-Log" im Zusammenhang mit FortiOS 5.2 siehe
nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehn kann unter folgenden Punkt das "UTM Monitoring" aktiviert werden:
System > Admin > Settings > UTM Monitors
Wenn dieser Punkt aktiviert wird erscheint der entsprechende Menüpunkt unter:
UTM Security Profiles > Monitor
Diese Monitore können nur mit Daten abgefüllt werden wenn die "Extended-UTM-Log's" zur Verfügung stehen. Weitere Informationen betreffend "UTM Monitoring" siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
Kann ich betreffend AV Definitions, IPS Definitions oder IPS Engine ein Downgrade durchführen?
Grundsätzlich ist dies möglich und wird folgendermassen durchgeführt (FortiOS 4 MR3 sowie 5.0 / 5.2):
# diagnose autoupdate downgrade [enable | disable]
Ueber den Support Bereich auf der Fortinet Seite müssen nun die AV Definition, IPS Definition/Engine manuell runtergeladen werden um ein Downgrade manuell über das Web Gui der FortiGate einspielen zu können:
https://support.fortinet.com/Download/AvNidsDownload.aspx
Um die AV Definition's, IPS Definition etc. manuell über das Web Gui der FortiGate einspielen zu können wähle folgende Position:
System > Config > FortiGuard > AV Definitions / IP Definitons ...via Manual Update) [Update]
Nachdem manuellen installieren der nötigen Files deaktiviere das "autoupdate downgrade":
# diagnose autoupdate downgrade disable
Mit folgenden Kommando kann die Version verifiziert werden:
# diagnose autoupdate versions
Wenn vorübergehend verhindert werden soll das ein Autoupdate wiederum auf eine neue Version durchgeführt werden soll kann das "autoupdate" deaktiviert werden:
# config system autoupdate schedule
# set status disable
# end
Wo finde ich auf der Fortinet Support Seite mehr Informationen betreffend einem bestimmten Virus?
Die Antivirus Definition DB von Fortinet resp. FortiGuard beinhaltet unzählig Virus Signaturen und deren Variationen. Um festzustellen ob eine bestimmte Virus Signature in der Antivirus Definition DB enthalten ist oder dessen Variationen gebe auf der folgende Seite den Namen des Virus ein:
FortiGuard http://www.fortiguard.com/encyclopedia/
Danach kann auf den entsprechenden Eintrag ein Mausklick ausgeführt werden und die Beschreibung über den angewählten Eintrag erscheint sowie Zusatzinformationen etc.
Wie kann ich ein nicht "bekannten" Virus zu Fortinet übermitteln, damit die Information in die nächsten AV Definitions aufgenommen werden kann?
Wenn ein nicht bekannter Virus zu Fortinet übermittelt werden soll, kann folgender Link dazu benutzt werden die Information resp. das File das den "allfälligen" Virus enthält zu Fortinet zu übermitteln:
http://www.fortiguard.com/antivirus/virus_scanner.html
Möchte man das File einfach mit der neusten zur Verfügung stehenden Antivirus Signature überprüfen gehe auf "Browse". Gebe das entsprechende File an und bestätige mit "Scan". Möchte man das File übermitteln und Feedback erhalten von Fortinet kann im unteren Bereich zusätzlich eine Nachricht definiert werden mit Name, E-Mail Adresse, Subject (zB New Virus found) sowie einer Kurznachricht (zB File delivered includes new Virus which is not recognized by Fortinet Scanner). Nach Angabe des Files (unter Browse) und Eingabe der Informationen benützt man "Scan and Send Message".
Datei:Fortinet-838.jpg
Eine andere Möglichkeit wäre die neue Funktion der "Sandbox" unter FortiOS 5.0 / 5.2 zu benützen dh. weitere Informationen siehe Artikel:
FortiSandbox:FAQ
Was bedeutet im Antivirus Profile die Funktion "Inspect Suspicious Files with FortiGuard Sandbox"?
Informationen zur Funktion FortiSandbox siehe nachfolgenden Artikel:
FortiSandbox:FAQ
Kann ich über den "MIME" Header eine bestimmte Applikation vom Antivirus Scanning ausschliessen?
Ja dies ist möglich und wird nicht direkt über die Antivirus Funktion sondern über den WebFilter "Content-Header" konfiguriert (FortiOS 5.0). Weitere Informationen wie vorgegangen muss um diese Konfiguration durchzuführen siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_innerhalb_eines_WebFilters_einen_bestimmten_.22MIME.22_Type_.28zB_Audio.29_blockieren_.28Content-Header.29.3F
NOTE Um zB Audio/Video von einem Antivirus Scanning auszunehmen muss dies unter FortiOS 5.0 über die
"Content Header" Funktion konfiguriert werden. Unter FortiOS 5.2 kann dies über die "Protocol
Options" durchgeführt werden da dort eine neue Funktion zur Verfügung steht:
# config firewall profile-protocol-options
# edit [Namen des entsprechenden Profiles
# set streaming-content-bypass enable
# end
Diese Option "streaming-content-bypass" ist per Standard aktiviert!
Wie kann ich eine bestimmte Site/Domain vom Antivirus Scanning ausschliessen?
Wenn man eine bestimmte Domaine/Site vom Antivirus Scanning ausschliessen möchte kann dies anhand der Antivirus Funktion nur über eine entsprechende Fireall Policy Rule durchgeführt werden. Dies bedeutet: Würde man folgende Firewall Policy Rule implementieren:
Sequenz Source Interface Source IP Destination Interface Destination IP Action Security Profiles
1 internal all wan1 all allow Antivirus Profile
WebFilter Profile
Protocol Options
So würde die FortiGate angewiesen alle Sites die im WebFilter als Allow gesetzt sind zu zulassen. Jedoch kann die Seite durch eine andere UTM Funktion wie Antivirus geblockt werden. Um nun zB Hersteller Updates vom Antivirus Scanning auszuschliessen kann oberhalb der bestehenden Rule (Top Down First Match Wins) eine Firewall Policy Rule implementieren werden anhand des FQDN ohne Antivirus Profile:
Sequenz Source Interface Source IP Destination Interface Destination IP Action Security Profiles
1 internal all wan1 gr-microsoft.com allow None
2 internal all wan1 all allow Antivirus Profile
WebFilter Profile
Protocol Options
NOTE Durch dieses Konstrukt/Definition in der Firewall Policy wird die FortiGate klar angewiesen für die einzelnen IP's/
Subnets/Sites/Services das zu tun betreffend Security Profiles was Sinn macht und somit wird durch diese Konfiguration
ebenfalls die FortiGate betreffend Performance entlastet.
Da wie schon erwähnt in der Firewall Policy "Top Down First Match Wins" gilt wird greift die Sequenz "1" bei einem FQDN (Fully Qulified Domain Name) vor der Sequenz 2 und da auf der Sequenz "1" kein Security Profile implementiert ist wird auch keine Antivirus für den FQDN ausgeführt. Dies ist eine einfach Art FQDN's und/oder auch IP Ranges/Subnets von einer UTM Action auszuschliessen. Es besteht jedoch noch eine andere einfache Variante dies durchzuführen die jedoch in der Firewall Policy in dem Sinne nicht so abgebildet wird dh. diese ist nicht über die Firewall Policy Rule ersichtlich. Um diese Variante anzuwenden muss im WebFilter unter "Web Site Filter" eine FQDN als "exempt" erfasst werden. Nähere Informationen dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_.C3.BCber_einen_WebFilter_eine_Site.2FDomaine_vom_UTM_Security_Profiles_Action_wie_Antivirus.2C_DLP_usw._ausschliessen.3F
Was bedeutet im Antivirus Profile "Block Connections to Botnet Servers" und kann ich diese Funktion Testen?
Im Antivirus Profile sei es im "Proxy und/oder Flow" Mode kann die Position "Block Connections to Botnet Servers" aktiviert werden. Wenn diese Position aktiviert wird, erkennt und blockt die FortiGate Anfragen zu Botnet Servern. Um was es sich genau handelt bei Botnet Servern kann im folgenden Artikel nachgelesen werden:
Fortinet:ProduktInfo#Fortinet_Anatomy_of_a_Botnet NOTE Wenn die genannte Position über CLI konfiguriert werden soll so muss folgendes ausgeführt werden: # config antivirus profile # edit [Name des entsprechenden Profiles] # set block-botnet-connections [enable | disable] Für FortiOS 5.2 existiert das Kommando "block-botnet-connections" nicht mehr und wurde ersetzt mit: # set scan-botnet-connections [monitor | block | disable]
Wenn diese Position aktiviert wird, fragt man sich ob dies auch getestet werden kann? Dies ist möglich dh. man kann Anfragen vom Internen Netz zu bestimmten Botnet Server/IP durchführen und über die FortiGate kontrollieren ob diese Anfragen geblockt wurden. Folgender Link gibt Auskunft über die momentanen bekannten Botnet Server/IP:
https://zeustracker.abuse.ch/blocklist.php NOTE Man muss berücksichtigen, dass diese Server/IP immerwährend einem Wandel unterzogen sind dh. Server und deren IP's werden oft gewechselt. Speziell folgender Link zeigt die aktuelle IP Liste der Server: https://zeustracker.abuse.ch/blocklist.php?download=ipblocklist Um somit die Funktion zu testen muss von "Internal" ein Request zu einer der IP's durchgeführt werden. Dieser Request muss bei aktivierter Funktion "Block Connections to Botnet Servers" im entsprechenden Antivirus Profile sowie dessen Benutzung in der entsprechenden Firewall Policy geblockt werden. Bei einem Test sollte deshalb darauf geachtet werden "welche" Firewall Policy (Policy ID) genutzt wird und ob in dieser Firewall Policy das Antivirus Profile konfiguriert ist.
Kann ich das Antivirus Scanning (scanunitd) im Memory anschauen und/oder manipulieren?
Der zuständige Prozess für das Antivirus Scanning ist der Deamon "scanunitd". Dieser ist unter folgnden Kommando ersichtlich sofern dieser in Gebrauch ist:
# diagnose sys top 5 20
Run Time: 0 days, 0 hours and 15 minutes
13U, 5S, 82I; 443T, 276F, 78KF
newcli 100 R < 2.8 4.0
cmdbsvr 28 D 17.6 1.1
httpsd 89 S 0.0 4.6
httpsd 45 S 0.0 4.6
ipsengine 62 S < 94.6 22.1
fgfmd 85 S 0.0 4.1
newcli 97 S < 0.0 4.0
miglogd 43 S 0.0 4.0
cw_acd 87 S 0.0 3.8
scanunitd 93 S < 0.0 3.7
scanunitd 92 S < 0.0 3.7
forticron 63 S 0.0 3.6
scanunitd 52 S < 0.0 3.4
authd 65 S 0.0 3.4
merged_daemons 61 S 0.0 3.4
urlfilter 64 S 0.0 3.4
quard 80 S 0.0 3.4
dlpfingerprint 71 S 0.0 3.3
sqldb 67 S 0.0 3.3
eap_proxy 83 S 0.0 3.3
Ebenfalls kann der Memorybereich eingesehen werden:
# diagnose sys top-summary
CPU [|||||||||||||| ] 35.5%
Mem [||||||||||| ] 29.0% 539M/1839M
Processes: 20 (running=6 sleeping=84)
PID RSS ^CPU% MEM% FDS TIME+ NAME
* 28433 18M 35.5 1.0 10 00:04.95 newcli [x2]
36 20M 0.0 1.1 11 00:47.30 cmdbsvr
39 11M 0.0 0.6 87 00:01.33 zebos_launcher [x12]
51 9M 0.0 0.5 11 00:32.22 uploadd
52 22M 0.0 1.2 57 00:22.81 miglogd
53 9M 0.0 0.5 6 00:00.00 kmiglogd
54 25M 0.0 1.4 19 03:03.25 httpsd [x4]
57 23M 0.0 1.3 814 00:04.45 proxyd [x6]
58 10M 0.0 0.6 8 00:00.28 wad_diskd
59 12M 0.0 0.7 16 00:01.28 scanunitd [x3]
61 57M 0.0 3.1 18 00:08.57 ipsmonitor [x2]
9233 14M 0.0 0.8 26 00:00.89 iked
65 9M 0.0 0.5 8 00:00.60 merged_daemons
66 9M 0.0 0.5 8 00:00.20 fnbamd
67 9M 0.0 0.5 9 00:00.12 fclicense
71 10M 0.0 0.6 18 00:00.31 forticron
72 9M 0.0 0.5 11 00:00.12 forticldd
73 11M 0.0 0.6 18 00:00.18 urlfilter
74 12M 0.0 0.7 35 00:04.31 authd
75 10M 0.0 0.6 14 00:00.47 fcnacd
Wenn dieser Deamon untersucht werden soll dh. mit debug Methode steht folgendes zur Verfügung:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug application scanunit -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
NOTE Wenn der Deamon "miglogd" neu gestartet werden soll führe folgendes aus:
# diagnose test application scanunit 99
Der "diagnose debug" Befehl ist "persistent" dh. auch wenn ausgeloggt wird läuft dieser im Hintergrund weiter und belastet -je nach Debugging- den Device im hohen Masse. Aus diesem Grund ist es wichtig den Debug wiederum zu "disablen" dh. führe folgendes aus:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Unter "config system global" ist es möglich die Anzahl der "scanunit's" zu definieren. Die Voraussetzung dafür ist das es sich um eine FortiGate Modell handelt mit mehreren CPU's. Bei dieser Einstellung -die unter normalen Umständen nicht manipuliert werden sollte- ist vorsicht geboten. Der entsprechende Befehl wäre:
# config system global
# set scanunit-count [Anzahl der "scanunits"; Standard basierend auf dem Modell/Device]
# end
Ab FortiOS 5.2.2 wurde ein neues API (Application Program Interface) implementiert das Statistiken zur Verfügung stellt für die "scanunit" resp. den Deamon "scanunitd". Diees API zeigt die Memory Statistik sowie anhand dieses Kommndos können Filter Optionen gesetzt werden um bestimmten Informationen aufzulisten. Folgende Befehle stehen zur Verfügung:
# diagnose sys scanunit stats ?
list List all statistics.
all List all statistics.
clear Clear all statistics.
# diagnose sys scanunit filter ?
list Display the current filter.
clear Clear the current filter.
negate Negate the specified filter parameter.
vd Index of virtual domain. -1 matches all.
worker Index of worker. -1 matches all.
# diagnose sys scanunit log filter ?
list Display the current filter.
clear Clear the current filter.
negate Negate the specified filter parameter.
vd Index of virtual domain. -1 matches all.
worker Index of worker. -1 matches all.
# diagnose sys scanunit restart
Proxy Explicit
Wie konfiguriere ich einen Explicit Proxy Server inkl. Antivirus für HTTP/HTTPS?
Eine Fortigate kann als Proxy Server agieren und unterstützt den "Transparent Proxy" sowie einen "Explicit Proxy". Unter normalen Umständen wird ein Transparent Proxy bevorzugt da ausser auf der Firewall keine Konfiguration auf dem Client/Workstation durchgeführt werden muss. Wenn jedoch ein "Explicit Proxy" implementiert werden soll kann dies gemäss nachfolgenden Beispiel auf der FortiGate konfiguriert werden. Gehen wir davon aus das wir ein LAN Environmen haben mit dem IP Range 192.168.1.0/24 sowie das LAN Interface der Fortigate ist konfiguriert mit der IP 192.168.1.1. Um nun solch einen Proxy Server zu konfigurieren gehe folgendermassen vor:
System > Network > Explicit Proxy
NOTE Ab FortiOS 5.0 / 5.2 ist die Menüpositon "Explicit Proxy" grundsätzlich nicht
vorhanden und muss als Feature über folgende Menü Position aktiviert werden:
System > Config > Features > Explicit Proxy
Nachdem das Feature aktiviert wurde muss kurz ausgeloggt sowie erneut eingeloggt
werden!
Als Erstes aktivieren wir den "Explicit Proxy" auf dem Interface auf dem er als Service zur Verfügung gestellt werden soll:
System > Network > Interface
Datei:Fortinet-232.jpg
Datei:Fortinet-233.jpg
NOTE Unter FortiOS 5.0 / 5.2 wurde diese Position "Explicit Proxy" in den unteren
Teil der Seite verchoben!
Nun konfigurieren wir den "Explicit Proxy" Zugriff mit dessen Port etc. Wähle dazu:
System > Network > Explicit Proxy
Datei:Fortinet-234.jpg
NOTE Wenn unter "Default Firewall Policy Action" Deny gewählt wird muss für den "Explicit Proxy" für den Proxy selber die
entsprechenden Rules implementiert werden. Dies bedeutet der Proxy selber hat nur mit "Accept" das Recht mit "sämtlichen"
Ports und Protokollen die Anfragen in das Internet abszusetzen. Mit "Deny" muss jeder Port resp. jedes Protokoll freigegeben
werden. Die Option "FTP" unter dem Abschnitt "Explicit Web Proxy Options" stellt das FTP Protokoll dar das "encapsulated"
über HTTP läuft (Browser basierend) dh. auch genannt "ftp over http". Wenn ein effektiver *FTP Proxy* konfiguriert werden
möchte muss dieser im Abschnitt "Explicit FTP Proxy Options" definiert werden. Weitere Infos im nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_FTP.3F
Nun definieren wir die entsprechende "Firewall Policy Rule" die benutzt wird um dem Proxy die nötigen Rechte verleit die nötigen Seiten aufzurufen. Führe folgendes aus:
NOTE Die Firewall Policy Rule die benutzt wird damit der User Zugriff erlangt auf den "Explicit Proxy" muss nicht implementiert
werden da sobald man einen "Explicit Proxy" definiert auf einem Interface eine sogenannte "Local In" Policy erstellt wird.
Diese "Local In" Policy steuert einzig und alleine den Zugriff auf den Proxy Port. Diese "Local In" Policy ist ersichtlich
unter:
Policy & Objects > Policy > Local In > [Abschnitt Other]
Diese Menüposition ist nur ersichtlich sofern das Feature unter folgender Position aktiviert
ist:
System > Config > Feature > Show More > Local In Policy
Policy & Objects > Policy > Create New
NOTE Unter FortiOS 5.0 ist eine "Explicit Proxy Policy" in der "normalen" Policy zu erstellen. Unter FortiOS 5.2 wurde die
"Explicit Proxy Policy in ein seperates Menü unter "Policy & Objects" ausgelagert! Da dies eine spezielle Menüposition
ist, die "nur" für den "Explicit Proxy benützt wird muss/kann dort die effektive Konfiguration auf IP/User/Gruppen
basierend durchgeführt werden. Aus disem Grund steht in dieser "seperaten" Policy als Action auch die Position
"AUTHENTICATE" zur Verfügung. Sobald diese angewählt wird öffnet sich ein zusätzlicher Abschnitt indem über "Configure
Authentication Rules" der Zugriff resp. die Authentifizierung konfiguriert werden kann:
Datei:Fortinet-1120.jpg
Datei:Fortinet-235.jpg
Datei:Fortinet-236.jpg
Die entsprechende "Explicit Proxy" Rule steht nun und es kann bereits das Erstemal getestet werden. Nachdem der Test Erfolgreiche war kann nun die Funktion Antivirus hinzugefügt werden! Dazu muss zuerst ein entsprechendes "Antivirus Profile" erstellt werden:
Security Profiles > Antivirus > Profile
Datei:Fortinet-839.jpg
NOTE Wenn das Antivirus Profile im Zusammenhang mit unverschlüsselten Protokollen zB http benutzt werden soll muss ein
entsprechendes Profile für "unverschlüsselte Protokolle" konfiguriert werden. Dies geschieht unter folgender
Position:
Policy & Objects > Policy > Proxy Options
Soll Antivirus im Zusammenhang mit "verschlüsselten Protokollen" benützt werden (Deep Inspection)
muss ein entsprechendes Profile für "Deep Inspection" konfiguriert werden:
Datei:Fortinet-840.jpg
Unter FortiOS 5.2 wurden die "Deep Inspection" modifiziert und optimiert. Weitere Informationen
siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Das Antivirus Profile sowie das dazugehörige "Proxy Option" (Protocol Option) und/oder "SSL Inspectio" (Deep Inspection"ist nun erstellt. Es muss nun nur noch in der entsprechenden Firewall Policy Rule für den Proxy die Funktion Antivirus hinzugefügt werden:
Policy & Objects > Policy > [Wähle die entsprechende Policy]
Datei:Fortinet-239.jpg
Datei:Fortinet-240.jpg NOTE Wie schon erwähnt muss zum Antivirus Profile das entsprechende Profile entweder für "unverschlüsselte" Protokolle zB http und/oder für "verschlüsselte" Protokolle zB https in der entsprechenden "Firewall Policy Rule" hinzugefügt werden!
Nun kann wiederum ein Test durchgeführt werden dh. gehe auf folgende Seite und lade ein "eicar" File runter (Antivirus Test File):
http://www.eicar.com
Gehe "oben Rechts" auf Download. Danach links im Menü auf "Download". Teste die Antivirus Implementierung anhand der "eicar" HTTP und/oder HTTPS Files! Fortinet hat aus dem "Cookbook" ein "Supplementary" Released, indem erklärt wird wie ein "Explict Proxy" konfiguriert wird. Es lohnt sich auch hier einen Blick reinzuwerfen. Das Dokument ist FortiOS 5.0 basierend:
Datei:Setting-up-an-explicit-proxy-for-users-on-a-private-network.pdf
Wie konfiguriere ich einen Explicit Proxy Server inkl. Antivirus für FTP?
Eine Fortigate kann als "FTP Proxy" Server agieren dh. in unserem Beispiel gehen wir davon aus das wir ein LAN Environmen haben mit dem IP Range 192.168.1.0/24 sowie das LAN Interface der Fortigate ist konfiguriert mit der IP 192.168.1.1. Um nun solch einen "FTP Proxy" Server zu konfigurieren gehe folgendermassen vor: Bevor man auf dem Interface den "FTP Proxy" aktivieren kann, muss die Funktion selber aktiviert werden denn der "FTP Proxy" ist per Standard deaktiviert und somit erscheint die Menüposition unter den Interfaces um den "FTP Proxy" zu aktivieren nicht. Führe folgendes durch:
NOTE Die Menüpositon des "Explicit Proxy" wird nicht per Standard angezeigt dh. um dieses Menü anzuzeigen führe folgendes aus: System > Config > Feature > Explicit Proxy Danach logge kurz aus und führe ein erneutes Login durch. Nun erscheint die entsprechende Menüposition. System > Network > Explicit Proxy > Explicit FTP Proxy Options Datei:Fortinet-249.jpg
Die "FTP Proxy" Service Funktion wurde aktivieren und kann nun auf einem entsprechenden Interface aktiviert werden:
System > Network > Interface
Datei:Fortinet-250.jpg
Datei:Fortinet-251.jpg
Nun kann eine entsprechende Firewall Policy erstellt werden. Diese ist analog für einen HTTP/HTTPS Proxy. Weitee Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F
Nach der Implementierung der entsprechenden Firewall Policy Rule sollte die Implementation getestet werden. Wenn man einen "maneullen Test" durchführen möchte muss zuerst auf den "FTP Proxy" verbunden werden. Danach muss "Auf dem FTP Proxy" die effektive Verbindung abgesetzt werden anhand des Kommandos [USER@DESTINATION]. Dies bedeutet zB unter Windows folgendes:
C:\Users\User>ftp 192.168.1.1
Verbindung mit 192.168.1.1 wurde hergestellt.
220 Welcome to Fortigate FTP proxy
Benutzer (192.168.1.1:(none)): [Username FTP Server]@[FTP Server FQDN/IPv4 Adresse]
331 Password required for [Username FTP Server]
Kennwort:
230 User [Username FTP Server ] logged in
ftp> bye
221 Goodbye.
Dies bedeutet wenn man zB eine Software benutzt wie zB "Total Commander" so muss die entsprechende "Verbindungsmethode" gewählt werden. Diese wäre wie das obige Beispiel zeigt:
Sende Kommando USER Benutzer@Maschinenname
Weitere Informationen wie ein Antivirus Profile konfiguriert wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F
Wo kann ich das SSL Zertifikate für die Clients runterladen?
Wenn der "Explicit Proxy" für HTTPS (Deep Inspection) durchführen soll um HTTPS aufzubrechen, muss das folgende Zertifikat runtergeladen und auf den Clients im Browser als "vertrauenswürdiges Stammzertifikat" importiert werden. Dies muss für zB für IE und Firefox seperat geschehen. Das Zertifikat für einen Import in den Browser findet man auf einer Fortigate an folgenden Punkt:
System > Local Certificate > Fortinet_CA_SSLProxy
Weitere Informationen über "Deep Inspection" findet man im nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
Welche URL muss im Browser konfiguriert werden um das PAC File zu definieren?
Folgende URL muss zB im Internet Explorere (gilt auch für andere Browser) konfiguriert werden um die Location des PAC Files zu definieren:
Inernetoptionen > Verbindungen > LAN Einstellungen
Automatisches Konfigurationsscript verwenden: http:\\[Interface Name oder IP auf dem der Explicit Proxy aktiviert wurde]:[Proxy Port zB 8080]/proxy.pac
Kann ich für die Fortigate ein sogenanntes "Proxy Chaining" (forward server) konfigurieren?
Nun unter einem Proxy Chaining versteht man, dass die Anfrage an den Proxy weitergeleitet werden an einen anderen Zentralen Proxy. Im normal Fall wird auf dem Proxy der die Anfrage weiterleitet KEINE Ueberprüfungen durchgeführt da ansonsten das Reporting, Troubleshooting etc. unnötig komplex wird. Es kann jedoch durchaus auf solchen Proxy's Ueberprüfungen durchgeführt werden wenn zB zu wenig Bandbreite zum effektiven Proxy zur Verfügung steht.
Um ein Proxy Chaining zu konfigurieren muss grundsätzlich ein "Explicit Proxy" auf der Fortigate eingerichtet werden mit dessen Globalen Optionen! Zu diesem Zweck siehe:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F
Desweiteren um das "Proxy Chaining" zu konfigurieren benutze folgendes:
# config web-proxy forward-server
# edit [Server Name für Konfig]
# set ip [Server IP (ipv4)]
# set addr-type [fqdn | ip]
# set port [Port des Proxy zu dem der Request weitergeleitet wird]
# set healthcheck [enable | disable]
# set comment [Möglichkeit eines Kommentars]
# set server-down-option [block | pass]
# set
Wie schon erwähnt, wenn für das "Proxy Chaining" weitere Global Konfiguration benötigt wird so müssen die Globalen Optionen herangezogen werden:
# config web-proxy global
# set tunnel-non-http [enable | disable]
# set unknown-http-version [reject | tunnel | best-effort]
# forward-server-affinity-timeout [Timeout 6 - 60; Standard 30]
# set forward-proxy-auth [disable | enable]
# set max-message-length [kBytes]
# set max-request-length [kBytes]
# set proxy-fqdn [fqdn]
# set strict-web-check [disable | enable]
# end
Wie kann ich für einen "Explicit Proxy" eine Site und/oder URL vom Cache (cache-exemption) ausschliessen?
Wenn eine "Explicit Proxy" benutzt wird werden die Anfragen der User für eine bestimmte Zeit auf der FortiGate in den "Cache" geschrieben. Wenn eine weitere Anfrage innerhalb dieser Zeit den "Explicit Proxy" erreicht wird die Anfrage aus dem Cache beantwortet sofern auf der Seite resp. URL kein Meta-Tag hinterlegt ist im Sinne von:
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="Cache-Control" content="no-store">
<meta http-equiv="pragma" content="no-cache">
Grundsätzlich sollten/muss sich die Proxy Funktion an diesen Anweisungen halten und die bestimmte Seite resp. URL wird nicht in den Cache geschrieben. Wenn jedoch diese Anweisung auf der Seite resp. URL fehlt kann ein "no cache" auch auf der FortiGate innerhalb der "Explicit Proxy" Funktion erzwungen werden. Dies wird auf der CLI folgendermassen durchgeführt:
# config web-proxy url-match
# edit [Name des URL Pattern zB also.ch]
# set status [enable | disable]
# set cache-exemption [enable | disable]
# set url-pattern [URL Pattern zB "www.also.ch"]
# end
Die Konfiguration kann ebenfalls über Web Mgmt. Interface durchgeführt werden unter folgender Position:
System > Network > Explicit Proxy > URL Match List
Datei:Fortinet-1352.jpg
Datei:Fortinet-1353.jpg
Proxy SSL-Offload
Wie kann ich für ActiveSync/OWA ein SSL-Offloading konfigurieren und was ist dabei zu beachten?
Wenn auf einer FortiGate eine Konfiguration abgebildet werden soll, die einer Konfigurtion eines TMG für ActiveSync/OWA gleichkommt kann dies anhand eines "SSL-Offloading" durchgeführt werden. Dies bedeutet: Im Grundsatz ist dies die gleiche Konfiguration wie für einen "Explizit Proxy" dh. "man of the middle" mit "deep inspection" (Zertifikat auf dem Client). Im Gegensatz zu einem "Explizit Proxy" für Outgoing wird ein "SSL-Offloading" anhand eines Virtual Servers konfiguriert (vs) für Incoming konfiguriert sowie. Ebenso benutzt man auf dem Client das entsprechende Public Zertifikat, das dem "Virtual Server" ermöglich ein "deep inspection" (SSL-Offloading) durchzuführen. Dies ermöglicht dem "Virtual Server" über das "SSL-Offloading" eine "deep inspection" durchzuführen. Um den Traffic für "ActiveSync/OWA" zu schützen können die entsprechenden Signaturen für IPS sowie Application Control angewendet werden um nicht erwünschten Traffic auf der FortiGate zu blocken und nur den entsprechenden Traffic zum Exchange ActiveSync/OWA zu zulassen. Die dabei benützen Signaturen im ActiveSync Bereich sind die folgenden:
Application Control Profile
***************************
Für OWA folgende Signaturen: Outlook.WebAccess, SSL, HTTPS.BROWSERS
Für ActiveSync folgende Signaturen: Activesync, SSL
NOTE Je nach Bedürfnisse kann anstelle von SSL die Signature SSLv2 dazugenommen werden! Im nachfolgenden Dokument wird
Schritt für Schritt gezeigt wie diese Konfiguration durchzuführen ist. Ab May 2015 funktioniert diese Konfiguration
wie im Dokument abgebildet anhand der Signaturen "Activesync, SSL" für IOS devices nicht mehr. Der Grund ist in der
Signature "SSL/SSLv2" zu suchen. Dies bedeutet: die "SSL/SSLv2" Signature wurde im May 2015 so modifiziert das Teile
davon in eine neue Signture verschoben wurde um "HTTP Browsers Sessions über SSL/SSLv2" gerecht zu werden. Die neue
Signature in dem diese nicht mehr vorhandenen Definiton von "SSL/SSLv2" verschoben wurde trägt den folgenden Namen:
HTTPS.BROWSERS (erhältlich ab "Attack Defininition" 6.648)
Diese Signature definiert die folgende Packet Strucktur:
"HTTP sessions with packet structure like GET/POST /xxxx/yyyy/ HTTP/1.1 User-Agent: xxxxx Host: xxxx ...... over SSL"
Neu definiert die "SSL/SSLv2" Signature die folgende Packet Strucktur:
"Any non HTTP session, e.g. a proprietary protocol, over SSL"
Wenn die Signature "HTTPS.BROWSERS" zum bestehenden "Application Profile" hinzugefügt werden möchte (speziell unter
FortiOS 5.0), muss darauf geachtet werden, dass im entsprechenden Profile "Alle" Kategorieren aktiviert sind da sich
die Signature "HTTPS.BROWSER" unter der Kategorie "Web.Others" befindet die per Standard nicht aktiviert ist. Somit
bevor man die Signature unter "Specific Application" sucht ALLE Kategorien aktivieren!
IPS
***
Für OWA folgende Signaturen: IIS MS_Exchange
NOTE Um die Signature für "IIS MS_Exchange" zu konfigurieren benützt gemäss nachfolgenden Dokument die Kommandline
denn Server basierende Signaturen können nur über Kommandozeile konfiguriert/gewählt werden!
Fortinet hat für die Konfiguration ein Dokument released das Schritt für Schritt zeigt wie diese Konfiguration durchzuführen ist:
Datei:How to configure TMG features on FGT.pdf
Desweiteren ist zu beachten das ein "SSL-Offloading" dem Device einiges abverlangt betreffend Performance da ein "SSL-Offloading" für jedes Packet durchgeführt wird dh. aufbrechen des Traffic (encrypt) damit ein "deep inspection" durchgführt werden kann. Nicht alle Devices bringen diese Performance mit. Devices bis FG-60D sind für so eine Konfiguration nicht empfohlen oder bringen gar nicht die entsprechenden Features/Konfigurationsmöglichkeiten mit diese Konfiguration durchzuführen. Auf diesem Umstand wird im nachfolgenden Dokument darauf hingewiesen:
Datei:Wihtepaper TMG features on FGT.pdf
Wenn es zu Problemen kommt sprich um die Signaturen auf den neusten Stand zu bringen können folgende Kommandos benützt werden:
# execute update-ips
NOTE Dies bringt speziell die IPS Signaturen Datenbank auf den neusten Stand aus dessen die Application Controll Signaturen
gespiesen werden. Dies benötigt einige Minuten. Nach einem erfolgreichen Update kann über folgendes Kommando die Versionen
überprüft werden:
# get system auto-update versions
Wenn es bei der Implementation des "SSL-Offloading" Konfiguration zu Problemen kommt kann ein Troubleshooting basierend auf dem "vs" (virtuelle server) durchgeführt werden. Um ebenfalls den Flow resp. die Policy Implementation zu überprüfen führe folgendes durch:
# diagnose debug reset
# diagnose debug disable
# diagnose debug flow show console enable
# diagnose debug flow show function-name enable
# diagnose debug application vs -1
# diagnose debug flow filter sadd [Public IPv4 Adresse der Source reps. Test Client]
# diagnose debug flow filter dadd [Public IPv4 Adresse der Destination benutzt auf dem Virtuelle Server]
# diagnose debug flow trace start 1000
# diagnose debug enable
NOTE Der Output zeigt den Traffic des Test Client mit seiner Public IPv4 Adresse und der Public IPv4 Adresse die benutzt wurde
in der Konfiguration des Virtuellen Servers (SSL-Offloading Konfiguration). Um zu sehen ob die entsprechende Firewall Policy
greift muss über das Web Gui die entsprechende Policy ID herangezogen werden. Nach einem erfolgreichen "debug" muss der
Vorgang deaktiviert werden sowie die Filter zurückgesetzt werden:
# diagnose debug disable
# diagnose debug reset
# diagnose debug flow filter clear
Wenn es weiterhin zu Problemen kommt muss auf jedenfall der Output des hier gezeigten "debug" Vorgangs für ein Ticket bei Fortinet
Support mitgeliefert werden!
Desweiteren ist zu beachten wie hier in diesem Artikel beschrieben, dass wenn Signaturen durch Fortinet geändert werden keine Ankündigung gibt durch Fortinet. Ebenfalls werden über FortiGuard zwar die Daten (Datum) einer Aenderung in der Signatur abgebildet jedoch innerhalb der Signaturen Versionen wird nicht auf Aenderung hingewiesen oder wieso eine Aenderung durchgeführt wird.
Proxy SSH
Was ist ein SSH Proxy (Deep Inspection) und wie funktioniert Dieser?
Ab FortiOS 5.0 / 5.2 und für gewisse FortiGate Modelle (Siehe SoftwareMatrix) steht neu ein SSH Proxy zur Verfügung. Dies bedeutet: Dieser SSH Proxy ist zu vergleichen mit einem "HTTPS Explicit Proxy". Wie bei einem "Explicit Proxy" wird ein sogenannte "Deep Inspection" durchgeführt. Dabei fängt der SSH Proxy auf der FortiGate den "key exchange" (Key Austausch) zwischen Client und Server ab(Man of the middle). So kann der SSH Proxy den Traffic entschlüsseln und in die Session schauen um dort die nötige Security Policy gemäss dem konfigurierten SSH Profile durchzuführen. Danach wird der Traffic wiederum gemäss "key exchange" verschlüsselt und zum Empfänger weitergeleitet. Im SSH Profile können folgende Komponenten gelogt oder geblockt werden:
• SSH remote execution
• Port forwarding
• SSH remote shell
• x11 server forwarding
Nachfolgend eine schematische Uebersicht wie ein SSH Proxy arbeitet:
Datei:Fortinet-787.jpg
Nachfolgend weitere Links die auf Deep Inspection sowie Zertifikate eingehen:
FortiGate-5.0-5.2:FAQ#Was_ist_im_Allgemeinen_der_Unterschied_zwischen_.22SSL_Certificate_Inspection.22_und_.22Full_SSL_Inspection.22.3F [[Allgemein:Zertifikate-SymmetrischeAsymmetrische]
Wie kann ich einen SSH Proxy konfigurieren (Deep Inspection)?
Um einen SSH Proxy zu konfigurieren muss zuerst ein entsprechendes "SSH Proxy Profil" erstellt werden:
Policy > Policy > SSL/SSH Inspection
Erstelle nun unter "Create New" ein neues Profile. Unter "SSH Inspection Options" aktiviere "SSH Deep Scan":
NOTE Diese Menüposition steht nicht für jedes Gerät zur Verfügung. Ob ein Device diese Funktion eines SSH Proxy unterstützt entnehme der Software Matrix: FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
Datei:Fortine-788.jpg
Bei der Definition des Ports können zusätzliche Ports konfiguriert werden zB für den zusätzliche Port 10022 gebe folgendes an:
22, 10022
Danach konfiguriere die entsprechenden Position dh. Block und/oder Log. Möchte man das Ganze über Kommandozeile konfigurieren führe folgendes aus:
NOTE Unter FortiOS 5.2 wurden die "deep-inspection-options" umbenannt auf "firewall ssl-ssh-profile". Ebenfalls wurden die "Deep Inspection" Funktion verbessert und verändert. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
# config firewall deep-inspection-options
# edit [Name des entsprechenden Profils]
# config ssh
# set port [Gebe den/die entsprechenden Ports an zB "22 10022"]
# set inspect-all [enable oder disable]
# set options [Erlaube nicht gültige Zertifikate dh. "allow-invalid-server-cert | ssl-ca-list"]
# set oversize-limit [Gebe die entsprechende Size an]
# set block [Setze die zur Verfügung stehenden Optionen auf Block die da sind "exe | port-forward | ssh-shell | x11-filter"]
# end
Nachfolgend weitere Links die auf Deep Inspection sowie Zertifikate eingehen:
FortiGate-5.0-5.2:FAQ#Was_ist_im_Allgemeinen_der_Unterschied_zwischen_.22SSL_Certificate_Inspection.22_und_.22Full_SSL_Inspection.22.3F [[Allgemein:Zertifikate-SymmetrischeAsymmetrische]
URL WebFilter
Hat die gesetzte Zeitzone auf einer FortiGate einen Einfluss auf den URL WebFilter?
Die Setzung der Zeitzone auf einer FortiGate ist eine wichtige Funktion dh. diese bestimmt welche URL WebFilter Datenbank in FortiGuard (Cloud Service) zugewisen wird! Wenn zB die falsche Zeitzone gesetzt wird wie US (Per Standard auf einer FortiGate gesetzt) wird auch die WebFilter Datenbank für US als Referenz herangezogen. Die Zeitzone kann über das Web Mgmt. Interface unter folgender Position gesetzt werden:
System > Dashboard > Status > System Information > System Time > [Change]
Wenn die Zeitzone über Kommandozeile verändert werden möchte siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_Zeitzone_einer_FortiGate.3F
Wie kann ich auf einer FortiGate den Cache des URL WebFilter löschen sowie anzeigen/auflisten?
Wenn auf einer FortiGate ein URL WebFilter konfiguriert wird so werden die einzelnen Anfragen an FortiGuard für eine bestimmte Zeit in den Cache geschrieben. Die Dauer dh. wie lange eine Anfrage im Cache verbleibt wird folgendermassen konfiguriert:
# config system fortiguard
# set webfilter-cache [enable | disable]
# set webfilter-cache-ttl [Dauer in Sekunden wie lange eine Anfrage im Cache verbleit; "Standard Wert 3600"; Möglicher Wert 300 bis 86400]
# set webfilter-timeout [Timeout einer URL WebFilter Abfrage; Standard 15 Sekunden; Möglicher Wert 1 - 30 Sekunden]
# end
Um den Cache Inhalt des URL WebFilters aufzulisten kann folgender Befehl benutzt werden:
# diagnose test application urlfilter 3
Saving to file [/tmp/urcCache.txt]
Cache Contents:
-=-=-=-=-=-=-=-
Cache Mode: TTL
Cache DB Ver: 17.33301
Domain |IP DB Ver T URL
34000000|34000000 17.33299 P Bhttp://www.ecall.ch/
34000000|34000000 17.33296 P Chttps://apctrl1.fortinet.com/
34000000|34000000 17.33295 P Chttps://logctrl1.fortinet.com/
34000000|00000000 17.33292 P Bhttp://ocsp2.globalsign.com/
34000000|00000000 17.33292 P Bhttp://ocsp.globalsign.com/
29000000|29000000 17.33282 E Bhttp://yahoo.com/
29000000|00000000 17.32731 E Dhttps://cse.google.com/
NOTE Die Spalte "Domain" sowie "IP" gibt die FortiGuard Category wieder in "hexdecimalen" Wert!
Um die Statistik eines URL WebFilters inkl. Cache aufzulisten benutze folgenden Befehl:
NOTE Analog zum nachfolgenden Befehl kann ebenfalls folgendes Kommando benützt werden das den gleichen
output liefert:
# diagnose webfilter fortiguard statistics list
# get webfilter ftgd-statistics
Rating Statistics:
=====================
DNS failures : 4
DNS lookups : 9
Data send failures : 0
Data read failures : 0
Wrong package type : 0
Hash table miss : 1
Unknown server : 0
Incorrect CRC : 0
Proxy request failures : 0
Request timeout : 26
Total requests : 23908
Requests to FortiGuard servers : 2535
Server errored responses : 0
Relayed rating : 0
Invalid profile : 0
Allowed : 0
Blocked : 1
Logged : 23903
Blocked Errors : 0
Allowed Errors : 5
Monitors : 23902
Authenticates : 0
Warnings: : 0
Ovrd request timeout : 0
Ovrd send failures : 0
Ovrd read failures : 0
Ovrd errored responses : 0
Cache Statistics:
=====================
Maximum memory : 42284892
Memory usage : 44832
Nodes : 1
Leaves : 0
Prefix nodes : 0
Exact nodes : 0
Requests : 1
Misses : 1
Hits : 0
Prefix hits : 0
Exact hits : 0
No cache directives : 0
Add after prefix : 0
Invalid DB put : 0
DB updates : 2
Percent full : 0%
Branches : 100%
Leaves : 0%
Prefix nodes : 0%
Exact nodes : 0%
Miss rate : 100%
Hit rate : 0%
Prefix hits : 0%
Exact hits : 0%
Wenn der Cache des URL WebFilter manuell gelöscht werden soll kann dies mit folgenden Befehl durchgeführt werden:
# diagnose test application urlfilter 2
Um den URL WebFilter Service neu zu starten kann folgender Befehl benützt werden:
# diagnose test application urlfilter 99
Restarting urlfilter deamon
NOTE Wird der URL WebFilter Service neu gestartet wird der Cache Inhalt betreffend URL WebFilter gelöscht!
Wie/Was wird beim FortiGate URL WebFilter genau abgearbeitet (Flow)?
Nachfolgend eine Uebersicht was beim URL WebFilter einer FortiGate genau abgearbeitet wird (Flow):
NOTE Im nachfolgenden Artikel ist beschrieben "Was" für Informationen in der Abfrage betreffend URL Webfilter Datenbank an Fortinet resp. zum Service FortiGuard übermittelt wird: FortiGate-5.0-5.2:FAQ#Was_wird_bei_der_URL_WebFilter_abfrage_in_die_FortiClouad_.28FortiGuard.29_mitgegeben_und_abgefragt.3F
Datei:Fortinet-1067.jpg
Wie kann ich für eine Seite/URL ein Debug betreffend URL Filter ausführen?
Wenn eine FortiGate eingesetzt wird im Zusammenhang mit dem URL Filter und eine Seite/URL wird nicht korrekt angzeigt kann es sein, dass diese Seite resp. der Inhalt (Embeded Content) von anderen Seiten benützt. Wenn nun diese "anderen" Seiten im WebFilter geblockt werden kommt des dazu das die effektive Seite nicht mehr korrekt angzeigt wird. Um festzustellen "was" der Grund ist das die Seite nicht korrekt angzeigt wird kann für den WebFilter folgender "debug" ausgeführt werden:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug urlfilter src-addr [IP Adresse des Client von dem der Test ausgeführt wird]
# diagnose debug application urlfilter -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
Nachfolgend ein Beispiel eines Outputs (Auschnitt) des obigen "debug" Filters anhand Source Adresse 198.18.0.21 sowie auf die Seite "www.also.com":
--------------- output debug urlfilter -1 ---------------
# msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23940, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23941, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/en/6000/index.jsp"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23945, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/print.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23943, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/html5boilerplate/main.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23944, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/screen.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23942, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/html5boilerplate/normalize.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23947, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/dev_also_com.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23946, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/dev_also_com_2.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23951, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/html5boilerplate_1/modernizr-262min.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=fonts.googleapis.com:80, id=23948, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/css?family=PT+Sans+Narrow|Raleway:400,500,600,700,800|Dancing+Script|Sanchez"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23950, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/1010_ctv/magnific-popup.css"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23952, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/js/jquery-core/1.11.2/jquery-1.11.2.min.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23953, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/js/jquery-core/2.1.3/jquery-2.1.3.min.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23954, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/jquery/jquerywaypointsmin.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23955, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/jquery/jquerytouchSwipemin.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23956, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/bootstrap/bootstrap.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23957, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/plugins.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23958, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/metronome.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23959, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/knockout/knockoutmin.js"
Not running keyword search. It is not a supported search site site
Checking urlfilter list 1
Stop quota EP 198.18.0.21, cat 0
Url filter exempt action (7f)
--------------- output debug urlfilter -1 ---------------
Der "diagnose debug" Befehl ist "persistent" dh. auch wenn ausgeloggt wird läuft dieser im Hintergrund weiter und belastet -je nach Debugging- den Device im hohen Masse. Aus diesem Grund ist es wichtig den Debug wiederum zu "disablen" dh. führe folgendes aus:
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
Gibt es eine Möglichkeit den Status des WebFilters abzufragen?
Ja, diese Möglichkeit existiert dh. mit folgenden Kommando kann der Status abgefragt werden sowie verifiziert werden "welche" FortiGuard Server benutzt werden:
# get webfilter status
NOTE Die WebFilter Funktion auf einer FortiGate ist die "einzige" Funktion die eine Lizensierung betreffend
FortiGuard erzwingt dh. wenn kein FortiGuard existiert und ein WebFilter konfiguriert ist, werden alle
Anfragen geblockt. Wenn der Status in so einer Situation mit dem Kommando "webfilter status" abgefragt
wird erscheint:
# get webfilter status
Locale : english
The service is not enabled.
Wenn es zu Problemen kommt mit dem WebFilter dh. mit der Verbindung zu den FortiGuard Servern siehe nachfolgenden Artikel für weitere Informationen:
Fortinet:FortiCare-FortiGuard#Die_Registrierung_FortiCare.2FFortiGuard_ist_auf_der_Fortigate_nicht_ersichtlich.2C_was_kann_ich_tun.3F
Wird der URL WebFilter lokal als Datenbank gespeichert oder Online abgefragt?
Die Datenbank die für den URL WebFilter benötigt wird ist nur Online zugänglich dh. über direkte Abfragen zum FortiGuard Service (FortiCloud). Weitere Informationen "wie" diese Abfrage genau abläuft siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie.2FWas_wird_beim_FortiGate_URL_WebFilter_genau_abgearbeitet_.28Flow.29.3F
NOTE Die Abfragen betreffend WebFilter werden in einene "Cache" geschrieben (Standard 1800 Sekunden). Es besteht die Möglichkeiten die Konfiguration des WebFilter sei es ttl, port etc. zu spezifizieren. Nachfolgender Artikel gibt Auskunft über diese Konfiguration: FortiGate-5.0-5.2:FAQ#Kann_ich_die_Konfiguration_betreffend_WebFilter_Abfragen_f.C3.BCr_FortiGuard_.28FortiCloud.29_manipulieren_.28ttl.2C_cache.2C_port.29.3F
Dies bedeutet jede Anfrage wird Online abgefragt und somit steht die WebFilter Datenbank auf einer FortiGate nicht Offline zur Verfügung. Wenn eine FortiGate aus Sicherheitsgründen über "keinen" Internet Access verfügt, gibt es die Möglichkeit einen FortiManager einzusetzen und die FortiGate so zu konfigurieren, dass dieses Ihre Abfragen direkt zum FortiManager sendet. Der FortiManager selber stellt die WebFilter Datenbank lokal diesen Devices zur Verfügung. Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiManager-5.0-5.2:FAQ#FNDN_.28Fortinet_Distribution_Network.29
Kann ich die Konfiguration betreffend WebFilter Abfragen für FortiGuard (FortiCloud) manipulieren (ttl, cache, port)?
Die WebFilter Abfragen werden Online in den FortiGuard Service (FortiCloud) gesendet. Nachfolgender Artikel gibt Auskunft "was" genau durchgeführt wird und "welche" Informationen in den FortiGuard Service gesendet wird:
FortiGate-5.0-5.2:FAQ#Wie.2FWas_wird_beim_FortiGate_URL_WebFilter_genau_abgearbeitet_.28Flow.29.3F FortiGate-5.0-5.2:FAQ#Was_wird_bei_der_URL_WebFilter_abfrage_in_die_FortiClouad_.28FortiGuard.29_mitgegeben_und_abgefragt.3F
Wenn man diese Konfiguration betreffend zB port, ttl, cache verändern möchte steht über die Kommandozeile folgende Optionen zur Verfügung:
# config webfilter fortiguard
# set cache-mode [ db-ver | ttl; Standard ttl]
# set cache-prefix-match [enable | disable]
# set cache-mem-percent [Prozent vom Memory 1 - 15; Standard 2]
# set ovrd-auth-port-http [Spezifiziert den auth Port HTTP; Standard 8008]
# set ovrd-auth-port-https [Spezifiziert den auth Port HTTPS; Standard 8010]
# set ovrd-auth-port-warning [Spezifiziert den warning Port; Standard 8020]
# set ovrd-auth-https [enable | disable]
# set warn-auth-https [enable | disable]
# set close-ports [enable | disable]
# set request-packet-size-limit [Grösse des Packetes für Fragmentation; Standard 0]
# set ovrd-auth-hostname [Setze den Hostname der in FortiGuard übermittelt wird]
# set ovrd-auth-cert [Definiert Zertifikat für HTTPS; Standard "Fortinet_Firmware"]
# end
NOTE Wird der "cache-mode" auf "ttl" gesetzt gilt folgendes: Die entsprechende Abfrage betreffend einer
Rule wird gelöscht nach Ablauf des Wertes "ttl" das unter FortiGuard gesetzt wird:
# config system fortiguard
# set webfilter-cache-ttl 3600
# end
Wird der "cache-mode" auf "db-ver" gesetzt wird eine Datenbank angelegt in der Grösse von vom
Wert "cache-mem-percent". Die Abfragen betreffend WebFilter verbleiben in der Datenbank bis
die WebFilter Datenbank in FortiGuard geändert wird oder der Eintrag über FortiGuard verändert
wird (force).
Was wird bei der URL WebFilter abfrage in die FortiClouad (FortiGuard) mitgegeben und abgefragt?
Bei der Abfrage wird "nur" der Domain Name abgefragt. Dies bedeutet über Port 53 oder Port 8888 wird in Clear-Text jedoch "verschleiert" (obfuscated) folgendes übertragen:
• FortiGate Serien Nummer
• FortiGate Source IP Adresse
• Website Komplette URL, inkl. Schema, Hostname und Pfad
NOTE Ob eine FortiGate über Port "53" oder Port "8888" ein Abfrage durchführt kann folgendermassen
konfiguriert werden:
# config system fortiguard
# set port [ 53 | 8888]
# end
Desweiteren kann die Abfrage selber des WebFilters in die FortiGuard definiert werden. Nachfolgender
Artikel gibt Auskunft über diese Konfiguration:
FortiGate-5.0-5.2:FAQ#Kann_ich_die_Konfiguration_betreffend_WebFilter_Abfragen_f.C3.BCr_FortiGuard_.28FortiCloud.29_manipulieren_.28ttl.2C_cache.2C_port.29.3F
Ausser den oben aufgelisteten Informationen werden keine zusätzlichen Informationen übertragen. Es obliegt dem Applikations Entwickler "sensitive" Informationen "nicht" in der URL mitzugeben!
Traffic betreffend URL WebFilter wird blockiert obwohl FortiGuard und/oder URL WebFilter lizensiert ist?
Wenn URL WebFilter regulär lizensiert ist über FortiGuard und/oder einzel Lizenz kann es vorkommen, dass der Traffic durch den WebFilter -obwohl erlaubt- blockiert wird! Dieser Umstand "kann" im Zusammenhang stehen mit der Erreichbarkeit des Service dh. in folgenden Situation wird der Traffic blockiert wenn nicht eine entsprechende Konfiguration durchgeführt wurde:
-> FortiGuard Service ist ausgelaufen und der neue anhängende Service Vertrag noch nicht aktiviert!
-> FortiGuard Service ist vorübergehend nicht erreichbar!
-> FortiGaurd Service Verifizierung durch die FortiGate steht auf "Unreachable" oder "nicht korrektes Datum"
-> FortiGate Sysem DNS Server sind nicht korrekt konfiguriert oder antworten nicht!
NOTE In diesem Zusammenhang wird empfohlen folgender Artikel einzusehen:
Fortinet:FortiCare-FortiGuard#Die_Registrierung_FortiCare.2FFortiGuard_ist_auf_der_Fortigate_nicht_ersichtlich.2C_was_kann_ich_tun.3F
Wenn es zu Störungen kommt im Service von Fortinet in FortiGuard (FortiCloud) wird per Standard alle Anfragen -da unbeantwortet- geblockt. Es wird empfohlen folgende Position zu aktivieren um diesem Umstand entgegenzutreten:
UTM Security Profiles > Web Filter > Profile > [Wähle das entsprechende Profile] > Advanced Filter > Allow Websites When a Rating Error Occurs
NOTE Wird dieser Konfigurationspunkt aktiviert und eine Anfrage wird in dem FortiGuard
Service mit einem "error" beantwortet zB weil der Service Momentan nicht erreichbar
ist, wird die URL erlaubt. Ist diese Position nicht aktiviert werden sämtliche URL's
geblockt.
Wie kann ich über URL WebFilter den Zugriff auf "Anonymous Proxy" verhindern?
Dies kann im entsprechenden WebFilter Profile über die folgende Kategorie durchgeführt werden
Security Profiles > WebFilter > [Wähle das entsprechende Profile] > [Aktiviere FotriGuard Categories]
Potentially Liable > Proxy Avoidance > [Rechte Maustaste > Block]
Datei:Fortinet-1122.jpg
Setze diese Kategorie auf "Block" und die "Anonymous Proxy's" werden geblockt!
Wie finde ich über URL WebFilter Funktion heraus welche Web Sites durch die User aufgerufen wurden?
Um herauszufinden welche Web Sites/URL die User benützen etc. muss ein "Monitoring" eingerichtet werden. Dazu ist folgendes innerhalb des WebFilter's zur berücksichtigen:
Kategorie auf > Block Zugriff nicht erlaubt; Ein Log Eintrag wird erstellt
Kategorie auf > Allow Zugriff erlaubt: Kein Log Eintrag wird erstellt
Kategorie auf > Monitor Zugriff erlaubt; Log Eintrag wird erstellt
Kategorie auf > Warning Uigroff eröaibt: Log Eintrag wird erstellt
Kategorie auf > Authenticate Zugriff erlaubt sofern Authentifizierung: Log Eintrag wird erstellt
Aus der obigen Liste wird dadurch klar, dass alle Kategorien die auf "Allow" stehen für einen entsprechenden Log Eintrag auf "Monitor" gesetzt werden müssen. Durch diese Konfiguration werden "sämtliche" Sites/URL geloggt. Damit dieses WebFilter Profile angewendet wird muss dieses in der entsprechenden Firewall Policy Rule aktiviert werden. Dazu führe folgendes aus:
Policy > Policy > Policy > [Wähle die entsprechende Firewall Policy]
Datei:Fortinet-1123.jpg
Nun kann die Konfiguration getestet werden. Nach einem Zugriff sind die Site's/URL unter folgender Position ersichtlich
Log&Report > Security Log > Web Filter
NOTE Damit die Logs einwandfrei unter der genannten Position ersichtlich sind müssen die Log Settings
einwandfrei konfiguriert werden. Weitere Informationen dazu siehe nachfolgende Artikel:
FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
Das Security Log basiert auf der Option "extended-utm-log". Diese Option existiert für FortiOS 5.2
nicht mehr. Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
Wie kann ich betreffend URL Filtering eine Website (URL) bei Fortinet Re-Kategorisieren lassen?
Wenn in einer entsprechenden Firewall Policy ein WebFilter aktiviert ist und ein User eine Site/URL aufruft wird diese Site/URL über FortiGuard überprüft. Handelt es sich um eine Site/URL die nicht Kategorisiert ist fällt diese innerhalb der FortiGate Kategorien unter "Unrated". Wenn nun diese Site/URL Kategorisiert werden möchte in FortiGuard oder eine Site/URL Re-Kategorisiert werden soll wähle folgenden Link:
http://www.fortiguard.com/static/webfiltering.html
Wähle dort den den folgenden Menüpunkt und gebe dort die gewünschte Site/URL ein mit deren FQDN:
Datei:Fortinet-1124.jpg
Nach der Ausführung wird das entsprechende Resultat angezeigt dh. in welcher Kategorie sich die Site/URL befindet. Möchte man nun einen Anfrage für eine Kategorisierung/Re-Kategorisierung absetzen wähle am ende der Seite die endsprechenden Felder aus
Datei:Fortinet-1125.jpg
Jede Anfrage sollte innerhalb von 24 Stunden beantwortet werden. Als Bestätigung erhält man ein E-Mail (Beispiel sieh unten):
Von: FortiGuard Web Filtering Service [1] Dear Fortinet customer, The website(s) you submitted below has been reviewed and updated: Submission Date: Thu, 5 Apr 2012 12:08:11 -0700 URL: http://baeurer.de/ Suggested Category: Information Technology Customer Comment: Baeurer is a ERP wending company and not developing freeware downloads to the internet. Please re-categorize. Updated Category: Information Technology Update Date: Thu, 5 Apr 2012 19:21:01 -0700 If the suggested category does not meet your expectation, kindly contact us through http://www.fortiguard.com/contactus.html, our Web Filtering team would be happy to assist you. Note that FortiGuard Web Filtering Service categorizes websites, but it is your IT manager who decides what categories to block or allow. Therefore, if you would like access to the site, please contact your IT manager. The rating update may not be effective immediately on your network because of the Web filtering cache. If you would like to have the update effective immediately, please contact your network administrator. Thank you for using FortiGuard Web Filtering Service. Regards, FortiGuard Web Filtering Service Fortinet Inc.
Wo sehe ich das "rating" einer einzelnen Seite betreffend URL Filtering?
Es gibt zwei Möglichkeiten das Rating einer einzelnen Seite betreffend WebFiltering zu überprüfen dh.
Uebers Mgmt. Web Interface:
FortiOS 5.0
UTM Profiles > Web Filter > Rating Overrides > Create New > Lookup Rating
FortiOS 5.2
Security Profiles > Advanced > Web Rating Overrides > Create New > Lookup Rating
FortiGuard Seite:
http://www.fortiguard.com/static/webfiltering.html
Datei:Fortinet-1124.jpg
NOTE Wenn eine Seit Kategorisiert/Re-Kategorisiert werden soll steht am ende der Seite diese
Funktion zur Verfügung. Weitere Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_betreffend_URL_Filtering_eine_Website_.28URL.29_bei_Fortinet_Re-Kategorisieren_lassen.3F
Wie kann ich den Zugriff über die URL WebFilter Funktion auf "Streaming Medias" verhindern?
Dies kann über die folgende "Web Filter" Kategorie konfiguriert werden:
Bandwidth Consuming > Streaming Media and Download
Internet Radio and TV
Datei:Fortinet-1126.jpg
Wie kann ich im Zusammenhang mit dem URL WebFiltering ein "whitelisting" und/oder "blacklisting" konfigurieren?
Wenn man ein WebFilter konfiguriert so ist es empfehlenswert ein sogenanntes "whitelisting/blacklisting" zu konfigurieren. Dies bedeutet lokale Kategorien zu benutzen (whitelisting/blacklisting) um Seiten in der FortiGuard Kategorie "lokal" neu zu Kategoriesieren. Ist zB eine Site wie www.also.ch in der FortiGuard Kategorie "Business" und die Kategorie "Business" ist geblockt, kann anstelle der ganze Kategorie auf "Allow" zu setzen, nur die entsprechende Seite in die lokale Kategorie "whitelisting" verschoben werden (Override). Dadurch bleibt die Kategorie "Business" geblock ausser die Seite www.also.ch die sich in der erlaubten Kategorie "whitelisting" befindet. Im Standard WebFilter existieren bereits zwei "lokale" Kategorien dh. "custom1/2".
UTM Security Profiles > Web Filter > Profile > [Wähle ein entsprechendes Profile] > [Aktiviere "FortiGuard Categories" > Local Categories
Datei:Fortinet-620.jpg
Diese zwei bestehenden Kategorien können unbenannt oder gelöscht werden:
# config webfiler ftgd-local-cat
# delete custom1
# delete custom2
# end
NOTE Die Kategorien unter "Local Categories" können nur gelöscht werden wenn diese keine URL's enthalten
sowie der WebFilter im Gesamten nicht in Benutzung ist! Es ist nicht möglich die Kategorien über das
WebInterface zu löschen dh. dies ist nur über CLI durchführbar.
Um die Kategorien umzubenennen führe folgendes durch:
# config webfiler ftgd-local-cat
# rename custome1 to whitelist
# rename custome2 to blacklist
# end
Um neue Kategorien zu erstellen führe folgendes auf der CLI durch:
# config webfiler ftgd-local-cat
# edit whitelist
# next
# edit blacklist
# end
Sobald die Kategorien erstellt wurden können diese mit der entsprechenden Aktion versehen werden wie zB Allow oder Block etc.:
whitelist > Allow oder Monitoring
blacklist > Block
Datei:Fortinet-623.jpg NOTE Wenn innerhalb des WebFiltes eine Site/URL zB nicht Kategorisiert ist oder man die Seite/URL bei Fortinet Re-Kategorisieren lassen will, kann dies über die FortiGuard Seite als Anfrage abgesetzt werden. Weitere Informationen zu diesem Vorgang siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_betreffend_URL_Filtering_eine_Website_.28URL.29_bei_Fortinet_Re-Kategorisieren_lassen.3F
Wenn nun eine Seite im WebFilter existiert man diese jedoch "lokal" Re-Kategorisieren will muss ein "Override" konfiguriert werden. Wähle dazu:
FortiOS 5.0
UTM Security Profiles > Web Filter > Rating Overrides
FortiOS 5.2
Security Profiles > Advanced > Web Rating Overrides
Datei:Fortinet-621.jpg
Datei:Fortinet-622.jpg NOTE Ueber das "Lookup Rating" kann die Standard Kategorisierung der URL abgefragt werden! Dies dient ebenfalls als Anhaltspunkt in welcher Kategorie sich die URL innerhalb des URL WebFilters befindet!
Kann ich für einen Webfilter betreffend "Local Category" eine Authentifizierung (authenticate) über Active Directory (LDAP) konfigurieren?
Ja, dies ist möglich! Als Basis für die Konfiguration eine "lokale" Kategorie erstellt analog "whitelisting/blacklisting" zB mit dem Namen "authenticate". Dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F
Danach wird ein Active Directory (LDAP) auf der FortiGate konfiguriert und eingebunden. Dieses Active Directory (LDAP) wird benutzt in einer Gruppe die benutzt wird für die "lokale" Kategorie "authenticate". Wie ein Active Directory (LDAP) konfiguriert wird sowie die genannte Gruppe siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F
Wenn die "lokale" Kategorie erstellt wurde sowie die Gruppe die auf das Active Directory (LDAP) verweist öffne den entsprechenden WebFilter und führe folgendes durch:
UTM Security Profiles > WebFilter > [Wähle das entsprechende Profile] > FortiGuard Categories
Datei:Fortinet-721.jpg
NOTE Sobald die entsprechende "Local Category" auf "Authenticate" gesetzt wird erscheint ein entsprechendes
Pop-Up indem die entsprechende Gruppe mit der Active Directory Einbindung konfiguriert werden kann.
Ebenso kann ein "Warning Interval" definiert werden der dem User in Erinnuerung ruft, dass er diese
Seite über eine "Authentifizierung anschaut:
Datei:Fortinet-722.jpg
Wie funktioniert betreffend WebFilter der "DNS Inspection Mode"?
Die WebFilter Funktion für eine FortiGate kann unter FortiOS 5.0 / 5.2 betreffend "Inspection Mode" in 3 verschiedene Modi gesetzt werden:
Proxy Mode
Flow Mode
DNS Mode
Neu unter FortiOS 5.0 / 5.2 ist der "DNS Inspection Mode". Wenn dieser aktiviert ist muss folgende Voraussetzungen gegeben sein:
Als DNS Server unter nachfolgender Position muessen die "FortiGuard" Server definiert werden:
System > Network > DNS > DNS Settings > Use FortiGuard Servers
Wenn dies gegeben ist werden die DNS Anfragen auf der FortiGate "Transparent" abgefangen und über die FortiGuard DNS Server aufgelöst sowie dessen Ratings abgefragt. Der Vorteil dieses Modi ist, dass ebenfalls für SSL (HTTPS) der WebFilter genutzt werden kann ohne ein Zertifikat auf dem Client einzuspielen (SSL Deep Inspection) da die WebFilter Funktion rein auf DNS Abfragen und deren Ratings basiert (CN = Common Name). Der Nachteil dieser Funktion liegt im "delay" dh. die Abfragen an die FortiGuard Server benötigen Ihre Zeit. Dennoch ist dieser Mode eine gute Alternative "ohne" Zertifikate auf den Clients SSL (HTTPS) basierende Seiten über den WebFilter zu kontrollieren.
NOTE Wenn dieser Mode getester werde möchte, muss der Device über die entsprechende Subscription sowie ordnungsgemäss
registriert sein (ersichtlich im Dashboard). Nur dann ist man berrechtigt die "FortiGuard DNS Server" zu benutzen. Die
Clients selber müssen nicht mit den "FortiGuard DNS Server konfiguriert" werden. Wenn Tests durchgeführt werden auf den
Clients sollte der "DNS Cache" vorgängig gelöscht werden anhand des folgenden Kommandos:
"ipconfig /flushdns"!
Ein weiterer Nachteil liegt in der eingeschränkten Funktion dh. wenn dieser "DNS Mode" benützt wird stehen folgende Funktionen nicht zur Verfügung:
• Quotas
• WebFilter Kategorien die auf "Warning oder Authenticate" gesetzt sind
• Safe Search
• URL only scanning für HTTPS
• Advanced Filter Optionen wie:
- web content filtering
- web resume download blocking
- blocking invalid URLs
- HTTP post action options
- Java applet filtering
- ActiveX filtering
- cookie filtering
- image rating
- allowing websites when a rating error occurs
- blocking HTTP redirects by rating
Fortinet hat im Juli 2013 sogenannte "Supplementary Recipes" Dokumente released was einem Teilbereich des "Cookbook's" entspricht. Dazu gehört ebenfalls ein Dokument das zeigt wie man diesen "DNS Inspection" Mode konfiguriert:
Datei:FortiGuard DNS web filtering.pdf
Wie schalte ich für WebFilter auf einer FortiGate das Extended-UTM-Log ein?
Per Standard werden WebFilter Events im regulären Log geloggt dh. Traffic Log. Nun möchte man die Events separiert in einem Log loggen kann dies durch das sogenannte "Extended-UTM-Log" erreicht werden. Im WebFilter Profile selber stehen verschiedene Log Optionen neben dem "Extended-UTM-Log" zur Verfügung. Um das "Extended-UTM-Log" zu aktivieren und die vers. Funktionen führe folgendes durch:
NOTE Die Option "extended-utm-log" steht unter FortiOS 5.2 nicht mehr zur Verfügung. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
# config webfilter profile
# edit [Gebe das entsprechende Profile an]
# config web
# log-search [enable | disable]
# end
# set extended-utm-log [enable | disable]
# set log-all-url [enable | disable]
# set web-content-log [enable | disable]
# set web-filter-command-block-log [enable | disable]
# set web-filter-cookie-log [enable | disable]
# set web-filter-applet-log [enable | disable]
# set web-filter-jscript-log [enable | disable]
# set web-filter-js-log [enable | disable]
# set web-filter-vbs-log [enable | disable]
# set web-filter-unknown-log [enable | disable]
# set web-filter-referer-log [enable | disable]
# set web-filter-cookie-removal-log [enable | disable]
# set web-url-log [enable | disable]
# set web-invalid-domain-log [enable | disable]
# set web-ftgd-err-log [enable | disable]
# set web-ftgd-quota-usage [enable | disable]
# end
NOTE Es ist zu verifizieren "was" alles aktiviert werden sollte. Um ein Grundlogging für WebFilter
zu aktivieren sollten folgende Optionen aktiviert werden:
# set extended-utm-log enable
# set log-all-url enable
# set web-url-log enable
# set web-ftgd-err-log enable
Sobald das "Extended-UTM-Log" aktiviert wurde kann -sofern gewünscht- das UMT Monitoring aktiviert werden:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
Wie bedeutet der Konfigurationspunkt "Web Overrides" innerhalb der Web Filter Funktion?
Nun diese Funktion steht neu ab FortiOS 5.0.4 / 5.2 zur Verfügung und bedeutet nichts anderes, als das man einen bestehenden WebFilter anhand eines definierten Users, Gruppe oder Source IP und anhand eines "neuen" WebFilter -für eine bestimmte Zeit- überschreiben (Override) kann. Dies bedeutet: Es kann eine Zeitliche Expiration konfiguriert werden dh. um den Override zeitlich zu limitieren. Dadurch können zeitliche Ausnahmen auf User, Gruppe oder Source IP konfiguriert werden. In der Firewall Policy wird nicht das WebFilter Profil für den "Override" benutzt sondern das Orginale (Beispiel: webfilter-http.local.intra). Wenn wie im unteren Beispiel gezeigt ein "Override" existiert für die IP "192.168.1.2" und in der Firewall Policy Rule das Orginal Profile (webfilter-http.local.intra) konfiguriert wurde, wird nicht dieses angewendet sondern das definierte Profile unter der Positon "New Profile" sofern der "Override" Zeitlich noch gültig ist dh. in unserem Beispiel "webfilter-http-override.local.intra":
NOTE Unter FortiOS 5.2 wurde die Positon des "Override's" verschoben und ist nun neu unter
folgender Position zu finden:
Security Profiles > Advanced > Web Profile Overrides
Datei:Fortinet-806.jpg
Wie funktioniert der HTTPS scan innerhalb des WebFilter wenn "Deep Inspection" nicht aktiviert ist (Scan Encrypted Connections / HTTPS URL Scan Only)?
Grundsätzlich gilt auf einer FortiGate, wenn "Deep Inspection (Deep Scan)" aktiviert ist (Aufbrechen der SSL Verbindung), dass auf dem Client das entsprechende FortiGate Zertifikat installiert werden muss (Grundvoraussetzung). Diese Art eine SSL Verbindung aufzubrechen ist auch bekannt als "man of the middle". Dies bedeutet wiederum, dass wenn "kein" entsprechendes Zertifikat der FortiGate auf dem Client installiert ist, "Deep Inspection" nicht benutzt werden kann und somit SSL Verbindungen nicht aufgebrochen werden können (Gilt für ALLE UTM Features). Eine Alternative ist die im WebFilter aufgeführt Option "Scan Encrypted Connections". Wenn diese Option "nicht" aktiviert ist -und über CLI die Option "set options https-url-scan enabled" im WeFilter Profile aktiviert ist- wird im Hintergrund folgendes durchgeführt:
NOTE Unter FortiOS 5.2 existiert die Option innerhalb des WebFilters "Scan Ecrypted Connections" sowie in der CLI "https-url-scan" nicht mehr. Dies bedeutet unter FortiOS 5.2 wird die Art und Weise welche Variante benutzt wird dh. "Deep Inspection" oder "HTTPS URL Scan Only" nicht im WebFilter Konfiguriert sondern über ein entsprechendes "SSL Protocol Options". Unter FortiOS 5.2 wird ein "SSL Protocol Option" unterschieden zwischen "Certificate Inspection" und "Deep Inspection". Weitere Informationen dazu siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
1. Im "TLS Handshake" der Verbindung wird der Hostname des Server Namens innerhalb der "Client Hello"
Message herausgefiltert (CN = Common Name). Weitere techische Informationen zu diesem Vorgang siehe
nachfolgenden Link:
FortiGate-5.0-5.2:FAQ#Was_ist_im_Allgemeinen_der_Unterschied_zwischen_.22SSL_Certificate_Inspection.22_und_.22Full_SSL_Inspection.22.3F
2. Wenn ein gültiger Hostname innerhalb Position 1. herausgefiltert werden kann, ist dieser Hostname
Basis für die Abfrage für die FortiGuard WebFilter Kategorien.
3. Wenn kein gültiger Hostname herausgefiltert werden kann innerhalb Position 1. wird ein CN (Common Name)
basierende Ueberprüfung durchgeführt dh. es wird der CN Name des Zertifikats benützt für die Abfrage
für die FortiGuard Webfilter Kategorie.
NOTE Bis FortiOS 5.0.2 wurde innerhalb der im WebFilter zur Verfügung stehenden Funktion (HTTPS Scan only)
ausschliesslich Punkt 3. durchgeführt. Ab FortiOS 5.0.3 wurde die Erweiterung unter Punkt 1. und 2.
implementiert.
4. Wenn die Option "block-invalid-hostname" innerhalb des WebFilters aktiviert ist und Punkt 3. trifft zu so
wird die Seite geblockt und ein entsprechender Log Eintrag wird erstellt.
5. Desweitere ist zur berücksichtigen: Dem Client wird das orginal Zertifikat des Servers -sofern die Seite
über die WebFilter Kategorie erlaubt ist- auf dem Client angezeigt. Wenn die Seite über WebFilter Kategorie
nicht erlaubt ist, wird das Zertifikat in der "blocked" Nachricht, die FortiGate in so einem Fall ausgiebt,
angezeigt. Dies ist ebenso technisch gesehen ein Beweis das kein "deep scan" ausgeführt wird, denn ansonsten
würde das FortiGate Zertifikat dem Client präsentiert und nicht das original Zertifikat (man in the middle).
Diese "block" Nachricht ist effektiv eine "Replacement Message". Möchte man diese deaktivieren so ist folgendes
Kommando auszuführen:
# config webfilter profile
# edit [Name des entsprechenden Profiles]
# set https-replacemsg disable
# end
# end
Wenn diese "https-replacemsg" deaktiviert wird so wird dem User ein zB "Self-sign" Zertikat zur Bestätigung
angezeigt und der User kann dies Bestätigen.
Wie das "HTTPS URL Scan Only" ("Scan Encrypted Connections" ist deaktiviert) konfiguriert wird zeigt folgender Artikel;
FortiGate-5.0-5.2:FAQ#Wie_wird_das_.22Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.22_ohne_.22Deep_Inspection.22_konfiguriert.3F
Wie wird das "Scan Encrypted Connections / HTTPS URL Scan Only" ohne "Deep Inspection" konfiguriert?
Fortinet hat ein Dokument Released für FortiOS 5.0, dass erklärt wie das "HTTPS UTL Scan Only" (Option "Scan Encrypted Connections" ist deaktiviert) konfiguriert wird. Dieses ist kurz und einfach gestaltet und zeigt das Wesentliche:
NOTE Unter FortiOS 5.2 exisitert die Option "https-url-scan" nicht mehr. Die Funktion "HTTPS URL Scan Only" wird unter FortiOS 5.2 über die "SSL Protocol Options" konfiguriert als "certificat-inspection" Weitere Auskunft über die Funktionsweise von "HTTPS URL Scan Only" für FortiOS 5.0 sowie FortiOS 5.2 zeigt nachfolgender Artikel: FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
FortiOS 5.0 Only
Datei:FortiOS.HTTPS.Webfiltering.without.SSL.Deep.Scan.pdf
Wie kann ich innerhalb eines WebFilters einen bestimmten "MIME" Type (zB Audio) blockieren (Content-Header)?
Ein WebFilter ist von Hause aus auf einer FortiGate Domainen/URL basierend dh. die FortiGate merkt von sich aus nicht ob zB ein Audio Streaming und/oder Video Streaming durchgeführt wird. Die FortiGate überprüft die Domaine/URL und lässt diese zu oder blockiert diese. Ebenfalls kann die FortiGate zB betreffend Antivirus Scanning nicht diese Streams ignorieren, denn von sich aus erkennt die FortiGate nicht, dass es sich um einen Audio resp. Video Stream handelt und versucht diesen zu scannen. Dies resultiert in einer höheren Auslastung im Memory (data buffering) obwohl dieses Antivirus Scanning nichts bringt. Aus diesem Grund ist es/kann es Sinnvoll sein "MIME" basirend der FortiGate diese Aufgaben klar mitzuteilen resp. zB Audio und/oder Video Stream's vom Scanning auszuschliessen. Nachfolgendes Beispiel zeigt wie über die Funktion "Content-Header" innerhalb eines WebFilters "Audio und/oder Video Streams geblockt" werden können sowie "Antivirus Scanning deaktiviert wird für Audio und/oder Video Streams":
NOTE Unter FortiOS 5.2 steht die "MIME" Konfiguration wie gewohnt zur Verfügung und kann so -wie nachfolgende erklärt- konfiguriert werden. Neu unter FortiOS 5.2 ist das in den "Protocol Opton's" eine neue Option zur Verfügung steht "streaming-content-bypass" die Audio und/oder Video ausschliesst. FortiGate-5.0-5.2:FAQ#Kann_ich_.C3.BCber_den_.22MIME.22_Header_eine_bestimmte_Applikation_vom_Antivirus_Scanning_ausschliessen.3F
Um zu unterschieden "um was es sich handelt" kann der "MIME" Header (Multipurpose Internet Mail Extensions) analysiert werden um einen "Content-Header" zu konfigurieren der wieder zuständig ist diese "MIME" Header zu erkennen und eine bestimmte Aufgabe zB Deaktivierung von Antivirus Scanning (exempt), zu konfigurieren. Nachfolgendes Beispiel zeigt auf wie zB Audio vom Antivirus Scanning ausgenommen wird sowie über WebFilter Video blockiert wird. Als Basis dazu muss der Stream mit WireShark selber im Sniffer Modus analysiert werden um den "MIME" Type herauszufinden. Eine andere Möglichkeit ist die "Capture" Funktion auf der FortiGate zu nuzen. Die "Capture" Funktion sowie die Möglichkeit Filter zu setzen findet man auf einer FortiGate unter folgender Position:
System > Network > Packet Capture
NOTE Unter FortiOS 5.2 steht die "Capture" Funktion für kleinere Geräte nicht mehr zu Verfügung.
Diese Einschränkung steht im Zusammenhang mit dem Umstand, dass bei kleinen Geräten unter
FortiOS 5.2 das Disk Logging deaktiviert wurde. Weitere Informationen siehe nachfolgenden Link:
FortiGate-5.0-5.2:FAQ#Packet_Capture
Dieses "Capture" File kann in WireShark eingelesen und analysiert werden dh. man sieht darin den enthaltenen "MIME" Header des Streams und/oder Files. Nachfolgend ein Beispiel basierend auf YouTube. In diesem Beispiel sieht man den "Content-Type" der den "MIME" Header darstellt:
Hypertext Transfer Protocol
HTTP/1.0 200 OK\r\n
Request Version: HTTP/1.0
Response Code: 200
Server: DCLK-AdSvr\r\n
Content-Type: video/x-ms-asf\r\n
X-Google-Inred-Content-Type: video/x-ms-asf\r\n
Content-Length: 410\r\n
Content-Encoding: gzip\r\n
Hypertext Transfer Protocol
HTTP/1.1 200 OK\r\n
Request Version: HTTP/1.1
Response Code: 200
Last-Modified: Mon, 14 Sep 2009 00:40:51 GMT\r\n
Content-Type: video/x-flv\r\n
Content-Length: 200994\r\n
Connection: close\r\n
Content-Disposition: attachment; filename="video.flv"\r\n
Expires: Thu, 29 Oct 2009 09:06:24 GMT\r\n
Cache-Control: public,max-age=3600\r\n
Date: Thu, 29 Oct 2009 08:06:24 GMT\r\n
Server: gvs 1.0\r\n
Als nächstes muss im WebFilter ein "Content-Header" konfiguriert werden. Dazu wird "Regular Expression" (RegEx) benutzt um verschiedenen "Content-Type's" in der gleichen Kategorie abzudecken dh. unser "Content-Type" in unserem Beispiel wäre:
Content-Type: video/x-ms-asf\r\n
Content-Type: video/x-flv\r\n
Natürlich kann genau dieser "Content-Type" als zB "video/x-ms-asf\r\n" abgedeckt werden da wir jedoch "alle" Video's abdecken möchten benutzen wir anhand "Regular Expression" folgendes:
Folgendes ist im "Content-Type" enthalten:
video/x-flv\r\n
video/x-ms-asf\r\n
Wir möchten alle Videos abdecken dh. alles was "nach" Video kommt soll über RegEx abgedeckt werden. Die
im "Content-Type" enthaltenen Endungen dh. zB .ms, .asf sollen ebenfalls abgedeckt werden. Somit ergiebt
sich folgendes:
video\\/.*
NOTE Das Zeichen "/" stellt im RegEx ein Sonderzeichen dar und muss "escaped" werden dh. es muss speziell
markiert werden als Sonderzeichen. Dies wird mit der Kombination "\\" durchgeführt und bedeutet nichts
anders als "Achtung jetzt kommt ein Sonderzeichen"!
Möchte man im "Content-Type" ebenfalls "audio" abdecken wäre dies:
audio\\/.*
Daraus resultierend ergiebt sich folgendes Kommando für den "Content Header" im WebFilter:
# config webfilter content-header
# edit [Gebe einen Integer an zB "1"]
# set comment [Setze einen Kommentar zB "block video exempt audio"]
# config entries
# edit "video\\/.*"
# set action block
# next
# edit "audio\\/.*"
# set action exempt
# next
# end
# set name [Setze einen Namen für den "Content-Header" zB "block-video-exempt-audio"]
# next
# end
NOTE Unter der Position "action" kann folgendes konfiguriert werden und hat folgende Bedeutung:
allow — Erlauben des zutreffenden Content's.
block — Blocken des zutreffenden Content's.
exempt — Ausschliessen des zutreffenden Content's.
Zusätzlich zu der Option "action" kann ebenfalls die Kategorie mit folgenden Befehl gesetzt werden:
# set category [Gebe die entsprechende Kategorie an; Gebe "?" an um die Kategorien aufzulisten]
Der "Content-Header" ist konfiguriert. Jetzt muss dieser einem entsprechenden "WebFilter Profile" hinzugefügt werden:
FortiOS 5.0 / 5.2
# config webfilter profile
# edit [Wähle den Namen des entsprechenden WebFilter Profiles]
# config web
# set content-header-list 1
# end
# next
# end
FortiOS 4 MR3
# config webfilter profile
# edit [Wähle den Namen des entsprechenden WebFilter Profiles]
# config http
# set options contenttype-check
# end
# config web
# set content-header-list 1
# end
# next
# end
Wie kann ich innerhalb eines WebFilters einzelne Sites/Kategorien vom "Deep Inspection" ausschliessen?
Wenn auf einer FortiGate das Ordnungsgemässe "Deep Inspection" konfiguriert ist dh. auf dem Client/Workstation wird das Zertifikat der FortiGate importiert stellt sich die Frage "wie" man innerhalb eines WebFilter's der "Deep Inspection" benutzt HTTPS Seiten von dieser Funktion ausschliesst. Dieser Ausschluss kann über eine eigenen "lokale" Kategorie durchgeführt werden. Wie man so eine "lokale" Kategorie erstellt zB "exempt-ssl" siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F
Ausgehend davon das durch obenen Artikel eine eigene Kategorie unter "Local Categories" erstellt wurde zB "exempt-ssl" und diese als "allow" konfiguriert wurde kann nun folgendes durchgeführt werden:
NOTE Unter FortiOS 5.2 steht die Option "exempt-ssl" für "config ftgd-wf" nicht mehr zur Verfügung. Der Grund dafür ist, dass diese Funktion direkt in den "SSL Protocol Options" konfiguriert werden kann. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
# config webfilter profile
# edit [Name des entsprechenden Profiles]
# config ftgd-wf
# set exempt-ssl [ID der entsprechenden Kategorie]
# end
# end
NOTE Wenn mehrer Kategorien angegeben werden sollen führe diese nacheinander
auf mit einem Leerschlag dazwischen dh. zB:
143 120 20
Es können ebenfalls reguläre resp. standard Kategorien des WebFilters komplett
mit deren ID angegeben werden und somit ausgeschlossen werden von der Funktion
der "SSL-Inspection". Ebenso steht die Option "all" zur Verfügung!
Um die ID der entsprechenden "Local Category" rauszufinden benütze folgenden Befehl:
# config webfiler ftgd-local-cat
# edit [Gebe den Namen der entsprechenden Local Category an zB "exempt-ssl"]
# get
desc : exempt-ssl
id : 143
# end
Was bedeutet innerhalb eines WebFilter Profiles die Position "YouTube Education Filter" und wie benutze ich diesen?
Kurz umschrieben bedeutet diese Position folgendes: "YouTube Education Filter" eine Möglichkeit für ein Unternehmen (speziell für Schulen) einen Account auf YouTube anzulegen und dort anhand des "YouTube Accounts" zu definieren "welche" YouTube Videos freigegeben sind. Zugeschnitten ist diese Funktion resp. die Art "YouTube Videos zu Filtern" auf Schulen kann jedoch auch von Enterprise Unternehmen genutzt werden. Um auf YouTube einen "Education Account" anzulegen folge nachfolgenden Link:
http://www.youtube.com/schools
Wenn man einen "Education Account" anlegt wird diese mit einem "YouTube Edu Filter" Passwort verknüpft. Dieses "Passwort" wird dann benutzt um im entsprechenden WebFilter Profile unter folgender Position den "YouTube Education Filter" zu konfigurieren:
UTM Security Profiles > WebFilter > Profile > [Wähle das entsprechende Profile] > YouTube Education Filter
Wenn man die Konfiguration in der CLI durchführen möchte wäre dies die folgenden Kommandos:
# config webfilter profile
# edit [Wähle das entsprechende Profile]
# config web
# set safe-search header
# set youtube-edu-filter-id [Setze das entsprechende Passwort für den "YouTube Education Filter"]
# end
# end
NOTE Um zu verhindern, dass dieser YouTube Education Filter umgangen wird zB mit https muss bei der
Implementierung einigen Umständen rechnung getragen werden. Im nachfolgenden Dokument von Fortinet wird
dieser Umstand beschrieben:
Datei:Setting-up-YouTube-for-Education-Fortigate.pdf
Datei:How-YouTube-for-Schools-Works-YouTube-Help.pdf
Kann ich über einen URL Filter anhand eines "referrer's" eine Seite erlauben und/oder blockieren?
Ein "referrer" auch "Verweis" ist die Information die zum Zielserver übermittelt wird wenn von einer Internetseite ein Link aufgerufen wird der auf eine andere Seite verweist. Dies bedeutet:
Angenommen, die Webseite http://www.also.ch enthält einen Link auf http://fortinet.also.ch/wiki/FortiGate-5.0-5.2:FAQ. Wenn der Benutzer diesen Link in seinem Webbrowser auswählt (anklickt), dann wird vom Browser eine Verbindung zu dem Webserver aufgebaut, der unter dem Namen fortinet.also.ch erreichbar ist, und die gewünschte Seite anfordert. In diesem Beispiel sendet der Webbrowser folgende Anforderung in der Syntax des Hypertext Transfer Protocols (RFC 2616 Hypertext Transfer Protocol HTTP/1.1): GET /wiki/FortiGate-5.0-5.2:FAQ HTTP/1.1 Host: fortinet.also.ch Referer: http://www.also.ch
Unter FortiOS 5.2 wurde die Funktion des "referrer's" zum URL Filter Funktion hinzugefügt dh. anhand diesem kann innerhalb des URL Filter eine Seite blockiert und/oder erlaubt werden. Um die Konfiguration in der Kommandline durchzuführen führe folgendes aus:
# config webfilter urlfilter
# edit [Gebe eine entsprechende ID an zB 1]
# config entries
# edit 1
# set url [Gebe eine entsprechende URL im Zusammenhang mit der Option "type"]
# set referrer-host <url>
# set type [simple | regex | wildcard]
# set action [block | allow | monitor | exempt]
# set status [enable | disable]
# end
# end
Die Konfiguration kann ebenfalls unter Web Mgmt. Interface durchgeführt werden jedoch muss der "referrer" als Funktion innerhalb des URL Filters aktiviert werden:
# config system global
# set gui-webfilter-advanced enable
# end
Danach steht die "referrer" Funktion innerhalb des URL Filter's zur Verfügung:
Security Profiles > Web Filter > Static URL Filter
Datei:Fortinet-1290.jpg
Kann ich über einen WebFilter eine Site/Domaine vom UTM Security Profiles Action wie Antivirus, DLP usw. ausschliessen?
Ja dies ist möglich und kann über den "URL Filter" als Action "exempt" konfiguriert werden. Ausgehender von folgender Firewall Policy Rule gilt folgendes:
Sequenz Source Interface Source IP Destination Interface Destination IP Action Security Profiles
1 internal all wan1 all allow Antivirus Profile
WebFilter Profile
Protocol Options
Durch diese Firewall Policy Rule und deren Security Profiles wird in erster Linie der WebFilter als Erstes kontrolliert dh. ob die aufgerufene Site für "Allow" (resp. Monitor) zugelassen ist. Ist dies der Fall, kommen andere Security Profiles zum Zuge wie zB Antivirus, DLP usw. Dies bedeutet: Obwohl eine Site im WebFilter "Allow" erlaubt ist, kann diese durch die Antivirus Funktion geblockt werden. Möchte man zB Sites vom Antivirus Scanning oder von Security Profile Aktionen ausschliessen, kann anhand eines URL Filter's und der Aktion "exempt" dies konfiguriert werden: Wähle dazu folgendes:
Security Profiles > Web Filter > Static URL Filter
Datei:Fortinet-1290.jpg
Unter URL kann nun die entsprechende Site/Domain hinzugefügt werden. Als Beispiel: Möchte man zB sämtliche Apple Site/Domain's vom Antivirus ausschliessen gibt man unter URL folgendes ein:
apple.com
Der Type kann bei diesem Beispiel auf "Simple" gesetzt werden und die Action auf "Exempt". Wenn die Action auf "Exempt" gesetzt wird kann anhand "set exempt" unter Kommandozeile folgende Optionen gesetzt werden:
activex-java-cookie ActiveX, Java, and cookie filtering.
all Exempt from all.
av Antivirus filtering.
dlp DLP scanning.
filepattern File pattern matching.
fortiguard FortiGuard web filtering.
pass Pass single connection from all.
range-block Exempt range block feature.
web-content Web filter content matching.
NOTE Wird die Action auf "Exempt" gesetzt gilt als Standard für "set exempt" folgende Optionen:
set exempt av web-content activex-java-cookie dlp fortiguard range-block all
Dies bedeutet es werden sämtliche Security Profiles resp. UTM Funktionen definiert und sind
somit ausgeschlossen resp. werden nicht durchgeführt! Somit kann durch diese Funktion eine
Site/Domain komplett vom Antivirus Scanning durch "set exempt av" ausgeschlossen werden. Wenn
dies durchgeführt wird werden sämtliche "nicht unter set exempt" definierten Security Profiles
resp. UTM Funktionen durchgeführt.
Auf der Kommandozeile kann dies folgendermassen konfiguriert werden:
# config webfilter urlfilter
# edit [Integer für Web Filter Profile zB 1]
# config entries
# edit [Gebe einen entsprechenden Integer an zB 1]
# set url [Gebe die entsprechende URL an zB apple.com]
# set type [simple | regex | wildcard]
# set action [exempt | block | allow | monitor]
# set exempt [Setze die entsprechenden ausgeschlossenen Option sofern "action exempt" gesetzt ist; av | web-content | activex-java-cookie | dlp | fortiguard | range-block all]
# set status [enable | disable]
# unset referrer-host
# end
# end
NOTE Wird innerhalb "exempt" zB "av" gesetzt wird Antivirus ausgeschlossen für diese Site. Dies ist jedoch über
Web Mgmt. Interface nicht ersichtlich, sondern dort ist nur "Exempt" ersichtlich! Aus diesem Grund ist diese
Konfiguration innerhalb einer Firewall Policy Rule nicht Transparent und Ersichtlich. Eine andere Möglichkeite
eine Site/Domaine von einem Security Profile resp. UTM Funktion auszuschliessen ist eine entsprechende Firewall
Policy Rule zu konfigurieren. Weitere Informationen dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_bestimmte_Site.2FDomain_vom_Antivirus_Scanning_ausschliessen.3F
Kann ich innerhalb eines WebFilters für zB Images und Java über FortiGuard ein Rating durchführen?
Unter FortiOS 5.0 war es nicht möglich zB Javascript und Images über FortiGuard ein Rating auszuführen dh. unter FortiOS 5.2 ist es nun möglich ein Rating auszuführen betreffend den Links die im Zusammenhang stehen für die einzelnen Funktionen wie zB Images und Java. Diese Funktion ist nur über Kommandozeile verfübar und wird folgendermassen konfiguriert:
# config webfilter profile
# edit [Name des entsprechenden Profiles]
# config ftgd-wf
# set rate-javascript-urls [enable | disable]
# set rate-css-urls [enable | disable]
# set rate-crl-urls [enable | disable]
# set rate-image-urls [enable | disable]
# end
# end
# end
Spamfilter
Wie schalte ich für eine Spamfilter auf einer FortiGate das Extended-UTM-Log ein?
Im normal Fall werden Spamfilter Events im regulären Log geloggt. Nun möchte man die Event seperiert in einem Log loggen kann dies durch das sogenannte "Extended-UTM-Log" (Nur für FortiOS 5.0) erreicht werden. Um dieses "Extended-UTM-Log" zu aktivieren führe folgendes durch:
# config spamfilter profile
# edit [Gebe das entsprechende Profile an]
# set extended-utm-log [enable | disable]
# end
NOTE Die Option "extended-utm-log" steht für FortiOS 5.2 nicht mehr zur Verfügung.
Weitere Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehen kann das "UTM Monitoring" aktiviert werden. Wie dies durchgeführt wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
Was wird im Allgemeinen im EMail/Spamfilter per Standard abgearbeitet?
Wenn ein E-Mail Filter auf einer FortiGate mit seinen aktivierten Optionen in einer Firewall Policy benutzt wird so wird bei unverschlüsselten SMTP oder verschlüsselten SMTPS Traffic -sofern der Device dies unterstützt- folgendes innerhalb des Spamfilters per STandard in folgender Reihenfolge abgearbeitet:
1. IP address black/white list (BWL) check on last hop IP (hdrip)
2. DNSBL & ORDBL check on last hop IP, FortiGuard Antispam IP check on last hop IP, HELO DNS lookup
3. MIME headers check, E-mail address BWL check
4. Banned word check on email subject
5. IP address BWL check (for IPs extracted from “Received” headers)
6. Banned word check on email body
7. Return email DNS check, FortiGuard Antispam email checksum check, FortiGuard Antispam URL check, DNSBL & ORDBL check on public IP extracted from header.
Für IMAP, POP3 und POP3S gilt folgendes:
1. MIME headers check, E-mail address BWL check
2. Banned word check on email subject
3. IP BWL check
4. Banned word check on email body
5. Return email DNS check, FortiGuard Antispam email checksum check, FortiGuard Antispam URL check, DNSBL & ORDBL check.
Wie konfiguriere ich einen DNSBL Server für den Emailfilter?
Zusätzlich zu den Standard Funktionen des Email Filters können DNSBL Server konfiguriert werden wie zB ein Server von "Spamhaus Project" (ZEN Server zen.spamhaus.org IP Blacklisting Lookup). Um so einen DNSBL Server zu konfigurieren gebe auf der CLI folgendes ein:
# config spamfilter dnsbl
# edit [Gebe einen Integer an zB "1"]
# set name [Gebe einen Namen ein zB "spamhaus"
# set comment [Gebe einen entsprechenden Kommentar ein]
# config entries
# edit [Gebe einen Integer an für den Server zB "1"]
# set action [reject | spam]
# set server [Gebe den FQDN des DNSBL Servers an zB "zen.spamhaus.org"]
# set status [enable | disable]
# end
NOTE Weitere informationen betreffend zur verfügung stehende DNSBL Server findet man nachfolgend:
zen.spamhaus.org http://www.spamhaus.org
bl.spamcop.net http://www.spamcop.net
dnsbl.sorbs.net http://www.sorbs.net
dnsbl.ahbl.org http://www.ahbl.org
Welche IP's werden im Header eines EMail durch den Spamfilter überprüft?
Nun im Header eines EMails wird der Weg der Nachricht mit der IP aufgezeigt. Die Abfolge wird vom Abschnitt "Subject" von Unten nach Oben gelesen dh. von Unten nach Oben wird der "Weg der Nachricht" augezeigt mit den IP's sowie FQDN die auf dem Weg der Uebermittlung benutzt wurden. Nun bei der Spamfilter Ueberprüfung auf einer FortiGate wird per Standard der letzte Hop betreffend seiner IP überprüft dh. ob diese in einer Spamliste geführt wird oder nicht. Ist dies der Fall, wird das Mail markiert als SPAM und zugestellt. In gewissen Situation macht es Sinn nicht nur den letzten Hop zu überprüfen sondern alle IP's die benutzt wurden für die Nachrichten Uebermittlung. Möchte man diese Option aktivieren kann dies über die Option "hdrip" durchgeführt werden. Diese Option ist per Standard deaktiviert (hdrip disable) dh. es wird nur wie bereits erwähnt der letzte Hop überprüft. Um diese Option zu aktivieren führe auf der Kommandozeile folgendes aus:
# config spamfilter profile
# edit [Wähle das entsprechende Profil]
# config smtp
# set hdrip enable
# end
# end
NOTE Die Option "hdrip" kann nur gesetzt werden wenn im entsprechenden "Email Filter" über Gui die Spam
Detection "Enable Spam Detection and Filtering" aktiviert ist. Ueber Kommandozeile wird die Spam Detection
folgendermassen aktiviert:
# config spamfilter profile
# edit [Wähle das entsprechende Profil]
# set spam-filtering enable
# end
Wenn es bei der Ueberprüfung über die Option hdrip (AntiSpam Whitelisting/Blacklisting) zu einem False Positive kommt, kann dieser nicht überschrieben werden durch eine Manuelle Konfiguration. In so einem Fall kann Fortinet kontaktiert werden! Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_IP_die_im_FortiGuard_Service_als_.22Blacklist.22_gef.C3.BChrt_wird_entfernen_lassen.3F
Wie kann ich eine IP die im FortiGuard Service als "Blacklist" geführt wird entfernen lassen?
Eine IP im Zusammenhang mit SMTP kann über folgenden Link überprüft werden ob diese im FortiGuard Service als "Blacklist" geführt wird dh. eine schlechte Reputation hat:
http://www.fortiguard.com/static/antispam.html NOTE Das entsprechende Feld befindet sich ganz am Ende der Seite! Um diese Seite zu erreichen benötigt man einen "Support Account".
Wenn die besagte IP die zur Ueberprüfung auf dieser Seite als "Blacklist" bestätigt wurde und es sich um ein False Positive handelt oder das Problem betreffend dieser IP gelöst wurde kann ein entsprechender Antrag an folgende Email Adresse gesendet werden:
removespam@fortinet.com
Bei der Uebermittlung sollten die entsprechende Information mitgegeben werden (Email in Englisch) dh. ein Antrag nur mit der Information die besagte IP zu entfernen ist Nutzlos dh. zu Empfehlen ist eine kurz Uebersicht über das Problem zu geben und die entsprechenden Eingriffe um zukünftig das Problem zu verhindern. Werden die Informationen entsprechend durchgegeben werden so wird die entsprechende IP innerhalb 24 Stunden entfernt.
Wie kann ich den ASE (Antispam Engine) auf einer FortiGate deaktivieren?
Der ASE resp. die Antispam Engine kann über folgenden Befehl deaktiviert werden:
# config system fortiguard
# set antispam-force-off [enable | disable]
# end
Dieser Befehl deaktiviert den ASE komplett auf der FortiGate!
Traffic Shaper
Wo finde ich eine Beschreibung des Traffic Shapings auf einer Fortigate?
Folgende Dokument4 geben in den verschiedenen Versionen Auskunft resp. einen guten Ueberblick über das "Traffic Shaping" auf einer Fortigate:
Datei:Fortigate-traffic-shaping-40-mr3.pdf Datei:Fortigate-traffic-shaping-50.pdf Datei:Fortigate-traffic-shaping-52.pdf
Wie kann ich für eine bestimmte Applikation garantierte Bandbreite zur Verfügung stellen?
Um einer Applikation eine garantierte Bandbreite zur Verfügung zu stellen muss auf der Fortigate eine "Traffic Shaper" Konfiguration durchgeführt werden. Die Grundlage so einer Konfiguration ist die Definition der Bandbreite der Applikation dh. die Bandbreite muss definiert werden für:
- Maximum Bandwidth
- Guaranteed Bandwidth
- Traffic Priority
NOTE Die momentane Bandbreite die benützt wird auf einem Interface wird vom FortiOS jede (1) Sekunde überprüft!
Diese Bandbreite wird unter "Firewall Objects > Traffic Shaper > Shared" für jeden Zweck/Applikation definiert. Nachträglich wird diese Definition in den Firewall Policy/Rule konfiguriert. Im nachfolgenden Beispiel nehme wir an wir hätten einen WebServer im DMZ und User im internal LAN. Da dem WebServer -für die internal User- eine wichtige Funktion zukommt, soll die Bandbreite für diesen WebServer garantiert werden. Anderer Traffic in die DMZ soll ebenfalls seine Bandbreite bekommen. Wir gehen von einem 1 GB Netzwerk aus und definieren folgende Bandbreite für den WebServer:
-> Maximum Bandwidth 16776000 entspricht 1000 MBit/s oder 1 GB
-> Guaranteed Bandwidth 204800 entspricht 200 MBit/s
-> Traffic Priority High
Un folgende Bandbreite für den restlichen Traffic im DMZ:
-> Guaranteed Bandwidth 102400 entspricht 100 MBit/s
-> Traffic Priority Medium
Dies bedeutet wir möchten unserem WebServer permanente 200 MBit/s garantieren. Für den restlichen Traffic garantieren wir 100 MBit/s. Die Frage ist wieso nicht mehr garantiert wird für den restlichen Traffic da ja noch 800 Mbit übrig sind nach Abzug der 200 MBit/s für den WebServer? Nun da die internen User -um zum DMZ zu gelangen- das interne Interface benützen sollte nicht mehr für den restlichen DMZ Traffic zugewiesen werden da ansonsten kein Traffic Volumen mehr übrig bleibt für das interne Interface für andere Destinationen wie WAN. Für die Umrechnung und die korrekte Definition benutze nachfolgende Tabelle:
Umrechnungstabelle: KBit/s - KB/s
Datei:Fortinet-181.jpg
Wie schon erwähnt muss für die Definition unter Firewall Objects die entsprechenden Definitionen der Bandbreite durchgeführt werden:
NOTE Unter FortiOS 5.2 wurde die Menüposition des Traffic Shapers verändert dh.
Poicy & Objects > Objects > Traffic Shapers
Firewall Objects > Traffic Shaper > Shared
Datei:Fortinet-182.jpg
Datei:Fortinet-183.jpg
Datei:Fortinet-182.jpg
Datei:Fortinet-184.jpg
Nun kann die Policy/Rule erstellt werden in der die Bandbreite definiert wird:
Policy > Policy > Policy
Datei:Fortinet-185.jpg
Datei:Fortinet-186.jpg NOTE Die IP 192.168.2.1 stellt die IP des WebServers dar! Somit wird dieser IP unser Profil "WebServer-DMZ" betreffend Bandbreite zugewiesen!
Erfasse nun eine Policy/Rule für den restlichen Traffic im DMZ!
Datei:Fortinet-187.jpg
Es ergiebt sich folgende Situation nach dem erstellen der Policy/Rule:
Datei:Fortinet-188.jpg NOTE Achte darauf das die Reihenfolge der Policy/Rule korrekt ist dh. da die Rule des WebServers zuerst zieht greift die Definitioon der Bandbreite. Wäre die zweite Policy/Rule an erster Stelle und da die Destination auf "any" steht, würde diese Rule auch für den WebServer ziehen (First Match wins)!
Nach einem Test kann die Konfiguration im Monitor unter folgender Position kontrolliert werden:
Policy & Objects > Monitor > Traffic Shaper Monitor
In den Logs kann dies ebenfalls kontrolliert werden dh. ob die Definition greift. Ist dies der Fall sieht man unter den Details im Log die Position Sent Shaper Name. Als Name erscheint auf dieser Position der Name des Profiles resp. der Definition also in unserem Fall "WebServer-DMZ" oder "DMZ".
Der Unterschied zwischen "Shared Traffic Shaper" und "Per-IP Shaper" ist der Folgende:
Shared Traffic Shaper Ein "Shared Traffic Shaper" wird auf sämtlichen aggregierten Traffic angewendet der den Traffic Shaper benützt.
Dieser kann definiert werden "per-policy" oder über die ganze "policy".
Per-IP Shaper Ein "Per-IP Shaper" wird angewandt auf den aggregierten Traffic betreffend definierten/konfigurierten Source IP
Datei:Fortinet-1421.jpg
Wenn ein "Shared Shaper" eingesetzt wird (nicht für Per-IP Shaper) so stehen zwei Kommandos auf einer FortiGate zur Verfügung um festzustellen ob der "Shared Shaper" Packete verwirft:
# diagnoe firewall shaper traffic-shaper list
name guarantee-100kbps
maximum-bandwith 131072 KB/sec
guaranteed-bandwith 12 KB/sec
current-bandwith 0 B/sec
priority 2
tos off
packets dropped 160
name high-priority
maximum-bandwith 131072 KB/sec
guaranteed-bandwith 0 KB/sec
current-bandwith 0 B/sec
priority 2
tos off
packets dropped 0
# diagnose firewall shaper traffic-shaper stats
shapers 5 ipv4 ipv6 0 drops 160
Wie stelle ich auf einer FortiGate fest ob Packete für einen "Per-IP Shaper" verworfen werden?
Wenn ein "Per-IP Shaper" eingesetzt wird (nicht für Shared Shaper) so stehen folgende Kommandos auf einer FortiGate zur Verfügung um festzustellen ob der "Per-IP Shaper" Packete verwirft:
# diagnoe firewall shaper per-ip-shaper list
name Max50KPerIP
maximum-bandwith 6250 KB/sec
maximum-concurrent-session 20
tos ff/ff
packets dropped 121
# diagnose firewall shaper per-ip-shaper stats
memory allocated 1 packet dropped: 121
Wie kann ich die Bandbreite auf einem Interface definieren für Inbound/Outbound?
Wenn man auf einem Interface die Bandbreite betreffend Inbound/Outbound limitieren möchte kann dies über folgenden Befehl durchgeführt werden:
# config system interface
# edit [Name des Interface zB "wan1"]
# set inbandwidth [Definiton in "Kbit/sec" zB 1 Mbit "1024"; Standard 0 dh. "unlimited"]
# set outbandwidth [Definiton in "Kbit/sec" zB 1 Mbit "1024"; Standard 0 dh. "unlimited"]
# end
Die Inbound/Outbound Limite kann auf mehreren Interfaces gleichzeitig gesetzt werden und überschreibt ein Traffic Shaping in erster Priorität dh. dieser Wert wird "vor" der Traffic Shaping benutzt. Dies bedeutet: Ist auf einem Interface zB für Inbound/Outbound "1024" gesetzt (1 Mbit) so steht für die weitere Traffic Shaping Definition nur noch "1 Mbit" zur Verfügung. Die Limitierung betreffend Inbound/Outbound ist keine Voraussetzung für die Traffic Shaping Definition. Accelerated Traffic für NP2/4 sowie SP3 werden nicht beinflusst dh. "offloading" wird nachwievor durchgeführt!
Wie kann ich für eine bestimmten Zweck (zB Citrix) den Traffic Markieren damit zB Router den Traffic Priorisieren/Kategorisieren?
Wenn man zB über einen Provider einen bestimmten Traffic übermittlet und dieser Provider verschiedene Kategorieren zur Verfügung stellt um diesen Traffic zu Priorisieren muss der Traffic "markiert" werden. Dies wird über ToS oder DSCP durchgeführt. ToS wird in RFC 791 definiert und erweitert durch RFC 1349. DSCP ist die Ablösung von ToS und wird im RFC 2474 definiert. Folgende Seite gibt einen guten Ueberblick:
http://bogpeople.com/networking/dscp.shtml http://en.wikipedia.org/wiki/Differentiated_Services_Code_Point#Classification_and_marking
Wenn nun ein Provider zB "AF41" verlangt wäre dies "Precedence 4" was wiederum "Class Selector 4" entspricht:
Datei:Fortinet-324.jpg
Dies bedeutet wiederum:
Class Selector 4 = 100xxx
AF41 = xxx010
Ergiebt = 100010 (oder Dezimal 34)
Anhand dieser Informationen erstellt man unter folgenden Punkt für den "Traffic Shaper" den entsprechenden Eintrag:
Firewall Objects > Traffic Shaper > Shared
Datei:Fortinet-325.jpg
NOTE Möchte man diese Konfiguration per Kommandozeile ausführen führt man folgendes durch:
# config firewall shaper traffic-shaper
# edit [Name für das Profile zB "Citrix-CS4-AF41"]
# set priority high
# set per-policy disable
# set diffserv enable
# unset diffservcode
# set diffservcode 100010
# end
Beachte bitte ebenfalls ob das entsprechende Profile "per-policy" aktiviert oder deaktiviert wird. Dies bedeutet:
Wird "per-policy" aktiviert so wird der Traffic nur auf einer bestimmten Policy markiert indem das Profile hinzugefügt
wurde. Wird "per-policy" deaktiviert so wird jeder Traffic markiert. Je nachdem um was es sich für einen Service handelt
macht es Sinn das Profile Global zu benutzen "per-policy disable"!
Diesen Eintrag "Citrix-CS4-AF41" kann nun in der entsprechendne Policy unter "Traffic Shaping" als "Shared Traffic Shaper" definiert werden sowie nachträglich getestet werden.
NOTE Folgender Link gibt Auskunft wie DSCP über eine FortiGate durchgeführt wird sowie wie sich DSCP über ein VPN zu implementieren ist: http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=13587&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=38530996&stateId=0%200%2038532675
Wenn der Traffic durch die FortiGate nicht markiert wird jedoch der Inbound/Outbound Traffic anhand einer Markierung in einer Firewall Policy priorisiert werden möchte, muss dies per Kommandozeile in der entsprechenden Firewall Policy konfiguriert werden anhand folgender Optionen:
# config firewall policy
# edit [Gebe die ID an der entsprechender Firewall Policy für die Priorisierung resp. Traffic]
# diffserv-forward [enable | disable]
# diffservercode-forward [In unserem Beispiel 100010]
# diffserv-reverse [enable | disable]
# diffservcode-rev [In unserem Beispiel 100010]
# end
NOTE Die Optionen die hier gesetzt werden in Zusammenhang mit "DSCP" haben folgende Bedeutung:
diffserv-forward (Priorisiert den "forward" Traffic basierend auf Option "diffservercode-forward")
diffserv-reverse (Priorisiert den "reverse" Traffic basierend auf Option "diffservcode-rev")
Der "diffservercode-forward/reverse" definiert wie in diesem Artikel beschrieben den
entsprechenden Code
VoIP
Muss ich den SIP Session Helper unter FortiOS 5 löschen und wann wird SIP ALG benutzt?
In allen vorgängigen FortiOS Versionen wurde der SIP Session Helper betreffend SIP Session's als Standard genutzt. Unter FortiOS 5.0 wurde neu der SIP ALG (SIP Application Layer Gateway) eingeführt und nichts desto trotz wurde unter FortiOS 5.0 per Standard der SIP Session Helper genutzt und nicht der SIP ALG. Nachfolgender Artikel zeigt in einer kurzen Uebersicht um "was" es sich beim SIP ALG handelt:
FortiGate-5.0-5.2:FAQ#Was_ist_ein_SIP_ALG_.28Application_Layer_Gateway.29_und_wieso_soll_ich_diesen_benutzen.3F
Aus diesem Grund musste man unter FortiOS 5.0 den SIP Session Helper löschen um den SIP ALG resp. nicht beide SIP Session Helper und SIP ALG zu nutzen. Weitere Informationen wie der SIP Session Helper gelöscht wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F
Neu ab FortiOS 5.2 ist der SIP Session Helper kein Standard mehr sondern der SIP ALG. Somit muss unter FortiOS 5.2 der SIP Session Helper nicht mehr gelöscht werden da dieser nicht genutzt wird da SIP ALG per Standard genutzt wird. Wenn man "nicht" den SIP ALG per Standard benutzen möchte unter FortiOS 5.2 resp. man selber bestimmen will "was" der Standard sein soll betreffend SIP Traffic kann dies unter FortiOS 5.2 neu definiert werden anhand folgenden Kommandos:
# config system settings
# set default-voip-alg-mode [proxy-based | kernel-helper-based]
# end
NOTE Die Optionen "proxy-based" und/oder "kernel-helper-based" haben folgende Bedeutung:
proxy-based = SIP ALG (SIP ALG läuft im User Space)
kernel-helper-based = SIP Session Helper (SIP Helper läuft im Kernel Mode)
Bei der Konfiguration betreffend dieser Option ist folgendes zu berücksichtigen:
Obwohl "default-voip-alg-mode" auf "kernel-helper-based" gesetzt ist dh. SIP Session Helper, wird
der Traffic über den SIP ALG abgewickelt wenn der Traffic eine Firewall Policy Rule matched die ein
VoIP Profile konfiguriert hat. Explizit wird der SIP Session Helper nur benutzt wenn in der entsprechenden
Firewall Policy Rule "kein" VoIP Profile benutzt wird. Dieser Umstand gilt nur für FortiOS 5.2!
Nichts desto trotz um sicher zu gehen in einer SIP Implementation, dass weder der "SIP Session Helper" noch der "ALG" benutzt wird, sollte folgendes durchgeführt werden:
Setze den "SIP Session Helper" als Standard dh. unter FortiOS 5.2 ist der "ALG" der Standard. Da der "SIP Session Helper" als Standard
gesetzt wird mit "kernel-helper-based" wird wiederum die Ausgangslage unter FortiOS 5.0 erreicht:
# config system settings
# set default-voip-alg-mode kernel-helper-based
# end
Lösche den "SIP Session Helper" gemäss folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F
Da der "SIP Session Helper" als Standard gesetzt wird und dieser nachträglich gelöscht wird, greift für "SIP" weder der "Session Helper"
noch der "ALG" sofern kein "SIP Profile" auf der entsprechenden Firewall Policy Rule konfiguriert wird! Somit wird gewährleistet, dass
der "SIP" Traffic weder durch den "SIP Session Helper" noch "ALG" beeinflusst wird.
Ausgehend davon das SIP (VoIP) nicht benutzt wird resp. die Konfiguration zur Nichtbenutzung korrekt durchgeführt wurde, kann mit nachfolgenden Befehlen dies bestätigt werden dh. Die nachfolgenden Befehle können durchgeführt werden um festzustellen ob der "Session Helper" und/oder der "ALG" für SIP (VoIP) benutzt werden. Wurde die Konfiguration korrekt durchgeführt, bestätigen diese Kommandos das SIP (VoIP) nicht über den "Session Helper" noch über den "ALG" verarbeitet werden da die "counter" im Output für diese Kommandos auf Null stehen. Damit diese Ueberprüfung korrekt durchgeführt werden kann, muss dementsprechend SIP (VoIP) Traffic durchgeführt werden:
SIP Session Helper
# diagnose sys sip status
dialogs: max=131072, used=0
mappings: used=0
dialog hash by ID: size=8192, used=0, depth=0
dialog hash by RTP: size=8192, used=0, depth=0
mapping hash: size=8192, used=0, depth=0
count0: 0
count1: 0
count2: 0
count3: 0
count4: 0
SIP ALG
# diagnose sys sip-proxy stats
sip stats
vdom name: root
---------------------------
active-sessions: 0
calls-attempted: 0
calls-established: 0
calls-failed: 0
calls-active: 0
registers-active: 0
| received | blocked | unknown form | long headers
req-type | req resp| req resp| req resp| req resp
UNKNOWN 0 0 0 0 0 0 0 0
ACK 0 0 0 0 0 0 0 0
BYE 0 0 0 0 0 0 0 0
CANCEL 0 0 0 0 0 0 0 0
INFO 0 0 0 0 0 0 0 0
INVITE 0 0 0 0 0 0 0 0
MESSAGE 0 0 0 0 0 0 0 0
NOTIFY 0 0 0 0 0 0 0 0
OPTIONS 0 0 0 0 0 0 0 0
PRACK 0 0 0 0 0 0 0 0
PUBLISH 0 0 0 0 0 0 0 0
REFER 0 0 0 0 0 0 0 0
REGISTER 0 0 0 0 0 0 0 0
SUBSCRIBE 0 0 0 0 0 0 0 0
UPDATE 0 0 0 0 0 0 0 0
PING 0 0 0 0 0 0 0 0
YAHOOREF 0 0 0 0 0 0 0 0
Was ist zu beachten wenn SIP (VoIP) über eine Fortigate implementiert wird?
Früher wurde der SIP Traffic über einen "SIP Session Helper" abgehandelt. Dieser sollte unter FortiOS 5.0 gelöscht werden. Jedoch unter FortiOS 5.2 sollte dies verifiziert werden. Weitere Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Muss_ich_den_SIP_Session_Helper_unter_FortiOS_5_l.C3.B6schen_und_wann_wird_SIP_ALG_benutzt.3F
Um den SIP Session Helper zu löschen führe folgendes aus:
# show system session-helper
edit 12 (1)
set name sip
set port 5060
set protocol 17
next
NOTE Dieser Befehl listet sämtliche "session-helper" auf. Suche den Eintrag für das "sip" Protokoll und dessen
ID. In unserem Beispiel wäre dies die ID "12"!
Nun löschen den "SIP Session Helper" (sip) anhand der ID:
# config system session-helper
# delete 12
# end
Kontrolliere ob der entsprechende SIP "session-helper" (sip) gelöscht wurde:
# config system session-helper | grep 12
NOTE Möchte man den "Application Layer Gateway" (ALG) ebenfalls vollständig deaktivieren führe folgendes aus:
# config system settings
# set sip-helper disable
# set sip-nat-trace disable
# end
Führe einen Neustart des Gerätes durch:
# execute reboot
Als nächsten Schritt muss ein VoIP Profile basierend auf dem "Application Layer Gateway" (ALG) hinzugefügt werden. Weitere Informationen um "was" es sich beim SIP ALG handelt siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_ein_SIP_ALG_.28Application_Layer_Gateway.29_und_wieso_soll_ich_diesen_benutzen.3F
Ein VoIP Profile wird über folgende Position konfiguriert:
Security Profiles > VoIP
NOTE Diese Menüposition ist per Standard nicht im WebGui ersichtlich und kann unter folgender
Position als Feature aktiviert werden:
System > Config > Features > Show More > VoIP
Das per Standard bestehende Profile "default" kann herangenommen werden um die entsprechende Konfiguration zu vervollständigen oder es wird ein neus Profile erstellt:
Datei:Fortinet-277.jpg NOTE Die Positionen "REGISTER" und "INVITE" geben an wieviele Requests per Second und Policy über SIP akzeptiert werden wobei "REGISTER" der Wert der Verbindungen darstellt die benützt werden um Geräte am Controller anzumelden. Der Wert "INVITE" stellt den effektiven Call dar. Dies bedeutet wenn der Wert 100 gesetzt wird so können sich über die entsprechende Policy nicht mehr als 100 Devices am Controller registrieren (REGISTER). Wenn "INVITE" auf 100 gesetzt wird können sich über die entsprechende Policy nicht mehr als 100 Anrufe (INVITE) durchgeführt werden. Die Position "SCCP" ist ein proprietäres CISCO Protokoll.
Als Letzteres muss nun nur noch das entsprechende Profile VoIP in die entsprechende Firewall Policy Rule in der SIP Traffic benützt wird, eingebunden werden:
Datei:Fortinet-278.jpg
Was ist ein SIP ALG (Application Layer Gateway) und wieso soll ich diesen benutzen?
In den meisten Fällen sollte anstelle des "Session Helpers" der "SIP ALG" (SIP Application Layer Gateway) benutzt werden. Der "Session Helper" ist eine frühere Implementierung betreffend SIP Support (Standard bis FortiOS 5.0). Der SIP ALG (Standard ab FortiOS 5.2) unterstützt die gleichen Funktionen wie im "Session Helper" jedoch zusätzlich wird das SIP Protokoll im SIP ALG geschützt vor Angriffen im SIP Bereich. Dies bedeutet zB Sessions werden limitiert (je nach Konfiguration), Syntax betreffend SIP sowie SDP Inhalte der Nachrichten werden überprüft. Zusätzlich wird über den SIP ALG ein detailiertes Logging sowie Reporting zur Verfügung gestellt. Nachfolgende Darstellung zeigt wie der SIP ALG implementiert ist:
Datei:Fortinet-715.jpg
Der SIP ALG unterstützt folgende Funktionen:
• Alle Features implementiert im "Session Helper" sowie NAT, SIP und RTP Pinholes (Real Time Protocoll Pinholes)
• Zusätzlich im Gegensatz zum Session Helper kann auf dem SIP ALG folgendes durchgeführt werden:
- Aktivieren/Deaktivieren von RTP Pinholing
- SIP Register Pinholing
- SIP Contact Pinholing
NOTE Wenn der RTP Stream "nicht" über die FortiGate abgehandelt wird kann das "RTP Pinholing" deaktiviert
werden um die Performance zu erhöhen:
# config voip profile
# edit [Name des VoIP Profiles]
# config sip
# rtp disable
# end
• SIP TCP und UDP Support
• SIP Message Order Ueberprüfung
• Konfigurierbare Header Line Length Maximum
• Message Fragment Assembly (TCP)
• Wenn SIP Nachrichten Fragmentiert sind (vers. Packete) fügt der SIP ALG diese wieder zusammen und schickt diese als Ganzes weiter.
• L4 Protocol Translation
• Message Flood Protection
• DoS Protection für "flooding INVITE, REGISTER" und andere Methoden
• SIP message Type Filtering
• SIP Statistik und Logging
• SIP über IPv6
• SIP über SSL/TLS
• Deep SIP Message Syntax Checking (SIP Header Inspection oder SIP Fuzzing Protection
• Hosted NAT Traversal
• SIP High Availability (HA).
• Geographical Redundancy (HA)
• SIP Per Request Method Message Rate Limitation (Schützt SIP Server vor SIP Ueberlastung und DoS Attacken)
• RTP Bypass (RTP Pinholing)
• SIP NAT
• IP Topology Hiding
VoIP ist komplizierter als eine normale TCP/UDP-basierte Anwendung. Aufgrund der Komplexität der Signalisierung und der Protokolle bei VoIP sowie der Inkonsistenzen, die sich ergeben, wenn eine Firewall die Quelladress- und Quellportdaten mit NAT ändert, ist es schwierig für VoIP, eine Firewall ungehindert zu überwinden. VoIP verwendet zwei verschiedene Protokolle: eines für die Signalisierung (zwischen dem Client und dem VoIP-Server) und eines für die Medien (zwischen den Clients). Die Port/IP-Adresspaare, die von den Medienprotokollen (RTP/RTCP) für jede Sitzung verwendet werden, werden von den Signalisierungsprotokollen dynamisch verhandelt. Firewalls müssen diese Informationen dynamisch mitverfolgen und warten und zum entsprechenden Zeitpunkt ausgewählte Ports für die Sitzungen auf sichere Weise öffnen und wieder schließen. Mehrere Medienports werden über die Signalisierungssitzung dynamisch verhandelt; die Verhandlungen über die Medienports sind in der Nutzlast der Signalisierungsprotokolle enthalten (IP-Adress- und Portinformationen). Firewalls müssen für jedes Paket eine Deep Inspection durchführen, um diese Informationen zu erhalten und die Sitzungen dynamisch zu warten; dies erfordert zusätzliche Verarbeitungskapazitäten der Firewall.
Die Quell- und Ziel-IP-Adressen sind in die VoIP-Signalisierungspakete eingebettet. Eine Firewall mit NAT-Unterstützung übersetzt IP-Adressen und -Ports auf IP-Header-Ebene für Pakete. Vollsymmetrische NAT-Firewalls passen ihre NAT-Bindungen häufig neu an und können so zufällig die Pinholes schließen, über die eingehende Pakete in das zu schützende Netzwerk gelangen. In diesem Fall kann der Dienstanbieter keine eingehenden Anrufe an den Kunden weiterleiten. Für die erfolgreiche Unterstützung von VoIP muss eine NAT-Firewall eine Deep Packet Inspection durchführen und eingebettete IP-Adress- und Portinformationen bei der Weiterleitung über die Firewall transformieren können. Genau hier setzt der SIP ALG an und übernimmt diese Arbeit in verschiedenen Bereichen dh. Analysiert SIP und SDP Informationen, passt die Packete an (zB für NAT), schützt das Protokoll auf DoS sowie IPS Ebene usw. Bei einigen VoIP Implementierungen die von Hersteller zu Hersteller verschieden sein können kann es zu Problemen kommen dh. zB weil über SIP Befehle gesendet werden die durch den SIP ALG nicht erkannt werden. Diese Befehle -da nicht erkannt- werden als "unknown" eingestuft sowie geblockt. Um zB dies zu verhindern kann die SIP Funktion deaktiviert werden:
NOTE Security Technisch gesehen ist das enorm Problematisch da zB ohne SIP ALG die Befehle/Kommandos
innerhalb des SIP Protokolls nicht mehr kontrolliert werden und somit man Angriffen ausgeliefert
ist! Diesem Umstand ist Rechnung zu tragen!
# config voip profile
# edit [Name des VoIP Profiles]
# config sip
# set block-unknown disable
# end
Bei einigen VoIP Herstellern muss das NAT deaktiviert werden (Kein Incoming Audio). Dies wird folgendermassen durchgeführt:
# config voip profile
# edit [Name des VoIP Profiles]
# config sip
# set nat-trace disable
# end
Desweiteren verlangen einige Implementationen, dass die "orginal IP und Port" Informationen der SIP Kontakt Anfrage beibehalten werden dh. diese gehen bei einem NAT (Network Address Translation) verloren. Dies bedeutet eine SIP Kontakt Anfrage sieht orginal folgendermassen aus:
Contact: <sip:0150302438@172.20.120.110:5060>;
Nun wenn das Packet durch die FortiGate abgearbeitet wird und NAT angewendet wird so sieht das Packet folgendermassen aus:
Contact: <sip:0150302438@10.10.10.21:33608>;
In diesem Beispiel sieht man, dass die Informationen durch das NAT der FortiGate verändert wurden dh. die IP wurde durch das NAT verändert sowie der Port. Durch die Funktion "enable register-contact-trace" wird durch das VoIP Profile die FortiGate angewiesen diese Informationen NICHT zu verändern dh. die "orginal IP sowie dessen Port" werden mitgegeben. Es wird folgendes angewandt:
Contact: <sip:0150302438@[nated-ip]:[nated-port];o=[original-ip]:[original-port]>;
Somit wird die SIP Kontakt Anfrage in unserem Beispiel folgendermassen durch die Funktion "enable register-contact-trace" abgearbeitet:
Contact: <sip:0150302438@10.10.10.21:33608;o=172.20.120.110:5060>;
Um die Funktion einzuschalten dh. "register-contact-trace" führe folgendes durch:
NOTE Dieser Befehl steht nur unter FortiOS 5.0 / 5.2 zur Verfügung!
# config voip profile
# edit [Name des VoIP Profiles]
# config sip
# set register-contact-trace enable
# end
Wie schalte ich für Voip auf einer FortiGate das Extended-UTM-Log ein?
Innerhalb des Voip Profiles kann das UTM Log File für SIP und/oder SCCP aktiviert werden. Dies kann folgendermassen durchgeführt werden:
NOTE Unter FortiOS 5.2 exestiert die Option "extended-utm-log" nicht mehr. Weitere Informationen siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
# config voip profile
# edit [Name des Profile]
# set extended-utm-log [enable | disable]
# config sip
# set status [enable | disable]
# set log-violations [enable | disable]
# set log-call-summary [enable | disable]
# end
# config sccp
# set status [enable | disable]
# set log-call-summary [enable | disable]
# set log-violations [enable | disable]
# end
# end
Application Control
Wie muss Application Control Service Lizensiert werden?
Die Application Control Service wird über die IPS Lizensierung lizensiert dh. die Signaturen DB der IPS enthält die Informationen der Application Control. Grundsätzlich funktioniert IPS und Application Control auch ohne Lizenz jedoch werden die DB der IPS und/oder Appliaction Control nicht auf den neusten Stand gebraucht.
Wie aktiviere ich für eine bestimmte Applikation/Anwendung die "Application Control"?
Wenn man eine bestimmte Applikation/Anwendung kontrollieren will zB ein Adobe Dokument nimmt man die Funktion "Application Control" zur Hilfe dh. man erstellt ein bestimmtes Profil für die gewünschte Applikation/Anwendung und bestimmt wie mit dieser Applikation/Anwendung verfahren werden soll. Um dies zu konfigurieren gehe folgendermassen vor:
FortiOS 5.0
UTM Profiles/Security Profiles > Application Control > Application Sensor > Create New
Datei:Fortinet-33.jpg
Erstelle nun unter "Create New" einen neuen Filter für die bestimmte Application/Anwendung zB Adobe:
Datei:Fortinet-34.jpg
NOTE Ab FortiOS 5.0.4 stehen neue Menüpunkte innerhalb des Sensors von Application Control zur Verfügung.
Unter "Filter Based" steht neu die Menüposition "Risk" zur Verfügung. Ebenfalls unter "Filter Based"
kann man nun zwischen "Basic" und "Advanced" wählen wobei die Position "Advanced" neu ist. Diese
Menüposition "Advanced" ermöglicht eine weitere Einschränkung resp. Auswahl zwischen "Vendor" und
Protokollen. Dies bedeutet eine Applikation kann zB geblockt werden auf "Vendor" und/oder "Protokollen"
Innerhalb der neuen Menüpositionen kann unter "Show more..." die Anzeige erweitert werden. Dadurch wird
die Konfiguration "Granularer" und "Transparenter":
Datei:Fortinet-810.jpg
Es kann auch anstelle eines Filters die Application selber als Basis genommen werden zB You-Tube:
Datei:Fortinet-35.jpg
Nachdem Abspeichern ergiebt sich folgende Situation:
Datei:Fortinet-36.jpg
FortiOS 5.2
Unter FortiOS 5.2 wurde ein "5-Point-Risk Rating" eingeführt dh. jede Signature wird innerhalb dieses Ratings
geführt. Diese Ratings werden ebenfalls im "FortiView Applications" abgebildet sofern ein entsprechendes Profile
in einer Firewall Policy benutzt wird:
Datei:Fortinet-1309.jpg
Security Profiles > Application Control > Create New
Datei:Fortinet-1299.jpg
Unter FortiOS 5.2 im Gegensatz zu FortiOS 5.0 wird die Application Control in einem Fenster konfiguriert:
Datei:Fortinet-1300.jpg
Die einzelnen Kategorieren wie "Botnet, Special etc." können einzel auf eine neuen Status gesetzt werden dh.
zB "Monitor, Block usw.":
Datei:Fortinet-1301.jpg
NOTE Möchte man in dieser Kategorie einen vollständigen Ueberblick erhalten wählt man die Position
"View Signatures". Diese Positon gibt keine Uberblick über "alle" zur Verfügung stehenden Signaturen
sondern nur die der angewählten "Categories". Möchte man einen gesamt Ueberblick erhalten über "alle"
zur Verfügung stehenden Kategorien kann dies anhand "View Application Signatures" durchgeführt werden
jedoch diese Position steht erst dann zur Verfügung, wenn ein Application Sensor abgespeichert wurde:
Datei:Fortinet-1308.jpg
Wenn anstelle einer Kategorie eine spezifische Application wie zB Microsoft Application hinzugefügt werden
möchte muss dies über "Application Overrides" durchgeführt werden dh.:
Datei:Fortinet-1302.jpg
Danach steht einem die Liste der Applicationen resp. Signaturen zur Verfügung und anhand eines Filters kann
die entsprechende Application Signature gefiltert werden:
Datei:Fortinet-1303.jpg
Wenn durch den Filter die entsprechende Application Signature/n gefunden wurden können diese markiert und
anhand "Use Selected Signature" übernommen werden:
Datei:Fortinet-1304.jpg
NOTE In diesem Konfigurations Schritt ist es nicht möglich eine spezifische Signature betreffend deren Standard
Action wie "Block, Allow, Monitor usw." zu überschreiben resp. zu ändern!
Nach der Uebernahme werden die entsprechenden Signaturen unter "Application Overrides" aufgelistet:
Datei:Fortinet-1305.jpg
Um eine Standard "Action" einer Signature zu ändern steht unter Action die entsprechenden Positionen zur Verfügung:
Datei:Fortinet-1306.jpg
Innerhalb des Application Sensor stehen folgende zusätzliche Optionen zur Verfügung:
Datei:Fortinet-1307.jpg
NOTE Die Optionen haben folgende Bedeutung:
Deep Inspection of Cloud Application
Diese neue Option steht nur unter FortiOS 5.2 zur Verfügung und erlaubt es Informationen betreffend "Cloud
Application" zu loggen dh. User Logins, File Transfer, Video Name (Name unter Application Details ersichtlich
dh. zB Youtube und Vimeo). Damit die User Logis sowie File Transfer im Log abgebildet werden wurden im Log
selber folgende Felder hinzugefügt: Cloud User, Cloud Action, File Name sowie File Size. Um das Feature auf
der Kommandozeile zu aktivieren muss folgendes durchgeführt werden:
# config application list
# edit [Name des entsprechenden Profiles]
# set deep-app-inspection [enable | disable]
# end
# end
Allow and Log DNS Traffic
Weitere Informationen siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_gew.C3.A4hrleisten_das_.22basic_traffic.22_wie_DNS.2C_icmp_usw._.C3.BCber_Application_Control_nicht_geblockt_wird.3F
Replacement Messages for HTTP-based Applicaton
Wenn diese Option aktiviert wird so wird über HTTP eine entsprechende Seite angezeigt wenn eine spezfische
geblockt wird. Um diese Option in der Kommandozeile zu aktivieren führe folgendes durch:
# config application list
# edit [Name des entsprechenden Profiles]
# set app-replacemsg [enable | disable]
# end
# end
Der entsprechende Sensor ist nun erstellt jedoch fehlt noch die korrekte Aktivierung in der Policy. Dies bedeutet in der entsprechenden Policy/Rule muss nun der entsprechende Application Sensor aktiviert werden. Editiere zu diesem Zweck die entsprechende Rule und aktiviere UTM/Security Profiles. Danach erscheinen die vers. UTM/Security Features und unter "Enable Application Control" kann der entsprechende Application Sensor angegeben werden! Um zu kontrollieren "ob" der Sensor anspricht aktiviere in der Policy/Rule "Log Allowed Traffic" und führe einen entsprechenden Test durch!
Wie finde ich heraus welche Applikation am meisten Bandbreite benützt?
Um herauszufinden/zu analysieren welche Applikation am meisten Bandbreite benützt im Netz führe folgendes durch:
NOTE Unter FortiOS 5.2 wurde die Konfiguration des Application Sensors modifiziert. Weitere Information dazu siehe Artikel: FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_eine_bestimmte_Applikation.2FAnwendung_die_.22Application_Control.22.3F
Policy > Policy > Policy
--> Wähle "Column Settings". Verschiebe von der linken Spalte die Position "Count" zur rechten Spalte
Nun ist über die Spalte "Count" in den Policy's ersichtlich welche Policy/Applikation am meisten Bandbreite benützt. Um dies zu "Monitoren" führe folgendes durch:
--> Erstelle folgendes Profil unter "Application Control":
UTM Profiles > Application Control > Application Sensor
Datei:Fortinet-258.jpg
Datei:Fortinet-259.jpg
Datei:Fortinet-260.jpg
Datei:Fortinet-261.jpg
Datei:Fortinet-262.jpg --> Speichere das Profile mit "Apply"
NOTE Unter FortiOS 5 sieht das Application Sensor Gui ein wenig anderst aus: Datei:Fortinet-842.jpg
Nun das Profil/Sensor ist erstellt und muss nun nur noch in den entsprechenden Policy's die eine hohe Bandbreite haben (Count) aktiviert werden:
Policy > Policy > Policy
Datei:Fortinet-263.jpg
Alle diese Policy's indenen das Application Profile aktiviert wurden werden im Hintergrund nun überwacht. Diese Uebewachung ist unter folgender Position ersichtlich:
UTM Profiles > Monitor > Application Monitor
NOTE Weitere Informationen betreffend UTM Monitor unter FortiOS 5.2 siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
Kann ich wenn der Traffic verschlüsselt ist Application Control aktivieren?
Wenn Application Control benutzt wird so wird im Hintergrund die Datenbank des IPS bedient. Beide Funktionen sind reine "Flow-based" Proxy Funktionen und "Proxy-based" steht nicht zur Verfügung. Desweiteren ist zu berücksichten, dass wenn eine Firewall Policy konfiguriert wird in der "Proxy-based" (zB Antivirus) sowie "Flow-based" (Application Control) benutzt wird, führt die FortiGate für alle Funktionen "Proxy-based" durch sofern dies durch die Funktion unterstützt wird. Ausgenommen davon sind davon IPS sowie Application Control da in diesen Funktionen der "Proxy-based" Mode nicht zur Verfügung steht. Nähere Informationen findet man über folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_wenn_der_Traffic_verschl.C3.BCsselt_ist_.28SSL.29_IPS_aktivieren.3F
Desweiteren steht unter FortiOS 5.2 innerhalb eines Application Sensor die Funtion "Deep Inspection" für Cloud Application zur Verfügung. Weitere Informatioen wie ein Application Control Sensor unter FortiOS 5.2 konfiguriert wird siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_eine_bestimmte_Applikation.2FAnwendung_die_.22Application_Control.22.3F
Wie kann ich gewährleisten das "basic traffic" wie DNS, icmp usw. über Application Control nicht geblockt wird?
Ab FortiOS 5.0.5 wurde eine neue Funktion implementiert die genau dies gewährleistet dh. Wenn zB ein Application Filter eingesetzt wird der "Network Traffic" blocken soll muss gewährleistet werden das "basic traffic" nicht irrtümlicherweise geblockt wird. Ebenfalls kann die neue Funktion dazu benutzt werden "basic traffic" zu deklarieren der nie über "Application Control" geblockt werden soll. Die Konfiguration wird folgendermassen durchgeführt:
# config application list
# edit [Wähle das entsprechende Profile]
# set options allow-dns allow-icmp allow-http allow-ssl
# end
NOTE Der einzige Traffic der per Standard aktiviert ist, ist der DNS Traffic! Dazu steht im Application Sensor
folgende Position zur Verfügung die ebenfalls sofern gewünscht deaktiviert werden kann:
Datei:Fortinet-966.jpg
Wie aktiviere ich für Application Control auf einer FortiGate das Extended-UTM-Log?
Innerhalb der Application Controll kann das Extended-UTM-Log aktiviert werden. Dieses wird jedoch nur dann als Extended-UTM-Log File angezeigt, wenn die Logs dem FortiAnalyzer gesendet werden. Um das Extended-UTM-Log File für Application Control zu aktivieren führe folgendes aus:
# config application list
# edit [Name des Profile]
# set extended-utm-log [enable | disable]
# set log [enable | disable]
# set other-application-log [enable | disable]
# set unknown-application-log [enable | disable]
# end
NTP / Time / Date
Wie überprüfe/setze ich das Datum und die Zeit einer FortiGate?
# execute time
current time is: 05:01:35
last ntp sync: never
# execute date
current date is: 2012-04-03
Um die Zeit resp das Datum anzupassen führe folgndes aus:
# execute time hh:mm:ss
# execute date yyyy-mm-dd
Wie konfiguriere ich die Zeitzone einer FortiGate?
# config system global
# set timezone ?
NOTE Durch "?" werden alle verfügbaren Zeitzonen aufgelistet. Danach kann der richtige Code (Zahl)
benutzt werden um die Zeitzone zu setzen!
# set timezone 26
# end
Wie aktiviere ich den NTP Zeitsynchronisierung auf einer FortiGate?
folgender Befehl wird benttzt für die Aktivierung der NTP Zeitsynchronisierung :
NOTE Das folgende Beispiel zeigt eine Konfig die ein NTP Server konfiguriert und zwar "ch.pool.ntp.org" (360 Sekunden)
sowie auf dem "internal" Interface einen NTP Service bereitstellt für dieses Segment!
# config system ntp
# set ntpsync enable
# set type custom
# set syncinterval 360
# set server-mode enable
# set interface "internal"
# config ntpserver
# edit 1
# set server "ch.pool.ntp.org"
# next
# end
# end
NOTE Damit die NPT Synchronisation dh. über FortiGuard zur Verfügung steht muss diese Funktion lizensiert werden. Nachfolgender Artikel gibt Auskunft was zu lizensieren ist: Fortinet:FortiCare-FortiGuard#Wenn_ich_.22nur.22_DDNS_.28Dynamic_DNS.29.2C_GeoIP.2C_NTP_und_DNS_Service_von_FortiGuard_benutze_was_muss_ich_im_Minimum_lizensieren.3F
Logging
Ich sehe in den Logs die Nachricht "The system has entered conserve mode" was bedeuted dies?
Nun wenn in den Logs die Nachricht "The system has entered conserve mode" erscheint ist der Device überlastet (Traffic) oder etwas hat den Device überlastet (Services). Diese Nachricht erscheint in den Logs dann wenn der Device seine Arbeit aus Resourcen Gründen nicht mehr durchführen kann. Wenn dies geschieht, sollte erruiert werden WAS den Device zur Ueberlastung bringt. Dabei können folgenden Ueberlegungen hilfreich sein:
--> Ist das Datenaufkommen (Traffic) für den Device zu hoch?
--> Wird zuviel geloggt (Devices ohne Disk's loggen 10% des Memory Bereichs danach wird wieder überschrieben)
--> Sind zuviele Services aktiviert wie IPS, Application Control, AntiVirus usw?
--> Sollte vorübergehend eingesetzte UTM Features auf Flow-Based umkonfiguriert werden?
Wenn das Datenaufkommen oder das Logging keine Probleme darstellt so sollte betreffend UTM Services (zB IPS) einer nach dem Anderen deaktiviert werden um zu sehen welcher Service für die Ueberlastung zuständig ist. Dabei kann ebenfalls folgendes Hilfreich sein:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Prozesse_anzeigen_lassen.3F FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Memory_Benutzung_anzeigen_lassen.3F
Gibt es auf dem FortiOS ein "Crash Log" das Informationen enthält nach einem Crash?
Nun wenn unter Linux/Unix ein Crash/Absturz passiert, dann "dumped" das Betriebssystem - sofern konfiguriert - die Information in ein File (core)! Der gleiche Vorgang resp. ähnlich wird auch auf einer FortiGate durchgeführt dh. das File in dem die Informationen geschrieben werden ist das "crash" Log. Dieses kann auf der CLI angeschaut werden um bei der Analyse des Crash's wertvolle Infomationen zu liefern. Um das "crash" Log File anzuschauen führe auf der CLI folgendes aus:
# diagnose debug crashlog read
Um das "Crash Log file zuückzusetzen benütze folgenden Befehl:
# diagnose debug crashlog clear
Im "crash" Log sind Informationen enthalten über die "termination" resp. das benutzte Signal. Wird zB im "crash" Log folgendes angezeigt handelt es sich effektive um das Signal "11" resp. Signal "11" wird als "Invalid memory refrence" definiert:
application sslvpnd
*** signal 11 (Segmentation fault)
Die meist benutzten resp. aufgeführten "termination" Signale sind die Folgenden:
4 Illegal instruction
6 Abort command from FortiOS
7 Bus error
9 Unconditional kill
11 Invalid memory refrence
14 Alarm clock
15 Graceful kill
Grundsätzlich werden diese "termination" Signal ebenfalls benutzt um einen Prozess zu beenden resp. neu zu starten (Kill Level). Dies ist jedoch nur dann durchzuführen wenn die Auswirkung 100% klar ist. Ein Prozess kann zB mit einem "termination" Signal 9 neu gestartet werden da der Level 9 ein Prozess unweigerlich beendet und diesen neu startet. Wird dies beim einem Prozess angewandt zB "cmdbsvr" so wird/kann die Konfiguration korrumpiert werden da dieser Prozess für die Konstistenz der Konfiguration sorgt (Legt die nötigen Konfiguration Revisions an). Um ein "termination" Signal anzuwenden führe folgendes aus:
# diagnose sys kill [Prozess ID] [Termination Signal]
Grundsätzlich bedeutet es nicht wenn im "crash" Log ein Eintrag existiert das auf der FortiGate ein Problem exisitert. Wenn ein "issue" eintrat zB Unterbruch im IPSec Bereich und im "crash" Log ein Hinweis gefunden wird betreffend IKE Deamon ist der Zusammenhang wahrscheinlich. Dies bedeutet: Wenn ein "issue" auftritt ist ein kurzer Blick in das "crash" Log Sinnvoll.
Welche verschiedenen Felder enthält ein Log auf einer FortiGate und kann ich diese reduzieren (brief-traffic-format)?
Ausgehende von der FortiOS Version 5.2.x enthält ein Log auf einer FortiGate folgende Felder:
srcname
srcuuid
dstuuid
poluuid
user
group
appid
appcat
apprisk
app (except local traffic)
vpn
vpntype
shapersentname
shaperdropsentbyte
shaperrcvdname
shaperdroprcvdbyte
shaperperipname
shaperperipdropbyte
devtype
osname
osversion
unauthuser
unauthusersource
collectedemail
mastersrcmac
srcmac
msg
Nachfolgende Dokumente geben detaillierte Auskunft über jedes Log und deren Felder etc.:
Datei:FortiGate-Log-Message-Reference-50.pdf Datei:FortiGate-Log-Message-Reference-52.pdf
Wenn nun das Traffic Volument über diese Felder reduziert werden soll kann folgender Befehl ausgeführt werden:
# config log setting
# set brief-traffic-format enable
# end
Wenn "brief-traffic-format" aktiviert wird so werden folgenden Felder ignoriert und nicht mehr in den Logs aufgeführt:
user
group
appid
appcat
NOTE Berücksichtige, dass wenn diese Option aktiviert wird kein Report mehr ausgeführt werden könne die basierend
auf "user" und/oder "group" da keine Daten mehr vorhanden sind resp. diese Felder nicht mehr vorhanden sind.
Wie ändere ich im WebGui die "Log Location"?
Um die "Log Location" im WebGui zu ändern führe folgendes durch:
Log & Report > Log Config > Log Settings > GUI Preferences > Display Logs From > [Wähle die entsprechende Position zB Disk]
Datei:Fortinet-1369.jpg
Sobald die "Log Location" gesetzt ist kann dies innerhalb eines Logs kontrolliert werden:
Datei:Fortinet-1368.jpg
Datei:Fortinet-119.jpg NOTE Steht die Disk unter FortiOS 5.2 nicht zur Verfügung gibt nachfolgender Artikel Auskunft was zu berücksichtigen ist unter FortiOS 5.2: FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
Um die "Log Location" in der CLI zu ändern führen folgendes durch:
FortiOS 4 MR3
# config log gui
# set log-device [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
# end
NOTE Die Option "forticloud" steht ab der V4.3 Patch 12 zur Verfügung!
FortiOS 5.0
# config log setting
# set gui-location [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
# end
FortiOS 5.2
# config log gui-display
# set location [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
# set resolve-hosts [enable | disable]
# set resolve-apps [enable | disable]
# set fortiview-unscanned-apps [enable | disable]
# set fortiview-local-traffic [enable | disable]
# end
NOTE Ab FortiOS 5.2.2 stehen die Optionen "set fortiview-unscanned-apps" sowie "fortiview-local-traffic" zur Verfügung.
Diese Optionen stehen im Zusammenhang mit FortiView. Weitere Informationen siehe:
FortiGate-5.0-5.2:FAQ#In_FortiView_werden_.22unknown_app.22_sowie_.22local_traffic.22_angzeigt_und.2Foder_nicht_angezeigt.3F
Wie schalte ich auf einer FortiGate das Logging auf der Disk ein?
Erste Voraussetzung damit auf der Disk die Logs abgelegt werde ist eine einwandfreie formatierte Disk auf der FortiGate. Berücksichtige dabei, dass nicht alle FortiGate's über eine Disk, sei es Flash oder HD, verfügen. Um eine Disk einwandfrei zu formatieren führe folgendes aus:
NOTE Wird FortiOS 5.2 eingesetzt und beim Device handelt es sich um ein FortiGate 100D und kleiner, verfügt dieser Device event. über eine Disk jedoch diese kann für das Logging nicht eingesetzt werden. Wieso dem so ist kann beschreibt der nachfolgende Artikel: FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
# execute formatlogdisk
Log disk is /dev/sdb4
Formatting this storage will erase all data on it, including
Logs, quarantine files;
WanOpt caches;
and requires the unit to reboot.
Do you want to continue (y/n)
NOTE Wenn die Disk bereits in Gebrauch war, wird dort die SQL DB, Logs, Reportings usw. abgelegt. Formatiert man die
Disk gehen diese Informationen unwiederruflich verloren dh. bei einem Neustart wird die SQL DB von Grundauf neu
angelegt! Dieser Vorgang kann ebenfalls dann genutzt werden, wenn die SQL DB Korrupt ist jedoch mit dem Umstand,
dass ALLE Daten verloren gehen!
Nachdem Formatieren und Neustart kann die Disk mit folgenden Befehl überprüft werden:
# execute disk list
Nun kann das Logging auf der Disk eingeschaltet werden:
# config log disk setting
# set status enable
# end
NOTE Mit dem Befehl "show log disk setting" können die verschiedenen Konfigurations Möglichkeiten abgefragt werden für
"log disk setting"! Die Konfiguration sowie die Formatierung ist ebenfalls über WebGui möglich dh. unter folgender Position:
System > Config > Advanced
Dort kann ebenfalls -sowie unter der CLI- verschiedenen Quotas betreffend den Logs gesetzt werden!
Unter FortiOS 5.2 ist weiter zu berücksichtigen das es zur Konfiguration des Device Disk ebenfalls eine Filter Konfiguration
existiert. Dabei ist zu beachten, dass die "severity" auf "informatione" steht damit des gesamte Traffic geloggt wird:
# config log disk filter
# set severity information
# set forward-traffic enable
# set local-traffic enable
# set multicast-traffic enable
# set sniffer-traffic enable
# set anomaly enable
# set netscan-discovery enable
# set netscan-vulnerability enable
# set voip enable
# set dlp-archive enable
# end
Wie schalte ich auf einer FortiGate das Logging im Memory ein?
Folgendes Kommando in der CLI wird benützt um das Logging im Memory zu aktivieren:
NOTE Dieser Befehl steht ab FortiOS 5.0 sowie 5.2 nicht mehr bei allen Devices zur Verfügung dh. die Software Matrix gibt Auskunft ob die Funktion des "Memory Logging" beim entsprechenden Device noch zur Verfügung steht: FortiOS Software Matrix
FortiOS 5.0
# config log memory setting
# set status enable
# set diskfull overwrite
# set ips-archive enable
# end
FortiOS 5.2
# config log memory setting
# set status enable
# set diskfull overwrite
# end
NOTE Wenn unter FortiOS 5.2 das "memory" Logging eingeschaltet wird muss berücksichtigt werden, dass im zuständigen
Filter für das "memory" Logging die "severity warning" gesetzt ist. Dies bedeutet es wird nicht der gesamte
Traffic geloggt sondern nur "warning's". Wir empfehlen die "severity" für ein gesamtes Logging auf "information"
zu setzen:
# config log memory filter
# set severity information
# set forward-traffic enable
# set local-traffic enable
# set multicast-traffic enable
# set sniffer-traffic enable
# set anomaly enable
# set netscan-discovery enable
# set netscan-vulnerability enable
# set voip enable
# set dlp-archive enable
# end
Wenn das Logging im Memory aktiviert wird so werden 10% des zur Verfügung stehenden Memory's benutzt für das Logging. Ist dieser Bereich aufgebraucht wird der Bereich erneut überschrieben dh. durch die Funktion "set diskfull overwrite". Wird ein Neustart des Device's durchgeführt -und Memory Logging ist aktiviert- so wird durch den Neustart das Memory gelöscht und somit auch sämtliche Logs die vorhanden waren. Zusätzlich kann für das Memory Logging eine Warning (5.0 / 5.2) sowie die Grösse konfiguriert werden:
# config log memory global-setting
# set full-final-warning-threshold [Setze den thresold 3 - 100; Standard 95]
# set full-first-warning-threshold [Setze den thresold 1 - 98; Standard 75]
# set full-second-warning-threshold [Setze den thresold 2 - 90; Standard 99]
# set max-size [Setze den maximum Buffer in Bytes; Standard 65536]
# end
Wenn ein Disk Logging aktiviert ist sollte darauf geachtet werden nicht zusätzlich im Memory zu loggen. Informationen betreffend Disk Logging siehe Artikel:
FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_auf_der_Disk_ein.3F
Wie kann ich eine Verbindung/Logging zum FortiAnalyzer konfigurieren?
# config log fortianalyzer setting
# set status enable
# set ips-archive enable
# set server [IPv4 Adresse des FortiAnalyzers]
# set enc-algorithm default
# set localid [Lokale ID zB Name der Firewall]
# set conn-timeout [Timeout für die Verbindung; Standard 10]
# set monitor-keepalive-period [Standard 5]
# set monitor-failure-retry-period [Standard 5]
# set source-ip [Source IP der Firewall; Standard 0.0.0.0]
# set upload-option realtime
# set reliable enable
# end
NOTE Diese Konfiguration "realtime" bedeutet, dass die Logs "real-time" zum FortiAnalyzer gesendet wird. Wird unter "upload-option" nicht "realtime" sondern "store-and-upload" gesetzt werden die Disk auf der Disk zwischengespeichert und dann zu einem gesetzten Zeitpunkt zum FortiAnalyzer hochgeladen (upload-interval). Die Option "store-and-upload" kann jedoch nur konfiguriert werden für Devices die über eine Disk verfügen sowie auf Disk das "Logging" aktivieren können. Unter FortiOS 5.2 wurde das "Logging" auf Disk für Devices kleiner als FortiGate 100D deaktiviert und somit kann diese Option für diese Devices nicht gesetzt werden. Weitere Informationen betreffend FortiOS 5.2 und Logging findet man im nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F Desweiteren sollte unter FortiOS 5.2 für den FortiAnalyzer dessen Filter kontrolliert werden. Dies bedeutet: Der Filter wird über eine "severity" gesteuert. Für ein gesamtes Logging muss diese auf "information" gesetzt werden # config log fortianalyzer filter # set severity information # set forward-traffic enable # set local-traffic enable # set multicast-traffic enable # set sniffer-traffic enable # set anomaly enable # set netscan-discovery enable # set netscan-vulnerability enable # set voip enable # set dlp-archive enable # end
Gibt es für die Fortigate betreffend FortiOS ein Dokument betreffend Log Referenzen?
Nachfolgendes Dokument gibt Aufschluss über die Log Referenz einer Fortigate dh. es zeigt die Log Nachrichten und mit deren Codes und wie diese Interpretiert werden:
FortiOS 4
Datei:FortiGate Log Message Reference.pdf
FortiOS 5.0
Datei:FortiGate-Log-Message-Reference-50.pdf
FortiOS 5.2
Datei:FortiGate-Log-Message-Reference-52.pdf
Kann man bei einem Fortigate Device das Logging optimieren?
Startend mit MR3 Patch 7 wurde das Logging und Reporting auf Fortigate Devices optimiert. Um basierend auf diesem Patch Level eine weitere Optimierung zu erzielen sieh folgendes Dokument:
Datei:FortiOS-v4+0-MR3-Logging-Optimization.pdf
Das Kommando "diagnose log test" kann nicht unter FortiOS 5.0.2 ausgeführt werden?
Dieser Befehl testet die Log Funktionen dh. wird dieser Befehl auf der Kommandozeile ausgeführt, wird für jedes existierende Log ein Log Eintrag erstellt. Dies bedeutet anhand dieses Befehls kann die Log Funktion zB für Syslog, FortiAnalyzer etc. getestet werden.
NOTE "diagnose log test" steht aber FortiOS 5.0.2 nicht mehr zur Verfügung. Ein ähnlicher oder gleichfertiges
Kommando ist in Planung (Fortinet Mantis #0194888)! Dies sollte für den Release 5.0.4 der Fall sein dh.
neuste Informationen bestätigen, dass das Kommando "diagnose log test" wiederum implementiert wird. Mit dem
Release 5.0.4 wurde der Befehl "diagnose log test" wiederum eingeführt (unverändert wie in der Vergangenheit)!
Wie kann ich auf einer Fortigate die Logs zusätzlich einem Syslog Server senden?
Ausgehend davon, dass wir einen "syslog" Server haben basierend auf CentOS 5.0 / 5.2 ist folgendermassen vorzugehen damit die Fortigate die Logs diesem Syslog Server sendet:
FortiGate Konfiguration
# config log syslogd setting
# set status enable
# set server [FQDN Syslog Server]
# set reliable [Aktiviere TCP-514 Verbindung; Per Standard deaktiviert resp. UDP-514]
# set port [Standard 514]
# set csv [enable | disable]
# set facility [Per Standard local0]
# set source-ip [Source IP der FortiGate; Standard 0.0.0.0]
# end
Unter FortiOS 5.2 steht für den Syslog der Filter auf "warning" dh. für ein gesamtes Logging muss dieser auf
"severity" information gesetzt werden. Ebenfalls steht unter FortiOS 5.2 für Syslog die "facility" auf "local7"
was wiederum "warning" entspricht. Diese Position sollte kontrolliert werden un für ein gesamtes Logging auf
"local0" gesetzt werden. Um auf der FortiGate einen Syslog Server Filter zu setzen siehe nachfolgenden
Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_nur_bestimmte_Informationen_betreffend_Logging_zu_einem_Syslog_Server_senden.3F
Syslog Server Konfiguration CentOS 5.X
- Als Erstes muss auf dem CentOS der "syslog" Server so konfiguriert werden damit er von einem
Remote Server "syslog" Nachrichten überhaupt annimmt. Führe folgendes durch:
# vi /etc/sysconfig/syslogd
--------------- /etc/sysconfig/syslogd ---------------
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-m 0 -r"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for "group" and "other".
--------------- /etc/sysconfig/syslogd ---------------
NOTE Aktiviere unter "SYSLOGD-OPTIONS" den Schalter -r denn dieser ist zuständig damit überhaupt
Remote Server Syslog Nachrichten entgegengenommen werden!
- Nun legen wir ein neues Log an und konfigurieren im "syslog" Server WELCHE Nachrichten entgegengenommen
werden sollen. Zu diesem Zweck definieren wir eine "Facility" dh. "local0.*. Diese Facility definieren
wird später ebenfalls auf der Fortigate. Durch die Differenzierung über die Facility können vers. Fortigate's
diesem "syslog" Server Nachrichten senden und somit die vers. Log's unterschieden werden:
# vi /etc/syslog.conf
--------------- /etc/syslog.conf ---------------
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
auth.info;authpriv.info;cron.info;daemon.info;ftp.info;kern.info;lpr.info;mark.info;news.info;security.info;syslog.info;user.info;uucp.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
# Save Fortigate log messages to fortigate.log
local0.* /var/log/fortigate.log
#*.* @loghost
--------------- /etc/syslog.conf ---------------
NOTE Beachte dabei, dass die Leerschläge/Zwischenräume "gezwungenermassen" (Fileformat) Tabulatoren
sein müssen! Um das Format zu überprüfen kann folgender Befehl abgesetzt werden:
# m4 -D LOGHOST /etc/syslog.conf
- Nun legen wir das entsprechende Log an und versehen es mit den nötigen Rechten. Danach kann der "syslog"
Service neu gestartetn werden um die Konfiguration zu aktivieren:
# touch /var/log/fortigate.log
# chmod 644 /var/log/fortigate.log
# chown root:root /var/log/fortigate.log
# service syslog stop
# service syslog start
- Um das Log in Echtzeit anzuschauen führe folgenden Befehl aus (um abzubrechen benütze Ctrl + C):
# tail -f /var/log/fortigate.log
- Als Nächstes müssen wir die Fortigate anweisen die Logs diesem konfigurierten "syslog" Server zu senden dh.
führe folgendes durch:
Log&Report > Log Config > Log Setting
--> Aktiviere die Position "Syslog"
--> Definiere die "syslog" Server IP oder den FQDN
--> Definiere den Port 514
--> Setze den "Minimum log level" auf Information
--> Setze die "Facility" auf die Definition die wir im File "syslog.conf definiert haben dh. local0
--> Aktiviere die Position "Enable CSV Format"
--> Bestätige die Konfiguration
NOTE Für die Uebermittlung der Log Nachrichten zum "syslog" Server benötigen wir KEINE Policy da der Traffic
von der Fortigate selber initiert wird. In bestimmten Konstellation kann des vorkommen, dass die "syslog"
Nachrichten mit der falschen Source IP dem "syslog" Server gesendet werden dh. um diese Source IP zu
manipulieren siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Source_IP_setzen_f.C3.BCr_Fortigate_eigene_initierte_Mgmt._Service_.28SNMP_.2C_Syslog_.2C_FortiAnalyzer_.2C_Alert_Email_.2C_FortiManager.29.3F
- Nun sollten die Nachrichten auf dem "syslog" Server gesendet werden und diese sollten im Log "fortigate.log"
ersichtlich sein. Um dies zu testen resp. Test Nachrichten zu generieren kann folgender Befehl benützt werden:
# diagnose log test
NOTE Weitere Informationen zum Kommando "diagnose log test" siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Das_Kommando_.22diagnose_log_test.22_kann_nicht_unter_FortiOS_5.0.2_ausgef.C3.BChrt_werden.3F
- Kommt es dabei zu Problem und es muss verifiziert werden "ob" die Fortigate diese "syslog" Nachrichten überhaupt
sendet benütze folgenden Befehl:
# tcpdump -nnp -i eth0 ip dst [Syslog Server IP] and port 514
- Um das Log "/var/log/fortigate.log" Täglich zu rotieren erstelle das File "/etc/logrotate.d/fortigate":
# vi /etc/logrotate.d/fortigate
--------------- /etc/logrotate.d/fortigate ---------------
/var/log/fortigate.log {
rotate 30
daily
sharedscripts
postrotate
nomail
/usr/bin/killall -HUP syslogd
endscript
}
--------------- /etc/logrotate.d/fortigate ---------------
Die Konfiguration kann getestet werden mit folgenden Befehl:
# logrotate --force /etc/logrotate.d/fortigate
Wie kann ich nur bestimmte Informationen betreffend Logging zu einem Syslog Server senden?
Nun wenn ein Syslog Server konfiguriert wird so werden per Standard alle Events zum Syslog Server gesendet. Sollen nur bestimmt Informationen zum Syslog Server gesendet werden so kann der "syslogd filter" benutzt werden um zu bestimmen "welche" Informationen gesendet werden sollen:
NOTE Diese Konfigurations Möglichkeit gilt für FortiOS 5.0 / 5.2!
# config log syslogd filter
# get
severity : information
forward traffic : enable
local-traffic : enable
multicast-traffic : enable
sniffer-traffic : enable
anomaly : enable
netscan-discovery : enable
netscan-vulnerability : enable
voip : enable
Für FortiOS 4 MR3 gilt für die Konfiguration eines Filter folgendes:
# config log syslogd filter
# get
app-ctrl : enable
attack : enable
dlp : enable
email : enable
forward-traffic : enable
invalid-packet : enable
local-traffic : enable
netscan : enable
severity : information
traffic : enable
virus : enable
voip : enable
web : enable
analytics : enable
anomaly : enable
app-ctrl-all : enable
blocked : enable
discovery : enable
dlp-all : enable
dlp-docsource : enable
email-log-google : enable
email-log-imap : enable
email-log-msn : enable
email-log-pop3 : enable
email-log-smtp : enable
email-log-yahoo : enable
ftgd-wf-block : enable
ftgd-wf-errors : enable
infected : enable
multicast-traffic : enable
oversized : enable
scanerror : enable
signature : enable
suspicious : enable
switching-protocols : enable
url-filter : disable
vulnerability : enable
web-content : enable
web-filter-activex : enable
web-filter-applet : enable
web-filter-command-block: enable
web-filter-cookie : enable
web-filter-ftgd-quota: enable
web-filter-ftgd-quota-counting: enable
web-filter-ftgd-quota-expired: enable
web-filter-script-other: enable
Um ein Filter zu aktivieren resp. deaktivieren benutze:
# set [Filter Name] [enable oder disable]
Wie kann ich für bestimmte Log Devices wie Disk, Memory usw. Log Filter setzen?
Unter FortiOS 5.0 / 5.2 steht ein Eventfilter zur Verfügung um Grundsätzlich bestimmte Logs wie System, Wireless etc. zu aktiveren/deaktivieren (per Standard alle aktiviert):
# config log eventfilter
# set event enable
# set system enable
# set vpn enable
# set user enable
# set routr enable
# set wireless-activity enable
# set wan-opt enable
# end
Eine weitere Möglichkeit ist auf den "Log Devices" einen Filter zu setzen für bestimmte Log Einträge bedeutet:
# config log [disk, memory, fortianalyzer, syslogd] filter
# severity information
# fortward-traffic enable
# local-traffic enable
# multicast-traffic enable
# sniffer-traffic enable
# anomaly enable
# netscandiscovery enable
# netscan-vulnerability enable
# voip enable
# dlp-archive enable
# end
NOTE Unter FortiOS 5.2 sind diese Filter auf allen Devices auf "warning" gesetzt dh. es findet nur ein Logging
statt wenn eine Warnung ausgegeben werden soll. Für ein gesamtes Logging muss die "severity" auf "information"
gesetzt werden!
Kann ich den Memory Bedarf im Zusammenhang mit dem Logging optimieren?
Nun der Memory Bedarf steht im direkten Zusammenhang mit dem Logging dh. wenn viel geloggt wird (Hoher I/O resp. Input/Output) und die SQL Database wächst steigt der Memory Bedarf. Dies kann in dem Sinne optimiert werden indem man die maximale Grösse der SQL Datenbank begrenzt. Die minimale Grösse beträgt 512 MB sowie die maximal Grösse 65536 MB. Die Standard Grösse die Konfiguriert ist beträgt 1024 MB für FortiOS 4.3 sowie 100 MB für FortiOS 5.0/5.2. Um die Grösse anzupassen benütze folgenden Befehl:
FortiOS 4.3.x:
# config system global
# set max-sql-log-size [Angabe der Grösse dh. "1 - 65536"; Default 1024]
# end
FortiOS 5.0:
# config log disk setting
# set sql-max-size [Angabe der Grösse dh. "1 - 65536"; Default 100]
# end
NOTE Unter FortiOS 5.2 existiert die Option "sql-max-size" nicht mehr!
Eine weitere Möglichkeit das Memory zu optimieren ist die zur Verfügung stehenden SQL Filter anzupassen dh. WAS in die SQL Database geloggt werden soll und was nicht:
# config log disk setting
# config sql-logging
# set app-ctrl
# set attack disable
# set dlp disable
# set netscan disable
# set spam disable
# set traffic disable
# set virus disable
# set webfilter disable
# end
NOTE Ab FortiOS 5.2 existiert die Option "config sql-logging" nicht mehr!
Kann ich die SQL Datenbank für das Logging neu Initialisieren?
Das Logging einer FortiGate geschieht in einer SQL Database. Wenn es aus irgendwelchen Gründen nötig wird diese neu zu initialisieren kann folgender Befehl dazu ausgeführt werden:
# execute log recreate-sqldb
This will recreate the SQL log database.
All local logs recoreded with SQL logging will be deleted!
Do you want to continue? (y/n) y
SQL log database is being recreated in the background
NOTE Diese Kommando existiert unter FortiOS 5.2 nicht mehr!
Kann man die Logs die das System selber produziert deaktivieren?
Das System selber produziert Logs wenn zB der NTP Server kontaktiert werden oder zB FortiGuard! Dieser Traffic läuft über die sogenannten "Local-In Policy". Dies bedeutet es existieren System bedingte Loca-In Policy und/oder Manuelle. Möchte man diese aktivieren und/oder deaktivieren steht folgende Konfiguration zur Verfügung um dies zu gewährleisten:
NOTE Ab 5.2 steht die erwähnte Funktion für 100D und kleiner nicht mehr über
Gui zur Verfügung sondern nur noch über CLI:
Log & Report > Log Config > Log Settings > Local Traffic Logging
Möchte man die Funktion auf Kommandozeile manipulieren so benütze folgende Befehle:
FortiOS 5.0
# config log setting
# fwpolicy-implicit-log [enable oder disable]
# fwpolicy6-implicit-log [enable oder disable]
# set local-in-allow [enable oder disable]
# set local-in-deny [enable oder disable]
# set local-out [enable oder disable]
# end
FortiOS 5.2
# config log setting
# fwpolicy-implicit-log [enable oder disable]
# fwpolicy6-implicit-log [enable oder disable]
# set local-in-allow [enable oder disable]
# set local-in-deny-unicast [enable oder disable]
# set local-in-deny-broadcast [enable oder disable]
# set local-out [enable oder disable]
# end
NOTE Zusätzlich zu den explizit "local-in" Optionen steht bei jedem Log Device der Filter zur Verfügung der betreffend "local-traffic" ebenfalls konfiguriert werden kann. Dazu siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_bestimmte_Log_Devices_wie_Disk.2C_Memory_usw._Log_Filter_setzen.3F
Weitere Informationen zur Thematik Local-In Policy siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F]]
Wie konfiguriere ich auf einer FortiGate eine Log-Rotation?
Ein Log einer FortiGate wird per Standard nicht "rotiert" dh. zum Beispiel auf täglicher Basis. Möchte man dies Konfigurieren führe folgendes durch:
NOTE Unter FortiOS 5.2 steht für kleinere Devices 100D die Disk nicht mehr zur Verfügung für das Logging. Aus diesem Grund kann für diese Devices kein Log Rotation mehr konfiguriert werden. Weitere Informationen betreffend FortiOS 5.2 und Logging im Zusammenhang mit Disk siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
# config log disk setting
# set roll-schedule [daily oder weekly]
# set roll-time [ Gebe die Zeit an im Format hh:mm]
# get
status : enable
ips-archive : enable
log-quota : 1024
dlp-archive-quota : 500
report-quota : 50
upload : disable
upload-format : compact
drive-standby-time : 0
full-first-warning-threshold: 75
full-second-warning-threshold: 90
full-final-warning-threshold: 95
max-log-file-size : 100
storage : (null)
roll-schedule : daily
roll-time : 00:00
diskfull : overwrite
# end
Wie kann ich automatisiert die Log Files auf einen FTP Server/FortiAnalyzer spielen?
Wenn die Log Files auf einer Fortigate automatisiert auf einen FTP Server gespielt werden sollen muss zuerst eine Log-Rotation eingerichtet werden. Dazu führe folgendes aus:
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_eine_Log-Rotation.3F
NOTE Unter FortiOS 5.2 steht für kleinere Devices 100D die Disk nicht mehr zur Verfügung für das Logging. Aus diesem Grund kann für diese Devices kein Log Rotation mehr konfiguriert werden. Weitere Informationen betreffend FortiOS 5.2 und Logging im Zusammenhang mit Disk siehe nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
Danach steht folgendes zur Verfügung für die Konfiguration:
# set upload [Aktiviere oder Deaktiviere einen Upload der File anhand "enable oder disable"]
# set upload-delete-files [Aktiviere oder Deaktiviere die Löschung der Logs lokal auf der Fortigate "nach" dem Upload anhand "enable oder disable"]
# set upload-destination [Gebe das Ziel an für den Upload dh. "rortianalyzer oder "ftp-server"]
# set upload-format [Gebe an ob die Log Files beim Upload Komprimiert werden sollen anhand "compact oder text"]
# set upload-ssl-conn [Gebe an sofern ein FortiAnalyzer für den Upload benutzt wird wie Verschlüsselt werden soll dh. "default | high | low | disable"]
# set uploaddir [Gebe das Upload Verzeichnis an in der Form zB /Log-Archiv/ ]
# set uploadip [Wenn ein FTP Server benutzt wird für den Upload gebe die IP Adresse des FTP Server an]
# set uploaduser [Wenn ein FTP Server benutzt wird für den Upload gebe den Usernamen des FTP Server an]
# set uploadpass [Wenn ein FTP Server benutzt wird für den Upload gebe das Passwort des FTP Server an]
# set uploadport [Wenn ein FTP Server benutzt wird für den Upload gebe den benutzten Port des FTP Server an]
# set uploadsched [Aktiviere oder Deaktiviere den Upload zu einer bestimmten Zeit dh. anhand "disable | enable"]
NOTE Wenn "uploadsched" deaktiviert ist wird per Standard der Upload "nach" dem rotieren den Log Files ausgeführt!
# set uploadtime [Gebe hier eine spezifische Upload Zeit an in Form hh:mm sofern "uploadsched" auf enabled steht]
# set uploadtype [Gebe an "welche" File berücksichtigt werden sollen für den Upload dh. "attack event im spamfilter traffic virus voip webfilter"]
# set uploadzip [Gebe an ob die Log Files "nach" dem Upload anhand ZIP Komprimiert werden sollen dh "disable | enable"]
NOTE Mit der Option "source-ip" kann die Source IP angegeben werden mit der die FortiGate Ihren Request zum FTP Server absetzt!
Daraus ergiebt sich zB folgendes Scenario:
# config log disk setting
# set upload enable
# set upload-delete-files disable
# set upload-destination ftp-server
# set uploaddir /log-archive/
# set uploadip 193.193.135.65
# set uploaduser local.intra
# set uploadpass only4also
# set uploadport 21
# set uploadsched disable
# set uploadtype traffic event virus webfilter IPS spamfilter dlp-archive anomaly voip dlp app-ctrl netscan
# set uploadzip enable
# get
status : enable
ips-archive : enable
log-quota : 1024
dlp-archive-quota : 500
report-quota : 50
upload : enable
upload-destination : ftp-server
uploadport : 21
source-ip : 0.0.0.0
uploadpass : *
uploaddir : /log-archive/
uploadtype : traffic event virus webfilter attack spamfilter dlp-archive dlp app-ctrl
uploadzip : enable
upload-format : compact
uploadsched : disable
uploadtime : 0
drive-standby-time : 0
upload-delete-files : disable
full-first-warning-threshold: 75
full-second-warning-threshold: 90
full-final-warning-threshold: 95
max-log-file-size : 100
storage : (null)
roll-schedule : daily
roll-time : 00:00
diskfull : overwrite
uploadip : 193.193.135.65
uploaduser : local.intra
# end
Nach der Uebertragung werden die Files in folgender Form abgelegt (Beispiel Traffic Log):
tlog.FGT60C3G12013754.root.20120927000000.gz
NOTE Wurden die Logs von der FortiGate auf einen zB FTP Server wegkopiert können diese nicht mehr für eine Analyze zurück auf die FortiGate kopiert werden. Ebenfalls können die Logs nicht auf einen FortiAnalyzer Zwecks Analyse kopiert werden sofern der Device resp. die FortiGate nicht im FortiAnalyzer konfiguriert wurde. Auch wenn der Device resp. die FortiGate auf dem FortiAnalyzer konfiguriert wurde müssen Zwecks Analyse die Logs auf dem FortiAnalyzer importiert werden! Wenn Logs lokal nachträglich analysiert werden sollen kann ein Tool wie "Splunk" zur Hilfe genommen werden (http://www.splunk.com).
Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird das Logging bei kleineren Devices (100D und kleiner) deaktiviert?
Bei kleineren Devcies wie zB 40C, 60C/D kann das Logging durchaus ein Problem darstellen dh. betreffend Performance und betreffend beanspruchung des Devices. Dies bedeutet wenn ein kleineren Device relativ stark belastet wird und alles geloggt wird kann es nach längeren Zeit zu Problemen mit der Disk (flash-disk) kommen (zB Block NAND error). Aus diesem Grund sollte nur das geloggt werden was wirklich Sinn macht! Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird aus diesem Grund das "local disk" Logging komplett deaktiviert dh. es wird durch den Patch folgender Befehl abgesetzt:
# config log disk setting
# set status disable
# end
NOTE Untr FortiOS 5.2 wurde das Logging für FortiGate 100D auf Disk komplett deaktiviert. Weitere
Informationen siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
Ein entsprechenden Hinweis sieht man in den "Release Notes":
Datei:FortiOS-v4.0-MR3-Patch-Release-12-Release-Notes.pdf Datei:FortiOS-v5.0-Patch-Release-2-Release-Notes.pdf
Dort wird ebenfalls daraufhingewiesen, dass bei allen aufgeführten Devices nach dem Upgrade ein entsprechender Hinweis eingeblendet wird sei es über Gui oder über CLI (ausgenommen bei Geräten der 80C Reihe):
GUI:
Datei:Fortinet-698.jpg
CLI:
For optimal performance of your FortiGate unit, disk logging has been disabled during upgrade. It is recommended
to enable logging to FortiCloud on this unit to utilize the extended logging & reporting capabilities.
Dies bedeutet: Fortinet empfiehlt den Kunden das Logging für "FortiCloud" zu aktivieren. Weitere Informationen siehe Artikel:
FortiCloud:FAQ
Ebenfalls kann im Gui "neu" der Log Devices für FortiCloud (set log-device forticloud) gesetzt werden:
FortiGate-5.0-5.2:FAQ#Wie_.C3.A4ndere_ich_im_WebGui_die_.22Log_Location.22.3F
Wenn weiterhin auf der Disk geloggt werden soll so muss diese Funktion wieder aktiviert werden:
# config log disk setting
# set status enable
Enabling disk logging on this FortiGate unit will impact overall performance and reduce the lifetime of the unit. Fortinet recommends logging to FortiCloud.
# end
NOTE Wurde innerhalb der Konfiguration "config log disk setting" zusätzliche Konfigurationen durchgeführt wie zB eine
Log-Rotation so sind diese Informationen nach eine Upgrade verloren da diese durch die Deaktivierung gelöscht werden.
Sind die Informationen nicht mehr vorhanden können diese im Backup des Konfig File verifiziert werden!
Ab FortiOS 5.2 wird das Logging auf Disk (FortiGate 100D und kleiner) deaktiviert und Disk steht nicht mehr zur Verfügung?
Unter FortiOS 5.2 wurden betreffend Logging mehrere Modifikationen durchgeführt. Dies betrifft "nicht nur" das Format sondern für das "effektive" Logging selber! Dies bedeutet das "flash-based" Logging (Disk) wurde komplett deaktiviert für folgende Modelle:
NOTE Bei einem Upgrade von FortiOS 5.0.6/7 auf FortiOS 5.2 erscheint auf der Console folgende Meldung:
For optimal performance of your FortiGate unit,
disk logging and reporting features have been disabled during upgrade.
It is recommended to enable logging to FortiCloud on this unit
to utilize the logging & reporting capabilities.
Diese Meldung indiziert das ein Logging auf Disk für diese Modelle nicht zur Verfügung steht. Im
Grundsatz bedeutet dies folgendes: Alle Modelle kleiner als FG-100D (Ausnahme siehe unten) mit
Ausnahme der FG-80D sowie FG/FWF-90D Series kann kein Logging auf Disk mehr konfiguriert werden!
• FG-100D (P09340-04 or earlier)
• FG-20C
• FG-20C_ADSL_A
• FG-200B/200B_POE (Without FSM)
• FG-300C_Gen1 (P09616-04 or earlier)
• FG-40C
• FG-60C
• FG-60C-POE
• FG-60C-SFP
• FG-70D
• FG-60D
• FG-80C/80CM (P05403-05, P05446-05)
• FW-20C
• FW-40C
• FW-20C_ADSL_A
• FW-60CX_A
• FW-60C
• FW-60CM (P08962-04 or later)
• FW-60CX_ADSL-A
• FW-60D
• FW-60D-POE
• FW-80CM (P05405-06 or later)
NOTE Um für die Devices die "System Part Number" zu erruieren dh. zB "P09340-04" kann
folgender Befehl auf der CLI ausgeführt werden:
# get system status | grep Part-Number
Somit wenn in der Version 5.0.x und tiefer für untere Modelle ein "flash-based" Logging konfiguriert wurde, muss diese Konfiguration modifiziert werden dh. es stehen folgende Logging Device's zur Verfügung:
Memory Logging
FortiAnalyzer
FortiCloud
Syslog
NOTE Weitere Informationen betreffend Logging auf Memory -sowie "was" konfiguriert werden kann für das Logging- siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_im_Memory_ein.3F
FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
Weitere Informationen auf welchem Device welche Log Methode zur Verfügung steht siehe nachfolgenden Artikel:
FortiOS 5.2 Software Matrix
Wird bei solchen Device's die Disk anhand folgenden Befehls überprüft erscheint folgendes:
# get system status | grep Log
Log hard disk: not available
Dies bedeutete in früheren Versionen, dass man die Disk -sofern überhaupt vorhanden- formatieren musste. Dies ist nachwievor möglich anhand folgenden Befehls:
# execute formatlogdisk
NOTE Wird dies durchgeführt, dann wird die Disk zwar formatiert und ein Neustart ausgeführt jedoch
erscheint eine Fehlermeldung:
The system is going down Now!
Error while writing disk.chk 2(No such file or directory)
Was bedeuten die neuen Logging Options in der Security Policy ab FortiOS 5.02?
Bis anhin konnte in der Policy das Logging entweder aktiviert oder deaktivert werden. Ab FortiOS 5.02 / 5.2 hat man die Möglichkeit verschiedenen Logging Options im Web Gui zu wählen. Nachfolgend eine Beschreibung was diese Optionen im Logging beinhalten sowie die entsprechenden Befehle auf der Kommandozeile:
• No Log -> Es werden keine Traffic Logs geschrieben für diese Security Policy.
# config firewall policy
# edit [Gebe die entsprechende Policy ID an]
# set logtraffic disable
# end
• Log UTM -> Es werden nur Traffic Logs geschrieben für diese Security Policy sowie
für diese UTM Funktionen die aktiviert sind wie zB AntiVirus, WebFilter,
Application Control.
# config firewall policy
# edit [Gebe die entsprechende Policy ID an]
# set logtraffic utm
# end
• Log all -> Es werden alle Traffic Logs geschrieben für diese Security Policy sei es
Traffic Log sowie UTM Funktionen die aktiviert sind. Wenn diese Option
aktiviert ist kann ein "Capture Packet" durchgeführt werden.
# config firewall policy
# edit [Gebe die entsprechende Policy ID an]
# set logtraffic all
# end
Wie kann ich alle Logs zurücksetzen resp. löschen?
Folgender Befehl löscht "alle" Logs unwiederuflich:
# execute log delete-all
NOTE Verfügt der Device über keine Harddisk und es wird im Memory geloggt, werden
ebenfalls diese Logs im Memory durch diesen Befehl gelöscht.
Nach Eingabe des Kommandos muss bestätigt werden damit die Logs zurückgesetzt resp. gelöscht werden. Alle Logs gehen unwiederruflich verloren.
Wie kann ich bestimmte Logs in einer bestimmten Kategorie auf CLI auflisten?
# execute log list [Angabe der entsprechenden Kategorie]
NOTE Kategorien sind: traffic, event, virus, webfilter, attack, spam, content, im, voip, dlp, and app-ctrl.
Wie aktiviere ich auf einer FortiGate das "Extended-UTM-Log"?
Das "Extended-UTM-Log" steht ab FortiOS 5.0 zur Verfügung und loggt Events in den vers. spezifizierten Kategorieren wie Antivirus, IPS usw. in spezielle sperate Logs. Nachfolgende Artikel geben Auskunft wie das Log in den vers. Kategorieren aktiviert wird:¨
NOTE Ab FortiOS 5.2 existiert das Kommando "extended-utm-log" nicht mehr! Dies bedeutet: Diese
Konfiguration anhand "extended-utm-log" muss nicht mehr durchgeführt werden sondern ist
per Standard das normale Log Verhalten unter FortiOS 5.2. Dies wiederum bedeutet FortiOS 5.2
loggt per Standard in "seperate" (wie extended-utm-log enabled) Log Files.
FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_einen_DLP_Sensor_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_Antivirus_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_WebFilter_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_eine_Spamfilter_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_Voip_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_die_SSL_Proxy_Options_auf_einer_FortiGate_das_Extended-UTM-Log.3F FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_Application_Control_auf_einer_FortiGate_das_Extended-UTM-Log.3F
Desweiteren -betreffend Log Konfiguration- empfehlen wir folgenden Artikel einzusehen:
FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
Wie kann ich verhindern das ein Usernamen in den Log's angezeigt wird?
Ab FortiOS 5.0.5 / 5.2 ist es möglich "usernamen" in den Logs mit einem "anonymous" zu versehen dh. anstelle des Usernamens wird "anonymous" angezeigt. Dazu muss folgendes durchgeführt werden:
# config log setting
# set user-anonymize enable
# end
Kann ich betreffend Logging die Kapazität auf einer FortiGate erhöhen?
Für das Logging ist der Prozess "miglogd" zuständig. Dazu siehe auch folgender Artikel:
FortiGate-5.0-5.2:FAQ#Prozess_.22miglogd.22_zeigt_permanente_99.25_Auslastung_und.2Foder_FortiGate_reagiert_sehr_langsam.3F
Wenn der Prozess "miglogd" eine hohe Auslastung zeigt kann das durchaus auch von einem hohen Aufkommen der Logs herstammen jedoch muss nicht dh. der Umstand weshalb "miglod" eine hohe Auslastung zeigt muss genau eruiert werden. Wenn ein hohes Aufkommen der Logs zuständig ist für die hohe Auslastung von "miglogd" können die Deamons die für "miglogd" zur Verfügung stehen erhöt werden. Per Standard stehen 8 Deamons zur Verfügung. Um die Deamons für "miglogd" zur erhöhen was wiederum eine höhere Speicherauslastung zur Folge hat muss folgendes durchgeführt werden (ab FortiOS 5.0.6 / 5.2):
# config system global
# set miglogd-children [Anzahl Deamons 0 - 15; Standard Wert 8]
# end
NOTE Wenn die Anzahl der Deamons verändert wird gehen keine Logs verloren! Für FortiOS 5.2
gilt der Standard Wert "0"! Um festzustellen wieso die Anzahl zu vergrössern ist siehe
nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_detaillierte_Informationen_.C3.BCber_den_Log_Deamon_.28miglogd.29_anzeigen_lassen.3F
Wie sieht/führe ich eine vollständige Log Konfiguration auf einer FortiGate aus?
Nachfolgendes Beispiel zeig wie man auf einer FortiGate ALLE Logs aktiviert/deaktiviert (inkl. UTM-Log's) sowie diese einem FortiAnalyzer übermittelt:
NOTE Wenn über einen FortiAnalyzer geloggt wird kann durchaus jedes Log eingeschaltet werden. Wird jedoch
auf die Disk geloggt ist es "NICHT ZU EMPFEHLEN" alle Logs zu aktivieren da das exsessive Logging
auf der Disk einen event. Crash auf der Disk auslösen kann! Desweiteren sollte darauf geachtet werden,
das nur auf einen Device geloggt wird dh. zwei Device Log zu aktivieren kann Sinn machen ist jedoch
eher unüblich. Dies bedeutet auf die lokale Disk und auf den FortiAnalyzer zu loggen macht keinen Sinn,
denn wenn FortiAnalyzer aktiviert wird und das "gui" ebenfalls auf FortiAnalyzer gesetzt ist, werden
dort dh. im Gui die Logs die zum FortiAnalyzer übermittelt werden ebenfalls angezeigt!
Aktiviere/Deaktiviere für DLP UTM-Log/Log
# config dlp sensor
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# set dlp-log [enable | disable]
# set nac-quar-log [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
Aktiviere/Deaktiviere für Antivirus UTM-Log/Log
# config antivirus profile
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# set av-block-log [enable | disable]
# set av-virus-log [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
Aktiviere/Deaktiviere für VoiP UTM-Log/Log
# config voip profile
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# config sip
# set status [enable | disable]
# set log-violations [enable | disable]
# set log-call-summary [enable | disable]
# end
# config sccp
# set status [enable | disable]
# set log-call-summary [enable | disable]
# set log-violations [enable | disable]
# end
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
Aktiviere/Deaktiviere für Application UTM-Log/Log
# config application list
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# set log [enable | disable]
# set other-application-log [enable | disable]
# set unknown-application-log [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" und/oder "log" nicht mehr!
Aktiviere/Deaktiviere für Deep-Inspection, SSL-SSL-Profile UTM-Log/Log
# config firewall deep-inspection-options
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# set ssl-invalid-server-cert-log [enable | disable]
# set allow-invalid-server-cert [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert "deep-inspection-options" nicht mehr und wurde verschoben in
"ssl-ssh-profile". Die Option "extended-utm-log" existiert nicht mehr:
# config firewall ssl-ssh-profile
# edit [Name des Profiles]
# set ssl-invalid-server-cert-log [enable | disable]
# end
Aktiviere/Deaktiviere für Protocol Options UTM-Log/Log
# config firewall profile-protocol-options
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# set oversize-log [enable | disable]
# set switching-protocols-log [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
Aktiviere/Deaktiviere für WebFilter UTM-Log/Log
# config webfilter profile
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# config web
# set log-search [enable | disable]
# end
# set log-all-url [enable | disable]
# set web-content-log [enable | disable]
# set web-filter-command-block-log [enable | disable]
# set web-filter-cookie-log [enable | disable]
# set web-filter-applet-log [enable | disable]
# set web-filter-jscript-log [enable | disable]
# set web-filter-js-log [enable | disable]
# set web-filter-vbs-log [enable | disable]
# set web-filter-unknown-log [enable | disable]
# set web-filter-referer-log [enable | disable]
# set web-filter-cookie-removal-log [enable | disable]
# set web-url-log [enable | disable]
# set web-invalid-domain-log [enable | disable]
# set web-ftgd-err-log [enable | disable]
# set web-ftgd-quota-usage [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
Aktiviere/Deaktiviere für WebFilter [Minimal] UTM-Log/Log
# config webfilter profile
# edit [Name des Profiles]
# set extended-utm-log enable
# config web
# set log-search [enable | disable]
# end
# set log-all-url enable
# set web-url-log enable
# set web-ftgd-err-log enable
# end
Aktiviere/Deaktiviere für Spamfilter UTM-Log/Log
# config spamfilter profile
# edit [Name des Profiles]
# set extended-utm-log [enable | disable]
# config imap
# set log enable
# end
# config pop3
# set log enable
# end
# config smtp
# set log enable
# end
# config mapi
# set log enable
# end
# config msn-hotmail
# set log enable
# end
# config yahoo-mail
# set log enable
# end
# config gmail
# end
# end
NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr! Neu dazugekommen
ist die Option:
# config spam-log [enable | disable]
Aktiviere/Deaktiviere Global Settings Log
# config log setting
# set brief-traffic-format [enable | disable]
# set daemon-log [enable | disable]
# set neighbor-event [enable | disable]
# set fwpolicy-implicit-log [enable | disable]
# set fwpolicy6-implicit-log [enable | disable]
# set gui-location [fortianalyzer]
# set log-invliad-packet [enable | disable]
# set local-in-allow [enable | disable]
# set local-in-deny [enable | disable]
# set local-out [enable | disable]
# set resolve-apps [enable | disable]
# set resolve-hosts [enable | disable]
# set resolve-ip [enable | disable]
# set user-anonymize [enable | disable]
# set log-user-in-upper [enable | disable]
# end
NOTE Ab FortiOS 5.2 existiert die folgenden Option nicht mehr:
gui-location
local-in-deny
resolve-apps
resolve-hosts
Neu dazugekommen sind folgende Optionen:
# set resolve-port [enable | disable]
# set local-in-deny-unicast [enable | disable]
# set local-in-deny-broadcast [enable | disable]
# set daemon-log [enable | disable]
# set neighbor-event [enable | disable]
# set brief-traffic-format [enable | disable]
Aktiviere/Deaktiviere Gui Location FortiOS 5.2 Only
# config log gui-display
# set location [Gebe an fortiguard | memory | disk | fortianalyzer | syslogd]
# set resolve-hosts [enable | disable]
# set resolve-apps [enable | disable]
# set fortiview-unscanned-apps [enable | disable]
# set fortiview-local-traffic [enable | disable]
# end
NOTE Ab FortiOS 5.2.2 stehen die Optionen "set fortiview-unscanned-apps" sowie "fortiview-local-traffic" zur Verfügung.
Diese Optionen stehen im Zusammenhang mit FortiView. Weitere Informationen siehe:
FortiGate-5.0-5.2:FAQ#In_FortiView_werden_.22unknown_app.22_sowie_.22local_traffic.22_angzeigt_und.2Foder_nicht_angezeigt.3F
Aktiviere/Deaktiviere Gui Monitor
# config system global
# set gui-utm-monitors enable
# end
NOTE Weitere Informationen zur Funktion "gui-utm-monitors" siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
Aktiviere/Deaktiviere Global Settings (Empfehlung] Log
FortiOS 5.0
# config log setting
# set fwpolicy-implicit-log enable
# set gui-location [fortianalyzer]
# set local-in-allow disable
# set local-in-deny disable
# set local-out disable
# set resolve-apps enable
# set resolve-hosts enable
# set resolve-ip enable
# set user-anonymize disable
# end
FortiOS 5.2
# config log setting
# set fwpolicy-implicit-log enable
# set local-in-allow disable
# set local-in-deny-unicast disable
# set local-in-deny-broadcast disable
# set local-out disable
# set resolve-ip enable
# set resolve-port enable
# set user-anonymize disable
# set daemon-log enable
# set neighbor-event disable
# set brief-traffic-format disable
# end
Aktiviere/Deaktivieren Network Visibility
# config system network-visibility
# destination-visibility [enable | disable]
# source-location [enable | disable]
# destination-hostname-visibility [enable | disable]
# hostname-ttl [Definiere TTL Standard 86400]
# hostname-limit [Definiere Anzahl Hostname Limit Standard 5000]
# destination-location [enable | disable]
# end
Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_beeinflusst_das_Kommando_.22config_system_network-visibility.22_die_Logs_und_die_enthaltenen_Informationen.3F
Aktiviere/Deaktiviere Eventfilter Log
# config log eventfilter
# set event [enable | disable]
# set router [enable | disable]
# set system [enable | disable]
# set user [enable | disable]
# set vpn [enable | disable]
# set wan-opt [enable | disable]
# set wireless-activity [enable | disable]
# end
Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_bestimmte_Log_Devices_wie_Disk.2C_Memory_usw._Log_Filter_setzen.3F
Aktiviere/Deaktiviere Logging Devices "fortianalyzer"
# config log fortianalyzer setting
# set status enable
# set ips-archive enable
# set server [FortiAnalyzer IP]
# set enc-algorithm default
# set localid [set a local ID for Device like Serial Nr.]
# set psksecret [Password for Preshared Key]
# set conn-timeout 10
# set monitor-keepalive-period 5
# set monitor-failure-retry-period 5
# set source-ip 0.0.0.0
# set upload-option realtime
# set reliabl enable
# end
# config log fortianalyzer filter
# severity information
# fortward-traffic enable
# local-traffic enable
# multicast-traffic enable
# sniffer-traffic enable
# anomaly enable
# netscandiscovery enable
# netscan-vulnerability enable
# voip enable
# dlp-archive enable
# end
Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_Verbindung.2FLogging_zum_FortiAnalyzer_konfigurieren.3F
Aktiviere/Deaktiviere Logging Devices "memory"
# config log memory setting
# set status [enable | disable]
# set diskfull overwrite
# end
# config log memory filter
# severity information
# fortward-traffic enable
# local-traffic enable
# multicast-traffic enable
# sniffer-traffic enable
# anomaly enable
# netscandiscovery enable
# netscan-vulnerability enable
# voip enable
# dlp-archive enable
# end
Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_im_Memory_ein.3F
Aktiviere/Deaktiviere Logging Devices "disk"
# config log disk setting
# set status [enable | disable]
# set diskfull overwrite
# end
# config log disk filter
# severity information
# fortward-traffic enable
# local-traffic enable
# multicast-traffic enable
# sniffer-traffic enable
# anomaly enable
# netscandiscovery enable
# netscan-vulnerability enable
# voip enable
# dlp-archive enable
# end
Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_auf_der_Disk_ein.3F
Aktiviere/Deaktiviere Logging Devices "syslogd"
# config log syslogd setting
# set status [enable | disable]
# set server [IPv4 Adresse; FQDN Syslog Server]
# set facility local0
# end
# config log syslogd filter
# severity information
# fortward-traffic enable
# local-traffic enable
# multicast-traffic enable
# sniffer-traffic enable
# anomaly enable
# netscandiscovery enable
# netscan-vulnerability enable
# voip enable
# dlp-archive enable
# end
Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_Fortigate_die_Logs_zus.C3.A4tzlich_einem_Syslog_Server_senden.3F
Aktiviere/Deaktiviere Logging Devices "fortiguard"
# config log fortiguard setting
# set status [enable | disable]
# end
Weitere Informationen dazu FortiCloud:FAQ
Kann ich auf einer FortiGate betreffend Log einen "Eigene Log Nachricht" erstellen?
Wenn logging aktiviert wurde auf einer FortiGate und dieses Log zB zu einem FortiAnalyzer übermittelt wird kann dort über das Event Management die Logs überwacht werden. Wenn ein entsprechender Eintrag erscheint kann ein Event ausgelöst werden. Natürlich kann dies über die bestehenden Standard Log Informationen gefiltert werden und so der Event ausgelöst werden. Wenn jedoch dies schwierig ist und man ein "Key-Word" benötigt steht man vor dem Problem "wie kommt das Key-Word in das Log". Dies kann auf einer FortiGate über die Funktion "custom-log-fields" bewerkstelligt werden. Als Erstes muss die entsprechende Policy ID eruiert werden in dem das "Key-Word" (custom-log-fields) konfiguriert resp. erscheinen soll:
# show firewall policy
Danach kann ein entsprechendes "custom-log-fields" erstellt werden:
# config log custom-field
# edit id [Gebe einen entsprechenden Integer an zB "1"]
# set name [Vergebe das entsprechende "Key-Word"]
# set value [Gebe die entsprechende Policy-ID]
# end
NOTE Als "name" sind nur "Alphanummerische" zeichen erlaubt. Die Gesamtlänge darf
16 Zeichen nicht übersteigen!
Bestehen verschiedene "custom-log-fields" und sollen diese in einer "Firewall Policy" kombiniert werden ist dies möglich und muss in der "Firewall Policy" selber definiert werden:
# config firewall policy
# edit [Gebe die entsprechende Policy-ID an]
# set custom-log-fields [Gebe den entsprechenden Integer an des "custom-field"; mehrere "custom-field" werden getrennt durch einen Leerschlag]
# end
NOTE Achte beim Test darauf das die entsprechende "Firewall Policy" für das Log aktiviert ist:
# config firewall policy
# edit [Gebe die entsprechende Policy-ID an]
# set logtraffic all
# end
Wie aktiviere ich auf einer FortiGate die "UTM Monitor" Funktion?
Unter FortiOS 4 MR3 wurden - per Standard - unter den UTM Profiles/Security Profiles die "UTM Monitor" angezeigt! Unter FortiOS 5.0 / 5.2 sind diese - per Standard - deaktiviert und stehen im direkten Zusammenhang mit den "Extended UTM Logs"! Möchte man die "UTM Monitor" wieder aktivieren müssen die "Extended UTM Log's" vorgängig korrekt konfiguriert resp. aktiviert werden. Wie dies durchgeführt wird siehe nachfolgenden Artikel:
NOTE Unter FortiOS 5.2 existiert die Konfiguration in den vers. Profiles betreffend UTM Logs nicht
mehr (extended-utm-log) und ist per Standart aktiviert!
FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F NOTE Um einen vollständigen Ueberblick zu erhalten betreffend Logging siehe auch nachfolgenden Artikel: FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
Wenn die Aktivierung resp. die Konfiguration der "Extended UTM Logs" durchgeführt wurde kann die "UTM Monitor" Funktion aktiviert werden:
# config system global
# set gui-utm-monitors enable
# end
Danach sind diese über das Web Gui ersichtlich und basieren auf den "Extended UTM Logs":
Datei:Fortinet-1094.jpg
Sind in der "Firewall Policy" für eine entsprechende Rule die Logs direkt ersichtlich?
Diese neue Funktion steht ab FortiOS 5.2 zur Verfügung und ermöglicht es direkt aus der "Firewall Policy" für eine entsprechende Rule die Logs für diesen Traffic einzusehen:
NOTE Diese Funktion steht ebenfalls für die "Explicit Proxy" Policy zur Verfügung jedoch nicht
für die "Multicast Policy"!
Datei:Fortinet-1112.jpg
Wie kann ich detaillierte Informationen über den Log Deamon (miglogd) anzeigen lassen?
Für das Logging auf einer FortiGate ist der Logging Deamon verantwortlich dh. "miglogd". Wenn zB der "miglogd" betreffend der Log Kapazität ausgelastet ist kann dieser anhand der "children" erhöht werden. Dazu siehe folgender Artikel:
FortiGate-5.0-5.2:FAQ#Kann_ich_betreffend_Logging_die_Kapazit.C3.A4t_auf_einer_FortiGate_erh.C3.B6hen.3F
Wenn der "miglogd" zB aus unbestimmten Gründen eine nahezu 100% Auslastung zeigt kann dieser neu gestartet werden. Dazu siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Prozess_.22miglogd.22_zeigt_permanente_99.25_Auslastung_und.2Foder_FortiGate_reagiert_sehr_langsam.3F
Aus den vorgehenden Beispielen ergiebt sich jedoch die Frage: Wie kann ich herausfinden resp. Informationen auflisten des "miglogd" um heraus zu finden wieso der "miglogd" zB eine 99% Auslastung zeigt! Dazu kann folgender Befehl mit dessen Optionen benützt werden:
# diagnose test application miglogd -1
1. Show global log setting
2. Show vdom log setting
3. Show log buffer sz
4. Show active log devices
5. Show MAX file descriptor number
6. Dump statistics
9. Delete all policy sniffer files
10. Show cid cache
11. Show utm traffic cache
15. Show miglog ID
16. Show log disk usage
17. Show traffic history monitor state
18. Show network interface cache
19. Show application cache
20. Show forticloud log state
21. Show memory log statistics
22. Show memory traffic logs
23. Show memory event logs
101. Vdom-root show log setting
102. Vdom-root show application custom cache
103. Vdom-root show application list cache
104. Vdom-root Show utm traffic cache
105. Vdom-root Show reputation traffic cache
Nachfolgend einige Beispiele welche Informationen enthalten sind:
# diagnose test application miglogd 1
miglogd 0:
have_disk=2, vdom-admin=0
icsa_comp=0, confsync=0
mgmt=root
Global memory setting:
maxsize=65536, full_first_warning=75, full_second_warning=90
full_final_warning=95
syslog:
fortilog:
fds: status=0
webtrends: status=0
# diagnose test application miglogd 3
miglogd 0:
fgtdev_buf_sz = 524288.
# diagnose test application miglogd 4
miglogd 0:
Number of active log devices: 1
alertmail
# diagnose test application miglogd 16
miglogd 0:
VDOM log disk usage:
root: 0B/4935M
# diagnose test application miglogd 21
miglogd 0:
traffic: capacity = 65536, used = 0
event: capacity = 65536, used = 0
virus: capacity = 65536, used = 0
webfilter: capacity = 65536, used = 0
ips: capacity = 65536, used = 0
spam: capacity = 65536, used = 0
contentlog: capacity = 65536, used = 0
anomaly: capacity = 65536, used = 0
voip: capacity = 65536, used = 0
dlp: capacity = 65536, used = 0
app-ctrl: capacity = 65536, used = 0
netscan: capacity = 65536, used = 0
Gibt es für das Logging eine Performance Statistik und kann ich diese manipulieren/konfigurieren?
Ab FortiOS 5.2.2 kann man die Performance Statistik (perf-stats) betreffend Logging des FortiAnalyzers und/oder Syslog konfiguriren betreffend Interval. In den Global Options kann man den Interval der Performance Logging Statistik definieren mit folgenden Befehl:
# config system global
# set sys-perf-log-interval [Interval in Minuten 1 - 15, 0 Deaktiviert; Standard 5]
# end
Ist es möglich die lokalen Logs einer FortiGate auf einen USB Stick zu kopieren?
Ab FortiOS 5.2.2 steht ein regulärer Befehl zur Verfügung um dies durchzuführen. Damit dies durchgeführt werden kann muss ein entsprechender USB Stick angeschlossen und formatiert werden. Dies geschieht am Besten über die FortiGate. Nachfolgender Link gibt Auskunft wie eine Formatierung eines USB Sticks über die FortiGate durchgeführt wird:
FortiGate-5.0-5.2:FAQ#Was_ist_bei_einem_Anschluss_eines_USB_Sticks_an_eine_Fortigate_zu_ber.C3.BCcksichtigen.3F
Sobald der USB Stick angschlossen und korrekt Formatiert wurde kann anhand des folgenden Befehls die lokalen Logs der FortiGate auf den USB Stick kopiert werden:
# execute backup disk alllogs usb
NOTE Es muss berücksichtigt werden das bei kleinen Device's ab 5.2 nicht mehr auf die lokale Disk geloggt
werden kann somit können -da in Memory geloggt wird- die Logs nicht kopiert werden! Weitere Informationen
dazu findet man im folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
Dieser Befehl kopiert alle vorhandenen Logs auf den USB Stick. Möchte man nur bestimmte Logs dh. Traffic Log, Event Log usw. kopieren kann folgender Befehl benutzt werden:
# execute backup disk log usb [traffic | event | ips | virus | webfilter | spam | dlp | voip | appctrl | anomaly | netscan]
Die Log's werden beim kopieren nicht manipuliert sondern 1:1 auf den USB Stick übernommen.
Wie beeinflusst das Kommando "config system network-visibility" die Logs und die enthaltenen Informationen?
Das Kommando "network-visibility" steht im Zusammehang mit der "Geo IP Location". Diese bedeutet: Werden diese Optionen aktiviert (ist per Standard der Fall) so werden betreffend den einzelnen enthaltenen Optionen wie zB "source" Geo Location Informationen zu den IP's angezeigt:
# config system network-visibility
# destination-visibility [enable | disable]
# source-location [enable | disable]
# destination-hostname-visibility [enable | disable]
# hostname-ttl [Definiere TTL Standard 86400]
# hostname-limit [Definiere Anzahl Hostname Limit Standard 5000]
# destination-location [enable | disable]
# end
NOTE Wenn die Option "source-location" aktiviert wird so wird für "internal" Resourcen zB LAN anstelle der Geo Location die
Information "reserved" in den Logs angezeigt. Ebenso steht das nachfolgenden Kommando im direkten Zusammenhang mit der
"network-visibility" resp. muss aktiviert werden damit die Geo Location in den Logs angezeigt wird:
FortiOS 5.0
# config log settings
# set resolve-hosts [enable | disable]
# end
FortiOS 5.2
# config log gui-display
# set resolve-hosts [enable | disable]
# end
Im WebGui für eine FortiGate 20C, 30D, 60C, 60D, 70D und 80C sind für FortiCloud keine Logs ersichtlich was ist zu tun?
Wenn auf einer FortiGate das Logging für FortiCloud mit nachfolgenden Befehlen aktiviert wird, kann es vorkommen das in einem späteren Zeitpunkt die Logs über das Web Mgmt. Interface - obwohl das Gui korrekt gesetzt wurde - nicht mehr ersichtlich sind:
# config log fortiguard setting
# set status [enable | disable]
# end
FortiOS 5.0
# config log setting
# set gui-location fortiguard
# end
FortiOS 5.2
# config log gui-display
# set location fortiguard
# end
Der Grund, dass die Logs über Web Mgmt. Interface nicht mehr ersichtlich sind liegt im Memory Bereich. Dies bedeutet: Die genannten Devices 20C, 30D, 60C, 60D, 70D sowie 80C kommen mit einer bestimmten grösse an Memory zB 30D 512MB. Wenn Logs generiert werden so werden diese in das Memory geschrieben (Buffer). Dieser Buffer ist zuständig das die Logs im Web Mgmt. Interface angezeigt werden. Die Grösse dh. wieviele Zeilen im Mgmt. Interface angezeigt werden wird über folgendes Kommando definiert:
# config system global
# set gui-lines-per-page [Standard 50]
# end
Verfügt ein Device nur über relativ wenig Memory (Beispiel 30D 512MB) sowie ist der Device relativ hoch belastet steht für den "Buffer" (50 gui-lines-per-page) kein Memory Bereich mehr zur Verfügung. Die Lösung ist die "gui-lines-per-page" herunter zu setzen auf zB 20:
# config system global
# set gui-lines-per-page 20
# end
Danach werden die Logs wieder im Mgmt. Interface angezeigt. Dieses Symptome das die Logs nicht mehr im Memory mit Standard Wert 50 angezeigt werden können indiziert jedoch das der Device betreffend Memory an seine Grenze angelangt ist und sollte "eventuell" durch Optimierungen oder durch einen grösseren Device ersetzt werden.
SNMP
Gibt es für die Fortigate ein MIB File und wo kann ich dieses runterladen?
NOTE Unter FortiOS 5.0 / 5.2 wird das MIB dh. inkl. Core MIB direkt auf der FortiGate unter folgender Position zur Verfügung gestellt: Datei:Fortinet-618.jpg
Durch Fortinet wird für die Fortigate ein MIB File für SNMP zur Verfügung gestellt. Dieses kann unter dem Support Account runtergeladen werden:
https://support.fortinet.com
Logge dich ein anhand des Usernamens und Passwortes. Danach präsentiert sich folgende Seite:
Datei:Fortinet-25.jpg
Wähle nun die Position "Firmware Images". Danach öffnet sich ein neues Fenster. Darin wähle das gewünschte Produkt dh. in unserem Fall "FortiGate":
Datei:Fortinet-26.jpg
Nun öffnet sich wiederum ein neues Fenster. In diesem Fenster wird über den Browser ein FTP Server geöffnet. Wähle dort die entsprechende Version:
Datei:Fortinet-27.jpg
In nächsten angezeigten Verzeichnis befindet sich ein MIB Verzeichnis und darin befindet sich das entsprechende MIB File das runtergeladen werden kann!
Wie sieht die Definition eines Fortigate MIB Files aus?
Folgende MIB Files geben Aufschluss über die Definition in den MIB Files betreffend einer Fortigate:
Datei:FORTINET-CORE-MIB.mib Datei:FORTINET-FORTIGATE-MIB.mib
Was muss beachtet werden wenn eine FortiGate Cluster über das Mgmt. Interface anhand "snmp poll" überwacht werden soll?
Wenn eine FortiGate im Cluster Mode betrieben wird ist es zu empfehlen jedem Node im Cluster ein Port (Interface) als Mgmt. Interface zu definieren. Dies wird in der HA Konfiguration über Web Mgmt. Interface durchgeführt in dem für die Position "Reserve Management Port for Cluster Member" der entsprechende Port definiert wird. Dies gewährleistet bei Problemen Zugriff auf jeden Node ohne Einfluss auf den Cluster Modus oder momentaner Status. Desweiteren kann über dieses definierten Port (Reserve Management Port for Cluster Member) die Ueberwachung jedes Nodes unabhängig durchgeführt werden. Dabei ist zu beachten das "snmp" auf dem entsprechenden definiert Port aktiviert wird. Damit das "snmp poll" über das entsprechend definierte Interface funktioniert muss die Option "ha-direct" aktiviert werden. Dies bedeutet: Wenn über eine entsprechende "snmp" Software folgende OID über ein "snmp poll" durchgeführt wird auf das dedizierte Mgmt. Interface kann jeder Noder einzeln überwacht werden:
OID .1.3.6.1.4.1.12356.101.3.2.1.1.4.1
Name : fgVdEntHaState
Values : Master oder Backup
Damit das "snmp poll" funktionert ergiebt sich folgende Konfiguration die durchzuführen ist:
Definiere "Reserve Management Port for Cluster Member" für den Node
# config system ha
# set ha-mgmt-status enable
# set ha-mgmt-interface [Definiere den entsprechenden Port zB "mgmt1"]
# set ha-mgmt-interface-gateway [Setze den Default Gateway für den Port zB "mgmt1" zB "10.10.10.254"]
# end
NOTE Wenn ein Port resp. Interface als "Reserve Management Port for Cluster Member" resp. als dezidiertes
Mgmt. Interface definiert wird so wird dieses Interface aus der Routing Table entfernt. Dies bedeutet:
dies ist der Grund wieso der Gateway (Routing) für dieses Interface definiert werden muss. Ein Interface
das als dediziertes Mgmt. Interface definiert wird kann mit einer IP sowie Subnet versehen werden die
zB für ein vorhandenes Interface ein Overlapping darstellt. Dies kann jedoch erst nachträglich nach
der Definition im "config system ha" durchgeführt werden. Da dieses definierte Mgmt. Interface resp.
Port aus der Routing Table entfernt wird stellt dieses dezidierte Interface eine seperate Routing
Instanz dar. Aus diesem Grund zeigt der Device eine erhöhte Auslastung die jedoch unter normalen
Umständen nicht von Belang ist.
Definiere eine entsprechende IP für den entsprechenden Mgmt. Port
# config system interface
# edit [Editiere den entsprechenden Port zB "mgmt1]
# set ip 10.10.10.1/24
# set allowacce https ssh snmp ping]
# end
Aktiviere in der entsprechende SNMP Comunity "ha-direct"
# config system snmp community
# edit 1
# config hosts
# edit 1
# set ha-direct enable
# set ip 10.10.10.0 255.255.255.0
# next
# next
# end
Switch-Mode
Wie setze ich für den "Internen Switch" den Interface Speed?
Um den Interface "speed" bei vielen Fortigate Modelle auf dem "Internal Switch" zu setzen führe folgendes aus:
# config system global
# set internal-switch-speed [1000full | 100full | 100half | 10full | 10half | auto]
# end
NOTE Desweiteren sollte betreffend Einstellungen und/oder Duplex Mismatch folgender Artikel berücksichtigt werden: FortiGate-5.0-5.2:FAQ#Wie_stelle_ich_fest.2Fkontrolliere_ich_ob_auf_irgendwelchen_Interfaces_ein_Error_existiert_.28duplex_mismatch.29.3F
Kann ich die den "Internen Switch" (Switch-Mode) bei einer Fortigate "Separieren" (Interface-Mode)?
Ja, man kann bei einigen Modellen den "Internal Switch" separieren dh. so das jeder einzelne Port über seine eigenen MAC Adresse verfügt sowie konfiguriert werden kann. Ob bei einem Modell dies möglich ist zeigt das "Software Matrix" Dokument Position "Switch/Interface Mode":
FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F NOTE Dabei ist folgendes zu berücksichtigen: Wenn der Device über einen "Switch Controller" verfügt, was ebenfalls in der "Software Matrix" ersichtlich ist, verfügen diese Device's effektive über einen Hardware technischen "Switch Controller". Bei diesen Geräten kann der "Internal Switch" ebenfalls aufgebrochen werden jedoch nicht über die Kommandozeile und nicht anhand des Kommandos "internal-swtich-mode". Denn dieses Kommando steht für diese Geräte nicht zur Verfügung. Wie der "Internal Switch" Mode bei diesen Devices in einzelne Ports separiert wird zeigt der folgende Artikel: FortiGate-5.0-5.2:FAQ#Wieso_kann_ich_auf_einer_FortiGate_mit_.22Hardware_Switch.22_.28zB_60D.2F100D.2F140D.2F240D.29_den_Internal_Switch_nicht_in_einzelne_Ports_aufbrechen.3F
Um die Ports betreffend dem "Internal Swtich" zu separieren geben auf der Console folgendes ein:
# config sys global
# set internal-switch-mode interface
# end
changing switch mode will reboot the system!
Do you want to continue? (y/n)y
ACHTUNG Wenn man dieses Kommando absetzt so kann eine Fehlermeldunge erscheinen:
Interface internal is in use
attribute set operator error, -23, discard the setting
Command fail. Return code -23
Der Grund dafür ist, dass das Internal LAN Interface in Benutzung ist. Dies bedeutet es wird genutzt in einer Policy/Rule
oder für eine andere Funktion. Um das zu verifizieren loggt man sich auf dem WebMgmt. Gui an und verifiziert dies über
System > Status > Interface
Auf der Zeile des Internal LAN Interfaces sind die Refrence für das Interfaces gelistet (ganz Rechts). Klickt man auf
die Refrence (Ref) so sieht man wo das Interface in Benützung ist. Geht man von einem Factory Default aus so ist das
Interface benutzt in der Policy/Rule und im DHCP Server. Deshalb kann diese nicht in den "Switch-Mode" gesetzt werden
sowie die genannte Fehlermeldung erscheint. Wenn man diese Policy/Rule über die Console löschen möchte führe folgendes
durch:
# config firewall policy
Verifiziere welche Policy/Rule es betrifft (in unserem Fall Policy/Rule "1"):
# show
config firewall policy
edit 1
set srcintf "internal"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ANY"
set nat enable
next
end
Lösche nun die Policy/Rule "1":
# del 1
Verifiziere ob die Policy/Rule gelöscht wurde:
# show
config firewall policy
end
# end
Lösche nun den DHCP Server:
# config system dhcp server
Verifiziere die momentane Konfiguration:
# show
config system dhcp server
edit 1
set default-gateway 192.168.1.99
set dns-service default
set interface "internal"
config ip-range
edit 1
set end-ip 192.168.1.210
set start-ip 192.168.1.110
next
end
set netmask 255.255.255.0
next
end
Lösche den DHCP Server "1":
# del 1
# show
# end
Nun kann der Befehl des "Switch-Mode" abermalls ausgeführt werden:
# config sys global
# set internal-switch-mode interface
# end
changing switch mode will reboot the system!
Do you want to continue? (y/n)y
Wenn nach dem Neustart kein Interface mehr konfiguriert ist/wäre und dies über die Console bewerkstelligt werden müsste kann folgendes durchgeführt werden:
# config system interface
# edit [Name des Ports zB internal1]
# set ip [zB 192.168.1.99/24]
# set alias [Name des Alias zB internal]
# end
Um den Mgmt. Web Zugriff wieder zu gewährleisten führe folgendes durch:
# config system interface
# edit [Name des Ports zB internal1]
# set allow [zB http https ping ssh telnet]
# end
Falls wiederum ein DHCP Server konfiguriert werden soll führe folgendes durch:
# config system dhcp server
# edit 1
new entry '1' added
# set default-gateway [zB 192.168.1.99]
# set dns-service default
# set interface "[Name des Ports zB internal1]"
# config ip-range
# edit 1
new entry '1' added
# set end-ip 192.168.1.210
# set start-ip 192.168.1.110
# next
# end
# set netmask 255.255.255.0
# next
# end
Wie kann ich auf einer FortiGate anhand Interfaces einen Software-Switch (oder auch Hub) erstellen?
Ein "Software-Switch" ist ein Software basierende Funktion eines "Hardware-Switches" die wie ein Switch aggiert! Sobald ein "Software-Switch" erstellt wird, werden die Interfaces zusammengefasst unter einer "MAC Adresse" und aggieren somit wie ein einzelnes Interface. Traffic zwischen den Interfaces, die Mitglieder sind im Software-Switches, ist erlaubt und kann auch anhand einer Policy nicht verhindert werden. Es ist zu berücksichtigen, dass "Software-Switches" resp. deren Interfaces unter HA nicht überwacht (Monitor) oder als "Heartbeat" Interface benutzt werden können. Ein "Software-Switch" kann übers Web Mgmt. Interface konfiguriert werden dh. über:
System > Network > Interface > Create New > Interface
Vergebe danach für den Software-Switch einen Namen sowie wähle unter "Type" den Eintrag "Software Switch".
NOTE Um die gewünschten Interfaces auswählen zu können dürfen diese nicht "in Gebrauch" sein dh.
zB in einer "Firewall Policy". Dies bedeutet ist dies der Fall müssen die entsprechenden Einträge
resp. Abhängigkeiten eruieirt und die entsprechenden Einträge gelöscht werden, um nnachträglich
die gewünschten Interfaces zum Software Switch hinzu zufügen.
Die Konfiguration kann ebenfalls auf der CLI durchgeführt werden:
# config system switch-interface
# edit [Name des Software Switches]
# set member [Gebe die entpsrechenden Interfaces an zB "port1 port2"]
# set span [Aktiviere oder Deaktiviere das Port Spanning anhand enable | disable]
# set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
# set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]]
# set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]]
# set type [Setze den Mode für den Software Switch dh. hub | switch | hardware-switch]
# set vdom [Vergebe den VDom Name inder der Software Switch benutzt wird]
# end
Kann ich auf einer FortiGate für den "Software Switch" und/oder virtuellen "Hardware Switch" eine SPAN Port (Port Mirroring) konfigurieren?
Wenn auf einer FortiGate ein "Port Mirroring" konfiguriert werden soll so ist dies für einen "Software Switch" möglich. Diese Funktion des "Port Mirroring" wird auf einem FortiGate Device SPAN benannt. Die SPAN Funktion oder eben "Port Mirroring" sendet "Jedes Packet" vom definierten "span-source-port" zum "span-dest-port". Wenn nun nachträglich auf dem "span-dest-port" ein Sniffer konfiguriert wird (ips-sniffer-mode enable) kann der Traffic analysiert werden. Die Konfiguration der SPAN Funktion ist über folgenden Menüpunkt möglich:
System > Network > Interfaces
Ueber die Kommandozeile wird die SPAN Funktion resp. das "Port Mirroring" folgendermassen konfiguriert:
FortiOS 5.0 / 5.2 "Software Switch"
# config system switch-interface
# edit [Name des Software Switches]
# set member [Gebe die entpsrechenden Interfaces an zB "port1"]
# set span [Aktiviere oder Deaktiviere das Port Spanning anhand enable | disable]
# set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
# set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]]
# set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]]
# set type [Setze den Mode für den Software Switch dh. hub | switch | hardware-switch]
# set vdom [Vergebe den VDom Name inder der Software Switch benutzt wird]
# end
NOTE FortiOS 5.0 unterstützt die SPAN Konfigurtion für einen "Hardware-Switch" nicht. Ab
FortiOS 5.2 wird dies unterstützt für die Devices mit einem integrierten Hardware Switch
wie die FG-100D, FG-140D und FG-200/240D. Konfiguriert wird dies über folgendes Kommando:
# config system virtual-switch
# edit [Name des "virtual-switch"]
# set span enable
# set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]
# set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
# set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]
# end
# end
NOTE Folgendes Dokument gibt Auskunft ob der Device über einen "Hardware-Switch" (Switch Controller) verfügt:
FortiOS 5.2 Software Matrix
Nachdem die SPAN Funktion konfiguriert wurde kann wie schon erwähnt zB ein Sniffer Interface konfiguriert werden. Dies wird folgendermassen durchgeführt:
# config system interface
# edit [Name des Interfaces]
# set ips-sniffer-mode enable
# end
Weitere Informationen wie ein Sniffer konfiguriert wird zB für eine POC etc. siehe nachfolgendes Dokument:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_Fortigate_mit_einem_Sniffer_Port_konfigurieren.3F
Was ist ein virtueller "Hardware Switch" und was ist der Unterschied zu einem Software Switch?
In früheren Versionen des FortiOS 4 MR3 kennt man den sogenannte "Software Switch" dh. man gruppiert bestimmte Interfaces zusammen zu einem "logischen" Software Switch. Innerhalb dieses Software Switches benützen alle Interfaces die (gleiche) IP die für den Software Switch selber gesetzt wurde sowie dessen Subnet. Innerhalb eines Software Switches wird der Traffic von Port zu Port ungehindert übermittelt dh. eine Implementierung einer Policy oder sonstigen UTM Features ist nicht möglich. Wie der Name selbst erklärt handelt es sich hier um einen "Software basierenden Switch" dh. der FortiGate CPU muss diesen Traffic -da Software Basierend- zwischen den Ports abarbeiten. Dies bedeutet Performance Verlust und Beeinträchtigung wenn viel Traffic zwischen den Ports verarbeitet wird. Wie so ein "Software Switch" konfiguriert ist siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_anhand_Interfaces_einen_Software-Switch_.28oder_auch_Hub.29_erstellen.3F
Für FortiOS 5.0 / 5.2 für die Modelle 100D, 600C, 1000C, and 1240B steht nun eine neue Funktion zur Verfügung dh. ein virtuellen "Hardware Switch". Wie beim "Software Switch" können vers. Ports in einem virtuellen "Hardware Switch" gruppiert werden. Der Traffic zwischen den verschiedenen Ports in einem virtuellen "Hardware Switch" wird durch den virtuellen "Hardware Switch" selber verarbeitet und dadurch entsteht keine Belastung/Beeinträchtigung des FortiGate CPU's im Gegensatz zu einem Software Switch. Dadurch erhöht sich die Performance durch den Einsatz eines virtuellen "Hardware Switch" anstelle eines "Software Switch". Weitere Informationen wie man einen virtuellen "Hardware Switch" konfiguriert siehe folgender Artikel:
NOTE Ab FortiOS 5.2.2 steht die Funktion den Modellen 30D, 60 sowie 90D zur Verfügung!
FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_virtuellen_.22Hardware_Switch.22.3F
Wie konfiguriere ich einen virtuellen "Hardware Switch"?
Um einen "virtuellen Hardware Switch" zu konfigurieren benütze folgenden Befehl:
NOTE Ab FortiOS 5.2.2 steht diese Funktion neu den Modellen 30D, 60 sowie 90D zur Verfügung!
# config system virtual-switch
# edit virt-sw-1
# set physical-switch sw0
# config port
# edit 1
# set port p1
# set speed [1000full | 100full | 100half | 10full | 10half | auto]
# set duplex [up | down]
# next
# edit 2
# set port p2
# set speed [1000full | 100full | 100half | 10full | 10half | auto]
# set duplex [up | down]
# next
# edit 3
# set port p3
# set speed [1000full | 100full | 100half | 10full | 10half | auto]
# set duplex [up | down]
# next
# edit 4
# set port p4
# set speed [1000full | 100full | 100half | 10full | 10half | auto]
# set duplex [up | down]
# end
# end
NOTE Ein "virtuellen Hardware Switch" wird nur durch bestimmte Modelle Unterstützt. Die Konfiguration
eines "virtuellen Hardware Switche's" kann für die bestimmten unterstützen Modelle ebenfalls über WebGui
durchgeführt werden unter folgender Position:
System > Network > Interface > Create New > Interface > Type > Hardware Switch
Weitere Informationen und Erklärungen finden man unter folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Was_ist_ein_virtueller_.22Hardware_Switch.22_und_was_ist_der_Unterschied_zu_einem_Software_Switch.3F
Wie kann ich STP (Spanning Tree Protocoll) auf einer FortiGate konfigurieren?
Das Spanning Tree Protocol (STP, deutsch: Spannbaum-Protokoll http://de.wikipedia.org/wiki/Spanning_Tree_Protocol) ist ein vitaler Teil von Switch-Infrastrukturen. Netzwerke können mit einer Vielzahl von Switches als Koppelungselement aufgebaut werden. Allerdings muss die LAN-Technologie sicherstellen, dass zwischen zwei Rechnern jeweils nur ein Datenpfad existiert, um Pakete eindeutig weiterleiten zu können.
Die Vermeidung von Effekten wie Broadcast-Storms wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt. Dies bedeutet, dass ein Switch in einen Zustand versetzt wird, in dem er keine Pakete weiterleitet. Der Spanning-Tree Algorithmus sorgt nun dafür, dass es keine unerwünscht kreisenden Pakete gibt. Er identifiziert Mehrfachwege, indem er Topologien mit redundanten Wegen durch eine logische Blockierung bestimmter Pfade in eine Baumtopologie überführt, die keine Schleifen besitzen. Die inaktiven Switches werden in einen Standby-Modus geschaltet. Bei Ausfall der primären Verbindung können diese sofort aktiviert werden und erzeugen auf diese Weise ein hohes Maß an Fehlertoleranz. STP wird auf einer FortiGate "nur" auf dem "Internen Switch" untersützt und nur unter FortiOS 5.0 / 5.2. STP steht für "Software Switches" nicht zur Verfügung. FortiOS 5.0 / 5.2 untersützen "RSTP" (Rapid Spanning Tree 802.1D). Dies wird erreicht anhand einer einzelnen Instanz (instance 0) für MSTP (Multiple Spanning Tree Protocol 802.1Q). MSTP ist rückwärts Kompatible zu RSTP udn STP. primarily supports Rapid Spanning Tree (RSTP). This is achieved via a single instance (instance 0) of Multiple Spanning Tree Protocol (MSTP). Wenn auf dem "Internen Switch" auf einer FortiGate STP aktiviert werden soll kann folgender Befehl benutzt werden um STP zu definieren:
# config system stp
# set config-revision [Angabe eines Integer]
# set forward-delay [In Sekunden "4 bis 30"]
# set hello-time [In Sekunden "1 bis 10"]
# set max-age [In Sekunden "6 bis 40"]
# set max-hops [Angage max. Hop 1 bis 40]
# set region-name [Angabe des Namen]
# set status [enable | disable]
# set switch-priority [Setze die Priorität 0, 4096, 8192, 12288, 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, 61440]
# end
Wenn die FortiGate selber auf dem Internen Switch "kein" STP durchführt, kann auf den einzelnen Interfaces -um STP zu erlauben und Loop's zu verhindern- durch folgende Befehle STP zugelassen werden:
# set stpforward [enable | disable]
Wenn STP konfiguriert wurde und nachträglich kontrolliert werden soll kann anhand nachfolgenden Befehls dies durchgeführt werden:
# diagnose sys stp status
STP Status Information
Switch Priority 32768
Switch MAC Address 00090f4be8fe
Root Priority 32768
Root MAC Address 00090f4be8fe
Root Pathcost 0
This bridge IS the root
Regional Root Priority 32768
Regional Root MAC Address 00090f4be8fe
Regional Root Path Cost 0
Remaining Hops 20
This bridge IS the regional root
Port Speed Cost Priority Role State Edge
__________ ______ _________ _________ ___________ __________ ____
internal1 10M 2000000 0 DISABLED DISCARDING YES
internal2 10M 2000000 0 DISABLED DISCARDING YES
internal3 10M 2000000 0 DISABLED DISCARDING YES
internal4 10M 2000000 0 DISABLED DISCARDING YES
internal5 10M 2000000 0 DISABLED DISCARDING YES
Wieso kann ich auf einer FortiGate mit "Hardware Switch" (zB 60D/100D/140D/240D) den Internal Switch nicht in einzelne Ports aufbrechen?
Nun einige FortiGate Devices wie die 100D(Generation 3)140D/200D/240D kommen mit integrierten "Hardware Switches" dh. diese Geräte beinhalten einen "Switch Controller" und zwar Hardware basierend (nicht Software und/oder Virtuelle). Die Geräte kommen zB bei einer 240D mit bis zu 40 Ports. Wenn man die Geräte näher anschaut und man versucht die Ports des "Internal Switch's" über Kommandozeile anhand "set internal-switch-mode interface" aufzubrechen (übliche Vorgehensweise) scheitert man!? Der Grund ist, das dieser "Hardware Switche" nicht wie üblich aufgebrochen werden kann. Dies bestätigt auch ein kurzer Blick auf die Kommandozeile, denn die zuständige Option "internal-switch-mode" ist bereits auf "interface" gesetzt (auch zu sehen über "get system status")! Möchte man diese Ports des "Hardware Switch" aufbrechen kann dies über das Web Gui durchgeführt werden. Dies bedeutet man wählt "lan" und danach können die Ports einzeln aus dem "Internen Hardware Switch" entfernt werden:
NOTE Bei einer FortiGate-60D Revision "P14482-03-02" die ca. ab 1. Januar 2015 ausgeliefert wurden, wurde
ebenfalls ein Hardware Switch integriert. Die Vorgehensweise die Interface's aufzubrechen dh. Analog 100D
ist dieselbe!
Datei:Fortinet-816.jpg
Löscht man nun Port1/2 aus dem Hardware Switch raus stehen diese nachträglich wiederum als einzelne Interfaces zur Verfügung:
Datei:Fortinet-817.jpg
Datei:Fortinet-818.jpg
Wenn man nun basierend auf dem Kommando "internal-switch-mode" die zur Verfügung stehenden Kommandos in diesem Zusammenhang mit der 100D/140D/240D näher anschaut, fällt einem folgende Befehle auf:
switch-controller (steht per Standard auf "disable")
switch-controller-port (steht per Standard auf Port 6246)
NOTE Diese Funktion steht momentan exkl. der 100D/140D zur Verfügung!
Wenn man sich desweiteren das Gui anschaut fällt einem auf das folgende Position zusätzliche Optionen enthält (per Standard ab FortiOS 5.0.4 nicht ersichtlich):
Datei:Fortinet-819.jpg
Ueber diese Positione können "Virtuelle Switche's" konfiguriert werden. Wenn man die nachfolgende Option aktiviert, können FortiSwitche's über die neue Menüposition (nur 100D/140D) eingebunden werden:
# config system global
# set switch-controller enable
# end
Datei:Fortinet-820.jpg
Wenn die einzelnen Ports komplett aufgebrochen werden, fällt einem auf das die letzten zwei Ports nicht aufgebrochen werden können. Weitere Informationen dazu findet man im folgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_letzten_zwei_Ports_.28port1.2Fport2.29_auf_einer_60D.2F100D.28Generation_3.29140D.2F240D_als_einzelne_Ports_aufbrechen.3F
Wie kann ich die letzten zwei Ports (port1/port2) auf einer 60D/100D(Generation 3)140D/240D als einzelne Ports aufbrechen?
Auf einer FortiGate 100D (Generation 3) sowie einer 140D und 240D lassen sich die einzelnen Ports des "Internal Switche"'s nicht über das Kommando "internal-switch-mode" aufbrechen. Diese Geräte besitzen einen Hardware basierenden "Switch Controller". Aus diesem Grund muss der "Internal Switch" gemäss folgenden Artikel aufgebrochen werden:
NOTE Bei einer FortiGate-60D Revision "P14482-03-02" die ca. ab 1. Januar 2015 ausgeliefert wurden, wurde
ebenfalls ein Hardware Switch integriert. Die Vorgehensweise die Interface's aufzubrechen dh. Analog 100D
ist dieselbe!
FortiGate-5.0-5.2:FAQ#Wieso_kann_ich_auf_einer_FortiGate_mit_.22Hardware_Switch.22_.28zB_60D.2F100D.2F140D.2F240D.29_den_Internal_Switch_nicht_in_einzelne_Ports_aufbrechen.3F
Führt man dies durch bemerkt man, dass die letzten zwei Ports (zB bei einer 100D port1/2) obwohl keine Policy Referenz sowie DHCP Referenz auf diesen Ports vorhanden ist, diese nicht aufgebrochen werden können. Um die letzten zwei Ports aufzubrechen muss im Hintergrund der "Virtuelle Switch" gelöscht werden. Dies wird auf der Kommandozeile durchgeführt:
# config system virtual-switch
# get
== [ lan ]
name: lan
# del lan
# get
# end
Wurden auf dem "Virtuellen Switch" bereits Konfigurtionen durchgeführt zB DHCP Server und/oder Policy muss diese Referenz zuerst entfernt werden. Die Konfigurierten IP's auf diesen Ports bei der Auflösung des "Virtuellen Switches" gehen vollständig verloren. Für die Auflösung muss kein Neustart der Firewall durchgeführt werden!
Replacement Messages
Wo finde ich die "Replacement Messages" auf einer FortiGate?
Die "Replacement Messages" findet man auf einer FortiGate unter folgender Position:
System > Config > Replacement Messages
Datei:Fortinet-1389.jpg
Um die "erweiterte" Funktion der "Replacement Messages" zu aktivieren dh. Gruppen basierende "Replacement Messages Groups" muss auf der Kommandozeile folgendes aktviert werden:
# config system global
# set gui-replacement-message-groups enable
# end
Danach findet man das entsprechende Menü unter folgender Position:
System > Config > Replacement Messages Groups
Weitere Iformationene wie man "Replacement Messages Groups" verwendet siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Was_sind_.22Replacement_Message_Groups.22_und_wie_verwende_ich_diese.3F
Wie finde ich für die Replacement Messages heraus welche Variablen ich benutzen kann?
Wenn man mit "Replacement Messages" arbeitet sowie mit "Replacement Messages Groups" und man diese abändern möchte stellt sich die Frage "welche" Variablen (zB für eine Policy ID wir "%%POLICY%%" benutzt) man in der entsprechenden "Replacement Message" benutzen kann. Die "Replacement Messages" findet man unter folgender Position:
System > Config > Replacement Messages
Datei:Fortinet-1389.jpg
NOTE Es wird unterschieden zwischen einer "Simple View" (Nur die Grundsätzclichsten Replacement Messages werden angzeigt)
und einer "Extended View" (Alle Replacement Messages werden angezeigt). Möchte man die "Replacement Messages Groups"
aktivieren so muss dies über die Kommandozeile durchgeführt werden dh.:
# config system global
# set gui-replacement-message-groups enable
# end
Danach findet man das entsprechende Menü unter folgender Position:
System > Config > Replacement Messages Groups
Wenn man nun eine entsprechende "Replacement Message" anwählt in unserem Beispiel zB über die "Extended View" das "SSL-VPN Login" und man auf einer bestimmten Position eine "Variable" einfügen möchte so führt man folgendes durch:
1. Wähle die entsprechende "Replacement Message" an resp. markiere diese.
2. Im unteren Teil des Fenster wird rechts das "SSL-VPN Login" Fenster angezeigt und links der dazugehörige "HTML Source Code".
3. Nun gehe im "HTML Source Code" auf die entsprechende Position in der eine entsprechende Variable eingefügt werden soll.
3. Nun um herauszufinden "welche" Variablen eingeführt werdne könnne gebe ein "%%" danach öffnet sich ein zusatz Fenster indem
alle "Variablen" mit einer Kurzbeschreibung aufgelistet sind. Wähle eine entsprechende Variable!
Datei:Fortinet-1390.jpg
Um die entsprechende Konfiguration abzuspeichern muss auf der "rechten" Seite die Position "Save" ausgeführt werden.
Wie kann ich für Mgmt. Access einen eigenen Login-Banner konfigurieren?
Wenn man sich per SSH/HTTPS auf eine FortiGate einloggt so wird per Standard sei es "vor" dem Login oder "nach" dem Login keine Meldung angezeigt! Möchte man nun das ein sogenannter "Login-Banner" angzeigt wird kann dies über die "Replacement Messages" konfiguriert werden. Dabei muss unterschieden werden zwischen "pre-login-banner" und "post-login-banner". Dies bedeutet: wird nur "pre-login-banner" aktiviert so wird "vor" dem Login eine entsprechende Nachricht angzeigt. Setzte man "post-login-banner" so wird eine entsprechende Nachricht "nach" dem Login angezeigt. In unserem Beispiel aktivieren wir den "post-login-banner" und deaktivieren den "pre-login-banner" sowie aktivieren "login-timestamp". Dies bedeutet: Ein Login wird wie herkömmlich mit Username und Passwort durchgeführt ohne entsprechende Meldung "vor" dem Login. Nach erfolgten Login wird die Zeit des Letzten erfolgreichen/nicht erfolgreichen Login angzeigt sowie ein Nachricht die den User warnt, dass alles auf der FortiGate geloggt wird. Diese Meldung muss "Akzeptiert" werden und danch wird über HTTPS entweder die FortiGate angezeigt oder unter SSH den CLI Prompt. Führ die Konfiguration führe folgendes durch:
# config system global
# set pre-login-banner disable
# set post-login-banner enable
# set login-timestamp enable
# end
NOTE Die Option "login-timestamp" ist insofern Wichtig da diese den "timestamp" (Zeit des Login) anzeigt!
Wenn diese Optionen unter "config system global" gesetzt werden und man würde nachträglich ein Login auf HTTPS, SSH usw. durchführen wird der Standard Banner angezeigt:
Datei:Fortinet-1408.jpg
Um nun diese Nachricht resp. Banner zu modifizieren etc. kann die entsprechenden "Replacement Message" konfiguriert werden. Dies kann über Kommandozeile sowie über Web Mgmt. durchgeführt werden. Ueber Web Mgmt. Access findet man die entsprechende Position unter folgenden Punkt:
Datei:Fortinet-1409.jpg
Um zB den "post-login-banner" zu modifizieren gehe folgendermassen vor:
Lösche den gesamten Inhalt der "Post-login Disclaimer Message
Datei:Fortinet-1410.jpg
Im Rechten Feld füge den entsprechenden Text hinzu
Datei:Fortinet-1411.jpg
NOTE Um "Tags" hinzu zu fügen führe einen Rechts-Klick im Rechte Feld aus und wähle "Insert Tag".
Nun kann die entsprechende Konfiguration über zB SSH und/oder HTTPS getestet werden:
#
# WARNING: You must have prior authorization to access this system.
# All connections are logged and monitored. By connecting
# to this system you fully consent to all monitoring.
# Unauthorized access or use will be prosecuted to the
# full extent of the law. You have been warned!
#
Last Failed Login: Wed Aug 12 18:50:19 2015
Last Successful Login: Tue Sep 1 21:44:59 2015
(Press 'a' to accept): a
[Hostname oder Serial Nummer] #
Um den "Post-login Disclaimer Message" über die Kommandozeile zu konfigurieren führe folgendes aus:
# config system replacemsg admin "post_admin-disclaimer-text"
#set buffer "#
# WARNING: You must have prior authorization to access this system.
# All connections are logged and monitored. By connecting
# to this system you fully consent to all monitoring.
# Unauthorized access or use will be prosecuted to the
# full extent of the law. You have been warned!
#
%%LAST_FAILED_LOGIN%%
%%LAST_SUCCESSFUL_LOGIN%%"
# end
Was sind "Replacement Message Groups" und wie verwende ich diese?
"Replacement Message's" stellen die verschiedenen Informationen/Nachrichten dar, die eine FortiGate in verschiedenen Situationen ausgiebt/anzeigt. Wenn zB eine Authentifizierung durchgeführt wird so wird dem User eine "Login Page" vom Device zur Verfügung gestellt um Username und Passwort eingeben zu können. Solche eine "Login Page" stellt eine "Replacement Message" dar in der Kategorie (Group Type) "Authentication. Diese Seiten können benutzerspezifisch Angepasst werden (HTML Code) über die "Replacement Message's":
System > Config > Replacement Message
NOTE Auf der Seite "Replacement Message" kann oben Rechts zwischen "Simple View" und/oder
"Extended View" umgeschaltet werden! Wenn "Extended View" angewählt wird stehen zusätzliche
"Replacement Message's" zur Verfügung!
Wenn man eine Seite unter der vorhergehenden Position abändert, gelten diese Aenderungen "Global" dh. wenn man unter "Authentication" die "Log Page" ändert gilt diese Aenderung für jede "Login Page" für die Funktion "Authentication" auf der gesamten FortiGate! Dies ist nicht immer gewünscht dh. idealer wäre es die "Login Page" für einen bestimmten Zweck zu ändern, jedoch die "globale" Login Page unverändert zu lassen. Dies kann über die Funktion "Replacement Message Groups" bewerkstelligt werden dh. man erstellt eine Gruppe, definierte diese in der Funktion dh. zB "Authentication" und darin befinden sich nachträglich alle Seiten wie "Login Page". Diese können in dieser Gruppe abgeändert werden. Nach der Aenderung weisst man diese Gruppe der entsprechenden Funktion zB der Policy (zB FortiOS 5.0 Identity Based Policy) hinzu. So können für verschiedene Policy's und Funktionen verschiedenen Seiten zur Verfügung gestellt werden ohne die globalen Seiten abzuändern. Damit man eine "Replacement Message Group" erstellen kann muss zuerst diese Funktion aktiviert werden:
System > Admin > Settings > Replacement Message Groups
NOTE Ab FortiOS 5.0.3 / 5.2 steht dieser Menüpunkt noch unter "System > Admin > Settings" noch unter "System > Config > Features"
zur Verfügung und muss über Kommandozeile aktiviert werden. Der Befehl um den entsprechenden Menüpunkt einzublenden lautet:
# config system global
# set gui-replacement-message-groups enable
# end
Nach erneuten Einloggen auf dem WebGui sollte nun der entsprechende Menüpunkt erscheinen:
System > Config > Replacement Message Groups
Wird unter den "Replacement Message Groups" eine neue Gruppe anhand "Create New" erfasst, werden die entsprechenden "Replacement Message's" Seiten in folgenden Kategoriern (Group Type) eingeteilt:
UTM
Authentication
Endpoint Control
Captive Portal
Nun kann innerhalb dieses Menüs eine neue "Replacement Message Groups" erstellt werden anhand von "Create New":
Datei:Fortinet-752.jpg NOTE Vergebe einen Namen sowie den "Group Type" der die Funktion darstellt wie zB "Authentication"!
Nun kann man innerhalb dieser erstellten Gruppe anhand eines "WYSIWYG" (What You See Is What You Get) die Seiten abgeändert werden inkl. Logos etc. Sind die Modifikationen abgeschlossen muss nun die entsprechende "Replacement Message Group" der entsprechenden Funktion zB Policy zugewisen werden. Für eine "Identity Based Policy" wird das folgendermassen durchgeführt:
NOTE Unter FortiOS 5.2 existieren keine "Identity Based Policy" mehr sondern sind in der "regulären"
Firewall anhand von Gruppen/Usern sowie Devices integriert. Die Funktion unter FortiOS 5.2 ist
jedoch identisch.
# config firewall policy
# edit [Gebe die entsprechende Policy ID an]
# set replacemsg-override-group [Gebe den Namen an der "Replacement Message Group"]
# end
NOTE Die Aenderung ist über Mgmt. WebInterface in der entsprechenden Policy nicht ersichtlich dh. unter der
Position "Customize Authentication Messages" wird zwar die korrekte und gesetzte "Replacement Message
Group" gesetzt jedoch sieht man nicht den Namen der gesetzten Gruppe. Diese ist nur über CLI erruirbar
oder über "System > Config > Replacement Message Group" dh. über die "Ref." (Referenzen) Position! Dies
gilt für FortiOS 5.0 sowie FortiOS 5.2!
Reporting
Kann ich die Standard Reports und Grafiken (Datasets and Charts) aus den Logs der Fortigate modifizieren?
Wenn man davon ausgeht, dass man einen POC (Prof of Concept) durchführt und zu diesem Zweck die Firewall mit einem "Sniffer Port" an einen Mirror Port (Span Port) eines Switche' verbunden hat, möchte man nachträglich möglichst durch die Auswertung der Log's übersichtliche Reports erstellen. Ob ein Device "local" überhaupt Report's erstellen kann zeigt die "Software Matrix" für das jeweilige FortiOS:
FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
Die Standard Reports die "local" auf den Devices zur Verfügung gestellt werden sind nicht sehr ausführlich und für einen POC nicht Zweckmässig. Um das zu ändern, kann man seine eigenen Reports erstellen. Das heisst, die Reports die auf einer Fortigate zur Verfügung gestellt werden (findet man unter "Log & Report) sind eigentlich nichts anderes als SQL Abfragen aus der Datenbank in der die Log Informationen gespeichert werden. Somit müssen für aussagekräftigere Reports einfach spezifische SQL Abfragen konfiguriert werden. Um dies zu konfigurieren führe folgendes über die Console durch:
Datei:Fortinet Proof of Concept Partner LR.pdf NOTE Dieses POC Dokument ist zu benutzen mit V4.0 MR3 Patch 6 oder tiefer denn im Patch 7 oder höher wurden für die Geräte bis 100D der SQL Befehlsatz entfernt! Wenn mit FortiOS 5 gearbeitet wird ist zu empfehlen die Logs auf den FortiAnalyzer 5.0.4 zu spielen da dort die Reporting Möglichkeiten vielseitig sind und diese Version betreffend Report "SOC Compliant" ist!
Key Applications Crossing the Network
# config report dataset
# edit "appctrl.Appl.List.all.info"
# set query "select app, app_cat, service, sum(sent+rcvd) as bytes, count(src) as sessions from traffic_log where timestamp between ###start_time### and ###end_time### and (app is not null and !=\'N/A\') group by app_cat order by app_cat"
# next
# end
# config report chart
# edit "appctrl.Appl.List.all.info"
# set type table
# set period last24h
# set comments "All Application List usage"
# set dataset "appctrl.Appl.List.all.info"
# set category traffic
# next
# end
Applications Running Over HTTP
# config report dataset
# edit "traffic.Http.Appl.List"
# set query "select app, sum(sent+rcvd) as bytes, count(src) as sessions from traffic_log where timestamp between ###start_time### and ###end_time### and (app is not null and app =\'N/A\' and service=\'HTTP\') group by app
# order by app"
# next
# end
# config report chart
# edit "traffic.Http.Appl.List"
# set type table
# set period last24h
# set comments "Application That use HTTP"
# set dataset "traffic.Http.Appl.List"
# set category traffic
# next
# end
Top Web Sites Visited By Network Users
# config report dataset
# edit "wf.Top.Url.Categories"
# set query "select cat_desc, count(*) as totalnum from webfilter_log where timestamp between ###start_time###and ###end_time### and (cat_desc is not null or cat_desc!=\'N/A\') group by cat_desc order by totalnum desc"
# next
# end
# config report chart
# edit "wf.Top.Url.Categories"
# set type table
# set period last24h
# set comments "Top URL Category in Use"
# set dataset "wf.Top.Url.Categories"
# set category webfilter
# next
# end
Top Threat Vectors Crossing the Network
# config report dataset
# edit "ips.Top.Threats"
# set query "select severity, attack_name, msg, count(*) as totalnum from attack_log where timestamp between###start_time### and ###end_time### group by severity order by totalnum desc"
# next
# end
# config report chart
# edit "ips.Top.Threats"
# set type table
# set period last24h
# set comments "Top Threats Traversing the Network"
# set dataset "ips.Top.Threats"
# set category attack
# next
# end
Um nun das Layout der Reports (Aussehen etc.) zu verbessern kann folgendes über die Console eingegeben werden (Kopiere den Inhalt des nachfolgenden Dokumentes in die Console):
Datei:Layout cfg.rtf
Dashboard/Widgets
Kann ich die Widget's die auf dem Dashboard angezeigt werden manipulieren?
Unter dem folgenden Menüpunkt werden sogenannten Widget's angezeigt dh. Informationen in Kurzübersicht über das System und dessen Status:
Dashbaord > Status
Die Widget's selber dh. die Informationen können - teilweise - manipuliert werden. Ebenfalls können die einzelnen Widgets ein- oder ausgeblendet werden. Die Positonen für die Manipulationen befindet sich unter:
Datei:Fortinet-15.jpg
Ebenfalls kann über das "Dashboard" verschiedenste Konfigurationen wie Datum, Zeit, Registrierung konfiguriert werden. Möchte man zusätzlich zum Menüeintrag "Status" einen eigenen Eintrag erstellen wählt man:
System > Dashboard > Status > Dashboard > [Im Menü wähle: Add Dashboard] > [Gebe einen entsprechenden Namen an]
Wie kann ich das Standard Dashboard mit seinen Widget's wiederherstellen?
Wenn man das Standard Dashboard "Status" auf einer Fortigate wiederherstellen möchte führe über Web Mgmt. Interface folgendes aus:
System > Dashboard > Status > Dashboard > [Im Menü wähle: Reset Dashboards]
Wenn dies aus irgendwelchen Gründen nicht möglich ist kann dies auch über die Kommandozeile durchgeführt werden:
FortiOS 5.0
# config system admin
# edit "admin"
# config dashboard-tabs
# edit 1
# set name "Status"
# next
# edit 2
# set name "Usage"
# next
# end
# config dashboard
# edit 1
# set tab-id 1
# set column 1
# next
# edit 2
# set widget-type licinfo
# set tab-id 1
# set column 1
# next
# edit 3
# set widget-type sysres
# set tab-id 1
# set column 1
# next
# edit 4
# set widget-type jsconsole
# set tab-id 1
# set column 1
# next
# edit 5
# set widget-type sysop
# set tab-id 1
# set column 2
# next
# edit 6
# set widget-type alert
# set tab-id 1
# set column 2
# next
# edit 7
# set widget-type sessions
# set tab-id 1
# set column 2
# next
# edit 8
# set widget-type pol-usage
# set tab-id 1
# set column 2
# next
# edit 9
# set widget-type per-ip-usage
# set tab-id 2
# set column 1
# next
# edit 10
# set widget-type tr-history
# set tab-id 2
# set column 1
# next
# edit 11
# set widget-type statistics
# set tab-id 2
# set column 2
# next
# end
# next
# end
FortiOS 5.2
# config system admin
# edit "admin"
# config dashboard-tabs
# edit 1
# set name "Status"
# end
# end
# config system admin
# edit "admin"
# config dashboard
# edit 1
# set tab-id 1
# set column 1
# end
# end
# config system admin
# edit "admin"
# config dashboard
# edit 2
# set widget-type licinfo
# set tab-id 1
# set column 1
# end
# end
# config system admin
# edit "admin"
# config dashboard
# edit 3
# set widget-type jsconsole
# set tab-id 1
# set column 1
# end
# end
# config system admin
# edit "admin"
# config dashboard
# edit 4
# set widget-type sysres
# set tab-id 1
# set column 2
# end
# end
# config system admin
# edit "admin"
# config dashboard
# edit 5
# set widget-type gui-features
# set tab-id 1
# set column 2
# end
# end
# config system admin
# edit "admin"
# config dashboard
# edit 6
# set widget-type alert
# set tab-id 1
# set column 2
# set top-n 10
# end
# end
Ich kann über WebMgmt. das "Traffic-History" Widget nicht mehr einem Dashboad hinzufügen?
Bis FortiOS 4 MR3 Patch 12 sowie FortiOS 5.0.2 gab es im Web Mgmt. Interface innerhalb der zur Verfügung stehenden "Widget's" das Widget "Traffic-History". Diese existiert nicht mehr! Dieses Widget "Traffic History" zeigte für ein bestimmtes Interface den Traffic über eine History an. Dieses Widget kannn jedoch nach wie vor über die Kommandozeile konfiguriert werden. Führe folgendes aus:
FortiOS 5.0 / 5.2
# config system admin
# edit admin
# config dashboard
# edit 66
# set widget-type tr-history
# set tab-id 1
# set column 1
# set interface [Definition des Interfaces zB "wan1"]
# next
# end
# next
# end
Nachträglich ist das "Traffic-History" Widget über das Standard Dashboard ersichtlich und kann ebenfalls über das Web Mgmt. Interface modifiziert werden!
FortiManager
Wo finde ich Informationen wie eine FortiGate in einen FortiManager eingebunden wird?
Grundsätzlich ist folgender Befehl zuständig, dass eine FortiGate in das Zentrale Mgmt. eines FortiManager's eingebunden wird:
# config system central-management
# get
mode : normal
type : fortimanager
schedule-config-restore: enable
schedule-script-restore: enable
allow-push-configuration: enable
allow-pushd-firmware: enable
allow-remote-firmware-upgrade: enable
allow-monitor : enable
serial-number :
fmg :
fmg-source-ip : 0.0.0.0
fmg-source-ip6 : ::
vdom : root
server-list:
include-default-servers: enable
enc-algorithm : default
NOTE Es empfiehlt sich über den nachfolgenden Link betreffend FortiManager zu informieren da es
verschiedenen Möglichkeiten gibt einen Device in den FortiManager einzubinden. Speziell die
Option "set fmg [IPv4 oder FQDN des FortiManagers]" ist zu berücksichtigen resp. zu benutzen
auch wenn die Device Einbindung "vom" FortiManager "zur" FortiGate durchgeführt wird! Weitere
detailierte Informationen über den FortiManager findet man unter folgenden Link:
FortiManager-5.0-5.2:FAQ
Wie werden die Logs eines FortiGate Device's zum FortiManager übermittelt (verschlüsselt/unverschlüsselt)?
Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:
FortiManager-5.0-5.2:FAQ#Wie_werden_die_Logs_eines_FortiGate_Device.27s_zum_FortiManager_.C3.BCbermittelt_.28verschl.C3.BCsselt.2Funverschl.C3.BCsselt.29.3F
FortiAnalyzer
Wo finde ich Informationen wie eine FortiGate in einen FortiAnalyzer eingebunden wird?
Für die Einbindung eines FortiGate Devices auf einen FortiAnalyzer ist folgender Befehl zuständig:
# config log fortianalyzer setting
# set status enable
# get
# status : enable
# ips-archive : enable
# server : 0.0.0.0
# enc-algorithm : default
# localid :
# conn-timeout : 10
# monitor-keepalive-period: 5
# monitor-failure-retry-period: 5
# source-ip : 0.0.0.0
# upload-option : realtime
# reliable : disable
NOTE Für die Einbindung muss minimal mit der Option "set server" die IPv4 Adresse des FortiAnalyzer
konfiguriert werden. Danach werden die Log's des Device's über Port TCP 514 verschlüsselt anhand
SSL übermittelt. Es ist zu empfehlen sich über nachfolgender Artikel betreffend FortiAnalyzer zu
informieren:
FortiAnalyzer-5.0-5.2:FAQ
Desweiteren ist zu berücksichtigen, dass die Log Qualität sprich "was" übermittelt wird seitens dem
FortiGate Device zu konfigurieren ist. Weitere Informationen betreffend der Konfiguration der Logs
eines FortiGate Device's siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
Wie werden die Logs eines FortiGate Device's zum FortiAnalyzer übermittelt (verschlüsselt/unverschlüsselt)?
Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:
FortiAnalyzer-5.0-5.2:FAQ#Wie_werden_die_Logs_eines_FortiGate_Device.27s_zum_FortiAnalyzer_.C3.BCbermittelt_.28verschl.C3.BCsselt.2Funverschl.C3.BCsselt.29.3F
IPv6
Wie sieht die Unterstützung für IPv6 aus im Zusammenhang mit Fortigate?
Folgende Dokumente giben Auskunft über die IPv6 Unterstützung im Zusammenhang mit Fortigate:
Datei:Inside IPv6 1.0.pdf Datei:IPV6 BrochureV3 LR.pdf
Kann ich für IPv6 ein Source NAT konfigurieren?
Ein Source NAT für IPv6 kann ab FortiOS 5 GA Release eingerichtet werden. Dies muss über die Console konfiguriert werden:
# config firewall ippool6
# edit [ipool6 Name]
# set name [Name des ipool6]
# set endip [IPv6 Adresse]
# set startip [IPv6 Adresse]
# next
# end
Um dies in der entsprechende Policy zu konfigurieren dh. dort wo das Source NAT benötigt wird führe folgendes aus:
# config firewall policy6
# edit [ID der entsprechenden Policy]
# set nat [setze "enable oder disable"]
# set ippool [setze "enable oder disable"]
# set poolname [Name des ipool6]
# next
# end
Kann ich für IPv6 ein Destination NAT konfigurieren?
Für ein Destination NAT für IPv6 muss zuerst ein VIP-IPv6 erstellt werden das nachträglich in die entsprechende Policy eingefügt wird. Dies wird über die CLI folgendermassen konfiguriert:
# config firewall vip6
# edit [Name des vip6 Objekt]
# set name [Name des vip6 Objekt]
# set id [Optional Integere ID]
# set comment [Setze eine event. Beschreibung]
# set type [Setze "static-nat]
# set src-filter [Gebe die IPv6 Adresse oder Range an]
# set extip [Gebe die IPv6 Adresse oder den IPv6 start sowie end Range an]
# set mappedip [Gebe die IPv6 Adresse oder den IPv6 start sowie end Range an]
# set arp-reply [Gebe an ob auf ARP geantwortet werden soll "enable oder disable"]
# set color [Gebe eine event. Farbe an die im Gui angezeigt werden soll "0-255"]
# next
# end
Wenn die VIP IPv6 in eine Gruppe eingefügt werden soll erstelle diese und füge die VIP IPv6 hinzu:
# config firewall vipgrp6
# edit [Name des vip6 Gruppen Objekt]
# set name [Name des vip6 Gruppen Objekt]
# set member [Name des vip6 Objekt]
# next
# end
Danach kann das entsprechende Objekt in die Policy eingefügt werden:
# config firewall policy6
# edit [ID der entsprechenden Policy]
# set dstaddr [Name des vip6 Objekt sei es das Objekt oder die Gruppe]
# next
# end
Modem
Welche 3G USB Modem's (Compatibility) kann ich für eine FortiGate benutzen?
Ein FortiGate Device kann mit einem 3G USB Modem ausgerüstet werden dh. als Failover, Dial-In oder als alleiniger Internet Access resp. als Failover Device. Fortinet Selber bietet für Ihre Devices keine solchen 3G USB Modems an dh. es muss auf Fremdprodukte zurückgegriffen werden. Dabei besteht die Schwierigkeit -bei Provider- Produkte wie zB Swisscom den effektiv verwendeten Chip zu verfizieren und auch dieser wird bei grossen Providern immer wieder gewechselt. Betreffend Kompatibilitätsliste bietet die FortiGate ein Anhaltspunkt über die zu konfigurierenden 3G USB Modem Geräte auf der FortiGate selber. Auf der FortiGate ist jedoch der Menüpunkt für die 3G USB Modem's per Standard nicht ersichtlich. Um diesen Menüpunkt einzuschalten führe folgendes aus:
NOTE Wenn die FortiGate auf der die Funktion aktiviert wurde über einen FortiGuard Service verfügt kann über den "Update Now" Menüpunkt unter "Configure Modem" die Liste der Unterstützten Geräte über FortiGuard auf den neusten Stand gebracht werden: Datei:Fgt-modem-matrix.pdf Möchte man ein Update der Liste über Kommandozeile erzwingen führe folgendes aus: # execute update-modem Updating Modem List. Done.
# config sys modem
# set status enable
# end
Nun kann man über folgenden Menüpunkt die Liste der 3G USB Modem Geräte einsehen:
System > Network > Modem > Configure Modem
NOTE Egal für was man sich entscheidet dh. für ein unterstütztes und aufgelistet Gerät eines Hersteller und/oder
eines verfizierten Gerätes des Providers mit dem entsprechenden Chip, es sollte auf jedenfalls ausgiebig
getestet werden um die Funktion einwandfrei zu verfizieren!
Unter diesem Menüpunkt werden folgende Geräte aufgelistet:
Supported (v1.014) FortiOS 5.0 Base
Vendor Model
AirPrime 5220
Alcatel HSPA Data Card
Audiovox PC5740
Cmotech CNU680
Dell 5500
Emobile D11LC
Emobile ST Mobile
Huawei E126
Huawei E169
Huawei E1692
Huawei E173
Huawei E180/E220/E3735
Huawei E220/E3735
Huawei E392/E397/E398
Huawei E398
Huawei E600/E169
Huawei K3715
Huawei K3765
Huawei K3770
Huawei K3806
Huawei K4505
Huawei K4511
Kyocera KPC650/Passport
LG L-02C
LG L-03D
Maxon USB3-8521
MobiData MBD-200HU
Novatel ExpressCard34 Qualcomm 3G CDMA
Novatel MC990D
Novatel Merlin EX720
Novatel Merlin S620
Novatel Merlin S720
Novatel Merlin X950D
Novatel Merlin XU870
Novatel Ovation MC950D
Novatel Ovation MC998D
Novatel Ovation U720
Novatel Ovation U727
Novatel U760
Novatel U998
Option GI1505
Option GI332
Option N.V. Globetrotter Fusion Quad Lite
Option N.V. Globetrotter HSDPA Modem
Option iCON 225 HSDPA
Pantech PX-500
Pantech UM190
Quanta MU-Q101
Sierra 250U
Sierra 597
Sierra 598U
Sierra AC312U/AC503/USB306/USB308
Sierra AC313U
Sierra AC501/880E
Sierra AirCard 580
Sierra AirCard 595
Sierra AirCard 595U
Sierra AirCard 875
Sierra C885
Sierra EM5625
Sierra MC5720
Sierra UC881
Sprint U300
ZTE AC2736
ZTE MF190
ZTE MF637
ZTE MF668
ZTE MF683
ZTE MF691
ZTE MF821
ZTE MY39
Supported (v1.031) FortiOS 5.2 Base'
Vendor Model
AirPrime 5220
Alcatel HSPA Data Card
Alcatel x230M
AnyDATA ADY510L
Audiovox PC5740
Cmotech CNU680
D-Link DWM-156
Dell 5500
Emobile D11LC
Emobile ST Mobile
Franklin S600C
Huawei E126
Huawei E169
Huawei E1692
Huawei E173
Huawei E180/E220/E3735
Huawei E220/E3735
Huawei E353
Huawei E372
Huawei E392
Huawei E392/E397/E398
Huawei E398
Huawei E600/E169
Huawei K3715
Huawei K3765
Huawei K3770
Huawei K3773
Huawei K3773/E3131
Huawei K3806
Huawei K4201
Huawei K4505
Huawei K4511
Kyocera KPC650/Passport
LG L-02C
LG L-03D
Maxon USB3-8521
MobiData MBD-200HU
Novatel ExpressCard34 Qualcomm 3G CDMA
Novatel MC679
Novatel MC990D
Novatel Merlin EX720
Novatel Merlin S620
Novatel Merlin S720
Novatel Merlin X950D
Novatel Merlin XU870
Novatel Ovation MC950D
Novatel Ovation MC998D
Novatel Ovation U720
Novatel Ovation U727
Novatel U760
Novatel U998
Option GI1505
Option GI332
Option N.V. Globetrotter Fusion Quad Lite
Option N.V. Globetrotter HSDPA Modem
Option iCON 225 HSDPA
Pantech PX-500
Pantech UM190
Pantech UML290
Quanta MU-Q101
Sierra 250U
Sierra 597
Sierra 598U
Sierra AC312U/AC503/USB306/USB308
Sierra AC313U
Sierra AC320U
Sierra AC330U
Sierra AC340U
Sierra AC501/880E
Sierra AirCard 580
Sierra AirCard 595
Sierra AirCard 595U
Sierra AirCard 875
Sierra C885
Sierra EM5625
Sierra MC5720
Sierra MC5728
Sierra UC881
Sprint U300
ZTE AC2736
ZTE MF190
ZTE MF190U
ZTE MF637
ZTE MF668
ZTE MF680
ZTE MF683
ZTE MF691
ZTE MF821
ZTE MY39
Es besteht ebenfalls die Möglichkeit unter "Configure Modem" selber ein "3G USB Modem" zu konfigurieren. Dazu benötigt man folgende Informationen:
Vendor
Model
Vendor ID (Hex)
Product ID (Hex)
Init String
Um ein USB Modem (Custom) zu konfigurieren benötigt das FortiOS die entsprechende USB ID. Um diese Werte erhauszufinden kann folgendes Kommando abgesetzt werden:
# fnsysctl cat /proc/bus/usb/devices
NOTE Weiter Informationen zum Kommando "fnsysctl" siehe nachfolgenden Artikel:
FortiGate:fnsysctl
Nach diesem Befehl wird eine Liste ausgegeben mit allen USB Devices verbunden mit dem Device zB:
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 1, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.04
S: Manufacturer=Linux 2.4.37 ehci_hcd
S: Product=Fortinet USB EHCI host controller 1
S: SerialNumber=AHB BUS
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
Das vorhegende Beispiel zeigt die Informtionen des "USB EHCI Host Controller" und nicht eines USB Modems. Wenn ein USB Modem verbunden ist so werden folgende Werte angezeigt die für die Konfiguration eines USB Modems (Custome) wichtig sind:
P: Vendor=0f3d ProdID=68aa Rev= 0.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=AirCard 320U
Diese Informationen werden nun herangezogen um ein USB Modem (Custome) über nachfolgenden Befehl zu konfiguriert:
# config system 3g-modem custom
# edit 1
# set vendor "Sierrawireless"
# set model "320U"
# set vendor-id 0f3d
# set product-id 68aa
# next
# end
Das was nun fehlt ist der korrekte "Init String" String. Diese Information kann durch den Hersteller zur Verügung gestellt werden. Ein 3G USB Modem, angeschlossen an eine FortiGate, ist "nicht" Hot-Swap dh. das 3G USB Modem muss beim Start der FortiGate angeschlossen sein um dieses durch die FortiGate einwandfrei zu erkennen. Auch nach einer einwandfreier Erkennung darf dieses nicht aus- und wieder eingesteckt werden dh. das Funktioneren eines 3G USB Modems unter einer FortiGate wird nur gewährleistet, wenn das 3G USB Modem beim Start einer FortiGate am Device angeschlossen ist. Ueber die Kommandozeile können etliche Optione zusätzlich konfiguriert werden:
# config system modem
# set account-relation [equal | fallback]
# set altmode [enable | disable]
# set authtype1 [pap chap mschap mschapv2]
# set authtype2 [pap chap mschap mschapv2]
# set authtype3 [pap chap mschap mschapv2]
# set auto-dial [enable | disable]
# set connect_timeout [Definiere das Timeout in Sekunden 30 - 255; Standard 90]
# set dial-on-demand [enable | disable]
# set distance [Definiere die Routing "distance"; Standard 10]
# set extra-init1, extra-init2, extra-init3 [Init String des Modem]
# set holddown-timer [Nur zu benutzen für Fallback 1 - 60 Sekunden; Standard 60]
# set idle-timer [Nur bei "mode standalone"; Setzt Idel; Standard 5 Minuten]
# set interface [Gebe ein Interface Name an der das Modem representiert]
# set lockdown-lac [Erlaubt nur LAC "local area code"; Standard null]
# set mode [redudant | standalone]
# set modem-dev1, modem-dev2, modem-dev3 [internal | pcmciawireless]
# set network-init [Setzt den "Network Operation" AT command zB "AT+COPS=<mode>,[<format>,<oper>[,<AcT>]]"; Standard 0 = Auto / 1 = Manuell]
# set passwd1, passwd2, passwd3 [Passwort]
# set peer_modem1 [actiontec | ascendTNT | generic]
# set peer_modem2 [actiontec | ascendTNT | generic]
# set peer_modem3 [actiontec | ascendTNT | generic]
# set phone1 [Telefon Nummer dial-up Konto]
# set phone2 [Telefon Nummer dial-up Konto]]
# set phone3 [Telefon Nummer dial-up Konto]]
# set pin-init [Setze AT Kommando für PIN]
# set ppp-echo-request1 [disable | enable]
# set ppp-echo-request2 [disable | enable]
# set ppp-echo-request3 [enable | disable]
# set priority <integer> [enable | disable]
# set redial [Maximaler Wählvorgang 1-10; Standard null]
# set status [enable | disable]
# set username1 [Username dial-up Konto]
# set username2 [Username dial-up Konto]
# set username3 [Username dial-up Konto]
# set wireless-port [TTY Port für 3G Modems; Standard 0 = Default]
# end
Mit folgenden Kommandos kann nachträglich die korrekte Einbindung getestet werden:
# diagnose sys modem detect
modem is attached.
dialtone is detected.
# diagnose sys modem external-modem
External modem vendor: Huawei
External modem model : E1692
# diagnose sys modem history
# diagnose debug application modemd -1
# diagnose debug enable
Gibt es zum 3G USB Modem Alternativen die ich auf einer FortiGate benutzen kann?
Wenn ein 3G USB Modem auf einer FortiGate benutzt werden soll ist das Erste das man überprüfen muss die Kompatibilität dh. welches 3G USB Modem ist kompatibel und "sollte" funktionieren. Dazu siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Welche_3G_USB_Modem.27s_.28Compatibility.29_kann_ich_f.C3.BCr_eine_FortiGate_benutzen.3F
Auch wenn ein 3G USB Modem auf der Kompatibilitätsliste erscheint resp. gelistet ist, hat man noch keine Gewährleistung das dieses mit einer FortiGate einwandfrei funktioniert. Der Grund ist, dass die 3G USB Modem Provider dh. der ISP oft die Firmware modifiziert und so die Kompatibilität -obwohl das 3G USB Modem aufgelistet ist in der Kompatibilitätslist der FortiGate- nicht mehr gewährleistet ist. Dieser Umstand ist im folgenden Artikel beschrieben:
FortiGate-5.0-5.2:FAQ#Orginal_Modem_der_Swisscom_.22Huawei_E3276.22_funktioniert_nicht_auf_einer_FortiGate.3F
Eine Alternative bietet der Hersteller "Bintec" dh.:
Datei:Fortinet-1406.jpg NOTE Der Device kann bei "Altron" bezogen werden! Der hier abgebildete Preis stellt den Endkunden Richtpreis dar!
Dieser Hersteller bietet einen Device bei dem eine SimCard direkt eingesetzt werden kann und anhand eines VLAN's dieser Device über Ethernet (PoE) eingebunden wird:
Datei:Fortinet-1407.jpg
Nachfolgendes Dokument wurde durch den Kunden der diese Lösung getestet hat und produktiv im Einsatz hat zur Verfügung gestellt:
Datei:Bintec-4G-LE-How-To.pdf
Kann ich eine Dual ISP Implementierung anhand eines Modem konfigurieren?
Grundsätzlich ist dies möglich und ist durchzuführen wie unter folgenden Artikel erklärt:
FortiGate-5.0-5.2:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F
Dies was zu berücksichtigen ist wäre der Umstand, dass wenn ein "dynamisches Interface" benutzt wird, wie bei einem Modem, die Routing Table obwohl ECMP aktiviert ist nicht auf den neusten Stand gebracht wird (Default Gateway). In so einem Fall muss der FortiGate mitgeteilt werden, dass für dieses "dynamische Interface" ein "dynamischer Gateway" gilt und somit die nötige Route/Gateway in die Routing Tabelle automatisch eingetragen wird. Dies wird der FortiGate mit folgendem Kommando mitgeteilt:
# config router static
# edit [Wähle den entsprechenden Eintrag/Sequenz]
# dynamic-gateway enable
# next
# end
NOTE Damit diese Konfiguration durchgeführt werden kann muss das entsprechende "dynamische Interface" aktiv sein!
Orginal Modem der Swisscom "Huawei E3276" funktioniert nicht auf einer FortiGate?
Wenn über eine FortiGate ein Modem betrieben werden möchte und es sich um ein "Huawei E3276" Device handelt (Kategorie 4G LTE Speed) so wird dieser Device nicht korrekt erkannt aus folgenden Gründen: Der Device -sofern dieser von der Swisscom stammt- ist mit einer speziellen Firmware (Swisscom) versehen und benutzt nicht die orginal Software des Herstellers Huawei. Durch die spezielle Firmware wird der Device -obwohl dieser in der FortiGate in der Liste der unterstützten Modem's erscheint- als "USB Card Reader" resp. Storage Device erkannt. Dies ist zurück zu führen auf die -durch die Swisscom- verwendete spezielle Firmware! Wenn der Device an einem USB Anschluss der FortiGate eingesteckt wird und man anhand des Diagnose Kommandos den Device überprüft wird folgendes aufgelistet:
# diagnose sys lte-modem info
LTE Modem configuration enabled!
LTE Modem device not initialized!
Manufacturer:
Model:
IMEI:
USB Modem Interface: down
Network Cfg: CDMA-1x
APN: gprs.swisscom.ch
Authen Type: none
Extra Init String: at+cgdcont=1,"ip","gprs.swisscom.ch"
Interface mode: standalone
Holddown Time: 30
Wenn man sich den Device ordentlich anschaut zB unter Windows so ergiebt sich folgender orginal Informationen:
Found modem : E3276
Model : Huawei E3276
IMEI : 893784015254081
Serial NR. : A2FTW14724001765
Firmware : 21.263.30.02.103 (Original Swisscom)
Compile date / time : May 15 2013 18:22:38
Hardware ver. : CH1E3276SM
Dashboard version : UDM_Win12.1.0_24162_Mac4.3_130503.123104
SIM Lock status : unlocked
Wrong codes entered : 0 (unlock attempts left : 10)
NOTE Wenn das Modem an einer FortiGate verbunden ist können die Informationen auch über folgendes Kommando eingesehen
werden:
# fnsysctl cat /proc/bus/usb/devices
Um das 4G Modem unter FortiGate zu betreiben muss die Firmware des Herstellers geladen werden. Dazu benötigt man folgende Komponenten:
NOTE Die folgenden Anweisungen erfolgen auf eigene Gefahr. Die hier aufgelisteten Informationen sind keine offiziellen
Hersteller Informationen resp. Vorgehensweisen. Anwendung auf eigenen Verantwortung!
1. IMEI Nummer
2. Modell Nummer
3. Firmware von Huawei sowie Tool zum Laden der Firmware
Die IMEI Nummer ergiebt sich aus der orginal Informationen in unserem Beispiel "893784015254081". Das Modell kann ebenfalls aus den orginal Informationen ausgelesen werden. In unserem Beispiel also "E3276". Nun muss anhand dieser Informationen ein "Unlock Code" generiert werden ansonsten kann die gewünschte Firmware anhand des Tools nicht geladen werden da dies nicht einem offiziellen Weg entspricht. Um den "Unlock" Code zu generieren kann folgende Seite benutzt werden:
http://www.modemunlock.com/huawei-algo-check/ http://tools.texby.com/unlock-codes/huawei/ NOTE Die Abkürzung IMEI steht für "International Mobile Equipment Identity" und identifiziert jeden Mobile Device in einem Mobile Netz. Der 14-Digit lange String enhält Informationen über Model, Serial Nummer des Devices und ist somit "einmalig" und kann herangezogen werden um den Device im Mobile Netz zu identifizieren!
Danach kann die Firmeware sowie das Tool zum laden der Firmeware über folgenden Link runtergeladen werden:
Datei:E3276Win8.zip
Nachdem das Tool resp. die Firmeware anhand des "Unlock" Codes geladen wurde kann wiederum die Status Informationen überprüft werden zB über Windows:
Found modem : E3276
Model : Huawei E3276
IMEI : 893784015254081
Serial NR. : A2FTW14724001765
Firmware : 21.260.05.00.609
Compile date / time : Jan 10 2013 15:51:10
Hardware ver. : CH1E3276SM
Dashboard version : UDM_Win12.1.0_24162_Mac4.3_130503.123104
SIM Lock status : unlocked
Wrong codes entered : 0 (unlock attempts left : 10)
Um das Modem korrekt zu konfigurieren muss dem Modem einen init String mitgegeben werden. Dieser wird für dieses Modem folgendermassen konfiguriert:
# config system modem
# set status enable
# set auto-dial enable
# set phone1 "*99***1#"
# set extra-init1 "AT+CGDCONT=1,\"IP\",\"gprs.swisscom.ch\""
# end
Nun kann das 4G Modem über die FortiGate getestet werden dh. anhand des Kommandos:
# diagnose sys lte-modem info
# diagnose sys modem external-modem
SMS
Wie konfiguriere ich meinen eigenen SMS Provider/Server?
Wenn auf einer FortiGate eine Two-Factor Authentication eingerichtet werden möchte und dies über SMS durchgeführt wird so muss für die Versendung der SMS ein EMail SMS Provider konfiguriert werden. Eine Versendung von SMS über HTTP GET und/oder POST ist über einen FortiGate Device nicht möglich. Folgender Befehl wird benutzt für die Definition eines SMS Servers/Providers:
FortiOS 4.3 (ab Patch 9)
# config user sms-provider
# edit [Name des Providers/Servers]
# set mail-server [FQDN des Mail Server]
# next
# end
FortiOS 5.0 / 5.2
# config system sms-server
# edit [Name des Providers/Servers]
# set mail-server [FQDN des Mail Server]
# next
# end
NOTE Bei der Definierung eines SMS Servers/Providers handelt es sich um einen "Mail Server"
der die per E-Mail übermittelten Nachrichten entgegen nimmt und diese anhand der im
E-Mail enthaltenen Informationen per SMS an die Zielperson versendet!
Unter FortiOS 5.0 steht die Funktion einer Definierung des SMS Providers/Servers über das Gui zur Verfügung:
System > Config > Messaging Servers
NOTE Unter FortiOS 5.2 exisitert der Menüpunkt "Messaging Servers" nicht mehr und wurde in folgenden
Menüpunkt verschoben:
System > Config > Advanced
Wenn das Versenden der SMS über "HTTP GET und/oder POST" gewünscht kann dies über den FortiAuthenticator konfiguriert werden. Dieser agiert dann in der Authentifizierung als Radius Server mit Two-Factor Authentifizierung. Weitee Informationen betreffend "HTTP GET und/oder POST" Konfiguration auf einem FortiAuthenticator siehe nachfolgenden Artikel:
FortiAuthenticator:FAQ#Wie_kann_ich_auf_einem_FortiAuthenticator_ein_SMS_Gateway_Konfigurieren_f.C3.BCr_die_Versendung_von_SMS_Nachrichten.3F
Sniffer
Wie benutze ich das Sniffer Kommando "diagnose sniffer packet"?
Wie das Kommando "diagnose sniffer packet" benutzt wird siehe nachfolgender Artikel. Dieser Artikel enthält Informationen wie das Kommando aufgebaut ist und enthält Anwendungsbeispiele:
FortiGate:Diagnose-Sniffer-Guide
Packet Capture
Wie kann ich auf einer FortiGate einen "Packet Capture" durchführen?
Die "Packet Capture" Funktion bietet die Möglichkeit über ein FortiGate ein .pcap File zu erstellen das später zB über Wireshark analisiert werden kann. Die Menüposition findet man unter FortiOS 5.0 sowie 5.2 unter folgendem Punkt:
System > Network > Packet Capture
Datei:Fortinet-1592.jpg
NOTE Unter FortiOS 5.2 wird bei kleineren Devices das Logging auf die Disk deaktiviert resp. verunmöglicht. Die Kommandos betreffend "config log disk setting" stehen nicht mehr zur Verfügung. Weitere Informationen siehe: FortiOS 5.2 Software Matrix Somit wird eigentlich das "Packet Capture" verunmöglicht da diese Funktion auf die Disk angewiesen ist und somit steht diese Funktion kleineren Devices gemäss "Software matrix" nicht mehr zur Verfügung. Auch der Meüpunkt für "Packet Capture" existiert unter FortiOS 5.2 nicht mehr unter folgenden Punkt: System > Network > Packet Capture Dieser Menüpunkt kann jedoch direkt angegangen werden über folgenden "inoffiziellen" Link: https://[Management IP FortiGate]/p/firewall/sniffer/ Die Voraussetzung jedoch dafür ist eine "formatierte" zur Verfügung stehende Disk obwohl diese bei kleineren Devices für das Log nicht mehr zur Verfügung steht. Aus diesem Grund und aus anderen Gründen sollte - obwohl diese eigentlich nicht verwendet werden kann - bei kleineren Devices die Disk dennoch Formatiert werden: # execute formatlogdisk Log disk is /dev/sdb4 Formatting this storage will erase all data on it, including Logs, quarantine files; WanOpt caches; and requires the unit to reboot. Do you want to continue (y/n) y
Die "Packet Capture" Size liegt bei den FortiGate Devices auf 10 MB. Wie diese Size vergrössert wird siehe nachfolgender Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Gr.C3.B6sse_f.C3.BCr_.22Packet_Capture.22_anpassen.3F NOTE Der Artikel beschreibt wie die "Package Capture" Size für Devices mit Disk Logging möglichkeit angepasst wird. Für Devices wie zB 60D die keine Disk Logging Möglichkeit besitzen kann diese Grösse nicht angepasst werden da der zuständige Befehl nicht zur Verfügung steht!
Die Konfigurationspunkte die über den angegebenen Link zur Verfügung stehen, können ebenfalls auf der Kommandozeile konfiguriert werden:
# config firewall sniffer
# get
# edit 1
# new entry '1' added
# get
id : 1
status : enable
logtraffic : utm
ipv6 : disable
non-ip : disable
interface :
host :
port :
protocol :
vlan :
application-list-status: disable
ips-sensor-status : disable
av-profile-status : disable
webfilter-profile-status: disable
spamfilter-profile-status: disable
dlp-sensor-status : disable
ips-dos-status : disable
max-packet-count : 4000
Wie kann ich die Grösse für "Packet Capture" anpassen?
Wenn ein "Packet Capture" ausgeführt wird (Wireshark Format) unter FortiOS 5.0 sowie FortiOS 5.2 gilt ein Standard Grösse des "Capture" Files von 10 MB. Dies bedeutet sind die 10 MB aufgebraucht durch einen laufenden "Packet Capture", werden die alten Informationen durch die neuen überschrieben. Möchte man unter FortiOS 5.0 sowie 5.2 die Grösse anpassen muss folgender Befehl ausgeführt werden auf Kommandozeile:
# config log disk setting
# set max-policy-packet-capture-size 10
# end
NOTE Dieser Befehl steht unter FortiOS 5.2 kleinere Devices wie zB 60D nicht zur Verfügung da diese keine Möglichkeit haben die
Disk für das Logging zu benutzen. Somit steht die "Packet Capture" Funktion für diese Devices nicht zur Verfügung! Wie
dennoch diese Funktion bei kleineren Device genutzt werden kann siehe nachfolgenden Artikel:
FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_einen_.22Packet_Capture.22_durchf.C3.BChren.3F
Kann ich das "Packet Capture" für Administratoren Einschränken?
Administratoren auf einer FortiGate basieren betreffend Ihrere Rechte auf Profiles die selber erstellt werden können. Diese Profiles findet man im Web Mgmt. Interface unter folgender Position:
System > Admin > Admin Profiles
AB FortiOS 5.2 kann über diese erstellten und/oder exisiterenden Profiles das "Packet Capture" eingeschränkt werden:
System > Admin > Admin Profiles > [Wähle ein entsprechendes Profile] > Firewall Configuration > Packet Capture Configuration > [None | Read Only | Read-Write]
Die Konfiguration steht ebenfalls über Kommandozeile zur Verfügung:
# config system accprofile
# edit [Name des entsprechenden Profiles]
# set fwgrp custom
# config fwgrp-permission
# set packet-capture [read-only | read-write | none]
# end
# end
# end
# end
Danach muss das entsprechende Profile dem entsprechenden Administrator hinzugefügt werden:
# config system admin
# edit [Name des entsprechenden Administrators]
# set accprofile [Name des entsprechenden Profile das unter "accprofile" erstellt wurde]
# end
fnsysctl
Um was handelt es sich beim Kommando "fnsysctl"?
Weitere Informationen dazu siehe nachfolgenden Artikel:
FortiGate:fnsysctl
Debug Flow
Wie benutze ich das Debug Kommando "diagnose debug flow"?
Wie das Kommando "diagnose debug flow" benutzt wird siehe nachfolgender Artikel. Dieser Artikel enthält Informationen wie das Kommando aufgebaut ist und enthält Anwendungsbeispiele:
FortiGate:Diagnose-Command-Guide#debug_flow
CLI
Wie finde ich heraus welche Befehle auf der CLI benutzt werden wenn im Webinterface ein Konfiguration durchgeführt wird?
Erstelle eine Serielle Verbindung auf den Consolen Port. Gebe dort ein:
Setze den Debug Filter zurück:
# diagnose debug reset
Setze einen neuen Debug Filter:
# diagnose debug cli -1
Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
# diagnose debug enable
NOTE Die Angabe -1 gibt den Debug Level an dh. die Tiefe der Informationen. Um die Consolen Outputs
anzuzeigen betreffend den WebInterface Konfigurationen muss mind "-1" gewählt werden. Das max.
liegt bei 8!
Nun ist der Debugger eingeschaltet. Folgendermassen wird er wieder ausgeschaltet.
Deaktiviere den Debug Modus:
# diagnose debug disable
Setze den Debug Filter zurück:
# diagnose debug reset
Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
# diagnose debug info
ACHTUNG Wenn der Debug Vorgang nicht abgeschaltet wird dh. "disable" läuft dieser permanent mit im
Hintergrund dh. dieser Vorgang ist "sehr" Performance Intensiv und sollte deshalb umbedingt
ausgeschaltet werden! Wenn der User sich ausloggt ist dieser Debug Vorgang ebenfalls noch
aktiv dh. "persistent"! Aus diesem Grund umbedingt nach Gebrauch ausschalten.
Wie führe ich auf einer FortiGate auf der Kommandozeile einen "ping" aus?
Um einen "ping" auszuführen muss auf der Kommandozeile einer FortiGate folgendes durchgeführt werden:
# execute ping [IPv4 Adresse oder FQDN Name der Destination]
NOTE "execute ping" kann durch folgende Option konfiguriert/beinflusst werden:
# execute ping-options ?
data-size Integer value to specify datagram size in bytes.
df-bit Set DF bit in IP header yes or no.
interval Integer value to specify seconds between two pings.
pattern Hex format of pattern, e.g. 00ffaabb.
repeat-count Integer value to specify how many times to repeat PING.
source Auto or source interface IP.
timeout Integer value to specify timeout in seconds.
tos IP type-of-service option.
ttl Integer value to specify time-to-live.
validate-reply Validate reply data yes or no.
view-settings View the current settings for PING option.
Um die entsprechenden Optionen zu setzen muss folgendes ausgeführt werden:
# execute ping-options view-settings
# execute ping-options data-size [bytes]
# execute ping-options df-bit [yes | no]
# execute ping-options pattern [2-byte_hex]
# execute ping-options repeat-count [repeats]
# execute ping-options source [auto | source-intf_ip]
# execute ping-options timeout [seconds]
# execute ping-options tos [service_type]
# execute ping-options ttl [hops]
# execute ping-options validate-reply [yes | no]
Dies bedeutet: Möche man eine "ping" absetzen und für diesen Ping eine bestimmte Source IP konfigurieren/setzen kann "execute ping-options source" benutzt werden. Per Standard steht die Option "source" auf "aut" was wiederum folgendes bedeutet: Durch das Ausführen von "execute ping" wird als Absender resp. "source" die Interface IP gesetzt die der "ping" benutzt wenn dieser die FortiGate verlässt!
Wie führe ich auf einer FortiGate auf der Kommandozeile einen "traceroute" aus?
Um einen "traceroute" auszuführen muss auf der Kommandozeile einer FortiGate folgendes durchgeführt werden:
# execute traceroute [IPv4 Adresse oder FQDN Name der Destination]
NOTE "execute traceroute" kann durch folgende Option konfiguriert/beinflusst werden:
# execute ping-options ?
data-size Integer value to specify datagram size in bytes.
df-bit Set DF bit in IP header yes or no.
interval Integer value to specify seconds between two pings.
pattern Hex format of pattern, e.g. 00ffaabb.
repeat-count Integer value to specify how many times to repeat PING.
source Auto or source interface IP.
timeout Integer value to specify timeout in seconds.
tos IP type-of-service option.
ttl Integer value to specify time-to-live.
validate-reply Validate reply data yes or no.
view-settings View the current settings for PING option.
Um die entsprechenden Optionen zu setzen muss folgendes ausgeführt werden:
# execute ping-options view-settings
# execute ping-options data-size [bytes]
# execute ping-options df-bit [yes | no]
# execute ping-options pattern [2-byte_hex]
# execute ping-options repeat-count [repeats]
# execute ping-options source [auto | source-intf_ip]
# execute ping-options timeout [seconds]
# execute ping-options tos [service_type]
# execute ping-options ttl [hops]
# execute ping-options validate-reply [yes | no]
Dies bedeutet: Möche man eine "traceroute" absetzen und für diesen Ping eine bestimmte Source IP konfigurieren/setzen kann "execute ping-options source" benutzt werden. Per Standard steht die Option "source" auf "aut" was wiederum folgendes bedeutet: Durch das Ausführen von "execute traceroute" wird als Absender resp. "source" die Interface IP gesetzt die der "traceroute" benutzt wenn dieser die FortiGate verlässt!
Wie führe ich auf einer FortiGate auf der Kommandozeile einen "telnet" aus?
Wenn für Applikationstests zB SMTP, HTTP usw. ein Telnet auf der FortiGate ausgeführt werden sollte, kann nachfolgendes Kommando benutzt werden um dies durchzuführen:
# execute telnet [IPv4 Adresse] [Port]
Wie kann ich eine Konfiguration temporär Aktiv setzen und event autom. ein Roll-Back initieren?
So ein Scenario kann anhand des folgenden Kommandos durchgeführt werden:
# config system global
# set cfg-save [automatic | manual | revert]
# end
Die verschiedenen Optionen haben folgende Bedeutung:
• automatic — Automatisches Speichern nach jeder Konfigurations Aenderung
• manual — Manuelles speichern der Konfigurations Aenderung anhand des Kommandos:
# execute cfg save
• revert — Manuelles speichern der Konfigurations Aenderung innerhalb des definierten Timeouts (execute cfg save)
oder
Automatisches Roll-back nach Ablauf des Timeouts
oder
Manuelles Roll-back innerhalb des Timeouts (execute cfg reload).
Ein solches Scenarion kann genutzt werden um eine Konfiguration zu testen bevor diese aktiv wird dh. wenn zB ein Routing Eintrag erstellt werden soll jedoch die Gefahr besteht selber ausgeschlossen zu werden da der Routing Eintrag die verbindung "zum" FortiGate Device betrifft. In so einem Scenario würde folgendermassen vorgegangen werden:
- Aktiviere den "revert" Mode:
# config system global
# set cfg-save revert
- Setze das entsprechende Timeout:
# set cfg-revert-timeout [Angabe in Sekunden zB 600]
# end
- Speichere den Roll-Back Punkt:
# execute cfg save
- Führe die Konfiguration aus dh. in unserem Beispiel das Routing (Ab "end" gilt das Timeout):
# config router static
# edit [Gebe einen Integer an]
# set dst [IPv4 Adresse und Subnet Mask]
# set gateway [IPv4 Adresse]
# end
System will reload in the next 10 seconds....
System will reload in the next 9 seconds....
System will reload in the next 8 seconds....
System will reload in the next 7 seconds....
System will reload in the next 6 seconds....
NOTE Zur Warnung werden die letzten 10 Sekunden auf der Console als
Countdown angezeigt!
- Teste die Konfiguration:
--> Ist diese "Erfolgreich" führe folgendes Kommandos innerhalb des definierten
Timeouts aus:
# execute cfg save
--> Ist diese "Nicht Erfolgreich" führe innerhalb des Timeouts ein Roll-Back
durch anhand folgenden Befehl:
# execute cfg reload
oder
Lass das Timeout ablaufen damit ein Automatisches Roll-back durchgeführt wird.
Kann ich Linux/Unix basierender Befehl "grep" auf der Kommandozeile benützen?
Die Kommandozeile von FortiOS ist keine Shell! Dennoch kann "grep" benutzt werden um Informationen des Outputs zu durchsuchen. Wenn ein Befehl auf der Kommandozeile ausgeführt wird kann der Output anhand "pipe" ("|") in einen Zwischenspeicher geschrieben werden. Anhand der Anweisung "grep" kann danach dieser Zwischenspeicher durchsucht werden nach Informationen (Parsing). Ein Beispiel wäre zB folgendes:
- Wenn nachdem Login auf der Kommandozeile folgender Befehl eingegeben wird so zeigt Fortinet die gesamte Konfiguration an:
# show
- Möchte man nun diesen Output der sehr lange sein kann nach einer bestimmten Information durchsuchen wie einer IP Adresse zB 192.168.1.1 kann folgender Befehl ausgeführt werden:
# show | grep 192.168.1.1
Der Output wird nun Zeile für Zeile gefiltert und nach "192.168.1.1" durchsucht. Alle Zeilen die diese Informatione enthalten werden als Resultat ausgegeben.
Zusätzlich stehen dem Befehl "grep" folgende Optionen zur Verfügung:
Usage: grep [-invfcABC] PATTERN
Options:
-i Ignore case distinctions
-n Print line number with output lines
-v Select non-matching lines
-f Print fortinet config context
-c Only print count of matching lines
-A Print NUM lines of trailing context
-B Print NUM lines of leading context
-C Print NUM lines of output context
Wie finde ich heraus welche Objekte durch welche Funktionen/Konfiguration benützt werden?
Wenn man auf einer FortiGate über Gui sowie über CLI arbeitet und Modifikationen durchführt kommt man immer wieder in die Situation, dass Objekte nicht verändert oder gelöscht werden können da diese "in use" dh. in Gebrauch sind. Dies bedeutet da die Objeket in Gebrauch sind können diese durch deren Abhängigkeit weder gelöscht und/oder zum Teil verändert werden. Das WebGui bietet zwar eine Möglichkeit diese Abhängigkeiten aufzuzeigen zB für Gruppen Objekte (äusserste Rechte Spalte "Ref."). Auf der Kommandozeile steht diese Funktion ebenfalls zur Verfügung und ist vielschichtiger da über WebGui die Spalte "Ref." nicht immer zur Verfügung steht. Dies bedeutet, wenn man unter "Firewall Objects > Addresses" die Spalte "Ref." sucht ist diese per Standard nicht vorhanden kann jedoch als zusätzliche Spalte eingeblendet werden. Der Befehl auf Kommandozeile der für diese Funktion zuständig ist heisst:
# diagnose sys checkused <object path>
Dies bedeutet: anhand des "internen" Objekt Namens kann im Zusammenhang mit dem Kommando "diagnose sys checkused" herausgefunden werden, "Wo" das Objekt in Benutzung ist. Nachfolgend einige oft gebrauchte Beispiele:
# diagnose sys checkused system.interface.name <interface name>
# diagnose sys checkused system.dhcp.server:name <dhcp name>
# diagnose sys checkused firewall.address:name <address name>
# diagnose sys checkused firewall.addrgrp.member.name <address group name>
# diagnose sys checkused firewall.profile: <profile name>
# diagnose sys checkused firewall.service.group:name <servicegroup name>
Gibt es eine Möglichkeit auf einer FortiGate "sämtliche" zur Verfügung stehenden Befehle/Konfiguration aufzulisten?
Ja diese Möglichkeit besteht und zwar anhand des Befehls "tree". Wird dieser ausgeführt wird die CLI (Command Line Interface) Struktur auf der FortiGate ausgegeben. Nachträglich ein Beispiel mit dessen Output:
# tree