FortiGate:FAQ
FortiGate-6.0, FortiGate-6.2,FortiGate-6.4 und FortiGate-7.0:FAQ
Vorwort
Dieses FAQ ist für Fortinet Systeme basierend auf FortiOS 6.0, FortiOS 6.2, FortiOS 6.4 und FortiOS 7.0. Sofern nicht anderes vermerkt, stand zu Test-Zwecken eine Fortigate 60E oder 60F zur Verfügung!
Datenschutz
*********************************************************************
* *
* THIS FILE MAY CONTAIN CONFIDENTIAL, PRIVILEGED OR OTHER LEGALLY *
* PROTECTED INFORMATION. YOU ARE PROHIBITED FROM COPYING, *
* DISTRIBUTING OR OTHERWISE USING IT WITHOUT PERMISSION FROM *
* ALSO SCHWEIZ SWITZERLAND. *
* *
*********************************************************************
"Die in diesen Artikeln enthaltenen Informationen sind vertraulich und dürfen ohne
schriftliche Zustimmung der ALSO Schweiz AG gegenüber Dritt-Unternehmen nicht
bekannt gemacht werden"
FAQ
Dokumentation
Wo findet ich die Dokumente wie Datasheets, Quick Start Guide, User Guide etc. ?
Ueber folgenden internen Link findet man Datasheets und Quick Start Guide betreffend FortiGate Devices:
Ebenfalls lohnt es sich folgenden Link zu sichten welcher "Cookbook" ähnliche Dokumente und Videos beinhaltet:
Auf folgender Seite findet man alle Orginaldokumente betreffend FortiGate:
Release Notes:
- Datei:Security-Fabric-Upgrade-Guide-6.0.0.pdf
- Datei:Security-Fabric-Upgrade-Guide-6.0.1.pdf
- Datei:Security-Fabric-Upgrade-Guide-6.0.2.pdf
- Datei:Security-Fabric-Upgrade-Guide-6.0.3.pdf
- Datei:Security-Fabric-Upgrade-Guide-6.0.4.pdf
- Datei:Security-Fabric-Upgrade-Guide-6.0.13.pdf
- Datei:Fortinet-Recommended-SecurityBestPractices.pdf
- Datei:FortiOS-Software-Platform-Matrix-60.pdf
- Datei:IPS-Application-Control-Signature-Syntax.pdf
- FortiOS 6.0.0 Maximum Values Tabelle
- FortiOS 6.0.1 Maximum Values Tabelle
- FortiOS 6.0.2 Maximum Values Tabelle
- FortiOS 6.0.3 Maximum Values Tabelle
- Datei:FortiOS-FortiAPS-IPS-AV-compatibility.pdf
- Datei:FortiOS-Compatibility-FAZ.pdf
- Datei:FortiOS-Compatibility-FMG.pdf
FortiOS 6.0 Handbook Dokumente
- Datei:FortiGate-Whats-New-60.pdf
- Datei:FortiGate-Handbook-60.pdf
- Datei:FortiGate-Authentication-60.pdf
- Datei:FortiGate-BestPractices-60.pdf
- Datei:FortiGate-Carrier-60.pdf
- Datei:FortiGate-FortiView-60.pdf
- Datei:FortiGate-Firewall-60.pdf
- Datei:FortiGate-HA-60.pdf
- Datei:FortiGate-Hardening-60.pdf
- Datei:FortiGate-getting-started-60.pdf
- Datei:FortiGate-IPSec-VPN-60.pdf
- Datei:FortiGate-Life-of-a-Packet.60.pdf
- Datei:FortiGate-Load-Balancing-60.pdf
- Datei:FortiGate-Logging-and-Reporting-60.pdf
- Datei:FortiGate-Managing-Devices-60.pdf
- Datei:FortiGate-Managing-Switch-60.pdf
- Datei:FortiGate-Network-60.pdf
- Datei:FortiGate-Open-Ports-60.pdf
- Datei:FortiGate-Sandbox-Inspection-60.pdf
- Datei:FortiGate-Security-Fabric-60.pdf
- Datei:FortiGate-Security-Profiles-60.pdf
- Datei:FortiGate-SIP-60.pdf
- Datei:FortiGate-SSL-VPN-60.pdf
- Datei:FortiGate-System-Administration-60.pdf
- Datei:FortiGate-Traffic-Shaping-60.pdf
- Datei:FortiGate-Transparent-Mode-60.pdf
- Datei:FortiGate-Troubleshooting-60.pdf
- Datei:FortiGate-VDOMS-60.pdf
- Datei:FortiGate-Virtual-FortiOS-60.pdf
- Datei:FortiGate-Wireless-60.pdf
FortiOS 6.4 Handbook Dokumente
Quellen: https://docs.fortinet.com/product/fortigate/7.0
FortiOS Handbook Dokumente
Wo finde ich die neuen Features vom FortiOS dokumentiert?
In diesen Dokumenten wird beschrieben, welche neue Funktionen in einem FortiOS hinzugefügt wurden oder auch Funktionenen welche entfehrnt wurden:
- Datei:FortiGate-Whats-New-60.pdf

- Datei:FortiGate-Whats-New-62.pdf

- Datei:FortiGate-Whats-New-64.pdf

- Datei:FortiGate-Whats-New-70.pdf

Wo finde ich offizielle Dokumente über die Hardware Acceleration?
In diesen Dokumenten ist beschrieben wie die verschiedenen Prozesse auf der FortiGate funktionieren:
- Datei:FortiGate-Hardware-accel-60.pdf

- Datei:FortiGate-Hardware-accel-62.pdf

- Datei:FortiGate-Hardware-accel-64.pdf

- Datei:FortiGate-Hardware-accel-70.pdf

Wo finde ich die Adminguides für meine FortiGate?
Die Adminguides bechreiben sämtliche Konfigurationsmöglichkeiten, welche man auf der FortiGate durchführen kann:
- Datei:FortiGate-Handbook-60.pdf

- Datei:FortiGate-Cookbook-62.pdf

- Datei:FortiGate-AdminGuide-64.pdf

- Datei:FortiGate-AdminGuide-70.pdf

3G4G LTE Modem Operator's Manual
Welche Best Praxis Tipps gibt es für die FortiGate?
In den folgenden Dokumenten gibt es Tricks und Tipps von Fortinet für eine gute Konfiguration der FortiGate
- Datei:Fortinet-Recommended-SecurityBestPractices.pdf

- Datei:FortiGate-Hardening-60.pdf

- Datei:FortiGate-BestPractices-62.pdf

- Datei:FortiGate-BestPractices-64.pdf

- Datei:FortiGate-BestPractices-70.pdf

Wo finde ich den Log Referenzguide fuer die FortiGate?
- Datei:FortiOS-Log-Reference-60.pdf

- Datei:FortiOS-Log-Reference-62.pdf

- Datei:FortiOS-Log-Reference-64.pdf

- Datei:FortiGate-LogMessageReference-70.pdf

Wie verarbeitet die FortiGate ein Paket?
In den folgenden Dokumenten wird beschrieben wie der Life of Packet ist:
- Datei:FortiGate-Life-of-a-Packet.60.pdf

- Datei:FortiGate-Life-of-Packet-62.pdf

- Datei:FortiGate-Life-of-Packet-64.pdf

|
Mehr Informationen im folgenden Wiki Artikel: |
Wo finde ich saemtliche CLI Befehle einer FortiGate?
- Datei:FortiGate-CLI-Ref-60.pdf

- Datei:FortiGate-CLI-Ref-62.pdf

- Datei:FortiGate-CLI-Ref-64.pdf

- Datei:FortiGate-CLI-Ref-70.pdf

