FortiGate:FAQ

Aus Fortinet Wiki
Zur Navigation springen Zur Suche springen

FortiGate-6.0 und FortiGate-6.2:FAQ

Vorwort

Dieses FAQ ist für Fortinet Systeme basierend auf FortiOS 6.0 und/oder FortiOS 6.2 sofern nicht anderes vermerkt, stand zu Test-Zwecken eine Fortigate 60E zur Verfügung!


Datenschutz

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

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

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:

       Fortinet:ProduktInfo

Ebenfalls lohnt es sich folgenden Link anzuschauen der "Cookbook" ähnliche Dokumente und Video's beinhaltet:

       http://community.fortinet.com/

Auf folgender Seite findet man alle orginal Dokumente betreffend FortiGate:

       http://docs.fortinet.com/fortigate/admin-guides
FortiOS Release Notes
Security Fabric Upgrade Guide
Referenzen
Compatibility Matrix
FortiOS 6.0 Handbook Dokumente
FortiOS 6.2 Handbook Dokumente

Request of Proposal

Hardware

Wo finde ich die Hardware Revision und Hardware Generation Informationen eines FortiGate Devices?

Ein FortiGate Device verfügt über eine entsprechende "Hardware Revision" und "Hardware Generation". Über diese Information wird ein entsprechender FortiGate Device identifiziert. Möchte man die "Hardware Revision" herausfinden einer FortiGate kann dies folgendermassen bewerkstelligt werden:

Variante Device Label Variante FortiOS

Die "Hardware Revision" wird als "Label" auf der Rückseite eines FortiGate Devices aufgeführt in nachfolgender Form und als Strich-Code:

PN: P15968-01

Wenn man über CLI folgenden Befehl absetzt erhält man die "Hardware Revision" Information:
# 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 sei es über ein "Label" noch über CLI. Wenn diese Informationen benötigt wird, muss über ein Customer Care Ticket die entsprechende Information der "Hardware Generation" nachgefragt werden werden. Wie ein Ticket für Fortinet eröffnet wird siehe nachfolgender Artikel:

       Fortinet:Support-Case

Bei dieser "Hardware Revision" wie in unserem Beispiel gezeigt (P15968-01) handelt es sich zB um eine FG-70D. Das bedeutet, wenn eine neue "Hardware Revision" für diesen Device Release 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 zB "P15978-02". Somit kann anhand der PN Nummer keinen Rückschlüss gezogen werden, über die nötige Information von:

      PN Nummer (Hardware Revision) + Hardware Generation

Diese Information der "Hardware Revision" sowie "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 für den Austausch diese Informationen damit diese exakt die gleiche "Hardware Revision" und "Hardware Generation" dem Kunden zustellt!

Wo finde ich eine Übersicht welcher FortiGate Device zB über wieviel "Memory" verfügt, ein "SOC" und/oder "NP" verbaut ist?

Nachfolgend eine Aufstellung die zeigt über welche Komponenten wie "SOC, NP, Memory, Storage ein FortiGate Device verfügt:

       NOTE Diese Informationen stammen aus einem Post im "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 die über die Hardware Schematic eines Fortinet Produktes wie zB
            CPU, RAM, Flash usw. Auskunft gibt:
            
            Datei:Fortinet-Hardware-Schematics.pdf
       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
       Fortinet-821.jpg
       Fortinet-822.jpg
       Fortinet-823.jpg
       Fortinet-1611.jpg
       Fortinet-824.jpg

Was für FortiGate Geräte stehen zur Verfügung und wie finde ich das richtige?

Wenn für einen Kunden ein FortiGate Device evaluiert werden soll stellt sich jeweils die Frage welches ist das richtige Gerät für diesen Kunden? Um dies zu eruieren sind folgende Punkte massgebend:

  • Über was für eine Internet Anbindung verfügt der Kunde, an der 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 durch den FortiGate Device 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 benötigt um Beispiel SFP+
  • 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 Devices 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 dieser 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 den richtigen Device für den Kunden auszuwählen:

       Datei:ProductMatrix.pdf

Zu den verschiedenen FortiGate Devices stehen jeweils die "Datasheet" zur Verfügung die nochmals detailliert über den jeweiligen FortiGate Device Auskunft gibt. des Weiteren stehen zu den "Datasheet" ebenso die "Quickstart" Guide zur Verfügung die zeigen "was" zum jeweiligen Device mitgeliefert wird sowie das Aussehen:

       Fortinet:ProduktInfo#FortiGate

des Weiteren steht für die Produkte Information der Produkt Guide zur Verfügung der jeden FortiGate Device in einer Kurzübersicht darstellt:

       Datei:Fortinet-ProductGuide.pdf

Nachfolgend als Anhaltspunkt eine Übersicht der FortiGate Devices in den verschiedenen Kategorien wie "Entry Level, Midsize usw.":

FortiGate Entry Level Series: Comparison
Fortinet-1392-A.jpg

Fortinet-1392-B.jpg

FortiGate Mid Range Devices: Comparison
Fortinet-1393.jpg

Fortinet-1393-A.jpg

Fortinet-1393-B.jpg

FortiGate 1000 und 2000 Series: Comparison
Fortinet-1394.jpg
FortiGate 3000 Series: Comparison
Fortinet-1395.jpg
FortiGate 5000: Comparison
Fortinet-1396.jpg

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 einem FortiGate Device einen Hardwaretest ausführen (Troubleshooting/HQIP Testing)?

Damit man den "Advanced Hardware Test" resp. HQIP Test durchführen kann, muss ein spezielles "image" das für jeden 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
NOTE: Damit man zu diesem Link gelangt muss anhand eines Support Accounts eingeloggt werden sowie damit das

entsprechende Image runtergeladen werden kann, muss die entsprechende Serien Nummer des Devices eingegeben werden. Dies muss durchgeführt werden da jeder Device identifiziert werden muss anhand der Revision und Generation 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 benützen um auf einem Baugleichen Device den Test durchzuführen da die Devices -obwohl Baugleich- sich unterscheiden können in Revision und Generation.

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 wurde (kein Passwort) kann anhand des Befehls "diagnose hqip start" ein Script ausgeführt werden. Dieses Script führt die verschiedenen Hardware Tests aus. Der Unterschied zum regulären "stagging" Prozess selber ist einzig und alleine, dass dieses Image nicht anhand "D" (Default), "B" (Backup) sondern anhand "R" (Run) installiert wird. Dies bedeutet: dieses Image wird durch "R" (Run) in den Memory Bereich temporär installiert. Der Output der Serial Konsole muss "geloggt" werden damit es später dem Fortinet Support übermittelt werden kann. Im "putty" wird dies für eine Session unter folgender Position konfiguriert:

       Category > Session > Logging > All Session output

Nachfolgend eine Schritt für Schritt Anleitung wie so ein HQIP Image geladen sowie das Skript ausgeführt wird:

       -> Lade das entsprechende Image herunter (siehe Link oben; Serien Nummer des Devices muss angegeben werden)
          
       -> Benenne das File um nach "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 runterzuladen:
          
          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 eine 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" dh. NICHT "D" oder "B" 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
        
       Logge dich nun ein anhand der obigen Informationen!
        
       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

dh. normalerweise müssten alle Netzwerkkarten Ports angeschlossen werden. Geschieht dies nicht erscheint eine Fehlermeldung die jedoch keinen weiteren Einfluss hat auf die auszuführenden Tests, ausser der Test soll auf den Interfaces ausgeführt werden. Wenn die Netzwerkkarten Test korrekt ausgeführt werden soll müssen die Ports folgendermassen verbunden werden (Beispiel FortiGate-60D):

       Fortinet-1632.jpg

Nachfolgend ein Output eines solchen Tests für eine FG-60D (Netzwerk Port gemäss Grafik oberhalb "überlistet"):

       Datei:Hqip-output-v54.txt

Um die Fortigate wieder in den originalen Zustand zu versetzen führe ein Login über die Serielle Konsole durch mit dem User "admin" (kein Passwort). 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 betreffend diesem Image gelöscht worden. Wenn es nach dem Neustart zu Hinweise/Errors betreffend der Konfiguration kommt zB:

       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 nötig um das Problem zu beheben:

       # execute reboot

Für FortiGate Devices der "E" Serie sowie FG-300D/500D existiert kein HQIP Image wie kann ich dennoch einen Hardwaretest ausführen?

Bei der "E" Serie zB FG-51E sowie FG-300D und FG-500D kann von der "Support" Seite kein separates HQIP Image heruntergeladen werden. Auf diesen Umstand wird auf der "Support" Seite auch darauf hingewiesen. Dazu steht jedoch auf den erwähnten FortiGate Devices ein neues "diagnose" Kommando zur Verfügung das diesen "Hardware Tests" im Stil von "HQIP" durchfü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 basierend auf einer FG-50E:

       Datei:Diagnose-hardware-test-suite-all.txt

Gibt eine Übersicht wie die Luftzirkulation (Airflow) in einer FortiGate funktioniert?

Im Nachfolgendem Dokument wird gezeigt wie die Luftzirkulation/Kühlung in den entsprechenden FortiGate Devices aufgebaut ist und wie diese funktioniert:

      Datei:Fortinet-Hardware-Airflow.pdf

Wie kann ich unter die verschiedenen Hardware Informationen eines FortiGate Devices anzeigen lassen?

Um die detaillierten Hardware Informationen auf einem FortiGate Device aufzulisten steht der folgende Befehl zur Verfügung:

Konfiguration über CLI
 # get hardware [cpu | memory | nic | npu | status]

Somit kann anhand der Optionen folgendes ausgeführt werden:

Konfiguration über CLI get hardware cpu
# 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
Konfiguration über CLI get hardware memory
# 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
Konfiguration über CLI get hardware cpu
  # 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
Konfiguration über CLI get hardware memory
  # 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 über die Memory Benutzung zu erhalten siehe nachfolgenden Artikel: Artikel Benutzung Memory anzeigen lassen

Konfiguration über CLI get hardware nic
 # 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 benütze folgenden Befehl:

 # get hardware nic [Name des Interfaces zB "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
Konfiguration über CLI get hardware npu
 # get hardware npu 
  legacy    legacy
  np1       np1
  np2       np2
  np4       np4

Dieser Output wird nur angezeigt sofern der entsprechende Device auf dem dieser Befehl ausgeführt wird auch einen "NPU" (Networking Processing Unit) enthält. Wenn es sich um einen Device mit integrierten NPU handelt dh. SoC wird kein Output geliefert.

Was bedeuten die verschiedenen LED's Stati über die ein FortiGate Device am FrontPanel verfügt?

Ein FortiGate Device verfügt am FrontPanel über verschiedene LED's dh. zB High Availability, Power, Status usw. Diese können verschiedenen Stati anzeigen. Die Bedeutung der verschiedenen LED's sind im nachfolgenden Dokument anhand einer FG-30E, FG-60C sowie FG-100D beschrieben:

       Datei:FortiGate LED Specs.pdf

Wie wird ein virtueller Switch komplett gelöscht?

FortiOS60.jpgFortiOS62.jpg

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 einer 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. Folgendermassen muss dabei vorgegangen werden:

Konfiguration über das WebGui Durchzuführende Schritte

Fortinet-1974.jpg

  1. Unter Dashboard -> Main auf den Hauptbildschirm gehen
  2. Mit der Maus ganz nach unten rechts in die Ecke fahren, bis das kleine Zahnrad erscheint.
  3. Zahnrad anklicken und auf Add Widget klicken.

Fortinet-1975.jpg

  1. Die Tempratur Anzeige findet man unter dem Titel System bei Sensor Information
  2. danch mit Close wird das Widget im Main Dashboard hinzugefügt.

Fortinet-1976.jpg

  1. Im Main Daschboard kann jetzt das Widget Sensor Information gefunden werden
  2. Es wird der allgemeine Tempratur Status angezeigt und der Status des Lüfters (Fan Speed).
  3. Um Detailierte angaben zu bekommen, auf den Status klicken

Fortinet-1977.jpg

  1. Jetzt kann auf Show sensor details geklickt werden

Fortinet-1978.jpg

  1. Es erscheint eine Liste mit allen Tempratur anzeigen, welche vorhanden sind.
  2. Es kann oben Rechts zwischen Grad Celsius oder Farenheit eingestellt werden.

Über die CLI stehen zwei Befehle zur Verfügung, mit welchen die Temperaturen und Alarme auf FortiGate überprüft werden können. Mit diesen Befehlen können mehr Informationen ermittelt werden:

Konfiguration über CLI Beschreibung
# 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 jeder Komponente aufgeführt. Dabei wird der aktuelle Wert, der Schwellwert und der Alarumstatus angezeigt.

  • Flag = 0 : Die Komponente arbeitet korrekt.
  • Flag = 1 : Die Komponente arbeitet nicht richtig.

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 Schwellenwerte der Sensoren angezeigt:

  • upper_critical = höchster kritischer Wert
  • upper_non_critical = höchster nicht kritischer Wert
  • upper_non_recoverable = höchster nicht wieder herstellbarer Wert
  • lower_non_critical = tiefster nicht kritischer Wert
  • lower_critical = tiefster kritischer Wert
  • lower_non_recoverable = tiefster nicht wieder herstellbarer Wert

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
NOTE

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

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 Falles zurückgesendet werden 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 das folgende CLI Kommando

Konfiguration über CLI
# execute erase-disk [SYSTEM | Internal]

Wenn ein Device aus Gründen der "Security Gründen" 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, der es ermöglicht bei einem RMA Austausch den Device selber zu entsorgen, anstelle diesen dem Hersteller zurück zu senden. Dieser Service wird "FortiCare RMA Secure Service" genannt. Weitere Informationen sind im folgenden 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 Fehler enthält?

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. Um die Disk's aufzulisten benutze folgenden Befehl:

NOTE:

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 gewählt werden. Daraus ergiebt 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 der gewünschte Device gesetzt/gewählt wurde/ist sowie sofern 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 ausführt siehe nachfolgenden 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" (zB Stromunterbruch) im FortiOS 5.2.x die Funktion eingebaut, dass nach einem "unclean shutdwown" während dem Start Prozess dies erkannt wird und automatisch ein "filesystem check" ausgeführt wird. Diese wird "nicht" anhand eines "expliziten" Disk Tst aufgeführt sondern ähnelt einem "fsck" das auf einem Linux System ausgeführt wird. In diesem Vorgang wird durch das System bemerkt das 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. zB 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:

       Fortinet-1609.jpg

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 wird ein Neustart des Devices ausgeführt und dieser "filesystem check" 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

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 die grösseren Devices stehen zusätzlich für die Redundanz ebenfalls "RPS Devices" (Redundand PowerSupply) zur Verfügung. Welche Geräte kompatible sind zu den seperaten "RPS Devices" siehe nachfolgender Artikel:

       Fortinet:ProduktInfo#FortiRPS

Nachfolgende Tabelle zeigt für welchen FortiGate Device welches sperate zu beziehende "PowerSupply" bestellt werden kann:

       Fortinet-1081.jpg
       Fortinet-1082.jpg
       Fortinet-1885.jpg
       Fortinet-1886.jpg
       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 sowie FortiAP-S "PowerSupplies" zur Verfügung. Weitere Informationen dazu siehe nachfolgender 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 Huawai einsetzen?

Dies ist möglich jedoch ausgiebig vorgängig 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               Huawayi Electrical Transceiver SFP Module 1000Base T
       
       NOTE Durch Fortinet werden ebenfalls nicht eigenen Transceiver eingesetzt sondern von Fremdherstellern dh. wird ein Transceiver 
            über Fortinet bestellt, wird ein Transceiver zB von Huaway 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 Device's 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!
       
       Fortinet-1085.jpg
       Fortinet-1086.jpg
       Fortinet-2075.jpg
       Fortinet-1888.jpg

Es können für die FortiGate Devices auch Fremdprodukte als SFP's eingesetzt werden jedoch gibt es keine Gewährleistung das 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 Desweiteren 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 befindet sich im folgenden Dokument:

       Datei:FortiTransceivers-Datasheet.pdf

Was sind die genauen Spezifikationen der SFP's Module die 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 für die 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 aufgelistet der SFP Module die von Fortinet für die FortiGate Devices geliefert werden:

       Fortinet-1087.jpg
       NOTE Die Informationen stammen aus einem Fortinet "Knowledgebase Artikel" und über diesen sind weitere Informationen verfügbar:
            
            http://kb.fortinet.com/kb/dynamickc.do?cmd=show&forward=nonthreadedKC&docType=kc&externalId=13823&sliceId=1
       Transceivers
       Fortinet-1129.jpg
       Breackout Cables
       Fortinet-1887.jpg

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 einen FortiGate Device überprüfen?

Bis anhin war es nicht möglich über einen FortiGate Device dh. über das FortiOS ein SFP Module/Tranceiver zu überprüfen dh. zB ob dieser korrekt erkannt wurde. Neu unter FortiOS 5.4 ist dies anhand des nachfolgenden Kommandos 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. Somit wird ein Fremdprodukt als SFP/QSFP Module/Transceiver eingesetzt, sollten die kurz anhand des nachfolgenden Kommandos ü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 Transeiver welche als orginal Fortinet Transeiver erworben wurden, zum teil als nicht supportet 3rd Party Module angezeigt:

Fortinet-2595.jpg

Es handelt sich hierbei um einen BUG und dieser soll 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)

FortiOS

FortiGuard (FDDS)

FortiCloud

FortiSandbox

FortiExplorer

USB Port

Konsolen Port

Was für ein Kabel wird für den Konsolen Anschluss (RS-232) benötigt?

Eine Fortigate Firewall kann über den Konsolenport, SSH oder HTTPS administriert werden. Für das initiale Setup oder bei Störungssuche ist der Konsolenport die beste Wahl. Der Konsolenport auf einer Fortigate kommt in Form einer RS232 Schnittstelle daher. Problematisch ist, dass heutigen Workstations und/oder Laptops nicht mehr mit einem RS232 Anschluss hergestellt werden. Als Workaround gibt es Adapterkabel von USB auf RS232. Folgende Adapter bietet ALSO in ihrem Sortiment:

USB Stecker Typ A
LINDY USB RS232 Converter w/ COM Port Retention RS-232 Port
Transfer Rate: up to 230 kBit/s
Chipset: FTDI
Hersteller Artikel-Nr.: 42686
ALSO Artikel-Nr.: 2909413
EAN-Code: 4002888426862
Link: https://www.also.ch/ec/cms5/6110/ProductDetailData.do?prodId=2909413

USB Stecker Typ C
LINDY USB Type C Serial Converter
Hersteller Artikel-Nr.: 43248
ALSO Artikel.Nr.: 3023950
EAN-Code: 4002888432481
Link: https://www.also.ch/ec/cms5/6110/ProductDetailData.do?prodId=3023950
Treiber:Datei:PL2303 Prolific DriverInstaller v1190.zip


Bei beiden Adaptern wird kein RS232-to-RJ45 Kabel mitgeliefert. Diese kann unter folgender ALSO-Nr. bezogen werden: 2692654

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 Pin-Belegung 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 PIN-Belegung der Seriellen Konsolen (RS-232 / DB9 / RJ-45 / AUX) auf einem FortiGate Device aus?

Nachfolgend die technischen Informationen über die Pin-Belegung der Seriellen Konsole der Fortinet Produkte wie FortiGate, FortiAnalyzer, FortiManager sowie FortiMail. In den meisten Fällen haben die Devices eine RJ45 Schnittstelle als Konsolen Port. Ältere Modelle können auch einen RS-232 DB9 Port haben. Es gibt auch Modelle mit einem AUX Port. Gemeinsam haben alle, dass sie die gleiche Pin-Belegung benutzen:

Pin Belegung RJ45
Fortinet-1083-A.jpg
Pin Belegung RS232
Fortinet-1083-B.jpg

Kann ich auf einer FortiGate den Seriellen Konsolen Port (RS-232) deaktivieren?

Wenn man zum Beispiel verhindern möchte, dass in einem Datacenter usw. über den Seriellen Konsole Port unerlaubt zugegriffen wird, kann dieser mit folgenden Befehl deaktiviert werden:

Konfiguration über CLI
# config system console
# set login disable
# end

Es wird nur der "Konsolen Port" deaktiviert und der "USB" Port muss sofern gewünscht separat deaktiviert werden:

Konfiguration über CLI
# config system console
# set fortiexplorer disable
# end

Web Gui

Wie kann ich den Hostname auf der Webgui Login Page sichtbar machen?

FortiOS60.jpgFortiOS62.jpg

Wenn man sich über das WebGUI auf die Fortigate verbindet, wird Default mässig auf der Anmeldemaske der Hostname der Firewall nicht angezeigt.

Um den Hostname auf der Anmeldemaske zu aktivieren, muss dies über die CLI folgendermassen aktiviert werden:

Konfiguration über CLI
# config system global
# set gui-display-hostname [enable | disable] 
# end
Fortinet-1614.jpg

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:
Die Abhängigkeiten beispielsweise von einem Interface sind jeweils hier zu finden:

Fortinet-2256.png

Im CLI:

Konfiguration über 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'

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ät 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, der 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 Session 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 noch 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, um die komplette Konfiguration anzuzeigen. Das folgende Beispiel zeigt den Unterschied , wenn -f verwendet wird und wenn -f nicht benutzt wird:

show | grep ldap-group1 Ohne -f

show | 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

Upgrade

Wo finde ich den Upgrade Pfad um auf eine höhere FortiOS Version upzugraden?

Seit September 2018 hat Fortinet folgendes Tool zu Verfügung gestellt:

Alternativ kann der Upgradepfad auf dem Supportportal im Download Center entnommen werden (support.fortinet.com). Leider ist dieser nur bis zur Startversion 5.2.9 hinterlegt.

support.fortinet.com -> DOWNLOAD -> FIRMWARE IMAGES
Fortinet-20006.jpg

Wenn von einer früheren Version upgegradet werden soll, wird unter folgendem Link weitergeholfen:

Was muss ich beachten wenn ich auf das FortiOS 6.2.2 upgraden will?

Achtung.jpg

Vorsicht wenn man eine FortiGate welche einen SoC3 verbaut hat, auf die Version 6.2.2 upgraden will, muss man beachten, dass die Authentifizierung mit Mobile Token für 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 man aus den Release Notes 6.2.2 entnehmen:

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 sich mit dem SSL-VPN zu verbinden. Beim Passwortfeld 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 ausdrücklich auf versuchen verwiesen im Ticket für diesen Workaround.

Backup / Restore

Wie kann ich das Konfigurationsfile von der FortiGate backupen?

FortiOS60.jpgFortiOS62.jpg

Backup ist nur für Feiglinge. Dieser Spruch hört oder liest man oft, wenn aber doch einmal die FortiGate ersetzt werden muss ist man froh wen 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 zu kommen.

Backup über das WebGui erstellen:
  1. Im Header Rechts auf den Admin User das Menu öffnen
  2. Configuration anwählen
  3. Backup anwählen
Fortinet-2629.jpg

Backup to kann Local PC oder falls ein USB Stick an der FortiGate eingesteckt ist auch USB Disk ausgewählt werden. Die Option Encryption ist dafür da, dass man das Backup File verschlüsselt abspeichern kann. Das Passwort, welches man definieren muss, darf nicht verloren gehen. Wenn das Passwort nicht mehr bekannt ist, gibt es keine Möglichkeit dieses Backupfile wieder in die FortiGate einzulesen. Auch über ein Support Ticket wird dies unmöglich sein. Wenn man das Backup verschlüsselt ablegt, ist es nicht mehr möglich die Konfiguration im Texteditor zu lesen und zu bearbeiten.

Fortinet-2630.jpg