Welche RFCs Unterstuetzt meine FortiOS Version?
Welches sind die wichtigsten Ports und Protokolle für einen reibungslosen Betrieb?
Wenn eine FortiGate sich im Factory-Reset (Werkszustand) befindet, so werden verschiedene TCP / UDP-Ports durch das FortiOS zur Verfügung gestellt um die notwendigen Funktionen der FortiGate bereitzustellen. Nachfolgende Übersicht zeigt die benötigten Ports (TCP / UDP) auf. Folgendes ist dabei zu berücksichtigen: Diese abgebildeten TCP / UDP-Ports werden nicht standardmässig zur Verfügung gestellt / ersichtlich. Viele Ports sind nur dann ersichtlich wenn die entsprechende Funktion genutzt wird:
In den folgenden Dokumenten ist Dokumentiert, wie die FortiGate mit seinen Umsystemen kommuniziert:
- Datei:FortiGate-Open-Ports-60.pdf
--> Link auf Docs - Datei:FortiGate-Open-Ports-62.pdf
--> Link auf Docs - Datei:FortiGate-Open-Ports-64.pdf
--> Link auf Docs - Datei:FortiGate-Open-Ports-70.pdf
--> Link auf Docs
Request of Proposal
Ihre Mitarbeit ist Willkommen!
Sie möchten eine Korrektur zu einem Artikel anbringen oder einen Beitrag leisten?
Schreiben Sie uns eine Nachricht auf: fortinet-ch@also.com
Vielen Dank für Ihre Unterstützung!
Hardware
Wo finde ich die Hardware Revision und Hardware Generation Informationen einer FortiGate?
Die FortiGate verfügt über eine entsprechende "Hardware Revision" und "Hardware Generation". Über diese Informationen wird das Gerät identifiziert. Möchte man die "Hardware Revision" einer FortiGate herausfinden kann dies wie folgt bewerkstelligt werden:
| Variante Device Label | Variante FortiOS |
|---|---|
|
Die "Hardware Revision" wird als "Label" auf der Rückseite der FortiGate aufgeführt und in nachfolgender Form und als Strich-Code: PN: P15968-01 |
Wenn man über die CLI folgenden Befehl ausführt erhält man die "Hardware Revision" Informationen:
# get system status | grep Part-Number System Part-Number: P15968-01 |
Wie schon zu Beginn erklärt wird ein Device über die "Hardware Revision" und "Hardware Generation" identifiziert. Die "Hardware Generation" kann jedoch nicht eruiert werden. Weder über ein "Label" noch via CLI. Wenn diese Information benötigt wird, muss via ein Customer Care Ticket die entsprechende Information der "Hardware Generation" erfragt werden. Dies kann wie ein Support-Ticket für Fortinet eröffnet werden (siehe nachfolgender Artikel):
Fortinet:Support-Case
Bei dieser "Hardware Revision", wie in unserem Beispiel gezeigt (P15968-01), handelt es sich zBsp um eine FG-70D. Dies bedeutet, wenn eine neue "Hardware Revision" für dieses Gerät veröffentlicht wird, so kann diese über eine PN Nr. "P15968-01" verfügen, jedoch als "Hardware Generation" die "2". Es kann jedoch auch sein, dass ein neue "Hardware Revision" über eine PN-Nummer verfügt, zBsp "P15978-02". Somit können anhand der PN-Nummer keine Rückschlüsse über folgende, notwenidge Informationen gezogen werden:
PN-Nummer (Hardware Revision) + Hardware Generation
Diese Informationen der "Hardware Revision", wie auch jene der "Hardware Generation" sind dann wichtig, wenn es sich um ein Cluster handelt. Bei einem RMA Austausch achtet Fortinet darauf und übermittelt der zuständigen Stelle, welche für den Austausch zuständig ist diese Informationen. So kann sichergestellt werden, dass exakt die gleiche "Hardware Revision" und "Hardware Generation" dem Kunden zugestellt wird!
Wo finde ich eine Übersicht welche FortiGate zBsp über wieviel "Memory" verfügt, ein "SOC" und / oder ob ein "NP" verbaut ist?
Nachfolgend eine Aufstellung die zeigt über welche Komponenten, wie "SOC, NP, Memory, Storage" eine FortiGate verfügt:
|
Diese Informationen stammen aus einem Post aus dem "Fortinet Forum" da Fortinet diese Informationen nicht kommuniziert: https://forum.fortinet.com/tm.aspx?m=100451#100451 Zusätzlich steht ein Dokument von Fortinet zur Verfügung welches über die Hardware Schematic verschiedener Fortinet Produkte wie zBsp CPU, RAM, Flash usw. Auskunft gibt: |
LEGENDE
FA = FA526id(wb) rev 1 (v4l) FortiSOC (Fortinet)
I2 = Intel Core 2 Duo
I3 = Intel Pentium III
I4 = Intel Pentium 4
IA = Intel Atom
IC = Intel Celeron (Covington)
II3 = Intel Core i3
II5 = Intel Core i5
IM = Intel Mobile
IX = Intel Xeon
CP: Content Processor
NP: Network Processor
SoC: System on a Chip
Was für FortiGate Geräte stehen zur Verfügung und wie finde ich das Passende für mich?
Wenn für einen Kunden eine FortiGate evaluiert werden soll stellt sich jeweils die Frage welches Gerät das Richtige für diesen Kunden ist. Um dies zu eruieren sind folgende Punkte massgebend:
- Über was für eine Internet Anbindung verfügt der Kunde, an welcher die FortiGate installiert werden soll?
- Ist ein Ausbau / Wechsel der Internet Anbindung geplant? Falls ja, wie wird diese vergrössert? (Downstream / Upstream)?
- Wie viele User werden von der FortiGate geschützt?
- Welche UTM Features sollen auf der FortiGate aktiviert werden? (Antivirus, WebFilter, IPS usw.)
- Wird "deep inspection" eingesetzt (aufbrechen von verschlüsseltem Traffic)?
- Werden spezielle Interfaces, wie zum Beispiel SFP+ benötigt?
- Wird ein spezieller Durchsatz in einem Bereich benötigt?
- Wie wird das "logging" durchgeführt? Soll auf Disk, FortiAnalyzer oder Syslogserver geloggt werden?
Zusätzlich stellt Fortinet die sogenannte "Produkte Matrix" zur Verfügung. In dieser werden die verschiedenen Modelle gegenübergestellt. Dabei werden die verschiedenen "Durchsätze" in verschiedenen Kategorien wie SSL-VPN, IPSec, UTM Antivirus usw. aufgelistet. Dabei ist zu beachten, dass diese "Durchsätze" als "Feature Only" Durchsatz zu verstehen sind. Dies bedeutet: Wird Antivirus mit 35 Mbps Durchsatz aufgeführt, versteht sich dieser Wert in dem Sinne, dass wenn dieses Device "nur" Antivirus Traffic erhalten würde, der Durchsatz 35 Mbps ist. Aus diesem Grund ist es unerlässlich die Produkte Matrix zu konsultieren um das richtige Device für den Kunden auszuwählen:
Datei:ProductMatrix.pdf
Zudem stehen zu den verschiedenen FortiGates jeweils die "Datasheets" zur Verfügung welche nochmals detailliert über das jeweilige Gerät Auskunft gibt. Des Weiteren stehen nebst den "Datasheets" ebenso die "Quickstart Guide" zur Verfügung welche zeigen "was" zum Lieferumfang gehört und wie dieses Gerät aussieht / Abbild:
Fortinet:ProduktInfo#FortiGate
Des Weiteren steht für die Produkte Information der Produkt Guide zur Verfügung welches jede FortiGate in einer Kurzübersicht darstellt:
Datei:Fortinet-ProductGuide.pdf
Nachfolgend als Anhaltspunkt eine Übersicht der verschiedenen FortiGates welche in den verschiedenen Kategorien wie "Entry Level, Midsize usw." zur Verfügung stehen:
| FortiGate Entry Level Series: Comparison |
|---|
|
| FortiGate Mid Range Devices: Comparison |
|---|
|
| FortiGate 1000 und 2000 Series: Comparison |
|---|
|
| FortiGate 3000 Series: Comparison |
|---|
|
| FortiGate 5000: Comparison |
|---|
|
Einen detaillierten Überblick bekommt man auf der folgenden Seite:
http://help.fortinet.com/fgt/60/6-0-0/max-values.html
Wie kann ich auf einer FortigGate einen Hardwaretest ausführen (Troubleshooting / HQIP Testing)?
Damit man den "Advanced Hardware Test" resp. HQIP Test durchführen kann, muss ein spezielles "image", welches für jedes Device zur Verfügung gestellt wird, temporär geladen werden. Unter der regulären Support-Seite findet man die Images über das Icon "HQIP Images" am Ende der Seite. Nachfolgend der direkte Link für "HQIP Images":
https://support.fortinet.com/Download/HQIPImages.aspx
|
Damit man zu diesem Link gelangt muss sich mittels eines Support Accounts eingeloggen und das damit entsprechende Image herunterladen zu können, muss die entsprechende Serien-Nummer des Devices eingegeben werden. Dies muss durchgeführt werden da jedes Gerät sich anhand der Revision und Generation identifiziert um das entsprechende HQIP Image zur Verfügung stellen zu können. Dies bedeutet auch: Es ist nicht zu empfehlen ein bestehendes Image aus einem früheren HQIP Test zu nutzen um auf einem baugleichen Device den Test durchzuführen, da die Devices -obwohl Baugleich- sich in Revision und Generation unterscheiden können. |
Auf der FortiGate wird dieses HQIP Image wie beim "stagging" Prozess selber über TFTP hochgeladen. Nachdem man das HQIP Image über TFTP geladen hat kann mit dem User "admin" eingeloggt werden (kein Passwort). Anhand des Befehls "diagnose hqip start" kann ein Script ausgeführt werden. Dieses Script führt die verschiedenen Hardware Tests aus. Der Unterschied zum regulären "stagging" Prozess ist lediglich, dass dieses Image nicht anhand "D" (Default), "B" (Backup) sondern anhand "R" (Run) installiert wird. Dies bedeutet: dieses Image wird durch "R" (Run) temporären Memory-Bereichzu installieren. Der Output der seriellen Konsole muss "geloggt" werden um dies später dem Fortinet Support zur Verfügung stellen zu können. Im "Putty" wird dies für eine Session unter folgendem Bereich konfiguriert:
Category > Session > Logging > All Session output
Nachfolgend eine Schritt für Schritt-Anleitung wie so ein HQIP Image geladen, und das Skript ausgeführt werden kann:
-> Entsprechendes Image herunterladen (siehe Link oben; Serien-Nummer des Gerätes muss angegeben werden)
-> Benenne das File neu mit "image.out" und verschiebe diese in das root Verzeichnis eines TFTP Servers.
Wenn kein TFTP Server vorhanden ist empfehlen wird den SolarwindsTFTP Server. Nachfolgend ein Link
um diesen herunterzuladen:
SolarWinTFTP Server http://www.solarwinds.com/products/freetools/free_tftp_server.aspx
-> Sofern das Web Mgmt. Interface zugänglich ist empfehlen wir vor dem Test ein ordentliches Backup der
Konfiguration der FortiGate durchzuführen!
-> Führe über die Serielle Konsole nachfolgenden Befehl aus um einen Neustart des Devices durchzuführen:
# execute shutdown
-> Um das HQIP Image über den TFTP Server zu laden muss eine Workstation folgendermassen mit einer FortiGate
verbunden werden (Beispiel: FortiGate-60D)
_____________________________
| RS232 Verbindung |
Konsolen Port | |
___________|___ | RS232 Anschluss
| | ____|_______________
| FortiGate 60D | 192.168.1.100/24 | |
|_______________| _____| LapTop/Workstation | --> SolarWindsTFTP Server starten
| | NIC |____________________| --> FortiOS als image.out im C:\TFTP-Root
WAN1 | |
|_____________________|
NOTE Auf dem Laptop müssen sämtliche Firewalls, Endpoint Security und Netzwerkkarten deaktiviert sein und auf der LAN Netzwerkarte
muss die IP 192.168.1.100 mit dem Subnet 255.255.255.0 konfiguriert sein (kein DNS, kein Default Gateway nötig)!
-> Öffne über Putty eine serielle Verbindung (Konsole) und achte darauf das "Putty" für Log aktiviert wurde.
Schalte die FortiGate ein und breche den Startprozess ab wenn folgendes erscheint:
FortiGate-60D (10:49-11.12.2014)
Ver:04000024
Serial number: FGT60D4615013788
CPU(00): 800MHz
Total RAM: 2GB
Initializing boot device...
Initializing MAC... nplite#0
Please wait for OS to boot, or press any key to display configuration menu
Unterbreche den Boot-Prozess durch "Press any key"
[C]: Configure TFTP parameters.
[R]: Review TFTP parameters.
[T]: Initiate TFTP firmware transfer.
[F]: Format boot device.
[I]: System information.
[B]: Boot with backup firmware and set as default.
[Q]: Quit menu and continue to boot.
[H]: Display this list of options.
Enter C,R,T,F,I,B,Q,or H: T
Please connect TFTP server to Ethernet port 'WAN1'.
MAC: 08:5b:0e:d9:18:f0
Connect to tftp server 192.168.1.100 ...
############################################################
Image Received.
Checking image... OK
ACHTUNG - Beim nächsten Menüpunkt wähle "R", NICHT "D" oder "B" um zu speichern, sondern NUR ausführen!
Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?R
Reading boot image... 1829759 bytes.
Initializing firewall...
System is starting..
Test program loading(HQIP, Build1003,Dec 15 2010 19:42:45) ...
You are running HQIP test program. To start testing, login as "admin" without password, and type:
diagnose hqip start
Melde dich nun anhand der obigen Informationen an!
HQIP login: admin
Password:
Welcome !
HQIP # diagnose hqip start
Nun wird der HQIP Test ausgeführt und zwar für folgende Informationen:
1.BIOS Integrity Check
2.System Configuration Check
3.Memory test
4.CPU test
5.CPU/Memory Performance Test
6.FortiASIC Test
7.USB Test
8.Boot Device Test
9.Hard Disk Test
10.Network Interface Controller Test
11.NPU DDR Memory Test
12.LED Test
13.Reset Button Test
Dies bedeuetet, dass normalerweise alle Netzwerkkarten Ports angeschlossen werden müssten. Geschieht dies nicht, so erscheint eine Fehlermeldung welche jedoch keinen weiteren Einfluss auf die auszuführenden Tests hat, ausser der Test soll auf den Interfaces ausgeführt werden. Wenn die Netzwerkkarten-Tests korrekt ausgeführt werden sollen, müssen die Ports wie folgt verbunden werden (Beispiel FortiGate-60D):
Nachfolgend ein Output eines solchen Tests einer FG-60D (Netzwerk Port gemäss Grafik oberhalb umgangen):
Datei:Hqip-output-v54.txt
Um die Fortigate wieder in den originalen Zustand zu versetzen führe ein Login über die serielle Konsole mit dem User "admin" (kein Passwort)durch. Danach führe folgendes aus:
HQIP login: admin
Password:
Welcome !
HQIP # execute reboot
This operation will reboot the system !
Do you want to continue? (y/n)y
Da das HQIP Image "nur" temporärer (Memory) installiert wurde, sind alle Informationen nach einem Neustart bezüglich diesem Image gelöscht. Wenn es nach dem Neustart zu Hinweisen / Errors betreffend der Konfiguration kommt wie zBsp:
System is started.
The config file may contain errors,
Please see details by the command 'diagnose debug config-error-log read'
Führe ein Login durch und führe folgendes aus:
# diagnose debug config-error-log read
>>> "unset" "post-lang" @ root.firewall.profile-protocol-options.default.ftp:command parse error (error -61)
Oftmals ist ein einfacher Neustart der Fortigate notwendig um das Problem zu beheben:
# execute reboot
Für die FortiGate der "E"-Serie, sowie FG-300D/500D existiert kein HQIP Image - wie kann ich dennoch einen Hardwaretest ausführen?
Bei der "E"-Serie wie zBsp der FG-51E, sowie der FG-300D und FG-500D, kann via "Support"-Seite kein separates HQIP Image heruntergeladen werden. Auf diesen Umstand wird auf der "Support"-Seite hingewiesen. Hierfür steht jedoch auf den erwähnten FortiGates ein neuer "diagnose" Befehl zur Verfügung, welcher diese "Hardware Tests" im Stil von "HQIP" ausführt:
# diagnose hardware test [Parameter]
Als "Parameter" kommen folgende Attribute in Frage:
bios führt eine BIOS spezifische Überprüfung durch
system führt ein System spezifische Überprüfung durch
usb führt eine USB spezifische Überprüfung durch
button führt eine button spezifische Überprüfung durch
cpu führt eine CPU spezifische Überprüfung durch
memory führt ein Memory spezifische Überprüfung durch
network führt eine Netzwerkinterface spezifische Überprüfung durch
disk führt eine disk spezifische Überprüfung durch
led führt eine LED spezifische Überprüfung durch
wifi führt eine Wireless spezifische Überprüfung durch
suite runthe HQIP test suite
setting die Testeinstellungen können auf diesen Weg geändert werden
info zeigt die aktuellen Test Parameter an
Um alle "test suite" durchzuführen kann folgendes ausgeführt werden:
# diagnose hardware test suite all
Nachfolgend ein "Output" dieses Befehls welcher auf auf einer FG-50E basiert:
Datei:Diagnose-hardware-test-suite-all.txt
Wie erhalte ich eine Übersicht wie die Luftzirkulation (Airflow) in einer FortiGate funktioniert?
Im nachfolgenden Dokument wird aufgezeigt wie die Luftzirkulation / Kühlung der entsprechenden FortiGates aufgebaut ist und wie diese funktionieren:
Datei:Fortinet-Hardware-Airflow.pdf
Wie kann ich die verschiedenen Hardware Informationen auf einer FortiGate anzeigen lassen?
Um die detaillierten Hardware Informationen auf einer FortiGate aufzulisten steht folgender Befehl zur Verfügung:
# get hardware [cpu | memory | nic | npu | status] |
Somit kann anhand der Optionen folgendes ausgeführt werden:
# get hardware cpu
Processor : ARMid(wb) rev 1 (v4l)
model name : FortiSOC2
BogoMIPS : 799.53
Features : swp half thumb
Hardware : FSoC2_ASIC
Revision : 0000
Serial : 0000000000000000
Imp: 0x66 Arch: 0x5 Part: 0x726 Ver: 0x1
Ctype: 14 DSize: 6 DASS: 8 DLEN: 32 ISize: 6 IASS: 8 ILEN: 32
Seperated TLB: Associativity 0
0x0005317f HUM: En Vec Base:0xffff0000 IC:En BP:Dis RomP:Dis
SysP:En WB:En DC: En Align:En
0x00000000 SB: Dis DB:Dis RS:Dis
|
# get hardware memory total: used: free: shared: buffers: cached: shm: Mem: 1928364032 437944320 1490419712 0 2940928 154861568 140664832 Swap: 0 0 0 MemTotal: 1883168 kB MemFree: 1455488 kB MemShared: 0 kB Buffers: 2872 kB Cached: 151232 kB SwapCached: 0 kB Active: 74368 kB Inactive: 79864 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 1883168 kB LowFree: 1455488 kB SwapTotal: 0 kB SwapFree: 0 kB |
# get hardware cpu
Processor : ARMid(wb) rev 1 (v4l)
model name : FortiSOC2
BogoMIPS : 799.53
Features : swp half thumb
Hardware : FSoC2_ASIC
Revision : 0000
Serial : 0000000000000000
Imp: 0x66 Arch: 0x5 Part: 0x726 Ver: 0x1
Ctype: 14 DSize: 6 DASS: 8 DLEN: 32 ISize: 6 IASS: 8 ILEN: 32
Seperated TLB: Associativity 0
0x0005317f HUM: En Vec Base:0xffff0000 IC:En BP:Dis RomP:Dis
SysP:En WB:En DC: En Align:En
0x00000000 SB: Dis DB:Dis RS:Dis
|
# get hardware memory total: used: free: shared: buffers: cached: shm: Mem: 1928364032 437944320 1490419712 0 2940928 154861568 140664832 Swap: 0 0 0 MemTotal: 1883168 kB MemFree: 1455488 kB MemShared: 0 kB Buffers: 2872 kB Cached: 151232 kB SwapCached: 0 kB Active: 74368 kB Inactive: 79864 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 1883168 kB LowFree: 1455488 kB SwapTotal: 0 kB SwapFree: 0 kB NOTE Weitere Befehle um detaillierte Informationen bezüglich der Memory-Nutzung zu erhalten können dem nachfolgenden Artikel entnommen werden: Artikel Benutzung Memory anzeigen lassen |
# get hardware nic
The following NICs are available:
dmz
internal1
internal2
internal3
internal4
internal5
internal6
internal7
wan1
wan2
NOTE Um detaillierte Informationen über ein spezifisches Interface zu erhalten kann folgender Befehl ausgeführt werden: # get hardware nic [Name des Interfaces zBsp "dmz "] Driver Name :Fortinet NP4Lite Driver Version :1.0.0 Admin :up Current_HWaddr 08:5b:0e:47:db:57 Permanent_HWaddr 08:5b:0e:47:db:57 Status :up Speed :100 Duplex :Half Host Rx Pkts :480560 Host Rx Bytes :104351252 Host Tx Pkts :468353 Host Tx Bytes :83937534 Rx Pkts :480558 Rx Bytes :111078750 Tx Pkts :468351 Tx Bytes :80501362 rx_buffer_len :2048 Hidden :No cmd_in_list : 0 promiscuous : 1 enabled 802.1x : 0 authorized : 0 mac bypass : 0 |
# get hardware npu legacy legacy np1 np1 np2 np2 np4 np4 Dieser Output wird nur angezeigt wenn das entsprechende Gerät, auf welchem dieser Befehl ausgeführt wird auch einen "NPU" (Networking Processing Unit) enthält. Wenn es sich um ein Gerät mit integriertem NPU handelt, wie der SoC, wird kein Output geliefert. |
Was bedeuten die verschiedenen LED-Stati auf einer FortiGate?
Eine FortiGate verfügt am FrontPanel über verschiedene LED's wie zBsp High Availability, Power, Status usw. Diese können verschiedenen Stati anzeigen. Die Bedeutung der verschiedenen LED's können der folgenden Tabellen entnommen werden:
| LED Status Code | ||
|---|---|---|
|
Label |
Status |
Bedeutung |
| PWR | grün | Power is ON |
| Off | Power is off | |
| STA | grün | Status ist Normal |
| blinkend grün |
| |
| rot | Es liegt auf der FortiGate ein kritischer Alarm vor | |
| ALARM | Off | Kein Alarm oder die FortiGate hat einen minor Alarm |
| orange(Amber) | Die FortiGate hat einen Major Alarm | |
| rot |
| |
| HA | grün | Die FortiGate wird in einem FGCP HA-Cluster betrieben. |
| rot |
Ein Failover ist eingetreten. Dies bedeutet in der Regel, dass eine der FotiGates eines HA-Clusters ausgefallen ist, die HA-Heartbeat Kommunikation zwischen den FortiGates im HA-Cluster ausgefallen ist oder diese unterbrochen wurde. | |
| Off |
| |
| WIFI | grün | Der Wireless Port ist aktiv |
| blinkend grün |
Das Wireless Interface sendet und empfängt Daten. | |
| Off |
Das Wireless Interface ist down | |
| LED Status Codes bei den Interfaces | ||
|---|---|---|
|
Port Typ |
Status |
Bedeutung |
|
Ethernet Port |
grün | verbunden |
| blinkend grün | senden und empfangen von Daten | |
| Off |
Keine Verbindung aktiv | |
|
Ethernet Port |
grün | verbunden mit 1 Gbps |
| orange(Amber) | verbunden mit 100 Mbps | |
| Off |
Nicht verbunden oder mit 10 Mbps verbunden.
| |
| SFP Ports | grün | verbunden |
| blinkend grün | senden und empfangen von Daten | |
| Off | Keine Verbindung aktiv | |
Anordnung Link Status und Link Speed LED bei FortiGate Modellen mit nach vorne gerichteten Interfaces:
Anordnung Link Status und Link Speed LED bei FortiGate Modellen mit nach hinten gerichteten Interfaces:
Dokument:
Wie wird ein virtueller Switch komplett gelöscht?
Um einen virtuellen Switch komplett zu löschen, müssen sämtliche Einstellungen und Objekte, welche darauf referenzieren, zurückgebaut werden. Deshalb ist es am einfachsten, wenn man sich gerade am Anfang, bei der Initialkonfiguration Gedanken macht, ob man diesen virtuellen Switch verwenden möchte oder nicht. Um von einer Fortigate mit Werkseinstellung den virtuellen Switch zu löschen, muss sich via RS232 auf die Firewall verbunden werden, um dann wie folgt vorzugehen:
| 1. Sämtliche Firewall Policies mit Referenzen auf den Switch werden gelöscht: |
fg-lab # config firewall policy
fg-lab (policy) # show
config firewall policy
edit 1
set uuid eeaeeb02-1afc-51e8-4dbb-ab7cd6f3a2fe
set srcintf "internal"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
set nat enable
next
end
fg-lab (policy) # delete 1
fg-lab (policy) # end
Alternativ kann mit dem Befehl purge das ganze Regelwerk auf einmal gelöscht werden: fg-lab # config firewall policy fg-lab (policy) # purge This operation will clear all table! Do you want to continue? (y/n)y fg-lab (policy) # end |
| 2. Alle DHCP Server mit Referenzen werden entfernt: |
fg-lab # config system dhcp server
fg-lab (server) # show
config system dhcp server
edit 1
set dns-service default
set default-gateway 192.168.1.99
set netmask 255.255.255.0
set interface "internal"
config ip-range
edit 1
set start-ip 192.168.1.110
set end-ip 192.168.1.210
next
end
next
edit 2
set dns-service default
set default-gateway 10.253.255.254
set netmask 255.255.255.192
set interface "wqtn-sw.0"
config ip-range
edit 1
set start-ip 10.253.255.193
set end-ip 10.253.255.253
next
end
set timezone-option default
next
end
fg-lab (server) # delete 1
fg-lab (server) # end
Alternativ kann auch mit dem Befehl purge jeder DHCP Server aufeinmal gelöscht werden: fg-lab # config system dhcp server fg-lab (server) # purge This operation will clear all table! Do you want to continue? (y/n)y fg-lab (server) # end |
| 3. Das Interface wird zurückgebaut: |
fg-lab # config system interface
fg-lab (interface) # edit internal
fg-lab (internal) # show
config system interface
edit "internal"
set vdom "root"
set ip 192.168.1.99 255.255.255.0
set allowaccess ping https ssh http fgfm capwap
set type switch
set device-identification enable
set role lan
set snmp-index 7
next
end
fg-lab (internal) # set ip 0.0.0.0 0.0.0.0
fg-lab (internal) # next
|
| 4. Nun kann der Switch zurückgebaut werden: |
fg-lab # config system virtual-switch
fg-lab (virtual-switch) # show
config system virtual-switch
edit "lan"
set physical-switch "sw0"
config port
edit "lan1"
next
edit "lan2"
next
edit "lan3"
next
edit "lan4"
next
edit "lan5"
next
end
next
end
fg-lab (port) # delete lan1
fg-lab (port) # delete lan2
fg-lab (port) # delete lan3
fg-lab (port) # delete lan4
fg-lab (port) # delete lan5
WARNING: Virtual switch requires at least 1 port. This virtual switch currently has 0 port.But, this message can be ignored if this virtual switch will be set to 802.1x slave mode later.
Do you want to continue? (y/n)y
fg-lab (port) # end
Bei einem FortiWIFI Modell muss auch die Bridge mit dem WLAN-Port entfernt werden: fg-lab # config system switch-interface
fg-lab (switch-interface) # show
config system switch-interface
edit "internal"
set vdom "root"
set member "wifi" "lan"
next
end
fg-lab (switch-interface) # delete internal
|
| 5. Jetzt kann der virtuelle Switch komplett gelöscht werden: |
fg-lab # config system virtual-switch
fg-lab (virtual-switch) # show
config system virtual-switch
edit "lan"
set physical-switch "sw0"
next
end
fg-lab (virtual-switch) # delete lan
|
Nun können sämtliche Ports auf der Firewall individuell verwendet werden.
Wie kann ich die Tempratur der CPU ermitteln?
Um die Tempratur der CPU zu erfahren, kann im Dashboard ein Sensor Widget angezeigt werden. Es kann folgendermassen vorgegangen werden:
|
|
|
|
|
Über die CLI stehen zwei Befehle zur Verfügung, mit welchen die Temperaturen und Alarme auf der FortiGate überprüft werden können. Mit diesen Befehlen können mehr Informationen ermittelt werden:
# execute sensor list Wenn die FortiGate im VDOM Modus betrieben wird muss in die globale Konfiguration gewechselt werden: # config global # execute sensor list Es werden die Sensoren und Messwerte von jedem Komponenten aufgeführt. Dabei wird der aktuelle Wert, der Schwellwert und der Alarumstatus angezeigt.
|
| Beispiel auf einer FortiGate 300D: |
# execute sensor list 1 +3.3V alarm=0 value=3.3018 threshold_status=0 2 +5V alarm=0 value=5.048 threshold_status=0 3 +12V alarm=0 value=12.136 threshold_status=0 4 CPU VCCP alarm=0 value=1.0295 threshold_status=0 5 CPU VTT alarm=0 value=1.0491 threshold_status=0 6 CPU PVSA alarm=0 value=0.9413 threshold_status=0 7 P1V8 alarm=0 value=1.7743 threshold_status=0 8 P1V5 alarm=0 value=1.4901 threshold_status=0 9 PCH +1.05V alarm=0 value=1.024 threshold_status=0 10 VCC 2V5 alarm=0 value=2.464 threshold_status=0 11 MAIN 12V alarm=0 value=11.904 threshold_status=0 12 VCC 1V15 alarm=0 value=1.136 threshold_status=0 13 DDR3 VTT alarm=0 value=0.72 threshold_status=0 14 RPS 12V alarm=1 value=0 threshold_status=0x7 15 NCT +3.3V alarm=0 value=3.264 threshold_status=0 16 NCT VBAT alarm=0 value=3.264 threshold_status=0 17 NCT +3.3VSB alarm=0 value=3.216 threshold_status=0 18 NCT VTT alarm=0 value=1.04 threshold_status=0 19 DTS CPU alarm=0 value=63 threshold_status=0 20 CPU Core 0 alarm=0 value=63 threshold_status=0 21 CPU Core 1 alarm=0 value=63 threshold_status=0 22 TD1 alarm=0 value=51 threshold_status=0 23 TD2 alarm=0 value=39 threshold_status=0 24 FAN_TMP_3 alarm=0 value=51 threshold_status=0 25 LM75 U72 alarm=0 value=46 threshold_status=0 26 LM75 U65 alarm=0 value=46 threshold_status=0 27 LM75 U62 alarm=0 value=49 threshold_status=0 28 FAN1 alarm=0 value=6500 threshold_status=0 29 FAN2 alarm=0 value=6400 threshold_status=0 30 FAN3 alarm=0 value=6300 threshold_status=0 # execute sensor details Wenn die FortiGate im VDOM Modus betrieben wird muss in die globale Konfiguration gewechselt werden: # config global # execute sensor details Mit diesem Befehl werden noch weitere Informationen, wie der niedrigste und höchste Schwellenwert der Sensoren angezeigt:
|
| Beispiel auf einer FortiGate 300D: |
# execute sensor detail
1 +3.3V alarm=0 value=3.3018 threshold_status=0
type=2/1
upper_non_recoverable=3.6906
upper_critical=3.6258
upper_non_critical=3.5124
lower_non_critical=3.0912
lower_critical=2.994
lower_non_recoverable=2.9292
2 +5V alarm=0 value=5.048 threshold_status=0
type=2/1
upper_non_recoverable=5.587
upper_critical=5.489
upper_non_critical=5.342
lower_non_critical=4.6805
lower_critical=4.5335
lower_non_recoverable=4.4355
3 +12V alarm=0 value=12.136 threshold_status=0
type=2/1
upper_non_recoverable=14.083
upper_critical=13.729
upper_non_critical=13.434
lower_non_critical=10.602
lower_critical=10.366
lower_non_recoverable=10.012
4 CPU VCCP alarm=0 value=1.0295 threshold_status=0
type=2/1
upper_non_recoverable=1.6959
upper_critical=1.6665
upper_non_critical=1.6175
lower_non_critical=0.2259
lower_critical=0.2161
lower_non_recoverable=0.2063
5 CPU VTT alarm=0 value=1.0491 threshold_status=0
type=2/1
upper_non_recoverable=1.1765
upper_critical=1.1569
upper_non_critical=1.1275
lower_non_critical=0.9315
lower_critical=0.9021
lower_non_recoverable=0.8825
6 CPU PVSA alarm=0 value=0.9413 threshold_status=0
type=2/1
upper_non_recoverable=1.0883
upper_critical=1.0687
upper_non_critical=1.0981
lower_non_critical=0.8237
lower_critical=0.7943
lower_non_recoverable=0.7747
7 P1V8 alarm=0 value=1.7743 threshold_status=0
type=2/1
upper_non_recoverable=2.0095
upper_critical=1.9703
upper_non_critical=1.9115
lower_non_critical=1.6959
lower_critical=1.6371
lower_non_recoverable=1.6077
8 P1V5 alarm=0 value=1.4901 threshold_status=0
type=2/1
upper_non_recoverable=1.6763
upper_critical=1.6469
upper_non_critical=1.5979
lower_non_critical=1.4117
lower_critical=1.3627
lower_non_recoverable=1.3333
9 PCH +1.05V alarm=0 value=1.024 threshold_status=0
type=2/1
upper_non_recoverable=1.168
upper_critical=1.152
upper_non_critical=1.12
lower_non_critical=0.944
lower_critical=0.912
lower_non_recoverable=0.896
10 VCC 2V5 alarm=0 value=2.464 threshold_status=0
type=2/1
upper_non_recoverable=2.88
upper_critical=2.816
upper_non_critical=2.784
lower_non_critical=2.24
lower_critical=2.208
lower_non_recoverable=2.144
11 MAIN 12V alarm=0 value=11.904 threshold_status=0
type=2/1
upper_non_recoverable=13.824
upper_critical=13.632
upper_non_critical=13.248
lower_non_critical=10.944
lower_critical=10.56
lower_non_recoverable=10.368
12 VCC 1V15 alarm=0 value=1.136 threshold_status=0
type=2/1
upper_non_recoverable=1.232
upper_critical=1.2
upper_non_critical=1.168
lower_non_critical=1.04
lower_critical=1.008
lower_non_recoverable=0.992
13 DDR3 VTT alarm=0 value=0.72 threshold_status=0
type=2/1
upper_non_recoverable=0.848
upper_critical=0.832
upper_non_critical=0.8
lower_non_critical=0.704
lower_critical=0.688
lower_non_recoverable=0.672
14 RPS 12V alarm=1 value=0 threshold_status=0x7
type=2/1
upper_non_recoverable=13.824
upper_critical=13.632
upper_non_critical=13.248
lower_non_critical=10.944
lower_critical=10.56
lower_non_recoverable=10.368
15 NCT +3.3V alarm=0 value=3.264 threshold_status=0
type=2/1
upper_non_recoverable=3.696
upper_critical=3.648
upper_non_critical=3.552
lower_non_critical=3.12
lower_critical=2.976
lower_non_recoverable=2.928
16 NCT VBAT alarm=0 value=3.264 threshold_status=0
type=2/1
upper_non_recoverable=3.696
upper_critical=3.648
upper_non_critical=3.552
lower_non_critical=3.12
lower_critical=2.976
lower_non_recoverable=2.928
17 NCT +3.3VSB alarm=0 value=3.216 threshold_status=0
type=2/1
upper_non_recoverable=3.696
upper_critical=3.648
upper_non_critical=3.552
lower_non_critical=3.12
lower_critical=2.976
lower_non_recoverable=2.928
18 NCT VTT alarm=0 value=1.04 threshold_status=0
type=2/1
upper_non_recoverable=1.168
upper_critical=1.152
upper_non_critical=1.12
lower_non_critical=0.944
lower_critical=0.912
lower_non_recoverable=0.896
19 DTS CPU alarm=0 value=64 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
20 CPU Core 0 alarm=0 value=65 threshold_status=0
type=1/1
upper_non_recoverable=92
upper_critical=91
upper_non_critical=86
21 CPU Core 1 alarm=0 value=64 threshold_status=0
type=1/1
upper_non_recoverable=92
upper_critical=91
upper_non_critical=86
22 TD1 alarm=0 value=52 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
23 TD2 alarm=0 value=39 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
24 FAN_TMP_3 alarm=0 value=51 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
25 LM75 U72 alarm=0 value=46 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
26 LM75 U65 alarm=0 value=46 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
27 LM75 U62 alarm=0 value=50 threshold_status=0
type=1/1
upper_non_recoverable=110
upper_critical=105
upper_non_critical=100
28 FAN1 alarm=0 value=5700 threshold_status=0
type=4/1
upper_non_recoverable=23000
upper_critical=22000
upper_non_critical=21000
lower_non_critical=300
lower_critical=200
lower_non_recoverable=100
29 FAN2 alarm=0 value=5800 threshold_status=0
type=4/1
upper_non_recoverable=23000
upper_critical=22000
upper_non_critical=21000
lower_non_critical=300
lower_critical=200
lower_non_recoverable=100
30 FAN3 alarm=0 value=5600 threshold_status=0
type=4/1
upper_non_recoverable=23000
upper_critical=22000
upper_non_critical=21000
lower_non_critical=300
lower_critical=200
lower_non_recoverable=100
|
|
Falls die FortiGate über keinen Temperatursensor verfügt, wird in der CLI beim eingeben des Befehls eine Fehlermeldung erscheinen: # execute sensor list command parse error before 'sensor' Command fail. Return code -61 |
Content Prozessor
Was hat der CP9 für Funtkionen und Features ?
Der CP9 Kontent Prozessor bietet die folgenden Features und Funktionen:
- Flow basierte Inspektion (IPS, Applikationskontrolle usw.) Patternmatiching mit einem Durchsatz von über 10 Gbps.
- IPS-Vorab-Scan.
- IPS-Signatur-Korrelation.
- Full match Prozessor.
- Leistungsstarke VPN Bulk Daten Engine
- IPsec* und SSL/TLS Protokoll Prozessor.
- DES/3DES/AES128/192/256 in Übereinstimmung mit FIPS46-3/FIPS81/FIPS197.
- MD5/SHA-1/SHA256/384/512-96/128/192/256 in Übereinstimmung mit RFC1321 und FIPS180.
- HMAC in Übereinstimmung mit RFC2104/2403/2404 und FIPS198.
- ESN-Modus.
- GCM-Unterstützung für die "Suite B" der NSA (RFC6379/RFC6460) einschließlich GCM-128/256; GMAC-128/256.
- Key Exchange Processor, der hochleistungsfähige IKE- und RSA-Berechnungen unterstützt.
- Public Key Exponentiation Engine mit Hardware-CRT-Unterstützung.
- Primäre Prüfung für die RSA-Schlüsselerzeugung.
- Handshake-Beschleuniger mit automatischer Schlüsselmaterial-Generierung.
- Generator für echte Zufallszahlen.
- Unterstützung elliptischer Kurven für NSA "Suite B".
- Sub-Public-Key-Engine (PKCE) zur direkten Unterstützung von bis zu 4096-Bit-Betrieb (4k für DH und 8k für RSA mit CRT).
- DLP-Fingerprint Unterstützung.
- TTTD (Two-Thresholds-Two-Divisors) zum Chunking von Inhalten.
- Zwei Schwellenwerte und zwei Teiler sind konfigurierbar NP6Xlite (SOC4)- und NP6lite (SOC3)-Prozessoren umfassen CP9X Lite- und CP9 Lite-Prozessoren, die die meisten CP9-Funktionen bieten, jedoch mit einer geringeren Kapazität.
Wie offloadet NTurbo die flow basierte Verarbeitung ?
NTurbo verlagert Firewall-Sessions, die flowbasierte Sicherheitsprofile enthalten, auf NP6-Netzwerkprozessoren. Ohne NTurbo oder mit deaktiviertem NTurbo werden alle FirewallSessions, die flowbasierte Sicherheitsprofile enthalten, von der FortiGate-CPU verarbeitet. NTurbo lädt auch Sessions ab, die Interfacen- oder DoS-Regeln haben.
NTurbo kann Firewall-Sessions, die flowbasierte Sicherheitsprofile enthalten, nur dann offloaden, wenn die Sitzung ohne das Vorhandensein der flowbasierten Sicherheitsprofile andernfalls hätte abgeladen werden können. Wenn das Abladen der Sitzung durch etwas anderes verhindert wird, wird NTurbo diese Sitzung nicht abladen.
Firewall-Sessions, die Proxy-basierte Sicherheitsprofile enthalten, werden niemals an Netzwerkprozessoren abgeladen und immer von der FortiGate-CPU verarbeitet. NTurbo erstellt einen speziellen Datenpfad, um den Datenverkehr von der Eingangsinterface zum IPS und vom IPS zur Ausgangsinterface umzuleiten. Mit NTurbo können Firewall-Operationen entlang dieses Pfades ausgelagert werden, und IPS kann sich dennoch als eine Stufe in der Verarbeitungspipeline verhalten, wodurch die Arbeitsbelastung der FortiGate-CPU verringert und der Gesamtdurchsatz verbessert wird.
NTurbo-Sessions lagern immer noch Pattern Matching und andere Prozesse an CP-Prozessoren aus, genau wie normale flowbasierte Sessions. NTurbo kann Sessions auslagern, wenn DoS-Regeln (Konfigurations-Firewall DoS-Regel oder DoS-Regel6), Interfacen-Regeln (Konfigurations-Firewall-Interfacen-Regel oder Interfacen-Regel6) oder Zugriffskontrolllisten-Regeln (Konfigurations-Firewall acl oder acl6) zu den Eingangs- oder Ausgangsinterfacen hinzugefügt wurden, die die Sessions empfangen oder senden. Wenn NTurbo vom FortiGate unterstützt wird, konfigurieren Sie es mit dem folgenden Befehl:
# config ips global
set np-accel-mode {basic | none}
end
basic aktiviert NTurbo und ist die Standardeinstellung für FortiGate-Modelle, die NTurbo unterstützen.
none deaktiviert NTurbo. Wenn die Option 'np-accel-mode' nicht verfügbar ist, unterstützt die FortiGate NTurbo nicht.
Es gibt einige Sonderfälle (unten aufgeführt), in denen Sessions nicht von NTurbo offgeloadet werden, selbst wenn NTurbo explizit aktiviert ist.
In diesen Fällen werden die Sessions von der FortiGate-CPU verarbeitet:
- Die NP-Beschleunigung ist deaktiviert. Beispielsweise ist das automatische Asykus-Offload in der Firewall-Regelnkonfiguration deaktiviert.
- Die Firewall-Regel enthält Proxy-basierte Sicherheitsprofile.
- FTP-Sessions können nicht auf NP-Prozessoren ausgelagert werden, da FTP-Sessions den FTP-Sessionhelper verwenden.
- Tunneling ist aktiviert. Jeglicher Datenverkehr zu oder von einem getunnelten Interface (IPinIP, SSL VPN, GRE, CAPWAP usw.) kann von NTurbo nicht offloadet werden
Disk
Wie kann ich auf einer FortiGate, die auf der Disk enthaltenen Daten (inkl. Boot Device) vollumfänglich (low level) löschen?
Es gibt die Möglichkeit die internal Disk und/oder den "System Boot Device" über "low level" zu formatieren. Dies kommt dann zum Zuge, wenn ein Device entsorgt wird oder dem Hersteller wegen eines RMA Falls retourniert wird. So wird gewährleistet, dass sämtliche Daten auf der Disk gelöscht werden. Bei der "low level" Formatierung werden die Spuren und Sektoren der "Disk", respektive des "System Boot Device's" mit zufälligen Daten 3mal überschrieben. Mit dieser Methode wird gesorgt, dass die vorhandenen Daten komplett gelöscht werden. Den Vorgang startet man über folgenden CLI Befehl:
# execute erase-disk [SYSTEM | Internal] |
Wenn ein Device aus Gründen der "Security" bei einem RMA Austausch nicht dem Hersteller zurückgesendet werden kann, obwohl die Möglichkeit einer "low level" Formatierung zur Verfügung steht, bietet Fortinet innerhalb des "FortiCare" einen speziellen Vertrag an, welcher es ermöglicht bei einem RMA Austausch das Device selber zu entsorgen, anstelle dies dem Hersteller zurück zu senden. Dieser Service wird "FortiCare RMA Secure Service" genannt. Weitere Informationen sind folgendem Artikel zu entnehmen:
Fortinet:Support-RMA#Gibt_es_von_Fortinet_einen_.22FortiCare_Secure_RMA_Service.22.3F
Wie kann ich die Disk (Flash, SSD) eines FortiGate Device testen um zu überprüfen, ob diese fehlerhaft ist?
Anhand des Befehls "diagnose disktest" kann auf einer FortiGate die Disk getestet werden. Dazu sollte berücksichtigt werden, dass dieser Test in einem Maintenance-Fenster durchgeführt wird und nicht bei hoher Last. Um diesen Test zu benutzen muss die entsprechende Disk ausgewählt werden. Die Disk's können mit folgendem Behfel aufgelistet werden:
|
Der Test kann seine Zeit dauern dh. bei einer 60D ohne zusätzlichen Optionen dh. no Limit, läuft der Test für 7728M ca 45 Minuten! Dies gilt für "Round 1" denn sobald diese beendet ist beginnt der Test erneut dh. "Round 2". Der Test kann anhand "Ctrl + C" abgebrochen werden. Wenn dies durchgeführt wird erscheint folgendes: "User interrupt! Restoring data back to disk....". |
Wie schon erwähnt muss für einen Test die entsprechende Disk zuerst ausgewählt werden. Daraus ergibt sich folgendes Vorgehen:
| Liste die vorhandenen Device's auf: |
# diagnose disktest device ? 1 /dev/sda, size 3864MB, boot device 2 /dev/sdb, size 7728MB |
| Selektieren die gewünschte Disk zB /dev/sdb dh. "2": |
# diagnose disktest device 2 Current Test Device: /dev/sdb |
| Setze für den Test verschiedene Optionen: |
# diagnose disktest [block | time | size]
Die Optionen haben folgende Bedeutung:
block Die Blocksize für jede Lese- sowie Schreiboperation.
timeDie Limite der Testzeit für jeden Zyklus. Standard: "keine Limite".
sizeDie Limite der Testgrösse für jeden Zyklus. Standard: "keine Limite".
|
| Wenn das gewünschte Device gesetzt/gewählt wurde/ist, sowie falls notwendig die Optionen konfiguriert wurden, führe den Test aus: |
# diagnose disktest run Round 1 started. Current Test Device: /dev/sdb Total size: 7728M Current Test Block: 4M. Current Time Limit: No limit Current Size Limit: No limit Time(Sec) Size(MB) Read(MB/s) Write(MB/s) 0.00(0.00%): .................................................. 15.0 8.6 76.0 200(2.59%): .................................................. 15.1 8.9 150.2 400(5.18%): .................................................. 15.0 9.0 224.3 600(7.76%): .................................................. 15.0 8.9 298.8 800(10.35%): .................................................. 15.1 8.9 372.9 1000(12.94%): .................................................. 15.1 9.0 446.9 1200(15.53%): .................................................. 15.1 9.0 520.7 1400(18.12%): .................................................. 15.2 9.0 594.4 1600(20.70%): .................................................. 15.1 9.0 668.4 1800(23.29%): .................................................. 15.2 9.0 742.1 2000(25.88%): .................................................. 15.3 9.0 815.8 2200(28.47%): .................................................. 15.3 9.0 889.5 2400(31.06%): .................................................. 15.3 8.9 963.1 2600(33.64%): .................................................. 15.4 9.0 1036.7 2800(36.23%): .................................................. 15.3 9.0 1110.3 3000(38.82%): .................................................. 15.3 9.0 1183.9 3200(41.41%): .................................................. 15.3 9.0 1257.6 3400(44.00%): .................................................. 15.3 9.0 1331.2 3600(46.58%): .................................................. 15.3 9.0 1404.7 3800(49.17%): .................................................. 15.3 9.0 1478.3 4000(51.76%): .................................................. 15.3 9.0 1551.9 4200(54.35%): .................................................. 15.2 8.9 1625.8 4400(56.94%): .................................................. 14.5 8.6 1702.5 4600(59.52%): .................................................. 15.0 8.8 1777.3 4800(62.11%): .................................................. 15.2 8.9 1851.6 5000(64.70%): .................................................. 15.1 8.9 1925.9 5200(67.29%): .................................................. 15.1 8.9 2000.3 5400(69.88%): .................................................. 15.1 8.9 2074.7 5600(72.46%): .................................................. 15.1 8.9 2148.9 5800(75.05%): .................................................. 15.2 8.9 2223.2 6000(77.64%): .................................................. 15.2 8.8 2297.5 6200(80.23%): .................................................. 15.1 8.9 2371.9 6400(82.82%): .................................................. 15.2 8.9 2446.2 6600(85.40%): .................................................. 15.1 8.9 2520.5 6800(87.99%): .................................................. 15.3 8.9 2594.6 7000(90.58%): .................................................. 14.6 8.6 2671.4 7200(93.17%): .................................................. 15.1 8.4 2748.0 7400(95.76%): .................................................. 15.3 5.4 2851.2 7600(98.34%): ................................ Test Result: Passed Tested size: 7728MB (100.00% Coverage of whole disk) Time used: 2901.5 sec Read Speed: 15.2MB/s Write Speed: 8.7MB/s Round 1 Finished! Round 2 started. Current Test Device: /dev/sdb Total size: 7728M Current Test Block: 4M. Current Time Limit: No limit Current Size Limit: No limit Time(Sec) Size(MB) Read(MB/s) Write(MB/s) 0.00(0.00%): .................................................. 14.7 8.4 77.9 200(2.59%): .............User interrupt! Restoring data back to disk... Test Result: Interrupted Tested size: 256MB (3.31% Coverage of whole disk) Time used: 99.3 sec Read Speed: 14.7MB/s Write Speed: 8.4MB/s Round 2 Finished! |
Wird bei einem "unclean shutdown" auf einem FortiGate Device beim Systemstart ein "filesystem check" durchgeführt?
Ab der Version 5.2.x wurde diese Funktion integriert sowie zusätzlich die Möglichkeit die Disk explizit manuell zu testen. Weitere Informationen wie man einen "expliziten" Disk Test manuell zeigt folgender Artikel:
FortiGate-5.4-5.6:FAQ#Wie_kann_ich_die_Disk_.28Flash.2C_SSD.29_eines_FortiGate_Device_testen_um_zu_.C3.BCberpr.C3.BCfen_ob_diese_Fehler_enth.C3.A4lt.3F
Wie erwähnt wurde für ein "unclean shutdown" (zBsp bei Stromunterbruch) im FortiOS 5.2.x die Funktion eingebaut, dass nach einem "unclean shutdwown" während dem Start-Prozess dies erkannt, und automatisch ein "filesystem check" ausgeführt wird. Diese wird "nicht" anhand eines "expliziten" Disk Tst aufgeführt sondern ähnelt einem "fsck" welcher auf einem Linux System ausgeführt wird. In diesem Vorgang wird durch das System bemerkt dass ein "unclean shutdown" stattgefunden hat. Dies wird ebenfalls indiziert in dem beim Start auf der Console folgendes erscheint:
System is starting...
Starting system maintenance...
scanning /dev/sda2... (100%)
In vorhergehenden Versionen des FortiOS dh. zBsp 5.0 wurde dieser "filesystem check" beim Start des Devices durchgeführt. Solch ein "filesystem check" kann einige Zeit in Anspruch nehmen und deshalb wurde die Vorgehensweise ab der FortiOS Version 5.2.3 geändert. Dies bedeutet: Wenn ein "unclean shutdown" stattfindet (ab FortiOS Version 5.2.3), wird kein "filesystem check" mehr direkt beim Neustart des Device ausgeführt sondern nur ein "system maintenace" indiziert. Sobald sich der Administrator auf dem Web Mgmt. Interface einloggt wird ein entsprechender Dialog angezeigt der durch den "unclean shutdown" ausgelöst wurde:
Durch diesen Dialog hat der Administrator die Möglichkeit den "filesystem check" auszuführen oder diesen auf einen späteren Zeitpunkt zu verschieben. Wird der "filesystem check" nach dem einloggen des Administrators ausgeführt, so erfolgt ein Neustart des Devices und dieser "filesystem check" wird beim Neustart ausgeführt. Wie schon erwähnt kann dieser "filesystem check" durchaus mehrere Minuten in Anspruch nehmen und der Vorgang sollte auf keinen Fall unterbrochen werden! Wird diese "filesystem check" Meldung beim einloggen auf das Web Mgmt. Interface anhand "Remind me later" auf einen späteren Zeitpunkt verschoben, wird die Meldung nach jedem einloggen angezeigt bis dieser "filesystem check" ausgeführt wird!
PowerSupply
Welche Strom Stecker Typen kann Fortinet International liefern?
Weltkarte:
Legende:
| Region | Farbe | Stecker Typ von Fortinet |
| EU: U.a. Schweiz, Deutschland, Österreich, Italien, Frankreich | grün | Typ C |
| AU: Australien, Neuseeland | blau | Typ I |
| UK: England, Schottland, Wales, (Nord-)Irland | violett | Typ G |
| US: USA, Kanada | orange | Typ A |
| Rest: U.a. Indien, Südafrika | Rot | Kein Fortinet Kabel erhältlich |
- für FG-60C and FG/FWF-40C, FG/FWF-60D, 60E, 60F , 80F & FG/FWF-90D
Kann man für FortiGate's seperate spare und / oder redundante PowerSupply (RPS) beziehen?
Für die verschiedenen FortiGate Devices stellt Fortinet seperate "PowerSupplies" zur Verfügung. Für grössere Devices stehen zusätzlich für die Redundanz "RPS Devices" (Redundand PowerSupply) zur Verfügung. Welche Geräte kompatibel sind zu den seperaten "RPS Devices" können nachfolgendem Artikel entnommen werden:
Fortinet:ProduktInfo#FortiRPS
Nachfolgende Tabelle zeigt für welches FortiGate Device welches sperat zu beziehende "PowerSupply" bestellt werden kann:
Regulatory Doc Datei:Regulatory-Compliance-Document SP-FG600C-PS Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document SP-FG60C-PDC Rev 1.01.pdf Regulatory Doc Datei:Regulatory-Compliance-Document SP-FG80-PDC Rev 1.pdf
Nachfolgend einige erfasste ALSO Schweiz Artikel betreffend "PowerSupply":
ALSO Art Nr. Hersteller SKU Beschreibung
2694237 SP-FG20C-PA-EU AC power adaptor with EU power plug for FG/FWF-20C series, FG/FWF-30D
2707193 SP-FG30E-PA-EU AC power adaptor with EU power plug for FG-50E, FG-51E, FWF-50E, FWF-51E, FG-30E, FWF-30E
2691555 SP-FG80-PDC AC power adaptor - AC power adaptor for FG/FWF-80C/CM
2690832 SP-FG60C-PDC AC power adaptor - AC power adaptor for FG/FWF-40C, FG/FWF-60C, FG/FWF-60D, FG-70D, FG/FWF-90D
2692305 SP-FG600C-PS AC power supply - AC power supply for FG-600C, FG-600D, FG-800C, and FG-1000C
2698983 SP-FG1240B-PS AC power supply - AC power supply for FG-1200D, FG-1240B, FG-1500D, FG-3040B and FG-3140B
Ebenso stehen für die FortiAP, wie auch für die FortiAP-S "PowerSupplies" zur Verfügung. Weitere Informationen dazu siehe nachstehenden Artikel:
FortiAP:FAQ#Wo_finde_ich_eine_Uebersicht_ob_ein_FortiAP_mit_PowerAdapter_geliefert_wird_oder_PoE_unterst.C3.BCtzt.3F FortiAP-S:FAQ#Wo_finde_ich_eine_Uebersicht_ob_ein_FortiAP-S_mit_PowerAdapter_geliefert_wird_oder_PoE_unterst.C3.BCtzt.3F
SFP Ports
Kann ich für die SFP Ports auf einer FortiGate ebenfalls Fremdprodukte, wie Cisco oder Huawei einsetzen?
Dies ist möglich, jedoch empfehlen wir dies vorgängig ausgiebig zu testen! Von unserer Seite her haben wir Tests sowie Feedback das folgende Transceiver einwandfrei funktionieren:
Copper GigaBit 10/100/1000
GLC-T=746320861579 Cisco Catalyst GigaEthernet SFP Modul 1000Base T
02314171 Huawei Electrical Transceiver SFP Module 1000Base T
NOTE Durch Fortinet werden ebenfalls nicht eigene Transceiver eingesetzt sondern von Fremdherstellern dh. wird ein Transceiver
über Fortinet bestellt, wird ein Transceiver zBsp von Huawei geliefert! Weitere Informationen betreffend "offizielle" SFP/SFP+
Module von Fortinet, sowie den Gebrauch von "nicht offiziellen" siehe folgender Artikel:
FortiGate-5.4-5.6:FAQ#Kann_ich_f.C3.BCr_die_SFP_Ports_auf_einer_FortiGate_ebenfalls_Fremdprodukte_wie_Cisco_oder_Huawai_einsetzen.3F
Welche FortiGate Devices unterstützen SFP's und bei welchen FortiGate Devices werden SFP's mitgeliefert?
Nachfolgende Tabelle zeigt welche FortiGate Devices wieviele SFP's unterstützen und bei welchem FortiGate Device bereits SFP Module mitgeliefert werden:
NOTE NIL = Not Included!![]()
![]()
![]()
![]()
Es können für die FortiGate Devices auch Fremdprodukte als SFP's eingesetzt werden, jedoch gibt es keine Gewährleistung dass diese einwandfrei funktionieren. Weitere Infos siehe nachfolgender Artikel:
FortiGate-5.4-5.6:FAQ#Kann_ich_f.C3.BCr_die_SFP_Ports_auf_einer_FortiGate_ebenfalls_Fremdprodukte_wie_Cisco_oder_Huawai_einsetzen.3F) NOTE Des Weiteren ist nachfolgendes Dokument zu beachten, wenn keine "offiziellen" Tranceiver von Fortinet eingesetzt werden (speziell Seite 2 "3rd Party Transceivers Support"): Datei:Tech Note-Transceivers FAQs-201407-R3.pdf
Basierend auf den "offiziellen" Tranceiver von Fortinet gemäss Preisliste stehen folgende SFP/SFP+ Module zur Verfügung:
Transceiver LX, Long Range; all FortiGate models with SFP interfaces ALSO SKU 2690418 (Hersteller SKU FG-TRAN-LX)
Transceiver SX, Short Range; all FortiGate models with SFP interfaces ALSO SKU 2690421 (Hersteller SKU FG-TRAN-SX)
Transceiver Base-T (Copper); all FortiGate models with SFP interfaces (supports 10/100/1000) ALSO SKU 2690420 (Hersteller SKU FG-TRAN-GC)
10-Gig transceiver, short range SFP+; all FortiGate models with SFP+ interfaces ALSO SKU 2697310 (Hersteller SKU FG-TRAN-SFP+SR)
10-Gig transceiver, short range XFP; all FortiGate models with XFP interfaces ALSO SKU 2690412 (Hersteller SKU FG-TRAN-XFPSR)
10-Gig transceiver, SFP+, Long Range; all FortiGate models with SFP+ interfaces ALSO SKU 2690413 (Hersteller SKU FG-TRAN-SFP+LR)
10-Gig transceiver, XFP, Long Range; all FortiGate models with XFP interfaces ALSO SKU 2690414 (Hersteller SKU FG-TRAN-XFPLR)
40-Gig transceiver, QSFP+, short range; all FortiGate models with QSFP+ interfaces ALSO SKU 2694715 (Hersteller SKU FG-TRAN-QSFP+SR)
40-Gig transceiver, QSFP+, long range; all FortiGate models with QSFP+ interfaces ALSO SKU auf Anfrage (Hersteller SKU FG-TRAN-QSFP+LR)
100-Gig transceiver, CFP2, short Range; all FortiGate models with CFP2 interfaces (10 Channel parallel fiber) ALSO SKU auf Anfrage (Hersteller SKU FG-TRAN-CFP2-SR10)
100-Gig transceiver, CFP2, long Range; all FortiGate models with CFP2 interfaces (only singlemode) ALSO SKU 2707368 (Hersteller SKU FG-TRAN-CFP2-LR4)
Für eine direkte Verbindung zweier Fortigates über ein "direct attach cable" steht folgender Artikel zu Verfügung:
10-Gig transceiver, SFP+, 10m direct attach cable; all FortiGate models with SFP+ and SFP/SFP+ interfaces ALSO SKU auf Anfrage (Hersteller SKU SP-Cable-ADASFP+)
Eine detaillierte Beschreibung der Tranceivereigenschaften können folgendem Dokument entnommen werden:
Was sind die genauen Spezifikationen der SFP's Module welche von Fortinet für die FortiGate Devices geliefert werden?
Im nachfolgenden Artikel wird beschrieben ob ein SFP/SFP+ Module zu einer FortiGate mitgeliefert wird, und welche SFP/SFP+ Module offiziell zu den FortiGate's zur Verfügung stehen:
FortiGate-5.4-5.6:FAQ#Welche_FortiGate_Device.27s_unterst.C3.BCtzen_SFP.27s_und_bei_welchen_FortiGate_Devices_werden_SFP.27s_mitgeliefert.3F
In der nachfolgenden Tabelle werden die technischen Spezifikationen der SFP Module aufgelistet welche von Fortinet für die FortiGate Devices geliefert werden:
NOTE Die Informationen stammen aus einem Fortinet "Knowledgebase Artikel" über welchen auch weitere Informationen verfügbar sind:
http://kb.fortinet.com/kb/dynamickc.do?cmd=show&forward=nonthreadedKC&docType=kc&externalId=13823&sliceId=1
Transceivers
Breackout Cables
Nachfolgend das offizielle "Regulatory Compliance Document" betreffend SFP SX Transceiver:
Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-SX Rev 1.03.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-CFP2-LR4 Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-CFP2-SR10 Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-GC Rev 1.02.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-GC Rev 2.0.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-LX Rev 2.0.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-QSFP+-LR Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-QSFP+-SR Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-SFF Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-LR Rev 2.0.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-SR Rev 2.0.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-SX Rev 1.02.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-XFPLR Rev 1.00.pdf Regulatory Doc Datei:Regulatory-Compliance-Document FG-TRAN-XFPSR Rev 1.00.pdf
Wie kann ich ein SFP Module / Tranceiver für ein FortiGate Device überprüfen?
Bis anhin war es nicht möglich über ein FortiGate Device dh. via ein FortiOS ein SFP Module/Tranceiver zu überprüfen dh. zBsp ob dieser korrekt erkannt wurde. Neu, unter FortiOS 5.4 ist dies anhand nachfolgendem Befehl möglich für Devices der FortiGate D-Serie, sowie FGT-1000D oder grösser und für SFP und QSFP Module/Transceiver. Handelt es sich um ein SFP/QSFP Fiber Module/Tranceiver kann ebenfalls die Temperatur, Spannung sowie Optical Power abgefragt werden. Wird ein Fremdprodukt als SFP/QSFP Module/Transceiver eingesetzt, sollte dies kurz anhand des nachfolgenden Befehls überprüft werden:
# get system interface transceiver
Interface port9: SFP/SFP+
Vendor Name: Axcen Photonics
Part No. : AXXE-5886-05B1
Serial No. : AX14170008967
Interface port10: SFP or QSFP transceiver is not detected.
Interface port11: SFP/SFP+
Vendor Name: FIBERXON INC.
Part No. : FTM-8012C-SL
Serial No. : A8660061719307
Optical Optical Optical
SFP/SFP+ Temperature Voltage Tx Bias Tx Power Rx Power
Interface (Celsius) (Volts) (mA) (dBm) (dBm)
------------ ----------- --------- --------- --------- --------
port9 34.1 3.31 6.35 -1.9 -40.0 --
port11 N/A N/A N/A N/A N/A
++ : high alarm, + : high warning, - : low warning, -- : low alarm, ? : suspect.
Wieso werden Fortinet SFP Module als "unsupportet 3rd Party Module" im FortiOS 6.2.2 angezeigt?
Im FortiOS 6.2.2 werden SFP Transceiver, welche als orginal Fortinet Transeiver erworben wurden, zum Teil als "nicht supportet 3rd Party Module" angezeigt:
Es handelt sich hierbei um einen BUG. Dieser sollte im FortiOS 6.2.3 behoben werden:
Diese Information haben wir durch ein L1 Supportticket vom TAC bekommen:
I have looked into this and found engineering ticket 563053 in where this exact behavior was discussed.
For the FG-TRAN-SFP+SR, these were shipped with different vendor names other than Fortinet.
Due to a bug in 6.2.2, these are now showing as third party devices - this has been identified and scheduled to be fixed in 6.2.3.
SPU
Wo und wie wird meine SPU auf der FortiGate verwendet?
Auf der folgenden Tabelle kann ermittelt werden welcher Prozessor für welche Aufgabe zuständig ist:
| System Performanz | Verantwortliche Komponente |
|---|---|
| Firwall Durchsatz | NP Aceleration |
| Firwall Latenz | NP Aceleration |
| Firwall Durchsatz (Pakete per Sekunde) | NP Aceleration |
| Gleichzeitige Sessions | Memorie |
| IPsec VPN Durchsatz | NP Aceleration |
| IPS Durchsatz | CP + CPU (NTurbo) |
| SSL Inspektions Durchsatz | CP + CPU |
| Applikationskontrolle Durchsatz | CP + CPU (NTurbo) |
| NGFW Durchsatz | CP + CPU (NTurbo) |
| Threat Protection Durchsatz | CP + CPU (NTurbo) |
Welcher Netzwerkprozessor benutzt meine FortiGate?
| SoC2 (NP4Lite) | SoC3 (NP6Lite) | SoC4 (NP6XLite) | NP6 | NP7 |
|---|---|---|---|---|
|
|
|
|
|
Schematic vom SoC3:
Datei:Fortinet-2860.jpg
Schematic vom SoC4:
Datei:Fortinet-2861.jpg
SoC Prozessoren Generationen Vergleich:
SoC3 und SoC4 im Vergleich zum NP6:
FortiOS
FortiGuard (FDDS)
Wo finde ich den Service Status der FortiGuard?
Unter folgendem Link kann man den Status der FortiGuard Dienste auf seitens Fortinet abfragen. Dabei wird auch die Region unterschieden. So wäre es bei einem Ausfall möglich auf eine andere Region auszuweichen.
https://www.fortiguard.com/service-status
Wieso bekomme ich im WebGUI von FortiOS 6.4 die Meldung Unable to connect to FortiGuard Servers?
Im WebGUI kann folgende Meldung erscheinen: Unable to connect to FortiGuard Servers
Folgendermassen kann man versuchen diese Meldung zu beheben:
config system fortiguard set fortiguard-anycast disable set protocol udp set port 8888 end |
Nach ein paar Minuten ist die Meldung weg:
Weitere Informationen findet man in folgendem Artikel:
https://docs.fortinet.com/document/fortigate/6.2.0/new-features/656177/fortiguard-third-party-ssl-validation-and-anycast-support
Wie kann ich auf einer FortiGate einen FortiManager für FortiGuard konfigurieren?
Wenn eine FortiGate so konfiguriert werden soll, dass diese die Updates der FortiGuard über einen FortiManager durchführen soll, so kann dies via CLI konfiguriert werden. Wenn ein FortiGate Device ausschliesslich einen FortiManager für den FortiGuard Server nutzen soll, so kann dies wie folgt konfiguriert werden:
# config system central-management
# config server-list
# edit [vergebe einen entsprechenden Integer zBsp "1"]
# set server-type update rating
# set server-address [IPv4 Adresse des FortiManagers für FortiGuard]
# next
# end
# end
Somit kann zBsp auch ein dezidierter FortiManager konfiguriert werden, welcher nur für FortiGuard zur Verfügung steht und ein zweiter FortiManager welcher das Management der FortiGate übernimmt:
# config system central-management
# set type fortimanager
# set fmg [IPv4 Adresse des FortiManagers für das Device Management]
# config server-list
# edit [vergebe einen entsprechenden Integer zBsp "1"]
# set server-type update rating
# set server-address [IPv4 Adresse des FortiManagers für FortiGuard]
# next
# end
# end
Anleitung von Fortinet wie man einen FortiManager als FDS konfiguriert:
FortiCloud
Wie kann ich die FortiCloud auf der FortiGate aktivieren?
![]()
Damit die FortiGate die Logdaten in die FortiCloud senden kann, muss diese zuerst auf der FortiGate aktiviert werden. Es gibt die Möglichkeit die Daten in die Cloud in Europa oder Global zu senden. Es ist zu beachten, die Daten werden nicht in beide Clouds synchronisiert.
Der FortiGate Cloud Account wird automatisch auf den Account geschlüsselt, auf welche die FortiGate registriert ist. Daher empfiehlt es sich, für jeden Kunden einen eigenen Account im Partnerportal anzulegen, damit man eine "Mandantenfähigkeit" bekommt.
|
Auf der FortiGate sieht man im Dashboard den Status der FortiGate Cloud:
Nun ist die FortiGate mit der Cloud verbunden und sendet die Logdaten in das angegebene Datencenter |
Wie finde ich die FortiGate in der FortiCloud?
Um sich in der FortiCloud anzumelden gibt es verschiedene Methode.
1 Einloggen über die FortiGate:
|
Im Dashboard der FortiGate kann bei FortiGate Cloud direkt beim Status rechts geklickt werden und so über Launch Portal die Verbindung zur Cloud aufgebaut werden |
2 Einloggen über die URL:
Mann kann direkt über die URL in die Cloud einloggen:
- Europäsche Cloud : https://europe.forticloud.com
- Globale Cloud : https://login.forticloud.com/
Bei beiden Methoden muss authentifiziert werden:
Nach erfolgreichem anmelden erscheint das Dashboard der Cloud:
1. Im Inventory finde ich alle für diesen Account verknüpften FortiGates
2. Device Hostname und Serienummer
3. Cloud Standort
4. Subscription, der rote Warnhinweis bedeutet, dass der FortiGate Analytics & Management Service nicht abonniert ist und somit die Daten nur sieben Tage zu Verfügung stehen.
5. mit Undeploy kann ich die Verbindung zur FortiCloud unterbrechen und es werden keine Logs mehr empfangen von diesem Gerät
Wieviele Dateien kann ich pro Tag in die FortiSandbox Cloud hochladen?
Wenn man die AntiVirus Lizenz, und mindestens das FortiOS 6.0.1 auf der FortiGate installiert hat, kann die FortiCloud Sandbox genutzt werden.
Folgende Limitierungen gibt es von der Anzahl Files welche pro Tag in die Cloud hochgeladen werden können. Dabei spielt ist die Grösse der FortiGate massgebend:
| Limiten für das hochladen auf die FortiCloud Sandbox: |
|
Referenz: DESCRIPTION FORTISANDBOX CLOUD |
|
Über das WebGui der FortiGate kann im Dashboard die aktuelle Quote angezeigt werden: (Beispiel hier einer FortiGate 60F): |
USB Port
Was ist beim benutzen eines USB-Sticks an einer FortiGate zu berücksichtigen?
Wenn ein USB-Stick über eine FortiGate formatiert werden soll, so wird dieser im "FAT" Format formatiert! Um den USB Stick über das FortiOS zu formatiert wird folgende Vorgehensweise über die CLI angewendet:
# execute usb-disk format This operation will ERASE all data in USB disk! Do you want to continue? (y/n)'''y''' Format USB disk /dev/sdc1 ... Create file system on /dev/sdc1 ... |
Danach kann der USB-Stick genutzt werden um zBsp ein Forti-Backup auf den USB-Stick zu spielen. Möchte man den USB-Stick vorbereiten, resp. nicht über das FortiOS formatieren, sondern zBsp unter Windows 10, so kann folgendes ausgeführt werden:
- Verbinde den USB-Stick mit der Workstation und verifiziere den zugewiesenen Laufwerksbuchstaben!
- Jetzt eine DOS-Box öffnen (unter Windows 10 = Windows durchsuchen > cmd )
- Danach gebe in der DOS-Box folgendes ein:
| DOS/Shell CMD: |
format [Laufwerks Name zBsp "F"]: /FS:FAT /V:[Name des USB-Sticks/Laufwerk zBsp "FortiGate"]
legen Sie eine neue Diskette in Laufwerk D: ein,
und drücken Sie die EINGABETASTE.
Der Typ des Dateisystems ist EXFAT.
Das neue Dateisystem ist FAT.
Überprüfung von 1009.4 MB
Die Dateizuordnungstabelle (FAT) wird initialisiert...
Formatieren beendet.
1009.1 MB Speicherplatz auf dem Datenträger insgesamt.
1009.1 MB sind verfügbar.
16'384 Bytes in jeder Zuordnungseinheit
64'585 Zuordnungseinheiten auf dem Datenträger verfügbar
16 Bits in jedem FAT-Datensatz.
Volumeseriennummer : 4E6E-9DDF
|
Kann ich ein "Image"/ eine Konfiguration über einen USB-Stick automatisiert auf eine FortiGate aufspielen?
Eine Automatisierung einer Installation einer FortiGate mit einer entsprechenden Konfiguration lässt sich über einen USB-Stick komplett automatisieren.
|
# config system auto-install # set auto-install-config [enable oder disable] # set auto-install-image [enable oder disable] # set default-config-file [File Name] # set default-image-file [File Name] # end |
Die Voraussetzung, dass über einen USB-Stick diese "USB Auto-Install" Funktion genutzt werden kann, ist ein korrekt formatierter USB-Stick. Weitere Informationen dazu siehe nachfolgender Artikel: USB Stick Formatieren Wenn die Funktion des "USB Auto-Install" für das "Image" und/oder "config" File aktiviert, und der USB-Stick entsprechend korrekt formatiert wurde kann in das Root-Verzeichnis des USB-Sticks ein entsprechendes "image" eines FortiOS, wie auch die Konfiguration einer FortiGate, basierend auf dem "image" des FortiOS auf den USB-Stick abgespeichert werden. Dabei müssen die File-Namen des "image", sowie der Konfiguration übereinstimmen mit der Konfiguration resp. Definition des "default-image-file" sowie des "default-config-file"! Wenn nun der USB-Stick an die FortiGate angeschlossen ist, und die FortiGate eingeschaltet oder neu gestartet wird, wird folgendes durchgeführt:
| 1ter Neustart: |
|
Die Funktion "USB Auto-Install" überprüft ob in der aktiven Partition das FortiOS gemäss dem "image" File auf dem USB-Stick installiert ist! Ist dies nicht der Fall wird in der nicht aktiven Partition das FortiOS anhand des "image" Files auf dem USB-Stick installiert! Nach der Installation wird ein Neustart ausgeführt. Ist die aktive Partition mit dem "image" File auf dem USB-Stick identisch, wird eine 2te Neustart-Überprüfung ausgeführt! |
| 2ter Neustart: |
|
Nach der Installation des "images" auf dem USB-Stick, oder bei Übereinstimmung der aktiven Partition mit dem "image" wird geprüft ob die Konfiguration in der aktiven Partition mit dem Konfigurtions-File auf dem USB-Stick übereinstimmt. Ist dies nicht der Fall, wird ein Restore anhand des Konfigurationsfiles auf dem USB-Stick ausgeführt. Ist die Konfiguration auf dem USB-Stick gleich wie jene auf der aktiven Partition wird keine Änderung durchgeführt und der Neustart regulär fortgesetzt! |
Es empfiehlt sich den Vorgang bei einem Test über den Konsolen-Port (RS232) mitzuverfolgen, damit allfällige Fehlermeldungen über die Konsole mitverfolgt werden können. Mit dieser Funktion kann so die FortiGate mit einem entsprechenden "image", sowie mit einer eigenen Konfiguration komplett automatisiert werden. Dabei ist jedoch folgendes zu berücksichtigen: Durch die Funktion "USB Auto-Install" wird die FortiGate nicht von Grundauf neu installiert. Dies bedeutet dass der "boot device" nicht neu formatiert etc. wird wie wenn die FortiGate von Grundauf neu installiert (staging) wird (siehe nachfolgenden Artikel): FortiGate neu Staggen
Konsolen Port
Was für ein Kabel wird für den Konsolen-Anschluss (RS-232) benötigt?
Eine Fortigate Firewall kann über den Konsolen-Port, SSH oder HTTPS administriert werden. Für das initiale Setup, wie auch bei der Störungssuche ist der Konsolen-Port die beste Wahl. Der Konsolen-Port auf der FortiGate kommt in Form einer RS232 Schnittstelle daher. Problematisch ist, dass die heutigen Workstations / Laptops nicht mehr über einen RS232 Anschluss verfügen. Als Workaround gibt es Adapterkabel von USB auf RS232. Folgende Adapter bietet ALSO im Sortiment an:
| USB-Stecker Typ A |
|
LINDY USB RS232 Converter w/ COM Port Retention RS-232 Port |
| USB Stecker Typ C |
|
LINDY USB Type C Serial Converter |
| RS232-to-RJ45 Kabel |
|
Bei beiden Adaptern wird kein RS232-to-RJ45 Kabel mitgeliefert. Dies kann unter folgender ALSO-Artikel-Nr. bezogen werden: |
Nachfolgendes Dokument zeigt wie auf einem MacOSx, basierend auf diesem "USB to RS232 Converter" Adapter konfiguriert wird inklusive der Konfiguration eines TFTP Servers. Dieses Dokument wurde durch einen Kunden zur Verfügung gestellt:
Datei:RS232-USB-Converter-TFTP-Server-Konfig-MacOSx.pdf
Weitere Informationen zur genauen Pinbelegung betreffend Fortinet Appliance und dem seriellen Konsolen-Port siehe nachfolgenden Artikel:
FortiGate-6.0:FAQ#Wie_sieht_die_PIN-Belegung_der_Seriellen_Consolen_.28RS-232_.2F_DB9_.2F_RJ-45_.2F_AUX.29_auf_einem_FortiGate_Device_aus.3F
Wie sieht die Pinbelegung der seriellen Konsolen (RS-232 / DB9 / RJ-45 / AUX) auf der FortiGate aus?
Nachfolgend die technischen Informationen über die Pinbelegung der seriellen Konsole der Fortinet Produkte wie FortiGate, FortiAnalyzer, FortiManager sowie FortiMail. In den meisten Fällen haben die Geräte eine RJ45 Schnittstelle als Konsolen-Port. Ältere Modelle können auch über einen RS-232 DB9 Port verfügen. Es gibt auch Modelle mit einem AUX-Port. Die Geräte haben alle etwas gemeinsam: sie nutzen die gleiche Pinbelegung:
| Pinbelegung RJ45 |
|
|
| Pinbelegung RS232 |
|
|
Kann ich auf einer FortiGate den seriellen Konsolen-Port (RS-232) deaktivieren?
Wenn man zum Beispiel verhindern möchte, dass auf ein Datacenter oder ähnlichem, via seriellen Konsole-Port unerlaubt zugegriffen wird, kann dies mit folgendem Befehl deaktiviert werden:
# config system console # set login disable # end |
Es wird nur der "Konsolen-Port" deaktiviert und der "USB" Port muss, sofern erwünscht, separat deaktiviert werden:
# config system console # set fortiexplorer disable # end |
Web-GUI
Wie kann ich den Hostnamen auf der Web-GUI Login Page sichtbar machen?
Wenn man sich über das Web-GUI auf die FortiGate verbindet, wird defaultmässig auf der Anmeldemaske der Hostname der Firewall nicht angezeigt.
Um den Hostname auf der Anmeldemaske zu aktivieren, muss dies über die CLI wie folgt aktiviert werden:
# config system global # set gui-display-hostname [enable | disable] # end Das Resultat: |
Wie kann ich die update Notification beim einloggen der FortiGate deaktivieren?
Wenn man sich auf die FortiGate über das WebGui anmeldet, erscheint seit FortiOS 6.4 eine Notification, was noch alles optimiert werden kann. Dazu gehört auch, wenn eine neue FortiOS Version zu verfügung steht und man updaten sollte. Wenn man nicht will, dass diese Notification beim einloggen erscheint, kann dies über die CLI deaktiviert werden:
|
Nach dem einloggen auf die FortiGate über das WebGui erscheint zum teil folgende Meldung: |
|
Notification ausschalten: config system global
set gui-firmware-upgrade-warning disable
end
Für FortiOS 6.4.0: # config system global
set gui-firmware-upgrade-setup-warning disable
end
Notification einschalten: config system global
set gui-firmware-upgrade-warning enable
end
Für FortiOS 6.4.0: # config system global
set gui-firmware-upgrade-setup-warning enable
end
|
Wie können Abhängigkeiten angezeigt werden?
Damit auf einer FortiGate Firewall Elemente gelöscht werden können, muss zuerst sichergestellt werden, dass keine weiteren Abhängigkeiten (dependencies) von anderen Elementen auf das zu löschende Objekt besteht. Diese Abhängigkeiten können wie folgt angezeigt werden:
Im GUI:
Beispiele von Abhängigkeiten von einem Interface sind jeweils hier zu finden:
Im CLI:
fgt200-master # diagnose sys cmdb refcnt show system.interface.name port1 entry used by complex system.ha:monitor entry used by table system.dhcp.server:id '3' entry used by child table srcintf:name 'port1' of table firewall.policy:policyid '1' |
Wo kann ich das Farbschema für das WebGui anpassen?
Es ist möglich, mehr Farbe ins Spiel zu bringen und die Weboberfläche in verschiedenen Farbschemen anzuzeigen. Natürlich sind die verschiedenen Themen Geschmackssache es wird sicher für jeden ein passendes dabei sein:
|
Über das Menu System->Settings zu den View Settings scrollen im Feld Theme das Farbthema auswählen: Hier findet man eine Liste der Möglichen Themen im FortiOS 7.0: Neutrino: Mariner: Graphite: Melongene Retro: Eclipse: Onyx: Dark Matter: Jade (default): |
config system global set gui-theme ? <-- Mögliche Themen werden aufgelistet: jade Jade theme. neutrino Neutrino theme. mariner Mariner theme. graphite Graphite theme. melongene Melongene theme. retro FortiOS v3 Retro theme. dark-matter Dark Matter theme. onyx Onyx theme. eclipse Eclipse theme. config system global set gui-theme [Themen_Name_eingeben] end |
CLI
Welche Platzhalter-Variabeln gibt es in der CLI?
Die CLI unterstützt die folgenden Platzhalter-Variabeln. Bei den Variablennamen wird zwischen Gross- und Kleinschreibung unterschieden.
Liste der Platzhalter-Variabeln:
|
Variabel: |
Beschreibung: |
|
$USERFORM |
Die Management Zugriffs Methode (ssh, jsconsole usw.) und die IPv4-Adresse des Administrators, der das Element konfiguriert hat. |
|
$USERNAME |
Der Accountname des Administrators, der das Element konfiguriert hat. |
|
$SerialNum |
Die Serienummer des FortiGate Gerätes |
Beispielsweise kann der Hostname des FortiGate Gerätes auf seine Seriennummer gesetzt werden:
# config system global # set hostname $SerialNum # end |
Kann ich in der CLI meinen Output nach bestimmten Wörter filtern?
Wenn ich ein show, get oder diagnose Befehl auf der CLI einsetze, bekomme ich oft einen sehr grossen und umfangreichen Ouptut. Daher ist es oft von Nutzen, nur den Output zu sehen, der für mich relevant ist und der Rest nicht angezeigt wird. Im FortiOS kann mit dem grep Befehl der Output gefiltert werden. Der grep-Befehl basiert auf dem Standard-UNIX Grep Befehl, welcher für die Suche nach Textausgaben auf der Basis von regulären Ausdrücken verwendet wird.
Der folgende Befehl zeigt zum Beispiel die MAC-Adresse des internal5 Interfaces an:
get hardware nic internal5 | grep Current_HWaddr Current_HWaddr 90:6c:ac:a9:d7:47 |
Der folgende Befehl zeigt alle TCP Sessions an, inklusive Zeilennummer welche sich in der Session Liste befinden:
# get system session list | grep -n tcp 5:tcp 3187 198.18.1.18:54740 146.4.73.70:54740 40.67.254.36:443 - 7:tcp 3544 198.18.1.208:54324 146.4.73.70:54324 40.67.254.36:443 - 10:tcp 3597 198.18.0.1:1065 - 198.18.0.12:514 - 13:tcp 3587 198.18.1.10:64704 146.4.73.70:64704 172.217.168.74:443 - 24:tcp 3593 198.18.1.63:46340 146.4.73.70:46340 52.5.144.164:443 - 27:tcp 9 198.18.0.200:53041 146.4.73.66:53041 172.16.0.1:8013 - 28:tcp 8 198.18.1.143:300 146.4.73.70:811 10.3.0.1:111 - 36:tcp 3597 198.18.1.166:50320 146.4.73.70:50320 54.156.181.70:443 - 51:tcp 3 198.18.0.200:53028 146.4.73.66:53028 172.16.0.1:8013 - 52:tcp 2 198.18.1.178:46020 146.4.73.70:46020 192.168.1.176:389 - 53:tcp 3573 198.18.0.200:52815 146.4.73.66:52815 185.60.216.53:443 - 55:tcp 2469 198.18.1.142:57170 146.4.73.70:57170 40.67.254.36:443 - 56:tcp 3596 198.18.0.1:1415 - 198.18.0.12:514 - 73:tcp 8 198.18.0.21:65394 146.4.73.66:65394 52.5.76.173:8347 - 74:tcp 3 198.18.0.11:38838 217.193.240.162:38838 96.45.33.86:443 - 76:tcp 7 198.18.0.1:14681 - 198.18.0.101:8000 - 81:tcp 3590 198.18.1.63:48378 146.4.73.70:48378 54.84.191.209:443 - 86:tcp 9 198.18.200.45:29948 146.4.73.68:29948 194.115.91.54:25 - 91:tcp 3595 198.18.1.163:55696 146.4.73.70:55696 192.146.155.80:443 - 92:tcp 3600 198.18.0.200:52835 - 198.18.0.1:22 - 102:tcp 8 198.18.0.9:34137 146.4.73.66:34137 198.18.6.10:139 - 105:tcp 5 198.18.0.200:53029 146.4.73.66:53029 172.16.0.1:8013 - 107:tcp 3490 198.18.0.200:52729 146.4.73.66:52729 40.67.251.132:443 - 118:tcp 3599 198.18.1.163:54718 146.4.73.70:54718 192.146.155.82:443 - 119:tcp 0 198.18.1.163:53038 146.4.73.70:53038 192.146.155.81:443 - 120:tcp 3513 198.18.1.18:56352 146.4.73.70:56352 40.79.67.176:443 - 126:tcp 3586 172.16.99.4:55785 146.4.73.71:55785 13.224.96.67:443 - 129:tcp 3599 172.16.99.4:57452 146.4.73.71:57452 172.217.168.46:443 - 144:tcp 3572 198.18.1.10:49867 146.4.73.70:49867 54.186.97.86:443 - 148:tcp 6 198.18.0.200:53034 146.4.73.66:53034 172.16.0.1:8013 - 150:tcp 3599 198.18.1.163:42980 146.4.73.70:42980 192.146.155.76:443 - 151:tcp 3598 198.18.0.1:24004 - 198.18.0.11:541 - 152:tcp 3595 198.18.0.1:1073 - 198.18.0.12:514 - 167:tcp 1 198.18.0.200:53017 146.4.73.66:53017 172.16.0.1:8013 - 169:tcp 3589 146.4.73.66:9421 - 154.45.1.53:514 - 173:tcp 3599 198.18.1.209:37791 146.4.73.70:37791 3.135.144.181:443 - 175:tcp 3583 198.18.1.224:57385 146.4.73.70:57385 13.59.223.49:443 - 176:tcp 3585 198.18.1.2:44996 146.4.73.70:44996 3.212.241.156:443 - 177:tcp 3595 198.18.0.1:1074 - 198.18.0.12:514 - |
Der folgende Befehl zeigt alle Zeilen in der HTTP Replacement-Message an, die das Wort URL oder url enthalten:
show system replacemsg http | grep -i url
Weitere Optionen die verfügbar sind:
- -A <num> After (Nachher)
- -B <num> Before (Vorher)
- -C <num> Context (Kontext)
Die Option -f ist verfügbar, um kontextuelle Ausgaben zu unterstützen und die komplette Konfiguration anzuzeigen. Das folgende Beispiel zeigt den Unterschied, wenn -f verwendet wird und wenn -f nicht benutzt wird:
| grep ldap-group1 Ohne -f | grep -f ldap-group1 Mit -f: |
show | grep ldap-group1
edit "ldap-group1"
set groups "ldap-group1"
|
show | grep -f ldap-group1
config user group
edit "ldap-group1"
set member "pc40-LDAP"
next
end
config firewall policy
edit 2
set srcintf "port31"
set dstintf "port32"
set srcaddr "all"
set action accept
set identity-based enable
set nat enable
config identity-based-policy
edit 1
set schedule "always"
set groups "ldap-group1"
set dstaddr "all"
set service "ALL"
next
end
next
end
|
Wie kann ich ein Fragezeichen in regulären Ausdrücken über die CLI einfügen?
Wenn man über die CLI ein Fragezeichen ? eingibt, wird standartmässig das Hilfemenu aufgerufen und angezeigt. Es kann vorkommen, dass man aber das Fragezeichen in einem regulären Ausdruck braucht.
Weil aber das Symbol des Fragezeichens für das Hilfemenu reserviert ist, wird es nicht möglich sein, das Fragezeichen in den Ausdrücken einzugeben, einzufügen oder zu kopieren.
Im folgenden Beispiel eines DLP Sensor wird das Fragezeichen ? für den regexp Syntax benötigt:
config dlp sensor
edit "default"
set comment "Default sensor."
config filter
edit 1
set proto smtp pop3 imap http-post
set filter-by regexp
set regexp "('?s:(\\d{10}.*))"
set action block
next
end
next
end
|
Lösung:
Damit man das Fragezeichen Symbol einfügen kann muss mit zBsp. einem Putty-Client gearbeitet werden.
- Putty öffnen
- Tastenkombination ctrl-V und dann ? eingeben
|
Mit der im WebGui verfügbaren CLI Konsole funktioniert diese Methode nicht! |
Veranschauung:
|
Ich gebe in der CLI einfach das Fragezeichen ? ein. Es wird automatisch das Hilfemenu angezeigt: # config Configure object get Get dynamic and system information show Show configuration diagnose Diagnose facility execute Execute static commands alias Execute alias commands exit Exit the CLI Ich drücke zuerst ctrl+v und sehe danach in der CLI das Fragezeichen ohne dass das Hilfemenu aufgerufen wird: # ? |
Wie sehe ich den Output der CLI von WebGui Konfigurationen?
Konfigurieren im WebGui ist eine gute Sache. Bei den vielen Funktionen und Einstellungen, die in FortiOS zur Verfügung stehen, ist es manchmal schwierig, die entsprechenden CLI-Befehle nachzuvollziehen. Damit ich sehe was hinter einem Klick im WebGui eigentlich auf der CLI passiert, gibt es eine coole funktion die mir die änderungen auf der CLI anzeigt:
diagnose debug cli 5 diagnose debug enable |
Zeigt mir den Output auf der CLI an. In diesem Beispiel werden wir auf dem Interface internal4 die IP Adresse 192.168.150.5/24 konfiguerieren:
|
|
sobald ich Okey drücke, wird die Konfiguration aktiv und auf der CLI der Output generiert: Mit dem Level 5 sieht man den output, welcher in der CLI konfiguriert werden müsste um das selbe Resultat wie im WebGui zu erhalten:
|
Output CLI: config system interface 0: edit "internal4" 0: set ip 192.168.150.5 255.255.255.0 0: end 0: config system interface 0: edit "internal4" 0: config ipv6 0: end 0: end Wenn ich den Level 8 aktiv habe, werde ich auch noch sehen in welche Objekte und welche Dateien meine Konfiguration gespeichert wird: diagnose debug cli 8 diagnose debug enable Um das ganze wieder zu deaktivieren muss ich folgendes eingeben: diagnose debug reset diagnose debug disable |
Upgrade
Wo finde ich den Upgrade-Pfad um das FortiOS auf eine neue Version anzuheben?
Seit September 2018 hat Fortinet folgendes Tool zu Verfügung gestellt welches ein korrektes Update vereinfacht:
Alternativ kann der Upgrade-Pfad auf dem Supportportal im Download Center entnommen werden (support.fortinet.com). Leider ist dieser nur bis zur Startversion 5.2.9 hinterlegt.
| FortiOS Download über das Supportportal: |
support.fortinet.com -> DOWNLOAD -> FIRMWARE IMAGES |
Was muss ich beachten wenn ich auf das FortiOS 6.2.2 upgraden will?
|
Vorsicht wenn eine FortiGate welche einen SoC3 verbaut hat und man auf die Version 6.2.2 upgraden will. Es muss beachtet werden, dass die Authentifizierung mit dem Mobile Token für das SSL-VPN nicht mehr funktioniert. |
Welche Geräte sind betroffen?
- FG-60E
- FG-60E-POE
- FG-61E
- FG-80E
- FG-80E-POE
- FG-81E
- FG-81E-POE
- FG-100E
- FG-100EF
- FG-101E
- FG-140E
- FWF-60E
- FWF-61E
Diese Information kann aus den Release Notes von OS 6.2.2 entnommen werden:
https://docs.fortinet.com/document/fortigate/6.2.2/fortios-release-notes/501077/mobile-token-authentication
Über ein Fortinet Support Ticket haben wir noch folgendes in Erfahrung bringen können:
Dieses Problem wurde im 6.2.3 gelöst.
Empfohlener Workaround:
Versuchen sie sich mit dem SSL-VPN zu verbinden. Beim Passwort-Feld das Passwort eingeben und danach ohne Leerzeichen gleich den Tokencode eingeben. (Passwort und TokenCode bilden eine Zeichenkette)
Achtung, es muss nicht sein das dies zu 100% funktioniert. Es wurde im Ticket ausdrücklich auf versuchen verwiesen für diesen Workaround.
Backup / Restore
Wie kann ich das Konfigurationsfile von der FortiGate backupen?
"Backup ist nur für Feiglinge". Dieser Spruch hört oder liest man oft, doch wenn die FortiGate ersetzt werden muss ist man froh wenn man ein aktuelles Backup der Konfiguration besitzt. Es empfiehlt sich vor und nach jeder Konfigurationsänderung ein Backup zu erstellen. So ist es jederzeit möglich, wieder auf den ursprünglichen Stand zurück zu kehren.
Firmware
Wo finde ich die Release Notes für FortiOS 6.0?
Die aktuellen Release Notes für das FortiOS 6.0 kann der folgenden Tabelle entnommen werden:
Die aktuellen Release Notes, welche von Fortinet direkt gepflegt & geupdatet werden sind auf der Docs-Seite aufgeführt:
Datei:FortiOS-Release-Notes-Version-6.0.13.pdf
Wo finde ich die Release Notes für FortiOS 6.2?
Die aktuellen Release Notes für das FortiOS 6.2 kann der folgenden Tabelle entnommen werden:
Die aktuellen Release Notes, welche von Fortinet direkt gepflegt & geupdatet werden sind auf der https://docs.fortinet.com Seite: aufgeführt:
Wo finde ich die Release Notes für FortiOS 6.4?
Die aktuellen Release Notes für das FortiOS 6.4 kann der folgenden Tabelle entnommen werden:
Die aktuellen Release Notes, welche auch immer gepflegt werden, findet man auf der https://docs.fortinet.com Seite:
Wo finde ich die Release Notes für FortiOS 7.0?
Das FortiOS 7.0.0 ist seit 30.März 2021 verfügbar.
Die aktuellen Release Notes für das FortiOS 7.0 kann der folgenden Tabelle entnommen werden:
Die aktuellen Release Notes, welche auch immer gepflegt werden, findet man auf der https://docs.fortinet.com Seite:
Unterstützt meine FortiGate eine bestimmte FortiOS Version?
In den folgenden Tabellen kann entnommen werden, ab wann eine bestimmte FortiGate nicht mehr mit einer FortiOS GA Version funktioniert. Bevor man eine neue GA Version auf einer FortiGate installiert, sollte man in den Release Notes prüfen, ob die entsprechende Version auch für dieses Gerät vorhanden ist. Alle nachfolgenden Angaben wurden der Fortinet Support Seite entnommen und sind ohne Gewähr.
https://support.fortinet.com/Information/ProductLifeCycle.aspx
Die unten aufgeführten Hardware-Modelle unterstützen die FortiOS-Version 5.4 nicht:
|
FortiGate Modelle die 5.4 nicht unterstützen: |
|
|
FortiGate-WIFI Modelle die 5.4 nicht unterstützen: |
|
Der Zugang zum Fortinet-Kundendienst für Support zu 5.2 ist für diese Hardware-Modelle bis zur erlangung des Hardware-End-of-Support-Datums möglich.
Die unten aufgeführten Hardware-Modelle unterstützen die FortiOS-Version 6.0 nicht:
|
FortiGate Modelle die 6.0 nicht unterstützen: |
|
|
FortiGate-WIFI Modelle die 6.0 nicht unterstützen: |
|
Die unten aufgeführten Hardware-Modelle unterstützen die FortiOS-Version 6.2 nicht:
|
FortiGate Modelle die 6.2 nicht unterstützen: |
|
|
FortiGate-WIFI Modelle die 6.2 nicht unterstützen: |
|
|
FortiGate Rugged Modelle die 6.2 nicht unterstützen: |
|
Die unten aufgeführten Hardware-Modelle unterstützen die FortiOS-Version 6.4 nicht:
|
FortiGate Modelle die 6.4 nicht unterstützen: |
|
|
FortiGate-WIFI Modelle die 6.4 nicht unterstützen: |
|
|
FortiGate Rugged Modelle die 6.4 nicht unterstützen: |
|
|
FortiGate Modelle die 7.0 nicht unterstützen: |
|
Die unten aufgeführten Hardware-Modelle unterstützen die FortiOS-Version 7.0 momentan (Stand: Juni 2021) nicht:
|
FortiGate Modelle die 7.0 momentan (Stand: Juni 2021) nicht unterstützen: |
|
|
FortiGate Rugged Modelle die 7.0 momentan (Stand: April 2021) nicht unterstützen: |
|
Wann geht eine FortiOS Version End of Support?
Um zu wissen ob auf der vorhandenen OS-Version der FortiGate noch Support-Anspruch besteht / noch unterstützt wird, kann dies am einfachsten auf dem Partner-Portal, welches immer geupdated wird, überprüft werden. Im Partner-Portal ist dies hier zu finden:
|
https://support.fortinet.com/Information/ProductLifeCycle.aspx |
So wird zum Beispiel das FortiOS 6.0 im September 2023 "End of Support" gehen.
Der Life Cycle vom FortiOS ist wie folgt definiert:
Die GA-Phase dauert 36 Monate, danach geht das FortiOS automatisch in den Status "End of Engineering Support". Nach weiteren 18 Monaten geht das FortiOS "End of Support". Sobald das FortiOS in diesem Stadium ist, gibt es seitens Fortinet keinen technischen Support. Dies bedeutet, dass Tickets erst bearbeitet werden, wenn die FortiGate auf einen aktuellen Software Stand angehoben wurde. Der ganze Life Cycle einer FortiOS Generation dauert entspechend 54 Monate.
Mehr zum TAC Support : Fortinet:Support-Case#Was_wird_vom_Technischen_Fortinet_Support_.28TAC.29_nicht_unterst.C3.BCtzt.3F
In der nachstehenden Tabelle sind die Daten welche der offiziellen Fortinet Supportseite entnommen wurden:
| Software Version | Release Date (GA) | End of Engineering Support Date (EOES) | End of Support Date (EOS) |
|---|---|---|---|
| 3.3 | 02.10.2006 | - | 02.10.2009 |
| 3.4 | 29.12.2006 | - | 29.12.2009 |
| 3.5 | 03.07.2007 | - | 07.03.2010 |
| 3.6 | 04.02.2008 | - | 04.02.2011 |
| 3.7 | 08.07.2008 | - | 18.07.2011 |
| 4.0 | 24.02.2009 | - | 24.02.2012 |
| 4.1 | 24.08.2009 | - | 24.08.2012 |
| 4.2 | 01.04.2010 | - | 01.04.2013 |
| 4.3 | 19.03.2011 | - | 19.03.2014(1) |
| 5.0 | 01.11.2012 | 01.11.2015 | 01.05.2017 |
| 5.2 | 13.06.2014 | 13.06.2017 | 13.12.2018 |
| 5.4 | 21.12.2015 | 21.12.2018 | 21.6.2020 |
| 5.6 |
2017-03-30 | 2020-03-30 | 30.9.2021 |
| 6.0 |
29.03.2018 | 29.03.2021 | 29.09.2022 |
| 6.2 |
28.03.2019 | 28.03.2022 | 28.09.2023 |
| 6.4 |
31.03.2020 | 31.03.2023 | 30.09.2024 |
| 7.0 |
30.03.2021 | 30.03.2024 | 30.09.2025 |
(1) Das v4.0MR3 End of Support Date für Hardware, welche FortiOS Version 5.0 unterstützt, ist 2014-03-19. (Zusätzlich, und nach eigenem Ermessen, wird Fortinet den Kunden bei der Umstellung auf 5.0 in begrenztem Umfang beratend zur Seite stehen. Der beratende Support beschränkt sich auf technischen Support, Konfigurationshilfe, allgemeine Fragen und die Einreichung von Fehlerberichten.
Quelle: https://support.fortinet.com/Information/ProductLifeCycle.aspx
Wie wird eine FortiGate von Grund auf mit einem entsprechenden FortiOS installiert (staging)?
Wenn ein FortiGate Device von Fortinet ausgeliefert wird, kann dieses Device auf irgend einem FortiOS basieren! Grundsätzlich werden immer die neusten FortiOS Versionen durch Fortinet vorinstalliert. Wenn es sich um ein neu lanciertes Modell eines FortiGate Devices handelt, basiert dies oft auf einem sogenannten "Branche Release". Ein "Branche Release" ist eine Vorabversion eines "GA" Releases (General Availibility). Aus diesem Grund empfehlen wird bei jedem FortiGate Device ein "staging" mit einem FortiOS nach Wahl durchzuführen. Dabei spielt es keine Rolle welches FortiOS oder welche Konfiguration auf der FortiGate existiert oder vorhanden ist, da durch ein "staging" die FortiGate von Grundauf neu installiert wird und sämtliche Konfiguration und das bestehende FortiOS dabei verloren gehen. Somit sollte jedes FortiGate Device nach diesem Vorgehen aufgesetzt werden. Zwingende Voraussetzung für ein "staging" ist eine korrekte Verbindung von der entsprechenden Workstation zum "Consolen Port" (RS232) des FortiGate Devices. Dies bedeutet:
| Parameter für RS232 Verbindung |
8 bits no parity 1 stop bit 9600 baud (the FortiGate-300 uses 115,000 baud) Flow Control = None |
Die heutigen Laptop/Workstation verfügen in den seltensten Fällen einen "RS-232" Port. Dies bedeutet dass mit einem entsprechenden Device, zBsp "USB Konverter" gearbeitet werden muss. Wir empfehlen den "EX-1301-2" USB Konverter welcher sich durch eine hohe Kompatibilität auszeichnet. Weitere detaillierte Informationen betreffend "Konsolen Port" resp. RS-232 Console findet man im folgenden Artikel:
FortiGate-6.0:FAQ#Was_f.C3.BCr_ein_Kabel_.28Konverter.29_ben.C3.B6tige_ich_f.C3.BCr_den_Konsolen_Anschluss_.28Seriell_RS-232.29_auf_einer_FortiGate.3F
Beim "staging" Prozess überträgt das BIOS des FortiGate Devices das entsprechende FortiOS welches von einem TFTP Server auf die FortiGate um dies nachträglich zu installieren. Aus diesem Grund muss auf der entsprechende Workstation, welche mit dem FortiGate Device verbunden ist ein TFTP Server installiert werden. Wir empfehlen folgenden TFTP Server welcher kostenlos erhältlich ist:
http://www.solarwinds.com/downloads/ (Abschnitt: Free Trial Downloads > TFTP Server & SFTP/SCP Server > DOWNLOAD FREE Tool > Free TFTP Server > DOWNLOAD NOW) https://www.solarwinds.com/free-tools/free-tftp-server (Direkter Link)
Für den "Solarwinds TFTP Server" muss eine Standard-Installation durchgeführt werden. Nach der Installation steht im Startmenü "SolarWinds TFTP Server" zur Verfügung und unter dem Menu-Punkt "TFTP Server". Starte den TFTP Server anhand dieses Menu-Eintrages. Danach wähle:
File > Configure > Start
Der TFTP Server wird gestartet und dies wird auch unter der Position "Status" als "Started" angezeigt. Nun bestätige durch "OK" das "Configure" Fenster und sobald dies geschieht "initial" wird der TFTP Server gestoppt. Der Grund hierfür ist der folgender: Beim ersten Start des TFTP Servers wird das "TFTP Server Root Directory" angelegt und der Server stoppt. Standardmässig befindet sich das "TFTP Server Root Directory unter folgendem Verzeichnis "C:\TFTP-Root". Kontrolliere kurz ob dieses Verzeichnis angelegt wurde und starte den TFTP Server mehrmals und kontrolliere dessen Status:
File > Configure > Start [Kontrolliere den Status "Started"]
Nun muss in das "TFTP Server Root Direktory" das entsprechende FortiOS Image kopiert werden. Benenne dieses Image um in "image.out". Als nächsten Schritt konfiguriere die Netzwerkkarte der entsprechende Workstation welche mit dem FortiGate Device über "Consolen Port" verbunden ist mit folgender IPv4-Adresse / Subnet Maske und deaktiviere sämtlichen anderen Netzwerkkarten wie zBsp jenes für das WLAN:
192.168.1.100
255.255.255.0
NOTE Die IPv4-Adresse des TFTP Servers resp. der Netzwerkkarte der entsprechenden Workstation kann für die verschiedenen
Modelle des FortiGate Devices variieren. Beim "staging" Prozess kann diese jedoch eruiert werden!
Die Konfiguration der Netzwerkkarte benötigt keinen "Default Gateway" und auch keinen DNS Server. Achte darauf, dass auf der entsprechenden Workstation sämtliche Firewall, Endpoint Security usw. deaktiviert wurden damit die Anfrage des FortiGate Devices für die Übertragung des FortiOS Image zum TFTP Server zugelassen wird. Aus diesen Ausführung ergibt sich folgende Konstellation:
_____________________________
| RS232 Verbindung |
Consolen Port | |
___________|___ | RS-232 Anschluss
| | ____|_______________
| FortiGate 50E | 192.168.1.100/24 | |
|_______________| _____| LapTop/Workstation | --> SolarWindsTFTP Server Status "Started"
| | NIC |____________________| --> FortiOS als "image.out" im C:\TFTP-Root
WAN1 | | --> Fireweall, Endpoint Security deaktiviert!
|_____________________|
NOTE Als Verbindung von WAN1 zur Netzwerkkarte der entsprechenden Workstation benutze ein normales RJ-45 Kabel. Der entsprechende
Netzwerk-Port in unserem Beispiel ("WAN1") ist abhängig des FortiGate Devices. Der entsprechend zu nutzende Port wird während
dem "staging" Prozess aufgelistet!
Nun muss das FortiGate Device neu gestartet werden (execute restart) oder ein "power-on" ausgeführt werden. Sobald die FortiGate startet muss auf folgende Meldung geachtet werden um den Start-Prozess abzubrechen und so in dass BIOS der FortiGate zu gelangen:
Please wait for OS to boot, or press any key to display configuration menu.. FortiGate-50E (12:55-08.13.2015) Ver:05000011 Serial number: FGT50E3U15000635 CPU(00): 1600MHz Total RAM: 2GB Initializing boot device... Initializing MAC... egiga1 Please wait for OS to boot, or press any key to display configuration menu.. |
Wenn der Start-Prozess mit "press any key...." abgebrochen wurde wird folgendes Menü angzeigt:
[C]: Configure TFTP parameters. [R]: Review TFTP parameters. [T]: Initiate TFTP firmware transfer. [F]: Format boot device. [I]: System information. [B]: Boot with backup firmware and set as default. [Q]: Quit menu and continue to boot. [H]: Display this list of options. |
Nun kann für den TFTP "staging" Prozess anhand "[R]: Review TFTP parameters." die vorgegebenen Konfiguration eingesehen werden. Möchte man diese Konfiguration verändern kann dies anhand "[C]: Configure TFTP parameters." durchgeführt werden. Dabei ist zu beachten das diese Veränderung "persistens" ist und zukünftig für jeden "staging" Prozess betreffend TFTP Parameter für dieses FortiGate Device gilt:
Enter C,R,T,F,I,B,Q,or H: R Image download port: WAN1 DHCP status: Disabled Local VLAN ID: <NULL> Local IP address: 192.168.1.188 Local subnet mask: 255.255.255.0 Local gateway: 192.168.1.254 TFTP server IP address: 192.168.1.100 Firmware file name: image.out |
Führe folgende Kontrolle betreffend der Konfiguration des "staging" Prozesses durch:
- Ist das RJ-45 Kabel am korrekten Netzwerk-Port der FortiGate angeschlossen (Beispiel: WAN1)
- Wurde die korrekte IPv4-Adresse, wie auch die Subent Maske auf der Netzwerkkarte der entsprechenden Workstation konfiguriert
- Ist der TFTP Server gestartet und befindet sich im "TFTP Server Root Directory" (C:\TFTP-Root) das entsprechende Image des FortiOS als File "image.out"
Als nächsten Schritt muss der "boot device" neu formatiert werden. Dabei wird die Boot-Partition gelöscht und neu angelegt. Sämtliche vorhandenen Daten/Informainen gehen dabei verloren. Wähle die Position "[F]: Format boot device.":
Enter C,R,T,F,I,B,Q,or H: F It will erase data in boot device. Continue? [yes/no]: yes Formatting............................ Done. |
Nun, um den "staging" Prozess zu starten führe den Punkt "[T]: Initiate TFTP firmware transfer." aus:
Enter C,R,T,F,I,B,Q,or H: T |
Nun wird der "staging" Prozess durchgeführt. Achte dabei auf den "TFTP Server" resp. dessen Console in welcher der Transfer des Files bestätigt wird! Auf dem FortiGate Device wird eine korrekte Übertragung folgendermassen angezeigt:
Please connect TFTP server to Ethernet port 'WAN1'.
MAC: 90:6c:ac:13:80:10
Connect to tftp server 192.168.1.100 ...
#############################################################
Image Received.
Checking image... OK
Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]? D
Wenn "D" für "default" ausgeführt wird, so wird das FortiOS in die Partition installiert und diese "active" gesetzt und somit beim nächsten Neustart des Devices verwendet. Wird "B" für "backup" gewählt, so wird die Partition nicht "active" gesetzt und beim nächsten Neustart nicht genutzt. Wenn "R" für "run" ausgeführt wird, so wird das FortiOS in den Memory Bereich installiert. Dies bedeutet dass nach einem Neustart des Devices diese Installation nicht mehr zur Verfügung da durch den ausgeführten Neustart der Memory Bereich gelöscht wird! Für ein "staging" speziell wenn der "boot device" Formatiert wird ist immer "D" zu wählen für "default".
Programming the boot device now.
....................................
.............................................................
.............................................................
...............................................................
...
Booting OS...
Reading boot image... 2800640 bytes.
Initializing firewall...
System is starting...
FGT50E3U15000635 login:
|
Das FortiOS ist nun grundsätzlich installiert. Als nächsten Schritt sollte die "disk" eines FortiGate Devices formatiert werden. Bei kleineren FortiGate Devices steht die "disk" für ein "Logging" nicht mehr zur Verfügung. Dennoch sollte die "disk" Formatiert werden da ein FortiOS für viele Funktionen diese "disk" benutzen wird, wie zBsp DHCP Lease File, Caching Informationen usw. Steht die "disk" nicht zur Verfügung, da diese nicht formatiert wurde, werden diese Informationen in den Memory-Bereich geschrieben was das Memory zusätzlich belastet oder stehen teilweise gänzlich nicht zur Verfügung. Um sich Initial nach einem "staging" auf einem FortiGate Device einzuloggen müssen folgende Login-Informationen verwendet werden:
User: admin Password: [Kein Passwort] |
Nun kann die "disk" mittels folgendem Befehl formatiert werden:
# execute formatdisk 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 |
Nach dem Formatieren der "disk" wird ein Neustart ausgeführt! Dieser Befehl "execute formatlogdisk" kann auf neueren FortiGate Modellen, wie zBsp einer FG-50E nicht ausgeführt werden. Der Grund ist der wie folgt: Diese FortiGate Modelle verfügen zwar über eine "disk" jedoch die "disk" wird als Subsystem im Flash-Bereich angelegt (MTD; Memory Technology Device). Die "MTD" Technology ist Bestandteil des Linux Kernels resp. des FortiOS Kernels. Um festzustellen ob das FortiGate Modell über eine "MTD" Implementation verfügt kann folgender Befehl eruiert werden:
# fnsysctl df -h Filesystem Size Used Available Use% Mounted on rootfs 123.9M 53.6M 70.2M 43% / /dev/root 123.9M 53.6M 70.2M 43% / none 1.5G 1.5M 1.4G 0% /tmp none 1.5G 0 1.5G 0% /dev/shm none 1.5G 16.9M 1.4G 1% /dev/cmdb /dev/mtd5 18.0M 6.6M 11.3M 37% /data /dev/mtd7 30.0M 2.3M 27.6M 8% /data2 |
Bei den Verzeichnissen "/data" sowie "/data2" welche als "/dev/mtd*" indiziert werden und somit als "MTD" Subsysteme gelten, handelt es sich effektiv um die "disk". Diese "disk" resp. das "MTD Subsystem" wird anhand eines Files, welches in den Flash-Bereich kopiert wird angelegt. Dabei muss berücksichtigt werden, dass alle Informationen der "disk" verloren gehen. Somit FortiGate Modelle, welche anhand dieser "MTD Subsystem" Technology verfügen resp. anhand dieser eine "disk" dargestellt wird können Informationen nicht "persistent" speichern dh. nach einem Neustart gehen alle Informationen verloren! Für ein "MTD" Subsystem wird auf einer FortiGate-50E 128 MB alloziert. Als nächster Schritt im "staging" Prozess sollten die Interface's auf dem internal Switch aufgebrochen werden. Um dies durchzuführen muss zwischen folgenden Möglichkeiten unterschieden werden:
- Das FortiGate Device verfügt über einen internen Hardware "Switch Controller"!
- Das FortiGate Device verfügt über keinen internen Software "Switch Controller"!
- Auf dem FortiGate Device kann kein "Interface Mode" durchgeführt werden!
https://fortinet.also.ch/wiki/index.php?title=FortiGate-6.0:FAQ#Wie_wird_ein_virtueller_Switch_komplett_gel.C3.B6scht.3F
Durch das Aufbrechen des internen Swichtes gehen sämtliche Konfigurationen auf den Interfaces für den "internen" Switch verloren Dies beutet dass nach dem ausgeführten Neustart auf den Interfaces für den internen Switch einzeln verfügbar sind keine IP Adressen mehr konfiguriert sind. Um auf einen Zugriff über das Mgmt. Interfaces der FortiGate zu gewährleisten muss folgendes auf einem entsprechenden Interface ausgeführt werden:
Verifiziere die einzelnen Interface Namen
# show system interface |
Konfiguriere ein entsprechendes Interface
# config system interface # edit [Name des Interface zB "internal1"] # set ip [IPv4 Adresse plus Subnet Maske zB "192.168.1.99 255.255.255.0] # set allowaccess [http | https | ssh | telnet | ping] # end |
Wenn "http" sowie "https" aktiviert werden wird standardmässig ein "redirect" auf "https" durchgeführt. Möchte man dies unterbinden kann folgendes zusätzlich ausgeführt werden:
# config system global # set admin-https-redirect [enable | disable] # end |
Der "staging" Prozess ist nun abgeschlossen und due FortiGate kann in Betrieb genommen werden!
Hier kann eine Anleitung heruntergeladen werden:
Wie kann ich einen FortiOS Rollback durchführen?
Auf der FortiGate bestehen zwei Partitionen auf der Festplatte, auf welcher die Konfiguration und das FortiOS Image geschrieben wird. Es ist immer eine Partion mit dem aktuellen FortiOS und der aktuellen Konfiguration aktiv. Wenn ein Upgrade auf eine neue FortiOS Version durchgeführt wird, wird die Konfiguration auf die passive Partition geschrieben und auf dieser das neue FortiOS installiert. Nach der Installation wird dann diese Partition aktiv geschalten und die andere passiv.
Durch dieses Verhalten ist es möglich, dass wir nach einem missglückten OS-Update wieder ein Schritt zurück gehen können indem wir mit der passiven Partition die FortiGate neu starten. So initiert die FortiGate nach einem Reboot wieder mit der vorherigen OS-Version und deren Konfiguration.
Wichtig zu wissen ist, dass man immer nur ein Schritt zurück gehen kann. Daher empfiehlt es sich nach jedem Update-Schritt das Verhalten der FortiGate zu überprüft.
Als Erstes müssen wir schauen, welche Partition momentan gerade aktiv ist. Dies kann mit diagnose sys flash list überprüft werden.
Danach müssen wir definieren, mit welcher Partition wir beim nächsten Mal starten wollen (primäre oder sekondäre)
# diagnose sys flash list Partition Image TotalSize(KB) Used(KB) Use% Active 1 FGT60E-6.02-FW-build1010-191008 253920 83060 33% No 2 FGT60E-6.02-FW-build1066-191218 253920 82168 32% Yes 3 ETDB-77.00885 3021708 130964 4% No Image build at Dec 18 2019 22:30:39 for b1066
Mit dem Befehl In unserem Beispiel wollen wir den Fallback auf das FortiOS 6.2.2. Dies bedeutet, dass wir die primäre Partition auswählen müssen: # execute set-next-reboot primary Default image is changed to image# 1. Wir können dies jetzt auch mit # diagnose sys flash list
Partition Image TotalSize(KB) Used(KB) Use% Active
1 FGT60E-6.02-FW-build1010-191008 253920 82168 32% Yes
2 FGT60E-6.02-FW-build1066-191218 253920 82168 32% No
3 ETDB-77.00885 3021708 130964 4% No
Image build at Dec 18 2019 22:30:39 for b1066
Mit |
Datei:HowTo FortiOS rollback.pdf
3G/4G Modem
DNS
Wie konfiguriere ich auf einer FortiGate die System DNS Server?
Dem DNS Server auf einer FortiGate kommt eine wichtige Funktion zu. Die FortiGate nutzt die DNS Server für unzählige Funktionen und müssen entsprechend einwandfrei funktionieren. Die DNS Server-Einstellung ist eine globale Einstellung. Dies bedeutet, dass wenn mit VDOM gearbeitet wird der System DNS Server für alle gleich ist. Konfiguriert werden die System-DNS-Einstellungen im Menu DNS:
|
Über das Menu Network > DNS |
Über die CLI werden die System DNS Server wie folgt konfiguriert:
| Konfiguration über CLI: |
# config system dns # set primary [IPv4 Adresse des DNS 1 Serves] # set secondary [IPv4 Adresse des DNS 2 Servers] # set ip6-primary :: [IPv6 Adresse des DNS1 Server] # set ip6-secondary :: [IPv6 Adresse des DNS2 Server] # set domain [Lokale Domaine] # set source-ip [Source IP die benützt werden soll für die DNS Anfrage] # end |
Über die CLI kann die Speicherdauer, wie lange der DNS-Eintrag im Cache gespeichert werden soll, konfiguriert werden. Weiter kann auch konfiguriert werden wie viele DNS Einträge im Cache maximal gespeichert werden sollen.
| Konfiguration über CLI: |
# config system dns # set dns-cache-limit [Maximum Einträge die im Cache verbleiben; Standard 5000] # set dns-cache-ttl [Maximum Zeit in der die DNS Cache vebleibt; Standard 1800] # end |
Die Anweisung "cache-notfound-response" ist ein Log relevanter Eintrag. Wird dieser aktiviert, und sind die relevanten Log's aktiviert, so wird im Log, sofern die Anfrage im "local cache" nicht gefunden wird ein "NOTFOUND" ausgegeben. Defaultmässig ist diese Option deaktiviert.
| Konfiguration über CLI: |
# config system dns # set cache-notfound-response [enable | disable] # end |
Bei FortiGate Geräten mit mehreren CPUs können die DNS-Prozessnummer von 1 bis zur Anzahl der CPUs eingestellt werden. Die Standard-DNS-Prozessnummer ist 1.
| Konfiguration über CLI: |
# config system global # set dnsproxy-worker-count <integer> # end |
Wie konfiguriere ich auf der FortiGate "DNS over TLS"?
![]()
Seit dem FortiOS 6.2 wurde diese Option DNS over TLS (DoT) hinzugefügt.
Wie funktioniert DoT?
Der noch recht junge Standard "DNS over TLS" (RFC 7858) soll drei Probleme von DNS und DNSSEC lösen:
- Schützen der Privatsphäre von Anwender und gegen abhören schützen
- Einschleusen von manipulierten DNS-Informationen unterbinden
- Verhindern von Denial-of-Service-Attacken via DNS
Die Funktion von DoT ist ziemlich einfach. Klassisch ruft der Client die DNS Informationen beim Resolver über eine ungesicherte UDP Kommunikation auf. Bei DoT wird dies über eine TCP Verbindung in der Security Schicht aufgerufen, welche authentifiziert und verschlüsselt ist. So bezieht der Client eine DNSSEC validierte Information des Namensservers. So kann ausgeschlossen werden dass Drittpersonen mitlesen. Die Namensauflösung des Resovers erfolgt dann im Klartext. Dies ist aber nicht gravierend, da der Urheber der Anfrage nicht ersichtlich ist. Es soll aber bereits Pläne geben welche die Kommunikation zwischen DNS-Resolver und dem zuständigen DNS-Server via DoT auch gesichert wird. DoT kommuniziert mit dem TCP Port 853. Ein Client der DoT fähig ist versucht die DNS-Anfrage zuerst über dieses Protokoll. Falls der Dienst nicht verfügbar ist, wird in der Regel über UDP53 die Anfrage getätigt (dies ist jedoch abhängig wie die Sicherheitseinstellungen des Systems sind). Auf der FortiGate ist es so eingestellt, dass wenn die DoT Anfrage nicht funktioniert normal über UDP53 die Anfrage unverschlüsselt abgesetzt wird. Dies ist problematisch da der Port 853 an vielen Orten (Perimeter Firewalls, Hotels oder öffentliche Hot Spots) noch blockiert wird. Des Weiteren bringt TCP, zusätzlich in Kombination mit TLS, einiges an Verwaltungs-Overhead mit sich, der die für zügiges surfen elementare Namensauflösung bremst.
Wie konfiguriere ich DoT auf der FortiGate?
Um "DNS over TLS" zu aktivieren kann im WebGUI über das Menu: Network > DNS der entsprechende Status konfiguriert werden:
- disable DNS over TLS ist deaktiviert
- enable DNS over TLS soll für DNS-Abfragen verwenden werden, sofern TLS verfügbar ist
- force Nur TLS für DNS-Abfragen verwenden. Greift nicht auf unverschlüsselte DNS-Abfragen zurück, wenn TLS nicht verfügbar ist
# config system dns # set dns-over-tls [disable|enable|force] # set ssl-certificate "Fortinet_Factory" # end |
Wie kann ich auf einer FortiGate das DNS Cache löschen?
Das DNS Cache einer FortiGate kann über CLI mit folgendem Befehl gelöscht werden:
diagnose test application dnsproxy 1
Die Option "1" steht für "Clear DNS cache". Unter "dnsproxy" stehen noch folgende weitere Optionen zu Verfügung:
| Weitere Optionen für diagnose test application dnsproxy [Option]: |
diagnsoe test application dnsproxy ? 1. Clear DNS cache 2. Show stats 3. Dump DNS setting 4. Reload FQDN 5. Requery FQDN 6. Dump FQDN 7. Dump DNS cache 8. Dump DNS DB 9. Reload DNS DB 10. Dump secure DNS policy/profile 11. Dump Botnet domain 12. Reload Secure DNS setting 13. Show Hostname cache 14. Clear Hostname cache 15. Show SDNS rating cache 16. Clear SDNS rating cache 17. DNS debug bit mask 99. Restart dnsproxy worker |
DNS Database
Wie kann ich auf einer FortiGate einen Split-DNS Server einrichten?
Ein Split-DNS Server ist ein DNS-Server der auf Anfrage einer bestimmten Source/Environement (internal und/oder external) die entsprechende Antwort liefert. Nehmen wir an wir hätten einen DMZ WebServer mit der IP Adresse 192.168.1.1 (FQDN www.mydomain.ch). Dieser FQDN ist auf dem external DNS Server (authoritativ) registriert. Wenn kein Split-DNS-Server konfiguriert ist und ein User im "internal LAN" diesen Server, im Browser versucht zu öffenen (www.mydomain.ch), so wird diese Anfrage an den DNS Server gesendet (konfigurierter Public-DNS-Server der FortiGate). Dieser Request wird vom DNS Server (sofern für www.mydomain.ch nicht authoritativ) an den Root-Server gesendet. Dies geschieht nur sofern die Anfrage nicht bereits schon im Cache des DNS-Servers vorhanden ist, welcher den autoritativen DNS-Server für www.mydomain.ch anfragen. Die Antwort, welche zurückgegeben wird ist die "public IP" (Virtual IP). Nun kann es zu Problemen kommen wenn der User sich im internen LAN befindet und vom DNS die Public IP (Virtual IP) erhält um www.mydomin.ch aufzurufen. Auch die DNS-Auflösung benötigt Zeit und verlangsamt den Zugriff zusätzlich. Um nun die zwei Welten (intern & extern) abzubilden kann ein Split-DNS-Server konfiguriert werden. Mit einer FortiGate kann dies mittels «DNS Database» umgesetzt werden. Standardmässig ist dieses Feature auf der FortiGate NICHT ERSICHTLICH und muss erst unter folgendem Abschnitt konfiguriert werden:
|
Über das Menu :System -> Feature Visibility muss das Feature DNS Database eingeschaltet werden: |
# config system settings # set gui-dns-database enable # end |
Sobald die Funktion aktiviert ist, erscheint unter "Network" -> "DNS Servers" der entsprechende Punkt. In unserem Beispiel sind wir davon ausgegangen, dass unser DMZ Server folgende Infos betreffend DNS hat:
| Konfigurations Parameter: | ||||||
|
Nehmen wir an im internen LAN würde es ebenfalls die Domaine "mydomain.ch" geben. Ziel wäre es, dass wenn die User im "internen LAN" www.mydomain.ch im Browser eingeben der DNS Server anstelle der Public IP 212.59.153.115 die interne Adresse des WebServers im DMZ (192.168.1.1) zurückgibt, da die Anfrage vom "INTERNEN" LAN kommt und nicht von extern. Um so eine Konfiguration durchzuführen muss folgendes angepasst werden:
| Über das Menu Network -> DNS-Servers bei "DNS Database" auf "Create New" eine neue DNS-Zone für MyDomain.ch erfassen: |
|
Der zu konfigurierende DNS Server muss als MASTER Server konfiguriert werden, jedoch NICHT als Authoritativ! |
|
Der DNS Server ist konfiguriert - nun muss für die entsprechende Zone ein "A" Record für www.mydomain.ch erfasst werden! |
|
Es ist zu empfehlen für den Host ebenfalls einen "PTR-Record" zu erstellen! |
|
Um die Einträge für einen DNS Server auf einer FortiGate aufzulisten resp. die DNS Database zu "dumpen" kann folgender Befehl verwendet werden:
|
# config system dns-database # edit MYDOMAIN.CH # set domain mydomain.ch # set type master # set view shadow # set ttl 86400 # set primary-name dns # set contact hostmaster@mydomain.ch # set authoritative disable # config dns-entry # edit 1 # set hostname www.mydomain.ch # set type A # set ip 192.168.1.1 # set status enable # end # end |
Diese Art der Konfiguration ist ein Hybrid d. h. KEIN echter Split-DNS Server, da der Authoritative DNS Server im Internet steht und nicht auf der FortiGate konfiguriert ist. Um jedoch zu gewährleisten, dass unser neu konfigurierte DNS Server NICHT authoritativ ist und das NICHT gefundene DNS Einträge extern abgefragt werden, muss die View auf shadow gesetzt werden!
| Konfiguration DNS Dienst - Externes Interface |
|
Um die Konfiguration abzuschliessen muss der externe Port (WAN) auf "Recursive" gesetzt werden, das heisst, dass der externe Port "Recursive" Anfragen absetzt:
|
| Konfiguration über die CLI: |
# config system dns-server # edit wan1 # set mode recursive # set dnsfilter-profile "[Profile_Name]" -> "default" # end |
| Konfiguration DNS Dienst - Internes Interface |
|
Damit auf dem "internen" Interface der DNS Server - den wir erstellt haben - erreichbar ist, muss folgende Konfiguration durchgeführt werden:: |
# config system dns-server # edit internal # set mode recursive # end |
Nun fehlt nur noch der letzte Schritt -> User über DHCP der entsprechende DNS Server zugeweisen:
| Konfiguration DHCP Server internal Interface: |
|
# config system dhcp server # edit 1 # set dns-service local # set default-gateway 192.168.1.99 # set netmask 255.255.255.0 # set interface "internal" # config ip-range # edit 1 # set start-ip 192.168.1.110 # set end-ip 192.168.1.210 # next # end # set timezone-option default # next # end |
Die Konfiguration ist abgeschlossen. Wenn nun ein User im "Internal" LAN ein DNS Request absetzt (DNS Server dem User zugewiesen über DHCP 192.168.1.99) schaut die FortiGate im internen DNS Server nach und, sofern ein Eintrag gefunden wird diesen ausgeliefert. Ist kein entsprechender Eintrag vorhanden wird die Anfrage über das "WAN" Interface an die externen DNS Server weitergeleitet (definierte System DNS Server).
Wie kann ich auf der Fortigate für den DNS Server und eine bestimmten Zone ein "Zonen Transfer" aktivieren?
Wenn auf einer FortiGate ein DNS Server konfiguriert wird, ob mit oder ohne Split-DNS Server, stellt sich die Frage ob die entsprechende Zone, zum Beispiel "mydomain.ch", automatisch ein Update erhält, wenn der "authoritative" DNS Server für "mydomain.ch" ein Update für einen Eintrag durchführt.
# config system dns-database # edit [Name des entsprechenden Zonen Eintrages zB. "mydomain.ch"] # set allow-transfer [Gebe die IPv4 Adresse des "authoritativen" Servers an für "mydomain.ch"] # end |
Wie auf einer FortiGate ein DNS Server eingerichtet wird kann dem folgenden Artikel entnommen werden:
FortiGate:FAQ#Wie_kann_ich_auf_einer_FortiGate_einen_Split-DNS_Server_einrichten.3F
Des Weiteren ist bei der Komunikation zwischen "authoritativen" und/oder "none-authoritativen" Servern darauf zu achten, mit welcher IP die Komunikation durchgeführt wird. Dies bedeutet, dass im Normalfall der "non-authoritative" Server (in unserem Beispiel die FortiGate) ebenfalls im "authoritativen" Server eingetragen wird. Kommuniziert die FortiGate nicht die gewünschte "Source IP Adresse" zum authoritativen Server, kann diese mit folgender Konfiguration entsprechend manuell gesetzt werden:
# config system dns-database # edit [Name des entsprechenden Zonen Eintrages zB. "mydomain.ch"] # set source-ip [IPv4 Adresse die als Source konfiguriert werden soll] # end |
Kann ich auf einer FortiGate eine bestimmte DNS Anfrage umschreiben / verändern?
Wenn in einer bestimmten Umgebung eine DNS Anfrage anderst beantwortet werden soll als in einer anderen Umgebung, so spricht man von einem Split DNS Server. Dies bedeutet, dass dieser Anfragen von bestimmten Source Adressen anders beantwortet als von anderen Source Adressen. Dies wird dann genutzt wenn "interne" Informationen und "externe" kollidieren.
Beispiel:
Wenn ein User als Mail Server "mail.mydomain.ch" konfiguriert hat, so wird dieser Mail Server ausserhalb des "Office" als "Public IP" aufgelöst, z.B. "212.59.153.125". Benutzt der User den Mail Server im "Office", und im Office existiert "kein" interner DNS Server, so wird "mail.mydomain.ch" abermals als "Public IP" aufgelöst. Der Nachteil ist, obwohl sich der User und Mail Server im gleichen Segment befinden, wird der Traffic von "mail.mydomain.ch" zur Firewall gesendet, da dieser mit der Public IP aufgelöst wird. Der Grund ist Routing bedingt, d. h. "212.59.153.125" befindet sich nicht im internen Netz, also wird der Traffic über den default Gateway des Users zur Firewall gesendet. Die richtige Lösung für dieses Problem ist ein "Split DNS" Server. Dies bedeutet, dass wenn ein interner DNS Server vorhanden ist ein "Forwarder" für "mydomain.ch" konfiguriert wird und für "mail.mydomain.ch" die IP Adresse zBsp "192.168.1.100" konfiguriert, welche die interne Adresse von "mail.mydomian.ch" darstellt. Ist kein interner DNS Server vorhanden kann die "Split DNS" Server Funktion auf einer FortiGate benutzt werden. Weitere Informationen können nachstehendem Artikel entnommen werden:
FortiGate:FAQ#Wie_kann_ich_auf_einer_FortiGate_einen_Split-DNS_Server_einrichten.3F
Kann / möchte man aus irgendwelchen Gründen KEIN "Split DNS" Server konfigurieren, so kann die Funktion "dnstranslation" angewendet werden. Diese Funktion steht im Zusammenhang mit dem "Session-Helper". Um eine "dnstranslation" zu implementieren gehe folgendermassen vor:
| Beispiel: |
|
| Schritt 1: |
|
Kontrolliere als Erstes ob für DNS (UDP) ein DNS Session-Helper existiert: # show system session-helper ................ edit 13 set name dns-udp set port 53 set protocol 17 ................ Ist der Session-Helper für DNS (UDP) nicht vorhanden, so konfiguriere diesen wie folgt: # config system session-helper # edit [Wähle einen Integer zB 20] # set name dns-udp # set port 53 # set protocol 17 # end NOTE Weitere Informationen über die Option "protocol" können folgendem Artikel entnommen werden: Allgemein:Assigned-Internet-Protocol-Numbers-RFC |
| Schritt 2: |
|
Als nächstes konfigurieren wir die "dnstranslation" gemäss unserem Beispiel: # config firewall dnstranslation # edit [Gebe einen Integer an zB "1"] # set dst [IPv4 Internal Adresse von mail.mydomain.ch "192.168.1.100"] # set netmask [Netmask für mail.mydomain.ch "255.255.255.255"] # set src [IPv4 Public Adresse von mail.mydomain.ch "212.59.153.125"] # end |
| Erklärung: |
|
Die Anfrage an den Public DNS Server, wie auch dessen Antwort werden wie folgt auf der FortiGate abgearbeitet: NOTE wie hier in diesem Beispiel gezeigt, kann die Funktion anhand "nslookup" getestet, und somit verifiziert werden ob die "dnstranslation" korrekt funktioniert! |
In diesem Sinne kann jede DNS Anfrage, welche über die FortiGate geht umgeschrieben werden. Natürlich ist diese Funktion nicht "nur" auf Public DNS Server beschränkt, sondern nur auf Port 53 DNS (UDP). Dies bedeutet, dass diese Funktion "dnstranslation" ebenfalls für temporäre Umleitungen im internen Bereich benutzt werden kann. Diese Funktion kann, oder sollte jedoch kein Split DNS Server ersetzen da die verschiedenen Einträge auf der FortiGate nicht ersichtlich sind.
DDNS
Wie kann ich DDNS debuggen?
# diagnose debug application ddnscd -1 # diagnose debug enable Um das Debug zu beenden: # diagnose debug disable # diagnose debug reset Beispiel: 1592256317: Start to update FortiGuardDDNS (sekinfw.float-zone.com) 1592256317: next wait timeout 10 seconds [111] __ssl_cert_ctx_load: Added cert /etc/cert/factory/root_Fortinet_Factory.cer, root ca Fortinet_CA, idx 0 (default) [111] __ssl_cert_ctx_load: Added cert /etc/cert/factory/root_Fortinet_Factory_Backup.cer, root ca Fortinet_CA_Backup, idx 1 [721] ssl_ctx_create_new_ex: SSL CTX is created [748] ssl_new: SSL object is created fgt_ddns_connect()-725: SSL connecting [621] __ssl_info_callback: before SSL initialization [621] __ssl_info_callback: SSLv3/TLS write client hello __ddns_ssl_connect()-651: ssl_res=1 [621] __ssl_info_callback: SSLv3/TLS write client hello [621] __ssl_info_callback: SSLv3/TLS read server hello [621] __ssl_info_callback: SSLv3/TLS read server certificate [645] __ssl_info_callback: Current cert idx 0, SSL verion 'TLS 1.2' [656] __ssl_info_callback: Got server cert chain, num 2 [664] __ssl_info_callback: Server root issuer /C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com [667] __ssl_info_callback: Client root issuer /C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=fortinet-ca2/emailAddress=support@fortinet.com [596] __ssl_switch_cert: Update with next cert, idx 1 [621] __ssl_info_callback: SSLv3/TLS read server key exchange [621] __ssl_info_callback: SSLv3/TLS read server certificate request [621] __ssl_info_callback: SSLv3/TLS read server done [621] __ssl_info_callback: SSLv3/TLS write client certificate [621] __ssl_info_callback: SSLv3/TLS write client key exchange [621] __ssl_info_callback: SSLv3/TLS write certificate verify [621] __ssl_info_callback: SSLv3/TLS write change cipher spec [621] __ssl_info_callback: SSLv3/TLS write finished __ddns_ssl_connect()-651: ssl_res=1 [621] __ssl_info_callback: SSLv3/TLS write finished [621] __ssl_info_callback: SSLv3/TLS read server session ticket [621] __ssl_info_callback: SSLv3/TLS read change cipher spec [621] __ssl_info_callback: SSLv3/TLS read finished __ddns_ssl_connect()-651: ssl_res=0 fgd_ddns_fcp_exchange()-860: Sending FCPC=Protocol=3.4|SerialNumber=FGT61FTK19000538|Firmware=FGT61F-FW-6.02-1066|Command=DDNSUpdate|DomainName=sekinfw.float-zone.com|Address=Automatic fgt_unpack_fcpr()-567: Unpacked obj: Protocol=3.4|SerialNumber=DDNS-R710-VM-01|ResponseStatus=1|Command=DDNSUpdate|DomainName=sekinfw.float-zone.com|Address=198.18.254.15 fgd_ddns_fcp_exchange()-891: Recvd FCPR=Protocol=3.4|SerialNumber=DDNS-R710-VM-01|ResponseStatus=1|Command=DDNSUpdate|DomainName=sekinfw.float-zone.com|Address=198.18.254.15 [201] __ssl_data_ctx_free: Done [1012] ssl_free: Done [193] __ssl_cert_ctx_free: Done [1022] ssl_ctx_free: Done [1003] ssl_disconnect: Shutdown fgd_ddns_extract_fcpr_rcode()-416: code=1 fgd_ddns_extract_fcpr_bound_ip()-446: Bound ip=198.18.254.15 1592256318: Succeed to update FortiGuardDDNS (sekinfw.float-zone.com ==> 198.18.254.15) |
DHCP
Wie kann ich eine Vendor DHCP Option auf einem WAN Interface konfigurieren?
Wenn ich die FortiGate an eine VDSL Leitung von der Swisscom anschliesse, bekommt die FortiGate die IP Adressen automatisch per DHCP auf das WAN Interface zugewiesen. Damit dies korrekt funktioniert ist es notwendig, dass man die DHCP Client Option Vendor ID der Swisscom auf dem WAN Interface konfiguriert. Seit FortiOS 6.4.0 ist dies möglich:
# config system interface # edit "[INTERFACE]" --> Interface Name # set mode dhcp # config client-options # edit 1 # set code [integer] --> DHCP Client Optionen 0-255 default Wert ist 0 # set type [hex | string | ip | fqdn] --> DHCP Client Option Typ default Wert ist hex # set value [Wert für DHCP Client Option] --> Wert für DHCP Client Option # end # end Für das Swisscom VDSL Setup mit DHCP Client Option 60 (Vendor ID) muss der String "100008,0001,fortigate" konfiguriert werden: # config system interface # edit "wan1" # set mode dhcp # config client-options # edit 1 # set code 60 # set type string # set value "100008,0001,fortigate" # end # end |
Vielen Dank an Daniel von IQantum GmbH
ARP
Wie kann ich im FortiOS einer FortiGate "ARP"-Einträge auflisten, hinzufügen oder löschen?
Um eine Liste der ARP-Einträge auf der FortiGate zu erhalten nutzt man den get system arp Befehl auf der CLI:
# get system arp Address Age(min) Hardware Addr Interface 10.60.60.10 0 48:8d:36:61:84:28 internal 10.60.60.100 0 1c:1b:0d:6a:27:80 internal 10.60.60.11 0 00:19:fd:4c:97:9b internal 10.60.100.10 0 70:4c:a5:89:01:48 dmz 10.60.60.101 0 1c:1b:0d:68:ff:94 internal 10.60.61.100 1 38:ca:da:b5:a1:db luz0002-prod 10.60.61.103 0 64:5d:86:fd:97:79 luz0002-prod 192.168.50.2 0 7c:b7:33:3b:a1:18 wan1 |
Die Position "Age(min)" im hier gezeigtem "output" zeigt die Zeit in Minuten welche verstrichen ist seit kein Traffic mehr für den entsprechenden "ARP" Eintrag stattgefunden hat. Wenn für einen entsprechenden "ARP" Eintrag kein Traffic stattgefunden hat während einer vordefinierte Zeit, so wir dieser "ARP" Eintrag auf "age out" gesetzt.
Eine weitere Möglichkeit "ARP" Einträge mit entsprechenden Details aufzulisten ist folgender Befehl: diagnose ip arp list
# diagnose ip arp list index=22 ifname=internal 10.60.60.10 48:8d:36:61:84:28 state=00000002 use=27 confirm=740 update=740 ref=3 index=22 ifname=internal 10.60.60.100 1c:1b:0d:6a:27:80 state=00000002 use=373 confirm=2004 update=2004 ref=8 index=22 ifname=internal 10.60.60.11 00:19:fd:4c:97:9b state=00000008 use=1 confirm=2847 update=204 ref=4 index=7 ifname=dmz 10.60.100.10 70:4c:a5:89:01:48 state=00000002 use=2 confirm=671 update=671 ref=2 index=22 ifname=internal 10.60.60.101 1c:1b:0d:68:ff:94 state=00000002 use=457 confirm=87 update=87 ref=7 index=20 ifname=luz0002-prod 10.60.61.100 38:ca:da:b5:a1:db state=00000004 use=39878 confirm=39878 update=618 ref=1 index=20 ifname=luz0002-prod 10.60.61.103 64:5d:86:fd:97:79 state=00000002 use=2 confirm=2607 update=2607 ref=2 index=5 ifname=wan1 192.168.50.2 7c:b7:33:3b:a1:18 state=00000002 use=4 confirm=119 update=1416 ref=48 Infos wie man diesen Output interpretiert: Welche Inforamtionen bekomme ich aus der ARP Liste? |
Wenn sehr viele "ARP" Einträge auf verschiedenen Interface's exisiteren, und man einen spezifischen Eintrag sucht sollte im Zusammenhang mit dem "diagnose" Kommando "grep" benutzt werden:
# diagnose ip arp list | grep 10.60.60.100 index=22 ifname=internal 10.60.60.100 1c:1b:0d:6a:27:80 state=00000004 use=2968 confirm=6101 update=594 ref=9 |
Weitere Informationen dazu wie "grep" benutzt wird siehe nachfolgenden Artikel:
FortiGate:FAQ#Kann_ich_in_der_CLI_meinen_Output_nach_bestimmten_W.C3.B6rter_filtern.3F
Anhand dieses Kommando "diagnose" lässt sich ein "ARP" Eintrag "temporär" hinzufügen oder löschen. Das hinzufügen eines "ARP" Eintrages anhand des "diagnose" Kommandos ist nicht "persistent". Dies bedeutet wenn ein Neustart der FortiGate ausgeführt wird geht diese Konfiguration verloren:
|
Füge einen "ARP" Eintrag "temporär" hinzu # diagnose ip arp add [Interface Name zBsp "internal"] [IPv4 Adresse für den ARP Eintrag] [MAC Adresse für den ARP Eintrag XX:XX:XX:XX:XX:XX] Lösche einen "ARP" Eintrag # diagnose ip arp delete [Interface Name zB "internal"] [IPv4 Adresse für den ARP Eintrag] |
Möchte man einen permanenten "ARP" Eintrag konfigurieren, welcher auch nach einem Neustart der FortiGate aktiv bleibt, muss diese Konfiguration anhand der "arp-table" durchgeführt werden. Dies wird wie folgt konfiguriert:
# config system arp-table # edit [Gebe einen entsprechenden Integer an zBsp "1"] # set interface [Name des Interfaces zBsp "wan1"] # set ip [IPv4 Adresse für den ARP Eintrag] # set mac [MAC Adresse für den ARP Eintrag zBsp für "wan1"] # end |
Um die entsprechende MAC Adresse eines Interfaces zu eruieren, können folgende Behehle ausgeführt werden:
| Konfiguration über CLI: |
# diagnose hardware deviceinfo nic
The following NICs are available:
dmz
internal1
internal2
internal3
internal4
internal5
internal6
internal7
wan1
wan2
# diagnose hardware deviceinfo nic wan1
Driver Name :Fortinet NP4Lite Driver
Version :1.0.0
Admin :up
Current_HWaddr 08:5b:0e:47:db:58
Permanent_HWaddr 08:5b:0e:47:db:58
Status :up
Speed :100
Duplex :Half
Host Rx Pkts :11371
Host Rx Bytes :835610
Host Tx Pkts :16174
Host Tx Bytes :2043274
Rx Pkts :11370
Rx Bytes :994717
Tx Pkts :16168
Tx Bytes :1883038
rx_buffer_len :2048
Hidden :No
cmd_in_list : 0
promiscuous : 1
enabled 802.1x : 0
authorized : 0
mac bypass : 0
|
Wenn die "ARP" Informationen auf den neusten Stand gebracht werden sollen so muss ein "flush" ausgeführt werden. Dies bedeutet: Alle "dynamischen" ARP Einträge werden gelöscht und neu durch "who-as" gelernt. Somit wird gewährleistet, dass nicht mehr verbundene Devices aus der "ARP" Tabelle gelöscht werden. Um ein "flush" durchzuführen gebe auf der CLI folgendes ein:
# execute clear system arp table |
Wenn dies durchgeführt wird kann über das "sniffer" Kommando das "neu lernen" der "ARP" Einträge mitverfolgt werden:
# diagnose sniffer packet any arp interfaces=[any] filters=[arp] 0.682098 arp who-has 198.18.3.3 tell 198.18.3.1 0.682251 arp reply 198.18.3.3 is-at 8:5b:e:5d:f7:c |
Was ist der Unterschied zwischen den Funktionen "system arp-table" und "proxy-arp?
Wenn im FortiOS auf dem externen Interface, zBsp "wan1" ein public IP Range konfiguriert wird, sei es über statische und/oder dynamischer Konfiguration, und zu diesem konfigurierten public IP Range eine neuer public IP Range dazu konfiguriert werden soll, hat man verschiedenen Möglichkeiten dies vorzunehmen. Eine Möglichkeit ist, den neuen public IP Range auf dem externen Interface als "Secondary Interface" zu konfigurieren. Dadurch wird der neue public IP Range auf dem Secondary Interface zur MAC Adresse des Interface hinzugefügt auf dem die "Secondary Interface" Konfiguration durchgeführt wird. Eine andere Möglichkeit ist ein VIP Objekt zu erstellen. Durch die Erstellung eines VIP Objekts wird durch die Option "arp-reply enable" auf Layer 4 ein entsprechender ARP Eintrag anhand der MAC Adresse durchgeführt, das Interface das im VIP Objekt konfiguriert wird. Da dieser ARP Eintrag auf Layer 4 durch "arp-reply enable" konfiguriert wird, ist dieser ARP Eintrag auf Layer 3 anhand des Kommandos "get system arp" nicht ersichtlich. Wiederum eine andere Möglichkeit ist ein statischer ARP Eintrag mittels "system arp-table" zu erstellen. Alle diese Möglichkeiten haben das Ziel anhand der MAC Adressen den zusätzlichen public IP Range auf das entsprechende Interface zu binden. Wenn jedoch der neue public IP Range nicht auf dem externen Interface verwendet wird, sondern zBsp lediglich auf dem "dmz" Interface für eine Public IP Adressierung der Server, muss dem externen Interface mitgeteilt werden, dass dieses "dmz" Interface für diesen neuen IP Range zuständig ist. Dies da dieser public IP Range auf das externe Interface, zBsp "wan1" geroutet wird. Wird dies mit einem statischen ARP Eintrag in der "system arp-table" auf dem externen Interface durchgeführt, wird der Traffic nicht auf das "dmz" Interface weitergeleitet da das FortiOS davon ausgeht, dass sich der neue public IP Range auf dem externen Interface, zBsp "wan1" befindet. In so einem Fall wird ein "system proxy-arp" erstellt dh., es wird dem FortiOS durch einen "system proxy-arp" Konfiguration mitgeteilt, dass die Zuständigkeit einer oder mehrer public IP/s sich nicht mehr auf dem externe Interface befindet, wie zBsp "wan1" sondern auf dem "dmz" Interface. Dies bedeutet: Das FortiOS nimmt den/die neue/n public IP Range/s auf dem externen Interface an und leitet diesen an das Interface gemäss der Konfiguration "system proxy-arp" weiter. Diese Art der Implementierung wird auch "IP Adresse zu MAC Adress Translation" genannt! Um einen "system proxy-arp" zu konfigurieren muss über CLI folgendes durchgeführt werden:
| Konfiguration über CLI: |
# config system proxy-arp # set interface [Namen des Externes Interface zB "wan1"] # set ip [Public IPv4 Adresse des Servers im DMZ] # set end-ip [Public IPv4 End Adresse des Servers im DMZ] # end |
Im FortiOS kann anhand der Option "end-ip" die End Adresse des Public IP Ranges definiert werden. Diese steht im Zusammenhang mit der Option "ip" dh., es wird nur die Iption "ip" benutzt und so gilt nur diese Konfiguration einer IPv4 Adresse. Wird "end-ip" definiert gilt die Option "ip" als Start Adresse des IPv4 Adress Definition.
Welche Informationen bekomme ich aus der ARP Liste?
Bei der Fehlerbehebung von bestimmten Verbindungsproblemen ist es erforderlich zu schauen was im Layer 2 so passiert. Mit dem Befehl diagnose ip arp listkann die im Cache befindliche ARP Liste auf der FortiGate angezeigt werden. In dieser Liste können diverse Details entnommen werden.
| Konfiguration über CLI: |
# diagnose ip arp list 1.) index=9 ifname=port1 198.18.0.162 04:d5:90:36:e6:62 state=00000002 use=25 confirm=1552 update=1552 ref=10 2.) index=37 ifname=vdom-wan1 192.168.1. 8c:59:c3:cb:14:2b state=00000004 use=6473 confirm=12473 update=4584 ref=0 3.) index=9 ifname=port1 198.18.0.47 state=00000000 use=31279 confirm=37279 update=31279 ref=1 4.) index=9 ifname=port1 198.18.0.13 00:50:56:b6:08:b9 state=00000008 use=25 confirm=2072 update=181 ref=27 5.) index=4 ifname=mgmt2 169.254.0.2 90:6c:ac:17:a2:82 state=00000080 use=623303789 confirm=623303770 update=623303770 ref=0 6.) index=19 ifname=ssl.root 0.0.0.0 state=00000040 use=1047885 confirm=1053885 update=1047885 ref=2 1.) ARP Anfrage ist empfangen worden: index=9 ifname=port1 198.18.0.162 04:d5:90:36:e6:62 state=00000002 use=25 confirm=1552 update=1552 ref=10 2.) ARP Antwort wird nicht innerhalb der erwartenden Zeit empfangen: index=37 ifname=vdom-wan1 192.168.1. 8c:59:c3:cb:14:2b state=00000004 use=6473 confirm=12473 update=4584 ref=0 3.) Pseudozustand, der verwendet wird, während ein ARP-Eintrag anfänglich erstellt wird oder kurz bevor er entfernt wird: index=9 ifname=port1 198.18.0.47 state=00000000 use=31279 confirm=37279 update=31279 ref=1 4.) Verzögerte ARP Anfrage: index=9 ifname=port1 198.18.0.13 00:50:56:b6:08:b9 state=00000008 use=25 confirm=2072 update=181 ref=27 5.) Statisch konfigurierter ARP-Eintrag: index=4 ifname=mgmt2 169.254.0.2 90:6c:ac:17:a2:82 state=00000080 use=623303789 confirm=623303770 update=623303770 ref=0 6.) Device unterstützt kein ARP hier ssl-vpn Interface: index=19 ifname=ssl.root 0.0.0.0 state=00000040 use=1047885 confirm=1053885 update=1047885 ref=2 |
In der folgenden Tabelle sehen wir die verschiebenen Staten der ARP Einträge. Damit man sie besser oben zuordnen kann, sind sie verschieden farbig markiert.
|
Parameter Tabelle diagnose ip arp list | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Parameter |
Bedeutung | |||||||||||||||||||||||||||||||||
|
index |
Index des entsprechenden Interfaces auf der FortiGate. | |||||||||||||||||||||||||||||||||
|
ifname |
Name des Interfaces | |||||||||||||||||||||||||||||||||
|
X.X.X.X |
Dies ist die IP-Adresse des Nachbardevices, welches an das entsprechende Interface angeschlossen ist. | |||||||||||||||||||||||||||||||||
|
00:00:00:00:00:00 |
Dies ist die MAC-Adresse, die der obigen IP-Adresse entspricht. | |||||||||||||||||||||||||||||||||
|
state |
| |||||||||||||||||||||||||||||||||
|
use |
ist die Anzahl der Sekunden seit dem letzten Mal, als der ARP-Eintrag verwendet wurde, um den MAC an ein Egress-Paket anzuhängen. | |||||||||||||||||||||||||||||||||
|
confirm |
ist die Anzahl der Sekunden, seit der ARP-Eintrag in den Zustand CONNECTED übergegangen ist, was im Allgemeinen bedeutet, dass er nun REACHABLE ist (dies gilt jedoch auch für PERMANENT- und NOARP-Einträge). | |||||||||||||||||||||||||||||||||
|
update |
Ist die Anzahl der Sekunden seit der letzten Aktualisierung des Eintrags. Allgemeinen bedeutet dies den Zeitpunkt, an dem die letzte ARP-Antwort empfangen wurde. | |||||||||||||||||||||||||||||||||
|
ref |
Gibt an, wie oft der ARP-Eintrag zur Weiterleitung eines eingehendem Pakets verwendet wurde. | |||||||||||||||||||||||||||||||||
Routing
Wie funktioniert das Routing auf einer FortiGate?
Beim Routing entscheidet die FortiGate, welche im NAT-Modus betrieben wird, wohin die Pakete gesendet werden sollen, die empfangen oder durch die FortiGate selber erzeugt werden.
Alle Netzwerkgeräte, die ein Routing durchführen, besitzen eine Routingtabelle. Eine Routingtabelle enthält eine Reihe von Regeln. Jede Regel gibt den nächsten Hop an, der das endgültige Ziel des Pakets sein kann, oder auch an einen nächsten Hop geht. Jeder Routing-Hop im gerouteten Pfad erfordert eine Routingtabellensuche (Routing Lookup), um das Paket weiterzuleiten, bis dies das endgültige Ziel erreichen kann.
Beim Routing von Paketen findet die FortiGate zunächst eine passende Route in ihrer Routing-Liste, basierend auf der Zieladresse des Pakets. Bei dieser Übereinstimmung wertet die FortiGate die gesamte Routingtabelle aus, um die spezifischste Übereinstimmung zu finden, bevor eine Route ausgewählt wird. Wenn die FortiGate mehrere Übereinstimmungen findet, verwendet sie verschiedene Routenattribute, um die beste Route zu ermitteln.
Die richtige Routing-Konfiguration ist wichtig. Wenn Routen falsch konfiguriert sind, erreichen die Pakete ihr Ziel nicht und gehen verloren.
Standardmässig sind viele Aspekte auf FortiGate "stateful". So entscheidet die FortiGate viele Dinge zu Beginn einer Session, also dann, wenn sie das erste Paket erhält.
Für jede Session führt die FortiGate zwei Routing-Lookups durch:
- Für das erste vom Absender gesendete Paket
- Für das erste Antwortpaket, das vom Responder kommt
Nach diesen beiden Lookups schreibt die FortiGate die Routinginformationen in ihre Session-Tabelle. Alle folgenden Pakete werden gemäss Session-Tabelle, und nicht nach der Routingtabelle weitergeleitet. So werden alle Pakete, welche zur gleichen Session gehören dem gleichen Pfad zugewiesen, auch nach einer Änderung der statischen Routen. Es gibt jedoch eine Ausnahme dieser Regel. Wenn es eine Änderung in der Routingtabelle gibt, entfernt die FortiGate die Routeninformationen für die Session Tabelle, und dann führt sie eine zusätzliche Routingtabellen des Lookups durch, um diese Informationen wiederherzustellen.
Eine Methode der manuell konfigurierten Routen ist die statische Route. Wenn man eine statische Route konfiguriert, wird der FortiGate mitgeteilt: "Wenn du ein Paket siehst, dessen Ziel innerhalb eines bestimmten Bereichs liegt, sende dies über ein bestimmtes Netzwerkinterface an einen bestimmten Router". Man kann auch die Distanz und die Priorität so konfigurieren, dass die FortiGate die beste Route zu jedem Ziel ermitteln kann, welche mehreren Routen entspricht.
In einfachen Heimnetzwerken ruft beispielsweise DHCP automatisch eine statische Route ab und konfiguriert diese selbstständig. Das Modem des ISPs sendet dann den gesamten ausgehenden Datenverkehr über dessen Internet-Router, welcher die Pakete an ihr Ziel weiterleitet. Dies wird typischerweise als Standard-Route bezeichnet, da der gesamte Traffic, der nicht mit anderen Routen übereinstimmt, standardmässig über diese Route geleitet wird. Hier ein Beispiel einer Standardroute:
Das Ziel-Subnetzwert von 0.0.0.0.0.0/0.0.0.0.0 passt zu allen Adressen innerhalb eines Subnetzes. Da die meisten FortiGates als Perimeter-Gerät des Netzwerkes fungieren, verfügen über mindestens eine dieser Standardrouten. Damit wird sichergestellt, dass der Internettraffic an den ISP weitergeleitet wird.
Subnetze welche auf der FortiGate über eine direkt Layer 2 Konnektivität verfügen benötigen keine statische Route.
Jede Route in einer Routingtabelle hat folgende Attribute:
- Network
- Gateway IP
- Interfaces
- Distance
- Metric
- Priority
Distanz:
Die Distanz, resp. die administrative Distanz ist eine Zahl, die von Routern verwendet wird, um zu bestimmen, welche Route für ein bestimmtes Ziel bevorzugt wird. Wenn es zwei Routen zum gleichen Ziel gibt, wird jene mit der geringeren Distanz als besser angesehen und für die Routenführung verwendet. Die Routen mit grösseren Entfernungen sind inaktiv und werden nicht in die Routingtabelle aufgenommen.
Standardmässig haben Routen, die über das RIP-Protokoll gelernt wurden, einen höheren Distanzwert als Routen, die über das OSPF-Protokoll gelernt wurden. Dabei gilt das OSPF-Protokoll als genauer als das RIP.
Die folgenden Werte sind die Distanzen auf einer FortiGate:
0 - direkt angeschlossen
5 - DHCP-Gateway
20 - externe BGP (EBGP) Routen
200 - interne BGP (IBGP) Routen
110 - OSPF-Routen
120 - RIP-Routen
10 - statische Routen
Metric:
Das Metric Attribut wird verwendet, um die beste Route zu einem Ziel zu bestimmen, wenn es um Routen geht, welche durch ein dynamisches Routing-Protokoll gelernt wurden. Wenn zwei Routen den gleichen Abstand haben, wird der metrische Wert verwendet um das Band zu brechen. Für das Routing wird die Route mit der niedrigsten Metric gewählt.
Wie der Metric-Wert gemessen wird, hängt vom Routing-Protokoll ab. Zum Beispiel verwendet RIP die Hop Count, d.h. die Anzahl der Router, die das Paket durchlaufen muss, um das Ziel zu erreichen. OSPF verwendet Kosten, die sich danach richten, wie viel Bandbreite eine Verbindung zu Verfügung hat.
Priorität:
Wenn mehrere statische Routen den gleichen Distanzwert haben, sind beide in der Routingtabelle aktiv. Welche Route wird also verwendet, um passende Pakete zu routen? In diesem Szenario verwendet die FortiGate den Prioritätswert als Tiebreaker, um die beste Route zu ermitteln. Routen mit geringerer Priorität werden stets bevorzugt.
Das Prioritätsattribut gilt nur für statische Routen und wird unter den erweiterten Optionen auf der Benutzeroberfläche konfiguriert. Standardmässig haben alle statischen Routen eine Priorität von 0.
Was bedeutet der Begriff "ECMP" beim Routing?
Im Normallfall wird die Beste Route anhand von Routenattributen ermittelt, welche durch das Routing zu Verfügung gestellt werden. (Metric, Distanz, Priorität ..) Was passiert also, wenn zwei oder mehrere Routen zur gleichen Destination die gleichen Werte für alle Attribute besitzen? Wenn mehrere Routen zum gleichen Ziel die gleiche Distanz, Metric und Priorität haben, gelten sie alle als der beste Kandidat. Wenn die Routen statisch, OSPF oder BGP sind, gleicht die FortiGate die Last des Traffics über alle Routen aus. Dies wird als Equal Cost Multi-Path (ECMP) bezeichnet.
ECMP kann den Ausgleichstraffic mit einer dieser vier Methoden behandeln:
- Source IP (default)
- Source-Destination IP
- Weighted
- Usage (spillover)
|
Source IP Based: |
|
Session können je nach Source IP Adresse, Source und Destination IP Adressen Routen oder Gewichtung des Interfaces, oder Interface Sitzungen können je nach Quell-IP-Adresse, Quell- und Ziel-IP-Adresse, Routen- oder Interfacegewicht oder Interfacevolumenschwellwert auf gleiche Routen verteilt werden. |
|
Source-Destination IP Based: |
|
Die Source-Destination-IP-Methode funktioniert ähnlich, berücksichtigt aber auch die Destination IP. Es wird also erwartet, dass die Session von einer bestimmten Source zu einer bestimmten Destination den gleichen Pfad verwenden. |
|
Weight Based: (Gewichtung) |
|
Wenn die ECMP Methode auf weighted konfiguriert ist, verteilt die FortiGate die Sessions mit verschiedenen Destination IPs, indem sie einen Zufallswert erzeugt um die zu wählende Route zu bestimmen. Die Wahrscheinlichkeit eine Route über eine andere auszuwählen basiert auf dem Weight Wert jeder Route oder Interface. Es ist wahrscheinlicher, dass höhere Weights gewählt werden. |
|
Spillover (Usage Based) |
|
Es gibt eine zusätzliche Methode namens usage-based (oder spillover). Beim nutzungsabhängigen Lastausgleich verwendet die FortiGate eine primäre Route, bis ein Schwellenwert des Verkehrsaufkommens erreicht ist; danach verwendet es die nächste verfügbare Route. |
|
Wenn eine der ECMP-Routen ausfällt, und aus der Routingtabelle entfernt wird, wird der Traffic über die restlichen Routen geleitet. |
Die FortiGate verwendet source-ip-based als Standard-ECMP-Methode. In der CLI kann die gewünschte Methode konfiguriert werden:
|
Source IP Based: |
# config system settings # set v4-ecmp-mode source-ip-based # end |
|
Source-Destination IP Based: |
# config system settings # set v4-ecmp-mode source-dest-ip-based # end |
|
Weight Based: (Gewichtung) |
# config system settings # set v4-ecmp-mode weight-based # end Auf den Interfaces muss die Gewichtung konfiguriert werden: # config system interface # edit [INTERFACE_NAME] # set weight [Wert definieren zwischen 0 und 255] # end Gewichtung muss pro Route definiert werden: # config router static # edit [ROUTEN-ID] # set weight [Wert definieren zwischen 0 und 255] # end |
|
Spillover (Usage Based) |
# config system settings # set v4-ecmp-mode usage-based # end Für Spillover-ECMP müssen die Spillover-Schwellenwerte per Interface konfiguriert werden: # config system interface # edit [INTERFACE_NAME] # set spillover-threshold [Wert zwischen 0 und 16776000 definieren] |
BEISPIEL:
In diesem Szenario hat die FortiGate zwei gleichwertige Kandidatenrouten für das Subnetz 192.168.4.0/24 mit Port1 bzw. Port2. Unter Verwendung der standardmässig Sourcebasierten ECMP-Methode kann die FortiGate einen der beiden Wege nutzen, um Datentraffic für das Subnetz 192.168.4.0/24 von Benutzer A und Benutzer B zu liefern. Wenn Port1 die Verbindung verliert, verwendet die FortiGate automatisch Port2, um den gesamten Datentraffic für das Subnetz 192.168.4.0/24 zu liefern.
ECMP ermöglicht es uns, mehrere Links für dasselbe Ziel zu verwalten und ein integriertes Failover bereitzustellen. Dies kann für alle Netzwerkressourcen bereitgestellt werden welche eine hohe Bandbreitenanforderungen haben und unternehmenskritisch sind. Die Verwendung von ECMP für diese Ressourcen ermöglicht es uns, die verfügbare Bandbreite mehrerer Links zu aggregieren und den Lastausgleichstraffic über diese Links zu verteilen.
Wenn wir ECMP verwenden, müssen wir über die richtigen Firewallregeln verfügen, damit der Datentraffic alle am ECMP beteiligten Interfaces verlassen kann. Während wir ECMP verwenden können, um mehrere Internet-(WAN)-Verbindungen auf der FortiGate zu verwalten, kann es effizienter sein, die softwaredefinierte WAN-Funktion (SD-WAN) zu verwenden, um dies zu erreichen. Wir können ECMP weiterhin für interne Ressourcen verwenden.
# get router info routing-table all
S 192.168.4.0/24 [10/0] via 192.168.1.254, port1, [5/0]
192.168.4.0/24 [10/0] via 192.168.2.254, port1, [5/0]
C 192.168.1.0/24 is directly connected, port1
C 192.168.2.0/24 is directly connected, port2
C 192.168.3.0/24 is directly connected, port3
Wie funktioniert das "Reverse Path Forwarding" auf der FortiGate (Antispoofing)?
Pakete werden manchmal aus Routing- oder/und Sicherheitsgründen gelöscht. Reverse Path Forwarding (RPF) ist ein Mechanismus der FortiGate welcher das Netzwerk vor IP-Spoofing-Angriffen schützt. Dabei wird überprüft, ob es eine Route zurück zur Destination des Paketes gibt. Diese Prüfung wird auf dem ersten Paket einer neuen Session durchgeführt. Ebenso wird diese Prüfung nach einer Routenänderung auf dem nächsten Paket in der ursprünglichen Richtung ausgeführt.
Es gibt zwei RPF-Methoden:
- Loose
- Strict
Veranschauungsbeispiel:
| Beschreibung |
|
In diesem Szenario wird der eingehende Internetverkehr, welcher bei wan1 ankommt akzeptiert, da die Standardroute eine gültige Route zurück zur Source ist. Es gibt jedoch zwei Interfaces welche eingehenden Datentraffic nicht weiterleiten: port1 und wan2. Port1 wird den Datentraffic nicht weiterleiten, da das Subnetz für Benutzer C 192.168.4.0/24 ist. Es gibt keine aktive Route für dieses Subnetz via Port1. So wird der Datentraffic von 192.168.4.0.0/24 zu Port1 eingestellt, weil dieser bei der RPF-Prüfung fehlgeschlagen ist. Das andere Interface, welches den Datentraffic nicht weiterleitet, ist wan2. Während wan2 physisch mit dem Internet verbunden ist, sind die einzigen IP-Adressen, welche als Sourcen oder Destinationen für wan2 gelten jene im Subnetz 198.18.2.0/24. So wird der eingehende Datentraffic einer anderen Source nicht durch die RPF-Prüfung geleitet und umgehend gelöscht. # get router info routing-table all S* 0.0.0.0/0 [10/0] via 198.18.1.254, wan1 C 198.18.1.0/24 is directly connected, wan1 C 198.18.2.0/24 is directly connected, wan2 C 192.168.3.0/24 is directly connected, port1 |
| Diagramm |
|
|
So fixen wir das Problem:
| Beschreibung |
|
Das erste Problem wird behoben indem eine statische Route zu 10.0.4.0.0/24 über Port1 hinzugefügt wird. Wenn die FortiGate nun die RPF-Prüfung für die Pakete von Benutzer C ausführt, findet diese eine aktive Route zu diesem Subnetz über Port1 und das Paket wird akzeptiert. Das zweite Problem wird ebenfalls gelöst indem eine statische Route hinzugefügt wird. In diesem Fall ist es eine Standardroute für wan2. Diese zweite Standardroute muss die gleiche Distanz aufweisen wie jende für wan1. Damit wird sichergestellt, dass beide Routen in der Routingtabelle aktiv sind. Beide können unterschiedliche Prioritäten haben, aber sie müssen die gleiche A haben, um aktiv zu sein. In diesem Beispiel wurden zwei Routen mit gleicher Distanz, aber unterschiedlicher Priorität konfiguriert. Eine Route ist also die bessere (jene mit der niedrigsten Priorität), aber beide sind aktiv. Die beste Route wird für den ausgehenden Traffic verwendet, aber beide können eingehende Traffic empfangen, ohne die RPF-Prüfung zu durchlaufen. # get router info routing-table all
S* 0.0.0.0/0 [10/0] via 198.18.1.254, wan1
[10/0] via 198.18.2.254, wan2, [5/0]
S 192.168.4.0/24 [10/0] via 10.0.3.254, port1
C 198.18.1.0/24 is directly connected, wan1
C 198.18.2.0/24 is directly connected, wan2
C 192.168.3.0/24 is directly connected, port1
|
| Diagramm |
|
|
Das RPF kann entweder stricte oder loose durchgesetzt werden.
Im loose Modus wird das Paket akzeptiert solange ein aktiver Weg zur Source-IP über das eingehende Interface besteht. Es muss nicht die beste, sondern lediglich eine aktive Route sein.
Im Strict Modus überprüft die FortiGate ob der beste Weg zur Source-IP-Adresse über das eingehende Interface führt. Die Route muss entgegen dem "loose Modus" nicht nur aktiv sein, sondern auch die beste.
Die RPF-Prüfung kann auf zwei Arten deaktiviert werden. Wenn man das asymmetrische Routing aktiviert, wird die RPF-Prüfung systemweit deaktiviert. Dies reduziert jedoch die Sicherheit des gesamten Netzwerks erheblich. Funktionen wie Antivirus und IPS werden wirkungslos. Wenn man also die RPF-Prüfung deaktivieren muss, kann man dies auf der Interface-Ebene mit folgenden Befehlen vornehmen:
| Loose RPF |
|
Defaultmässig ist die FortiGate im Loose Mode # config system interface # edit [INTERFACE_NAME] # set src-check disable # end Global in den System Settings: # config system setting # set strict-src-check disable # end |
| Strict RPF |
|
Per Interfaces: # config system interface # edit [INTERFACE_NAME] # set src-check enable # end Global in den System Settings: # config system setting # set strict-src-check enable # end |
| Beispiel 1 | ||
|
In diesem Beispiel sendet der Host 10.0.4.1 ein SYN-Paket an 10.0.1.2, spooft aber eine Quell-IP von 10.0.1.1. Dadurch scheint das Paket aus dem internen Netzwerk hinter Port1 initiiert zu werden. Lose RPF erlaubt diesen Traffic, da die aktive Route auf wan1 eine Standardroute (0.0.0.0.0.0/0) ist. Anschlissßend würde 10.0.1.2 (Benutzer B) das SYN/ACK-Paket an das reale Gerät mit der IP-Adresse 10.0.1.1.1 (Benutzer A) senden. Da 10.0.1.1.1 (Benutzer A) keine SYN/ACK-Pakete erwartet (weil dieser zuvor kein SYN-Paket an 10.0.1.2 gesendet hat), antwortet er mit einem RST-Paket (Reset). | ||
| Beispiel 2 | ||
|
In diesem Beispiel sendet der Host 10.0.4.1 ein SYN-Paket an 10.0.1.2, spooft aber eine Source-IP von 10.0.1.1. Dadurch scheint das Paket aus dem internen Netzwerk hinter Port1 initiiert zu werden. Loose RPF erlaubt diesen Traffic, da die aktive Route auf wan1 eine Standardroute (0.0.0.0.0.0/0) ist. Was passiert aber im gleichen Szenario, wenn Strict RPF verwendet wird?
Obwohl das stricte RPF sicherer ist, kann dies bei Verwendung des dynamischen Routings zu Fehlalarmen führen. Dynamische Routen können sich schnell ändern, und sie können die FortiGate veranlassen, legitimierte Pakete jedes Mal zu verwerfen sobald sich die bevorzugte Route ändert. Im Allgemeinen wird empfohlen loose RPF in Kombination mit Firewallregeln zu verwenden. So kann gefälschter Datenverkehr blockiert werden anstelle strict RPF zu diesem Zweckzu verwenden. |
Wie wird auf einer FortiGate das Routing abgearbeitet?
Dieser Artikel beschreibt wie die FortiGate das Routing abarbeitet und selektiert was heisst, welches Routing zuerst greift (wie zum Beispiel Cache, Policy Routen usw.). Wenn verschiedene Routings verwendet werden zum Beispiel Policy Route (Layer 4), Distanz (Layer 3) ist es wichtig zu wissen, wie diese Routings abgearbeitet werden. In der folgenden Liste kann entnommen werden, wie die FortiGate das Routing generell abarbeitet (Abarbeitung von oben nach unten)
- 0) Routing Cache
- 1) Policy Route
- 2) Longest Match
- 3) Distance
- 4) Priority
- 5) Metric (Dynamisches Routing)
- 6) ECMP (Equal Cost Multiple Path)
|
Ein FortiOS resp. eine FortiGate im "Transparent Mode" aggiert wie eine Bridge und leitet den Traffic im Layer-2 weiter. Dies bedeutet dass Ethernet-Packetebasierend deren "MAC Adressen" abgearbeitet werden und "nicht" anhand deren IP's. |
Wie der "cache" eines Routing eingesehen und auf den neusten Stand gebracht werden kann kann nachfolgendem Artikel entnommen werden: Routing Cache anzeigen
Nachfolgendes Diagramm zeigt wie ein "lookup" in Zusammenhang mit den verschiedenen "Routing Tabellen" durchgeführt wird:
|
Dieses Diagramm zeigt auf dass verschiede "Routing Tabellen" existieren welche für die verschieden eingesetzten Routing Technologien wie Policy Route, Cache, Statische Route usw. entscheidend sind. Die Informationen dieser "Routing Tabellen" spielen somit eine entscheidende Rolle ob ein Routing selektiert wird oder nicht! Diagramm: |
Wie kann ich auf einer FortiGate die Routing-Tabelle ansehen?
Wenn ich ab dem FortiOS 5.4 die Routing-Tabelle auf einer FortiGate ansehen möchte, so muss folgendes beachtet werden. Es besteht die Möglichkeit die aktiven Routen in der Routing-Tabelle anzuschauen (nur Routen die momentan aktiv sind). Es gibt auch ein Befehl, mit welchem ich alle Routen sehen kann, welche in der Routing-Tabelle eingetragen sind (aktive, und auch inaktive Routen).
Über das WebGui kann ich nur die aktive Routing-Tabelle anschauen:
|
Routing-Tabelle im WebGui für FortiOS Versionen 5.6/6.0/6.2: Über das WebGui kann ich nur die aktive Routing-Tabelle anschauen: Gehe auf Monitor -> Routing Monitor Routing-Tabelle im WebGui ab FortiOS Version 6.4: Menu Dashboard -> Network und dann beim Widget Static & Dynamic Routing auf die Grafik klicken Nun sieht man die Routing-Tabelle im Diagramm und in aufgelisteter Form. |
In der CLI ist die FortiOS Version nicht relevant, da ist der Syntax bei allen gleich:
|
Um auf der CLI nur die "aktiven" Routing-Einträge aufzulisten kann folgender Befehl ausgeführt werden: # get router info routing-table all
Routing table for VRF=0
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default
S* 0.0.0.0/0 [10/0] via 217.193.240.161, vdom-wan1
S 172.16.10.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S 172.16.20.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S 172.16.30.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S 172.16.40.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S 172.16.99.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
C 198.18.0.0/27 is directly connected, port1
S 198.18.0.40/29 [10/0] via 198.18.0.142, sg0e0-dmz0
S 198.18.0.48/29 [10/0] via 198.18.0.142, sg0e0-dmz0
C 198.18.0.128/30 is directly connected, sg0e0-cisco0
C 198.18.0.136/30 is directly connected, sg0e0-hp0
C 198.18.0.140/30 is directly connected, sg0e0-dmz0
S 198.18.0.160/28 [10/0] via 198.18.0.142, sg0e0-dmz0
S 198.18.0.176/28 [10/0] via 198.18.0.142, sg0e0-dmz0
S 198.18.0.192/28 [10/0] via 198.18.0.142, sg0e0-dmz0
S 198.18.1.0/24 [10/0] via 198.18.0.130, sg0e0-cisco0
S 198.18.3.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
C 198.18.4.0/24 is directly connected, sg0-e-link-lan
S 198.18.10.0/25 [10/0] is directly connected, ssl.root
S 198.18.11.0/25 [10/0] is directly connected, ssl.root
S 198.18.13.0/25 [10/0] is directly connected, ssl.root
S 198.18.13.128/25 [10/0] is directly connected, ssl.root
C 217.193.240.160/29 is directly connected, vdom-wan1
|
Wenn ich die gesamte Routing-Tabelle sehen möchte (aktive und inaktive Routen) kann ich die Routing Datenbank wie folgt abfragen:
(Routen welche mit * markiert sind, sind aktive Routen)
|
Konfiguration über CLI: get router info routing-table database |
# get router info routing-table database
Routing table for VRF=0
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
> - selected route, * - FIB route, p - stale info
S *> 0.0.0.0/0 [10/0] via 217.193.240.161, vdom-wan1
S *> 172.16.10.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S *> 172.16.20.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S *> 172.16.30.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S *> 172.16.40.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
S *> 172.16.99.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
C *> 198.18.0.0/27 is directly connected, port1
S *> 198.18.0.40/29 [10/0] via 198.18.0.142, sg0e0-dmz0
S *> 198.18.0.48/29 [10/0] via 198.18.0.142, sg0e0-dmz0
C *> 198.18.0.128/30 is directly connected, sg0e0-cisco0
C *> 198.18.0.136/30 is directly connected, sg0e0-hp0
C *> 198.18.0.140/30 is directly connected, sg0e0-dmz0
S *> 198.18.0.160/28 [10/0] via 198.18.0.142, sg0e0-dmz0
S *> 198.18.0.176/28 [10/0] via 198.18.0.142, sg0e0-dmz0
S *> 198.18.0.192/28 [10/0] via 198.18.0.142, sg0e0-dmz0
S *> 198.18.1.0/24 [10/0] via 198.18.0.130, sg0e0-cisco0
S *> 198.18.3.0/24 [10/0] via 198.18.0.138, sg0e0-hp0
C *> 198.18.4.0/24 is directly connected, sg0-e-link-lan
S *> 198.18.10.0/25 [10/0] is directly connected, ssl.root
S *> 198.18.11.0/25 [10/0] is directly connected, ssl.root
S *> 198.18.13.0/25 [10/0] is directly connected, ssl.root
S *> 198.18.13.128/25 [10/0] is directly connected, ssl.root
C *> 217.193.240.160/29 is directly connected, vdom-wan1
|
Folgende Optionen stehen weiter für das Commande get router info routing-table zur Verfügung:
| Parameter | Beschreibung |
|---|---|
| details | Anzeigen der Detail-Informationen der Routing-Tabelle |
| all | Anzeigen von allen Einträgen in der Routing-Tabelle |
| rip | Anzeigen der RIP Routing-Tabelle |
| ospf | Anzeigen der OSPF Routing-Tabelle |
| bgp | Anzeigen der BGP Routing-Tabelle |
| isis | Anzeigen der IS-IS Routing-Tabelle |
| static | Statische Routing-Tabelle anzeigen |
| connected | zeigt die Routing-Tabelle der verbundenen Routen an |
| database | zeigt die Datenbank der Routing-Tabelle an (alle aktiven und passiven Routen) |
Wie kann ich auf einer FortiGate den Routing "cache" auflisten und aktualisieren?
Auf der FortiGate wird ein Cache angelegt. Dies bedeutet, dass wenn ein Routing Eintrag erstellt wird (wie zum Beispiel eine statische Route konfiguriert wird), so wird beim ersten Nutzen der Route im Hintergrund automatisch ein Eintrag im Cache angelegt. Dadurch muss die FortiGate nicht jedes Mal die Routing Tabelle konsultieren, sondern erhält bei einer nächsten Anfrage die Routinginformationen schneller und direkter aus dem Cache. Wenn ich sehen will, welche Routen im Cache sind kann ich folgenden Befehl verwenden:
|
Konfiguration über CLI: diagnose ip rtcache list |
# diagnose ip rtcache list family=02 tab=254 vf=0 type=02 tos=0 flag=80000200 0.0.0.0@0->198.18.0.1@64(root) gwy=0.0.0.0 prefsrc=198.18.0.1 ci: ref=1 lastused=1 expire=0 err=00000000 used=819 br=0 pmtu=16436 family=02 tab=254 vf=0 type=03 tos=0 flag=90000200 193.193.135.65@5(wan1)->193.193.135.95@64(root) gwy=0.0.0.0 prefsrc=0.0.0.0 ci: ref=1 lastused=220 expire=0 err=00000000 used=5 br=0 pmtu=1492 family=02 tab=254 vf=0 type=02 tos=0 flag=80000200 193.193.135.65@5(wan1)->193.193.135.66@64(root) gwy=0.0.0.0 prefsrc=193.193.135.66 ci: ref=3 lastused=0 expire=0 err=00000000 used=348 br=0 pmtu=1492 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 198.18.3.1@0->198.18.3.3@4(dmz) gwy=0.0.0.0 prefsrc=0.0.0.0 ci: ref=1 lastused=8 expire=0 err=00000000 used=952 br=0 pmtu=1500 family=02 tab=254 vf=0 type=03 tos=0 flag=90000200 0.0.0.0@66(fortinet4intern)->255.255.255.255@64(root) gwy=0.0.0.0 prefsrc=198.18.2.1 ci: ref=1 lastused=282 expire=0 err=00000000 used=0 br=0 pmtu=1500 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 0.0.0.0@0->193.193.135.65@5(wan1) gwy=0.0.0.0 prefsrc=193.193.135.66 ci: ref=1 lastused=0 expire=0 err=00000000 used=2109 br=0 pmtu=1492 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 0.0.0.0@0->193.193.135.65@5(wan1) gwy=0.0.0.0 prefsrc=193.193.135.66 ci: ref=1 lastused=0 expire=0 err=00000000 used=8022 br=0 pmtu=1492 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 0.0.0.0@0->198.18.3.3@4(dmz) gwy=0.0.0.0 prefsrc=198.18.3.1 ci: ref=1 lastused=4 expire=0 err=00000000 used=59 br=0 pmtu=1500 family=02 tab=254 vf=0 type=03 tos=0 flag=90000200 198.18.2.2@66(fortinet4intern)->198.18.2.127@64(root) gwy=0.0.0.0 prefsrc=0.0.0.0 ci: ref=1 lastused=135 expire=0 err=00000000 used=61 br=0 pmtu=1500 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 198.18.2.1@0->198.18.2.2@66(fortinet4intern) gwy=0.0.0.0 prefsrc=0.0.0.0 ci: ref=1 lastused=48 expire=0 err=00000000 used=22 br=0 pmtu=1500 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 0.0.0.0@0->198.18.0.90@7(internal1) gwy=0.0.0.0 prefsrc=198.18.0.1 ci: ref=1 lastused=3 expire=0 err=00000000 used=491 br=0 pmtu=1500 family=02 tab=254 vf=0 type=02 tos=0 flag=80000200 198.18.3.2@4(dmz)->198.18.3.1@64(root) gwy=0.0.0.0 prefsrc=198.18.3.1 ci: ref=3 lastused=13 expire=0 err=00000000 used=572 br=0 pmtu=1500 family=02 tab=254 vf=0 type=02 tos=0 flag=80000200 198.18.2.2@66(fortinet4intern)->198.18.2.1@64(root) gwy=0.0.0.0 prefsrc=198.18.2.1 ci: ref=10 lastused=0 expire=0 err=00000000 used=20 br=0 pmtu=1500 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 198.18.3.1@0->198.18.3.2@4(dmz) gwy=0.0.0.0 prefsrc=0.0.0.0 ci: ref=1 lastused=13 expire=0 err=00000000 used=660 br=0 pmtu=1500 family=02 tab=254 vf=0 type=01 tos=0 flag=00000200 198.18.0.1@0->198.18.0.90@7(internal1) gwy=0.0.0.0 prefsrc=0.0.0.0 ci: ref=1 lastused=1 expire=-2395 err=00000000 used=440 br=0 pmtu=1500 family=02 tab=254 vf=0 type=02 tos=0 flag=80000200 198.18.3.3@4(dmz)->198.18.3.1@64(root) gwy=0.0.0.0 prefsrc=198.18.3.1 ci: ref=3 lastused=4 expire=0 err=00000000 used=1 br=0 pmtu=1500 |
Der Cache selbst kann nicht direkt verändert oder manipuliert werden. Es ist auch nicht möglich einzelne Einträge aus dem Cache zu löschen.
Will man den Cache aktualisieren oder löschen so kann dies indirekt über das refreshen der Routing Tabelle vorgenommen werden. Mit diesem Kommando execute router restart werden im Cache, wie auchim Kernel die Routing Informationen auf den neuesten Stand gebracht:
|
Konfiguration über CLI: execute router restart |
# execute router restart |
Aus diesem Grund wird empfohlen nach jeder Routing Änderungen diesen Befehl abzusetzen um gewährleisten zu können, dass alle Routing Informationen aller Routing Tabellen auf den neusten Stand gebracht wurden.
Was ist eine Blackhole-Route?
Eine Blackhole-Route ist eine Route, die den gesammten, an sie gesendeten Datentraffic unterbindet. Dies funktioniert sehr ähnlich wie /dev/null in der Linux-Programmierung. Blackhole-Routen werden verwendet, um Pakete zu entsorgen, anstelle auf verdächtige Anfragen zu reagieren. Dies bietet zusätzliche Sicherheit, da der Absender keine Informationen aus dem Destination-Netzwerk erhält.
Blackhole-Routen können auch den Traffic in einem Subnetz einschränken. Wenn einige Subnetzadressen nicht verwendet werden, kann der Traffic zu diesen Adressen (Traffic, welcher gültig oder bösartig sein kann) an ein Blackhole-Route geleitet werden. So kann zusätzliche Sicherheit gewährleisten werden oder den Traffic zum Subnetz zu reduziert werden.
Zum Beispiel bei einer IPSec Side-to-Side Verbindung wird, wenn das Tunnelinterface aktiv ist (und somit der VPN Tunnel up), ein Routing Eintrag erstellt. Wenn dieser Tunnel und somit auch das Tunnelinterface down geht, wird die nächste zutreffende Route für die Session genutzt. Meist ist dies die Default Route zum Standard Gateway. Dies bedeutet, dasss der Traffic welcher für die remote Lokation des Tunnels gedacht ist, ins Internet geroutet wird. Kommt jetzt das Tunnelinterface wieder hoch, bleibt die Session aber über den Standard Gateway aktiv. Dieser Zustand bleibt solange bestehen bis diese Session nicht mehr aktiv ist oder manuell beendet wird. Ein "Refreshing" der Routing Tabelle mit dem Befehl "execute router restart" löst dieses Problem nicht, weil durch dieses Kommando eine Session nicht beendet wird. Die einzige Möglichkeit wäre, die Session manuell zu löschen. Jetzt kommt die Blackhole-Route ins Spiel. Die Blackhole-Route wird das Netz an ein Nulldevice routen. Eine Blackhole-Route muss mit einer grösseren Distanz konfiguriert werden, als die anderen Routen. Empfohlen wird die Distanz 254 zu wählen.
|
Im Menu Netzwork -> Static Routes
|
config router static edit [ID] -> Route ID angeben z.B 1 set dst 172.16.16.0 255.255.255.0 set distance 254 set comment "Blackhole Route 172.16.16.0/24" set blackhole enable end |
Statische Route 172.16.16.0/24 auf Tunnel Interface aktiv:
Wir haben ein VPN-Tunnel welcher das Netz 172.16.16.0/24 auf das Tunnel Interface vpn_to_sideB routet. Wenn wir die Routingtabelle anschauen, sehen wir dass dieses Netz 172.16.16.0/24 auf das Interface vpn_to_sideB mit der Distanz 10 geroutet wird.
Statische Route 172.16.16.0/24 auf Tunnel Interface aktiv:
Jetzt wird der VPN-Tunnel unterbrochen und das Tunnel Interface vpn_to_sideB wird inaktiv. Wenn wir jetzt keine default Route hätten, würde das Netz 172.16.16.0/24 auf den default Gateway (198.18.0.1) geroutet. Da wir jetzt aber die Blackhole-Route für die 172.16.16.0/24, mit der Distanz 254 konfiguriert haben, sehen wir in der Routingtabelle, dass der ganze Traffic zum Destinations Netz 172.16.16.0/24 auf das Blackhole Interface routet wird:
|
get router info routing-table all
Routing table for VRF=0
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default
S* 0.0.0.0/0 [1/0] via 198.18.0.1, wan1
S 172.16.16.0/24 [254/0] is a summary, Null
C 192.168.2.0/24 is directly connected, internal
C 198.18.0.0/27 is directly connected, wan1
Wenn ich die ganze Routing Tabelle anschaue (auch mit den inaktiven Routen) sehe ich beide Routen auf die Adresse 172.16.16.0/24. Die Route welche mit einem * markiert wird, ist die aktive Route. get router info routing-table database
Routing table for VRF=0
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
> - selected route, * - FIB route, p - stale info
S *> 0.0.0.0/0 [1/0] via 198.18.0.1, wan1
S 172.16.16.0/24 [10/0] is directly connected, vpn_to_sideB inactive --> Die Route auf das Tunnel Interface ist inaktiv
S *> 172.16.16.0/24 [254/0] is a summary, Null --> Die Route auf das Null Device (Blackhole) ist aktiv
C *> 192.168.2.0/24 is directly connected, internal
C *> 198.18.0.0/27 is directly connected, wan1
|
|
Grundsätzlich kann man auf jeder FortiGate die privaten IP Ranges auf eine Blackhole-Route konfigurieren. Mit diesen drei Routen kann so jeglicher Traffic, welcher in das Public WAN (INTERNET) geroutet wird, direkt abgefangen werden. Für folgende private Netze kann also eine Blackhole Route defaultmässig eingerichtet werden: Private Netze Gemäss RFC1918:
Siehe auch : https://tools.ietf.org/html/rfc1918 |
config router static edit 0 set dst 10.0.0.0/8 set distance 254 set comment "Blackhole 10.0.0.0/8 - RFC1918" set blackhole enable next edit 0 set dst 172.16.0.0/12 set distance 254 set comment "Blackhole 172.16.0.0/12 -RFC1918" set blackhole enable next edit 0 set dst 168.168.0.0/16 set distance 254 set comment "Blackhole 192.168.0.0/16-RFC1918" set blackhole enable next end |
Weitere Informationen betreffend privatem IP Adress-Bereich siehe auch: https://de.wikipedia.org/wiki/Private_IP-Adresse
|
Wenn ein Class D (Verwendung für Multicast-Anwendungen) oder Class E Netz (reserviert für zukünftige Zwecke) in eine Blackhole-Route konfiguriert werden soll, wird dies von der FortiGate nicht unterstützt. Weitere Infos über die Netzklassen : https://de.wikipedia.org/wiki/Netzklasse Beispiel in der CLI: config router static
edit 0
new entry '0' added
set blackhole enable
set distance 254
set dst 224.0.0.0/3
ip address must be a class A, B, or C ip
value parse error before '224.0.0.0/3'
Command fail. Return code -8
|
Wie kann ich das Swisscom TV über die FortiGate betreiben?
Um das Swisscom TV über die FortiGate zu routen müssen Multicast Routen eingerichtet werden. Wir gehen in diesem Fall von folgendem Szenario aus: Wir haben einen Swisscom Router, eine FortiGate und die Swisscom TV Box. Wir wollen die FortiGate zwischen dem Router und der TV-Box dazwischen als Perimeter Firewall schalten. Dafür müssen wir auf dem Swisscom Router die "DMZ" Funktion aktiveren und sämtlichen eingehenden Traffic auf die FortiGate weiterleiten. Zwischen der FortiGate und dem Swisscom Router konfigurieren wir ein Transit Netz. Jetzt haben wir sämtlichen Traffic (ausser die Telefone welche direkt am Router angehängt sind) auf der FortiGate. Jetzt können auf der FortiGate die Multicast Policies konfiguriert werden und das Swisscom TV läuft. In dieser Anleitung zeige ich ein praktisches Beispiel wie man das konfigurieren könnte:
Als erstes auf dem Swisscom Router folgende Konfigurationen vornehmen:
DMZ Funktion einschalten und auf die FortiGate weiterleiten.
| Konfiguration WebGui Swisscom Router |
|---|
Um sämtlichen eingehenden Traffic auf die FortiGate weiter zu leiten, muss auf dem Swisscom Router die DMZ Funktion aktiviert werden. Als Destination wird die FortiGate ausgewählt. |
Wir nutzen auf der FortiGate auf dem internal Interface (LAN) den DHCP Dienst. Damit die Swisscom TV Box immer die selbe IP Adresse bekommt, konfigurieren wir eine MAC Reservierung:
config system dhcp server edit 1 config reserved-address edit 1 set ip 10.60.60.10 set mac 48:8d:XX:XX:XX:XX set description "swisscom TV Box" next end next end
Auf der FortiGate erfassen wir ein Adressen Objekt für die Swisscom TV Box (in unserem Fall 10.60.60.10/32)
config firewall address edit "h_swisscomTV-10.60.60.10-32" set comment "Swisscom TV Device" set color 3 set subnet 10.60.60.10 255.255.255.255 next end
Nun muss auf der FortiGate das Multicast Routing ausgeschaltet oder überprüft werden dass dieses ausgeschaltet ist:
config router multicast set multicast-routing disable end
Die Multicast Weiterleitung konfigurieren:
config system settings set multicast-forward enable end
Wir wollen verhindern, dass die FortiGate bei den weitergeleiteten Multicast Paketen den TTL Wert nicht erhöht:
config system settings set mutlicast-ttl-notchange enable end
Im nächsten Schritt müssen zwei Multicast Regeln konfiguriert werden. Damit wir im WebGui die Option sehen, muss diese eventuell noch aktiviert werden:
Policy&Objects -> Mutlicast Polciy -> Create New+
Jetzt müssen wir zwei Multicast Adress-Objekte für 224.0.0.0 - 224.255.255.255 und 239.0.0.0 - 239.255.255.255 erstellen.
|
Menu:Policy & Objects -> Addresses -> Create New+ -> Category Multicast Address |
config firewall multicast-address
edit "mc-swisscom_224.0.0.0-224.255.255.255"
set start-ip 224.0.0.0
set end-ip 224.255.255.255
set color 26
next
edit "mc-swisscom_239.0.0.0-239.255.255.255"
set start-ip 239.0.0.0
set end-ip 239.255.255.255
set color 26
next
end
|
Regel 1: von 0.0.0.0/0 zu den Multicast Adressen SNAT in dieser Regel nicht aktivieren.
Regel 2:
Von der Swisscom TV Box zu den Multicast Adressen
SNAT muss in dieser Regel aktiviert werden
Nun sollte das Swisscom TV über die FortiGate funktionieren.
Wie kann ich eine Local Out Route verwenden?
Im FortiOS 7.0.0 ist ein neues Feature hinzugefügt worden, welches ermöglicht, verschiedene Local Out Services wie FortiAnalyzer, FortiGuard usw über ein definiertes Interface zu routen. Diese Funktion ist sehr praktisch wen mehrere ISP Interfaces oder noch spezielle ServiceLan's für bestimmte Dienste an die FortiGate angebunden sind. Das Feature Local Out Routing Feature unterstützt auch MultiVdom.
|
Damit man Local Out Routen im WebGui konfigurieren kann, muss zuerst das Feature aktiviert werden. |
config system global
set gui-local-out enable <-- disable um das Feature zu deaktivieren
end
|
Nun kann man im Menu Network den Menupunkt Local Out Routing sehen und verwenden
Alle Services welche nun speziel geroutet werden können werden aufgelistet. Dabei sind ausgegraute Punkte nicht verfügbar, da sie in der jetztigen Konfiguration nicht verwendet werden. Zum Beispiel Log syslogd Setting wenn kein Syslog Server konfiguriert ist.
Allgemein zur Konfiguration:
Was bedeuten die verschiedenen Optionen beim Outgoing Interface?
- Auto : Das ausgehende Interface wird automatisch anhand der Routing Tabelle definiert.
- SD-WAN : Das ausgehende Interface wird automatisch anhand der SD-WAN Regeln definiert.
- Specify : Das ausgehende Interface wird manuell definiert
Im Menupunkt Specify habe ich die Möglichkeit Interface und IP Adresse zu definieren:
Dabei gibt es die Option , dass die Interface IP Adresse benutzt wird oder dass man eine IP Adresse auswählen welche z.B als Sekundäre IP Adresse auf dem Interface konfiguriert ist. Es können also nur IP Adressen ausgewählt werden, welche zum entsprechenden Interface einen Bezug haben.
Interface Konfiguration:
Local Out Routing Möglichkeiten:
Anwendungsbeispiel:
Wir haben folgendes Szenarium :
Interface Definitionen:
- Eine SD-WAN Zone mit dem ISP1 auf dem wan1 interface und dem ISP2 auf dem wan2 Interface.
- Für die Services wie FortiAnalyzer haben wir über den Port internal5 ein Service Lan definiert.
Interface Routing:
- Die FortiGuard soll automatisch das beste Interface wählen.
- Der System DNS wollen wir über beide SD-WAN Interfaces routen.
- Der FortiAnalyzer muss über das ServiceLan erreicht werden können.
Konfiguration:
FortiAnalyzer:
|
Über das Menu Network --> Local Out Routing kann in das Konfigurations Menu gelangt werden. Wir sehen jetzt, dass der FortiAnalyzer Automatisch ein Interface und Dynamisch eine IP Adresse wählt. Dies kann dazu führen, dass die FortiGate über ein nicht vorgesehenes Interface versucht den FortiAnalyzer zu erreichen und wir dadurch einen Verbindungsfehler bekommen: Wir werden jetzt die Local Out Route für den FortiAnalyzer konfigurieren: Dafür kann man direkt vom FortiAnalyzer Menu im Menupunkt Local Out Setting gehen. Natürlich kann auch über das klassische Local Out Routing Menu navigiert werden.
|
config log fortianalyzer setting
set interface-select-method specify
set interface "internal5"
set source-ip "0.0.0.0"
end
|
System DNS:
|
Man kann auch hier direkt von der System DNS Konfiguration im Menupunkt Local Out Setting zu den Local Out Routings gelangen: Oder man navigiert über den Local Out Routing Menupunkt in die Konfigurationsoberfläche:
|
config system dns
set interface-select-method sdwan
end
|
System FortiGuard:
|
Vom FortiGuard Konfigurationsmenu kann auch direkt zu den Local Out Routen gelangt werden: Alternativ über Local Out Routing navigieren:
|
config system fortiguard
set interface-select-method auto
end
|
Ergebniss:
|
FortiAnalyzer: fwalem-lab-0157 # diag sys session filter dst 198.18.0.12 fwalem-lab-0157 # diag sys session list session info: proto=6 proto_state=01 duration=17991 expire=3595 timeout=3600 flags=00000000 socktype=0 sockport=0 av_idx=0 use=3 origin-shaper= reply-shaper= per_ip_shaper= class_id=0 ha_id=0 policy_dir=0 tunnel=/ helper=rsh vlan_cos=255/255 state=log local statistic(bytes/packets/allow_err): org=413544/7199/1 reply=306665/3605/1 tuples=2 tx speed(Bps/kbps): 22/0 rx speed(Bps/kbps): 17/0 orgin->sink: org out->post, reply pre->in dev=0->12/12->18 gwy=0.0.0.0/198.18.0.157 hook=out dir=org act=noop 198.18.0.157:8777->198.18.0.12:514(0.0.0.0:0) hook=in dir=reply act=noop 198.18.0.12:514->198.18.0.157:8777(0.0.0.0:0) pos/(before,after) 0/(0,0), 0/(0,0) misc=0 policy_id=0 auth_info=0 chk_client_info=0 vd=0 serial=00006c0b tos=ff/ff app_list=0 app=0 url_cat=0 sdwan_mbr_seq=0 sdwan_service_id=0 rpdb_link_id=00000000 rpdb_svc_id=0 ngfwid=n/a npu_state=00000000 no_ofld_reason: local fwalem-lab-0157 # diag sniffer packet any "host 198.18.0.12" 4 interfaces=[any] filters=[host 198.18.0.12] 2.389952 internal5 out 198.18.0.157.8777 -> 198.18.0.12.514: psh 895497223 ack 2558983702 2.390352 internal5 in 198.18.0.12.514 -> 198.18.0.157.8777: psh 2558983702 ack 895497257 2.390426 internal5 out 198.18.0.157.8777 -> 198.18.0.12.514: ack 2558983745 4.109882 internal5 out 198.18.0.157.16255 -> 198.18.0.12.514: udp 477 5.249888 internal5 out 198.18.0.157.8778 -> 198.18.0.12.514: psh 3863284655 ack 4177359170 5.250222 internal5 in 198.18.0.12.514 -> 198.18.0.157.8778: psh 4177359170 ack 3863284689 5.250288 internal5 out 198.18.0.157.8778 -> 198.18.0.12.514: ack 4177359213 7.399907 internal5 out 198.18.0.157.8777 -> 198.18.0.12.514: psh 895497257 ack 2558983745 7.400319 internal5 in 198.18.0.12.514 -> 198.18.0.157.8777: psh 2558983745 ack 895497291 7.400389 internal5 out 198.18.0.157.8777 -> 198.18.0.12.514: ack 2558983788 System DNS: fwalem-lab-0157 # diag sniffer packet any "port 53" 4 interfaces=[any] filters=[port 53] wan1 out 192.168.1.95.4181 -> 192.168.1.1.53: udp 27 wan1 in 192.168.1.1.53 -> 192.168.1.95.4181: udp 43 wan2 out 146.4.73.72.4181 -> 146.4.73.65.53: udp 35 wan2 in 146.4.73.65.53 -> 146.4.73.72.4181: udp 268 fwalem-lab-0157 # diag sys session filter dport 53 fwalem-lab-0157 # diag sys session list session info: proto=17 proto_state=01 duration=70 expire=176 timeout=0 flags=00000000 socktype=0 sockport=0 av_idx=0 use=3 origin-shaper= reply-shaper= per_ip_shaper= class_id=0 ha_id=0 policy_dir=0 tunnel=/ helper=dns-udp vlan_cos=255/255 state=log local nds statistic(bytes/packets/allow_err): org=120/2/1 reply=369/2/1 tuples=2 tx speed(Bps/kbps): 1/0 rx speed(Bps/kbps): 2/0 orgin->sink: org out->post, reply pre->in dev=0->5/5->18 gwy=0.0.0.0/192.168.1.95 hook=out dir=org act=noop 192.168.1.95:4181->192.168.1.1:53(0.0.0.0:0) hook=in dir=reply act=noop 192.168.1.1:53->192.168.1.95:4181(0.0.0.0:0) misc=0 policy_id=0 auth_info=0 chk_client_info=0 vd=0 serial=00009dd7 tos=ff/ff app_list=0 app=0 url_cat=0 sdwan_mbr_seq=2 sdwan_service_id=0 rpdb_link_id=00000000 rpdb_svc_id=0 ngfwid=n/a npu_state=00000000 no_ofld_reason: local session info: proto=17 proto_state=01 duration=62 expire=118 timeout=0 flags=00000000 socktype=0 sockport=0 av_idx=0 use=3 origin-shaper= reply-shaper= per_ip_shaper= class_id=0 ha_id=0 policy_dir=0 tunnel=/ helper=dns-udp vlan_cos=255/255 state=log local nds statistic(bytes/packets/allow_err): org=71/1/1 reply=304/1/1 tuples=2 tx speed(Bps/kbps): 0/0 rx speed(Bps/kbps): 0/0 orgin->sink: org out->post, reply pre->in dev=0->6/6->18 gwy=0.0.0.0/0.0.0.0 hook=out dir=org act=noop 146.4.73.72:4181->146.4.73.65:53(0.0.0.0:0) hook=in dir=reply act=noop 146.4.73.65:53->146.4.73.72:4181(0.0.0.0:0) misc=0 policy_id=0 auth_info=0 chk_client_info=0 vd=0 serial=00009ddd tos=ff/ff app_list=0 app=0 url_cat=0 sdwan_mbr_seq=1 sdwan_service_id=0 rpdb_link_id=00000000 rpdb_svc_id=0 ngfwid=n/a npu_state=00000000 no_ofld_reason: local FortiGuard: fwalem-lab-0157 # diag sniffer packet any "port 8888" 4 interfaces=[any] filters=[port 8888] 57.766328 wan2 out 146.4.73.72.3748 -> 96.45.33.64.8888: udp 64 57.917133 wan2 in 96.45.33.64.8888 -> 146.4.73.72.3748: udp 12 57.955508 wan2 out 146.4.73.72.14927 -> 96.45.33.64.8888: udp 64 58.107836 wan2 in 96.45.33.64.8888 -> 146.4.73.72.14927: udp 12 174.549443 wan2 out 146.4.73.72.23987 -> 96.45.33.64.8888: udp 64 174.556676 wan2 out 146.4.73.72.14090 -> 96.45.33.64.8888: udp 64 174.699688 wan2 in 96.45.33.64.8888 -> 146.4.73.72.23987: udp 12 |
Den ganzen Artikel findet man auch im folgenden PDF: Datei:HowTo FortiGate LocalOutRoute fos70.pdf
Beitrag erfasst am 27.05.2021 - fortinu
SD-WAN
Wie kann ich für ECMP oder SD-WAN Hilfesession (Auxiliary-session) auf der FortiGate aktivieren?
Wenn wir ECMP oder SD-WAN benutzen, sind mehrere Interfaces für den eingehenden oder ausgehenden Traffic definiert. Dies bedeutet, dass der Traffic eingehend oder ausgehend auf einem anderen Interface stattfinden kann. Wenn der Datentraffic wieder von der FortiGate ausgeht, versucht er einer bestehenden TCP Session zu entsprechen. Diese TCP-Session wird aber fehlschlagen, da sich das Interface für den eingehenden Datentraffic geändert hat.
Default mässig wird nur eine Session zur Abwicklung des Datentraffics verwendet. Jede Änderung auf dem eingehenden Interface (Orginal/Antwort) führt zu einer dirty Session und wird verworfen.
Aktiviert man die auxiliary-session Funkion wird eine Multisession aktivert. Dies bedeutet dass eine Hauptsession und Hilfssesions (verschiedene eingehende Interfaces) gibt um den Traffic zu handeln.
id=20085 trace_id=10 func=print_pkt_detail line=5501 msg="vd-root:0 received a packet(proto=6, 172.22.4.99:47287->172.23.4.100:443) from vlan4. flag [S], seq 3291199818, ack 0, win 65535" id=20085 trace_id=10 func=init_ip_session_common line=5666 msg="allocate a new session-000015a7" id=20085 trace_id=10 func=vf_ip_route_input_common line=2596 msg="find a route: flag=04000000 gw-80.78.133.251 via tun1" id=20085 trace_id=10 func=fw_forward_handler line=771 msg="Allowed by Policy-14: SNAT" id=20085 trace_id=10 func=ids_receive line=289 msg="send to ips" id=20085 trace_id=10 func=__ip_session_run_tuple line=3286 msg="SNAT 172.22.4.99->192.168.1.1:47287" id=20085 trace_id=10 func=ipsecdev_hard_start_xmit line=777 msg="enter IPsec interface-tun1" id=20085 trace_id=10 func=esp_output4 line=904 msg="IPsec encrypt/auth" id=20085 trace_id=11 func=print_pkt_detail line=5501 msg="vd-root:0 received a packet(proto=6, 172.22.4.99:47287->172.23.4.100:443) from vlan4. flag [.], seq 3291199819, ack 1663915319, win 1034" id=20085 trace_id=11 func=resolve_ip_tuple_fast line=5581 msg="Find an existing session, id-000015a7, original direction" id=20085 trace_id=11 func=ids_receive line=289 msg="send to ips" id=20085 trace_id=11 func=ip_session_core_in line=6275 msg="outgoing dev changed:44->42 dir=original, drop" id=20085 trace_id=12 func=print_pkt_detail line=5501 msg="vd-root:0 received a packet(proto=6, 172.22.4.99:47287->172.23.4.100:443) from vlan4. flag [.], seq 3291199819, ack 1663915319, win 1034" id=20085 trace_id=12 func=vf_ip_route_input_common line=2596 msg="find a route: flag=04000000 gw-192.168.1.1 via tun1" id=20085 trace_id=12 func=fw_forward_dirty_handler line=385 msg="no session matched" |
Default mässig ist die Funktion deaktiviert. Dies können wir auch über die CLI wie folgt ermitteln:
# config system settings # show full-configuration | grep aux # set auxiliary-session disable |
Die Funktion kann wie folgt eingeschaltet werden:
# config system settings # set auxiliary-session enable # end |
Welche OIDs gibt es im Zusammenhang mit dem Link Monitor um den SD-WAN Status abzufragen?
Folgende OIDs gibt es welche den Status vom Link Monitor angeben:
| OID | Beschreibung |
|---|---|
| .1.3.6.1.4.1.12356.101.4.8.2 | fgLinkMonitorTable |
| .1.3.6.1.4.1.12356.101.4.8.2.1.1 | fgLinkMonitorID |
| .1.3.6.1.4.1.12356.101.4.8.2.1.2 | fgLinkMonitorName |
| .1.3.6.1.4.1.12356.101.4.8.2.1.3 | fgLinkMonitorState |
| .1.3.6.1.4.1.12356.101.4.8.2.1.4 | fgLinkMonitorLatency |
| .1.3.6.1.4.1.12356.101.4.8.2.1.5 | fgLinkMonitorJitter |
| .1.3.6.1.4.1.12356.101.4.8.2.1.6 | fgLinkMonitorPacketSend |
| .1.3.6.1.4.1.12356.101.4.8.2.1.7 | fgLinkMonitorPacketRecv |
| .1.3.6.1.4.1.12356.101.4.8.2.1.8 | fgLinkMonitorPacketLoss |
Kann eine FG-90D in die die neue SD-WAN Orchestration eingebunden werden?
SD-WAN Orchestration kann mit der FG90D aktuell nicht genutzt werden, da dieses Modell aktuell noch nicht unterstützt wird:
https://docs.fortinet.com/document/fortimanager/6.4.1/sd-wan-orchestrator-release-notes/798783/supported-fortigate-models
FortiFabrik
Wie muss ich die FortiGates in der FortiFabrik updaten?
Damit die FortiFabric einwandfrei funktioniert muss auf allen in der Fabric eingebundenen FortiGates das selbe FortiOS installiert sein. Im Prinzip müssen alle Komponenten im selben FortiOS betrieben werden. Dazu gehören auch FortiManager, FortiAnalyzer, FortiSwitchen FortiAPs und so weiter.
Wenn man das FortiOS also anheben will, müssen alle Komponenten auf denselben Stand upgegradet werden.
Um die Securit Fabric korrekt upzugraden sollten die in der Fabric enthaltenen Geräte in der folgenden Reihenfolge upgegradet werden. Dadurch wird die Netzwerkkonnektivität aufrecht erhalten und es müssen im Nachgang nicht noch manuelle Schritte durchgeführt werden, damit die Fabric wunschgemäss funktioniert
- FortiAnalyzer
- FortiManager
- FortiGate Root Geräte
- FortiGate Downstream Geräte
- Managed FortiSwitch Geräte
- Managed FortiAP Geräte
- FortiClient EMS
- FortiClient
- FortiSandbox
- FortiMail
- FortiWeb
- FortiADC
- FortiDDOS
- FortiWLC
- FortiNAC
- FortiVoice
Damit das optimal funktioniert, muss zuerst die Root FortiGate und dann die alle member upgegradet werden.
Mehr infos gibt es in den Release Notes unter Fortinet Security Fabric upgrade.
Wie wird der FortiMail in die Securityfabrik eingebunden?
Um einen FortiMail in die Securityfabrik zu integrieren muss folgendermassen kann man folgenden Wiki Artikel konsultieren:
Email Service
Wie kann auf einer FortiGate den "Email-Service" konfigurieren?
Im FortiOS bezeichnet die "Email Service" Funktion die Konfiguration eines SMTP Servers. Ein Email Server auf der FortiGate wird für verschiedene Funktionen benötigt:
- Alert Email
- Two-Factor Authentifizierung
- Wireless Guest-Provisioning
Der "Email-Service" wird über das Web-GUI folgendermassen konfiguriert:
|
Menu: System > Settings -> Email Service (6.2)
|
# config system email-server # set type custom # set reply-to [Absender Email Adresse] # set server [FQDN SMTP Server] # set port [Gebe einen entsprechenden Port an zBsp "25"] # set source-ip [Optional gebe eine Source IPv4 Adresse an für den Absender der SMTP Nachricht] # set source-ip6 [Optional gebe eine Source IPv6 Adresse an für den Absender der SMTP Nachricht] # set authentication [enable | disable] # set username [Username für die Authentifizierung] # set password [Passwort für die Authentifizierung] # set validate-server [enable| disable] # set security [none | smtps | starttls] # end |
Es ist auch möglich von Fortinet den SMTP Server zu benutzen:
|
# config system email-server # set reply-to [Absender Email Adresse] # set server "notification.fortinet.net" # set port 465 # set Security smtps # end |
Zwei Faktor Authentifizierung
Wie kann ich die Timeouts für die 2FA Dienste auf der FortiGate anpassen?
Wenn das SSL-VPN mit Zwei-Faktor-Authentifizierungen(2FA) wie E-Mail, SMS, FortiToken konfiguriert ist, kann unter Umständen ein längerer Token-Ablauf des Timers erforderlich sein, als jener der Standardeinstellung von 60 Sekunden. Die Ablaufzeiten können wie folgt konfiguriert werden:
# config system global # set two-factor-ftk-expiry [Zeit in Sekunden] -> FortiToken Session Timeout # set two-factor-ftm-expiry [Zeit in Sekunden] -> FortiToken Mobile Session Timeout # set two-factor-sms-expiry [Zeit in Sekunden] -> SMS Session Timeout # set two-factor-fac-expiry [Zeit in Sekunden] -> FortiAuthenticator Token Session Timeout # set two-factor-email-expiry [Zeit in Sekunden] -> Email Session Timeout # end |
Während diese Timer für die Token selbst gelten (und die Token-Codes so lange gültig bleiben, wie sie konfiguriert sind), muss beim SSL-VPN jedoch nicht für die gesamte Dauer der Gültigkeit der Token akzeptieren. Um sicherzustellen, dass SSL-VPN die Token akzeptiert, muss ein weiterer Zeitgeber konfiguriert werden:
# config system global # set remoteauthtimeout [1-300s] # end |
Die maximal konfigurierbare Zeitüberschreitung hierfür beträgt 5 Minuten. Das SSL-VPN wartet maximal 5 Minuten auf die Bereitstellung eines gültigen Token-Codes, bevor die Verbindung beendet wird, auch wenn der Token-Code länger gültig ist.
|
Die Das bedeutet, dass wenn der Timer erhöht wird, die FortiGate beinträchtig werden kann. Der Server ist nicht erreichbar, wenn der erhöhte Timer zu lange benötigt, um die FortiGate zu erreichen. |
FortiGate und FortiAuthentikator:
Was auch beachtet werden muss ist, dass wenn mit einem FortiAuthenticator gearbeitet wird, dieser auch einen Timer für die Token hat. Die FortiGate verwendet die RADIUS-Authentifizierung für die SSL-VPN-Benutzerauthentifizierung. Der FortiAuthenticator wird als RADIUS-Server verwendet. Um die Sicherheitsstufen zu verstärken, ist FortiAuthenticator so konfiguriert, dass für eine erfolgreiche Authentifizierung eine Zwei-Faktor-Authentifizierung (2FA) erforderlich ist. Der FortiAuthenticator verfügt über mehrere Optionen, um 2FA von einem Benutzer zu verlangen. Diese können Hardware FortiToken, FortiToken Mobile, Mail oder SMS-Dienste sein. Bei den letzteren beiden kann es zu Zeitüberschreitungen kommen. Standardmässig erwartet FortiAuthenticator den Token-Code nach 60 Sekunden. Dieser Wert kann angepasst werden. Es reicht jedoch nicht aus, nur das Timeout im FortiAuthenticator zu ändern, da die FortiGate auch einen eigenen Timeout-Wert hat. Man muss diesen Wert also auch ändern, wenn man die Zeit zwischen der Eingabe von Benutzername/Passwort und Token-Code erhöhen möchten. Die Timer sind auf der FotiGate wie oben erklärt, anpassbar.
Auf dem FortiAuthentikator kann das unter folgendem Menue konfiguriert werden:
|
Über das Menue User Account Policies -> Tokens können die Timeouts konfiguriert werden:
|
Wie kann ich auf einer FortiGate einen SMS Service / Provider konfigurieren?
Wenn auf einer FortiGate eine Two-Factor Authentication konfiguriert wird, so soll basierend auf ODA (On-Demand Authentication) muss ein entsprechender SMS Service resp. Provider konfiguriert werden. Per Standard steht auf einer FortiGate ein FortiGuard SMS Provider zur Verfügung jedoch ist dieser FortiGuard SMS Provider nicht in FortiCare und/oder FortiGuard enthalten. Bei diesem FortiGuard SMS Provider handelt es sich um den Amerikanischen SMS Provider Clickatell.
Anstelle des FortiGuard SMS Services kann auch ein lokaler SMS Provider gewählt werden. Dabei muss beachtet werden, dass der SMS Provider einen SMS Versandt über EMail unterstützt. Grund ist, dass die FortiGate kein SMS Versand über HTTP/S GET und POST unterstützt. Ein paar SMS-Provider welche wir empfehlen:
- Swisscom (@sms.ip-plus.net)
- F24 (Dolphin) (https://www.f24.com/tochtergesellschaften/f24-schweiz-ag/)
- Truesenses (http://www.truesenses.com/)
Da der SMS Versand über den Email Service durchgeführt wird, gilt die Konfiguration eines Email Service als Voraussetzung für die Konfiguration eines SMS Service. Wie der Email Service zu konfigurieren ist siehe nachfolgender Artikel: Email Service auf der FortiGate konfigurieren. Danach sind die Voraussetzungen gegeben einen SMS Service respektive Provider auf der FortiGate zu konfigurieren. Die Konfiguration kann über CLI durchgeführt werden:
# config system sms-server # edit [Name des Service/Provider zB "swisscom"] # set mail-server [FQDN des Mail Server für SMS Versandt zB "sms.ip-plus.net"] # end |
Wird ein User lokal erfasst und dieser mittels SMS eine Two-Factor Authentifizierung aktiviert werden muss für, diesen User eine entsprechende Mobile Nummer definiert werden. Wird über einen Service auf der FortiGate eine Two-Factor Authentifizierung ausgelöst so wird im Hintergrund über den definierten SMS Service/Provider der für die Mobiel Nummer konfiguriert wurde ein Email generiert in folgender Form: [Land][Vorwahl][Mobile Nummer]@[FQDN des Mail Server für SMS Versandt]
Siehe auch: Wie konfiguriere ich einen User mit SMS Zweifaktor Authentifizierung?
Wie kann ich den Lizenzkey für den FortiGuard SMS Service auf der FortiGate einlesen?
Auf der FortiGate kann ich Two Factor Authentifizierung einrichten. Es gibt die Möglichkeit von Fortinet selber einen SMS Dienst zu erwerben. Die SMS werden von der FortiGuard her ausgelöst. Diese Lizenz enthält jeweils 100 SMS. Der Artikel welcher hierfür erworben werden kann:
SMS-ELIC-100 FortiSMS - License for 100 SMS text messages
Der Lizenz Key kann über folgenden Befehl auf die FortiGate eingelesen werden:
# execute fortiguard-message add xxxx-xxxx-xxxx-xxxx-xxxx ---> Den Aktivierungs Code der SMS Lizenz gemäss erhaltenem Dokument einfügen. # execute fortiguard-message update |
Das Guthaben kann wie folgt über die CLI abgefragt werden: execute fortiguard-message info
# execute fortiguard-message info Controller server status: registered Expiry date: 20200102 SMS max allowed: 4 SMS used: 4 Last update: Wed Apr 17 10:31:02 2019 Current message server: 208.91.113.184:443 Message server status: unknown |
Kann ich die Fortinet SMS Lizenz im Cluster nutzen?
Den Activation Key vom ForitGuard Messagin Service Dienst (SMS-ELIC-100) wird auf die Serienummer der FortiGate aktiviert.
Ein Cluster hat so gesehen nicht eine Serienummer über beide Devices und kennt daher nicht alle Mitglieder des Clusters.
Das bedeutet, es müssen alle Mitglieder des Clusters eine einzelne SMS-ELIC-100 Lizenz aktivieren.
Bei einem SMS Versand wird jeweils das Guthaben der aktiven FortiGate benutzt. Heisst wenn immer die gleiche FortiGate aktiv ist, wird nur dessen Guthaben heruntergezählt.
Brauche ich beim FortiToken auf der FortiGate für jeden Clustermember eine eigene Lizenz?
Diese Frage wird im FortiToken FAQ beantwortet:
FortiToken:FAQ#Wie_verschiebe_ich_einen_registrierten_FortiToken_auf_einer_FortiGate_von_einer_VDOM_zu_einer_anderen_VDOM.3F
FortiView
Wo ist die Ansicht "All-Session" im FortiOS 6.4.0?
Im FortiOS 6.4.0 fällt einem sicher sehr schnell auf, dass die Option All-Session in der FortiView nicht mehr vorhanden ist.
Es handelt sich hier um einen Bug im FortiOS 6.4.0. Wir haben es dem TAC gemeldet und diese haben es an das Developpentteam weitergeleitet.
Der Bug wird unter der Nummer 615524 behandelt.
In der Zwischenzeit kann man unter den Top Policies by Session im Drilldown-Menu zu den Sessions gelangen:
|
|
Der Bug ist im FortiOS 6.4.1 behoben worden
Nun findet man die Session-Ansicht in der FortiView:
|
|
Prozesse
Wie kann ich auf einer FortiGate die Prozesse auflisten?
Auf einer FortiGate existieren unzählige von Prozesse und Dienste welche zuständige sind um die verschiedenen Aufgaben einer Firewall durchzuführen. Um die Prozesse aufzulisten kann folgendes Kommando benutzt werden:
# diagnose sys top [refresh_time_sec] [number_of_lines] |
|
Wenn man die "top" 20 Prozesse (Standard) auflisten möchte, kann der # diagnose sys top
Run Time: 0 days, 2 hours and 1 minutes
0U, 0N, 0S, 100I, 0WA, 0HI, 0SI, 0ST; 1866T, 636F
ipsengine 358 S < 0.1 5.0
extenderd 178 S 0.1 0.4
lnkmtd 161 S 0.1 0.3
newcli 554 R < 0.1 0.3
ipsengine 356 S < 0.0 5.0
ipsengine 357 S < 0.0 5.0
ipsengine 359 S < 0.0 5.0
ipshelper 355 S < 0.0 4.2
scanunitd 352 S < 0.0 2.1
scanunitd 525 S < 0.0 2.0
scanunitd 526 S < 0.0 2.0
scanunitd 523 S < 0.0 1.9
scanunitd 524 S < 0.0 1.9
cmdbsvr 100 S 0.0 1.7
forticron 136 S 0.0 1.4
pyfcgid 495 S 0.0 1.2
cw_acd 168 S 0.0 1.2
httpsd 212 S 0.0 1.0
httpsd 210 S 0.0 1.0
httpsd 127 S 0.0 0.9
Um den Befehl respektive die Funktion zu beenden benütze "Ctrl + C". Beschreibung: Datei:Fortinet-307.jpg |
Die in der zweiten Ausgabezeile angezeigten Codes haben folgende Bedeutung:
0U, 0N, 0S, 100I, 0WA, 0HI, 0SI, 0ST; 1866T, 636F
- U ist der Prozentsatz der User-Space-Anwendungen, welche die CPU verwenden. Im Beispiel bedeutet 0U 0 % der User-Space-Anwendungen, die CPU verwenden.
- S ist % der Systemprozesse (oder Kernelprozesse), welche die CPU verwenden. Im Beispiel bedeutet 0S, dass 0 % der Systemprozesse die CPU verwenden.
- I ist % die ungenutzte CPU. Im Beispiel bedeutet 98I, dass die CPU zu 100% im Leerlauf ist.
- T ist der gesamte FortiOS-Systemspeicher in Mb. In dem Beispiel bedeutet 1866T, dass 1866 Mb des Systemspeichers vorhanden ist.
- F ist der freie Speicher in Mb. Im Beispiel bedeutet 636F, dass 636 Mb freier Speicher vorhanden sind.
- KF ist die Summe der verwendeten Shared-Memory-Seiten. Wenn zum Beispiel 32KF stehen würde, bedeutet dies, das System 32 Seiten des gemeinsamen Speichers verwendet werden.
Jede zusätzliche Zeile der Befehlsausgabe zeigt Informationen für jeden der auf der FortiGate laufenden Prozesse an. Die dritte Zeile der Ausgabe lautet in diesem Beispiel:
ipsengine 358 S < 0.1 5.0
- ipsengine ist der Name des Prozesses. Andere Prozessnamen können newcli, sshd, cmdbsrv, httpsd, scanunitd und miglogd enthalten.
- 358 ist die Prozess-ID. Die Prozess-ID kann eine beliebige Zahl sein.
- S ist der Zustand in welchem sich der Prozess befindet. Es gibt folgende Prozesszustände:
- S = Sleeping
- R = Running
- D = Do not disturb
- Z = Zombie
R und S Status Informationen eines Prozesses sind normal.
Das ein Prozess in den Status D wechselt kann für kurze Zeit vorkommen. Bleibt der Status jedoch für längere Zeit im Status D ist dies ein Indiz dass dieser Prozess nicht korrekt arbeitet.
Ein Status Z für einen Prozess ist klar ein Indiz das dieser Prozess nicht korrekt läuft. Ein Prozess im Status Z kann nicht mit "kill" beendet werden dh., um diesen Prozess zu beenden ist ein Neustart des Devices notwendig! Um eine FortiGate neu zu starten benutze : execute reboot
- 0.1 ist die Menge von der CPU, welche der Prozess verwendet. Der CPU-Verbrauch kann von 0.0 (für einen Prozess der schläft), bis zu höheren Werten reichen wenn ein Prozess viel CPU-Zeit benötigt.
- 5.0 ist die Menge an Memory, welche der Prozess verwendet. Der Speicherverbrauch kann von 0.1 bis 5.5 und höher gehen.
Während der diagnose sys top Befehl ausgeführt wird, kann mit folgenden Tasten eingewirkt werden:
- Taste q zum beenden.
- Taste c um die Prozesse nach Benutzung der CPU zu sortieren.
- Taste m um die Prozesse nach Benutzung des Memories zu sortieren.
Wenn Prozesse untersucht/beobachtet werden sollen kann anhand "refresh_time_sec" und "number_of_lines" der Befehl erweitert werden. Das folgenden Beispiel zeigt, wie der Befehl ausgeführt wird mit einer "refresh_time_sec" von 5 Sekunden und "number_of_lines" von 10. Dies heisst, es werden nur die Top 10 Prozesse/Dienste aufgelistet:
# diagnsoe sys top 5 10
Run Time: 0 days, 2 hours and 7 minutes
0U, 0N, 0S, 100I, 0WA, 0HI, 0SI, 0ST; 1866T, 651F
miglogd 196 S 0.3 0.9
ipsengine 356 S < 0.1 5.0
ipsengine 357 S < 0.1 5.0
cw_acd 168 S 0.1 1.2
miglogd 195 S 0.1 0.9
src-vis 152 S 0.1 0.6
lnkmtd 161 S 0.1 0.3
newcli 568 R < 0.1 0.3
proxyd 144 S 0.1 0.3
ipsengine 359 S < 0.0 5.0
|
Wie kann ich auf der FortiGate die Prozesse nach Memorie-Auslastung auflisten?
Eine weitere Möglichkeit die Prozesse aufzulisten ist:
# diagnose sys top-summary -h
Usage: top-summary [options]
Options:
-n LINES, --num=LINES
Number of top processes to show (20 by default)
-i INTERVAL, --interval=INTERVAL
Update interval, in seconds (1 by default)
-s SORT, --sort=SORT Sort mode: [cpu_percent (default)|mem|fds|pid]
-d, --dump Dump stats to the files
-h, --help show this help message and exit
Anhand dieser Optionen kann folgender Befehl abgesetzt werden um mit "-s mem" die Prozesse nach Memory-Nutzung zu sortieren und alle 60 Sekunden "-i 60" einen Refresh durchzuführen, sowie mit "-n 10" die Top 10 Prozesse aufzulisten: # diagnose sys top-summary '-s mem -i 60 -n 10' CPU [|||||||||| ] 25.0% Mem [|||||||||||||||||||||||||| ] 65.0% 1227M/1866M Processes: 10 (running=1 sleeping=135) PID RSS CPU% ^MEM% FDS TIME+ NAME * 130 420M 0.0 22.5 423 02:32.11 ipsmonitor [x6] 352 39M 0.0 2.1 53 00:31.92 scanunitd [x5] 100 32M 0.0 1.7 14 00:07.14 cmdbsvr 136 26M 0.0 1.4 26 00:09.10 forticron 495 24M 0.0 1.3 12 00:00.56 pyfcgid [x4] 168 23M 0.0 1.2 31 05:45.90 cw_acd 127 20M 0.0 1.1 41 00:26.25 httpsd [x11] 125 17M 0.0 0.9 65 00:12.11 miglogd [x3] 167 13M 0.0 0.7 22 00:00.98 fgfmd 591 12M 0.0 0.7 12 00:00.66 newcli [x2] Die Angabe "-s mem" indiziert die Spalte "MEM%" das heisst die Prozesse sollen nach "CPU%" Auslastung sortiert werden anstelle von "-s mem" die Angabe "-s cpu" benützt werden! |
Wo finde ich den diagnose sys top-summary Befehl unter FortiOS 6.4?
Im FortiOS 6.4.x wird man feststellen, dass das Kommando diagnose sys top-summary eine Fehlermeldung generiert:
# diagnose sys top-summary command parse error before 'top-summary' Command fail. Return code -61 |
Dieses Kommando wurde im FortiOS 6.4 entfernt. In den Release Notes 6.4.0 ist dokumentiert, dass der Befehl entfernt wurde:
https://docs.fortinet.com/document/fortigate/6.4.0/fortios-release-notes/517622/changes-in-cli
Welche Prozesse existieren auf einer FortiGate und welche Aufgaben haben diese?
Auf der FortiGate existieren unzählige Prozesse welche für verschiedene Aufgaben zuständig sind. Diese könne zBsp anhand "diagnose sys top 5 99" eingesehen werden. Viele Prozesse existieren nur dann, wenn eine entsprechende Konfiguration durchgeführt wird. Andere existieren nur dann, wenn ein bestimmtes FortiGate Modell benutzt wird wie zBsp PoE (Power over Ethernet). Wiederum andere existieren und sind mit dem Stauts "idle" versehen da die Funktion deaktiviert wurde wie zBsp Wirless Controller "cw_acd". Nachfolgend eine Auflistung der bekannten Prozess und einer Kurzbeschreibung dieser:
| Prozess: | Beschreibung: |
| initXXXXXXXXXXX | its job is to start other processes |
| zebos_launcher | zebos launcher daemon |
| hp_api | hp api |
| cmdbsvr | cmdb server - update processes / configuration |
| uploadd | upload daemon |
| adsl2plus | adsl2plus daemon |
| sqldb | sqldb |
| reportd | report daemon |
| sql_logd | sql log daemon |
| miglogd | log daemon |
| chlbd | chassis loadbalance daemon |
| haocd | content cluster HA over chassis daemon |
| kmiglogd | kernel log daemon |
| httpsd | https daemon |
| pyfcgid | python config daemon |
| sslvpnd | ssl vpn |
| info_sslvpnd | ssl vpn info daemon |
| smbcd | smb client daemon |
| lcdapp | Control the LCD panel |
| proxyd | proxy daemon |
| imd | IM proxy daemon |
| wad_launcher | wan acceleration proxy |
| wad | explicit proxy, mapi rpc |
| wad_diskd | wan acceleration disk daemon |
| dlpfingerprint | dlp fingerprint daemon |
| dlpfpcache | dlp fingerprint cache daemon |
| scanunitd | scanunit daemon |
| getty | wait for console/telnet connection |
| mingetty tty1 | mingetty tty1 daemon |
| mingetty tty2 | mingetty tty2 daemon |
| iked | ike daemon |
| nids_monitor_name | ips monitor daemon |
| updated | update daemon <= to init some shared memory segment used by other executables |
| merged_daemons | merge daemon - should be split in future. There is a mantics. |
| fclicense | FC license daemon |
| amc_monitor | AMC monitor daemon |
| forticron | crl update daemon |
| bypass_monitor | bypass monitor daemon |
| chassis5000d | chassis 5000 daemon |
| chassisd 192.168.127.254 | chassis daemon |
| fdsmgmtd | fortiguard management daemon |
| fds_msg | fds message daemon |
| snmpd | snmp |
| dhcpd | dhcp server |
| dhcpcd | dhcp client |
| dhcprd | dhcp relay |
| hatalk | ha protocol module |
| haysnc | ha synchronization module |
| harelay | ha relay module for tcp |
| pptpd | pptp |
| l2tpd | l2tp |
| ipldbd | ipldbd daemon |
| vsd | virtual server daemon |
| acd | aggregate controller daemon |
| src-vis | source visibility daemon |
| pppoed | pppoe daemon |
| ddnscd | ddns client daemon |
| urlfilter | URL filter daemon |
| ntpd | ntp server daemon |
| sshd | ssh daemon |
| tftpd | tftp daemon |
| telnetd | telnet daemon |
| authd | authenticated daemon |
| fssod | fsso daemon |
| quard | quarantine daemon |
| rtmon | ping server |
| radvd | router adv daemon |
| alertemail | alertemail daemon |
| dnsproxy | dns proxy daemon |
| sflowd | sflow protocol daemon |
| nat64d | NAT64 daemon |
| radiusd | radius daemon |
| notifd | notification daemon = carrier only |
| gtpgkd | gtp daemon = carrier only |
| mass_mmsd | mass mms daemon, carrier only |
| alarmd | alarm daemon |
| pptpcd | pptp client daemon |
| wpad_client | port access client daemon - atheros wifi |
| wpad | port access entity daemon - prism54 wifi |
| eap_proxy | epa proxy - wpa enterprise wifi |
| modemd | modem daemon |
| dialinsvr | dial-in server daemon |
| cardmgr | pcmcia card manager daemon |
| getty aux | getty aux daemon |
| pppoatmd | ppp over atm daemon |
| adsl_mon | adsl monitor daemon |
| l2tpcd | l2tp client daemon |
| httpclid | http client daemon |
| sessionsync | session sync daemon |
| fgfmd | fortigate/fortimanager communication daemon |
| wccpd | wccp daemon |
| garpd | vip gratuitous arp daemon |
| cw_acd | capwap ac daemon |
| wpad_ac | wpad ac daemon |
| cw_wtpd | capwap wtp daemon |
| cw_stad | capwap sta daemon |
| fortilinkd | fortilinkd |
| cu_acd | cu_acd |
| swctrl_authd | Switch controller authentication daemon |
| vrrpd | vrrp daemon |
| usbmuxd | usbmux daemon |
| fsd | forti-start daemon |
| proxyacceptor | proxyacceptor daemon |
| proxyworker | proxyworker daemons |
| sslacceptor | sslacceptor daemon |
| sslworker | sslworker daemons |
| imd | imd daemons |
| fcnacd | forticlient NAC daemon |
| stpd_name | spanning tree protocol daemon |
| wiredapd | wired ap 802.1x port based auth daemon |
| confsynchbd | conf-sync heartbeat daemon |
| confsyncd | conf-sync daemon |
| poed | poe daemon |
| cbp | cbp daemon |
| nsm | routing FIB update |
| imi | routing related |
| bgpd | bgp |
| ospfd | ospf |
| ospf6d | ospfv3 |
| pim6d | pim multicast v6 |
| pimd | pim multicast |
| pdmd | pim dense monde |
| ripd | rip |
| ripngd | ripv6 |
| netscan | netscan daemon |
| dhcp6s | dhcp6 server |
| dhcp6r | dhcp6 relay |
| dhcp6c | dhcp6 client |
| lted | usb lte daemon - start only if hardware has usb port and not run in vmware |
| newcli | CLI commands execution - ssh, telnet |
| vpd | vpn policy daemon - handle vpn traffic to know to which policy the traffic corresponds |
| rlogd | reliable syslog daemon |
Referenz der Prozesse aus: https://kb.fortinet.com/kb/documentLink.do?externalID=FD40822
Wie finde ich die PID von einem bestimmten Prozess heraus?
Die PID ist die Prozess Nummer (Prozess ID). Um einen Prozess zu stoppen muss diese angegeben werden. Damit man die Prozessnummer(n) herausfindet kann dies mit folgendem Befehl durchgeführt werden:
diagnose sys process pidof [ProzessName]
Wenn ich zum Beispiel die Prozessnummern für httpsd haben möchte gebe ich folgendes ein:
# diagnose sys process pidof httpsd 127 210 212 214 225 228 248 295 323 326 475 |
Wie kann ich auf der FortiGate einen laufenden Prozess stoppen?
Folgender Befehl kann verwendet werden um einen laufende Prozesse zu stoppen:
diagnose sys kill [Signal] [Prozess-ID]
Beschreibung:
- Signal kann eine beliebige Zahl sein. Es empfiehlt sich die 11 zu nehmen, weil dieses Signal eine Ausgabe an das Crashlog sendet, welches vom Fortinet-Support zur Fehlerbehebung verwendet werden kann.
- Prozess-ID ist die Prozess-ID, die vom Befehl
diagnose sys topaufgelistet wird. (Siehe Artikel Wie kann ich auf einer FortiGate die Prozesse auflisten?)
Mit diagnose sys kill 11 956 wird der Prozess mit der ID 956 gestoppt.
Wie kann ich herausfinden, welcher Prozess auf welchem CPU Core läuft?
| Konfiguration über CLI: |
|
Als Erstes müssen wir wissen, welcher Prozess welche Prozess-Nummer erhalten hat. Dies wird mit dem Befehl # diagnose sys top
Run Time: 0 days, 7 hours and 50 minutes
0U, 0N, 0S, 100I, 0WA, 0HI, 0SI, 0ST; 2012T, 681F
ipshelper 314 S < 0.0 3.9
cmdbsvr 124 S 0.0 3.3
ipsengine 315 S < 0.0 3.0
httpsd 379 S 0.0 3.0
miglogd 144 S 0.0 2.4
pyfcgid 284 S 0.0 2.3
httpsd 209 S 0.0 2.2
httpsd 380 S 0.0 2.0
reportd 163 S 0.0 2.0
httpsd 317 S 0.0 1.8
pyfcgid 286 S 0.0 1.8
forticron 155 S 0.0 1.7
httpsd 656 S 0.0 1.6
cw_acd 180 S 0.0 1.4
httpsd 1338 S 0.0 1.4
miglogd 196 S 0.0 1.4
|
Wir ermitteln jetzt auf welchem CPU-Kern der Prozess ipsengine läuft. Wir haben herausgefunden, dass die Prozessnummer für ipsengine die 315 ist. Mit dem Befehl diagnose sys process dump [PROZESS_ID] | grep Cpu kann der Kern ermittelt werden:
| Konfiguration über CLI: |
# diagnose sys process dump 315 | grep Cpu Cpus_allowed: 1 <---- 0001 (binär umgerechnet). Cpus_allowed_list: 0 <---- CPU Nummer 0 |
Bei einem zweiten Beispiel wollen wir vom Prozess miglogd wissen, auf welchem Kern dieser läuft. Hier ist die ProzessID die 196
| Konfiguration über CLI: |
# diagnose sys process dump 196 | grep Cpu Cpus_allowed: 2 <----- 0010 (binär umgerechnet). Cpus_allowed_list: 1 <----- CPU Nummer 1 |
|
Hier ist ein Link um dezimale Zahlen in binäre Zahlen umzurechnen: |
System
Wie generiere ich einen TAC Report für den technischen Support von Fortinet?
Damit der technische Support von Fortinet effizient arbeiten kann, ist es von grossem Nutzen bei einem Störungsfall den TAC Report beim Supportticket hochzuladen. In den meisten Fällen wird dieser Report sowieso eingefordert und man gewinnt Zeit indem man diesen Report gleich von Anfang an mitsendet. Wen man den Report ausführt wird ein vordefiniertes Skript eine Reihe von Diagnose-Befehlen durchführen. Diese ermöglichen eine Momentaufnahme des aktuellen Zustands der FortiGate festzuhalten. Diese Ausgaben der Befehle können dann in eine Log Datei geschrieben, und so dem technischen Support von Fortinet zur Verfügung gestellt werden.
Im TAC Report werden folgende Daten generiert und abgelegt:
- Seriennummer des Gerätes
- Benutzte Firmwareversion
- Status der FortiGuard-Updates
- Memorie und CPU Auslastung
- Globale Konfiguration
- Hardware Features
- Interface Fehler
- Traffic Statistiken
- HA-Diagnostik
- Prozess Crash Logs
Der TAC Report kann folgendermassen generiert und heruntergeladen werden:
|
# execute tac report |
Datei:HowTo FortiOS TAC-Report.pdf
Zertifikate
Was ist der Unterschied zwischen SSL Certificate Inspection und Full SSL Inspection?
Datenaustausch im Internet:
Sicherheit beim Datenaustausch im Internet wird u.a. durch das kryptographische Protokoll TLS (Transport Layer Security) bzw. SSL (Secure Sockets Layer) gewährleistet. Dabei müssen sowohl Client wie auch Server TLS/SSL verwenden, und gegenseitig den Gebrauch zusammen mit weiteren Parametern (z.B. SSL Version) mittels SSL Handshake bestätigen, um Sicherheit beim Datenaustausch zu gewährleisten.
Der Client verwendet sämtliche Server-Informationen um den Server per se zu authentifizieren -> Beispiel: Web-Browser verbindet sich mit Web-Server, dabei überprüft Web-Browser, ob Subject Name vom Zertifikat (erhalten vom Web-Server) mit dem Namen des Web-Servers übereinstimmt. Ausserdem wird überprüft, ob der Herausgeber des Zertifikats glaubwürdig ist, und ob das Zertifikat abgelaufen und/oder widerrufen worden ist. Falls das Server-Zertifikat von den erwähnten Kriterien abweicht, erhält der Client/User eine entsprechende Warnung/Fehlermeldung.
Umgekehrt (jedoch optional) kann auch der Server eine Authentifizierung des Clients verlangen. Sowohl Client wie auch Server generieren bzw. verwenden Session Keys um Datenaustausch während einer TLS/SSL Session zu ver- und entschlüsseln.
SSL Certificate Inspection:
Bei SSL Certificate Inspection betrachtet FortiGate nur den Teil des Zertifikats, welcher den CN (Common Name) des Zertifikats bzw. die URL enthält. Somit kann FortiGate die entsprechende URL in der eigenen, Kategorie-basierten Datenbank überprüfen/abgleichen. Kurz gesagt, fokussiert sich SSL Certificate Inspection nur auf den "Kopf" der Datenpakete, und verringert somit das Auftreten von Certificate Errors. Diese treten bei SSL Certificate Inspection nur dann auf, wenn FortiGate Replacement Messages via HTTPS sendet. Um dies zu verhindern, muss auf dem Client/Endpoint ein entsprechendes Zertifikat installiert werden -> siehe Details im nächsten Unterkapitel Full SSL Inspection.
Folglich eignet sich SSL Certificate Inspection beispielsweise in Policies, welche nur WebFilter verwenden, um lediglich den Web-Server zu identifizieren. Somit wird verhindert, dass HTTPS-Protokolle als "Workaround" missbraucht werden, um auf Websites zu gelangen, die durch den WebFilter geblockt werden.
Full SSL Inspection:
Hauptzweck der Full SSL Inspection ist u.a. die Überprüfung heruntergeladener Datenpakete, um mögliche Angriffe, Viren und Applikationen aufzudecken, die sich oft in verschlüsselten HTTPS Sessions verstecken.
Im Gegensatz zur SSL Certificate Inspection, wird der oben-erwähnte SSL Handshake (i.e. gegenseitige Bestätigungen) durch FortiGate unterbrochen. Aus Sicht des Clients agiert FortiGate als Server, und umgekehrt nimmt FortiGate die Rolle des Clients aus Sicht des Servers an. Falls der Client eine URL abruft, dann muss FortiGate diesem ein entsprechendes Zertifikat zur Verfügung stellen. Es handelt sich dabei um ein Fortinet-internes Zertifikat, welches nicht von einer CA (Certificate Authority) ausgestellt wurde, und folglich Certificate Errors generiert. Um dies zu verhindern, muss dieses Zertifikat (i.e. SSL_Proxy_Inspection) auf dem Client/Endpoint bzw. dessen Betriebssystem, Browser etc. installiert werden.
Bei Full SSL Inspection ist Datenaustausch zwischen Client und FortiGate, sowie zwischen Server und FortiGate, verschlüsselt. Während der Untersuchung entschlüsselt FortiGate die Datenpakete um Bedrohungen zu erkennen/blockieren, und verschlüsselt diese anschliessend wieder mittels dem oben-erwähnten, Fortinet-internen Zertifikat, welches beispielsweise dem Client präsentiert wird.
Wie kann unter Windows 10 ein SelfSign Zertifikat erstellt werden, welches auf die Firewall geladen werden kann?
Unter Windows 10 kann ein entsprechendes Zertifikat mit Powershell erstellt werden. Folgende Parameter werden dazu benötigt:
PS C:\temp> New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "meineseite.local" -FriendlyName "MySiteCert" -NotAfter (Get-Date).AddYears(10) PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My Thumbprint Subject ---------- ------- 9598EC7B469ADFE74474CD75C5FEFCBF8B7EB478 CN=meineseite.local
Um dieses Zertifikat anschliessend auch als File vom Windows Zertifikatsspeicher in ein passwortgeschütztes *.pfx-File exportieren zu können, muss erst das Passwort in einer Variablen abgelegt werden, bevor dann mittels CMDlet das Zertifikat exportiert werden kann:
PS C:\temp> $CertPwd = ConvertTo-SecureString -String "test" -Force -AsPlainText PS C:\temp> Export-PfxCertificate -cert cert:\localMachine\my\9598EC7B469ADFE74474CD75C5FEFCBF8B7EB478 -FilePath C:\temp\test.pfx -Password $CertPwd Verzeichnis: C:\temp Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 27.06.2018 16:43 2749 test.pfx
Das Zertifikat wird anschliessend wie folgt importiert:
Wie kann unter Windows 10 ein CA erstellt werden, welches auf die Firewall geladen werden kann?
- Herunterladen des Tools XCA Datei:Setup xca-1.4.1.zip
- Installieren von XCA auf einem Windows PC
- Generieren einer CA mit XCA gemäss folgender Anleitung: Datei:Xca howto.pdf (Quelle: barracuda.com)
- Exportieren der CA im *.pem Format
- Importieren des Zertifikates auf der Fortigate Firewall unter System > Certificates > Import > CA Certificate > Type=File
Wie kann ich Zertifikate sichern (Back-Up) und wiederherstellen?
Mit der Sicherung einer FortiGate-Konfiguration werden simultan die Keys sowie die Zertifikate gesichert. Zusätzlich lassen sich auf der FortiGate Zertifikate als PKCS#12-File sichern, welches folgendes beinhaltet:
- Private Key
- Public Key
- Zertifikat per se
Das PKCS#12-File kann auf jedem FortiGate-Modell (sowie jeder Firmware-Version), und auf nicht-Fortinet Firewalls wiederhergestellt werden.
Das Sichern bzw. Back-Up ist nur über CLI möglich (ausserdem wird ein TFTP-Server vorausgesetzt).
# execute vpn certificate local import tftp <file-name_str> <tftp_ip> # execute vpn certificate local export tftp <file-name_str> <tftp_ip> |
Wie konfiguriere ich Zertifikate (VDOM und global)?
FortiGate erlaubt es, dass ein CA sowie ein lokales Zertifikat für eine VDOM oder global konfigurierbar sind.
- Wenn ein Zertifikat auf einer VDOM hochgeladen wird, kann dieses Zertifikat nur auf der gleichen VDOM aufgerufen werden
- Wenn ein Zertifikat global hochgeladen wird, kann es auf allen VDOMS sowie global aufgerufen werden
Die Konfiguration der Zertifikate (VDOM und global) ermöglicht es, die Zertifikate herunterzuladen, zu importieren, und zu löschen.
Ausserdem sind bei der Konfiguration sämtliche Details zu den Zertifikaten sichtbar. Einige Zertifikate haben eine bestimmte Länge im Namen, sowie bestimmte Algorithmen in der Signatur. Beispiel: Fortinet_SSL_ECDSA256 -> das Suffix ECDSA256 steht für Elliptic Curve Digital Signature Algorithm 256.
# config certificate local
edit Fortinet_Factory
set range <global/vdom>
set source <factory/user/bundle/fortiguard>
end
|
Interface
Was bedeutet die Funktion "Role" innerhalb einer Interface Konfiguration?
Wenn man ab dem FortiOS 5.4 im Interface die verschiedenen Konfigurationspositionen näher anschaut, fällt einem die Position "Role" auf:
|
# config system interface # edit [Name des entsprechenden Interface zB "internal"] # set role [lan | wan | dmz | undefined] # end |
Nun stellt sich die Frage wobei es sich bei diesem Konfigurationspunkt handelt. Nach Auskunft von Fortinet handelt es sich hierbei um ein neues Feature unter FortiOS 5.4 das Fehlkonfigurationen auf früheren FortiOS verhindern soll. Dies wiederum bedeutet: Durch das hinzufügen einer bestimmten "Role" zu einem Interface stehen diesem bestimmte Konfigurationen nicht mehr zur Verfügung. Dadurch wird verhindert das zBsp auf einem "DMZ" Interface eine DHCP Server Konfiguration durchgeführt wird. Dabei ist wichtig zu wissen welche Konfigurationspunkte durch welche "Role" auf einem Interface entfernt werden. Nachfolgend eine Übersicht der zur Verfügung stehenden "Role" für ein Interface:
| Rolen Typen |
|
Undefined Role: Alle Optionen im WebGui sind sichtbar und können konfiguriert werden. WAN Role:
LAN Role
DMZ Role
|
Wir empfehlen grundsätzlich diese "Role" nicht zu benutzen und für ein Interface die Einstellung "undefined" zu benutzen wodurch alle Funktionen resp. Konfigurationen für ein Interface zur Verfügung stehen. Nach Auskunft von Fortinet sind diese "Role" im FortiOS nicht konfigurierbar dh. diese sind "hardcoded" implementiert und können nicht verändert werden. Es stehen auf der CLI keine Befehle zur Verfügung um diese "Role" zu verändern oder abzufragen um allenfalls herauszufinden zu können welche Funktionen für eine bestimmte "Role" entfernt wurde oder zur Verfügung steht.
Wie kann ich die Interface Statistik auf einer FortiGate anschauen?
Um die Interface Statistik anzuschauen kann über die CLI folgender Befehl eingegeben werden:
# get hardware nic <INTERFACE_NAME> Beispiel: # get hardware nic port1 Description :FortiASIC NP6 Adapter Driver Name :FortiASIC Unified NPU Driver Name :np6_0 PCI Slot :0000:01:00.0 irq :16 Board :FGT300d SN :FGT************ Major ID :5 Minor ID :0 lif id :0 lif oid :130 netdev oid :130 netdev flags :1303 Current_HWaddr 00:09:0f:09:00:02 Permanent_HWaddr 90:6c:ac:17:b0:ac phy name :port1 bank_id :1 phy_addr :0x00 lane :0 flags :220 sw_port :0 sw_np_port :0 vid_phy[6] :[0x02][0x00][0x00][0x00][0x00][0x00] vid_fwd[6] :[0x00][0x00][0x00][0x00][0x00][0x00] oid_fwd[6] :[0x00][0x00][0x00][0x00][0x00][0x00] ========== Link Status ========== Admin :up netdev status :up autonego_setting:1 link_setting :1 link_speed :1000 link_duplex :0 Speed :1000 Duplex :Full link_status :Up rx_link_status :1 int_phy_link :0 local_fault :0 local_warning :0 remote_fault :0 ============ Counters =========== Rx_CRC_Errors :0 Rx_Frame_Too_Longs:0 rx_undersize :0 Rx Pkts :3130045 Rx Bytes :752876757 Tx Pkts :3430304 Tx Bytes :2363052814 Host Rx Pkts :3130032 Host Rx Bytes :691819956 Host Rx dropped :0 Host Tx Pkts :3430304 Host Tx Bytes :2348345744 Host Tx dropped :0 |
# fnsysctl ifconfig <INTERFACE_NAME> Beispiel: # fnsysctl ifconfig port1
port1 Link encap:Ethernet HWaddr 00:09:0F:09:00:02
inet addr:198.18.0.1 Bcast:198.18.0.31 Mask:255.255.255.224
UP BROADCAST RUNNING PROMISC ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:3131156 errors:0 dropped:0 overruns:0 frame:0
TX packets:3431342 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:753144031 (718.3 MB) TX bytes:2363678516 (2.2 GB)
|
Wie konfiguriere ich ein VLAN-Interface auf der FortiGate?
Ein VLAN-Interface kann auf der FortiGate relativ einfach konfiguriert werden.
|
Über das Menu Network -> Interfaces ->
Die VLAN Interfaces sieht man beim physikalischen Interface wenn man auf das + klickt. |
config system interface
edit "vl_1500_userlan"
set vdom "root"
set ip 172.16.18.2 255.255.255.0
set alias "vl1500-ulan_frontend"
set device-identification enable
set role lan
set interface "internal7"
set vlanid 1500
next
end
|
Wie kann ich auf einem VLAN Interface eine sekundäre IP Adresse konfigurieren?
Bei einem VLAN Interface kann die sekundäre IP Adresse nicht einfach mit dem Befehl config secondaryip konfiguriert werden. Bevor man diesen Befehl nutzen kann, muss noch das entsprechende Feature auf dem Interface aktiviert werden. Dies wird mit dem Befehl secondary-IP {enable | disable} erreicht.
config system interface edit int_vl1200 set secondary-IP enable set interface "internal" set vlanid 1200 config secondaryip edit 1 set ip 172.16.17.1 255.255.255.0 next end next end |
Wie kann ich den MTU Wert auf einem Interface anpassen?
Der Maximum Transmission Unit (MTU) Wert definiert die grösste, hardwareabhängige Paketgrösse gemessen in Byte, welche ein Netzwerk übertragen kann. Wenn ein Paket grösser als der MTU Wert ist, werden die Pakete vom Sender aus in kleinere Pakete aufgeteilt. Der Standard MTU Wert auf einem FortiGate Interface ist 1500. Es kann vorkommen, dass man diesen Wert auf dem Interface anpassen muss, weil gewisse Paket Grössen nicht mehr durch kommen. Dieses Phänomen tritt häufig bei DSL Verbindungen auf, über welche noch ein IPSec VPN Tunnel gehen. Dies zeigt sich dann anhand des Phänomens, dass der Tunnel up ist, die ICMP Pakete durch gehen (ich kriege eine Antwort über den PING vom Remote System), aber die Daten selber nicht durch den Tunnel gehen.
Die MTU-Grösse der von der FortiGate übertragenen Pakete kann angepasst werden um die Netzwerkleistung zu verbessern. Idealerweise sollte die MTU der Pakete mit der kleinsten MTU aller Netzwerke zwischen der FortiGate und dem Ziel identisch sein. Falls die von der FortiGate gesendeten Pakete grösser sind als die kleinste MTU, werden diese zerlegt / fragmentiert, was die Übertragung verlangsamt. Man kann leicht experimentieren, indem die MTU verringert wird um eine MTU Grösse für eine optimale Netzwerkleistung zu finden.
- 68 bis 1500 Bytes für den statischen Modus
- 576 bis 1500 Bytes für den DHCP-Modus
- 576 bis 1492 Bytes für den PPPoE-Modus
Grössere Frame-Grössen (falls vom FortiGate-Modell unterstützt), bis zu 9216 Byte für NP2-, NP4- und NP6-beschleunigte Interfaces sind möglich. Diese Option ist nur für physische Interfaces verfügbar. Virtuelle Interface (vlan) welche einem physischen Interface zugeordnet sind, erben die MTU-Grösse des physischen Interfaces.
Die Interfaces gewisser FortiGate-Modelle unterstützen Frames, welche grösser als die herkömmlichen 1500 Byte sind. Jumbo-Frames werden bei FortiGate-Modellen, welche ab SOC2 (oder höher) oder NP4lite (ausser die FortiGate 30D) und bei Modellen der FortiGate 100D-Serie unterstützt. Wenn grössere Frames über eine Route gesendet werden, müssen alle Netzwerk-Devices auf diesem Weg die Framegrösse unterstützen. Falls dies nicht der Fall ist, werden die grösseren Frames nicht erkannt und dann verworfen.
Wenn man Datentraffic mit der Standardgrösse und grösseren Frames auf demselben Interfaces hat, kann das Routing allein diese nicht auf verschiedene Wege routen, die nur auf der Frame-Grösse basieren. Man kann jedoch VLANs verwenden, um sicherzustellen, dass der Datenverkehr mit grösseren Frames über Netzwerkgeräte geroutet wird, welche die grössere Grösse unterstütz. VLANs erben die MTU-Grösse von dem übergeordneten Interface. Das VLAN muss so konfiguriert werden, dass es beide Enden des Pfads, sowie alle Switches und Router entlang des Weges umfasst.
Die MTU-Paketgrösse kann konfiguriert werden. Wenn man eine MTU-Grösse wählt, welche grösser ist als jene die vom FortiGate-Modell unterstützt wird, kommt eine Fehlermeldung ("Paket müsste fragmentiert werden, DF-Flag ist jedoch gesetzt"). In dieser Situation soll man versuchen eine kleinere MTU-Grösse zu konfigureren, bis der Wert unterstützt wird und die Pakete nicht mehr fragmentiert werden müssen.
|
Eine Änderung des MTU-Wertes kann den Internetzugang für eine kurze Zeit beeinträchtigen, da nach der Anpassung des Wertes ein Reboot der Hardware vorgenommen werden muss. Es wird empfohlen die MTU-Änderung in einem Wartungsfenster vorzunehmen oder den Kunden zu informieren, dass es zu einem Unterbruch kommt! |
MTU Standardwerte: DHCP-Verbindung: 1500 PPPoE-Verbindung: 1492 Wird eine eigene VPN-Verbindung (via IPSec) aufgebaut, so muss nach dem ermitteln der "optimalen" MTU noch -100 gerechnet werden um den für das VPN korrekte MTU-Wert zu erlangen.
Die optimale MTU kann via CLI mit folgendem Befehl ermittelt werden: ping <<Zielhost>> -f -l 1492
Erscheint die Fehlermeldung "Paket müsste fragmentiert werden", ist der Wert noch zu hoch und muss weiter reduziert werden bis der Ping ohne Fehlermeldung durch geht.
Folgendermassen kann ich auf den Interfaces die MTU Werte anpassen:
config system interface
edit [INTERFACE]
set mtu-override [enable|disable]
set mtu [MTU_WERT]
end
end
Beispiel: config system interface
edit internal1
set mtu-ovveride enable
set mtu 1492
end
end
|
|
Wenn die FortiGate im transparent Modus ist muss noch folgendes beachtet werden: |
Auch interessant:
- Mehr Informationen über die MTU: https://www.msxfaq.de/netzwerk/grundlagen/mtu.htm
- VPN Interface : Wie kann ich auf einem VPN Interface die MTU Werte anpassen?
Wie kann ich auf der FortiGate ein Interface deaktivieren/aktivieren?
Es empfiehlt sich, jene Interfaces, welche auf der FortiGate nicht verwendet werden, administrativ herunter zu fahren und diese zu deaktivieren.
Dies kann via WebGui oder über die CLI vorgenommen werden. Am besten schreibt man einen Kommentar, wann und von wem das Interface deaktiviert wurde um die Transparenz zu erhöhen.
Im WebGui werden Interfaces, welche deaktiviert wurden grau dargestellt.
|
Über das Menu Network --> Interfaces --> [Interface auswählen] in die Interface Konfiguration navigieren. Ganz nach unten scrollen, dann kann man im Menupunkt Miscellaneos unter Status die Aktion anwählen:
Im "Comments"-Feld kann ein Kommentar eingefügt werden. In der Gesamtübersicht der Interfaces erkennt man die deaktivierten Interfaces anhand dessen dass diese hellgrau geschrieben sind: |
config system interface
edit [INTERFACE_NAME]
set status [up|down]
set description "[BESCHREIBUNG]"
next
end
Beispiel: config system interface
edit internal7
set status [up|down]
set description "Administrativ down 26.05.2020 - mru"
next
end
Den Interface Status kann ich folgendermassen überprüfen: config system interface
edit internal7
(internal7) # get | grep status
cli-conn-status : 0
status : down <-- Interface Status
|
Was sind die Bedingungen, damit ich eine Link Aggregation konfigurieren kann?
Ein Interface ist nur unter folgenden Bedingungen für eine Link Aggregation verfügbar:
- Es handelt sich um ein physisches Interface, nicht um eine VLAN-Interface
- Das Interface ist nicht bereits Teil eines aggregierten Interface
- Das Interfaces befindet sich in der gleichen VDOM wie das aggregierte Interfaces
- Das Interface hat keine definierte IP-Adresse und ist nicht für DHCP oder PPPoE konfiguriert
- Auf dem Interface ist kein DHCP- oder Relay-Server konfiguriert
- Das Interface hat keine VLAN-SubInterfaces
- Das Interface referenziert auf keine Firewall- oder Multicast-Regel, und auf keine VIP- oder IP-Pool Objekte
- Es handelt sich nicht um ein HA-Heartbeat-Interface
|
Wichtig ist, das eine Link Aggregation nur Interfaces benutzen kann, welche am gleichen NP angeschlossen sind oder durch eine ISF (Interne Switch Fabric) verbunden sind. Wie die Interfaces auf einer FortiGate verteilt sind, kann den Schematics entnommen werden. Datei:Fortinet-Hardware-Schematics.pdf <-- Die Schematics dürfen nicht mit Endkunden geteilt werden!! |
Beispiele:
In diesem Fall können die Interfaces aggregiert werden:
In diesem Fall können die beiden 10GB Interfaces nicht aggregiert werden, da diese jeweils an einem separaten NP angeschlossen sind:
Switch Mode
Sniffer Mode / CTAP
Switch Controller
Administrator
Wie richte ich auf der FortiGate ein SSH Login mittels privatem Schlüssel ein?
Damit ich mich als Administrator auf der FortiGate nicht immer mit dem Passwort authentifizieren muss, ist es möglich mich mittels einem privaten Schlüssel zu authentifizieren.
Dafür müssen zwei Schlüssel generiert werden. Zum Einen ein privater, und zum Andern ein öffentlicher Schlüssel. Ein gutes Tool um so ein Schlüsselpaar zu generieren ist der Putty Key Generator. Dieser ist unter folgendem Link abrufbar: https://www.puttygen.com/
Wenn der Puttygenerator gestartet wurde, kann das Paar ganz einfach generiert werden:
|
Nun muss der Public Key auf die FortiGate impotiert werden.
# config system admin # edit [Administrator] # set ssh-public-key1 "ssh-rsa [PublicKey Term]" # end nach SSH-RSA muss der öffentliche Schlüssel in einer Linie hereinkopiert werden. ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20200327" ---- END SSH2 PUBLIC KEY ---- Achtet darauf, dass der Public Key in einer Zeile, welche mit Anführungs-Zeichen beginnt und mit dem Schlusszeichen endet: "ssh-rsa PublicKey in einer Linie" Beispiel: # config system admin # edit admin # set ssh-public-key1 "ssh-rsa AAAAB3NzaC....E2MSyQ==" # end |
Nun muss noch der SSH Client mit dem privaten Key konfiguriert werden. Wir empfehlen hierzu das Tool "PuTTy" (https://www.putty.org/) zu verwenden.
Ergebniss: |
|
Schlüsselpaar generieren: ssh-keygen -t rsa -b 4096 Unter Linux oder Mac OS X kann man sich folgendermassen auf die FortiGate über SSH verbinden: ssh -i .ssh/key_rsa username@host .ssh/key_rsa' bezieht sich auf den Pfad in welchem der private Schlüssel gespeichert wurde. Beispiel: ssh -i .ssh/key_rsa admin@10.60.60.2 |
Wie kann ich für den Administrator "admin" das Passwort zurücksetzen wenn ich dieses vergessen habe?
Um ein Passwort des standard Administrators "admin" neu zu setzen wenn dies nicht mehr bekannt ist, gelten folgende Voraussetzungen:
- Seriennummer des Devices muss bekannt sein (Rückseite des Gerätes) zBsp FGT60E4613015338
- Das FortiGate Device muss neu gestartet werden (Strom aus/ein)
- Der Zugriff muss lokal über den Konsolen-Port erfolgen (RS-232)
|
Um das Passwort für den standard Administrator "admin" zurück zu setzen muss ein Zugriff via einen seriellen Console-Port (RS-232) sicher gestellt werden: 8 bits no parity 1 stop bit 9600 baud Flow Control = none |
|
Nach dem man mit der FortiGate über den Konsolen-Port verbunden ist, muss die FortiGate neu gestartet werden. Dies muss über einen Hardware-Reboot (Strom ausschalten, Strom einschalten) geschehen. Wenn auf der CLI die Loging Aufforderung kommt muss man sich relativ schnell mit dem User ‘’’maintainer’’’ und dem Passwort bcpb[Serie Nummer der FortiGate] identifizieren. Es ist darauf zu achten, dass die Serienummer in GROSSBUCHSTABEN geschrieben wird. Tipp: bcpb[SERIENUMMER] in ein Textfile schreiben und kopieren, damit das Passwort mittels copy/ paste eigegeben werden kann. User = maintainer Password = bcpbFGT60E4613015338 Welcome! |
|
Nun kann das Passwort des standard Administrators "admin" neu konfiguriert werden: # config system admin # edit admin # set password [neues Passwort] # end |
Dieser Vorgang wird nach 2 Minuten deaktiviert. Dies bedeutet dass nach einem "power on" innerhalb 2 Minuten eingeloggt werden muss da das Login anhand des Users "maintainer" nach 2 Minuten deaktiviert wird. Dieser Vorgang wird auf jedem Fortinet Device benutzt um das Passwort des standard Administrators "admin" wiederherzustellen. Es gibt keine andere Möglichkeit dieses Passwort via Remote Zugriff, zBsp SSH, wiederherzustellen! Diese Funktion für den User "maintainer" resp. dessen Login kann unter der globalen Konfiguration im FortiOS deaktiviert werden. Wird dies durchgeführt gibt es keine Möglichkeit mehr das Passwort des standard Administrators zurück zu setzen:
Es ist möglich den Maintainer Zugriff für das Gerät zu deaktivieren:
# config system global # set admin-maintainer [enable | disable] # end |
|
Wenn der admin-maintainer deaktiviert wird, gibt es keine Möglichkeit mehr, dass Passwort zu resetten. Auch der technische Support von Fortinet hat keine Möglichkeit mehr, dass Passwort zurückzusetzen! |
Wie kann ich einen Login Disclaimer auf der FortiGate konfigurieren?
Der Loging Disclaimer ist standartmässig auf der FortiGate nicht aktiv. Möchte ich, dass beim einloggen auf die FortiGate eine Warnmeldung erscheint, muss ich dies über die CLI konfigurieren.
Es gibt zwei Varianten:
1. Eine Warnmeldung bevor das Loging-Prompt erscheint (WebGui oder CLI):
config system global set pre-login-banner [enable | disable] --> enable für einschalten. end Bevor ich jetzt auf das Anmeldefenster komme wird die vordefinierte Warnmeldung angezeigt: Der User muss akzeptieren, dass er auf das Anmeldefenster kommt. |
2. Eine Warnmeldung nachdem ich mich auf die FortiGate eingeloggt habe:
config system global set post-login-banner [enable | disable] --> enable für einschalten. end Nach dem Einloggen wird dem User eine Warnmeldung angezeigt, bei welcher der User bestätigen muss. |
Die Templates können auch nach eigenen Wünschen angepasst werden:
|
|
User / Gruppe
Wie konfiguriere ich eine Usergruppe?
|
|
|
Die User können mit folgendem Syntax der Gruppe "USER" "NEXT-USER" .... "END-USER" hinzugefügt werden. config user group
edit "gr-Wartung"
set member "user1" "user2"
next
end
Bei einer Firewall Policy wird die Usergruppe mittels folgendem Befehl config firewall policy
edit <POLICY_ID>
set name "O_Wartung->Internet"
set srcintf "internal"
set dstintf "wan1"
set srcaddr "net-192.168.1.0-24"
set dstaddr "net-0.0.0.0-00"
set action accept
set schedule "always"
set service "HTTP" "HTTPS"
set logtraffic all
set groups "gr-Wartung"
set nat enable
next
end
|
Im Monitor können authentifizierte User angeschaut werden:
|
Über den Menupunkt Monitor -> Firewall User Monitor können die momentan eingeloggten User eingesehen werden: Um einen User zu deauthorizieren, muss der entsprechende User mittels Rechtsklick angewählt werden und dann der Button Deauthenticate selektiert werden. |
Wie eröffne ich einen User für die Zweifaktor Authentifizierung über SMS?
Damit es eine optimale Sicherheit bei der User-Authentifizierung gibt, ist die Möglichkeit einen Token anzubinden eine sehr gute Lösung. Dabei gibt der User sein Passwort ein und bekommt noch einen zweiten Faktor zugesendet. Es gibt dabei die Variante, welche dem User eine Textnachricht auf sein Mobile Gerät sendet. Der User muss diesen Zusatz mit eingeben um eine erfolgreiche Authentifizierung zu erlangen. Auf der FortiGate wird die SMS Authentifizierung beim User konfiguriert. Wir haben die Möglichkeit den kostenpflichtigen FortiGuard SMS Dienst von Fortinet zu nutzen.
Hinweis: Der Parameter set two-factor sms muss über die CLI konfiguriert werden.
Jetzt muss der User bei der entsprechenden Regel in die Source eingefügt werden.
| ||
|
Den User konfigurieren: config user local
edit "user1"
set type Password
set two-factor sms
set sms-phone "41791234567"
set password "password"
next
end
Bei der Policy muss der User in der Source angegeben werden, damit die Authentifizierung gezogen wird. In dieser Regel sind "ANY Services" konfiguriert. Für einen produktiven und sicheren Betrieb empfiehlt sich nur die Services freizuschalten, welche auch benötigt werden. Weiter empfiehlt es sich das entsprechende UTM Features zu aktivieren um sich optimal abzusichern. config firewall policy
edit <POLICY-ID>
set name "O_UserAuthent->Internet"
set srcintf "internal"
set dstintf "wan1"
set srcaddr "net-192.168.1.0-24"
set dstaddr "net-0.0.0.0-00"
set action accept
set schedule "always"
set service "ALL"
set logtraffic all
set users "user1"
set nat enable
next
end
|
|
Wenn wir jetzt eine Anfrage über den Webbrowser in das Internet vornehmen wird ein Loging Fenster im Browser erscheinen: Nachdem sich der user1 mit seinem Passwort authentifiziert hat, kommt noch die SMS abfrage. Der User hat jetzt 60 Sekunden Zeit den SMS-Code einzutippen. Nach dieser Zeit ist der ausgelieferte Code erneut ungültig. |
HowTo Dokument : Datei:HowTo FortiOS 2FA.pdf
Wie kann ich auf der FortiGate die Userauthentifizierung Troubleshooten?
Im GUI findet man unter Firewall Policy nebst Namen, Source, Destination, Service etc. auch die Anzahl Bytes, welche die Firewall Policy passieren. Bytes (bzw. deren Anstieg) dienen als wichtiger Parameter bei der Analyse von Authentifizierungsproblemen. Beispielsweise, wenn ein User keine Aufforderung zur Authentifizierung erhält, obwohl die Firewall den Traffic analysiert und somit die Anzahl Bytes ansteigt.
CLI bietet mehrere Befehle, um zusätzliche Informationen zu fehlgeschlagenen Authentifizierungsversuchen sowie den entsprechenden Usern zu gewinnen:
|
Anzeigen der authentifizierten User und deren IP Addressen: # diagnose firewall auth list Bereinigen sämtlicher autorisierter User: # diagnose firewall auth clear (Hinweis: Hilfreich, wenn mehrere User nach einem System- oder Gruppenwechsel neu authentifiziert werden müssen) Troubleshooting bei aktiver Authentifizierung: # diagnose debug application fnbamd -1 (Hinweis: Immer zusammen mit # diagnose debug enable) Testen des prehared key zwischen FortiGate und RADIUS server: # diagnose test authserver radius-direct <ip> <port> <secret> Testen der LDAP Authentifizierung für bestimmte User: # diagnose test authserver ldap <server_name> <username> <password> |
Firewall Regeln
Was ist eine Local-In Policy?
Policies steuern den Traffic durch die FortiGate. Die FortiGate stellt auch die Möglichkeit, den internen Traffic (Management-Traffic) zu kontrollieren.
Jedes Interface enthält eine Konfiguration für den erlaubten Zugriff, um den Managementzugriff für bestimmte Protokolle zu ermöglichen. Lokale Firewall Regeln werden automatisch eingerichtet, um den Zugriff für alle Benutzer zu ermöglichen. Lokale Firewall-Regeln gehen noch einen Schritt weiter, indem sie den Benutzerzugriff aktivieren oder einschränken.
Man kann lokale Firewall-Regeln für den administrativen Zugriff, das Routing, die zentrale Verwaltung durch den FortiManager, oder weitere Zwecke benutzen:
- SNMP
- Syslog
- Alert Email
- FortiManager Remote IP
- FortiGuard Services
- FortiAnalyzer Logtransfer
- NTP
- DNS
- AutorisierungS Anfragen wie RADIUS
- FSSO
|
Local-In-Firewall Regeln können nur in der CLI erstellt oder bearbeitet werden. Die vorhandenen Local-In-Policies werden im WebGui angezeigt. Damit man die automatisch angelegten LocalIn Firewallregeln sieht muss man das Feature freischalten:
|
| Konfiguration über die CLI: |
# config system settings # set gui-local-in-policy enable # end |
Um das ganze zu veranschaulichen ein kleines Beispiel:
|
Wir konfigurieren auf dem Interface (internal) die Services PING(icmp 8), HTTPS (tcp443), SSH(tcp22) und FMG-Access(tcp541). Sobald wir diese Management Methoden konfiguriert haben und die Interface Konfiguration verlassen, sehen wir, dass in den LocalIn auf dem Interface internal die entsprechenden Ports geöffnet sind: Der HTTPS wird als TCP4443 (Admin Port) im Tap Authentication angezeigt und ist auf diesem Screenshot nicht ersichtlich! |
|
Die manuell konfigurierten Local-In Firewall Regeln werden im WebGui nicht angezeigt! |
Wie kann ich eine manuelle Local-In Policy konfigurieren?
Manuell angelegte Local In Policy sind von der Hyrarchie her prioritär der automatisch angelegten Local In Policies. Es ist jedoch nicht möglich, die automatischen Local In Policies zu manipulieren. Durch eine manuelle Local In Policy kann sie aber übersteuert werden.
Manuelle Local In Policies können nur über die CLI konfiguriert werden. Dies funktioniert wie folgt:
# config firewall [local-in-policy | local-in-policy6] # edit [Policy ID definieren] # set intf [Source Interface] # set srcaddr [Source IP Adresse] # set dstaddr [Destinations IP Adresse] # set action [accept | deny] # set service [Service Name] # set schedule [Gültigkeit der Policy] # set comments "[Fakultativer Kommentar]" # end Falls ich das HA-Management Interface als dediziertes Management Interface benutzen will, muss ich dies in der entsprechenden Local-In Policy mit dem Befehl |
Es ist darauf zu achten, dass die Objekte welche benutzt werden, im Vorfeld konfiguriert worden sind (Beispiel Source und Destinations Netze / Host)
In diesem Beispiel soll der SMB Traffic vom Interface internal7 mit dem Source Netz 10.10.250.0/24 auf sämtliche Netze blockiert werden:
# config firewall local-in-policy # edit 1 # set intf internal7 # set srcaddr net-10.10.250.0-24 # set dstaddr all # set action deny # set service SMB # set schedule alsways # set comments "Block SMB from internal 7" # end |
Um die Local In Policy zu deaktivieren, oder wieder zu aktivieren muss dies in der Policy selber konfiguriert werden:
Die Local-In Policy aktiviert man mit: set status enable
Die Local-In Policy deaktiviert man mit:set status disable
# config firewall local-in-Policy # edit [Policy_ID] # set status [enable | disable] -> aktivieren oder deaktivieren # end |
|
Die manuell konfigurierten Local-In Firewall Regeln werden im WebGui nicht angezeigt! |
Bestpraxis Tipp - Wie kann ich unterbinden, dass private Netzwerke im Internet erreicht werden?
Private IP Adressen werden im Internet nicht geroutet und somit müssen diese auch nicht die FortiGate über den Internet Anschluss verlassen. Auf den Core Router werden im Normallfall diese Netze auch nicht ins grosse weite Internet geroutet. Wir können aber auf der FortiGate gleich eine Firewall Regel konfigurieren, welche den Zugriff auf Private Netze im Internet gar nicht zulässt. Dafür konfigurieren wir drei Adressobjekte und fügen diese einer Gruppe hinzu. Danach wird zu Oberst im Regelwerk eine Firewall Regel von den Internen Interface auf die Internet Interfaces mit Source All und Destination das konfigurierte Gruppenobjekt erstellt, welche sämtliche Service blockiert.
|
Adressen Objekte konfigurieren: config firewall address
edit "net_rfc1918-10.0.0.0-8"
set comment "private net - RFC1918"
set color 27
set subnet 10.0.0.0 255.0.0.0
next
edit "net_rfc1918-172.16.0.0-12"
set comment "private net - RFC1918"
set color 27
set subnet 172.16.0.0 255.240.0.0
next
edit "net_rfc1918-192.168.0.0-16"
set comment "private net - RFC1918"
set color 27
set subnet 192.168.0.0 255.255.0.0
next
end
Adressgruppe konfigurieren: config firewall addrgrp
edit "gr_net_RFC1918"
set member "net_rfc1918-10.0.0.0-8" "net_rfc1918-172.16.0.0-12" "net_rfc1918-192.168.0.0-16"
set comment "private networks RFC1918"
set color 27
next
end
|
|
|
Firewall Regel konfigurieren:
config firewall policy
edit 0
set name "O_wlan_to_INTERNET-block-RFC1918"
set srcintf "[INTERNAL-INTERFACE]"
set dstintf "[WAN-INTERFACE]"
set srcaddr "all"
set dstaddr "gr_net_RFC1918"
set schedule "always"
set service "ALL"
set logtraffic all
set comments "block all traffic to private networks to INTERNET - RFC1918"
next
end
|
|
Diese Firewall Regel muss zuoberst im Regelwerk platziert werden. |
Details über den RFC 1918 findet man hier: https://datatracker.ietf.org/doc/html/rfc1918
Policy Rule
Was sind ISDB Objekte?
Die ISDB (Internet Service Datenbank) ist eine Datenbank. Diese Datenbank enthält eine Liste von den gebräuchlichsten Internetdiensten. Dabei sind die IP-Adressen, IP-Protokolle und Portnummern enthalten, die diese Dienste nutzen. Die FortiGate lädt in regelmässigen Abständen die neueste Version dieser Datenbank von FortiGuard auf die FortiGate herunter.
|
Unter dem Menu System->FortiGuard->Licence Information-> Firmware&General Updates findet man die Internet Service Database Definitions: ]} Diese ISDB Objekte können in Firewall Regeln als Source oder Destinationen ausgewählt werden. Dies ist sehr praktisch, da zum Beispiel für die Office365 Zugriffe ansonsten über 660000 Adressobjekte manuell erstellt werden müssten.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||




























