Es kann definiert werden, wohin das Backup File abgespeichert werden soll. Es wird eine Datei mit der Endung .conf abgelegt. Diese Datei ist im Texteditor bearbeitbar. Somit kann man gewisse Änderungen direkt im Backupfile noch vornehmen. Man kann diese dann wieder als .conf Datei abspeichern und sie in die FortiGate einlesen.

Fortinet-2631.jpg

Konfiguration über die CLI:

Über die CLI gibt es noch weitere Lokationen zu welchem man ein Backup abspeichern kann. Zum Beispiel ist es möglich, das Backup auf einen FTP oder TFTP Server zu speichern.
Der Grundlegende Befehlt um eine Backup durchzuführen ist execute backup config <Location>
Wenn man ein ? nach config eingibt, werden alle möglichen Lokationen angezeigt:

# execute backup config ?
flash                 Backup config file to flash.
ftp                   Backup config file to ftp server.
management-station    Backup config file to management station.
tftp                  Backup config file to TFTP server.
usb                   Backup config file to USB disk.
usb-mode              Backup config file for USB mode.

Um ein Backup auf einen FTP Server zu speichern geht das folgendermassen:

execute backup config ftp <File_Name> <FTP_Server_IP> [<Port>] [<Usermame>] [<Passwort>]

Firmware

Wo finde ich die Release Notes für FortiOS 6.0?

FortiOS60.jpg

Die aktuellen Release Notes für das FortiOS 6.0 kann in der folgenden Tabelle entnommen werden:

FortiOS 6.0 Release Notes

Die aktuellen Release Notes welche auch immer gepflegt werden von Fortinet selbst findet man auf der Docs Seite :

Wo finde ich die Release Notes für FortiOS 6.2?

FortiOS62.jpg

Die aktuellen Release Notes für das FortiOS 6.2 kann in der folgenden Tabelle entnommen werden:

FortiOS 6.0 Release Notes

Die aktuellen Release Notes, welche auch immer gepflegt werden,findet man auf der https://docs.fortinet.com Seite:

Wann geht eine FortiOS Version end of Support?

Das FortiOS 6.0 wird im September 2023 end of Support gehen.

Der Life Cycle vom FortiOS ist wie folgt definiert:

Fortinet-1866.jpg

Die GA-Phase dauert 36 Monate, danach geht das FortiOS 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 keinen technischen Support mehr von Seite Fortinet her. Das heisst, Tickets werden erst bearbeitet, wenn die FortiGate auf einen aktuellen Software Stand gebracht wurde. Der ganze Life Cycle von einer FortiOS Generation dauert also 54 Monate.

       Mehr zum TAC Support     : Fortinet:Support-Case#Was_wird_vom_Technischen_Fortinet_Support_.28TAC.29_nicht_unterst.C3.BCtzt.3F

Auf der folgenden Tabelle sind die Daten welche von 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 2020 -- --

(1) Das v4.0MR3 End of Support Date für Hardware, die 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, Fragen und die Einreichung von Fehlerberichten.

Quelle: https://support.fortinet.com/Information/ProductLifeCycle.aspx

Wie wird eine FortiGate von Grundauf mit einem entsprechenden FortiOS installiert (staging)?

FortiOS60.jpgFortiOS62.jpg

Wenn ein FortiGate Device von Fortinet ausgeliefert wird, kann dieser FortiGate 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, basieren diese oft auf einem sogenannten "Branche Release". Ein "Branche Release" ist eine Vorabversion eine "GA" Releases (General Availibility). Aus diesem Grund Empfehlen wird bei jedem FortiGate Device ein "staging" durchzuführen mit dem FortiOS der Wahl. Dabei spielt es keine Rolle welcher FortiOS auf dem FortiGate Device existiert oder welche Konfiguration usw. vorhanden ist, denn durch ein "staging" wird der FortiGate Device von Grundauf neu installiert und sämtliche Konfiguration sowie das bestehende FortiOS gehen dabei verloren. Somit sollte jeder FortiGate Device in diesem Sinne aufgesetzt werden. Absolute 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 somit muss mit einem entsprechenden Device zB "USB Konverter" gearbeitet werden. Wir empfehlen den "EX-1301-2" USB Konverter der 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 von einem TFTP Server auf den FortiGate Device um diesen nachträglich zu installieren. Aus diesem Grund muss auf der entsprechende Workstation die verbunden ist mit dem FortiGate Device ein TFTP Server installiert werden. Wir empfehlen folgenden TFTP Server der frei 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 innerhalb dieses Menüs "TFTP Server". Starte den TFTP Server anhand dieses Menü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 dafür ist der Folgende: Beim ersten Start des TFTP Servers wird das "TFTP Server Root Directory" angelegt und der Server gestoppt. Per Standard befindet sich das "TFTP Server Root Directory unter folgenden Verzeichnis "C:\TFTP-Root". Kontrolliere kurz ob dieses Verzeichnis angelegt wurde sowie starte den TFTP Server abermals 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 FortiOS Image um in "image.out". Als nächsten Schritt konfiguriere die Netzwerkkarte der entsprechende Workstation die mit dem FortiGate Device über "Consolen Port" verbunden ist mit folgender IPv4 Adresse und Subnet Maske sowie deaktiviere sämtlichen anderen Netzwerkkarten wie zB für 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 varieren. Bei "staging" Prozess kann diese jedoch eruiert werden!

Die Konfiguration der Netzwerkkarte benötigt keinen "Default Gateway" sowie 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 Uebertragung des FortiOS Image zum TFTP Server erlaubt wird. Aus diesen Ausführung ergiebt 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 benütze ein normales RJ-45 Kabel. Der entsprechende
            Netzwerk Port in unserem Beispiel "WAN1" ist abhängig vom FortiGate Device. Der entsprechende zu benützende Port wird während
            dem "staging" Prozess aufgelistet!

Nun muss der FortiGate Device neu gestartet werden (execute restart) oder ein "power-on" ausgeführt werden. Sobald der FortiGate Device startet muss auf folgende Meldung geachtet werden um den Start Prozess abzubrechen und um in das Bios des FortiGate Devices zu gelangen:

Konfiguration über CLI
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:

Konfiguration über CLI
[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 diesen FortiGate Device gilt:

Konfiguration über CLI
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 durch betreffend der Konfiguration des "staging" Prozesses:

  • Ist das RJ-45 Kabel am korrekten Netzwerk Port der FortiGate angeschlossen (Beispiel: WAN1)
  • Wurde die korrekte IPv4 Adresse sowie 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 Postion "[F]: Format boot device.":

Konfiguration über CLI
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 die Position "[T]: Initiate TFTP firmware transfer." aus:

Konfiguration über CLI
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 der ein Transfer des Files bestätigt wird! Auf dem FortiGate Device wird eine korrekte Uebertragung folgendermassen angezeigt:

Konfiguration über CLI
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 benutzt. Wird "B" für "backup" gwählt wird die Partition nicht "active" gesetzt und somit beim nächsten Neustart nicht benutzt. Wenn "R" für "run" ausgeführt wird so wird das FortiOS in den Memory Bereich installiert dh. nach einem Neustart des Devices steht 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" benutzt wird zB 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 benütze folgende Login Informationen:

Konfiguration über CLI
User: admin
Password: [Kein Passwort]

Nun kann die "disk" formatiert werden mit folgenden Befehl:

Konfiguration über CLI
# 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 zB eine FG-50E nicht ausgeführt werden. Der Grund ist der Folgende: 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 ausgeführt werden:

Konfiguration über CLI
# 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" die 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 das in den Flash Bereich kopiert wird angelegt. Dabei muss berücksichtigt werden, dass alle Informationen der "disk" verloren gehen. Somit FortiGate Modelle die 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 unterschieden werden zwischen folgenden Möglichkeiten

  • Der FortiGate Device verfügt über einen internene Hardware "Switch Controller"!
  • Der FortiGate Device verfügt über keinen internene 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 dh. nach dem ausgeführten Neustart sind auf den Interfaces für den internen Switch die nun einzeln verfügbar sind keine IP Adressen mehr konfiguriert. Um auf einen Zugriff über Mgmt. Interfaces des FortiGate Devices zu gewährleisten muss folgendes auf einem entsprechenden Interface ausgeführt werden:

Verifiziere die einzelnen Interface Namen

Konfiguration über CLI
# show system interface

Konfiguriere ein entsprechendes Interface

Konfiguration über CLI
# 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 per Standard ein "redirect" auf "https" durchgeführt. Möchte man dies verhindern kann folgendes zusätzlich ausgeführt werden:

Konfiguration über CLI
# config system global
# set admin-https-redirect [enable | disable]
# end

Der "staging" Prozess ist abgeschlossen und der FortiGate Device kann in Betrieb genommen werden!

Hier kann eine Anleitung heruntergeladen werden:

3G/4G Modem

DNS

Wie konfiguriere ich auf einer FortiGate die System DNS Server?

FortiOS60.jpgFortiOS62.jpg

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 einwandfrei funktionieren. Der DNS Server ist eine globale Einstellung. Heisst, wenn mit VDOM gearbeitet wird, ist der System DNS Server für alle gültig. Konfiguriert werden die System-DNS-Einstellungen im Menu DNS:

WebGui Menu : Network > DNS
Fortinet-2616.jpg

Über die CLI werden die System DNS Server folgendermassen 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 konfiguriert werden, wie lange ein DNS Eintrag im Cache gespeichert werden soll. Weiter kann auch konfiguriert werden wie viele DNS Einträge im Cache maximal gespeichert werden können.

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?

FortiOS62.jpg
Seit dem FortiOS 6.2 wurde die 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 relativ 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, welche authentifiziert und verschlüsselt ist, aufgerufen. So bezieht der Client eine DNSSEC validierte Information vom Namensserver. So lesen keine Drittpersonen mit. Die Namensauflösung des Resovers erfolgt dann im Klartext. Dies ist aber nicht so schlimm, da der Urheber der Anfrage nicht ersichtlich ist. Es soll aber bereits Pläne geben, dass 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 natürlich abhängig wie die Sicherheitseinstellungen des Systems sind). Auf der FortiGate ist es so eingestellt, dass wenn die DoT Anfrage nicht funktioniert wird normal über UDP53 die Anfrage unverschlüsselt abgesetzt. Dies ist problematisch da der Port 853 an vielen Orten (Perimeter Firewalls, Hotels oder öffentliche Hot Spots) noch blockiert wird. Ausserdem bringt TCP, noch zusätzlich in Kombination mit TLS, einiges an Verwaltungs-Overhead mit sich, der die für zügiges Surfen elementare Namensauflösung bremst.

Fortinet-2618.jpg

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:

Fortinet-2617.jpg

  • 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
Konfiguration über CLI
# config system dns
# set dns-over-tls [disable|enable|force]  
# set ssl-certificate "Fortinet_Factory"
# end

Wie kann ich auf einer FortiGate den DNS Cache löschen?

FortiOS60.jpgFortiOS62.jpg

Der 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 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?

FortiOS60.jpgFortiOS62.jpg

Ein Split-DNS Server ist ein DNS-Server der auf Anfrage einer bestimmten Source/Environement (internal und/oder external) die entsprechende Antwort ausliefert. 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 da 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 als «DNS Database» umgesetzt werden. Standardmässig ist dieses Feature auf der FortiGate NICHT ERSICHTLICH und muss erst unter folgendem Abschnitt konfiguriert werden:

WebGUI Menu : System -> Feature Visibility'

Das Feature DNS Database muss eingeschaltet werden:

Fortinet-2619.jpg
Komfiguration über die CLI:
# 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:

192.168.1.1

IP Adresse des WebServers im DMZ

www.mydomain.ch

FQDN konfiguriert und registriert auf dem Authoritativen DNS Server im Internet

212.59.153.115

Public IP "A" Record konfiguriert auf dem Authoritativen DNS Server im Internet

Und nehme 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 konfiguriert werden:

Konfigurieren über das WebGUI:
Über das Menu Network -> DNS-Servers bei "DNS Database" auf "Create New" eine neue DNS-Zone für MyDomain.ch erfassen:
Fortinet-2620.jpg

Der zu konfigurierende DNS Server muss als MASTER Server konfiguriert werden, jedoch NICHT als Authoritativ!

Fortinet-2621.jpg

Der DNS Server ist konfiguriert - nun muss für die entsprechende Zone ein "A" Record für www.mydomain.ch erfasst werden!

Fortinet-2622.jpg
Fortinet-2623.jpg

Es ist zu empfehlen für den Host ebenfalls einen "PTR-Record" zu erstellen!

Fortinet-2624.jpg

Um die Einträge für einen DNS Server auf einer FortiGate aufzulisten resp. die DNS Database zu "dumpen" kann folgender Befehl benutzt werden:

# diagnose test application dnsproxy 8

Konfiguration über die CLI
# 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:

Fortinet-2625.jpg
Fortinet-2626.jpg


Es kann noch ein DNS-Filter Profil direkt angehängt werden.

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::

Fortinet-2627.jpg
Konfiguration über die CLI:
# config system dns-server
# edit internal
# set mode recursive
# end

Nun fehlt nur noch der letzte Schritt das heisst, dass dem User über DHCP der entsprechende DNS Server zugewiesen wird:

Konfiguration DHCP Server internal Interface:
  1. Über das Menu Network -> Interfaces das interne Interface selektieren. (in unserem Fall internal)
  2. Rechtsklick und das internal Interface editieren
  3. Bei der Option DHCP Server den DNS Server auf same as Interface IP setzen.
  4. same as Interface IP bedeutet, dass die IP Adresse des internal Interfaces propagiert wird (192.168.1.99)
  5. mit OK wird die Konfiguration aktiv.
Fortinet-2628.jpg
Konfiguration über die CLI:
# 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 so wird dieser 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 "Zone Transfer" aktiviert werden?

FortiOS60.jpgFortiOS62.jpg

Wenn auf einer FortiGate ein DNS Server konfiguriert wird, 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.

Konfiguration über CLI:
# 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 im folgenden Artikel entnommen werden:

FortiGate-6.0-6.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_einen_Split-DNS_Server_einrichten.3F

Desweiteren ist bei der Komunikation zwischen "authoritativen" und/oder "none-authoritativen" Servern darauf zu achten, mit welcher IP die Komunikation durchgeführt wird. Dies bedeutet im normal Fall wird der "non-authoritative" Server (in unserem Beispiel die FortiGate) ebenfalls im "authoritativen" Server eingetragen. Kommuniziert die FortiGate nicht die gewünschte "Source IP Adresse" zum authoritativen Server, kann diese mit folgender Konfiguration entsprechend gesetzt werden:

Konfiguration über CLI:
# 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?

FortiOS60.jpgFortiOS62.jpg

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 d. h. dieser beantwortet Anfragen von bestimmten Source Adressen anders 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 und es 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. D. h. wenn ein interner DNS Server vorhanden ist so wird ein "Forwarder" für "mydomain.ch" konfiguriert und für "mail.mydomain.ch" die IP Adresse z.B. "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 siehe nachfolgenden Artikel:

FortiGate-6.0-6.2: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" benutzt werden. Diese Funktion steht im Zusammenhang mit dem "Session-Helper". Um eine "dnstranslation" zu implementieren gehe folgendermassen vor:

Beispiel:
  • Mail Server FQDN: mail.mydomain.ch
  • Mail Server Public IP: 212.59.153.125
  • Mail Server Internal IP: 192.168.1.100
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 folgendermassen:

        
# 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" siehe nachfolgender Artikel:

Allgemein:Assigned-Internet-Protocol-Numbers-RFC
Schritt 2:

Als nächstes konfigurieren wir die "dnstranslation" und zwar gemäss unserem Beispiel wie folgt:

        
# 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 sowie dessen Antwort werden folgendermassen auf der FortiGate abgearbeitet:

Anfrage = User --> nslookup mail.mydomain.ch --> Anfrage an Public DNS Server --> FortiGate Policy Allow --> Public DNS Server Anfrage "mail.mydomain.ch"
Antwort = Public DNS Server Antwort mail.mydomain.ch --> 212.59.153.125 --> FortiGate "Session-Helper" --> "dnstranslation" Funktion = 192.168.1.100 --> User

NOTE wie hier in diesem Beispiel gezeigt kann die Funktion anhand "nslookup" getestet werden und somit verifiziert werden ob die "dnstranslation" korrekt funktioniert!

In diesem Sinne kann jede DNS Anfrage die über die FortiGate läuft umgeschrieben werden. Natürlich ist diese Funktion nicht "nur" auf Public DNS Server beschränkt sondern nur auf Port 53 DNS (UDP). Dies bedeutet diese Funktion "dnstranslation" kann ebenfalls für temporäre Umleitungen im internen Bereich benutzt werden. Diese Funktion kann oder sollte jedoch kein Split DNS Server ersetzen da die vers. Einträge nicht ersichtlich sind auf der FortiGate.

DDNS

DHCP

ARP

Routing

Wie funktioniert das Routing auf einer FortiGate?

FortiOS60.jpgFortiOS62.jpg

Beim Routing entscheidet die FortiGate welche im NAT-Modus betrieben wird, wohin die Pakete gesendet werden sollen, die es empfängt oder die FortiGate selber erzeugt.

Alle Netzwerkgeräte, die 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 ein nächster Hop. Jeder Routing Hop im gerouteten Pfad erfordert eine Routingtabellensuche (Routing Lookup), um das Paket weiterzuleiten, bis dieses das endgültige Ziel erreichen kann.

Beim Routing von Paketen findet FortiGate zunächst eine passende Route in seiner Liste der Routen 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 es verschiedene Routenattribute, um die beste Route zu ermitteln.

Die richtige Routing-Konfiguration ist wichtig. Wenn Routen falsch konfiguriert sind, erreichen Pakete ihr Ziel nicht und gehen verloren.

Standardmässig sind viele Aspekte auf FortiGate stateful. Das bedeutet die FortiGate entscheidet 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 seine Session Tabelle. Alle folgenden Pakete werden gemäss Session Tabelle und nicht nach der Routingtabelle weitergeleitet. So werden alle Pakete, welche zu der gleichen Session gehören dem gleichen Pfad 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 ein zusätzliche Routingtabellen Lookups durch, um diese Informationen wiederherzustellen

Eine Methode der manuell konfigurierten Routen ist die statische Route. Wenn man eine statische Route konfigurieren, wird der FortiGate mitgeteilt: "Wenn du ein Paket siehst, dessen Ziel innerhalb eines bestimmten Bereichs liegt, sende dieses es über ein bestimmtes Netzwerkinterface an einen bestimmten Router". Es kann auch die Distanz und die Priorität so konfigurieren, dass die FortiGate die beste Route zu jedem Ziel ermitteln kann, das mehreren Routen entspricht.

In einfachen Heimnetzwerken ruft DHCP beispielsweise automatisch eine statische Route ab und konfiguriert diese selbstständig. Das ISP Modem sendet dann den gesamten ausgehenden Datenverkehr über den Internet-Router des ISPs, der Pakete an ihr Ziel weiterleiten kann. Dies wird typischerweise als Standard-Route bezeichnet, da der gesamte Traffic, der nicht mit anderen Routen übereinstimmt, standardmässig über diese Route geleitet wird. Das hier gezeigte Beispiel ist eine Standardroute.

Fortinet-2572.jpg

Das Ziel-Subnetzwert von 0.0.0.0.0.0/0.0.0.0.0 passt zu allen Adressen innerhalb eines Subnetzes. Die meisten FortiGate, als Perimeter Gerät des Netzwerkes fungieren, verfügen über mindestens eine dieser Standardrouten, um sicherzustellen, dass der Internettraffic an den ISP weitergeleitet wird.

Subnetze welche auf der FortiGate direkt eine Layer 2 Konnektivität verfügen, brauchen keine statische Route

Jede Route in der Routingtabelle hat die folgenden Attribute:

  • Network
  • Gateway IP
  • Interfaces
  • Distance
  • Metric
  • Priority

Fortinet-2573.jpg

Distanz:
Die Distanz oder 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 diejenige 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.

Fortinet-2574.jpg

Standardmässig haben Routen, die über das RIP-Protokoll gelernt wurden, einen höheren Distanzwert als Routen, die über das OSPF-Protokoll gelernt wurden. OSPF gilt als genauer als RIP.

Die folgenden Werte sind die Distanzen auf der 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.

Fortinet-2575.jpg

Priorität:
Wenn mehrere statische Routen den gleichen Distanzwert haben, sind diese beide in der Routingtabelle aktiv. Welche Route wird also verwendet, um passende Pakete zu routen? In diesem Szenario verwendet FortiGate den Prioritätswert als Tiebreaker, um die beste Route zu ermitteln. Routen mit geringerer Priorität werden immer 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.

Fortinet-2576.jpg

Was bedeutet der Begriff ECMP beim Routing?

FortiOS60.jpgFortiOS62.jpg

Im Normallfall wird die Beste Route ermittelt anhand von Routenattributen, welche durch das Routing zu Verfügung gestellt werden. (Metric, Distanz, Priorität ..) Was passiert also, wenn zwei oder mehre 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 Ausgleichstraffik 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 Interfacevolumenschwellenwerten 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 Sessions 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 FortiGate eine primäre Route, bis ein Schwellenwert für das Verkehrsaufkommen erreicht ist; danach verwendet es die nächste verfügbare Route.


Achtung.jpg

Wenn eine der ECMP-Routen ausfällt und aus der Routingtabelle entfernt wird, wird der Traffic über die restlichen Routen geleitet.
Es ist keine spezielle Konfiguration für die Ausfallsicherung der Route erforderlich.

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 pro Interface konfiguriert werden:

# config system interface
# edit [INTERFACE_NAME]
# set spillover-threshold [Wert zwischen 0 und 16776000 definieren]

BEISPIEL:
In diesem Szenario hat 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, die 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.

Fortinet-2577.jpg

# 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)?

FortiOS60.jpgFortiOS62.jpg

Pakete werden manchmal aus Routing- und Sicherheitsgründen gelöscht. Reverse Path Forwarding (RPF) ist ein Mechanismus, der FortiGate welches das Netzwerk vor IP-Spoofing-Angriffen schützt. Es wird überprüft, ob es eine Route zurück zur Destination des Pakets gibt. Diese Prüfung wird auf dem ersten Paket einer neuen Session durchgeführt. Es wird auch nach einer Routenänderung auf dem nächsten Paket in der ursprünglichen Richtung ausgeführt.

Es gibt zwei RPF-Methoden:

  • Loose
  • Strict

Veranschaungsbeispiel:

Diagramm

Beschreibung

Fortinet-2578.jpg

In diesem Szenario wird der eingehende Internetverkehr, der bei wan1 ankommt, akzeptiert, da die Standardroute eine gültige Route zurück zur Source ist.

Es gibt jedoch zwei Interfaces, die 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 über Port1. So wird der Datentraffic von 192.168.4.0.0/24 nach Port1 eingestellt, weil er bei der RPF-Prüfung fehlgeschlagen ist.

Das andere Interface, die den Datentraffic nicht weiterleitet, ist wan2. Während wan2 physisch mit dem Internet verbunden ist, sind die einzigen IP-Adressen, die als Sourcen oder Destinationen für wan2 gelten, die im Subnetz 198.18.2.0/24. So wird eingehender Datentraffic von einer anderen Source nicht durch die RPF-Prüfung geleitet und wird 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

Fortinet-2579.jpg

So fixen wir das Problem:

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 behoben, indem eine statische Route hinzugefügt wird. In diesem Fall ist es eine Standardroute für wan2. Diese zweite Standardroute muss die gleiche Distanz haben wie die Standardroute für wan1. Dadurch 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 sind zwei Routen mit gleicher Distanz, aber unterschiedlicher Priorität konfiguriert worden. Eine Route ist also die beste (die mit der niedrigsten Priorität), aber beide sind aktiv. Die beste Route wird für den ausgehenden Traffic verwendet, aber beide können eingehende Verbindungen 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

Das RPF kann entweder stricte oder loose durchgesetzt werden.

Im loose Modus wird das Paket akzeptiert, solange es einen aktiven Weg zur Source-IP über das eingehende Interface gibt. Es muss nicht die beste Route sein, sondern nur eine aktive.

Im Strict Modus überprüft FortiGate, ob der beste Weg zur Source-IP-Adresse über das eingehende Interface führt. Die Route muss nicht nur aktiv sein (wie im Falle des loose Modus), sondern auch die beste.

Die RPF-Prüfung kann auf zwei Arten deaktiviert werden. Wenn man asymmetrisches 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 tun:

Loose RPF

Defaultmässig ist die FortiGate im Loose Mode
Per Interfaces:

# 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


Diagramm

Beschreibung

Fortinet-2580.jpg

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 er zuvor kein SYN-Paket an 10.0.1.2 gesendet hat), antwortet er mit einem RST-Paket (Reset).

Fortinet-2581.jpg

Was passiert also im gleichen Szenario, wenn Strict RPF verwendet wird?

Das stricte RPF löscht das SYN-Paket. Auch wenn die wan1-Standardroute eine aktive Route für das Subnetz 10.0.4.0/24 ist, ist sie nicht die beste Route. Die beste Route ist über das Interface port1, da diese einen niedrigeren Distanzwert hat.

Achtung.jpg

Beachte, dass die Default Distanz für direkt verbundene Routen 0 ist, was niedriger ist als die Distanz der Standardroute von 10.

Obwohl das stricte RPF sicherer ist, kann es bei Verwendung des dynamischen Routings zu Fehlalarmen führen. Dynamische Routen können sich schnell ändern, und sie können die FortiGate veranlassen, legitime Pakete jedes Mal fallen zu lassen, wenn sich die bevorzugte Route ändert. Im Allgemeinen wird empfohlen, looses RPF in Kombination mit Firewallregeln zu verwenden, die gefälschten Datenverkehr blockieren, anstatt zu diesem Zweck strictes RPF zu verwenden.

Wie wird auf einer FortiGate das Routing abgearbeitet?

FortiOS60.jpgFortiOS62.jpg

Dieser Artikel beschreibt wie die FortiGate das Routing abarbeitet, sowie selektiert das heisst welches Routing zuerst greift wie zum Beispiel Cache, Policy Routen usw. Wenn verschiedenen Routings benützt werden zm Beispiel Policy Route (Layer 4), Distanz (Layer 3) ist es Wichtig zu wissen, wie diese Routings abgearbeitet wwerden. 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)
Achtung.jpg

Ein FortiOS resp. Eine FortiGate im "Transparent Mode" aggiert wie eine Bridge und leitet den Traffic im Layer-2 weiter dh. Ethernet Packete werden basierend auf deren "MAC Adressen" abgearbeitet und "nicht" anhand deren IP's.
Es findet deshalb kein "Routing" statt und Routen sind nicht konfigurierbar ausser für das Mgmt. Interface der "Transparent" Firewall resp. vdom!

Wie der "cache" eines Routing eingesehen werden kann sowie auf den neusten Stand gebracht wird siehe nachfolgender Artikel: Routing Cache anzeigen

Nachfolgendes Diagramm zeigt wie ein "lookup" im Zusammenhang mit den verschiedenen "Routing Tabellen" durchgeführt wird:

Diagramm

Beschreibung

Fortinet-1604.jpg

Dieses Diagramm zeigt auf das verschiedenen "Routing Tabellen" existieren die für das verschiedene eingesetzte 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!

Wie kann ich auf einer FortiGate die Routingtabelle ansehen?

FortiOS60.jpgFortiOS62.jpg

Wenn ich ab dem FortiOS 5.4 die Routing Tabelle auf einer FortiGate sehen möchte muss ich folgendes beachten. Ich habe die Möglichkeit die aktiven Routen in der Routingtabelle anzuschauen (Nur Routen welche momentan aktiv sind). Es gibt auch ein Kommando, mit welchem ich alle Routen sehen kann, welche in der Routingtabelle eingetragen sind. (aktive aber auch inaktive Routen)

Über das WebGui kann ich nur die aktive Routingtabelle anschauen:

Menu: Monitor -> Routing Monitor

Konfiguration über CLI: get router info routing-table all

Über das WebGui kann ich nur die aktive Routingtabelle anschauen:

Gehe auf Monitor -> Routing Monitor
Fortinet-2571.jpg

Um auf der CLI nur die "aktiven" Routing Einträge aufzulisten kann folgendes Kommando benutzt 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 Routingtabelle sehen möchte (aktive und inaktive Routen) kann ich die Routing Datenbank folgendermassen 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


Weitere Optionen für das Kommande get router info routing-table sind folgende:

Parameter Beschreibung
details Anzeigen der Detail Informationen der Routingtabelle
all Anzeigen von allen Einträgen in der Routingtabelle
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 Routingtabelle der verbundenen Routen an
database zeigt die Datenbank der Routingtabelle an (alle Routen aktiv sowie passiv)

Wie kann ich auf einer FortiGate den Routing "cache" auflisten und aktualisieren?

FortiOS60.jpgFortiOS62.jpg

Auf der FortiGate wird ein Cache angelegt. Dies bedeutet, wenn ein Routing Eintrag erstellt wird (wie zum Beispiel eine statische Route konfiguriert wird), wird im Hintergrund ein Eintrag im Cache angelegt, sobald diese Route das erste Mal benutzt wird. Dadurch muss die FortiGate nicht jedes Mal, die Routing Tabelle konsultieren, sondern kriegt bei einer nächsten Anfrage die Routinginformationen schneller direkt aus dem Cache. Wenn ich sehen will, welche Routen im Cache sind kann ich folgendes Kommando 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 und 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 kann dies indirekt über das refreshen der Routing Tabelle geschehen. Mit diesem Kommando execute router restart werden im Cache und im Kernel die Routing Informationen auf den neuesten Stand gebracht:

Konfiguration über CLI: execute router restart

# execute router restart

Aus diesem Grund ist es dringend empfohlen nach jeder Routing Aenderungen diesen Befehl abzusetzen um zu gewährleisten das alle Routing Informationen alle Routing Tabellen auf den neusten Stand gebracht werden.

Was ist eine Blackhole-Route?

FortiOS60.jpgFortiOS62.jpg

Eine Blackhole-Route ist eine Route, die den gesamten an sie gesendeten Datentraffic unterbindet. Dies funktioniert sehr ähnlich wie /dev/null in der Linux-Programmierung. Blackhole-Routen werden verwendet, um Pakete zu entsorgen, anstatt auf verdächtige Anfragen zu reagieren. Dies bietet zusätzliche Sicherheit, da der Absender keine Informationen aus dem Destinationsnetzwerk bekommt.

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 wen das Tunnelinterface aktiv ist (und somit der VPN Tunnel up), ein Routing Eintrag erstellt. Wenn dieser Tunnel down geht und somit das Tunnelinterface down geht, wird die nächste zutreffende Route für die Session benutzt. Meist ist dies die Default Route zum Standard Gateway. Das bedeutet, der Traffic welches für die remote Lokation des Tunnels gedacht ist, wird ins Internet geroutet. 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 in 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.


Konfiguration über das WebGui

Beschreibung

Fortinet-2542.jpg

Im Menu Netzwork -> Static Routes Createnew.jpg

  1. Destinations Netzwerk konfigurieren
  2. Interface auf Blackhole wählen
  3. Administrative Distance muss höher als die eigentli Route sein. Wir empfehlen den Wert 254 zu nehmen.
  4. Kommentare schaffen Klarheit
  5. Status enable um die Route aktiv zu schalten
  6. mit OK die Route einrichten.

Konfiguration über die CLI

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 das dieses Netz 172.16.16.0/24 auf das Interface vpn_to_sideB mit der Distanz 10 geroutet wird.

Routing Tabelle über das WebGui:

Gehe ins Menu Monitor -> Routing Monitor

Fortinet-2543.jpg

Routing Tabelle über die CLI:

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 [10/0] is directly connected, vpn_to_sideB
C       192.168.2.0/24 is directly connected, internal
C       198.18.0.0/27 is directly connected, wan1

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:

Routing Tabelle über das WebGui:

Gehe ins Menu Monitor -> Routing Monitor

Fortinet-2544.jpg

Routing Tabelle über die CLI:

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 anschauen (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 Range auf auf eine Blackhole-Route konfigurieren. Mit diesen drei Routen kann so jeglichen Traffic welcher in das Public WAN (INTERNET) geroutet wird, direkt abgefangen werden.

Für folgenden Private Netze kann also eine Blackhole Route defaultmässig eingerichtet werden:

Private Netze Gemäss RFC1918:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Siehe auch : https://tools.ietf.org/html/rfc1918

Konfiguration über die CLI

config router static
edit 1
set dst 10.0.0.0/8
set distance 254
set comment "Blackhole 10.0.0.0/8 - RFC1918"
set blackhole enable
next
config router static
edit 2
set dst 172.16.0.0/12
set distance 254
set comment "Blackhole 172.16.0.0/12 -RFC1918"
set blackhole enable
next
config router static
edit 3
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 Privat IP Bereich siehe auch: https://de.wikipedia.org/wiki/Private_IP-Adresse

Achtung.jpg

Wenn ein Class D Netz(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?

ARTIKEL NOCH IN BEARBEITUNG und nicht VOLLSTÄNDIG
FortiOS60.jpgFortiOS62.jpg

Um das Swisscom TV über die FortiGate zu routen müssen wir Multicast Routen einrichten. 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 schalten als Perimeter Firewall. 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 Telefon 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.

Bild Beschreibung
Fortinet-1988.jpg 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:

Fortinet-1989.jpg

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)

Fortinet-1990.jpg

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 werden oder verifiziert werden, dass dieses ausgeschalten 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+

Datei:Fortinet-1991.jpg

Jetzt müssen wir zwei Multicast Adressen Objekte erstellen für 224.0.0.0 - 224.255.255.255 und 239.0.0.0 - 239.255.255.255

Konfiguration über das WebGui Konfiguration über die CLI

Menu:Policy & Objects -> Addresses -> Create New+ -> Category Multicast Address
Fortinet-1992.jpg

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.

Fortinet-1994.jpg

Regel 2: Von der Swisscom TV Box zu den Multicast Adressen
SNAT muss in dieser Regel aktiviert werden

Fortinet-1995.jpg

Nun sollte das Swisscom TV über die FortiGate funktionieren.

SD-WAN

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

Policy Routing

Email Service

SMS Service

Wie kann ich den Lizenzkey für den FortiGuard SMS Service auf der FortiGate einlesen?

FortiOS60.jpgFortiOS62.jpg

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 erworben werden muss:

SMS-ELIC-100 FortiSMS - License for 100 SMS text messages

Der Lizenz Key kann über das folgende Kommando auf die FortiGate eingelesen werden:

Konfiguration über die CLI
# execute fortiguard-message add xxxx-xxxx-xxxx-xxxx-xxxx ---> Den Aktivierung Code der SMS Lizenz gemäss erhaltenem Dokument einfügen. 
# execute fortiguard-message update 

Das Guthaben kann folgendermassen über die CLI abgefragt werden: execute fortiguard-message info

Konfiguration über die CLI
# 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

FortiView

Prozesse

System

Zertifikate

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 der Powershell erstellt werden Folgender 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 Variable 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:

Fortinet-2250.png

Wie kann unter Windows 10 ein CA erstellt werden, welche auf die Firewall geladen werden kann?

  1. Herunterladen des Tools XCA Datei:Setup xca-1.4.1.zip
  2. Installieren von XCA auf einem Windows PC
  3. Generieren einer CA mit XCA gemäss folgender Anleitung: Datei:Xca howto.pdf (Quelle: barracuda.com)
  4. Exportieren der CA im *.pem Format
  5. Importieren des Zertifikates auf der Fortigate Firewall unter System > Certificates > Import > CA Certificate > Type=File

Role

Interface

Wie kann ich die Interface Statistik auf einer FortiGate anschauen?

FortiOS60.jpgFortiOS62.jpg

Um die Interface Statistik anzuschauen kann über die CLI folgende Befehle eingegeben werden:

Konfiguration über CLI
# 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
Konfiguration über CLI
# 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) 

Switch Mode

Sniffer Mode / CTAP

Switch Controller

Administrator

Wie kann ich einen Login Disclaimer auf der FortiGate konfigurieren?

FortiOS60.jpgFortiOS62.jpg

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 wenn ich die Firewall per IP Adresse aufrufe (egal ob per CLI oder GUI).

Konfiguration über 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:

Fortinet-2503.jpg


Der User muss akzeptieren, dass er auf das Anmeldefenster kommt.

2. Eine Warnmeldung nachdem ich mich auf die FortiGate eingeloggt habe:

Konfiguration über CLI
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.

Fortinet-2504.jpg

Die Templates können auch nach eigenen Wünschen angepasst werden:

Konfiguration über das WebGui

Beschreibung
Fortinet-2505.jpg
  1. System -> Replacement Messages
  2. Extendet View anwählen
  3. die beiden Templates sind unter dem Titel Administrator abgelegt.
    1. Post-login Disclaimer Message : Meldung nach dem Einloggen auf die FortiGate.
    2. Pre-login Disclaimer Message : Meldung vor dem Logging Fenster
Fortinet-2506.jpg
  1. Auf das gewünschte Template klicken um es zu editieren.
  2. In der Linken hälfte sieht man das Ergebnis, auf der rechten Seite kann der Text formatiert werden.
  3. Mit dem Restore Default Button kann wieder das default Template hergestellt werden.
  4. Mit Save kann die Änderung bestätigt werden.

User / Gruppe

Wie konfiguriere ich eine Usergruppe?

FortiOS60.jpgFortiOS62.jpg

Konfiguration über das WebGui

Beschreibung
Fortinet-2532.jpg
  1. User & Device -> User Groups Createnew.jpg
  2. Für eine Lokale Gruppe auf der FortiGate den Type Firewall auswählen
  3. Gruppenname definieren
  4. Members auf das + und die gewünschten User hinzufügen
  5. mit OK die Gruppe anlegen
Fortinet-2533.jpg
  1. In die gewünschte Policy gehen
  2. Die Usergruppe muss in der Policy bei den Source unter User ausgewählt werden
  3. Der Rest der Policy wie gewohnt konfigurieren.
Konfiguration über CLI Beschreibung
config user group
    edit "gr-Wartung"
        set member "user1" "user2"
    next
end

Die User können mit folgendem Syntax der Gruppe "USER" "NEXT-USER" .... "END-USER" hinzugefügt werden.

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

Die Usergruppe wird mit dem Kommando set groups <GRUPPEN_NAME> hinzugefügt

Im Monitor können authentifizierte User angeschaut werden:

Monitor -> Firewall User Monitor

Fortinet-2534.jpg

Um den User zu deauthorizieren muss der entsprechende User mit Rechtsklick angewählt werden und dann der Button Deauthenticate gewählt werden.

Fortinet-2535.jpg

Wie eröffne ich einen User mit Zweifaktor Authentifizierung über SMS?

FortiOS60.jpgFortiOS62.jpg

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 für eine erfolgreiche Authentifizierung. Auf der FortiGate wird die SMS Authentifizierung beim User konfiguriert. Wir haben die Möglichkeit den kostenpflichtigen FortiGuard SMS Dienst von Fortinet zu nutzen.

FortiGate-6.0-6.2:FAQ#Wie_kann_ich_den_Lizenzkey_f.C3.BCr_den_FortiGuard_SMS_Service_auf_der_FortiGate_einlesen.3F

Konfiguration über das WebGui

Beschreibung
Fortinet-2525.jpg
  1. User & Device -> User Definition Createnew.jpg
  2. Local User auswählen um den User auf der FortiGate zu erfassen
  3. Next
Fortinet-2526.jpg
  1. Username definieren
  2. Passwort für den User definieren
  3. Next
Fortinet-2527.jpg
  1. optional kann eine Email Adresse angegeben werden
  2. SMS Schalthebel aktivieren
  3. Contry Dial Code auf das gewünschte Land setzen
  4. Phone Number wird die Mobile Telefonnummer ohne Null voraus angegeben. Die Mobile Nummer muss im folgenden Format konfiguriert werden: [Ländercode][Mobilenummer ohne Null voraus] -> z.B. 079 123 45 67 wird so hinterlegt : 41791234567
  5. Next

Hinweis: Der Parameter set two-factor sms muss über die CLI konfiguriert werden.

Fortinet-2528.jpg
  1. Wenn eine Usergruppe vorhanden ist, kann diese über den Schalter User Group ausgewählt werden, so wird der User direkt in diese Gruppe eingefügt
  2. Submit um den User fertig einzurichten
Fortinet-2529.jpg

Jetzt muss der User bei der entsprechenden Regel in die Source eingeführt werden.

  1. Policy Source auf User gehen und den User oder die Gruppe auswählen
  2. Die Policy wie gewohnt einrichten (Destination Services Nat usw...)
Konfiguration über CLI Beschreibung
config user local
    edit "user1"
        set type Password
        set two-factor sms
        set sms-phone "41791234567"
        set password "password"
    next
end

Den User konfigurieren.

NOTE

Der set two-factor sms Parameter ist wichtig, damit dem User mitgeteilt wird, dass die SMS Two Faktor Authentifizierung aktiviert wird. Leider ist diese Option im WebGui beim User erst ersichtlich, wenn sie auf der CLI einmal konfiguriert wurde.

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

Bei der Policy muss der User in der Source angegeben werden, damit die Authentifizierung zieht. In dieser Regel sind ANY Services konfiguriert. Für einen produktiven sicheren Betrieb empfiehlt sich nur die Services freizuschalten, welche auch benötigt werden. Weiter empfiehlt es sich entsprechende UTM Features zu aktivieren um sich optimal abzusichern.

Wenn wir jetzt eine Anfrage über den Webbrowser in das Internet vornehmen wird ein Loging Fenster im Browser erscheinen:

Fortinet-2530.jpg

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 ungültig.

Fortinet-2531.jpg

Policy Rule

Session

Was für Informationen werden in der Session Liste angezeigt?

FortiOS60.jpgFortiOS62.jpg

Mit dem Befehl diagnose sys session list werden auf der FortiGate alle Session und den dazugehörenden Informationen angezeigt.

Im "output" ist jede einzelne aktive "Session" mit deren Details aufgeführt. Als Beispiel nachfolgender Output einer Session:

Im Output wird jede aktive Session und den dazugehörenden Details angezeigt.

Beispiel:

session info: proto=6 proto_state=02 duration=11 expire=21 timeout=3600 flags=00000000 sockflag=00000000 sockport=0 av_idx=0 use=3
origin-shaper=
reply-shaper=
per_ip_shaper=
ha_id=0 policy_dir=0 tunnel=/
state=local nds 
statistic(bytes/packets/allow_err): org=120/2/0 reply=176/2/1 tuples=2
orgin->sink: org out->post, reply pre->in dev=0->7/7->0 gwy=0.0.0.0/0.0.0.0
hook=out dir=org act=noop 198.18.0.1:21164->198.18.0.90:514(0.0.0.0:0)
hook=in dir=reply act=noop 198.18.0.90:514->198.18.0.1:21164(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=002606e7 tos=ff/ff ips_view=0 app_list=0 app=0
dd_type=0 dd_mode=0
npu_state=00000000

Die Bedeutung der vielen Positionen wird in der folgenden Tabelle erklärt:

Parameter

Beschreibung

proto=6

Gibt an um welches Protokoll es sich handelt zB 6 = TCP. Weitere Informationen zu den Protokoll Nummern siehe auch nachfolgender Artikel:

Allgemein:Assigned-Internet-Protocol-Numbers-RFC

proto_state=02

Die erste Stelle des "proto_state" gibt an ob diese Session Clientseitig eine "proxy_based" Inspection ist. Wenn es sich um keine "proxy_based" Inspection handelt wird eine "0" gesetzt. Unterschied Proxy und Flow Inspektion

Die zweite Stelle gibt Server Seitig den "state" an. (in unserem Beispiel "2")
Gültigen "states" sind:

Fortinet-1418.jpg

Fortinet-1419.jpg

Proto_state Feld für TCP Weil eine FortiGate eine "stateful firewall" ist überwacht das FortiOS ebenfalls die "reply session. Aus diesem Grund verfügt der "proto_state=OR" dh. Orginal "direction" und Reply "direction":

Fortinet-2153.jpg

Proto_state Feld für SCTP Ab FortiOS 4.2 unterstützt ein FortiGate Device resp. FortiOS ebenfalls "stateful firewalling" für SCTP:

Fortinet-2154.jpg

Proto_state Feld für UDP Obwohl UDP ein "sessionless" Protokoll darstellt überwacht ein FortiOS für UDP 2 Status:

State Value UDP Reply not seen 0 UDP Reply seen 1

Proto_state Feld für ICMP (proto 1) Für ICMP existiert kein Status und ein FortiOS zeigt für ICMP immer "proto_state=00"

expire=21

Diese Positione gib an wie lange die Session noch gültig ist bis diese gelöscht wird resp. abgelaufen ist (TTL = time to live).

origin-shaper=
reply-shaper=
per_ip_shaper=

Gibt an ob ein Traffic Shaper benutzt wird. Wenn ein Traffic Shaper benutzt wird werden Informationen ausgegeben betreffend Priorität und Bandbreite. Beispiel:

origin-shaper=OutShapper prio=2 guarantee 12800Bps max 128000Bps traffic 92Bps
reply-shaper=InShaper prio=4 guarantee 2560Bps max 25600Bps traffic 125Bps
per_ip_shaper=PerIPShaper

state=may dirty none app ntf

Der "state" indiziert die "session flags". Dazu nachfolgende Liste der meistgebrauchten "session flags":

Session Flag

Beschreibung

log Session is being logged
local Session is to/from local stack (orgin or terminated from FortiGate)
ext Session is created by a firewall session helper
ndr Session will be checked by IPS signature
nds Session will be checked by IPS anomaly
br Session is being bridged (TP mode)
npu Session can be offloaded to NPU
wccp Session is handled by WCCP (Version 4.0)
npd Session cannot be offloaded to NPU
redir Session is being processed by an application layer proxy
authed Session was successfully authenticated
auth Session required (or required) authentication

Grundsätzlich wird jedes "erste" Packet über die Firewall Policy kontrolliert. Wenn dieses Packet erlaubt wird über die Firewall Policy wird eine "session" erstellt und bezeichnet (flag) als "may_dirty". Wenn eine Änderung in der Firewall Policy durchgeführt wird so werden "alle" existierenden "sessions" von "may_dirty" auf "diry" gesetzt. Dadurch werden sämtliche Packet ab diesem Zeitpunkt nicht mehr über den NPU gesendet sondern zum CPU. Der CPU kontrolliert abermals das Packet in der Firewall Policy und wenn dieses erlaubt wird, werden diese "sessions" auf "may_dirty" gesetzt. Wenn dieses Packet in der Firewall Policy nicht erlaubt wird werden diese Packet verworfen und mit einem "flag" "block" versehen. Danach verbleibt die "session" im Memory bis diese den TTL resp. "expire" erreicht. So kann die FortiGate über die "flags" "dirty"und/oder "may_dirty" erkenne/evaluieren nach einer Modifikation der Firewall Policy ob diese weiterhin erlaubt werden (may_dirty) resp. die entsprechende "session" geblockt werden (block).

policy_id=0

Gibt an welche Firewall Policy-ID benutzt wurde. Die Firewall Policy-ID 0 indiziert eine "Local-In Policy".

statistic

Steht für den Packet Counter der auch über die Firewall Policy der FortiGate ersichtlich ist.
Beispiel:

statistic (bytes/packets/err): org=3408/38/0 reply=3888/31/0 tuples=2

hook=out dir=org
hook=in dir=reply

Gibt an wie die Packete für "out" und "in" verarbeiet werden dh. wenn NAT (Network Address Translation) benutzt wird so werden die Positionen "act=snat" sowie "act=dnat" aufgeführt. Aus den nachfolgenden Informationen kann eruiert werden wie NAT durchgeführt wurde. Nachfolgend ein Beispiel mit NAT:

hook=post dir=org act=snat 100.1.10:50194 -> 216.58.216.110:80(10.200.1.1:50194)
hook=pre dir=reply act=dnat 216.58.216.110:80 -> 10.200.1.1:50194(10.0.1.10:50194)

npu_state=00000000

Zeigt ob eine Session über "hardware acceleration" beschleunigt wurde. Wenn dies der Fall ist resp. möglich wäre wird "npu info:" aufgeführt mit den entsprechenden "counters" für die "hardware acceleration" aus denen man entnehmen kann ob die Session über die Hardware Beschleunigung abgearbeitet wurde.

Beispiel:

npu info: flag=0x00/0x00, offload=0/0, ips_offload=0/0, epid=0/0, ipid=0/0, vlan=0/0

no_ofld_reason

Zeigt den Grund wieso eine Session nicht über "hardware acceleration" beschleunigt wird.

Beispiel:

no_ofld_reason: redir-to-av redir-to-ips non-npu-intf

user=
group=
authed

Wenn eine Session erstellt wird für eine Verbindung im Zusammenhang mit Authentifizierung wird der "user=" sowie die Gruppenzugehörigkeit "group=" sowie das "authed" Flag gesetzt

Referenz: http://kb.fortinet.com/kb/documentLink.do?externalID=FD30042

Wie kann ich die Session Timer auf der FortiGate manipulieren um System Ressourcen einzusparen?

FortiOS60.jpgFortiOS62.jpg

Jeder Traffic, welcher durch die FortiGate fliesst wird einer Firewall Session zugeordnet. Diese Session wird auf der FortiGate erstellt und gepflegt. Je weniger Session die FortiGate verwalten muss, desto weniger CPU Ressourcen werden für die Behandlung der Sessions gebraucht. Es gibt verschiedene Möglichkeiten die Anzahl an gleichzeitigen Sessions zu reduzieren:

Wenn der Trafficflow gestoppt wird, bleibt die die dazugehörige Session in der FortiGate bis ein bestimmter Timer abläuft. Dieses Verhalten gilt für TCP und UDP Session. (Es sind verschiedene Timer daran beteiligt). Die Reduzierung des Timers würde helfen, die Session früher wieder loszuwerden. TCP gebundene Session im half-open, half-close, oder in etablierte Sessions können also früher wieder freigegeben werden.

Dies kann man Global folgendermassen konfigurieren:

config system global 
set tcp-halfclose-timer 30 [ default 120 s ] 
set tcp-halfopen-timer 30 [ default 60 s ] 
set tcp-timewait-timer 0 [ default 120 s ] 
set udp-idle-timer 60 [ default 120 s ] 
end 
config system session-ttl 
set default 300 [ default 5000 ] 
end

Es gibt Protokolle welche eher viele Session generieren, da sie auch kurzen Transaktionen basieren. Zum Beispiel DNS ist so ein Protokoll. In diesem Fall wird empfohlen, den Timer für das Protokoll auf einen geeigneten aber kurzen Wert zu ändern.

config port 
edit 0 
set protocol 17 
set timeout 10 
set end-port 53 
set start-port 53 
end 
end 

Inspection Modes

Was genau bedeuten die beiden Inspektionsmoden auf der FortiGate? Proxy vs Flow

FortiOS60.jpgFortiOS62.jpg

Jede Fortigate Firewall hat zwei mögliche Betriebsmodis, mit welchen der Datenverkehr inspiziert werden kann:

Flow-Based Proxy-Based
Beschreibung

Prüft den Datenverkehr on-the-flow. Hier wird hauptsächlich Flow-Based-Pattern-Matching verwendet, um Sicherheitsbedrohungen innerhalb des Datenflusses zu identifizieren.

Es besteht eine Session

Puffert den Datenverkehr und überprüft den Datenverkehr anhand der Informationen aus den vollständigen Paketen. Die Entscheidung über das weitere Vorgehen mit einem Datenstrom wird somit immer anhand vollständiger Datenpakete vorgenommen. In diesem Betriebsmodi schreibt die Firewall die Paketheader vor dem Weiterleiten neu.

Es gibt zwei Session:

  • Session vom Client zur FortiGate
  • Session von der FortiGate zum Server
Schema

Fortinet-2507.jpg

Fortinet-2508.jpg

Vor/Nachteile

+ Der Datenverkehr wird ohne Verzögerung ausgeliefert
+ Zeitsensitive Applikationen funktionieren mit diesem Modus besser

- Es stehen nur gewisse Security-Profile-Typen zur Verfügung
- Die Funktionalität der zur Verfügung stehenden Funktionen innerhalb der Security Profiles sind eingeschränkt
- Der Level of Security ist etwas tiefer.

+ Entscheidungen im Proxy-Mode fallen detaillierter aus.
+ Es stehen mehr Profil-Typen zur Verfügung
+ Es sind weniger False-Positives zu verzeichnen

- Der Performancebedarf fällt höher aus
- Für die Clients können Latenzen oder TimeOuts entstehen

Eine bewusste Konfikguration zwischen Flow- und Proxy-Modus ist hilfreich, wenn sichergestellt werden soll, dass ausschliesslich der Flow-Inspektionsmodus verwendet werden soll. Die konkreten Funktionsunterschiede zwischen dem Proxy- und Flowbased Inspectionmode können der Fortinet Hilfe entnommen werden:

Wie kann der Inspection Mode einer FortiGate bis FortiOS 6.0 geändert werden?

FortiOS60.jpg
Ab FortiOS 6.0 wird der Inspection Mode pro Firewall oder auf einer mit VDOMs konfigurierten Firewall pro VDOM global angepasst werden.

Im GUI ist diese Konfiguration unter System > Settings > Inspection Mode zu finden.

Fortigate-2238.png

Im CLI kann dieser Konfigurationspunkte wie folgt geändert werden:

	fg-lab # config system settings
	fg-lab (settings) # show
	config system settings
		set inspection-mode flow
		...

Das Überschreiben dieser globalen Einstellung von Flow nach Proxy führt dazu, dass in jedem Security Profile auf der gesamten Appliance/VDOM der Inspection Mode ebenfalls auf die hier gestellte Einstellung gestellt wird. Das Überschreiben dieser Option von Proxy nach Flow führt jedoch nicht dazu, dass diese Einstellung in jedem Security Profil überschrieben wird.

Wie kann der Inspection Mode einer FortiGate ab FortiOS 6.2 geändert werden?

FortiOS62.jpg

Im Gegensatz zu der Version 5.4 - 6.0 wird der Inspektionsmodus nicht mehr als globaler Parameter definiert sondern über die Policy gesteuert. Die FortiGate wird in der Version 6.2 immer im Flow Modus sein. Wenn ich die Proxybasierte Inspektion haben will, muss diese in der jeweiligen Policy konfiguriert werden.

Proxymodus

Konfiguration über das WebGui

Beschreibung

Konfiguration über die CLI

Fortinet-2524.jpg

in die entsprechende Policy gehen und da kann im dann der Inspektions Modus auf Proxy eingestellt werden. Folgend UTM Features sind im Proxy Modus unterstützt:

  • AntiVirus
  • Web Filter
  • DNS Filter
  • Application Control
  • IPS
  • Email Filter
  • DLP Sensor
  • ICAP
  • WAF - Web Applikation Firewall
config firewall policy
edit [Policy-ID] --> Policy ID eingeben z.B edit 2
set inspection-mode proxy
next
end

Flow Modus

Konfiguration über das WebGui

Beschreibung

Konfiguration über die CLI

Fortinet-2523.jpg

Default mässig ist in der Policy der Flow Inspektionsmodus aktiviert. Falls man von Proxy auf Flow zurückstellen will kann man dies aber auch in der entsprechenden Policy vornehmen. Folgend UTM Features sind im Flow Modus unterstützt:

  • AntiVirus
  • Web Filter
  • DNS Filter
  • Application Control
  • IPS
config firewall policy
edit [Policy-ID] --> Policy ID eingeben z.B edit 2
set inspection-mode flow
next
end

Flow Modus - NGFW

Was hingegen immer noch Global eingestellt wird ist der NGFW Modus. Standartmässig ist dieser auf Profile Based eingestellt. Das bedeutet, das UTM Profile erstellt werden und diese an Policies angewendet werden. Der Policy-based Modus bedeutet, dass Applikation und Webfilter direkt in der Policy definiert werden. Erfordert dass ein einzelnes SSL/SSH Inspektionsprofil auf alle Policies angewendet wird. Antivirus ist immer Profil basierend, unabhängig welcher NGFW Modus konfiguriert ist.

Konfiguration über das WebGui

Beschreibung

Konfiguration über die CLI

Fortinet-2522.jpg

Im Menu Settings kann der NGFW Modus definiert werden.

config system settings
set ngfw-mode [profile-based | policy-based]
end

NAT

Wie funktioniert das Destinations Nat auf einer FortiGate?

FortiOS60.jpgFortiOS62.jpg

VIPs sind dnat Objekte. Bei jeder Session, welche mit einem VIP übereinstimmen wird die Destination IP Adresse übersetzt (genatet). Üblicherweise wird eine öffentliche IP Adresse auf eine Private IP Adresse zu einem Serverdienst übersetzt. Ein VIP Objekt wird in der Policy im Destinationsobjekt Feld ausgewählt.

Standardmässig ist der VIP auf statisches NAT konfiguriert. Dies bedeutet, dass ein one-to-one Mapping für eingehende und ausgehende Verbindungen gilt. Wenn also eine Policy für ausgehenden Traffic konfiguriert wird und das VIP Objekt dann auf dem ausgehenden Interface ausgewählt wird, wird die IP Adresse genatet. Dieses verhalten kann aber durch die IP-Pool Konfiguration übersteuert werden.

VIPs sollten auf dem externen Facing (Ingress) Interface routfähig sein. Das FortiOS reagiert auf ARP-Anfragen von VIP und IP-Pool Objekten. Das heisst, wenn beim VIP Objekt das Interface ANY konfiguriert wird, wird entsprechend auf jedem Interface für das VIP Objekt ein ARP Eintrag angelegt. Dies wiederum kann unter gewissen umständen zu asynchronen Routings führen.

Beispiel Fortinet-2540.jpg

Der User initiert einen Request auf die IP Adresse 198.18.1.2. Auf der FortiGate ist ein VIP Objekt konfiguriert, welche Anfragen auf die Adresse 198.18.1.2 auf die IP Adresse 172.16.1.100 nated. Der Request wird also auf der FortiGate weitergeleitet auf den Server in der DMZ 172.16.1.100. Über Policies kann noch geregelt werden, welche Services alles Zugriff auf den Zielserver haben sollen (172.16.1.100). Ich empfehle jeweils nur die benötigten Services im VIP Objekt zu konfigurieren. Der Grund ist, dass gemäss Flow Diagram zuerst das Destinations NAT vollzogen wird und erst dann die Firewall Policies abgehandelt werden. Das heisst, wenn ich alle Services im VIP Objekt konfiguriere, sind diese potentiell auf das Zielsystem bereits durchgeschalten. Wenn man sich bei den Policies verkonfiguriert hat man sozusagen einen bypass konfiguriert.

Flow Diagramm:

Fortinet-2541.jpg

Quelle : https://help.fortinet.com/fos50hlp/54/Content/FortiOS/fortigate-life-of-packet-54/lop-packet-flow-ingress-egress.htm

Wie richte ich ein Destinations Nat mit einem VIP Objekt ein?

FortiOS60.jpgFortiOS62.jpg

Konfiguration über das WebGui

Beschreibung

Fortinet-2536.jpg

Über das Menu Policy & Objects -> Virtual IPs -> Createnew.jpg kann ein neues VIP Objekt erstellt werden

Fortinet-2537.jpg

Wir konfigurieren ein VIP Objekt welches den smtp Port auf die IP Adresse 172.16.1.100 in der DMZ weiterleitet. Dabei wird der Client die IP Adresse 198.18.0.2 ansprechen und wird dann über das VIP Objekt auf 172.16.1.100 genatet.

  1. beim Namen einen aussagekräftigen Namen wählen, dieser wird dann im Policyset ersichtlich sein.
  2. Beim Kommentar empfehle ich die Orginal und die genatete Adresse inklusive den anzusprechenden Port zu erwähnen. So kann bei allfälligen Störungssuchen im Objekt gleich erkannt werden, was es genau beinhaltet.
  3. Das Interface muss zwingend auf den Term gewählt werden, auf welchem die orginale IP Adresse Terminiert. In unserem Fall terminiert die IP Adresse 198.18.0.2 auf dem Interface wan1. Wenn das Interface auf ANY konfiguriert wird, wird auf jedem Interface für die IP Adresse 198.18.0.2 ein ARP Eintrag erstellt. Bei SD-WAN, PolicyRouting oder VPN Konfigurationen kann dies zu asynchronem Routing führen.
  4. im External IP address/range Feld wird die orginale IP Adresse eingetragen (in unserem Fall 198.18.0.2)
  5. im Mpaaed IP address/range Feld wird die zu erreichende IP Adresse eingetragen (in unserem Fall 172.16.1.100)
  6. Damit explizit nur der Port TCP 25 genatet wird, muss die Option Port Forwarding aktiviert werden. Jetzt kann das Protokoll angegeben werden. Wir wollen den Port 25 weiter leiten. Daher kann beim External service port der Wert 25 eingetragen werden. Wir wollten den Port auf 25 lassen daher wird beim Map to port auch 25 eingetragen. Wenn ich ein PAT einrichten will muss ich den entsprechenden Port eintragen.
  7. Mit OK wird das VIP Objekt erstellt und kann in der Policy von nun an verwendet werden.

Fortinet-2538.jpg
Fortinet-2539.jpg

Um eine neue Regel zu erstellen geht man über Policy & Objects -> IPv4 Policy -> Createnew.jpg

  1. Der Name muss einmalig sein. Der Name wird im LOG und auch auf dem FortiAnalyzer angezeigt. Dies kann bei Störungssuche sehr hilfreich sein. Daher empfehle ich jeweils einen aussagekräftigen Namen zu wählen.
  2. Beim Incoming Interface muss das Interface gewählt werden, auf welchem die orginale IP Adresse terminiert. In unserem Fall terminiert 198.18.0.2 auf dem wan1 Interface.
  3. Beim Outgoing Interface wird das Interface ausgewählt hinter welchem die genatete Adresse sich befinden. Bei uns liegt die 172.16.1.100 hinter dem dmz Interface.
  4. Bei Source kann das Objekt ALL oder das angelegte 0.0.0.0-0 Objekt ausgewählt werden. Es kann natürlich auch bei den Source Einschränkungen geben, dann einfach die entsprechenden IP Objekte erfassen und diese als Source auswählen.
  5. Bei der Destination wird jetzt das angelegte VIP Objekt ausgewählt. In unserem Fall wäre das dnat-198.18.0.2-tcp25
  6. Die NAT Option deaktivieren. Wenn diese aktiviert bleibt, wird die Source IP Adresse des DMZ Interfaces genommen also ein Snat durchgeführt.
  7. Die UTM Features können bei bedarf aktiviert werden.
  8. Damit der ganze Traffic geloggt wird, empfehle ich die Option Log Allowed Traffic auf All Sessions konfigurieren.

Konfiguration über die CLI

Beschreibung

# config firewall vip
# edit "dnat-198.18.0.2-tcp25"
# set comment "Destinations Nat 198.18.0.2-172.16.1.100 TCP25"
# set extip 198.18.0.2
# set extintf "wan1"
# set portforward enable
# set color 21
# set mappedip "172.16.1.100" 
# set extport 25
# set mappedport 25
# next
# end

Konfigurieren des VIP Objektes über die CLI

# config firewall address
# edit net-all-0.0.0.0-0
# set comment "alle Netze 0.0.0.0"
# set color 0
# next
# end

Konfigurieren des IP Adressen Objekt für 0.0.0.0/0

# config firewall policy
# edit 1
# set name "I_internet->MailSrv-tcp25"
# set srcintf "wan1" 
# set dstintf "dmz" 
# set srcaddr "net-all-0.0.0.0-0" 
# set dstaddr "dnat-198.18.0.2-tcp25" 
# set action accept
# set schedule "always"
# set service "SMTP" 
# set logtraffic all
# end

Konfigurieren der Policy über die CLI

Wie wird ein DNAT konfiguriert, wenn die Central NAT Table verwendet wird ?

FortiOS60.jpg

Wenn die Central NAT Table eingesetzt wird, so werden sämtliche NAT Funktionalitäten aus der Firewall Policy verbannt. Somit können in der Firewall Policy auch nicht mehr die üblichen VIP Objekte verwendet werden. Im Falle der aktiven Central NAT Table, wird das NAT über folgende zwei Menüpunkte gesteuert:

  • Im Fall von DNAT: Policy & Objects > DNAT & Virtual IPs
  • Im Fall von SNAT: Policy & Objects > Central SNAT

Für ein funktionierendes DNAT, kann unter DNAT & Virtual IPs ein gewöhnliches Objekt analog zu einem VIP Objekt konfiguriert werden. In untenstehendem Beispiel möchten wir gerne den Port 80 TCP vom Internet an einen internen Webserver weiterrouten.

Fortinet-2239.png

Dieses NAT wird sofort nach seiner Erstellung aktiv. Da auf der Firewall jedoch noch eine Firewallregel fehlt, welche den Traffic hierfür erlauben würde, funktioniert nur mit dem NAT noch nichts. Im zweiten Schritt erstellen wir nun die Firewall Regel. Da hier kein VIP Objekt mehr angewählt werden kann, wird als Destination Host die interne IP gewählt. Die DNAT konfiguration vom vorherigen Schritt sorgt in diesem Fall für die Transformation der IP unabhängig von der Firewallregel.

Fortinet-2240.png

Wieso soll ich ein VIP Objekt auf ein Interface konfigurieren?

Auf der FortiGate Firewall können Adressobjekte und virtuelle IPs (VIPs) mit einem Interface eingerichtet werden. Für Adressobjekte hat dies keine technische Relevanz - die Adressobjekte erscheinen einfach nur dann in der Policy, wenn das entsprechende Interface ausgewählt ist. Bei virtuellen IPs hat diese Einstellung jedoch eine Relevanz dafür, wie Verbindungen geNATed werden. Das kann problematisch sein.

In allgemeinen Situationen hat man nur eine ISP-Verbindung, auf der ein Ziel NAT (DNAT) für eingehende Verbindungen eingerichtet werden soll. Das ist kein Problemmann kann das untrust Interface im virtuellen IP-Objekt auswählen. Wenn man zwei ISP-Verbindungen hat, z.B. eine gute (ISP1) und eine billige (ISP2), MÜSSEN die Interfaces im virtuellen IP-Objekt ausgewählt weren, wenn man auf eine feste IP-Adresse von ISP1 verweist. Andernfalls wird diese auf allen ausgehenden Verbindungen verwendet, die dann mit dem ISP2 nicht funktioniert.

Fall 1:
Fortinet-2609.jpg

Fall 2:
Das folgende Beispiel zeigt ein virtuelles IP-Objekt mit einer statischen IP-Adresse von 80.154.108.233 und einem falsch konfigurierten Interface von "Any". Bei ausgehenden Verbindungen zu ISP1 gibt es keine Probleme (Label 1 auf dem Screenshot). Aber nachdem eine Policyroute eingerichtet wurde, um den http-Verkehr an ISP2 weiterzuleiten, wird die gleiche Quell-NAT-IP verwendet, die offensichtlich nicht funktioniert hat (Label 2). Nachdem das Interface im virtuellen IP-Objekt auf "wan1" gesetzt wurde, werden ausgehende Verbindungen zu ISP2 korrekt an die ausgehende Interface genatet, während ausgehende Verbindungen zu ISP1 weiterhin an die virtuelle IP-Adresse genatet werden (Label 3).

Fortinet-2610.jpg

Cluster Mode

Radius

Active Directory / LDAP

Virtual Servers

Wie kann ich herausfinden, welche Cipher Suite die FortiGate unterstützt?

Folgendermassen kann herausgefunden werden, welche Cipher die FortiGate unterstützt.

Konfiguration über CLI
# config firewall vip
# edit <vip-name>
# set type server-load-balance
# set server-type https
# set ssl-algorithm custom
# config ssl-cipher-suites
# edit 1
# set cipher ?

Es erscheint eine Liste: (hier gekürzt, ganze Liste in der Tabelle unten)

# TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256    Cipher suite TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256. 
...
# TLS-RSA-WITH-DES-CBC-SHA                       Cipher suite TLS-RSA-WITH-DES-CBC-SHA.

Folgende Cipher sind in der FortiOS Version 6.0.3 unterstützt:

Cipher Cipher Suite
TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 Cipher suite TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256.
TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256 Cipher suite TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256.
TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256 Cipher suite TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256.
TLS-DHE-RSA-WITH-AES-128-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-AES-128-CBC-SHA.
TLS-DHE-RSA-WITH-AES-256-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-AES-256-CBC-SHA.
TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 Cipher suite TLS-DHE-RSA-WITH-AES-128-CBC-SHA256.
TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 Cipher suite TLS-DHE-RSA-WITH-AES-128-GCM-SHA256.
TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 Cipher suite TLS-DHE-RSA-WITH-AES-256-CBC-SHA256.
TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 Cipher suite TLS-DHE-RSA-WITH-AES-256-GCM-SHA384.
TLS-DHE-DSS-WITH-AES-128-CBC-SHA Cipher suite TLS-DHE-DSS-WITH-AES-128-CBC-SHA.
TLS-DHE-DSS-WITH-AES-256-CBC-SHA Cipher suite TLS-DHE-DSS-WITH-AES-256-CBC-SHA.
TLS-DHE-DSS-WITH-AES-128-CBC-SHA256 Cipher suite TLS-DHE-DSS-WITH-AES-128-CBC-SHA256.
TLS-DHE-DSS-WITH-AES-128-GCM-SHA256 Cipher suite TLS-DHE-DSS-WITH-AES-128-GCM-SHA256.
TLS-DHE-DSS-WITH-AES-256-CBC-SHA256 Cipher suite TLS-DHE-DSS-WITH-AES-256-CBC-SHA256.
TLS-DHE-DSS-WITH-AES-256-GCM-SHA384 Cipher suite TLS-DHE-DSS-WITH-AES-256-GCM-SHA384.
TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA Cipher suite TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA.
TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256 Cipher suite TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256.
TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 Cipher suite TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256.
TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA Cipher suite TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA.
TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384 Cipher suite TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384.
TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 Cipher suite TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384.
TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA Cipher suite TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA.
TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 Cipher suite TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256.
TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 Cipher suite TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256.
TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 Cipher suite TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384.
TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 Cipher suite TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384.
TLS-RSA-WITH-AES-128-CBC-SHA Cipher suite TLS-RSA-WITH-AES-128-CBC-SHA.
TLS-RSA-WITH-AES-256-CBC-SHA Cipher suite TLS-RSA-WITH-AES-256-CBC-SHA.
TLS-RSA-WITH-AES-128-CBC-SHA256 Cipher suite TLS-RSA-WITH-AES-128-CBC-SHA256.
TLS-RSA-WITH-AES-128-GCM-SHA256 Cipher suite TLS-RSA-WITH-AES-128-GCM-SHA256.
TLS-RSA-WITH-AES-256-CBC-SHA256 Cipher suite TLS-RSA-WITH-AES-256-CBC-SHA256.
TLS-RSA-WITH-AES-256-GCM-SHA384 Cipher suite TLS-RSA-WITH-AES-256-GCM-SHA384.
TLS-RSA-WITH-CAMELLIA-128-CBC-SHA Cipher suite TLS-RSA-WITH-CAMELLIA-128-CBC-SHA.
TLS-RSA-WITH-CAMELLIA-256-CBC-SHA Cipher suite TLS-RSA-WITH-CAMELLIA-256-CBC-SHA.
TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256 Cipher suite TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256.
TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256 Cipher suite TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256.
TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA.
TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA.
TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA Cipher suite TLS-DSS-RSA-WITH-CAMELLIA-128-CBC-SHA.
TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA.
TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA Cipher suite TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA.
TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256 Cipher suite TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256.
TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA256 Cipher suite TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA256.
TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256 Cipher suite TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256.
TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA256 Cipher suite TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA256.
TLS-DHE-RSA-WITH-SEED-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-SEED-CBC-SHA.
TLS-DHE-DSS-WITH-SEED-CBC-SHA Cipher suite TLS-DHE-DSS-WITH-SEED-CBC-SHA.
TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256 Cipher suite TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256.
TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384 Cipher suite TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384.
TLS-DHE-DSS-WITH-ARIA-128-CBC-SHA256 Cipher suite TLS-DHE-DSS-WITH-ARIA-128-CBC-SHA256.
TLS-DHE-DSS-WITH-ARIA-256-CBC-SHA384 Cipher suite TLS-DHE-DSS-WITH-ARIA-256-CBC-SHA384.
TLS-RSA-WITH-SEED-CBC-SHA Cipher suite TLS-RSA-WITH-SEED-CBC-SHA.
TLS-RSA-WITH-ARIA-128-CBC-SHA256 Cipher suite TLS-RSA-WITH-ARIA-128-CBC-SHA256.
TLS-RSA-WITH-ARIA-256-CBC-SHA384 Cipher suite TLS-RSA-WITH-ARIA-256-CBC-SHA384.
TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256 Cipher suite TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256.
TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384 Cipher suite TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384.
TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256 Cipher suite TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC_SHA256.
TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384 Cipher suite TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC_SHA384.
TLS-ECDHE-RSA-WITH-RC4-128-SHA Cipher suite TLS-ECDHE-RSA-WITH-RC4-128-SHA.
TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA Cipher suite TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA.
TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA Cipher suite TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA.
TLS-RSA-WITH-3DES-EDE-CBC-SHA Cipher suite TLS-RSA-WITH-3DES-EDE-CBC-SHA.
TLS-RSA-WITH-RC4-128-MD5 Cipher suite TLS-RSA-WITH-RC4-128-MD5.
TLS-RSA-WITH-RC4-128-SHA Cipher suite TLS-RSA-WITH-RC4-128-SHA.
TLS-DHE-RSA-WITH-DES-CBC-SHA Cipher suite TLS-DHE-RSA-WITH-DES-CBC-SHA.
TLS-DHE-DSS-WITH-DES-CBC-SHA Cipher suite TLS-DHE-DSS-WITH-DES-CBC-SHA.
TLS-RSA-WITH-DES-CBC-SHA Cipher suite TLS-RSA-WITH-DES-CBC-SHA.

Load Balancing

SSL-VPN

Wie kann ich beim SSL-VPN einen Bookmarker konfigurieren, das dieser ein Zielsystem im Internet erreicht?

Wenn ich beim SSL-VPN Webportal Bookmarker konfiguriere, habe ich dich Möglichkeit, ein System in meinem Netz verfügbar zu machen. Jetzt möchte ich ein System über das Portal im Internet erreichen. Wie muss ich da vorgehen.

Damit ich das System im Internet erreiche, brauche ich eine neue Firewall Regel:

Fortinet-1987.jpg


Wie muss SSL-VPN Bookmark konfiguriert werden, wenn der Zielserver nur über einen IPSec Tunnel verfügbar ist?

Vorbemerkungen:
Ziel dieser Anleitung ist, eine Intranet Webseite die nur über einen IPSec Tunnel erreichbar ist, über ein Bookmark auf einem SSL-VPN Portal auf einer Fortigate abzubilden.

Ausgangslage:

Zielarchitektur Verwendete Geräte

Fortinet-2232.png

  • Fortigate 60E Beta3

Annahmen:
Die folgende Anleitung basiert auf folgenden Voraussetzungen:

  • Die Fortigate Firewall ist vollständig konfiguriert, hat Zugriff aufs Internet, LAN->WAN Kommunikation ist bereits etabliert.
  • Der IPSec Tunnel zwischen der Fortigate und dem Drittprodukt, hinter welchem sich der zu publizierende Webserver (In diesem Fall 172.16.1.10) befindet, wurde bereits erfolgreich etabliert, so dass eine Kommunikation zwischen den lokalen Clients (192.168.10.0/24) und den Remote Clients (172.16.1.0/24) möglich ist.

1. Erstellung SSL VPN Portal
Um das SSL VPN Portal zu erstellen, gehe auf der Weboberfläche unter VPN > SSL-VPN Portals und erstelle mit Create New ein neues SSL VPN Portal:

Fortinet-2233.png

  1. Definiere hier einen Namen für das Portal
  2. Deaktiviere den Schiebregeler
  3. Aktiviere den Schiebregler bei "Enable Web Mode"
  4. Erstelle unter Predefined Bookmarks ein Bookmark vom Typ HTTP/HTTPS mit einem Aussagekräftigen Namen. Als Location wähle die URL der Applikation, mit welcher das Bookmark aufgerufen werden können soll.

Mit einem Klick auf Ok wird dieses Portal abgespeichert.

2. Konfiguration der SSL VPN Einstellungen
Im nächsten Schritt wird definiert auf welchem Interface und auf welchem Port das User Portal überhaupt erreichbar sein sollen. Wir definieren welche Gruppen und Benutzer auf das Portal zugriff haben sollen, und wir verknüpfen das in Schritt 1 erstellte Portal mit dem Default Portal. Wähle dazu den MenüpunktVPN > SSL-VPN Settings:

Fortinet-2234.png

  1. Listen on Interface: Hier wählen wir das WAN Innterface
  2. Listen on Port: Hier muss ein freier Port gewählt werden, der auf diersem Interface noch nicht anderweitig durch ein VIP Objekt, NAT oder einen sonstigen lokalen Service in Verwendung ist.
  3. Wenn das Portal überall vom Internet zugänglich sein soll, wähle hier Allow access from any host
  4. Defniere unter Authentication / Portal Mapping Dass das soeben erstellte Portal unter dem Default Realm zugänglich sein soll. Hier können ausserdem einschränkungen gemacht werden, für welche Benutzer/Gruppen dieses Portal zur Verfügung stehen soll.

Mit einem Apply werden die gewählten Einstellungen appliziert.

Somit haben wir die nötigen Einstellungen für das SSL VPN Portal vorgenommen.


3. Erstellung des IP Pools
Damit nun das SSL VPN Portal in der Lage ist, mit diesem Webserver zu kommunizieren benötigt es eine Firewall Regel, welche der Firewall dies erlaubt. Für diese Firewallregel benötigen wir einen IP Pool, damit die Source IP des Requests der Firewall dem entsprechend angepasst wird. Diesen IP-Pool erstellen wir unter Policies & Objects > IP Pools > Create new

Fortinet-2236.png

  1. Type: Overload
  2. External IP Range: Hier wählen wir eine IP welche gemäss IPSec-Phase-2-Konfiguration sich im Bereich der lokalen, erlaubten Addressen befindet.

Mittels Apply wird abgespeichert.

4. Firewall Regel
Zum Schluss wird noch die Firewall Regel erstellt, welche benötigt wird, damit eine Kommunikation zwischen dem Portal und dem Webserver erlaubt wird: Policy & Objects > IPv4 Policy > Create new

Fortinet-2235.png

  1. Incoming Interfac: Wähle hier das entsprechende SSL VPN Tunnel Interface
  2. Outgoing Interface: Wähle hier das Interface des IPSec Tunnels
  3. Source: Wähle hier mindestens ein Netzwerk+ ein Benutzerobjekt welches erlaubt werden soll
  4. Destination: Wähle hier all, oder schränke den IP-Bereich auf den zu erreichenden Webserver ein.
  5. NAT: Schalte hier das NAT ein
  6. IP Pool Configuration: Wähle hier Use Dynamic IP Pool und wähle hier das IP-Pool Objekt, welches im vorherigen Schritt erstellt wurde.
  7. Aktiviere den Regler bei Enable this Policy

Mittels OK wird die Firewall Regel gespeichert.

Ergebnis
Ein Berechtigter Benutzer ist nun in der Lage über die externe IP der Firewall auf das Userportal zuzugreifen. Auf diesem User Portal hat er ein Bookmark, welches wiederum auf einen Webserver zeigt, der nur via IPSec zugänglich ist. Mit einem Klick auf das Bookmark kann der User nun auf diesen Webserver zugreifen:

Fortinet-2237.png

IPSec VPN

Wie konfiguriere ich eine Site to Site IPSec VPN Verbindung von Grundauf?

ARTIKEL NOCH IN BEARBEITUNG und nicht VOLLSTÄNDIG

Ausgangslage

Wir wollen ein Site to Site VPN aufbauen von der Seite A zur Seite B. Nachfolgenden der Netzplan und die Parameter um den VPN Tunnel zu bilden:

Seite A Seite B

Netzplan

Fortinet-2559.jpg
Lokal Netzwerk 192.168.2.0/24 172.16.16.0/24
Public IP 198.18.0.4 198.18.0.5

Authentication

Pre-shared Key definieren

Phase 1 Proposal

Alogrithms: AES256-SHA256 DH-Group 14

Phase 2 Proposal

Alogrithms: AES256-SHA512 / PFS-DH-Group 14

Schritt 1 - IPSec Tunnel konfigurieren

Konfiguration über das WebGui

Beschreibung

Fortinet-2545.jpg

  1. Gehe auf das Menu VPN->IPsec Tunnel->Createnew.jpg
  2. Tunnel Name eingeben. Dieser Name wird zugleich der Name des vpn Subinterfaces sein, welches sich dann beim Ausgehenden Interface bildet. Daher sollte der Name gut gewählt werden, damit die Übersichtlichkeit gewährleistet wird. Achtung der Name kann nachträglich nicht mehr editiert werden.
  3. Um den VPN Wizard zu beenden bei Template Type auf Custom wählen
  4. mit Next zum nächsten Schritt
Fortinet-2546.jpg

Network:

  1. RemoteGateway auswählen (Static IP Address , Dialup User oder Dynamic DNS) Für unser Beispiel brauchen wir Static IP Address.
  2. Die IP Adresse von dem Remote VPN Gateway angeben, über welche wir die VPN Verbindung aufbauen wollen. In unserem Fall 198.18.0.5.
  3. Das ausgehende Interface wählen, auf welchem der Tunnel zum Default Gateway zeigt. (meistens ein WAN Interface.)
  4. NAT Traversal (Natoptionen wählen)
  5. DPD konfigurieren
Fortinet-2547.jpg

Authentication

  1. Wahlweise kann mit einem Preshared Key oder Zertifikaten gearbeitet werden. Bei Zertifikaten ist zu beachten, dass diese Gültig sind und das Datum noch nicht abgelaufen ist. In unserem Beispiel benutzen wir die Methode Pr-shared Key.
  2. Preshared-Key definieren und mit der Remote Seite abgleichen. Es muss auf beiden Seiten exakt der gleiche komplexe Schlüssel verwendet werden.
  3. IKE Methode wählen. Die FortiGate unterstützt die Methode IKEv1 und IKEv2. Für unser Beispiel wählen wir die Methode IKEv2
Fortinet-2548.jpg

Phase 1 Proposal

  1. Encryption wählen. Wir wählen AES256
  2. Authentication wählen. Wir benutzen AES256
  3. Für die temporäre Verschlüsselung um den effektiven Key zu tauschen, benutzen wir die Diffie-Hellmann Group Methode. Für unser Beispiel wählen wir die DH-Group 14.
  4. Die Key Lifetime in Sekunden belassen wir so. Achtung wen auf einen Drittanbieter Gerät ein VPN aufgebaut wird, muss dieser Parameter oft angepasst werden.

Fortinet-2549.jpg
Fortinet-2550.jpg

Phase 2 konfigurieren

  1. Es können mehrere Selektoren Pro Phase 1 definiert werden. Wichtig ist, dass auf beiden VPN-Gateway die Selektoren identisch sein müssen. Definiere einen Namen per Selektor und konfiguriere das Lokale und das Remote Subnetz welches dann die Encryption Domäne bildet. In unserem Beispiel wählen wir Local Address 192.168.2.0/24 und Remote Address 172.16.16.0/24
  2. über Advanced kann man die Phase 2 Proposal per Selektor definieren.
  3. Encryption wählen. Wir benutzen AES256.
  4. Authentication definieren. Wir wählen SHA512.
  5. Enable Replay Detection einschalten. IPsec-Tunnel können für Replay-Angriffe anfällig sein. Die Replay Detection ermöglicht es der FortiGate alle IPsec-Pakete zu überprüfen, um festzustellen, ob sie bereits empfangen wurden. Wenn verschlüsselte Pakete ausser Betrieb sind, werden sie von der FortiGate verworfen.
  6. Perfect Forward Secrecy einschalten. Standardmässig werden die Phase 2-Schlüssel von dem in Phase 1 erstellten Sessionkeys abgeleitet. Perfect Forward Secrecy (PFS) erzwingt einen neuen Diffie-Hellman-Austausch, wenn der Tunnel beginnt und wenn die Keylife der Phase 2 abläuft, wodurch jedes Mal ein neuer Schlüssel generiert wird. Dieser Austausch stellt sicher, dass die in Phase 2 erstellten Schlüsseln unabhängig von den Schlüsseln der Phase 1 oder anderen Schlüsseln sind, die in Phase 2 automatisch erzeugt werden.

Schritt 2 - Routen konfigurieren

Konfiguration über das WebGui

Beschreibung

Fortinet-2551.jpg

Damit die FortiGate die Remote Netze für den VPN Tunnel kennt, muss eine Route auf das Tunnel Interface eingerichtet werden. Die Route kann folgendermassen konfiguriert werden:

  1. Menu Network -> Static Routes -> Createnew.jpg
  2. Bei Destination muss 'Subnet gewählt werden.
  3. Das remote Netz (in userem Fall 172.16.16.0/24) eingeben
  4. Interface ist das Tunnel Interface (dieses Interface wird automatisch angelegt, wenn der IPSec Tunnel konfiguriert wird.) In unserem Fall heisst das Interface vpn_to_SiteB
  5. Administrative Distanz kann auf 10 bleiben.
  6. Kommentare schaffen Klarheit
  7. mit OK wird die statische Route eingerichtet.

Fortinet-2542.jpg

Jetzt muss noch die Blackhole Route eingerichtet werden. Was eine Blackhole Route ist, kann hier entnommen werden:

Was ist eine Blackhole-Route?

  1. Remote Netz eintragen
  2. Interface Blackhole auswählen
  3. die Distanz muss höher sein, als die der regulären Route. Wir empfehlen den Wert 254.
  4. Kommentare schaffen Klarheit
  5. mit OK wird die Route eingerichtet.

Fortinet-2552.jpg

Nun sollten beide Routen in der Übersicht ersichtlich sein.

Schritt 3 - Policy Einrichten

Konfiguration über das WebGui

Beschreibung

Fortinet-2553.jpg

Damit der Traffic durch den VPN Tunnel fliesst, muss mindestens in eine Richtung eine Firewall Regel konfiguriert werden. Dabei wird das Tunnel Interface und das Interface für den Lokalen Traffic untereinander freigeschalten:

  1. Menu Policy & Objects -> IPv4 Policy -> Createnew.jpg
  2. Für eingehenden Traffic von der Remote Seite zur Lokalen Seite muss als Source das VPN Interface gewählt werden und als Destination das interne Interface.
  3. Source Adresse ist das Remote Netz der Seite B.
  4. Destinations Netz ist das zu erreichende Netz auf der lokalen Seite.
  5. bei bedarf können die Services eingeschränkt werden
  6. NAT Option deaktivieren.
  7. UTM Feature bei bedarf aktivieren.
  8. mit OK wird die Regel erstellt.

Fortinet-2554.jpg

Damit der Traffic von beiden Seiten her funktioniert, muss ich noch eine zweite Policy einrichten. Diese kann analog der ersten Policy eingerichtet werden, einfach die Source und Destinations Interfaces und Adressobjekte tauschen. Alternativ kann auch die neu eingerichtete Policy mit rechtsklick angeklickt werden und im Dropdown Menu Clone Reverse gewählt werden.

Fortinet-2555.jpg

In der Policy muss jetzt dennoch was kleines konfiguriert werden:

  1. Feld für den Policy Namen definieren
  2. Die Policy muss aktiviert werden
  3. mit OK wird die Reverse Policy eingerichtet.

Fortinet-2556.jpg


Fortinet-2557.jpg

Fortinet-2558.jpg

Wie kann eine L2TP over IPSec Verbindung erstellt werden?

In den meisten Fällen ist eine Client2Side Verbindung mit anderen Technologien wie beispielsweise dem FortiClient oder dem Cisco VPN Client aus Performance- und Sicherheitsgründen zu bevorzugen. Bei einer C2S Verbindung via SSL oder IPSec besteht ausserdem die Möglichkeit, Split Tunneling zu konfigurieren. Bei einem L2TP VPN muss immer der gesamte Datenverkehr über den Tunnel geleitet werden. Der Aufbau einer C2S Verbindung mit einer Fortigate ist jedoch dann sinnvoll, wenn es sich bei den Clientbetriebssystemen um ein Windows Betriebssystem handelt, auf welchem zwingend keine Software von Drittherstellern installiert werden darf. Eine L2TP IPSec Verbindung kann unter Windows nämlich mit den Bordmitteln etabliert werden.

Unter FortiOS 6.0 kann ein L2TP over IPSec Client2Side Tunnel nur teilweise im GUI konfiguriert werden. Da gewisse Konfigurationsschritte im CLI vorgenommen werden müssen, basiert die folgende Anleitung komplett auf CLI-Befehlen.

L2TP over IPSec basiert immer auf einer Benutzerauthentifizierung. Aus diesem Grund benötigen wir einen lokalen oder einen Remotebenutzer, welchem wir die entsprechenden Rechte zuweisen können.

	config user local
		edit "mytestuser"
			set type password
			set email-to "mytestuser@test.com"
			set passwd meinpasswort
		next

Dieser Benutzer wiederum wird einer Gruppe zugewiesen, welche später für den L2TP Zugriff berechtigt wird.

	config user group
		edit "l2tpgroup"
			set member "mytestuser"
		next
	end

Nun benötigt es einige L2TP-spezifische Einstellungen (nicht im GUI konfigurierbar). Mit SIP und EIP definieren wir den IP-Range der IP Adressen, welche für die L2TP Clients zur Verfügung stehen sollen. Ausserdem definieren wir hier die Benutzergruppe, welcher Zugriff via L2TP gewährt werden soll.

	config vpn l2tp
		set sip 10.20.100.1
		set eip 10.20.100.254
		set status enable
		set usrgrp "l2tpgroup"
	end

Da wir später in der Firewallpolicy mit diesen Source IP Adressen eine Firewallregel erstellen müssen, kreieren wir als nächstes gerade ein entsprechendes Addressobjekt.

	config firewall address
		edit "net_vpn_10.20.100.0/24"
			set subnet 10.20.100.0 255.255.255.0
		next
	end

Nun kann die Phase1 des IPSec Tunnels erstellt werden. Wichtig ist hier, dass diese vom Typ dynamic ist, als Peertype jede IP Adresse zulässt und die Proposals mit denen aus dem Beispiel übereinstimmen.

	config vpn ipsec phase1
		edit "l2tp-p1"
			set type dynamic
			set interface "wan1"
			set peertype any
			set proposal 3des-sha1 aes256-md5
			set dhgrp 2
			set psksecret meinepsk
			set dpd-retryinterval 60
		next
	end

Auf dieser Phase1 kann anschliessend die Konfiguration für Phase2 aufgebaut werden. Als Quickmode Selector kann 0.0.0.0/0 gewählt werden (im CLI per Default so). Auch hier muss darauf geachtet werden, dass PFS deaktiviert wird, und dass als Encapsulation Mode der Tunnel Mode gewählt wird.

	config vpn ipsec phase2
		edit "l2tp-p2"
			set phase1name "l2tp-p1"
			set proposal 3des-sha1 aes192-sha1 aes256-md5
			set pfs disable
			set encapsulation transport-mode
			set keylifeseconds 86400
		next
	end

Bei einem L2TP over IPSec Tunnel handelt es sich um einen policybasierten IPSec Tunnel. Diese Art von Tunnel bedarf etwas spezielle Firewallregel je für ein- und ausgehenden Traffic. Die ausgehende Firewallregel hat wie folgt auszusehen. Wichtig hierbei ist, dass die Action auf ipsec gestellt wird, und anschliessend das entsprechende IPSEC Tunnel Interface gewählt wird.

	config firewall policy
		edit 3
			set name "2l2tp"
			set srcintf "lan1"
			set dstintf "wan1"
			set srcaddr "net_int_192.168.2.0/24"
			set dstaddr "net_vpn_10.20.100.0/24"
			set action ipsec
			set schedule "always"
			set service "ALL"
			set inbound enable
			set vpntunnel "l2tp-p1"
		next
		edit 6
			set name "l2tpincoming"
			set srcintf "wan1"
			set dstintf "lan1"
			set srcaddr "net_vpn_10.20.100.0/24"
			set dstaddr "net_int_192.168.2.0/24"
			set action accept
			set schedule "always"
			set service "ALL"
		next
	end

Somit wurde auf Seiten der Fortigate die Konfiguration für das L2TP over IPSec VPN fertiggestellt.

Ein Windows-10 Client wird wie folgt konfiguriert, damit er eine Verbindung via L2TP aufbauen kann:

Fortinet-2248.png

Fortinet-2249.png

Wie konfiguriere ich ein SSL-VPN Portal welches ueber ein Site to Site VPN ein ServerLAN auf der Remote Seite erreicht?

Problemstellung:

Es besteht eine Site to Site VPN Verbindung zwischen der Site 1 zur Site 2. Wir haben auf der Site 2 einen Server mit der IP Adresse 172.16.16.20. Nun soll es möglich sein, über eine SSL-VPN Verbindung auf die Site 1 auch auf den Server 172.16.16.20 zuzugreifen. Das heisst wir müssen auf der Site 1 ein SSL-VPN konfigurieren und danach dafür sorgen, dass der Traffic weiter durch den bestehenden S2S Tunnel auf den Server 172.16.16.20 weiter geroutet wird. Das unten dokumentierte Szenario basiert auf dem Umstand dass auf Site1 sowie auf Site2 eine Fortigate Firewall im Einsatz ist. Ein Teil der untenstehenden Anleitung kann jedoch auch dann übernommen werden, wenn auf Site2 eine Firewall eines Drittherstellers zum Einsatz kommt, oder wenn sich Site2 in einer Public Cloud wie Azure oder AWS befindet. Die generischen, herstellerneutralen Schritte, um ein solches Szenario zu konfigurieren sind immer die folgenden:

  1. Firewall Site2: Ändern sie die IPs des SSL-VPN-Pool auf einen IP-Range, damit der IP-Pool der Site2 nicht mit dem Pool von Site1 kollidiert.
  2. Firewall Site1: Konfigurieren Sie in der SSL VPN Client2Site Konfiguration die Split Networks so, dass das entsprechende Netz von Site2 (172.16.16.0/24) über den SSL VPN Tunnel geroutet wird.
  3. Firewall Site1 und Site2: Konfigurieren Sie die IPSec Einstellung des entsprechenden Tunnels so, dass sich das SSL-VPN-Client2Site Netz von Site1 (10.10.10.1/24)) auf beiden Seiten entweder in der Local oder in den Remote Networks befindet. Somit werden diese IP über den IPSec Tunnel überhaupt erst zugelassen.
  4. Firewall Site2: Erstellen Sie eine statische Route damit das SSL VPN C2S Netz von Site1 via IPSec Tunnel an Site1 übermittelt wird.
  5. Firewall Site 1+2: Passen Sie die entsprechenden Firewallregeln an, damit eine Kommunikation möglich ist.


Lösungsansatz:

Die untenstehende Anleitung basiert auf folgedem Netzwerkschemata:

Netzwerkplan:

Fortinet-1940.jpg

Violett : Bestehende Konfiguration.
Rot : Wird neu konfiguriert.

Konfiguration über das WebGui: Die Konfiguration basiert auf dem FortiOS 6.0.2:

Konfiguration Site 1

Fortinet-1941.jpg Als erstes die User anlegen. Diese können als Lokale User eingerichtet werden (In unserem Beispiel machen wir das so) Es ist auch möglich Radius oder LDAP User zu konfigurieren.
# config user local
# edit "user1"                    -> Username definieren
# set type password
# set passwd "user1"              -> Passwort definieren 
# end
Fortinet-1942.jpg Die User in eine Usergruppe zuweisen. Diese Usergruppe wird beim SSL-VPN Portal dann benutzt.
# config user group
# edit "gr-user-ssl-vpn"
# set member "user1"
# end
Fortinet-1943.jpg Für die Konfiguration des SSL-VPN Portals brauchen wir noch einen IP Pool. Dieser IP Pool wird den Clients zugewiesen. Es muss darauf geachtet werden, dass der definierte IP-Pool auf der Remote Seite (Site 2) nicht benutzt wird. Der Pool fängt mit der IP Adresse 10.10.10.2 an.
# config firewall address
# edit "ippool-ssl-vpn-10.10.10.2-10.10.10.254"
# set type iprange
# set color 18
# set start-ip 10.10.10.2
# set end-ip 10.10.10.254
# end
Fortinet-1944.jpg Es muss ein Dummy SSL-VPN Portal eingerichtet werden, um abzudecken was passiert wen kein gültiger User kommt. Wir stellen ein Portal her in welchem es möglich ist nur den FortiClient herunterzuladen.

Menu SSL-VPN Portals -> Create New -> konfigurieren wie im Screen abgebildet. (Tunnel Mode off Enable Web Mode off, Enable FortiClient Download on)

# config vpn ssl web portal
# edit "dummy-portal"
# end
# end
Fortinet-1945.jpg Wir konfigurieren jetzt das eigentliche SSL-VPN Portal. Wir benutzen den Tunnel-Mode. Das bedeutet, wir können nur mit dem FortiClient die Verbindung etablieren.

SSL-VPN-Portals -> tunnel-access editieren oder ein neues Portal definieren (Create New).

  1. Tunnel Mode auf on stellen.
  2. Enable Split Tunneling einschalten. Damit wird nur der Traffic über den VPN Tunnel geroutet, welcher auf der Remote Seite anzutreffen ist. Wenn Split Tunneling nicht eingeschaltet wird, wird sämtlicher Traffic (0.0.0.0/0) durch den Tunnel geroutet. Bei Routing Address wird das IP Netzwerk angegeben, welches erreicht werden muss. Wir müssen jetzt das Server Lan Netz von Site1 sowie den IP-Range der DMZ von der Site 2 (172.16.16.0/24) auswählen.
  3. Source IP Pool definiert den IP Adress Range welcher dem VPN-Client zugewiesen wird.
  4. Den Web Mode schalten wir auf off, den brauchen wir für dieses Setup nicht.
  5. Mit OK geht es weiter.
# config firewall address
# edit "net-vpn-172.16.16.0-24"
# set color 10
# set allow-routing enable
# set subnet 172.16.16.0 255.255.255.0
# end

SSL VPN Settings konfigurieren

# config vpn ssl settings
# set tunnel-ip-pools "ippool-ssl-vpn-10.10.10.2-10.10.10.254"
# set port 443
# set source-interface "wan1"
# set source-address "all"
# set default-portal "dummy-portal"
# config authentication-rule
# edit 1
# set groups "gr-user-ssl-vpn"
# set portal "tunnel-access"
# next
# end
# end
Fortinet-1946.jpg SSL-VPN Settings
  1. Listen on Interface : hier wird eingestellt auf welchem Interface das SSL-VPN Portal terminiert. Meist ist dies das WAN1 oder WAN2 Interface.
  2. Listen on Port : Hier wird der Port angegeben über welchen das Portal erreichbar ist. Es ist darauf zu achten, wenn der Administrationsport der Firewall auf 443 eingestellt ist, hier einen alternativen Port zu wählen. Die bessere Lösung wäre den Administrationsport für HTTPS auf einen anderen Wert zu setzen.
  3. Tunnel Mode Client Settings : Address Range wird auf Specify custom IP ranges gesetz. Der IP Ranges ist das Adressobekt das wir vorab eingerichtet haben (10.10.10.2-10.10.10.254). Bei Bedarf kann noch ein DNS Server konfiguriert werden, ansonsten wird der Default DNS Server des Clients benutzt.
  4. Allow Endpoint Registration : Diesen Schalter, stellen wir auf off. Wenn er eingeschaltet wird, registriert sich der Client auf der FortiGate. Ab 10 registrierten Geräten wird eine Lizenz benötigt.
  5. die Portalzuweisungen vornehmen (siehe unten)
Fortinet-1947.jpg
  1. Authentication/Portal Mapping : Hier können wir die Portale den Gruppen zuweisen. Create New wird ein neues mapping eingerichtet. Wir brauchen für die Gruppe gr-user-ssl-vpn das Portal tunnel-access. Alle anderen User/Gruppen gehen in das dummy-portal.
    1. Die Gruppe gr-user-ssl-vpn weisen wir dem tunnel-access Portal zu
    2. All Other User/Grupes wird dem dummy-portal zugewiesen.
  2. mit apply wird das SSL-VPN Setting abgeschlossen.
Fortinet-1952.jpg Im Site to Site IPSEC Tunnel muss noch eine zweite Encryption Domäne hinzugefügt werden. Wir wollen das Netz 10.10.10.0/24 auch durch den Tunnel routen:
  1. VPN -> IPsec Tunnels -> den entsprechenden VPN Tunnel editieren und einen weiteren Phase 2 Selector hinzufügen.
  2. Locale Address : Den Adressenpool des SSL-VPN Portal (10.10.10.0/24)
  3. Remote Address : Das Netzwerk von der Server-DMZ (172.16.16.0/24)
  4. bei Bedarf unter Advanced noch die Encryption und Athentication Parameters anpassen
  5. OK zum bestätigen und den neuen Selector anzfügen.

' Adress Objekt definieren für Splittunnel:

# config vpn ipsec phase2-interface
# edit "Site1_to_Site2"                                             -> Name des Tunnels
# edit "site1-sslvpn-site2"                                         -> Name definieren des Selektors
# set phase1name "Site1_to_Site2"
# set proposal aes256-sha256 aes128gcm aes256gcm chacha20poly1305   -> Gewünschte Verschlüsslungsalgerithmen konfigurieren 
# set dhgrp 14
# set src-subnet 10.10.10.0 255.255.255.0                           -> Source Netzwerk : SSL-VPN IP-Pool 
# set dst-subnet 172.16.16.0 255.255.255.0                          -> Destinations Netzwerk (DMZ ServerLan)
# end
Fortinet-1949.jpg Policy für den Zugriff vom Client auf das SSL-VPN weiter zur Remote Seite des IPSEC Tunnels:

Policy & Objects -> IPv4Policy -> Create New

  1. Incoming Interface : Interface des SSL-VPN Portals
  2. Outgoing Interface : Interface des IPSEC Site to Site Tunnels
  3. Source : IP-Pool Adressenrange vom SSL-VPN Portal (10.10.10.2/24) und die SSL-VPN Gruppe (gr-user-ssl-vpn)
  4. Destination : IP Adressrange des DMZ Serverlan (172.16.16.0/24)
  5. Services : die benötigten Ports freischalten (in userem Beispiel ist ANY gewählt)
  6. Nat : deaktiviert lassen
  7. Security Profiles : die gewünschten UTM-Features anwählen.
  8. Logging Options : Log Allowed Traffic aktivieren und All Sessions anwählen.
  9. Enable this policy : Darauf achten, dass der Schalter aktiv ist.
  10. mit OK wird die Policy erstellt und kann dann in der übersicht nach oben geschoben werden.
Fortinet-1950.jpg Die Zerfikatsmeldung kann ignoriert werden.

Übersicht des Policysets (es ist darauf zu achten, dass VPN Regeln oberhalb der Regulären Regeln sind.

Fortinet-1951.jpg


Konfiguration Site 2

Fortinet-1953.jpg Im bestehenden IPSEC Tunnel zur Site 1 muss noch einen zweiten Phase 2 Selektor für das SSL-VPN Netz erstellt werden.

IPsec Tunnels -> den entsprechenden Tunnel editieren

  1. einen neuen Phase 2 Selector eröffnen (Locales Netz 172.16.16.0/24, Remote Netz 10.10.10.0/24)
  2. Mit OK den zweiten Selector bestätigen.
# config vpn ipsec phase2-interface
# edit "site2-site1-sslvpn"                                         -> Name des Tunnels
# set phase1name "site2-site1"                                      -> Name definieren des Selektors
# set proposal aes256-sha256 aes128gcm aes256gcm chacha20poly1305   -> Gewünschte Verschlüsslungsalgerithmen konfigurieren 
# set dhgrp 14                                   
# set src-subnet 172.16.16.0 255.255.255.0                          -> Source Netzwerk (DMZ ServerLan)
# set dst-subnet 10.10.10.0 255.255.255.0                           -> SSL-VPN IP-Pool 
# next
# end
Fortinet-1954.jpg Jetzt muss das SSL-VPN Netz noch zurück in den Tunnel geroutet werden.

Network -> Static Routes -> Create New

  1. Das Netz des SSL-VPN IP-Pool eintragen. (In unserem Fall 10.10.10.0/24)
  2. Interface : Das Site to Site VPN Interface auswählen
  3. Kommentare schaffen Klarheit!
  4. Mit OK wird die Route konfiguriert.
# config router static
# edit [intiger]
# set dst 10.10.10.0 255.255.255.0 -> SSL-VPN IP-Pool Netz eintragen
# set device "site2-site1"         -> IPSEC Interface vom Tunnel Site1 <-> Site2 eintragen
# set comment "sslvpn site1"
# end
Fortinet-1955.jpg Die Blackhole Route nicht vergessen einzurichten:

Network -> Static Routes -> Create New

  1. Das Netz des SSL-VPN IP-Pool eintragen. (In unserem Fall 10.10.10.0/24)
  2. Interface : Das Interface Blackhole auswählen.
  3. die Administrative Distance muss höher sein, als die Administrative Distance der regulären Route. Wir empfehlen den Wert 254 zu konfigurieren.
  4. Kommentare schaffen Klarheit!
  5. Mit OK wird die Route konfiguriert.
# config router static
# edit [intiger]
# set dst 10.10.10.0 255.255.255.0 -> SSL-VPN IP-Pool Netz eintragen
# set distance 254                 -> Distanz muss höher sein, als in der regulären Route!
# set comment "Blackhole Route"
# set blackhole enable
# end

Wenn die Routen konfiguriert sind, können diese kontrolliert werden. Bitte noch einmal abchecken ob die Distance der Blackhole Route höher als die reguläre Route ist:

Fortinet-1956.jpg

Jetzt kann der zweite Selektor des IPSEC Tunnels hochgefahren werden.

Monitor -> IPsec Monitor -> auf dem entsprechenden Tunnel in der PHase 2 Selectors mit rechtsklick auf Bring Up klicken

Fortinet-1957.jpg

Fortinet-1958.jpg Wenn alles grün ist, ist der Tunnel up and running
Fortinet-1959.jpg Damit der Traffic an den Server weiter geleitet wird, muss noch eine Policy eingerichtet werden:

Policy & Objects -> IPv4 Policy -> Create New

  1. Incoming Interface : Das IPSEC Interface auswählen
  2. Outgoing Interface : Das Interface hinter welchem das Netz 172.16.16.0/24 angebunden ist.
  3. Source : Das IP-Pool Netz des SSL-VPN (10.10.10.0/24)
  4. Destination : Das Netz das erreicht werden soll (172.16.16.0/24)
  5. Services : in diesem Beispiel ist all angeben. Um eine optimale Sicherheit zu gewährleisten, macht es Sinn hier Einschränkungen zu konfigurieren mit den benötigten Ports
  6. NAT : deaktiviert lassen.
  7. Security Profile können nach Bedarf konfiguriert werden.
  8. Logging Options : Log Allowed Traffic einschalten und All Sessions anwählen.
  9. Enable this Policy : einschalten
  10. mit OK wird die Policy zu unterst im Regelset angefügt. Die Regel sollte zu den anderen VPN Regeln hochgeschoben werden.

Adressobjekte :

# config firewall address
# edit "net-172.16.16.0-24"
# set color 2
# set subnet 172.16.16.0 255.255.255.0
# next
# edit "vpn-remote-10.10.10.0-24"
# set color 10
# set subnet 10.10.10.0 255.255.255.0
# end

Policy konfigurieren:

# config firewall policy                  
# edit [intiger]                          
# set name "I_sslVPN-Site1_Site2"         
# set srcintf "site2-site1"               -> Source Interface ist das IPSEC-VPN Interface
# set dstintf "internal1"                 -> Destinations Interface ist das DMZ ServerLan Interface
# set srcaddr "vpn-remote-10.10.10.0-24"  -> Source IP : SSL-VPN IP-Pool 
# set dstaddr "net-172.16.16.0-24"        -> Destination IP : Netzwerk des DMZ ServerLan
# set action accept
# set status enable
# set schedule "always"
# set service "ALL"
# set logtraffic all
# end

Die VPN Regeln zusammen bündeln:

Fortinet-1960.jpg

Konfiguration FortiClient

Fortinet-1961.jpg Eine neue Verbindung im FortiClient einrichten:

Reiter SSL-VPN anwählen

  1. Verbindungsname eingeben
  2. Beschreibung für eigene Übersicht bei Bedarf eingeben
  3. Remote Gateway die Public IP Adresse der Site 1 (212.1.1.1) eingeben.
  4. Standartmässig ist der Port auf 443 konfiguriert, falls im SSL-VPN Portal ein anderer Port definiert wurde diesen hier anpassen.
  5. mit Anwenden wird der Zugang konfiguriert.
Fortinet-1962.jpg Zum Verbinden den entsprechenden Tunnel anwählen und die Benutzer Daten (Username und Passwort) eingeben. Mit Verbinden baut man den Tunnel auf.
Fortinet-1963.jpg Wenn die Anmeldung Erfolgreich durchgeführt werden konnte, wird der Tunnel etabliert. Wir sehen die IP Adresse, welche von der Site1 dem Client zugewiesen wurde (10.10.10.2)

Auf der Site2 können wir jetzt sehen, dass der Traffic von der IP Adresse 10.10.10.1 auf 172.16.16.20 mit der Policy ID 3 gematcht hat. Wir sehen die Adresse 10.10.10.2 welche aus dem SSL-VPN IP-Pool zugewiesen wurde

Fortinet-1964.jpg

Welche Faktoren sind bei einer VPN Geschwindigkeitsmessung relevant?

Wenn zwischen zwei Standorten ein IPSec Tunnel erstellt wird, so ist der Datendurchsatz zwischen den zwei Standorten von unterschiedlichen Faktoren abhängig. Häufig anzutreffen ist inzwischen der Umstand, dass an beiden Standorten eine synchrone Gigabit Internetverbindung vorhanden ist, und dass nun die Erwartungshaltung besteht, dass zwischen diesen beiden Standorten eine VPN-Verbindung mit annähernd Gigabit Geschwindigkeit möglich sein wird. In diesem Szenario spielt es jedoch auch eine grosse Rolle, ob der Provider (oder die mehreren Provider) dieses Gigabit auch durch seinen Backbone gewährleistet, was meistens nicht der Fall ist.

Der folgende Artikel hilft, den maximal technisch möglichen Durchsatz zwischen zwei Standorten zu ermitteln.

Fortinet-1971.jpg

Folgende Faktoren sind relevant um zu bestimmen, welcher Durchsatz maximal überhaupt möglich ist:

Seite A Seite B

1. Firewall
1.1. Modell der Firewall (Fortigate 100E, Sophos XG 115 Rev.3 etc.)
1.2. Maximal zu erwartender Durchsatz gemäss Datenblatt *
1.3. Gewählte MTU auf dem WAN-Interface

2. ISP
2.1. Name des ISP
2.2. Garantierter Upload des ISP
2.3. Garantierter Download des ISP

1. Firewall
1.1. Modell der Firewall (Fortigate 100E, Sophos XG 115 Rev.3 etc.)
1.2. Maximal zu erwartender Durchsatz gemäss Datenblatt (*)
1.3. Gewählte MTU auf dem WAN-Interface

2. ISP
2.1. Name des ISP
2.2. Garantierter Upload des ISP
2.3. Garantierter Download des ISP

3. Parameter zwischen den Standorten
3.1. Gemessener Durchsatz zwischen der Seite A und Seite B ohne IPSec Tunnel.(#)
3.2. Hops zwischen Firewall Seite A und Firewall Seite B (zu messen mit einem Traceroute zwischen den Firewalls)
3.3. Ping-Zeiten zwischen den beiden Standorten

* Die Durchsätze können den Datenblättern entnommen werden:
1. Datenblatt Fortinet Verwende den Wert IPsec VPN Throughput
2. Datenblatt Sophos Verwende den Durchsatz VPN AES Realworld (Mbps) multiple tunnels/cores

# Gemessener Durchsatz zwischen den zwei Standorten
Eine gültige Messung zwischen den Standorten hilft, festzustellen welchen Durchsatz der Provider durch seinen Backbone gewährleistet. Dieser Durchsatzwert kann natürlich je nach Tageszeit und allgemeiner Netzbelastung erheblich variieren. Eine Messung zu dessen Erhebung kann wie folgt vorgenommen werden:
1. Laden Sie auf https://speed.hetzner.de/ eines der zur verfügungstehenden Testfiles herunter.
2. Kopieren Sie dieses Testfile auf einen Webserver an einem der beiden Standorte
3. Publizieren Sie diesen Webserver via DNAT über die Firewall ins Internet (Anleitung hierzu: Sophos, Fortinet)
4. Laden Sie die Datei vom gegenüberliegenden Standort über das Internet (und nicht über den IPSec Tunnel) herunter, und messen sie den erreichten Durchsatz.

Maximal zu erwartender Durchsatz insgesamt:

  • Der maximale, technisch mögliche Durchsatz durch einen VPN Tunnel ergibt sich aus dem kleinsten Wert der oben erhobenen Durchsatzwerten in den Punkten 1.2, 2.2, 2.3 und 3.1.
  • Die erhobenen Messwerte in den Punkten 3.2 und 3.3 haben keinen direkten Einfluss auf den maximal möglichen Durchsatz, sind jedoch relevant wenn es um Messgrössen wie Delay oder Jitter geht.

Wie kann ich eine gültige VPN Performancemessung erstellen?

Nachdem im Artikel Welche Faktoren sind bei einer VPN Geschwindigkeitsmessung relevant der maximal erreichbare technische Durchsatz ermittelt wurde, möchte man nun dazu übergehen, zu messen ob dieser Durchsatz in der Praxis auch erreicht werden kann. Dabei gibt es ein paar Richtlinien zu beachten. Das altbekannte Sprichwort Wer misst, misst Mist! ist in diesem Fall leider oftmals allgegenwärtig.

Tools, welche beispielsweise via SMB eine Datei auf einen Fileshare kopieren, und dann den erreichten Durchsatz messen, messen nicht unbedingt den VPN Durchsatz, sondern unter Umständen viel eher:

  1. Die Festplattengeschwindigkeit des Zielsystems
  2. Die Geschwindigkeit des SMB Protokolls
  3. Die Geschwindigkeit der onRead Antivirenüberprüfung des Zielsystems
  4. Die Geschwindigkeit des DNS-Resolvers

Um solche Messfehler zu vermeiden, müssen folgende Richtlinien bei einer Messung unbedingt beachtet werden:

  • Eine Messung findet zwischen zwei Messsystemen statt, auf welchen zum Zeitpunkt der Messung keinanderer Traffic und keine anderen Tasks verarbeitet wird.
  • Der gesamte VPN Tunnel wird zum Zeitpunkt der Messung nicht von irgendwelchen anderen Systemen in Anspruch genommen.
  • Die beiden Internetleitungen werden zum Zeitpunkt der Messung nicht von irgendwelchen anderen Systemen belegt.
  • Die beiden Messsysteme befinden sich auf beiden Seiten direkt hinter der Firewall.
  • Als Messtool wird IPerf3 eingesetzt. Das Tool kann von der Iperf Projektseite inklusive Bedienungsanleitung heruntergeladen werden.
Datei: Beschreibung:

Datei:Iperf-howto.pdf

IPerf Anleitung

Datei:Tools-iperf.zip IPerf Tool

Messaufbau
Fortinet-1972.jpg

Fortinet-1973.jpg

FortiClient

Wie kann ich ohne den EMS Server ein vordefiniertes Softwarepaket für den VPN Client erstellen?

Seit FortiOS 5.4 gibt es von Fortinet das FortiClient Configuration Tool. Mit diesem Tool können benutzerdefinierte Softwarepakete erstellt werden. So kann beispielsweise eine komplette Konfiguration im XML Format mitgegeben werden, einzelne Komponenten der Installation entfernt werden oder den Installer als paketierfähiges *.MSI Paket in den Varianten 32 oder 64Bit heruntergeladen werden. Ausserdem ist es möglich, den FortiClient einem Rebranding zu unterziehen (Austausch der Logos und Grafiken).

Die aktuellste Version des FortiClient Configuration Tool kann jeweils über das Fortinet Developer Portal heruntergeladen werden. Das Configuration Tool ist als Standalone Software lauffähig, existiert für Windows und Mac und muss auf Windows nicht installiert werden.

Weitere Informationen:

Wie kann ich einen Registrierten User von der FortiGate wieder deregistrieren?

Wenn man die Endpoint Registration über den VPN Wizard nicht deaktiviert hat, wird jeder VPN Remote User auf der FortiGate registriert. Wenn man dies nicht will kann man die User wieder von der FortiGate deregistrieren:

Um zu sehen welche User registriert sind kann folgender Befehl eingegeben werden:

Konfiguration über CLI
# diag endpoint registration list

Um einen bestimmten User von der FortiGate aus zu deregistrieren kann das mit dem folgenden Befehl erreicht werden:

Konfiguration über CLI
# diag endpoint registration deregister <FortiClient UID>

Um alle User in einem zu deregistrieren:

# diag endpoint registration deregister all


Um die ganze Endpoint Registration zu lösen muss die telemetrie auf dem entsprechenden VPN Interface deaktiviert werden:

Konfiguration über CLI
# config system interface
# edit <tunnel.interface>
# set fortiheartbeat disable
# end

High Availability

Wie wird ein HA-Failover Cluster erstellt?

Dieser Artikel beschreibt, wie ein HA Failover Cluster mit Fortigate Firewalls unter FortiOS 6.01 erstellt werden kann. Ziel ist untenstehendes Szenario:

Fortinet-2251.png

Vorbedingungen:
Eine HA Konfiguration setzt einige Vorbedingungen für beide Geräte voraus. Ein HA-Cluster kann nur erstellt werden wenn folgende Eigenschaften bei beiden Maschinen identisch sind:

  • Gerätetyp (z.b: 2x Fortigate 200D)
  • Revision
  • Firmware
  • FortiGuard Lizenzen
  • Operating Mode (Transparent oder NAT)
  • Festplattenkapazität

Wenn eines der beiden Geräte einen tieferen Lizenzstatus hat (Weniger Funktionen lizenziert, oder kürzere Laufzeit) dann wird der gesamte Cluster automatisch auf diersen tieferen Lizenzstatus heruntergesetzt.


1. Konfiguration des Hostnamen auf dem Master

Fortinet-2252.png

Bitte konfiguriere den Devicenamen auf dem Gerät, welches später die Rolle des Masters übernehmen soll. Diese Einstellung ist zu finden unter System > Settings > Hostname

2. Aktivieren der HA Funktion auf dem Master

Fortinet-2254.png

Anschliessend kann die HA-Funktion auf dem Master unter System > HA aktiviert werden.

  • Als Mode wird Active-Passive gewählt.
  • Die Device Priorität bestimmt anschliessend darüber, welches der beiden Geräte als Master selektiert wird. Das Gerät mit der höheren Priorität wird vom Cluster zum Master selektiert.
  • Unter Group Name muss für den Cluster einen Gruppennamen und ein Passwort gewählt werden. Dieser Gruppennamen muss innerhalb der eigenen Umgebung einmalig sein, respektive über die Heartbeat Interfaces darf keine andere Gruppe mit einem identischen Namen existieren.
  • Session Pickup bestimmt, ob in einem Failover Fall bereits etablierte Sessions von der Slave Firewall akzeptiert werden, oder ob im Failoverfall jede Session neu aufgebaut werden muss.
  • Unter Monitor Interfaces werden die Interfaces selektiert, anhand von welchen ein Failover erfolgt, wenn eines dieser Interfaces auf dem Master nicht mehr verfügbar ist. Ergo sollten hier nur die Interfaces gewählt werden, welche garantiert immer UP sind.
  • Unter Heartbeat Interfaces muss mindestens ein Interface gewählt werden, über welches der Cluster die Statusinformationen austauscht. Empfohlen werden hier aus Redundanzgründen zwei dedizierte Interfaces. Es können hier theoretisch Interfaces verwendet werden, welche auch sonst verwendet werden. Es wird jedoch empfohlen für den Heartbeat zwei dedizierte, voneinander unabhängige Interfaces zu verwenden. Werden dedizierte Interfaces verwendet, so müssen diese nicht vorgängig mit einer IP vorkonfiguriert werden.
  • Unter Heartbeat Interface Priority kann definert werden, welchem der beiden Interface der Vorzug gewählt werden soll. Wird zum beispiel ein produktives und ein dediziertes Interface für den Heartbeat verwendet, so empfiehlt es sich, das dedizierte Interface mit einer höheren Priorität zu versehen.

3. Aktivieren der HA Funktion auf dem Slave

Fortinet-2253.png

Nun kann die HA-Funktion auf dem Slave ebenfalls System > HA aktiviert werden.

  • Als Mode wird ebenfalls Active-Passive gewählt.
  • Die Device Priorität soll tiefer gewählt werden, als diejenige des Master.
  • Unter Group Name und Password wird die selbe Gruppe und das selbe Passwort wie auf dem Master hinterlegt.
  • Konfiguriere Session Pickup analog Master.
  • Konfiguriere Monitor Interfaces analog Master.
  • Konfiguriere Heartbeat Interfaces analog Master.
  • Bestätige und schliesse ab.

Sobald sich die beiden Clustermember nun über ein Heartbeat Interfaces sehen, beginnen sie den Cluster zu bilden. der Slave wird neu gestartet und allenfalls mit der Konfiguration des Masters überschrieben. Nach einem Reboot sollte unter System > HA eine Übersicht über den Clusterstatus zu sehen sein:

Fortinet-2255.png

Auch auf der Konsole kann der Status angeschaut werden:

Konfiguration über CLI
fgt200-master # get system ha status
HA Health Status: OK
Model: FortiGate-200D
Mode: HA A-P
Group: 0
Debug: 0
Cluster Uptime: 0 days 00:07:01
Cluster state change time: 2018-07-17 16:34:31
Master selected using:
<2018/07/17 16:34:31> FG200D3916811639 is selected as the master because it has the largest value of override priority.
<2018/07/17 16:28:53> FG200D3916811639 is selected as the master because it's the only member in the cluster.
ses_pickup: enable, ses_pickup_delay=disable
override: enable
Configuration Status:
FG200D3916811639(updated 1 seconds ago): in-sync
FG200D3916811425(updated 1 seconds ago): in-sync
System Usage stats:
FG200D3916811639(updated 1 seconds ago):
	sessions=22, average-cpu-user/nice/system/idle=0%/0%/0%/100%, memory=13%
FG200D3916811425(updated 1 seconds ago):
	sessions=19, average-cpu-user/nice/system/idle=0%/0%/0%/100%, memory=12%
HBDEV stats:
FG200D3916811639(updated 1 seconds ago):
	port15: physical/1000auto, up, rx-bytes/packets/dropped/errors=1551614/2217/0/0, tx=1647198/2222/0/0
	port16: physical/1000auto, up, rx-bytes/packets/dropped/errors=1524874/2093/0/0, tx=1536540/2054/0/0
FG200D3916811425(updated 1 seconds ago):
	port15: physical/1000auto, up, rx-bytes/packets/dropped/errors=1649104/2225/0/0, tx=1561984/2232/0/0
	port16: physical/1000auto, up, rx-bytes/packets/dropped/errors=1537302/2055/0/0, tx=1532880/2104/0/0
MONDEV stats:
FG200D3916811639(updated 1 seconds ago):
	port1: physical/1000auto, up, rx-bytes/packets/dropped/errors=266700/1415/0/0, tx=1429610/1381/0/0
	wan1: physical/1000auto, up, rx-bytes/packets/dropped/errors=108967/614/0/0, tx=50166/420/0/0
FG200D3916811425(updated 1 seconds ago):
	port1: physical/1000auto, up, rx-bytes/packets/dropped/errors=356552/1565/0/0, tx=1684592/1618/0/0
	wan1: physical/1000auto, up, rx-bytes/packets/dropped/errors=122941/623/0/0, tx=37058/345/0/0
Master: fgt200-master   , FG200D3916811639, cluster index = 0
Slave : fgt200-slave    , FG200D3916811425, cluster index = 1
number of vcluster: 1
vcluster 1: work 169.254.0.1
Master: FG200D3916811639, operating cluster index = 0
Slave : FG200D3916811425, operating cluster index = 1

Achtung hierbei:

Status: OK

heisst nicht zwingend, dass der Cluster wirklich OK ist. Eine genauere Analyse des Outputs ist erforderlich. So kann der Clustermember auch Status: OK haben, wenn nur ein Clustermember online ist. Dies würde beispielsweise mit folgendem Output vermerkt:

Master selected using:
<2018/07/17 16:12:40> FG200D3916811639 is selected as the master because it's the only member in the cluster.


Anpassen des Failover Verhaltens
Wird obenstehendes Szenario realisiert, so wird nach der Bildung des Clusters, der Member mit der Priorität=128 zum Master erkoren. Fällt der Master aus, übernimmt der Slave. Nachdem der ursprüngliche Master wieder verfügbar wird, wird jedoch der Master-Status nicht wieder an die Unit mit der Prio 128 zurückgegeben. Dieses Verhalten kann jedoch forciert werden, indem in der ha-Konfig im CLI override eingeschaltet wird:

Konfiguration über CLI
fg20-master# config system ha
fg20-master (ha) # set override enable
fg20-master (ha) # end

Führen des HA-Links über eine öffentliche Infrastruktur
Der HA-Traffic wird standardmässig nicht verschlüsselt. Muss der HA-Traffic über eine öffentliche Infrastruktur geführt werden, so empfiehlt es sich, die Authentifizierung sowie die Verschlüsselung dieses Traffics einzuschalten. Dies muss auf dem Master sowie auch auf dem Slave konfiguriert werden.

Konfiguration über CLI
fg20-master# config system ha
fg20-master (ha) # set authentication enable
fg20-master (ha) # set encryption enable
fg20-master (ha) # end
Konfiguration über CLI
fg20-slave # config system ha
fg20-slave (ha) # set authentication enable
fg20-slave (ha) # set encryption enable
fg20-slave (ha) # end

Anschliessend empiehlt es sich, beide Clustermember neu zustarten, damit die HA Verbindung neu ausgehandelt wird.

Handling der Management Interfaces
Bei grösseren Umgebungen existiert gemäss Best-Practices oftmals ein Management Netzwerk. Es empfiehlt sich, beide Cluster Nodes mit einem Management Port in diesem Management Netzwerk zu platzieren. Somit kann im Notfall auch via dieses Netzwerk auf beide Cluster Nodes zugegriffen werden. Damit dies funktioniert, muss zuerst auf dem Master in der HA Konfiguration definiert werden, welches Interface als Management Interface gewählt wird. Hierbei kann nicht das auf gewissen Appliances zur Verfügung stehende MGMT Interface gewählt werden. Diesem Management Interface kann ausserdem ein dedizierter, anderer DefaultGateway mitgegeben werden:

Konfiguration über CLI
fgt200-master (ha) # show
config system ha
    set ha-mgmt-status enable
    config ha-mgmt-interfaces
        edit 1
            set interface "port14"
            set gateway 192.168.11.1
        next
    end
end

Anschliessend kann der gewählte Port auf beiden Units unterschiedlich konfiguriert werden.
Auf dem Master:

Konfiguration über CLI
config system interface
    edit "port14"
        set ip 192.168.11.10 255.255.255.0
        set allowaccess https ssh snmp fgfm ftm
    next
end

Auf dem Slave:

Konfiguration über CLI
config system interface
    edit "port14"
        set ip 192.168.11.11 255.255.255.0
        set allowaccess https ssh snmp fgfm ftm
    next
end

mehr Infos: https://help.fortinet.com/fos60hlp/60/Content/FortiOS/fortigate-high-availability/virtual_clusteringConfig.htm

Wie kann ich im Cluster mich von der aktiven auf die passive Fortigate verbinden?

FortiOS60.jpgFortiOS62.jpg

Falls man den Clustermembers keine dedizierte Management IP Adresse vergibt, gibt kann man immer nur den aktiven Member per IP Adresse managen. Es gibt die Möglichkeit über die CLI den passiven Member anzusprechen. Dafür muss man die Device ID des passiven Members ermitteln. Dies funktioniert folgendermassen:

Konfiguration über CLI
fw-master # execute ha manage ?

fw-master # <id>       please input peer box index.
fw-master # <0>        Susidary unit FGT60Exxxxxxxxxxd

In diesem Fall ist die ID des passiven Devices 0

nun kann man mit dem selben Befehl auf den passiven Member sich verbinden:

Konfiguration über CLI

fw-master # execute ha manage <HA_device_index>
fw-master # execute ha manage 0

fw-slave login: admin
Password: ********
Welcome!

fw-slave $

Es wird der Hostname des Slave angezeigt gefolgt von einem Dollar ($) Zeichen.

Um den Slave wieder zu verlassen kann der Befehl exit benutzt werden:

Konfiguration über CLI
fw-slave $ exit

fw-master # 

DoS

Wie kann ich die DoS Policy im FortiOS aktivieren?

Standard mässig sind die DoS Policy im FortiOS nicht sichtbar im Webgui. Diese müssen über die Feature Einstellungen zuerst eingeschalten werden.

Um diese Sichtbar zu machen muss Menu System-> Feature Visibility der Schalter DoS Policy aktiviert werden.

Fortinet-2606.jpg

Über die CLI kann man dies folgendermassen einschalten:

Konfiguration über CLI
config system settings
   set gui-dos-policy enable
end

Wie konfiguriere ich eine DoS Regel auf der FortiGate?

Das Menu um eine DoS Policy zu konfigurieren findet man im Menu Policy & Objects -> IPv4 DoS Policy. Falls das Menu noch nicht vorhanden ist muss man es zuerst aktivieren:

      FortiGate-6.0-6.2:FAQ#Wie_kann_ich_die_DoS_Policy_im_FortiOS_aktivieren.3F

Fortinet-2607.jpg

Jetzt über das Menu CreateNew.jpg kann eine neue Policy erstellt werden.

Nun kann das eingehende Interface definiert werden, die Source Adressen und die Destination Adressen. Weiter können die Services definiert werden, auf welche die DoS Regel zählen soll.

Fortinet-2608.jpg

Für Eingehenden Traffic vom WAN Interface kann man sehr gut als Source ALL auswählen. Die Destination kann auch auf ALL gesetzt werden und die Services auch. Diese Regel wird dann als Implizit Regel konfiguriert, und alle Ausnahme Regeln vor dieser angelegten Implizit Regel.

DoS Regeln sichern in gewissem Sinne das Netzwerk gegen abnormale Verhaltensmuster im Netzwerktraffic ab. Die Vorgeschlagenen Werte von Fortinet sind Richtwerte aber nicht in Stein gemeisselt. Um sein Netzwerk richtig abzusichern empfiehlt es sich, zuerst die Regeln auf Monitoring zu setzen und zu tracken wie der Traffic im Netzwerk normal ist. So kann dann der Schwellwert entsprechend angepasst werden. Man nimmt den gewünschten Schwellwert und rechnet noch eine Toleranz dazu. Zu beachten ist, je kleiner die Toleranz um so sicherer das Netz. Es muss aber auch beachtet werden, wenn die Toleranz zu klein ist, können auch Fehlalarme generiert werden.

Wo immer Vorsicht geboten ist, bei Voip Applikationen. Hier können schnell höhe Werte entstehen. Daher Empfiehlt es sich für den SIP Port (üblicherweise UDP5060) eine Ausnahme Regel zu definieren.

Auch in dem DoS Regelwerk wird die Reihenfolge von oben nach unten durchlaufen. Sobald ein Kriterium übereinstimmt wird die Regel beachtet und der Rest des DoS Regelwerk ignoriert. Daher macht es Sinn sich ein paar Gedanken zu machen.

Die Regeln kann man mit ziehen per Maus einfach an die gewünschte Position schieben.

Konfiguration über CLI
config firewall DoS-policy
    edit 1
        set comments "DoS - implicit wan1"
        set interface "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set service "ALL"
        config anomaly
            edit "tcp_syn_flood"
                set log enable
                set action block
                set threshold 2000
            next
            edit "tcp_port_scan"
                set log enable
                set action block
                set threshold 1000
            next
            edit "tcp_src_session"
                set log enable
                set action block
                set threshold 5000
            next
            edit "tcp_dst_session"
                set log enable
                set action block
                set threshold 5000
            next
            edit "udp_flood"
                set log enable
                set action block
                set threshold 2000
            next
            edit "udp_scan"
                set log enable
                set action block
                set threshold 2000
            next
            edit "udp_src_session"
                set log enable
                set action block
                set threshold 5000
            next
            edit "udp_dst_session"
                set log enable
                set action block
                set threshold 5000
            next
            edit "icmp_flood"
                set log enable
                set action block
                set threshold 250
            next
            edit "icmp_sweep"
                set log enable
                set action block
                set threshold 100
            next
            edit "icmp_src_session"
                set log enable
                set action block
                set threshold 300
            next
            edit "icmp_dst_session"
                set log enable
                set action block
                set threshold 1000
            next
            edit "ip_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "ip_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "sctp_flood"
                set log enable
                set action block
                set threshold 2000
            next
            edit "sctp_scan"
                set log enable
                set action block
                set threshold 1000
            next
            edit "sctp_src_session"
                set log enable
                set action block
                set threshold 5000
            next
            edit "sctp_dst_session"
                set log enable
                set action block
                set threshold 5000
            next
        end
    next
end

Was bedeuten die unterschiedlichen DoS Anomalien?

In der folgenden Tabelle kann entnommen werden, was mit den verschiedenen Anomalien gemeint ist und welche Schwellwerte auf der FortiGate vordefiniert sind:

L3 Anomalie Beschreibung Vordefinierter Schwellwert

ip_src_session

Wenn die Anzahl der gleichzeitigen IP-Verbindungen von einer Quell-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

ip_dst_session

Wenn die Anzahl der gleichzeitigen IP-Verbindungen zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

L4 Anomalie Beschreibung Vordefinierter Schwellwert

tcp_syn_flood

Wenn die SYN-Paketrate neuer TCP-Verbindungen, einschliesslich der erneuten Übertragung, zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

2000 Pakete pro Sekunde

tcp_port_scan

Wenn die SYN-Paketrate neuer TCP-Verbindungen, einschliesslich der erneuten Übertragung, von einer Quell-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

1000 Pakete pro Sekunde

tcp_src_session

Wenn die Anzahl der gleichzeitigen TCP-Verbindungen von einer Quell-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

tcp_dst_session

Wenn die Anzahl der gleichzeitigen TCP-Verbindungen zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

udp_flood

Wenn der UDP-Traffic zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

2000 Pakette pro Sekunde

udp_scan

Wenn die Anzahl der UDP-Session, die von einer Quell-IP-Adresse stammen, den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

2000 Pakette pro Sekunde

udp_src_session

Wenn die Anzahl der gleichzeitigen UDP-Verbindungen von einer Quell-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

udp_dst_session

Wenn die Anzahl der gleichzeitigen UDP-Verbindungen zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

icmp_flood

Wenn die Anzahl der an eine Ziel-IP-Adresse gesendeten ICMP-Pakete den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

250 Pakette pro Sekunde

icmp_sweep

Wenn die Anzahl der ICMP-Pakete, die von einer Quell-IP-Adresse stammen, den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

100 Pakette pro Sekunde

icmp_src_session

Wenn die Anzahl der gleichzeitigen ICMP-Verbindungen von einer Quell-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

300 Gleichzeitige Sessions

icmp_dst_session

Wenn die Anzahl der gleichzeitigen ICMP-Verbindungen zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

1000 Gleichzeitige Sessions

sctp_flood

Wenn die Anzahl der an eine Ziel-IP-Adresse gesendeten SCTP-Pakete den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

2000 Pakette pro Sekunde

sctp_scan

Wenn die Anzahl der SCTP-Sitzungen, die von einer Quell-IP-Adresse stammen, den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

1000 Pakette pro Sekunde

sctp_src_session

Wenn die Anzahl der gleichzeitigen SCTP-Verbindungen von einer Quell-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

sctp_dst_session

Wenn die Anzahl der gleichzeitigen SCTP-Verbindungen zu einer Ziel-IP-Adresse den konfigurierten Schwellenwert überschreitet, wird die Aktion ausgeführt.

5000 Gleichzeitige Sessions

Wie kann ich für eine DoS Policy weitere Informationen auflisten für eine Analyse?

Unter CLI steht für eine DoS Policy folgendes Kommando zur Verfügung:

       # diagnose ips anomaly [clear | config | filter | list | status]

Die verschiedenen Optionen für "ips anomaly" haben folgende Bedeutung:

       • clear            Löscht die anomaly meters
       • config           Listet die DOS-sensoren auf
       • filter           Listet den "anomaly" Filter auf
       • list             Listet die "anomaly" meters auf
       • status           Listet den "anomaly" status auf

Somit kann zB mit folgenden Befehl die konfigurierten DoS Policies aufgelistet werden die Konfiguriert wurden:

       # diagnose ips anomaly config
       DoS sensors in kernel vd 0:
       DoS id 2 proxy 0
         0 tcp_syn_flood status 0 log 0 nac 0 action 0 threshold 2000
         1 tcp_port_scan status 0 log 0 nac 0 action 0 threshold 1000
         2 tcp_src_session status 1 log 1 nac 1 action 7 threshold 100
         3 tcp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
         4 udp_flood status 0 log 0 nac 0 action 0 threshold 2000
         5 udp_scan status 0 log 0 nac 0 action 0 threshold 2000
         6 udp_src_session status 0 log 0 nac 0 action 0 threshold 5000
         7 udp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
         8 icmp_flood status 0 log 0 nac 0 action 0 threshold 250
         9 icmp_sweep status 0 log 0 nac 0 action 0 threshold 100
         10 icmp_src_session status 0 log 0 nac 0 action 0 threshold 300
         11 icmp_dst_session status 0 log 0 nac 0 action 0 threshold 1000
         12 ip_src_session status 0 log 0 nac 0 action 0 threshold 5000
         13 ip_dst_session status 0 log 0 nac 0 action 0 threshold 5000
         14 sctp_flood status 0 log 0 nac 0 action 0 threshold 2000
         15 sctp_scan status 0 log 0 nac 0 action 0 threshold 1000
         16 sctp_src_session status 0 log 0 nac 0 action 0 threshold 5000
         17 sctp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
       DoS id 1 proxy 0
         0 tcp_syn_flood status 1 log 1 nac 0 action 7 threshold 2000
         1 tcp_port_scan status 1 log 0 nac 0 action 0 threshold 1000
         2 tcp_src_session status 1 log 0 nac 0 action 0 threshold 5000
         3 tcp_dst_session status 1 log 0 nac 0 action 0 threshold 5000
         4 udp_flood status 1 log 1 nac 0 action 7 threshold 2000
         5 udp_scan status 1 log 0 nac 0 action 0 threshold 2000
         6 udp_src_session status 1 log 0 nac 0 action 0 threshold 5000
         7 udp_dst_session status 1 log 0 nac 0 action 0 threshold 5000
         8 icmp_flood status 1 log 1 nac 0 action 7 threshold 250
         9 icmp_sweep status 1 log 0 nac 0 action 0 threshold 100
         10 icmp_src_session status 1 log 0 nac 0 action 0 threshold 300
         11 icmp_dst_session status 1 log 0 nac 0 action 0 threshold 1000
         12 ip_src_session status 0 log 0 nac 0 action 0 threshold 5000
         13 ip_dst_session status 0 log 0 nac 0 action 0 threshold 5000
         14 sctp_flood status 0 log 0 nac 0 action 0 threshold 2000
         15 sctp_scan status 0 log 0 nac 0 action 0 threshold 1000
         16 sctp_src_session status 0 log 0 nac 0 action 0 threshold 5000
         17 sctp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
       total # DoS sensors: 2.

Der nachfolgende Befehl listet alle IPv4 Adressen auf für die ein "match" für eine DoS Policy ausgeführt wurde. Diese Liste zeigt nicht zwingend IPv4 Adressen die eine Attacke durchgeführt haben. Die Position "exp" (expiration) zeigt den Wert in Sekunden nachdem ein entsprechender Eintrag entfernt wird sofern kein weiterer "match" betreffend der IPv4 Adresse für diesen DoS Policy Eintrag stattfindet. Die Position "pps" (packet per second) zeigt an wieviele Packet pro Sekunden für die IPv4 Adressen registriert wurde. Die Position "freq" (frequency) zeigt die Frequenz für eine spezifische IPv4 Adresse für die eine DoS anomaly erkannt wurde:

       # diagnose ips anomaly list
       list nids meter:
       id=udp_flood          ip=198.41.0.4 dos_id=1 exp=988 pps=1 freq=6
       
       id=udp_dst_session    ip=198.41.0.4 dos_id=1 exp=5990 pps=0 freq=0
       
       id=udp_scan           ip=193.193.135.65 dos_id=1 exp=988 pps=2 freq=3
       
       id=udp_src_session    ip=193.193.135.65 dos_id=1 exp=5990 pps=0 freq=0
       
       id=udp_flood          ip=193.193.135.66 dos_id=1 exp=880 pps=3 freq=3
       
       id=udp_flood          ip=192.228.79.201 dos_id=1 exp=967 pps=0 freq=1
       
       id=udp_dst_session    ip=192.228.79.201 dos_id=1 exp=5969 pps=0 freq=0
       
       total # of nids meters: 7.

Wenn durch "list" eine grosse Liste von Informationen ausgegeben wird kann diese anhand des folgenden Befehls ein Filter gesetzt werden:

       # diagnose ips anomaly filter
       clear  Clear anomaly filter.
       id     Anomaly ID.
       ip     IP and subnet mask.
       pps    pps
       freq   frequency

Der Status des Filter kann mit folgenden Befehl aufgelistet werden:

       # diagnose ips anomaly filter
       anomaly filter:
       id any
       ip 0.0.0.0 mask 0.0.0.0
       nps 0 - 0
       freq 0 - 0 

Somit kann zB ein anhand eine Policy ID (id) oder zB anhand eine IPv4 Adresse (ip) ein Filter gesetzt werden:

       # diagnose ips anomaly filter id 1
       # diagnose ips anomaly filter
       anomaly filter:
       id 1
       ip 0.0.0.0 mask 0.0.0.0
       nps 0 - 0
       freq 0 - 0
       # diagnose ips anomaly filter ip 198.41.0.4 255.255.255.255
       # diagnose ips anomaly filter
       anomaly filter:
       id 1
       ip 198.41.0.4 mask 255.255.255.255
       nps 0 - 0
       freq 0 - 0   

Um den Filter zurück zu setzen führe ein "clear" aus:

       # diagnose ips anomaly filter clear
       # diagnose ips anomaly filter
       anomaly filter:
       id 0
       ip 0.0.0.0 mask 0.0.0.0
       nps 0 - 0
       freq 0 - 0

Botnet

Wie schalte ich den Botnet und CC Schutz auf der FortiGate ein?

FortiOS60.jpg

Im FortiOS 6.0 kann das Feature auf dem ausgehenden Interface Richtung Internet aktiviert werden. Das Interface muss in der Role WAN oder undefined sein.

Konfiguration über das WebGui Konfiguration über die CLI

Fortinet-1999.jpg

config system interface
    edit wan1
        set scan-botnet-connections block
    next
end

Wenn man auf botnet packages klickt kann man die Liste abrufen, aus welcher man entnehmen kann, welche Botnetze und C&C Netze bekannt sind.

Fortinet-2500.jpg


FortiOS62.jpg

Im Gegensatz zum FortiOS 6.0 wird im FortiOS 6.2 der Botnet und C&C Schutz über ein IPS Profil konfiguriert, welches in einer Firewall Regel aktiviert werden muss.

Dafür muss eventuell bei den Features die Intrusion Prevention Option eingeschaltet werden:

Konfiguration über das WebGui Konfiguration über die CLI

System -> Feature Visibility und das Feature einschalten.

Fortinet-1996.jpg

config system settings
    set gui-ips enable
end

Jetzt kann unter den Security Profilen ein neues IPS Profil angelegt werden.

Konfiguration über das WebGui Konfiguration über die CLI

Securtiy Profiles -> Intrusion Prevention -> Createnew.jpg

Fortinet-1997.jpg

config ips sensor
    edit "Botnet-Sensor"
        set scan-botnet-connections block
    next
end

Das IPS Profil muss jetzt an eine Policy angewendet werden:

Konfiguration über das WebGui Konfiguration über die CLI

Policy & Objects -> IPv4 Policy -> Createnew.jpg

Fortinet-1998.jpg

config firewall policy
    edit 1
        set name "O_internal->Internet-all"
        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 utm-status enable
        set logtraffic all
        set ips-sensor "Botnet-Sensor"
        set nat enable
    next
end

Im Log sehen wir die geblockten Events am folgenden Ort:

Konfiguration über das WebGui

Im Menu über Log & Report -> Intrusion Prevention

Fortinet-2501.jpg

Wenn das Event angeklickt wird, können noch mehr Details entnommen werden:

Fortinet-2502.jpg

Antivirus

WebFilter

DNS Filter

IPS

Wie kann ich die Industrie Signaturen auf der FortiGate aktivieren?

FortiOS60.jpgFortiOS62.jpg

Im FortiOS sind die Industrie Signaturen beim IPS integriert. Diese sind aber Default mässig deaktiviert und müssen über die CLI aktiviert werden. Mit folgendem Befehl können die Industrie Signaturen aktiviert werden:

Konfiguration über CLI
config ips global
set exclude-signatures none
end

Um die Signaturen wieder zu excluden wird folgender Syntax verwendet:

Konfiguration über CLI
config ips global
set exclude-signatures industrial
end

Traffic Shaper / TOS / DSCP

SIP / VoIP

NTP

Wie kann ich einen beliebigen Zeitserver auf der FortiGate konfigurieren?

FortiOS60.jpgFortiOS62.jpg

Die Zeitserver auf einer FortiGate ist eine globale Einstellung. Dieser Punkt ist zu berücksichtigen, wenn auf der FortiGate mit VDOMs gearbeitet wird. Die Zeit Einstellungen sind somit im GLOBAL zu finden.

Die Zeitzone wird folgendermassen konfiguriert:

Konfiguration über das WebGui Durchzuführende Schritte Konfiguration über CLI

Fortinet-6000.jpg

  1. Den Menupunkt System -> Settings anwählen
  2. Im Bereich Time Zone den Pfeil anwählen und die gewünschte Zeitzone auswählen.
# config system global
# set timezone <ZEITZONEN_INDEX>
# end

BEISPIEL Zeitzone 26 (GMT+1:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna setzen.

# config system global
# set timezone 26
# end

Wie kann der gewünschte Zeitzonen Index ermittelt werden?

Konfiguration über CLI
# config system global
# set timezone ? --> Erzeugt eine Liste mit allen Zeitzonen Codes:
01    (GMT-11:00) Midway Island, Samoa
02    (GMT-10:00) Hawaii
03    (GMT-9:00) Alaska
04    (GMT-8:00) Pacific Time (US & Canada)
05    (GMT-7:00) Arizona
81    (GMT-7:00) Baja California Sur, Chihuahua
06    (GMT-7:00) Mountain Time (US & Canada)
07    (GMT-6:00) Central America
08    (GMT-6:00) Central Time (US & Canada)
09    (GMT-6:00) Mexico City
10    (GMT-6:00) Saskatchewan
11    (GMT-5:00) Bogota, Lima,Quito
12    (GMT-5:00) Eastern Time (US & Canada)
13    (GMT-5:00) Indiana (East)
74    (GMT-4:00) Caracas
14    (GMT-4:00) Atlantic Time (Canada)
77    (GMT-4:00) Georgetown
15    (GMT-4:00) La Paz
87    (GMT-4:00) Paraguay
16    (GMT-3:00) Santiago
17    (GMT-3:30) Newfoundland
18    (GMT-3:00) Brasilia
19    (GMT-3:00) Buenos Aires
20    (GMT-3:00) Nuuk (Greenland)
75    (GMT-3:00) Uruguay
21    (GMT-2:00) Mid-Atlantic
22    (GMT-1:00) Azores
23    (GMT-1:00) Cape Verde Is.
24    (GMT) Monrovia
80    (GMT) Greenwich Mean Time
79    (GMT) Casablanca
25    (GMT) Dublin, Edinburgh, Lisbon, London
26    (GMT+1:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
27    (GMT+1:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
28    (GMT+1:00) Brussels, Copenhagen, Madrid, Paris
78    (GMT+1:00) Namibia
29    (GMT+1:00) Sarajevo, Skopje, Warsaw, Zagreb
30    (GMT+1:00) West Central Africa
31    (GMT+2:00) Athens, Sofia, Vilnius
32    (GMT+2:00) Bucharest
33    (GMT+2:00) Cairo
34    (GMT+2:00) Harare, Pretoria
35    (GMT+2:00) Helsinki, Riga, Tallinn
36    (GMT+2:00) Jerusalem
37    (GMT+3:00) Baghdad
38    (GMT+3:00) Kuwait, Riyadh
83    (GMT+3:00) Moscow
84    (GMT+3:00) Minsk
40    (GMT+3:00) Nairobi
85    (GMT+3:00) Istanbul
41    (GMT+3:30) Tehran
42    (GMT+4:00) Abu Dhabi, Muscat
43    (GMT+4:00) Baku
39    (GMT+3:00) St. Petersburg, Volgograd
44    (GMT+4:30) Kabul
46    (GMT+5:00) Islamabad, Karachi, Tashkent
47    (GMT+5:30) Kolkata, Chennai, Mumbai, New Delhi
51    (GMT+5:30) Sri Jayawardenepara
48    (GMT+5:45) Kathmandu
45    (GMT+5:00) Ekaterinburg
49    (GMT+6:00) Almaty, Novosibirsk
50    (GMT+6:00) Astana, Dhaka
52    (GMT+6:30) Rangoon
53    (GMT+7:00) Bangkok, Hanoi, Jakarta
54    (GMT+7:00) Krasnoyarsk
55    (GMT+8:00) Beijing, ChongQing, HongKong, Urumgi, Irkutsk
56    (GMT+8:00) Ulaan Bataar
57    (GMT+8:00) Kuala Lumpur, Singapore
58    (GMT+8:00) Perth
59    (GMT+8:00) Taipei
60    (GMT+9:00) Osaka, Sapporo, Tokyo, Seoul
62    (GMT+9:30) Adelaide
63    (GMT+9:30) Darwin
61    (GMT+9:00) Yakutsk
64    (GMT+10:00) Brisbane
65    (GMT+10:00) Canberra, Melbourne, Sydney
66    (GMT+10:00) Guam, Port Moresby
67    (GMT+10:00) Hobart
68    (GMT+10:00) Vladivostok
69    (GMT+10:00) Magadan
70    (GMT+11:00) Solomon Is., New Caledonia
71    (GMT+12:00) Auckland, Wellington
72    (GMT+12:00) Fiji, Kamchatka, Marshall Is.
00    (GMT+12:00) Eniwetok, Kwajalein
82    (GMT+12:45) Chatham Islands
73    (GMT+13:00) Nuku'alofa
86    (GMT+13:00) Samoa
76    (GMT+14:00) Kiritimati

Ein eigener Zeitserver kann auf der FortiGate nur über die CLI konfiguriert werden:

Konfiguration über CLI
# config system ntp
# set ntpsync enable
# set type custom
# set syncinterval 360
# config ntpserver
# edit 1
# set server "<NTP-SERVER-NAME oder IP>"
# next
# edit 2  --> so kann ein zweiter NTP Server konfiguriert werden
# set server "<NTP-SERVER2-NAME oder IP>"
# next
# end
# end

BEISPIEL:NTP Server Konfiguration mit ch.pool.ntp.org

# config system ntp
# set ntpsync enable
# set type custom
# set syncinterval 360
# config ntpserver
# edit 1
# set server "ch.pool.ntp.org"
# next
# end
# end

Wie kann ich den NTP Dienst auf einem Interface aktivieren?

FortiOS60.jpgFortiOS62.jpg

Wenn ich möchte, dass der System NTP Server auf einem Interface aktiviert ist, damit dieser als dhcp Parameter an die Clients propagiert werden kann, muss man diesen in den System Einstellungen aktivieren:

Konfiguration über das WebGui Durchzuführende Schritte Konfiguration über CLI

Fortinet-6001.jpg

  1. System -> Settings im Bereich System Time
  2. Setup device as local NTP server anwählen
  3. Listen on Interfaces in dieses Feld klicken.
  4. vom Seitenmenu können die gewünschten Interfaces ausgewählt werden
  5. mit Apply wird die Konfiguration aktiv
# config system ntp
# set server-mode enable
# set interface "<INTERFACE1> <INTERFACE2> ... <INTERFACEn>"
# end

BEISPIEL Wir konfigurieren das Interface internal1 und internal2 als NTP Server:

# config system ntp
# set server-mode enable
# set interface "internal1 internal2"
# end

DHCP Option für NTP Server konfigurieren. Die restlichen DHCP Optionen sind bereits konfiguriert.

Konfiguration über das WebGui Durchzuführende Schritte Konfiguration über CLI

Fortinet-6002.jpg

Einrichten des Zeitservers beim DHCP Server:

  1. Auf dem Interface, auf welchem der DHCP Serverdienst läuft in die DHCP Optoinen gehen
  2. Bei den DHCP Optionen die Checkbox Advanced anwählen
  3. Mode auf server stellen.
  4. NTP Server Specify setzen.
  5. Die Interface IP Adresse im Feld angeben. (
  6. Die Zeitzone als Same as System übernehmen.
# config system dhcp server
# edit <INTIGER> 
# set timezone-option default
# set ntp-server1 <INTERFACE IP ADRESSE>
# next
# end

BEISPIEL: Wir konfigurieren den NTP Server mit der IP Adresse 192.168.1.99 (IP Adresse vom Interface)

# config system dhcp server
# edit 1
# set timezone-option default
# set ntp-server1 192.168.1.99
# next
# end

PCI Compliance

Wireless-Controller

Wo finde ich Informationen betreffend FortiGate Wireless Controller und Forti Access Points?

Nachfolgender Artikel gibt Auskunft über die verschiedenen Konfigurationen und Betrieb von Forti Access Points im Zusammenhang mit dem FortiGate Wireless Controller:

       FortiAP:FAQ

Wie konfiguriere ich einen Remote Access Point mit Split Tunnel?

Vorbemerkungen:
Ziel dieser Anleitung ist es, mit einem FortiAP-24D a eine gesicherte Remoteverbindung von einem Aussenstandort an einen Hauptstandort zu erstellen.Es handelt sich hier um ein typisches Szenario, welches eingesetzt werden soll, um kleine Aussenstandorte oder HomeOffice Mitarbeiter anzubinden. Die Dokumentation wurde mit einem AP24d erstellt. Es eignen sich aber grundsätzlich auch folgende Access Points um ein solches Szenario zu etablieren:

  • FAP-11C
  • FAP-14C
  • FAP-21D
  • FAP-24D
  • FAP-25D
  • FAP-28C

Ausgangslage:

Zielarchitektur Verwendete Geräte

Fortinet-2225.png

  • Fortigate 60E Beta3
  • FortiAP-24D

Vorbedingungen:

  • Die Firewall im Main Office ist korrekt konfiguriert, so dass Clients im LAN über den WAN Anschluss ins Internet kommen.
  • Die Firewall im Main Office wird direkt und ohne weitere Router mit einer public IP vom Provider von der WAN Seite verbunden.
  • Der FortiAP befindet sich auf Werkseinstellungen, kriegt via DHCP am WAN Port eine IP, einen validen Default Gatway, einen gültigen DNS Server.
  • Der FortiAP ist in der Lage über den am Ort vorhandenen Internetanschluss mindestens über die Ports 53TCP/UDP,443TCP,5246/UDP,5247/UDP ins Internet zu kommunizieren.

Konfigurationsschritte
1. Einschalten von CAPWAP auf WAN Interface

Fortinet-2226.png

Die Verwaltung der Access Points über die Fortigate geschieht mit dem Protokoll CAPWAP. Damit die Fortigate Firewall Access Points über das WAN Interface verwalten kann, muss auf diesem Interface CAPWAP aktiviert werden.

2. Erstellen der SSID

Fortinet-2227.png

Unter Wifi & Switch Controller > SSID > + Create New wird eine neue SSID erstellt. Dabei müssen die gelb markierten Parameter konfiguriert werden. Damit später das SplitTunneling funktioneirt ist es insbesondere sehr wichtig, dass der Defaultgateway der IP der Fortigate auf diesem Interface entspricht. Die anderen Parameter wie Name, SSID, Security Mode, IP Range etc. können nach gutdünken angepasst werden.

Nachdem diese SSID konfiguriert wurde, muss ein zusätzlicher Parameter wie folgt auf dem CLI konfiguriert werden:

# config wireless-controller vap
# edit [Name of SSID Profil]
# set split-tunneling enable
# end

3. Erstellen FortiAP Profil

Fortinet-2229.png

Unter Wifi & Switch Controller > FortiAP Profiles > + Create New wird eine neue FortiAP Profil erstellt. Dabei müssen die gelb markierten Parameter konfiguriert werden. Inbesondere wichtig ist hier, dass der korrekte AP Typ (AP-24d in diesem Fall) gewählt wird, und dass die zuvor erstellte SSID gewählt wird.

Verfügt der Access Point zusätzlich über LAN Ports, so kann definiert werden, welches Netz an diesen LAN Ports ausgegeben werden soll. Es kann entweder das Netz am Remotestandort ausgegeben werden (Bridge to WAN) oder auch mittels NAT gearbeitet werden. Wird gewünscht dass hier das selbe Netz wie bei der SSID verwendet werden kann, so muss dies ebenfalls mittels Bridge to SSID und wahl des entsprechenden Netzes hinterlegt werden.

Nachdem das FortiAP Profile konfiguriert wurde, können über das CLI zusätzlich die Netze konfiguriert werden, welche eben nicht über den VPN Tunnel gehen sollen, sondern welche lokal ausgekoppelt werden sollen. Im obenstehenden Beispiel wäre dies das Netz 192.168.1.0/24 welches sich hinter dem Swisscom Router befindet. Somit hat ein Gerät hinter dem FortiAP folgende Kommunikationsmöglichkeiten:

  • Zugriff via CAPWAP-Tunnel auf interne Ressourcen des Hauptstandortes
  • Zugriff via CAPWAP-Tunnel über den Hauptstandort auf Ressourcen aus dem Internet
  • Zugriff auf Ressourcen aus dem lokalen Netz am Aussenstandort


# config wireless-controller wtp-profile
# set split-tunneling-acl-local-ap-subnet enable
# config split-tunneling-acl
# edit [Use a integer example "1"]
# set dest-ip [IPv4 address as 192.168.1.0/24]
# end

Wird gewünscht, dass nur gewisse Netze an den Hauptstandort geroutet werden sollen, und alles andere (inklusive Internetverkehr) lokal ausgekoppelt werden soll, so muss mit einer umgekehrten Maskierung gearbeitet werden, und hier in der Konfiguration alle Netze angegeben werden, welche nicht durch den Tunnel sollen.

Der hier konfigurierte CAPWAP Tunnel wird ausserdem standardmässig nicht mit DTLS verschlüsselt. Dies muss ebenfalls im CLI konfiguriert werden:

# config wireless-controller wtp-profile
# edit [Name des entsprechenden Profils]
# set dtls-policy dtls-enabled
# end

Der durch die DTLS Verschlüsselung anfallende Overhead beträgt je nach AccessPoint ca. 20%.

4. Vorprovisionieren des AP

Fortinet-2230.png

Unter Wifi & Switch Controller > Managed FortiAPs > + Create New kann nun der zu verbindende Accesspoint vorkonfiguriert werden. Wichtig hierbei ist die korrekte Seriennummer, sowie das entsprechende vorgängig erstellte FortiAP Profil. Hat sich der Access Point bereits bei der Fortigate gemeldet, so sieht man dies anhand der IP unter der Kategorie Managed AP Status.

5. Erstellen der Firewall Policy
Damit der Datenverkehr zwischen dem AP und dem Internet sowie zwischen dem AP und den internen Ressourcen gewährleistet werden kann, benötigt es auch entsprechende Firewall Regeln:
Fortinet-2228.png

6. Definieren der Management IP auf dem AP
Damit der AP nun den Weg zu seinem Controller findet, wenn er das erste Mal am Remote Standort eingesteckt wird, müssen wir ihm die IP hierfür konfigurieren. Dies geschieht auf dem Accesspoint direkt. Ein nicht konfigurierter Accesspoint hat standardmässig die IP 192.168.1.2 auf dem WAN Port. Auf diese kann man sich mittels Telnet verbinden, um die entsprechende Konfiguration vorzunehmen. Ein zugriff auf den Access Point ist allenfalls auch via USB und FortiExplorer möglich. (Siehe FortiExplorer Handbuch)

	C:\Users\huberch>telnet 192.168.1.2
	FAP24D3X15001883 # login: admin
	FAP24D3X15001883 # cfg -a AC_IPADDR_1=172.20.120.142
	FAP24D3X15001883 # cfg -c
	FAP24D3X15001883 # exit

7. Verbinden
Nachdem der Access Point mit dem Internet verbunden wurde, wird er innerhalb von 3-5 Minuten eine Verbindung zu seinem Fortigate Controller aufnehmen. Dies kann im GUI überprüft werden:
Fortinet-2231.png

Quellen und weiterführende Informationen:

Log

Wie muss eine Fortigate konfiguriert werden, damit sie zu Analysezwecken auf ein Kiwi Syslog loggt?

Einleitung:
Die folgende Anleitung kann dann zum Zug kommen, wenn von einer Fortigate Firewall auf einen Syslogserver geloggt werden muss, ohne dass auf FortiCloud zurückgegriffen werden kann (Wenn beispielsweise kein Internetzugriff existiert). Kiwi Syslog ist ein kostenfreier Basic-Syslogserver, der unter Windows installiert werden kann.

Konfiguration Fortigate:
Damit die Fortigate Firewall möglichst viel Logs auf den Syslogserver schreiben kann, müssen einige Einstellungen getätigt werden:

Konfiguration über CLI
config log memory setting
	set status enable
end

config log null-device setting
	set status enable
end

config log gui-display
	set resolve-hosts enable
	set resolve-apps enable
end

config log setting
	set fwpolicy-implicit-log enable
	set local-in-allow enable
	set local-in-deny-unicast enable
	set local-in-deny-broadcast enable
	set local-out enable
	set log-invalid-packet enable
end

Mit folgender Einstellung wird der Firewall mitgeteilt, wo der Syslogserver steht, dem die Logs gesendet werden sollen:

Konfiguration über CLI
config log syslogd setting
	set status enable
	set server "ip-des-syslog-servers"
end

Die Firewall sendet nun der hier konfigurierten IP die Syslogs via 514 UDP.

Damit allenfalls auch erlaubter Traffic geloggt wird, muss das Logging pro gewünschte Firewallregel eingeschaltet werden:

Konfiguration über CLI
config firewall policy
	edit 1
	set logtraffic all
end


Konfiguration Kiwi Syslog Server
Der Installer für den Kiwi Syslogserver kann hier oder hier: Datei:Kiwi-Syslog-Server-9.6.3-Freeware.zip heruntergeladen werden.

Nach der Installation des Tools muss folgender Parameter unter dem Menüpunkt Setup angepasst werden, und die IP des lokalen Adapters angewählt werden, auf dem die Logs empfangen werden:

Fortinet-2246.png

Sobald diese Einstellung gespeichert wurde, kommen die Logs im Kiwi Syslog Programm an.

Fortinet-2247.png