FortiGate-5.4-5.6:FAQ

Aus Fortinet Wiki
Zur Navigation springen Zur Suche springen

FortiGate-5.4:FAQ

 24 X 7 PROMOTION bis 31. März 2016
 
                        Weitere Informationen finden Sie hier!

Vorwort

Diese FAQ's sind für Fortinet Systeme basierend auf OS 5.4. Zu Test-Zwecken stand eine Fortigate 60D 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

Documentation

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 5.4
       Datei:Fortigate-Whats-New-54.pdf                                                        (FortiOS 5.4 Handbook - What's New)
       Datei:Fortigate-CLI-Ref-54.pdf                                                          (FortiOS 5.4 CLI Reference)
       Datei:FortiOS-Log-Reference-54.pdf                                                      (FortiOS 5.4 FortiOS Log Reference)
       Datei:FortiOS-Upgradepath-54.pdf                                                        (FortiOS 5.4 Supported Upgrade Paths for Firmware)
       Datei:FortiOS-Software-Platform-Matrix-54.pdf                                           (FortiOS 5.4 Feature / Platform Matrix)
       Datei:Fortigate-Max-Values-54.pdf                                                     (FortiOS 5.4 Max Values / Online Version http://help.fortinet.com/fgt/54/max-values/5-4-0/max-values.html)
       Datei:FortiGate Managed FortiSwitch Matrix.pdf                                          (Managed FortiSwitch Compatibility Matrix)
       Datei:FortiOS-Compatibility-FMG-FAZ.pdf                                                 (Managed FortiManager/FortiAnalyzer Compatibility Matrix)
       Datei:Fortigate-Handbook-54.pdf                                                         (FortiOS 5.4 Handbook - Alle Kapitel BETA-Version)
       Datei:Fortigate-Authentication-54.pdf                                                   (FortiOS 5.4 Handbook - Authentication)
       Datei:Fortigate-Carrier-54.pdf                                                          (FortiOS 5.4 Handbook - Carrier)
       Datei:Fortigate-HA-54.pdf                                                               (FortiOS 5.4 Handbook - High Availability)
       Datei:Fortigate-IPSec-VPN-54.pdf                                                        (FortiOS 5.4 Handbook - IPsec VPN)
       Datei:Fortigate-IPv6-54.pdf                                                             (FortiOS 5.4 Handbook - IPv6)
       Datei:Fortigate-Load-Balancing-54.pdf                                                   (FortiOS 5.4 Handbook - Load Balancing)
       Datei:Fortigate-Managing-Devices-54.pdf                                                 (FortiOS 5.4 Handbook - Managing Devices)
       Datei:Fortigate-Managing-Switch-54.pdf                                                  (FortiOS 5.4 Handbook - Managing FortiSwitch from FortiGate)
       Datei:Fortigate-Optimal-Life-54.pdf                                                     (FortiOS 5.4 Handbook - Optimal Path Processing "Life of a Packet")
       Datei:Fortigate-SSL-VPN-54.pdf                                                          (FortiOS 5.4 Handbook - SSL VPN)
       Datei:Fortigate-sip-54.pdf                                                              (FortiOS 5.4 Handbook - VoIP Solutions: SIP)
       Datei:Fortigate-Security-Profiles-54.pdf                                                (FortiOS 5.4 Handbook - Security Profiles)
       Datei:Fortigate-WANopt-Cache-Proxy-54.pdf                                               (FortiOS 5.4 Handbook - WAN Optimization, Web Cache, Explicit Proxy, and WCCP)
       Datei:Fortigate-Wireless-54.pdf                                                         (FortiOS 5.4 Handbook - Deploying Wireless Networks)

Gibt es einen direkten Link auf die "Fortinet Knowledgebase" auf der die "KB Artikel" alle aufgelistet sind?

Die Fortinet "Knowledgebase" Artikel sind über den folgenden Link erreichbar:

       http://kb.fortinet.com/

Ueber diesen Link sieht man die verschiedenen Fortinet Produkte die man anwählen und über eine Suchfunktion für das entsprechende Produkt einen entsprechenden "KB Artikel" suchen kann. Möchte man jedoch sämtliche "KB Artikel" auflisten - vorallem die Neusten - ist dies über den Link nicht möglich. Nachfolgender Link bietet diese Möglichkeit dh. sämtliche "KB Artikel" werden aufgelistet (die Neusten zu oberst):

       http://pub.kb.fortinet.com/index/

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". Ueber 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
       
       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
       Variante FortiOS
       
       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 erruiert werden sei es über ein "label" noch über CLI. Wenn diese Informatione dennoch benötigt wird kann über ein Ticket die entsprechende Information der "Hardware Generation" angefragt werden. Wie ein Ticket für Fortinet eröffnet wird siehe nachfolgender Artikel:

       Fortinet:Support-Case
       
       NOTE 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 released 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 keine Rückschlüsse gezogen werden über die nötige Information von:
            
            PN Nummer (Hardware Revision) + Hardware Generation
            
            Diese Information der "Hardware Revison" sowie "Hardware Generation" sind dann wichtig wenn es sich um einen 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 Uebersicht 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 komuniziert:
            
            https://forum.fortinet.com/tm.aspx?m=100451#100451
       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 Devices stehen in den verschiedenen Verfügung und welche ist die Richtige?

Wenn für einen Kunden ein FortiGate Device installiert werden soll stellt sich die Frage welcher Device ist der Richtige? Dabei sind verschiedenen Informationen wichtig wie zB:

       - Ueber was für eine Internet Anbindung verfügt der Kunde an der ein FortiGate Device installiert werden soll?
       - Ist ein Ausbau/Wechsel der Internet Anbindung geplant und wenn ja wir diese vergrössert (Dowstream/Upstream)?
       - Wieviele User werden durch den FortiGate Device geschützt?
       - Welche UTM Features werden auf dem FortiGate Device eingesetzt (Antivirus, WebFilter, IPS usw)
       - Wird "deep inspection" eingesetzt (Aufbrechen von verschlüsseltem Traffic)?
       - Werden spezielle Interface's benötigt zB SFP+
       - Wird ein spezieller Durchsatz in einem Bereich benötigt?
       - Wo wird "logging" durchgeführt zB Disk, FortiAnalyzer usw.?

Zusätzlich stellt Fortinet die sogenannte "Produkte Matrix" zur Verfügung in der die verschiedenen Devices gegenüber gestellt werden und die verschiedenen "Durchsätze" in verschiedenen Kategorieren wie SSL-VPN, IPSec, UTM Antivirus usw. aufgelistet und gegenüber gestellt werden. 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:

       Fortinet:ProduktInfo#Fortinet_Produkt-Matrix

Zu den verschiedenen FortiGate Devices stehen jeweils die "Datasheet" zur Verfügung die nochmals detailliert über den jeweiligen FortiGate Device Auskunft gibt. Desweiteren 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

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

       Fortinet:ProduktInfo#Fortinet_Produkt-Guide

Nachfolgend als Anhaltspunkt eine Uebersicht der FortiGate Devices in den verschiedenen Kategorieren wie "Entry Level, Midsize usw.":

       Fortinet-1392.jpg
       Fortinet-1393.jpg
       Fortinet-1394.jpg
       Fortinet-1395.jpg
       Fortinet-1396.jpg
       Fortinet-1397.jpg
       Fortinet-1398.jpg
       Fortinet-1610.jpg

Wie kann ich auf einem FortiGate Device einen Hardwartest 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 "staging" 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 "staging" 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 Console 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 Scritp 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 ueber die Serielle Console 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      |
       Consolen 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 Firewall's, 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)!
       
       -> Oeffne über Putty eine Serielle Verbindung (Console) 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 (Netzwerkport gemäss Grafik oberhalb "überlistet"):

       Datei:Hqip-output-v54.txt

Um die Fortigate wieder in den Orginalzustand zu versetzen führe ein Login über die Serielle Consoel 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 einfach Neustart der Fortigate nötig um das Problem zu beheben:

       # execute reboot

Für eine FortiGate Device der "E" Serie existiert kein HQIP Image wie kann ich dennoch einen Hardwartest ausführen?

Bei der "E" Serie kann von der "Support" Seite kein seperates HQIP Image herungergeladen werden. Auf diesen Umstand wird auf der "Support" Seite auch darauf hingewiesen. Dazu steht jedoch auf der "E" Serie ein "diagnose" Kommando zur Verfügung der diese "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 eine 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 eine 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

Ein FortiGate Device führt unter FortiOS 5.4 selbständig einen immer wiederkehrenden Neustart aus was kann ich tun?

Wenn eine FortiGate selbständig immer wieder einen Neustart ausführt kann die Ursache vielfältig sein. Grundsätzlich fragt man sich was getan werden kann um herauszufinden wieso dem so ist? Eine Möglichkeit ist die Hardware zu testen anhand HQIP dh. um festzustellen ob ein Hardware Defekt vorliegt. Weitere Informationen dazu wie ein HQIP Test durchgeführt wird siehe nachfolgende Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_auf_einem_FortiGate_Device_einen_Hardwartest_ausf.C3.BChren_.28Troubleshooting.2FHQIP_Testing.29.3F
       FortiGate-5.4:FAQ#F.C3.BCr_eine_FortiGate_Device_der_.22E.22_Serie_existiert_kein_HQIP_Image_wie_kann_ich_dennoch_einen_Hardwartest_ausf.C3.BChren.3F

Eine andere Möglichkeit ist ist die Folgende:

       1. Konfiguriere "putty" für logging dh. alle Informationen werden in ein Log aufgezeichnet (Category > Session > Logging > All session output)
       2. Erstelle eine Consolen Verbindung zur FortiGate (RS232 basierend resp. Seriell)
       3. Führe ein Login durch und gebe folgendes ein:
          
          # diagnose debug reset
          # diagnose debug kernel level 7
          # diagnose debug console timestamp enable
          # diagnose debug enable

Danach muss die Verbindung aufrechterhalten werden und gewartet werden bis der selbständige Neustart des Devices ausgeführt wird. Durch den "debug" wird unter normalen Umständen in der Console aufgezeichnet was dieser Neustart ausgelöst hat. Dieser Output muss nachträglich einem Fortinet TAC Mitarbeiter (Support Ticket) übermittelt werden für das weitere Vorgehen. Unter normalen Umständen dh. ohne Neustart wird für diesen "debug" kein Output aufgezeichnet. Dieses Vorgehen kann ebenfalls benutzt werden wenn durch den Device ein "freeze" durchgeführt wird.

Gibt es für FortiGate Device's eine Uebersicht wie die Luftzirkulation (Airflow) in den Device's aufgebaut ist?

Nachfolgende Dokument zeigen für die jeweiligen FortiGate Devices wie die Luftzirkulation/Kühlung in den Devices aufgebaut ist und wie diese funktionieren. Diese Dokumente stehen jedoch nur für FortiGate Devices 100D und höher zur Verfügung.

       Datei:FG-100D Airflow.pdf
       Datei:FG-200D Airflow.pdf
       Datei:FG-300C Airflow.pdf
       Datei:FG-600C 800C Airflow.pdf
       Datei:FG-1000C Airflow.pdf
       Datei:FG-1500D Airflow.pdf
       Datei:Fg-3700D Airflow.pdf

Wie kann ich unter FortiOS 5.4 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:

       # get hardware [cpu | memory | nic | npu | status]

Somit kann anhand der Optionen folgendes ausgeführt werden:

       # get hardware cpu
       Processor       : ARMid(wb) rev 1 (v4l)
       model name      : FortiSOC2
       BogoMIPS        : 799.53
       Features        : swp half thumb 
       
       Hardware        : FSoC2_ASIC
       Revision        : 0000
       Serial          : 0000000000000000
       Imp: 0x66 Arch: 0x5 Part: 0x726 Ver: 0x1
       Ctype: 14 DSize: 6 DASS: 8 DLEN: 32 ISize: 6 IASS: 8 ILEN: 32
       Seperated TLB: Associativity 0
       0x0005317f HUM: En Vec Base:0xffff0000 IC:En BP:Dis RomP:Dis
       SysP:En WB:En DC: En Align:En
       0x00000000 SB: Dis DB:Dis RS:Dis
       # get hardware memory
               total:    used:    free:  shared: buffers:  cached: shm:
       Mem:  1928364032 437944320 1490419712        0  2940928 154861568 140664832
       Swap:        0        0        0
       MemTotal:      1883168 kB
       MemFree:       1455488 kB
       MemShared:           0 kB
       Buffers:          2872 kB
       Cached:         151232 kB
       SwapCached:          0 kB
       Active:          74368 kB
       Inactive:        79864 kB
       HighTotal:           0 kB
       HighFree:            0 kB
       LowTotal:      1883168 kB
       LowFree:       1455488 kB
       SwapTotal:           0 kB
       SwapFree:            0 kB
        
       NOTE Weitere Befehle um detaillierte Informationen über die Memory Benutzung zu erhalten siehe nachfolgenden Artikel:
            
            FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_die_Memory_Benutzung_eines_FortiGate_Devices_anzeigen_lassen.3F
       # 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
       # get hardware npu 
       legacy    legacy
       np1       np1
       np2       np2
       np4       np4
       
       NOTE Dieser Output wird nur angezeigt sofern der entsprechende Device auf dem dieser Befehl ausgeführt wird auch einen 
            "NPU" (Networking Processing Unit) beinhaltet. Wenn es sich um einen Device mit integrierten NPU handelt dh. SoC 
            wird kein Output geliefert.

Disk

Wie kann ich auf einer FortiGate die auf der Disk enthaltenen Daten (inkl. Boot Device) vollumfänglich (low level) löschen?

Ab FortiOS 5.0.5 gibt es die Möglichkeit die "Disk" (Internal) und/oder den "System Boot Device" über "low level" zu formatieren. Dies ist dann Wichtig wenn ein Device entsorgt wird oder dem Hersteller im RMA Fall zurückgesendet werden soll um so zu gewährleisen, dass sämtliche enthaltenen Daten auf der Disk gelöscht werden sollen. Bei der "low level" Formatierung werden die Spuren und Sektoren der "Disk" resp. des "System Boot Device's" mit zufälligen Daten 3 X überschrieben um so zu gewährleisten das die vorhandenen Daten komplett gelöscht werden. Ab FortiOS 5.0.5 steht für diesn Vorgang folgender Befehl zur Verfügung:

       # 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 dazu siehe nachfolgenden Artikel:

       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 ab FortiOS 5.2.1 die Disk getestet werden. Dazu sollte berücksichtigt werden, dass dieser Test in einem Maitenance Fenster durchgeführt wird und nicht bei hoher Last. Um diesen Test zu benutzen muss anhand des Befehls zuerst die entsprechende Disk gewä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 dh.:
       
       # diagnose disktest [bllock | time | size]
       
       NOTE Die Optionen haben folgende Bedeutung:
            
            block       Die Blocksize für jede Lese- sowie Schreiboperation.
            time        Die Limite der Testzeit für jeden Zyklus. Standard "keine Limite".
            size        Die 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.0        0(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.0        0(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: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

Nachfolgend einige erfasste ALSO Schweiz Artikel betreffend "PowerSupply":

       ALSO Art Nr.    Hersteller SKU          Beschreibung
       16503530H       SP-FG20C-PA-EU          AC power adaptor with EU power plug for FG/FWF-20C series, FG/FWF-30D
       16502510H       SP-FG80-PDC             AC power adaptor - AC power adaptor for FG/FWF-80C/CM
       16501668H       SP-FG60C-PDC            AC power adaptor - AC power adaptor for FG/FWF-40C, FG/FWF-60C, FG/FWF-60D, FG-70D, FG/FWF-90D
       16502889H       SP-FG600C-PS            AC power supply - AC power supply for FG-600C, FG-600D, FG-800C, and FG-1000C
       16505060H       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: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

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: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 16500426H  (Hersteller SKU FG-TRAN-LX)
       Transceiver SX, Short Range; all FortiGate models with SFP interfaces                                             ALSO SKU 16500428H  (Hersteller SKU FG-TRAN-SX)
       Transceiver Base-T (Copper); all FortiGate models with SFP interfaces (supports 10/100/1000)                      ALSO SKU 16500427H  (Hersteller SKU FG-TRAN-GC)
       
       10-Gig transceiver, short range SFP+; all FortiGate models with SFP+ interfaces                                   ALSO SKU 16500429H  (Hersteller SKU FG-TRAN-SFP+SR)
       10-Gig transceiver, short range XFP; all FortiGate models with XFP interfaces                                     ALSO SKU 16500430H  (Hersteller SKU FG-TRAN-XFPSR)
       10-Gig transceiver, SFP+, Long Range; all FortiGate models with SFP+ interfaces                                   ALSO SKU 16500431H  (Hersteller SKU FG-TRAN-SFP+LR)
       10-Gig transceiver, XFP, Long Range; all FortiGate models with XFP interfaces                                     ALSO SKU 16500432H  (Hersteller SKU FG-TRAN-XFPLR)
       
       40-Gig transceiver, QSFP+, short range; all FortiGate models with QSFP+ interfaces                                ALSO SKU auf Anfrage (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 auf Anfrage (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:TRAN-DAT-R2-201503 web.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: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
       Fortinet-1129.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

ASIC

Was bedeutet es wenn ein FortiGate Device über eine "Hardware Acceleration für Netzwerk Ports (NP)" verfügt?

Wen ein Device den Traffic mit "Stateful Inspection" verarbeitet versteht man folgendes darunter: Die TCP oder UDP Headers eines Packets werden im OSI-Modell auf den Schichten drei (Netzwerklayer) und vier (Transportlayer) angeschaut. Die Verarbeitung soll nicht von Grösse oder Aufkommen des Traffics abhängig sein. Genau diese Anforderung kann aber bei verschiedenen Firewall Modellen ein Problem darstellen. Diese haben Probleme, wenn sehr viele kleine Packete verarbeitet werden müssen, weil dadurch die CPU Auslastung enorm ansteigt. Der Grund ist, dass sehr viele Headers analysiert werden müssen (Pro Packet ein Header). Das wiederum bedeutet: die Verarbeitung ist nicht von der Grösse der Packete Abhängig, sondern durch die Menge der Packete. Die "Hardware Acceleration" löst genau dieses Problem. Damit die Verarbeitung der Headers in den Schichten drei und vier im OSI-Modell beschleunigt verarbeitet werden kann, wurde der "application-specific-integraded circuit (ASIC) gebaut. Die Verarbeitung "Hardware Acceleration" wird auf den Ports durchgeführt (NP). So wird die Auslastung unabhängig von Grösse oder Menge der Packete verteilt und so wird gewährleistet, dass die Performance sensitiver Services kontinuierlich ihren Durchsatz halten können. Fortinet ist der einzige Hersteller, welcher diese ASIC Technologie auf ihren Devices integriert und ständig weiterentwickelt. Ausführliche Informationen über die ASIC Technologie findet man unter folgendem Link:

       http://de.wikipedia.org/wiki/Anwendungsspezifische_integrierte_Schaltung

Der Hauptpunkt dieser von Fortinet eingesetzten Technologie ist die Verwendung des ASIC und dessen NP "Hardware Accelerated Network Ports" um die CPU zu entlasten. Daher ist es wichtig bei solchen Devices die entsprechenden Ports richtig zu verwenden. Dies bedeutet: Für zB "synch" und/oder "mgmt" Interfaces sollten keine Ports benützt werden die über "Hardware Acceleration" verfügen da für "synch" und/oder "mgmt" Ports ohne "Hardware Acceleration" völlig ausreichend ist. Somit sollten die "Hardware Accelerated" Ports für Services oder Kommunikation genutzt werden die kontinuierliche Performance gewährleisten. Im Enterprise Bereich ist zusätzlich zu berücksichtigen, dass verschiedenen Versionen des ASIC für spezifische Aufgaben optimiert wurden zB für IPS oder Antivirus. Eine FortiGate-100D zum Beispiel verfügt über einen ASIC, welcher extra für den IPS Bereich optimiert wurde. Die FG-100D kann somit speziell in diesem Bereich einen markant höheren Datendurchsatz erzielen, gegenüber anderen Devices. Weitere Informationen zu den einzelnen Angaben des Durchsatzes der UTM Features siehe nachfolgender Artikel:

       Fortinet:ProduktInfo#Fortinet_Produkt-Matrix

Nachfolgend ein Dokument das bildlich die Architektur der FortiGate aufzeigt:

       Datei:FortiASIC TB.pdf

Im folgendem Dokument erklärt Fortinet wie die Hardware Acceleration funktioniert und geht auf die einzelnen Funktionen im Detail ein:

       Datei:Fortigate-hardware-accel-50.pdf
       Datei:Fortigate-hardware-accel-52.pdf

FortiOS

Welche FortiGate Devices werden vom neuen FortiOS 5.4 unterstützt resp. können anhand eines Upgrades aktualiert werden?

Das neue FortiOS 5.4 Unterstützt wie nachfolgend abgebildet folgende FortiGate Devices:

       Fortinet-1608.jpg

Dies bedeutet: Nur die hier unter der Spalte "5.4" aufgeführten FortiGate Devices unterstützen FortiOS 5.4 und können somit auch anhand eines Upgrades auf FortiOS 5.4 aktualisiert werden!

Wie finde ich heraus ob eine bestimmte Konfiguration unter FortiOS 5.4 auf einem FortiGate Device möglich ist?

Wenn für einen Kunden der richtige FortiGate Device beschafft werden soll, ist es Wichtig den richtigen FortiGate Device auszuwählen. Dabei spielen in erster Linie der "throughput" ein grosse Rolle. Dieser hängt von verschiedenen Faktoren ab wie Internet Anbindung, UTM Funktionen usw. Nachfolgender Artikel gibt Auskunft über dieses Thema:

       FortiGate-5.4:FAQ#Was_f.C3.BCr_FortiGate_Devices_stehen_in_den_verschiedenen_Verf.C3.BCgung_und_welche_ist_die_Richtige.3F

Obwohl die Performance (throughput) an erster Stelle steht, stellt sich die Frage ob alle zur Verfügung stehenden Funktionen auf einem FortiOS 5.4 auf allen Devices durchgeführt werden können? Grundsätzlich stehen auf allen Devices alle FortiOS 5.4 Funktionen zur Verfügung jedoch auf kleineren Modellen sind diese aus verschiedenen Gründen limitiert oder stehen gänzlich nicht zur Verfügung. Die "Software Matrix" gibt Auskunft ob und welchen Funktionen auf einem FortiGate Device zur Verfügung stehen wie zB das "disk" Logging:

       Datei:FortiOS-Software-Platform-Matrix-54.pdf

Wenn die entsprechende FortiOS Funktion auf einem FortiGate Device zur Verfügung steht, ist jedoch dabei zu beachten, dass diese ebenfalls speziell bei kleineren Devices limitiert ist. Dies bedeutet als Beispiel: Auf allen FortiGate Devices können DHCP Server konfiguriert werden jedoch die Anzahl der DHCP Server sind speziell auf kleineren Devices limitiert. Die Information "max_values" gibt Auskunft welche Funktion eines FortiOS resp. welche Konfiguration in welcher Anzahl durchgeführt werden kann. Diese Limitierung ist eine reine "System Resourcen" Limitierung dh. auf kleineren Devices stehen weniger "System Resourcen" zur Verfügung um eine anzahl Konfiguration durchzuführen dh. zB DHCP Server. Auf einem entsprechenden FortiGate Device kann die "max_values" anhand folgenden CLI Kommandos ausgelesen werden:

       # print tablesize

Nachfolgend ein Beispiel des "output" einer FortiGate 60D:

       Datei:Print-tablesize.txt

Zusätzlich stellt Fortinet diese Informationen der "max_values" anhand einer Tabelle Online sowie in einem Dokument zur Verfügung das jedoch Stand 6. Januar noch nicht zur Verfügung steht. Sobald diese Informationen durch Fortinet zur Verfügung stehen werden diese Informationen hier zur Verfügung gestellt!

Wie wird ein Packet unter FortiOS 5.4 auf einem FortiGate Device abgearbeitet (Life of a Packet)?

Wenn mit FortiOS resp. mit einer FortiGate gearbeitet wird ist es umungänglich zu wissen wie ein Packet durch das FortiOS 5.4 abgearbeitet wird. Dies bedeutet zB Wird ein Routing vor NAT durchgeführt, wann wird eine UTM Funktion angewendet usw. Nachfolgende Uebersicht zeigt wie ein Packet durch das FortiOS abgearbeitet wird sofern kein "Offloading" durchgeführt wird:

       Fortinet-1637.jpg
       
       NOTE Den Hinweis "ingress" sowie "engress" ist folgendermassen zu verstehen: "ingress" umschreibt den Vorgang was mit einem Packet 
            durchgeführt wird wenn es über ein Interface dem FortiOS übermittelt wird (TCP/IP Stack). "engress" umschreibt was mit einem
            Packet durchgeführt wird wenn ein Packet durch das FortiOS über ein Interface versendet wird!

Wenn ein Packet durch das FortiOS anhand "Offloading" abgearbeitet wird zB anhand NP6 Prozessor ist zu unterscheiden zwischen einer "neuen Session" und einer "bestehenden Session"

       New Session
       
       Fortinet-1638.jpg
       Existing Session
       
       Fortinet-1639.jpg

Die vorhegehenden Uebersichten zeigen innerhalb "UTM/NGFW" keine Details betreffend "inspection" Mode dh. wie ein Packet abgearbeitet wird im "proxy-mode" oder im "flow-mode". Dabei ist zu berücksichtigen, dass nicht jedes UTM Feature zB "Application Control" im "proxy-mode" benutzt werden kann sondern nur im "flow-mode". Weitere Informationen zum "inspection" mode unter FortiOS 5.4 siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Was_hat_sich_unter_FortiOS_5.4_betreffend_.22Security_Profiles.22_und_.22Inspection_Mode.22_grunds.C3.A4tzlich_ge.C3.A4ndert.3F

Nachfolgend eine Uebersicht was innerhalb der "UTM/NGFW" Funktion betreffend dieser zwei zur Verfügung stehenden "inspection" Mode durchgeführt wird:

       Flow Based Inspection
       
       Fortinet-1640.jpg
       Proxy Based Inspection
       
       Fortinet-1641.jpg

Weitere Details zu den verschiedenen Uebersichten findet man im folgenden Dokument:

       Datei:Fortigate-Optimal-Life-54.pdf

FortiCloud (FAMS)

Wo finde ich Informationen über die Funktion "FortiCloud" und dessen Gebrauch im Zusammenhang mit einem FortiGate Device?

Weitere detailliert Informationen zur FortiCloud im Allgemeinen findet man unter folgenden Artikel:

       FortiCloud(FAMS):FAQ

FortiSandbox

Wo finde ich weitere Informationen zur Funktion sowie Produkt von "FortiSandbox" im Zusammenhang mit einem FortiGate Device?

Weitere Informationen zur Funktion sowie Produkt FortiSandbox siehe nachfolgender Artikel:

       FortiSandbox:FAQ

Untenstehende Präsentation enthält eine Live Demo zum Thema "Advanced Thread Protection" mit FortiSandbox als FortiGate Erweiterung:

       Datei:40Minutes-Extending the Firewall with FortiSandbox-1 0.pptx

FortiExplorer

Wo finde ich Informationen über den "FortiExplorer" und dessen Gebrauch im Zusammenhang mit einem FortiGate Device?

Weitere detailliert Informationen zum FortiExplorer im Allgemeinen findet man unter folgenden Artikel:

       FortiExplorer:FAQ

Wie kann ich unter FortiOS 5.4 den Zugriff über FortiExplorer auf einen FortiGate Device deaktivieren?

Der Zugriff für den FortiExplorer auf einen FortiGate Device kann deaktiviert werden. Weitere Informationen findet man unter folgenden Artikel:

       FortiGate-5.4:FAQ#Kann_ich_auf_einer_FortiGate_den_Seriellen_Consolen_Port_.28RS-232.29_deaktivieren.3F

USB Port

Was ist unter FortiOS 5.4 beim Benützen eines USB Sticks an eine Fortigate zu berücksichtigen?

Wenn über eine FortiOS ein USB Stick formatiert wird so wird dieser im "FAT" Format formatiert! Um den USB Stick über das FortiOS zu formatiert führe auf der CLI folgendes aus:

       # execute usb-disk format
       This operation will ERASE all data in USB disk!
       Do you want to continue? (y/n)y
       
       Format USB disk /dev/sdc1 ...
       Create file system on /dev/sdc1 ...

Danach kann der USB Stick benützt werden um zB ein Backup auf den USB Stick zu spielen. Möchte man den USB Stick vorbereiten dh. nicht über das FortiOS formatieren sondern zB unter Windows 7/10 kann folgendes ausgeführt werden:

       --> Verbinde den USB Stick mit der Workstation und verifizieren den zugewiesenen Laufwerksbuchstaben!
       
       --> Danach öffne eine DOS Box dh. wähle:
       
           Windows 7  = Start > Programme/Dateien durchsuchen > cmd
           Windows 10 = Windows durchsuchen > cmd
           
       --> Danach gebe in der DOS Box folgendes ein:
           
           format [Laufwerks Name zB "F"]: /FS:FAT /V:[Name des USB Sticks/Laufwerk zB "FortiGate"]
           Legen Sie eine neue Diskette in Laufwerk D: ein,
           und drücken Sie die EINGABETASTE.
           Der Typ des Dateisystems ist EXFAT.
           Das neue Dateisystem ist FAT.
           Überprüfung von 1009.4 MB
           Die Dateizuordnungstabelle (FAT) wird initialisiert...
           Formatieren beendet.
               1009.1 MB Speicherplatz auf dem Datenträger insgesamt.
               1009.1 MB sind verfügbar.
           
                  16'384 Bytes in jeder Zuordnungseinheit
                  64'585 Zuordnungseinheiten auf dem Datenträger verfügbar
           
                      16 Bits in jedem FAT-Datensatz.
           
           Volumeseriennummer : 4E6E-9DDF

Kann ich unter FortiOS 5.4 ein "image" sowie Konfiguration eines FortiGate Devices über USB Stick komplett automatisieren?

Eine Automatisierung einer Installation eines FortiGate Devices mit einer entsprechenden Konfiguration lässt sich über USB Stick komplett automatisieren. Die zuständigen Konfigurationspunkte über Mgmt. Web Interface sind die Folgenden:

       System > Advanced > USB Auto-Install
       Fortinet-1648.jpg

Die Konfiguration kann ebenfalls über CLI durchgeführt werden:

       # config system auto-install
       # set auto-install-config [enable oder disable]
       # set auto-install-image [enable oder disable]  
       # set default-config-file [File Name]
       # set default-image-file [File Name]
       # end

Die Voraussetzung damit über einen USB Stick diese "USB Auto-Install" Funktion genutzt werden kann ist ein korrekt formatierter USB Stick. Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Was_ist_unter_FortiOS_5.4_beim_Ben.C3.BCtzen_eines_USB_Sticks_an_eine_Fortigate_zu_ber.C3.BCcksichtigen.3F

Wenn die Funktion des "USB Auto-Install" aktiviert wurde für das "image" und/oder "config" File und der USB Stick entsprechend korrekt formatiert wurde kann in das Root Verzeichnis des USB Stick ein entsprechendes "image" eines FortiOS sowie die entsprechende Konfiguration eines FortiGate Devices basierend auf "image" des FortiOS auf den USB Stick gespeichert werden. Dabei müssen die Filenamen des "image" sowie der Konfiguration übereinstimmen mit der Konfiguration resp. Definition des "default-image-file" sowie "default-config-file"! Wenn nun der USB Stick an die FortiGate angeschlossen wird und der FortiGate Device eingeschaltet wird oder ein Neustart ausgeführt wird, wird folgendes durchgeführt:

       1ter Neustart = Die Funktion "USB Auto-Install" überprüft ob in der aktiven Partition das FortiOS installiert ist gemäss dem 
                       "image" File auf dem USB Stick! Ist dies nicht der Fall wird in der nicht aktiven Partition das FortiOS installiert
                       anhand des "image" Files auf dem USB Stick! Nach der Installation wird ein Neustart ausgeführt. Ist die aktive 
                       Partition identisch mit dem "image" File auf dem USB Stick wird 2ter Neustart Ueberprüfung ausgeführt! 
       2ter Neustart = Nach der Installation des "images" auf dem USB Stick oder bei Uebereinstimmung der aktiven Partition mit dem
                       "image" wird Ueberprüft ob die Konfiguration in der aktiven Partition übereinstimmt mit dem Konfigurtionsfile
                       auf dem USB Stick. Ist das nicht der Fall wird ein Restore durchgeführt anhand des Konfigurationsfile auf dem
                       USB Stick. Ist die Konfiguration auf dem USB Stick gleich der Konfiguration in der aktiven Partition wird keine
                       Aenderung durchgeführt und der Neustart regulär fortgesetzt!

Es empfiehlt sich den Vorgang bei einem Test über den Console Port (RS232) mitzuverfolgen damit allfällige Fehlermeldungen über die Console mitverfolgt werden können. Mit dieser Funktion kann somit ein FortiGate Device mit einem entsprechenden "image" sowie mit einer eigenen Konfiguration komplett automatisiert werden. Dabei ist jedoch folgendes zu berücksichtigen: Durch die Funktion "USB Auto-Install" wird ein FortiGate Device nicht von Grundauf neu installiert dh. zB der "boot device" wird nicht neu formatiert usw. Wie ein FortiGate Device von Grundauf neu installiert (staging) wird siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_ein_FortiGate_Device_von_Grundauf_mit_einem_entsprechenden_FortiOS_installieren_.28staging.29.3F

Consolen Port

Was für ein Kabel (Converter) benötige ich für den Consolen Anschluss (Seriell RS-232) auf einer FortiGate?

Eine Fortinet kann über Consolen Port, SSH, Telnet, HTTP, HTTPS Administriert werden. Bei Problemen oder für das initial Setup ist der Consolen Port unablässlich. Dabei handelt es sich beim Consolen Port über eine RS232 Schnittstelle. Die heutigen Workstation und/oder Laptops werden jedoch nicht mehr mit einem RS232 Anschluss ausgeliefert. Aus diesem Grund muss auf einen Converter zurückgegriffen werden. Bei diesen Convertern handelt es sich meistens um "USB to RS232 Converter". Dieses sind jedoch nicht unproblematisch dh. je nach Betriebssystem, Consolen Anschluss usw. kann es zu Problemen kommen dh. die Kompatibilität zu den verschiedenen Consolen Anschlüssen dh. vers. Hersteller und Geräten ist eine kompatibilitäts Frage! Der nachfolgende Artikel bietet eine "sehr hohe" Kompatibilität zu vers. Herstellern und hat den Vorteil, dass unter Windows 7/8 KEIN Treiber installiert werden muss (ab Windows 7 SP1). Wichtig bei der Installation ist nur das man das Gerät anschliesst und nachträglich einen Neustart ausführt. Ebenfalls wird der "FTDI Chip" basierende "USB to RS232 Converter" nur dann korrekt erkannt wenn dieser beim Start des Laptop korrekt angeschlossen ist (Immer den gleichen Anschluss benützen am Laptop). Nach der korrekten Erkennung des "USB to RS232 Converter" kann im entsprechenden Eintrag im Gerätemanager der Anschluss auf "Com1" umgestellt werden (per Standard ist Com3 gesetzt). Alle anderen Einstellungen sollten/können auf Standard belassen werden. Nachfolgend einige Informationen betreffend dieses "USB to RS232 Converter":

       Datei:Fortinet-619.jpg
       Technische Daten 
       
       Hersteller:    EXSYS (https://www.exsys.ch/index.php?page=product&info=393)
       Produkte-Nr:   EX-1301-2 
       ALSO-Nr:       [17500313H]
       Anschlüsse:    1 x A-Stecker Upstream, 1 x 9 Pin D-SUB Seriell Stecker
       Datenblatt:    Datei:EX-1301-2-Datenblatt.pdf
       Handbuch:      Datei:EX-1301-2-Handbuch.pdf
       Unterstützung: Win98SE/ME/XP/CE/2000/2003/Vista/Win7 und Linux (MacOS X)
       Driver:        Datei:EX-1301-2.zip
       Driver Link:   https://www.exsys.ch/index.php?page=product&info=393
       
       Beschreibung:  Das USB 1.1 zu RS-232 Kabel stellt eine Serielle RS-232 High Performance UART 16C550 Ausgang zur Verfügung. 
                      Er ist entwickelt worden um einen weiteren Seriellen Ausgang für PC, kleine Workstation oder Server über 
                      den USB 1.1 oder 2.0 Bus zu erweitern.
       
                      NOTE Beim EX-1301-2 wird "kein" RS232-to-RJ45 Kabel mitgeliefert. Diese kann unter folgender
                           ALSO-Nr bezogen werden:
                           
                           [16502947H]

Nachfolgendes Dokument zeigt wie auf einem MacOSx basierend auf diesem "USB to RS232 Converter" Adapter konfigiguriert wird inkl. 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 Consolen Port siehe nachfolgenden Artikel:

       FortiGate-5.4: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 Consolen (RS-232 / DB9 / RJ-45 / AUX) auf einem FortiGate Device aus?

Nachfolgend die technischen Informationen über die Pin-Belegung der Seriellen Console der Fortinet Produkte wie FortiGate, FortiAnalyzer, FortiManager sowie FortiMail:

       NOTE Einige FortiGate Devices haben einen RS-232 DB9 Konsolen Verbindung und andere haben eine RJ-45 Verbindung 
            (wie zB A Modelle). Ebenso existieren Modelle mit einem AUX Port. Alle diese Varianten benützen die gleiche
            Serielle Pin-Belegung!
            
            Fortinet-1083.jpg

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

Wenn man zB verhindern möchte, dass in einem Datacenter usw. über den Seriellen Console Port unerlaubt zugegriffen wird, kann dieser ab FortiOS 5.0 mit folgenden Befehl deaktiviert werden:

       # config system console
       # set login disable
       # end
       
       NOTE Dieses Kommando steht ab FortiOS 5.0 zur Verfügung und deaktiviert unter FortiOS 5.0 den "Seriellen Consolen" Port
            sowie den "USB" Port für den FortiExplorer. Ab FortiOS 5.2 wurde dieses Kommando erweitert dh. durch den hier gezeigten
            Befehl wird ab FortiOS 5.2 nur der "Consolen Port" deaktiviert und der "USB" Port muss sofern gewünscht seperat deaktiviert
            werden:
            
            # config system console
            # set fortiexplorer disable
            # end

Web Gui

Unter FortiOS 5.4 ist der Hostname auf der Login Page ersichtlich wie kann ich diesen aktivieren/deaktivieren?

Wenn man über das Web Mgmt. Interface einer FortiGate unter FortiOS 5.4 einloggt dann kann es sein das die Login Seite den "Hostnamen" des FortiGate Devices zeigt:

       Fortinet-1614.jpg

Möchte man diesen "Hostnamen" über die Login Page aktivieren resp. deaktivieren kann folgendes ausgeführt werden:

       # config system global
       # set gui-display-hostname [enable | disable] 
       # end

Unter FortiOS 5.4 kann ich zwar "Dashboards" sowie "Widgets" einblenden jedoch nicht mehr eigenen konfigurieren?

Unter FortiOS 5.4 fällt einem auf das keine zusätzlichen Dashboard's mehr erstellt werden können dh. es stehen über Mgmt. Web Interface folgende Konfigurationspunkte zur Verfügung:

       Fortinet-1628.jpg

Durch "Add Widget" kann ein zusätzliches "Widget" eingeblendet werden:

       Fortinet-1629.jpg

Möchte man nun ein zusätzliches "Dashboard" und/oder ein zusätzliches "Widget" über CLI konfigurieren ist dies nicht mehr möglich da folgende Befehle nicht mehr exisiteren:

       # config system admin
       # edit [Name des Administrators zB "admin"]
       # config dashboard-tabs
       # end
       # config system admin
       # edit [Name des Administrators zB "admin"]
       # config dashboard
       # edit 0
       # set widget-type app-usage
       # set widget-type storage
       # set widget-type protocol-usage
       # set widget-type device-os-dist "Deivce/
       # next
       # end

Somit steht unter FortiOS 5.4 nur das per Standard existierende "Dashbaord" zur Verfügung sowie die zur Verfügung stehenden "Widgets" die unter "Add Widgets" hinzugefügt werden können. Möchte man die Standard Konfiguration betreffend "Dashboard" wiederherstellen kann der Menüpunkt "Reset Dashboard" ausgeführt werden oder man kann unter CLI folgendes durchführen:

       # diagnose sys dashboard reset

Durch diesen Befehl und/oder durch Ausführen von "Reset Dashboard" führt das System folgendes durch für den eingeloggten "Administratore" zB "admin":

       # config system admin
       # edit "admin"
       # config dashboard
       # edit 1
       # set column 1
       # end
       # end
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 2
       # set widget-type licinfo
       # set column 1
       # end
       # end
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 3
       # set widget-type jsconsole
       # set column 1
       # end
       # end
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 4
       # set widget-type sysres
       # set column 2
       # end
       # end
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 5
       # set widget-type alert
       # set column 2
       # set top-n 10
       # end
       # end

Unter FortiOS 5.4 sehe ich über das Web Gui nicht alle Features wie kann ich diese aktivieren/deaktivieren?

Wenn man unter FortiOS 5.4 auf dem Web Mgmt. Interface einloggt kann es sein, dass nicht alle Features resp. Menüpunkte angezeigt werden. Ein Beispiel ist zB die "Local In Policy". Auf dem Web Mgmt. Interface stehen diese Features zur Verfügung um diese zu aktivieren resp. zu deaktiveren:

       System > Feature Select
       Fortinet-1613.jpg

Diese Feature sind ebenfalls über CLI verfügbar. Der Vorteil der CLI liegt darin das dort einige zusätzliche Features zur Verfügung stehen die über Web Mgmt. Interface nicht zur Verfügung stehen. Um die verschiedenen Features im Gui Bereich aufzulisten kann folgender Befehl benutzt werden:

       # config system settings
       # get | grep gui
       gui-default-policy-columns:
       gui-icap            : disable 
       gui-implicit-policy : enable 
       gui-dns-database    : enable 
       gui-load-balance    : disable 
       gui-multicast-policy: enable 
       gui-dos-policy      : enable 
       gui-object-colors   : disable 
       gui-replacement-message-groups: enable 
       gui-voip-profile    : enable 
       gui-ap-profile      : enable 
       gui-dynamic-profile-display: disable 
       gui-ipsec-manual-key: disable 
       gui-local-in-policy : enable 
       gui-explicit-proxy  : enable 
       gui-dynamic-routing : enable 
       gui-dlp             : enable 
       gui-sslvpn-personal-bookmarks: enable 
       gui-sslvpn-realms   : enable 
       gui-policy-based-ipsec: enable 
       gui-threat-weight   : enable 
       gui-multiple-utm-profiles: enable 
       gui-spamfilter      : enable 
       gui-application-control: enable 
       gui-casi            : enable 
       gui-ips             : enable 
       gui-endpoint-control: enable 
       gui-dhcp-advanced   : enable 
       gui-vpn             : enable 
       gui-wireless-controller: enable 
       gui-switch-controller: enable 
       gui-fortiap-split-tunneling: enable 
       gui-webfilter-advanced: enable 
       gui-traffic-shaping : enable 
       gui-wan-load-balancing: enable 
       gui-antivirus       : enable 
       gui-webfilter       : enable 
       gui-dnsfilter       : enable 
       gui-waf-profile     : enable 
       gui-fortiextender-controller: disable 
       gui-advanced-policy : disable 
       gui-allow-unnamed-policy: enable 
       gui-email-collection: enable 
       gui-domain-ip-reputation: enable 
       # set [Gebe die gewünschte Gui Option an] [enable | disable]
       # config system global
       # get | grep gui
       gui-certificates    : enable 
       gui-custom-language : enable 
       gui-device-latitude : 
       gui-device-longitude: 
       gui-display-hostname: enable 
       gui-ipv6            : disable 
       gui-lines-per-page  : 50
       gui-theme           : green 
       gui-wireless-opensecurity: enable
       # set [Gebe die gewünschte Gui Option an] [enable | disable]
       # end

Kann man auf einer FortiGate unter FortiOS 5.4 die Spalten innerhalb der "IPv4 Policy" konfigurieren?

Wenn man auf einer FortiGate unter FortiOS 5.4 eine Firewall Policy Rule erstellt dh. unter dem Menüpunkt "IPv4 Policy" dann werden nach der Erstellung der Firewall Policy Rule diese innerhalb verschiedener Spalten angezeigt. Diese Spalten können zwar im Browser verändert dh. zusätzliche Spalten hinzgefügt und gelöscht werden, jedoch diese Konfiguration ist nicht "persistent" dh. wenn der Browser Cache gelöscht wird geht die Konfiguration die über den Browser durchgeführt wurde verloren. Ueber die CLI sind diese Spalten der Firewall Policy Rule dh. für den Menüpunkt "IPv4 Policy" konfigurierbar und "persistent". Dazu führe folgendes aus:

       NOTE Die Konfiguration unter zB FortiOS 5.2 für die "gui-default-policy-columns" geht bei einem Upgrade auf
            FortiOS 5.4 verloren. Der Grund ist die verschiedenen zur Verfügung stehenden Optionen wie zB "count"
            existieren nicht mehr. Anstelle von "count" wird "hit_count" benutzt und aus diesem Grund wird die 
            Konfiguration nach einem Upgrade auf "unset" gesetzt was wiederum bedeutet auf FortiOS 5.4 "Standard"!
       # config system settings
       # set gui-default-policy-columns ?
       *name                    Column name.
       #                        Seq #.
       name                     Name.
       policyid                 Policy ID.
       srcintf                  Source.
       dstintf                  Destination.
       srcaddr                  Source Address.
       dstaddr                  Destination.
       schedule                 Schedule.
       service                  Service.
       action                   Action.
       logtraffic               Log.
       nat                      NAT.
       status                   Status.
       bytes                    Bytes.
       packets                  Packets.
       session                  Sessions.
       last_used                Last Used.
       first_used               First Used.
       hit_count                Hit Count.
       profile                  Security Profiles.
       av-profile               AV.
       spamfilter-profile       Email Filter.
       webfilter-profile        Web Filter.
       application-list         Application Control.
       ips-sensor               IPS.
       dlp-sensor               DLP.
       icap-profile             ICAP Profile.
       voip-profile             VoIP Profile.
       profile-protocol-options Proxy Options.
       ssl-ssh-profile          SSL Inspection.
       vpntunnel                VPN Tunnel.
       comments                 Comments.
       source                   Source.
       users                    Users.
       groups                   Groups.
       devices                  Devices.
       profile-group            Profile Group.
       traffic-shaper           Traffic Shapers.
       per-ip-shaper            Per-IP Traffic Shaper.
       endpoint-compliance      Endpoint Compliance.

Aus den zur Verfügung stehenden Optionen kann somit folgendes als Beispiel ausgeführt werden:

       # set gui-default-policy-columns "#" "policyid" "srcintf" "dstintf" "srcaddr" "dstaddr" "schedule" "service" "groups" "action" "profile" "logtraffic" "nat" "bytes" "hit_count"
       # end
       NOTE bei der Konfiguration muss berücksichtig werden das die "Sequenz" dh. "#" definiert werden muss. Zusätzlich muss "name" ebenfalls
            definiert werden sofern das Feature "gui-allow-unnamed-policy" nicht aktiviert ist was wiederum bedeutet, dass dieses Feature
            innerhalb eine Firewall Policy erzwingt jeder Firewall Policy Rule einen Namen zu vergeben!

Upgrade

Soll ich (Stand Dezember 2015) ein Upgrade auf FortiOS 5.4.0 durchführen?

Es ist bei der FortiOS 5.4.0 zu beachten, dass es sich um einen neuen "General Availlibility Release" handelt. Wie aus den "Release Notes" zu entnehmen ist existieren auf diesem "Release 5.4.0" noch etliche "known issues". Ebenso stehen momentan noch nicht alle Informationen zur Verfügung betreffend den neuen Features und Funktionen zur Verfügung. Aus diesem Grund empfehlen wir diesen Release nicht für einen "produktiven Einsatz" da dieser Release aus unsere Sicht nicht "stable" ist. Für Testgeräte oder Laborgeräte ist es aber eine gute Sache sich mit dem neuen Release vertraut zu machen und sich in den neuen Release einzuarbeiten. Man kann sich mit dem neuen Menudesign vertraut machen und die neuen Features auf Herz Niere testen. Dabei ist jedoch die Kompatibilität zu anderen Devices wie zB FortiAnalyzr, FortiManager sowie FortiAP's zu berücksichtigen die in den "Release Notes" von FortiOS 5.4.0 explizit erwähnt werden.

       Datei:Fortios-v5.4.0-release-notes.pdf

Es ist zu erwarten, dass neue Devices wie zB eine FG-30E, FG-50E mit dem neuen FortiOS 5.4.0 ausgeliefert werden. Speziell neue Devices wie FG-30E und FG-50E werden dann mit einem sogenannten "Brache Release" ausgeliefert was nicht dem "General Availibitliy Relase" entspricht. Aus diesem Grund und in jedem Fall empfehlen wir neue Devices von Grund auf neu zu "stagen". Wie dies durchzuführen ist siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_ein_FortiGate_Device_von_Grundauf_mit_einem_entsprechenden_FortiOS_installieren_.28staging.29.3F

Backup / Restore

Wie kann ich unter FortiOS 5.4 auf einem FortiGate Device ein Backup/Restore durchführen?

Wenn ein Backup auf einem FortiGate Device manuell durchgeführt wird kann dies über Mgmt. Web Interface durchgeführt werden. Wie ein Backup manuell über USB Stick durchgeführt wird siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_auf_einem_FortiGate_Device_ein_Backup.2FRestore_.C3.BCber_einen_USB_Stick_durchf.C3.BChren.3F

Um das Backup über das Web Mgmt. Interface durchzuführen wähle folgendes:

       Dashboard > Backup
       Fortinet-1642.jpg 
       Fortinet-1646.jpg

Wenn die Funktion "Encryption" definiert wird muss ein entsprechendes Passwort definiert werden. Anhand dieses Passwort wird das File AES256 verschlüsselt. Wenn dies durchgeführt wird muss folgendes berücksichtigt werden: Geht das definierte Passwort verloren kann kein Restore durchgeführt werden. Auch Fortinet ist nicht in der Lage dieses verchlüsselte Backup anhand des Passwortes zu entschlüsseln somit ist das entsprechende Backup File nutzlos. Wenn anhand eines Backups ein manueller Restore durchgeführt werden möchte ist folgendes zu berücksichtigen:

       •  Ein Restore kann nur dann durchgeführt werden wenn der FortiGate Device über das gleiche FortiOS verfügt wie das Backup File!
          
       •  Ein Restore kann nur dann durchgeführt werden wenn die Harware Konfiguration identisch ist wie das des Backup File (zB Interface/Switch Mode)!
          
       •  Ein Restore basierend auf einem Backup eines grösseren FortiGate Devices kann nicht verwendet werden für einen anderen kleineren
          FortiGate Device (not supported)!
          
       •  Ein Restore basierend auf einem Backup File eines anderen kleineren FortiGate Devices kann nur dann durchgeführt werden wenn der 
          Header des Restore Files = dem Header des anderen grösseren FortiGate Devices entspricht. Dabei sind folgende Zeilen im Restore
          File zu ersetzen:
          
          #config-version=FGT60D-5.04-FW-build1011-151221:opmode=0:vdom=0:user=admin
          #conf_file_ver=0
          #buildno=1011

Ein Restore wird folgendermassen durchgeführt:

       Dashboard > Restore
       Fortinet-1644.jpg 
       Fortinet-1647.jpg

Durch den Restore wird in jedem Fall ein Neustart des Devices ausgelöst! Es ist Empfohlen den Neustart über den Consolen Port (RS232) mitzuverfolgen um allfällige Fehlermeldungen zu erhalten. Wenn dies nicht möglich ist sollte nach Neustart des FortiGate Devices auf der CLI folgender Befehl benutzt werden um allfällige Fehlermeldungen zu eruieren:

       # diagnose debug config-error-log read

Dieses "crashlog" kann ebenfalls zurückgesetzt resp. gelöscht werden. Dies wird folgendermassen durchgeführt:

       # diagnose debug config-error-log clear

Wie kann ich unter FortiOS 5.4 auf einem FortiGate Device ein Backup/Restore über einen USB Stick durchführen?

Wenn anhand eines USB Sticks ein Backup durchgeführt wird über Mgmt. Web Interface kann über die Position "USB" innerhalb der Backup Funktion das Backup direkt auf den USB Stick gespeichert werden. Wenn ein Backup auf der CLI durchgeführt wird und das Backup auf den USB Stick gespeichert werden soll kann dies ebefalls durchgeführt werden. Voraussetzung damit dies durchgeführt werden kann ist ein korrekt formatierter USB Stick. Weitere Informatioenn wie dieser Formatiert werden kann siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Was_ist_unter_FortiOS_5.4_beim_Ben.C3.BCtzen_eines_USB_Sticks_an_eine_Fortigate_zu_ber.C3.BCcksichtigen.3F

Um ein Backup über USB Stick und über Mgmt. Web Interface durchzuführen führe folgendes aus:

       Dashboard > Backup > USB Disk
       Fortinet-1642.jpg
       Fortinet-1643.jpg

Wenn ein Backup über CLI durchgeführt werden soll kann folgendes ausgeführt werden:

       # execute backup ["config" oder "full-config"] usb [Name des Backup Files] [Optional Passwort um das File zu verschlüsseln]
       Please wait...
       
       Copy config full-config-backup to USB disk ...
       Copy config file to USB disk OK.
       Setting timestamp
       
       NOTE Die Option "config" steht im Zusammenhang mit der VDOM Funktion dh. ist VDOM aktiviert auf einer FortiGate kann anhand "config"
            für eine spezifische VDOM ein Backup durchgeführt werden!

Um das Backup File auf dem USB Stick zu verifizieren das über CLI oder Mgmt. Interface gespeichert wurde kann der Inhalt des USB Sticks ausgelesen werden:

       # execute usb-disk list
       2016-01-06 14:00:56     <DIR>           System Volume Information
       2016-01-06 21:11:08         431082      full-config-backup

Wird erneut ein Backup über denselben USB Stick dh. über Mgmt. Web Interface oder über CLI mit demselben Namen durchgführt wird das vorhandene File überschrieben. Dies bedeutet: Es gibt keine Funktion die es erlaubt zB anhand der Zeit/Datum das File variable zu benennen so das dieses nicht überschrieben wird! Zum Kommando "execute usb-disk" stehen folgende Optionen zusätzlich zur Verfügung:

       # execute usb-disk ?
       delete    Delete file from the USB disk.
       eject     Eject the USB disk.
       format    Format the USB disk.
       list      Display the contents of the USB disk.
       rename    Rename file in the USB disk.

Wenn ein Restore anhand eines USB Sticks über Mgmt. Web Interface durchgeführt werden soll muss als Voraussetzung der USB korrekt erkannt werden resp. korrekt formatiert sein. Danach kann folgendes durchgeführt werden:

       Dashboard > Restore > USB Disk
       Fortinet-1644.jpg
       Fortinet-1645.jpg

Ein Restore über CLI anhand eines USB Sticks wobei auch hier die Voraussetzung ist das der USB Stick korrekt erkannt sowie formatiert wurde, wird folgendermassen ausgeführt:

       # execute restore config usb [File Name der "config" zB "full-config-backup"

Firmware

Wie kann ich ein FortiGate Device von Grundauf mit einem entsprechenden FortiOS installieren (staging)?

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:

       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 "Consolen Port" resp. RS-232 Console findet man im folgenden Artikel:

       FortiGate-5.4:FAQ#Was_f.C3.BCr_ein_Kabel_.28Converter.29_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_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)

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

       Please wait for OS to boot, or press any key to display configuration menu..
       FortiGate-50E (12:55-08.13.2015)
       Ver:05000011
       Serial number: FGT50E3U15000635
       CPU(00): 1600MHz
       Total RAM: 2GB
       Initializing boot device...
       Initializing MAC... egiga1
       Please wait for OS to boot, or press any key to display configuration menu..

Wenn der Start Prozess mit "press any key...." abgebrochen wurde wird folgendes Menü angzeigt:

       [C]: Configure TFTP parameters.
       [R]: Review TFTP parameters.
       [T]: Initiate TFTP firmware transfer.
       [F]: Format boot device.
       [I]: System information.
       [B]: Boot with backup firmware and set as default.
       [Q]: Quit menu and continue to boot.
       [H]: Display this list of options.

Nun kann für den TFTP "staging" Prozess anhand "[R]: Review TFTP parameters." die vorgegebenen Konfiguration eingesehen werden. Möchte man diese Konfiguration verändern kann dies anhand "[C]: Configure TFTP parameters." durchgeführt werden. Dabei ist zu beachten das diese Veränderung "persistens" ist und zukünftig für jeden "staging" Prozess betreffend TFTP Parameter für diesen FortiGate Device gilt:

       Enter C,R,T,F,I,B,Q,or H: R
       
       Image download port:    WAN1
       DHCP status:            Disabled
       Local VLAN ID:          <NULL>
       Local IP address:       192.168.1.188
       Local subnet mask:      255.255.255.0
       Local gateway:          192.168.1.254
       TFTP server IP address: 192.168.1.168
       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.":

       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:

       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:

       Please connect TFTP server to Ethernet port 'WAN1'.
       
       MAC: 90:6c:ac:13:80:10
       
       Connect to tftp server 192.168.1.168 ...
       
       #############################################################
       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:

       User: admin
       Password: [Kein Passwort]

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

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

       # 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!
       
         NOTE Ob ein FortiGate Device unter FortiOS 5.4 über einen "Switch Controller" verfügt kann über die "Software Matrix" die Fortinet
              zur Verfügung stellt eruiert werden:
              
              Datei:FortiOS-Software-Platform-Matrix-54.pdf

Um ein FortiGate Device für den Interface Mode zu versetzen müssen die Abhängigkeiten auf den Interface aufgelöst werden. Diese Abhängigkeiten bestehen im Zusammenhang mit der Firewall Policy sowie mit dem DHCP Server. Um diese zu löschen führe folgendes auf der CLI aus:

       # config system dhcp server
       # del 1
       # end
       # config system firewall policy
       # del 1
       # end

Danach muss für "Hardware" resp. "Software" Switch Controller folgendes ausgeführt werden:

       Hardware Switch Controller
       
       # config system virtual-switch
       # get
       == [ lan ]
       name: lan    
       # del lan
       # get
       # end
       
       # execute reboot
       Software Switch Controller
       
       # config system global
       # set internal-switch-mode interface
       # end
       changing switch mode will reboot the system!
       Do you want to continue? (y/n) y

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
       
       # show system interface
       Konfiguriere ein entsprechendes Interface
       
       # config system interface
       # edit [Name des Interface zB "internal1"]
       # set ip [IPv4 Adresse plus Subnet Maske zB "192.168.1.99 255.255.255.0]
       # set allowaccess [http | https | ssh | telnet | ping]
       # end

Wenn "http" sowie "https" aktiviert werden wird per Standard ein "redirect" auf "https" durchgeführt. Möchte man dies verhindern kann folgendes zusätzlich ausgeführt werden:

       # config system global
       # set admin-https-redirect [enable | disable]
       # end

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

Wie kann ich auf einem FortiGate Device für FortiOS 5.4 ein manuelles Firmware Upgrade durchführen?

Wenn auf einem FortiGate Device ein Upgrade anhand eines FortiOS Version durchgeführt werden soll, muss verifiziert werden welche Schritte vollzogen werden müssen. Dies bedeutet: Anhand des "Upgrade Path" Dokument von Fortinet muss verifiziert werden, welche "Upgrade Schritte" (Upgrade Path) durchgeführt werden müssen. Werden diese "Upgrade Schritte" nicht eingehalten werden, wird zwar ein Upgrade durchgeführt jedoch die Konfiguration - da die "Upgrade Schritte" nicht eingehalten werden - wird Korrupt. Der Grund ist der Folgende: Wenn ein Upgrade durchgeführt wird so werden im Hintergrund Scripts angewendet um die Konfiguration auf den neusten Stand zu bringen. Diese Scripts gehen von einem FortiOS Version aus gemäss "Upgrade Path". Stimmt diese FortiOS Version nicht überein, kommt des zu Script Fehlern und somit zu Konfigurationsfehlern. Im nachfolgenden Dokument werden diese "Upgrade Path's" abgebildet:

       Datei:FortiOS-Upgradepath-54.pdf

Ein "Upgrade" kann manuell über Mgmt. Web Interface durchgeführt werden oder über CLI anhand eines TFTP Servers der sich im lokalen Netzwerk befindet und anhand diesem ein entsprechendes FortiOS Image auf den FortiGate Device hochgeladen wird damit anhand diesem später über Mgmt. Web Interface ein Upgrade ausgeführt werden kann. Ausgangslage für ein "Upgrade" ist das entsprechende FortiOS Image das über die Support Seite von Fortinet für jeden FortiGate Device zur Verfügung gestellt wird. Um ein entsprechendes FortiOS Image runterzuladen muss über die Support Seite von Fortinet in dem ein entsprechender Device registriert wurde eingeloggt werden:

       https://support.fortinet.com

Logge dich auf der "Support Seite" ein anhand des Usernamens und Passwortes. Danach wähle unter "Download" die Position "Firmware Images":

       Fortinet-1651.jpg

Nun kann im "Scrollbalken" das entsprechende "Product" gewählt werden zB "FortiGate":

       Fortinet-1652.jpg

Nachdem das "Product" gewählt wurde wählt man "Download". Danach öffnet sich über den Browser der "FTP" Download Server und es kann die entsprechende Version gewählt werden:

       Fortinet-1653.jpg

Wenn man im entsprechenden Verzeichnis der entsprecheneen FortiOS Version ist, kann für das entsprechende FortiGate Modell das FortiOS Image runtergeladen werden:

       Fortinet-1654.jpg
       
       NOTE Fortinet begrenzt den Download zu Beginn auf 2 gleichzeitige Downloads. Dies bedeutet: Zu Beginn können zwei Files/Images
            gleichzeitig runtergeladen werden danach können nur noch einzelne Files runtergeladen werden!

Sobald das entsprechende FortiOS Image runtergeladen wurde, kann über Mgmt. Web Interface oder CLI ein Upgrade durchgeführt werden. Dabei ist zu empfehlen vor dem Ausführen des Upgrade ein "Backup" der Konfiguration durchzuführen. Weitere Informationen dazu wie ein "Backup" durchgeführt wird siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_auf_einem_FortiGate_Device_ein_Backup.2FRestore_durchf.C3.BChren.3F

Wenn ein Upgrade über CLI durchgeführt werden soll anhand eines zur Verfügung stehenden "TFTP" Servers im lokalen Netz und ausgehend davon das sich das entsprechende FortiOS Image im "Root Verzeichnis" des "TFTP" Servers befindet, kann folgendes ausgeführt werden:

       # execute upload image tftp [Name des Images] [Optionaler Kommentar] [IPv4 Adresse des TFTP Servers]
       
       NOTE Es kann auch ein Upload des Images über einen FTP Server durchgeführt werden:
            
            # execute upload image ftp [Name des Images] [Optionaler Kommentar] [IPv4 Adresse des FTP Servers oder FQDN Name][:FTP Port] [FTP username] [FTP password]

Durch diesen Upload eines FortiOS Images sei es über "TFTP" und/oder "FTP" wird kein "automatischer" Upgrade durchgeführt, sondern das FortiOS Images steht nach einem Erfolgreichen Upload auf dem FortiGate Device unter folgender Position zur Verfügung um ein Upgrade durchzuführen:

       Dashboard > System Information > Firmware Version: > Update > Available Firmware > All Available

Um ein Upgrade über Mgmt. Web Interface durchzuführen kann folgendes gewählt werden:

       Dashboard > System Information > Firmware Version: > Update > Upload Firmware > Upload Firmware
       Fortinet-1655.jpg
       Fortinet-1656.jpg
       Fortinet-1657.jpg

Ein "Upgrade" wird mit der Position "Upgrade" ausgelöst. Dabei ist folgendes zu berücksichtigen: Das entsprechende FortiOS Image wird in seiner Konsistenz sowie für den entsprechenden FortiGate Device überprüft dh. ob das entsprechende FortiOS Image mit dem entsprechenden FortiGate Device übereinstimmt. Es wird jedoch kein "Validierung" durchgeführt dh. ob das entsprechende FortiOS Image ein Image gemäss "Upgrade Path" ist und angewendet werden kann. Somit ist theoretischerweise ein "Downgrade" über die "Upgrade" Funktion möglich jedoch absolut nicht zu empfehlen. Wenn der "Upgrade" Prozess bestätigt wurde kann es durchaus einige Minuten dauern bis der Vorgang abgeschlossen wurde. Es ist nicht zu empfehlen diesen "Vorgang" abzubrechen. Der "Upgrade" Prozess sollte auf der Mgmt. Console (RS-232) mitverfolgt werden sofern dies überhaupt möglich ist. Der Abschluss eines "Upgrade" Vorgangs wird mit einem Neustart des Devices abgeschlossen. Dieser Neustart sollte sofern möglich auf der Mgmt. Console mitverfolgt werden da allfällige Fehlermeldungen nur in dieser Console direkt ausgegeben werden. Ist dies nicht möglich sollte nach einem Neustart des Devices folgendes Log konsultiert werden um allfällige Fehlermeldungen zu verfifzieren:

       # diagnose debug config-error-log read

Dieses "config-error-log" kann nach Verifizierung ebenfalls zurückgesetzt resp. gelöscht werden:

       # diagnose debug config-error-log clear

Wenn es nachdem Neustart des Devices oder auch in einem späteren Zeitpunkt zu Problemen kommt und ein "Roll-Back" zur vorherigen FortiOS Version soll initiert werden, kann dies anhand der Backup Partition durchgeführt werden. Wie dies durchzuführen ist und was dabei beachtet werden muss siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_f.C3.BCr_einen_FortiGate_Device_nach_einem_FortiOS_5.4_Update_einen_.22Roll-Back.22_initieren.3F

Wie kann ich für einen FortiGate Device nach einem FortiOS 5.4 Update einen "Roll-Back" initieren?

Wenn man ein Firmware Update durchführt sei es über Mgmt. Web Interface oder über CLI wird automatisch die aktuelle laufenden Partition deaktivert und eine zweite Partition mit dem neuen FortiOS aktiviert. Dies bedeutet: Ein FortiGate Device stellt für die FortiOS Installation/Update zwei Partitionen zur Verfügung. Dabei spielt es keine Rolle ob die aktive Partition die "primary" oder die "secondary" ist. Bei einem Update wird die "nicht aktive" Partition benutzt/gelöscht und darin die neue Version des FortiOS installiert. Für die "aktive" Partition dh. Ausgangslage des Upgrade werden keine Modifikationen durchgführt. Nachdem die neue Version des FortiOS in der "nicht aktiven" Partition installiert wurde, wird von der "aktiven" Partition ein reguläres Backup gezogen. Dieses Backup wird in der "nicht aktiven" Partition als Restore importiert sowie anhand Scripts diese Konfiguration auf den neusten Stand gebracht. Nachdem dies erfolgreich durchgeführt wurde, wird die "nicht aktive" Partition aktiviert und die "aktive" Partition deaktiviert. Danach wird ein Neustart des FortiGate Devices ausgeführt. Um auf dem FortiGate Device alle Partitionen aufzulisten benütze folgendes Kommando:

       # diagnose sys flash list
       Partition  Image                                     TotalSize(KB)  Used(KB)  Use%  Active
       1          FGT60D-5.02-FW-build701-151203                   253871     32491   13%  No    
       2          FGT60D-5.04-FW-build1011-151221                  253871     36706   14%  Yes   
       3          ETDB-1.00000                                    3368360    105720    3%  No    
       Image build at Dec 21 2015 23:25:26 for b1011

In diesem Beispiel sieht man das ein Upgrade durchgeführt wurde von "5.02" auf "5.04". Die Partition von "5.04" wurde aktiviert (Active Yes). Um nun ein "Roll-Back" initiert dh. die Partition von "5.02" zu aktivieren kann folgendes durchgeführt werden:

       # execute set-next-reboot [secondary | primary]

In unserem Beispiel würden wir für Partition "1" primary wählen. Wenn ein "Roll-Back" initiert wird ist folgendes zu berücksichtigen: Von FortiOS Version zu FortiOS Version unterscheiden sich die Datenbankeinträge betreffend Log dh. Tabellen kommen dazu und/oder Tabellen werden gelöscht. Bei einem Upgrade führen die entsprechenden Scripts beim Import des Restore diese Modifikation durch. Bei einem Downgrade wird dies nicht durchgeführt. Somit, wenn ein Downgrade durchgeführt wird kann es nach dem Neustart betreffend diesen Datenbank Einträgen zu Problemen kommen. Diese Datenbankeinträge befinden sich auf der lokalen "disk". Wird diese "disk" vorgängig formatiert dh. vor dem Downgrade wird beim Neustart die entsprechende Datenbank neu mit den korrekten Einträgen erstellt. Es muss jedoch berücksichtigt werden, dass alle Informationen bei einer Formatierung der "disk" verloren gehen dh. Log und Report. Verfügt der entsprechende FortiGate Device nicht über eine "disk" dh. diese wird im "memory" angelegt anhand "MTD" so wird diese bei einem Neustart jedesmal neu erstellt. Aus diesen Gründen ist es dringend empfohlen vor einem Downgrade resp. bevor ein Neustart ausgeführt wird die "disk" zu formatieren:

       # execute formatlogdisk
       Log disk is /dev/sdb4
       Formatting this storage will erase all data on it, including
         Logs, quarantine files;
         WanOpt caches;
       and requires the unit to reboot.
       Do you want to continue (y/n) y

Wenn nachträglich wieder die Ausgangspartition aktiviert werden soll kann die entsprechende Partition aktiviert werden sowie die "disk" abermals formatiert werden.

Wo finde ich einen Ueberblick über die zur Verfügung stehenden FortiOS Versionen im Allgemeinen?

Nun ein FortiOS Release wird bezeichnet durch seinen Release Bezeichnung dh. "GA" (General Availibility) oder "MR" (Master Release) plus die Versions Nummer zB MR3. Die Patch Level werden bezeichnet mit der entsprechenden Nummerierung dh. zB P2 usw. Dahinter steht eigentlich eine Build Nummer dh. zB Build 0228 was wiederum unter FortiOS 5 Patch 4 also P4 entspricht. Also stehen Patch Nummern im Zusammenhang mit Build Nummern. Welcher Patch Level über welche Build Nummer verfügt sieht man in der unten aufgeführten Aufstellung:

    FortiOS 5
    Fortinet-1649.jpg
    FortiOS 4
    Fortinet-1650.jpg

Diese Informationen stammen aus "Fortinet Forum" und werden dort auch auf den neusten Stand gehalten. Weitere detaillierte Information betreffend tieferen Version wie FortiOS 3 kann diesem Fortinet Forum Post entnommen werden:

       https://forum.fortinet.com/tm.aspx?m=86591

DNS

Wie konfiguriere unter FortiOS 5.4 auf einer FortiGate die System DNS Server?

Eine FortiGate benützt für verschiedenen Funktionen einwandfreie und schnell antwortende DNS Server. Sind diese nicht erreichbar oder antworten nicht dementsprechend beeinflusst dies verschiedenen Dienst der FortiGate wie zB das WebFiltering. Um die System DNS Server einer FortiGate zu konfigurieren kann das Mgmt. Web Interface benutzt werden. Die Konfiguration findet man unter folgenden Menüpunkt:

       Network > DNS > Specifiy
       Fortinet-1631.jpg

Per Standard sind auf jeder FortiGate die "FortiGuard" DNS Server definiert. Die FortiGuard DNS Server ist ein Service innerhalb "FortiGuard" resp. es muss mind. "FortiCare" lizensiert werden damit die "FortiGuard DNS Server" benutzt werden können. Es ist grundsätzlich nicht empfohlen diesen Dienst zu benutzen sondern die ISP DNS Server zu konfigurieren. Um die Konfiguration der DNS Server über CLI durchzuführen führe folgendes aus:

       # config system dns
       # set primary [IPv4 Adresse des DNS 1 Serves]
       # set secondary [IPv4 Adresse des DNS 2 Servers]
       # set domain [Lokale Domaine "optional"]
       # set cache-notfound-response [enable | disable]
       # set dns-cache-limit [Maximum Einträge die im Cache verbleiben; Standard 5000]
       # set dns-cache-ttl [Maximum Zeit in der ein DNS Eintrag im Cache vebleibt; Standard 1800]
       # set source-ip [Source IP die benutzt werden soll für die DNS Anfrage]
       # end
       
       NOTE Die Option "cache-notfound-response" ist ein Log Relevanter Eintrag dh. wird ein DNS Eintrag nicht im Cache 
            gefunden wird dem Log "NOTFOUND" hinzugefügt!

Wie kann ich auf einer FortiGate unter FortiOS 5.4 den DNS Cache löschen, DNS Statistik auflisten usw.?

Wenn auf einer FortiGate die DNS Server konfiguriert wurden stehen für diesen DNS Dienst auf der FortiGate verschiedenen Optionen zur Verfügung um diese zu manipulieren dh. zB neu zu starten. Nachfolgender Befehl zeigt wie die verschiedenen Option die zur Verfügung stehen aufgelistet werden:

       # diagnose 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. Reload Secure DNS setting
       12. Show Hostname cache
       13. Clear Hostname cache
       14. DNS debug bit mask

Anhand dieser Optionen lässt sich zB der DNS Cache des DNS Dienstes löschen:

       # diagnose test application dnsproxy 1

Nachfolgend den Befehl um den DNS Statistik aufzulisten:

       # diagnose test application dnsproxy 2

Kann ich auf einer FortiGate unter FortiOS 5.4 eine bestimmte "DNS Anfrage" umschreiben (translation)?

Wenn in einer bestimmten Umgebung eine "DNS Anfrage" anderst beantwortet werden soll als in einer anderen Umgebung spricht man von einem "Split DNS Server" dh. dieser beantwortet Anfragen von bestimmten "Source Adressen" anderst 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 also zB "212.59.153.125". Benutzt der User den Mail Server im "Office" und im Office existiert "kein" Interner DNS Server so wird "mail.mydomain.ch" abermals als "Public IP" aufgelöst. Der Nachteil ist - obwohl sich der User und Mail Server im gleichen Segment befindet - wird der Traffic von "mail.mydomain.ch" - da dieser mit der Public IP aufgelöst wird - zur Firewall gesendet. Der Grund ist Routing bedingt dh. "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 dh. 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 zB "192.168.1.100" konfiguriert, denn diese stellt die interne Adresse von "mail.mydomian.ch" dar. Ist kein interner DNS Server vorhanden kann die "Split DNS" Server Funktion auf einer FortiGate benutzt werden. Kann man aus irgendwelchen Gründen kein "Split DNS" Server konfigurieren kann die Funktion "dnstranslation" benutzt werden. Diese Funktion steht im Zusammenhang mit dem "Session-Helper". Um eine "dnstranslation" zu konfigurieren muss die CLI benutzt werden. In unserem Beispiel gehen wir von folgender Konstellation aus:

       Mail Server FQDN mail.mydomain.ch
       Mail Server Public IP 212.59.153.125
       Mail Server Internal IP 192.168.1.100

Als nächstes muss kontrolliert werden ob für DNS (udp) ein entsprechender "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 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

Als nächstes kann die Funktion "dnstranslation" konfiguriert werden anhand dieser wir gemäss unserem Beispiel eine entsprechende Antwort des DNS Servers auf "mail.mydomain.ch" mit der IPv4 Adresse von "212.59.153.125" umschreiben (translate) auf die interne IPv4 Adresse "192.168.1.100":

       # 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

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 (translate). 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 temporaere Umleitungen im internen Bereich benutzt werden!

DDNS

Wie konfiguriere unter FortiOS 5.4 auf einer FortiGate den "DDNS" Server Dienst basierend auf FortiGuard?

Grundsätzlich steht die Konfiguration eines DDNS (Dynamic Domain Name System) auf einer FortiGate über Mgmt. Web Interface unter folgender Position zur Verfügung:

       Network > DNS > Use FortiGuard Servers
       Fortinet-1630.jpg

Wie aus der Abbildung ersichtlich wird mit einer Meldung daraufhingewiesen, dass der "FortiGuard Service" nicht erreichbar ist dh. bei diesem "DDNS" Dienst handelt es sich um einen FortiGuard Service und muss somit Lizensiert werden. Der "DDNS" Dienst von "FortiGuard Service" ist enthalten in der "FortiCare" Lizensierung. Weitere Informationen dazu welche Dienste in "FortiCare" enthalten sind siehe nachfolgenden Artikel:

       Fortinet:FortiCare-FortiGuard#Wenn_ich_.22nur.22_DDNS_.28Dynamic_DNS.29.2C_GeoIP.2C_NTP_und_DNS_Service_von_FortiGuard_benutze_was_muss_ich_im_Minimum_lizensieren.3F

Die "DDNS" Konfiguration über Mgmt. Interface lässt sich nur dann konfigurieren wenn der "FortiGuard Service" erreichbar ist resp. verfügbar. Nichts desto trotz kann die Konfiguration auch über CLI durchgeführt werden, unabhängig ob der "FortiGuard Service" erreichbar ist oder nicht. Die Konfiguration wird folgendermassen durchgeführt:

       # config system ddns
       # edit [Gebe einen entsprechenden Integer an zB "1"]
       # set ddns-server FortiGuardDDNS
       # set ddns-domain [Zu verwendeter Hostname plus DDNS Dienst zB "myhost.fortidyndns.com"]
       # set use-public-ip [enable | disable]
       # set monitor-interface [Angabe des entpsrechenden Interface's für den Hostnamen zB "wan1"]
       # set bound-ip [Definition IPv4 Adresse wenn "use-public-ip" aktiviert wurde]
       # end
       NOTE Unter normalen Umständen ist "use-public-ip" nicht zu aktivieren dh. durch die Definition von "monitor-interface" wird der 
            definiert "Hostname" resp. "ddns-domain" auf das definiert Interface gebunden und dessen IPv4 Adresse. Dabei spielt es keine
            Rolle ob die IPv4 Adresse "statisch" und/oder "dynamisch" konfiguriert wurde. Möchte man über den "DDNS" Service eine "public" 
            IPv4 Adresse konfiguriert die zwar im Subnet des definierten Interfaces enthalten ist jedoch nicht direkt auf dem Interface 
            konfiguriert wurde, kann durch Aktivierung der Option "use-public-ip" diese anhand "bound-ip" definiert werden!

Kann ich auf einer FortiGate unter FortiOS 5.4 einen "DDNS" Server Dienst wie zB "dyndns" konfigurieren?

Neben den "FortiGuardDDNS" Service kann auf einer FortiGate weitere "DDNS" Dienste konfiguriert werden. Diese sind die Folgenden:

       dyndns.org        members.dyndns.org and dnsalias.com
       dyns.net          www.dyns.net
       ods.org           ods.org
       tzo.com           rh.tzo.com
       vavic.com         Peanut Hull
       dipdns.net        dipdnsserver.dipdns.com
       now.net.cn        ip.todayisp.com
       dhs.org           members.dhs.org
       easydns.com       members.easydns.com
       genericDDNS       Generic DDNS based on RFC2136.

Die Konfiguration muss jedoch über CLI durchgeführt werden und steht über Mgmt. Interface nicht zur Verfügung:

       # config system ddns
       # edit [Gebe einen entsprechenden Integer an zB "1"]
       # set ddns-server [dyndns.org | dyns.net | ods.org | tzo.com | vavic.com | dipdns.net | now.net.cn | dhs.org | easydns.com | genericDDNS]
       # set ddns-domain [Zu verwendeter Hostname plus DDNS Dienst zB "myhost.fortidyndns.com"]
       # set ddns-auth [disable | tsig]
       # set ddns-keyname [DDNS Key Name]
       # set ddns-key [DDNS Update Key (base 64 encoded)]
       # set ddns-username [Gebe einen DDSN Usernamen an]
       # set ddns-password [Gebe einen DDSN Passwort an]
       # set use-public-ip [enable | disable]
       # set monitor-interface [Angabe des entpsrechenden Interface's für den Hostnamen zB "wan1"]
       # set bound-ip [Definition IPv4 Adresse wenn "use-public-ip" aktiviert wurde]
       # set ddns-ttl [TTL in Sekunden; Standard 300]
       # end
       
       NOTE Unter normalen Umständen ist "use-public-ip" nicht zu aktivieren dh. durch die Definition von "monitor-interface" wird der 
            definiert "Hostname" resp. "ddns-domain" auf das definiert Interface gebunden und dessen IPv4 Adresse. Dabei spielt es keine
            Rolle ob die IPv4 Adresse "statisch" und/oder "dynamisch" konfiguriert wurde. Möchte man über den "DDNS" Service eine "public" 
            IPv4 Adresse konfiguriert die zwar im Subnet des definierten Interfaces enthalten ist jedoch nicht direkt auf dem Interface 
            konfiguriert wurde, kann durch Aktivierung der Option "use-public-ip" diese anhand "bound-ip" definiert werden!

Durch die Konfiguration eines "DDNS" Server resp. "genericDDNS" wird ermöglicht einen eigenen "DDNS" Server zu betreiben. Dabei ist jedoch zur berücksichtigen, das auf dem installierten "DDNS" Server "clear-text" Passwörter erlaubt werden da der "DDNS" Dienst auf der FortiGate keine "verschlüsselten" Passwörter unterstützt. Kommt es nachträglich zu Problemen mit dem "DDNS" Dienst kann dieser anhand eines Troubleshooting verifiziert werden. Weitere Informationen dazu siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_auf_einer_FortiGate_Verbindungsprobleme_f.C3.BCr_den_.22DDNS.22_Dienst_verifizieren.3F

Wie kann ich unter FortiOS 5.4 auf einer FortiGate Verbindungsprobleme für den "DDNS" Dienst verifizieren?

Um ein Troubleshooting auf einer FortiGate betreffend "DDNS" Dienst durchzuführen muss folgendes auf der CLI durchgeführt werden:

       Setze alle Debug Filter zurück
       
       # diagnose debug reset
       Setze einen Debug Filter für die Applikation "ddnscd"
       
       # diagnose debug console time enable 
       # diagnose debug application ddnscd -1 
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter
       
       # diagnose debug enable 

Um den Debug Modus zu beenden und alle Filter zurück zu setzen führe folgendes aus:

       # diagnose debug disable
       # diagnose debug reset

Wenn der "DDNS" Service/Verbindung nicht zu stande kommt dh. zB. falscher Domain Name, Passwort etc. wird durch die FortiGate alle 300 Sekunden (5 Minuten) eine neue Verbindung aufgebaut! Wenn eine Verbindug erfolgreich war wird diese nach 2'592'000 Sekunden (30 Tage) erneut überprüft. Somit sollte der Debug Befehl mind 10 - 15 Minuten laufen um überhaupt Informationen aufzuzeichnen! Wenn der "output" des Debug an den Support weitergeleitet wird, sollten die Passwörter im "output" des Debug entfernt werden da in der "DDNS" Verbindung das Passwort für den "DDNS" Dienst "clear-text" übermittelt wird!

Was muss bei einem "Hardware Ausstausch" betreffend "DDNS Name" auf einer FortiGate berücksichtigt werden?

Wenn eine "DDNS" Name über einen "DDNS" Dienst registriert wird, ist dieser "Einmalig" und kann nicht zweimal beim gleichen "DDNS" Dienst vergeben werden! Wenn es nun zu einem Hardware Austausch kommt muss folgender berücksichtigt werden: Der "DDNS" Name muss auf der alten Hardware resp. FortiGate deaktiviert werden sei es über Mgmt. Web Interface oder über CLI:

       Network > DNS > Use FortiGuard Servers > [Deaktivier "FortiGuardDDNS" Position]
       # config system ddns
       # del [Gebe den entsprechenden Integer an zB "1"]
       # end

Durch das Deaktivieren des "DDNS" Dienstes auf der FortiGate resp. "DDNS" Name wird dieser De-Registriert beim entsprechenden "DDNS" Dienst. Wenn die "alte" FortiGate Hardware nicht mehr zur Verfügung steht zB weil Defekt muss bei Fortinet für den "FortiGuardDDNS" Dienst ein Ticket eröffnet um den "DDNS" Name für die alte Hardware zu De-Registrieren. Dabei ist Wichtig im entsprechenden Ticket die "alte" Serien Nummer des alten FortiGate Devices aufzuführen, den entsprechenden "DDNS" Namen sowie die neue Seriene Nummer des FortiGate Devices. Wird nicht "FortiGuardDDNS" Dienst genutzt sondern ein anderer Dienst wie zB. "dyndns.org", muss eine entsprechende Anfrage an diesen Dienst gesetellt werden für die De-Registrierung des "DDNS" Namens!

FortiView

In FortiView unter FortiOS 5.4 werden "unbekannte Applikationen" sowie "lokaler Traffic" nicht aufgelistet?

Unter der Voraussetzung das ein "logging" auf einer FortiGate korrekt konfiguriert wurde fällt einem auf, dass "unbekannte Applikationen" sowie "lokaler Traffic" nicht unter FortiView aufgelistet werden. Dies bedeutet: Wird "Application Control" benutzt und eine FortiGate kann eine Applikation nicht "identifizieren" fehlt dieser "Traffic" per Standard unter FortiView. Möchte man diese "unbekannten Applikationen" dennoch auflisten kann dies durch folgende Konfiguration durchgeführt werden:

       # config log gui-display
       # set fortiview-unscanned-apps [enable | disable]
       # end

Ebenso wird der "lokale Traffic" einer FortiGate dh. initiert durch den Device selber wie zB DNS, FortiGuard usw. nicht unter FortiView aufgelistet. Möchte man diesen "lokalen Traffic" auflisten so kann dies folgendermassen Konfiguriert werden:

       # config log gui-display
       # set fortiview-local-traffic [enable | disable]
       # end

Diese Konfiguration kann auch über Mgmt. Web Interface durchgeführt werden unter folgender Position:

       Fortinet-1626.jpg
       Fortinet-1627.jpg

Prozesse

Wie kann ich unter FortiOS 5.4 die Prozesse die auf einer FortiGate existieren auflisten?

Auf einer FortiGate existieren unzählige von Prozesse und Dienste die zuständige sind um die verschiedenen Aufgaben einer Firewall durchzuführen. Um die Prozesse aufzulisten kann folgendes Kommando benutzt werden:

       # diagnose sys top [refresh_time_sec] [number_of_lines]

Somit möchte man einfach die "top" 20 Prozesse (Standard) auflisten kann der vorhergende Befehl benutzt werden ohne Optionen von "refresh_time_sec" sowie "number_of_lines":

       # diagnose sys top
       Run Time:  1 days, 5 hours and 23 minutes
       1U, 2N, 0S, 97I; 1839T, 1421F
                miglogd       55      S       3.1     1.3
                 newcli     2136      R <     0.5     0.8
              ipsengine      114      S <     0.0     3.8
                 httpsd      119      S       0.0     1.9
                 httpsd      162      S       0.0     1.9
                cmdbsvr       38      S       0.0     1.4
                pyfcgid     2090      S       0.0     1.4
                pyfcgid     2092      S       0.0     1.3
                pyfcgid     2094      S       0.0     1.3
                pyfcgid     2093      S       0.0     1.3
              ipshelper       69      S <     0.0     1.2
                sslvpnd       73      S       0.0     1.2
                 httpsd       57      R       0.0     1.1
                 httpsd      118      S       0.0     1.0
                 cw_acd      108      S       0.0     0.9
              forticron       66      S       0.0     0.9
                    wad       99      S       0.0     0.8
                  fgfmd      107      S       0.0     0.8
              scanunitd      110      S <     0.0     0.8
                 newcli     2086      S <     0.0     0.8

Um den Befehl resp. die Funktion zu beenden benütze "Ctrl + C". Wenn Prozesse untersucht/beobachtet werden sollen dh. ob diese viele Resourcen beanspruchen etc. kann anhand "refresh_time_sec" und "number_of_lines" der Befehl erweitert werden. Dies bedeutet: Nachfolgendes Beispiel zeigt wie der Befehl ausgeführt wird und zwar mit einer "refresh_time_sec" von 5 Sekunden und "number_of_lines" von 10 was wiederum heisst, es werden nur die Top 10 Prozesse/Dienste aufgelistet:

       # diagnose sys top 5 10
       Run Time:  1 days, 5 hours and 27 minutes
       0U, 2N, 0S, 98I; 1839T, 1421F
                miglogd       55      S       2.9     1.3
                 newcli     2141      R <     0.5     0.8
              ipsengine      114      S <     0.0     3.8
                 httpsd      119      S       0.0     1.9
                 httpsd      162      S       0.0     1.9
                cmdbsvr       38      S       0.0     1.4
                pyfcgid     2090      S       0.0     1.4
                pyfcgid     2092      S       0.0     1.3
                pyfcgid     2094      S       0.0     1.3
                pyfcgid     2093      S       0.0     1.3

Der nachfolgende Abschnitt was die verschiedenen Positionen in der Auflistung der Prozesse für eine Bedeutung haben um die Informationen korrekt zu intepretieren:

       Datei:Fortinet-307.jpg

Zusätzlich ist folgendes zu beachten: Die Prozesse werden mit verschiedenen "Status" aufgelistet:

       S     Sleeping
       R     Running
       D     Do not disturb
       Z     Zombie

"R" und "S" Status Informationen eines Prozesses sind normal. Das ein Prozess in den Status "D" wechselt kann für kurze Zeit vorkommen. Bleibt der Status jedoch für längere Zeit im Status "D" ist dies ein Indiz das dieser Prozess nicht korrekt arbeitet. Ein Status "Z" für einen Prozess ist klar ein Indiz das dieser Prozess nicht korrekt läuft. Ein Prozess im Status "Z" kann nicht mit "kill" beendet werden dh. um diesen Prozess zu beenden ist ein Neustart des Devices notwendig!

Wie kann ich unter FortiOS 5.4 die Prozesse die auf einer FortiGate existieren nach Memory Benützung auflisten?

Eine weitere Möglichkeit um die Prozesse aufzulisten wäre:

       # diagnose sys top-summary -h
       Usage: top.py [options]
       
       Options:
         -n LINES, --num=LINES
                               Number of top processes to show (20 by default)
         -i INTERVAL, --interval=INTERVAL
                               Update interval, in seconds (1 by default)
         -s SORT, --sort=SORT  Sort mode: [cpu_percent (default)|mem|fds|pid]
         -d, --dump            Dump stats to the files
         -h, --help            show this help message and exit

Anhand dieser Optionen kann folgender Befehl abgesetzt werden um mit "-s mem" die Prozess nach Memory Benützung zu sortieren und alle 60 Sekunden "-i 60" einen Refresh durchzuführen sowie mit "-n 10" die Top 10 Prozesse aufzulisten:

       # diagnose sys top-summary '-s mem -i 60 -n 10'
       
          CPU [||||||||||||||||||||||||||||||||||||||||] 100.0%
          Mem [||||||||                                ]  22.0%   421M/1839M
          Processes: 10 (running=3 sleeping=85)
          
          PID      RSS   CPU% ^MEM%   FDS     TIME+  NAME
        * 60       83M    0.0  4.5    38  00:29.40  ipsmonitor [x3]
          57       50M    0.0  2.7    19  02:10.82  httpsd [x4]
          38       27M    0.0  1.5    13  01:14.17  cmdbsvr
          2090     26M    0.0  1.4    13  00:01.31  pyfcgid [x4]
          55       24M    0.0  1.3    25  37:23.73  miglogd
          73       22M    0.0  1.2    31  00:01.40  sslvpnd
          2086     19M    0.0  1.1    12  00:01.26  newcli [x2]
          108      17M    0.0  1.0    34  01:04.20  cw_acd
          66       17M    0.0  0.9    21  00:00.25  forticron
          84       15M    0.0  0.9    51  00:02.47  wad [x2]
          
          NOTE die Angabe "-s mem" indiziert die Spalte "MEM%" dh. sollen die Prozess nach "CPU%" Auslastung sortiert werden kann
               anstelle von "-s mem" die Angabe "-s cpu" benützt werden!

Welche Prozesse existieren auf einer FortiGate nach deren Namen und welche Aufgaben haben diese?

Auf einer FortiGate existieren unzählige Prozesse die für verschiedenen Aufgaben zuständig sind. Diese könne zB anhand "diagnose sys top 5 99" eingesehen werden. Viele Prozesse existieren nur dann wenn eine entsprechende Konfigurtion durchgeführt wird. Andere existieren nur dann wenn ein bestimmte FortiGate Modell benutzt wird wie zB PoE (Power over Ethernet). Wiederum Andere existieren und sind mit dem Stauts "idle" versehen da die Funktion deaktiviert wurde wie zB Wirless Controller "cw_acd". Nachfolgend eine Auflistung der bekannten Prozess und einer Kurzbeschreibung dieser. Dabei ist zu beachten das diese Liste nicht eine FortiOS 5.4 basierende Liste ist sondern einfach alle bekannte Prozesse für ein FortiOS auflistet:

       • pptpd                         Deamon für pptp Server
       • pptpcd                        Deamon für pptp Client
       • l2tpd                         Deamon für l2tp Server
       • l2tpcd                        Deamon für l2tp Client
       • ipldbd                        Deamon für ipldbd
       • vsd                           Virtual Server Deamon
       • acd                           Aggregation Controller Deamon
       • src-vis                       Source Visibility Deamon
       • pppoed                        Deamon für pppoe
       • ddnscd                        DDNS Client Deamon
       • urlfilter                     URL Filter Deamon
       • ntpd                          Zeitserver NTP Deamon
       • sshd                          SSH Server Deamon
       • tftpd                         TFTP Deamon
       • telnetd                       Telnet Deamon
       • authd                         Authentication Deamon
       • fssod                         Fortinet Single Sign-On (FSSO) Deamon
       • quard                         Quarantine Deamon
       • rtmon                         Realtime Monitor Deamon (Ping Server Deamon)
       • radvd                         Router Advertise (adv) Deamon
       • alertemail                    Alertmail Deamon
       • dnsproxy                      DNS Proxy Deamon
       • sflowd                        Deamon für sflow Protokoll
       • nat64d                        NAT64 Deamon
       • radiusd                       Radius Deamon
       • notifd                        Notification Deamon (Nur Carrier Version)
       • gtpgkd                        Deamon für gtp (Nur Carrier Version)
       • mass_mmsd                     Mass MMS Deamon (Nur Carrier Version)
       • alarmd                        Alarm Deamon
       • wpad_client                   Port Access Client Deamon (Atheros WiFi)         
       • wpad                          Port Access Entitiy Demon (Prism54 wifi)
       • eap_proxy                     Extended Protocol Authentication (epa) Proxy Deamon
       • modemd                        Modem Deamon
       • dialinsvr                     Dial-In Server Deamon
       • cardmgr                       PCMCIA Card Manager Deamon
       • getty aux                     Daemon für agetty AUX
       • pppoatmd                      PPP over ATM Deamon
       • adsl_mon                      ADSL Monitor Deamon
       • httpclid                      HTTP Client Deamon
       • sessionsync                   Session sync Deamon
       • fgfmd                         FortiGate to FortiManager Komunikations Deamon         
       • wccpd                         WCCP Protokoll Deamon
       • garpd                         VIP Gratuitous ARP Deamon
       • cw_acd                        CAPWAP Wireless Controller Access Deamon
       • wpad_ac                       WPA Access Deamon
       • cw_wtpd                       CAPWAP WTP Deamon
       • cw_stad                       CAPWAP sta Deamon
       • fortilinkd                    fortilink Deamon
       • cu_acd                        Deamon für cputp Access Deamon
       • swctrl_authd                  Deamon für hostswd Authentication Deamon
       • vrrpd                         VRRP Deamon
       • usbmuxd                       USBmux Deamon
       • initXXXXXXXXXXX               Ueberwacht und startet andere Prozesse
       • zebos_launcher                Zebos Launcher Deamon
       • hp_api                        HP API Deamon
       • cmdbsvr                       Update Prozess Deamon, AutoConfig Deamon
       • uploadd                       Upload Demaon 
       • adsl2plus                     ADSL2Plus Deamon
       • sqldb                         SQL Datenbank Deamon
       • reportd                       Reporting Deamon
       • sql_logd                      SQL Log Deamon 
       • miglogd                       Logging Deamon
       • chlbd                         Chassis Loadbalancing Deamonchassis loadbalance daemon)
       • haocd                         Chassis Cluster HA Deamon
       • chassis5000d                  Chassis 5000 Daemon
       • chassisd [IPv4 Adresse]       Chassis Deamon
       • kmiglogd                      Kernel Log Deamon
       • httpsd                        HTTPS Deamon
       • pyfcgid                       Python Konfig Deamon
       • sslvpnd                       SSL VPN Deamon
       • info_sslvpnd                  SSL VPN Info Deamon
       • smbcd                         SMB (Samba) Client Deamon
       • lcdapp                        LCD Panel Control Deamon
       • proxyd                        Proxy Deamon
       • imd                           Instante Messaging (IM) Proxy Deamon
       • wad_launcher                  WAN Acceleration Proxy Deamon
       • wad                           WAN Acceleration Explizit Proxy Deamon (MAPI RPC)
       • wad_diskd                     WAN Acceleration Disk Deamon
       • dlpfingerprint                DLP Fingerprinting Deamon
       • dlpfpcache                    DLP Fingerprinting Cache Deamon
       • scanunitd                     Scanunit Deamon
       • getty                         Console/Telnet Verbindungen
       • mingetty tty1                 Terminal mingetty tty1 Deamon
       • mingetty tty2                 Terminal mingetty tty2 Deamon
       • iked                          VPN IPSec IKE Deamon
       • ipsmonitor                    IPS Monitor Deamon
       • updated                       Update Deamon
       • merged_daemons                Merge Deamon        
       • fclicense                     FortiClient License Deamon
       • amc_monitor                   AMC Monitor Deamon
       • forticron                     CRL Update Deamon
       • bypass_monitor                Bypass Monitor Deamon
       • fdsmgmtd                      FortiGuard Management Deamon
       • fds_msg                       FortiGuard Message Deamon
       • snmpd                         SNMP Deamon
       • dhcpd                         DHCP Server Deamon
       • dhcpcd                        DHCP Client Deamon
       • dhcprd                        DHCP Relay Deamon
       • hatalk                        High Availibility (HA) Protokoll Modul
       • haysnc                        High Availibility (HA) Synchronisierungs Modul
       • harelay                       High Availibility (HA) Relay Modul für TCP
       • fsd                           Forti-Start Deamon
       • proxyacceptor                 Proxy Acceptor Deamon
       • proxyworker                   Proxy Worker Deamon
       • sslacceptor                   SSL Acceptor Deamon
       • sslworker                     SSL Worker Deamon
       • imd                           IM Deamons
       • fcnacd                        FortiClient NAC (Network Access Control) Deamon
       • stpd_name                     Spanning Tree Protokoll Deamon
       • wiredapd                      Wired AP 802.1x Port basierender Authentication Deamon
       • confsynchbd                   Deamon conf-sync für Heartbeat
       • confsyncd                     Deamon conf-sync 
       • poed                          Power over Ethernet Deamon
       • cbp                           CBP Deamon
       • nsm                           Routing FIB Update
       • imi                           Routing Abhängiger Deamon
       • bgpd                          BGP Deamon
       • ospfd                         OSPF Deamon
       • ospf6d                        OSPF Version 3 Deamon
       • pim6d                         PIM Multicast IPv6 Deamon
       • pimd                          PIM Multicast Deamon
       • pdmd                          PIM Dense Mode Deamon
       • ripd                          RIP Deamon
       • ripngd                        RIP IPv6 Deamon
       • netscan                       Netscan Deamon
       • dhcp6s                        DHCP Server IPv6 Deamon
       • dhcp6r                        DHCP Relay IPv6 Deamon
       • dhcp6c                        DHCP Client IPv6 Deamon
       • lted                          USB LTE Deamon
       • newcli                        Deamon für die Ausführung von CLI Kommandos (SSH, Telnet)
       • vpd                           VPN Policy Deamon (Ueberprüft welcher Traffic zu welcher Policy gehört)
       • rlogd                         Syslog Deamon

System

Wie kann ich unter FortiOS 5.4 für einen FortiGate Device eine komplette Uebersicht erhalten über den Systemstatus?

Für jeden FortiGate Device existiert ein Kommando das einen "TAC Repport" generiert dh. dieses einzelne Kommando führt verschiedenen Script's aus. Wenn das Kommando ausgeführt wird dauert es einige Minuten bis alle Scripts ausgeführt wurden. Die enthaltenen Informationen sind Vielschichtig und Detailliert und umfassen sämtliche Informationen des Systems inkl. Auslastung, FortiGuard Informationen, UMT Feature Informationen usw. Bevor das Kommando ausgeführt wird muss umbedingt darauf geachtet werden, dass der Session "output" zB über "putty" als "Lokales Log" angelegt wird. Um den Bericht auszulösen führe folgendes aus:

      1. Konfiguriere "putty" für logging dh. alle Informationen werden in ein Log aufgezeichnet (Category > Session > Logging > All session output)
      2. Erstelle eine Consolen Verbindung oder eine SSH Verbindung zur FortiGate
      3. Führe ein Login durch und gebe folgendes ein:
       # execute tac report

Nachfolgend ein Beispiel-output einer FG-60D (Test System):

       FortiOS 5.4
       Datei:Tac-report-54.txt

Es ist "Sinnvoll" diesen Report bei der Ticket Eröffnung seitens Fortinet beizulegen da sehr viele relevante System Informationen aus diesem Report durch den TAC Mitarbeiter ausgelesen werden können!

Wie kann ich den Systemstatus unter FortiOS 5.4 für einen FortiGate Device anzeigen lassen?

Mit dem folgendem Befehl kann in der CLI der Systemstatus angezeigt werden:

       # get system status
       Version: FortiGate-60D v5.4.0,build1011,151221 (GA)
       Virus-DB: 16.00560(2012-10-19 08:31)
       Extended DB: 1.00000(2012-10-17 15:46)
       IPS-DB: 6.00741(2015-12-01 02:30)
       IPS-ETDB: 0.00000(2001-01-01 00:00)
       Serial-Number: FGT60D4613048017
       IPS Malicious URL Database: 1.00001(2015-01-01 01:01) 
       Botnet DB: 1.00000(2012-05-28 22:51) 
       BIOS version: 04000024 
       System Part-Number: P14482-03 
       Log hard disk: Not available
       Hostname: FGT60-customer
       Operation Mode: NAT
       Current virtual domain: root
       Max number of virtual domains: 10
       Virtual domains status: 1 in NAT mode, 0 in TP mode 
       Virtual domain configuration: disable 
       FIPS-CC mode: disable 
       Current HA mode: standalone 
       Branch point: 1011 
       Release Version Information: GA 
       System time: Wed Dec 30 05:56:44 2015

Um spezifische Komponenten oder Informationen aus dem "output" anzeigen zu lassen, kann der "grep" Befehl verwendet werden:

       # get system status | grep [Suchbegriff zB Hostname]
       Hostname: FGT60D-customer

Weiterführende Informationen zum "grep" Befehl gibt es im folgenden Artikel:

            FortiGate-5.4:FAQ#Kann_ich_unter_FortiOS_5.4_Linux.2FUnix_basierenden_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

Wie kann ich die durchschnittliche Auslastung der System Resourcen unter FortiOS 5.4 für einen FortiGate Device anzeigen lassen?

Mit dem nachfolgendem Befehl kann der Systemstatus Angezeigt werden. Es werden die durchschnittlichen Werte der Auslastung angezeigt:

       # get system performance status
       CPU states: 0% user 0% system 0% nice 100% idle
       CPU0 states: 0% user 0% system 0% nice 100% idle 
       Memory states: 14% used 
       Average network usage: 0 kbps in 1 minute, 0 kbps in 10 minutes, 0 kbps in 30 minutes 
       Average sessions: 0 sessions in 1 minute, 0 sessions in 10 minutes, 0 sessions in 30 minutes 
       Average session setup rate: 0 sessions per second in last 1 minute, 0 sessions per second in last 10 minutes, 0 sessions per second in last 30 minutes 
       Virus caught: 0 total in 1 minute 
       IPS attacks blocked: 0 total in 1 minute
       Uptime: 7 days,  0 hours,  50 minutes

Es wird eine Übersicht über die Memory und CPU und Netzwerk Auslastung angezeigt. Die Positionen "session" zeigt der Durchschnitt der erstellten Sessions. Eine Durchschnittliche Übersicht über IPS Attacken und Antivirus aktionen wird ebenfalls angezeigt. Zusätzlich bietet dieser Befehl anhand "statistic" die einzelnen Packete aufzulisten in verschiedenen Kategorieren wie Browsing, DNS, E-Mail usw.:

       # get system performance firewall statistics 
       getting traffic statistics...
       Browsing: 5274 packets, 5427882 bytes
       DNS: 2794370 packets, 186719827 bytes
       E-Mail: 0 packets, 0 bytes
       FTP: 0 packets, 0 bytes
       Gaming: 0 packets, 0 bytes
       IM: 0 packets, 0 bytes
       Newsgroups: 0 packets, 0 bytes
       P2P: 0 packets, 0 bytes
       Streaming: 0 packets, 0 bytes
       TFTP: 0 packets, 0 bytes
       VoIP: 0 packets, 0 bytes
       Generic TCP: 469961 packets, 59577991 bytes
       Generic UDP: 1159442 packets, 277885944 bytes
       Generic ICMP: 0 packets, 0 bytes
       Generic IP: 953916 packets, 100714754 bytes

Diese "packets" werden wiederum in verschienen Grössen verarbeitet dh. MTU Size. Anhand der Option "packet-distribution" kann die Packet Grösse aufgelistet werden was wiederum Hinweise liefert ob sehr viele "kleine" Packete verarbeitet werden:

       # get system performance firewall packet-distribution 
       getting packet distribution statistics...
       0 bytes - 63 bytes: 693856 packets
       64 bytes - 127 bytes: 2545743 packets
       128 bytes - 255 bytes: 268296 packets
       256 bytes - 383 bytes: 39045 packets
       384 bytes - 511 bytes: 2530 packets
       512 bytes - 767 bytes: 20023 packets
       768 bytes - 1023 bytes: 6460 packets
       1024 bytes - 1279 bytes: 12164 packets
       1280 bytes - 1500 bytes: 12383 packets
        > 1500 bytes: 0 packets

Eine weitere Möglichkeit noch detailliertere Informationen aufzulisten betreffend Resourcen usw. ist der "TAC Report". Wie dieser zu erstellen ist siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_f.C3.BCr_einen_FortiGate_Device_eine_komplette_Uebersicht_erhalten_.C3.BCber_den_Systemstatus.3F

Was ist betreffend Memory im Zusammenhang mit 32/64bit auf einem FortiGate Device unter FortiOS 5.4 zu berücksichtigen?

Um die Benutzung des Memory auf einer FortiGate zu verstehen muss dessen Architektur verstanden werden. Nachfolgend die Abbildung der Architektur einer FortiGate in Kurzübersicht:

       Fortinet-1414.jpg

Das Kernstück resp. das Herzstück eines FortiGate Devices ist dessen Kernel. In diesem werden die wichtigsten sowie basis Entscheidungen getroffen für zB Routing, Offloading von Sessions zum NPU usw. Als Basis einer FortiGate Architektur steht die Hardware. Der Device Treiber verbindet den Kernel mit der Hardware. Alles was sich oberhalb des Kernels befindet ist der sogenannte "User space". Verschiedene Applikationen sowie Deamons benützen diesen Bereich. Wenn eine FortiGate Memory benötigt führt sie dies aus 5 veschiedenen Gründen durch:

       Kernel memory/slabs
       System I/O cache
       Buffers
       Shared memory
       Process memory

Alles Oberhalb des "User space" steht einem Administrator zur Verfügung um die Konfiguration durchzuführen dh. über Mgmt. Web Interface oder zB CLI. Im Memory Bereich muss Grundsätzlich zwischen 32bit sowie 64bit unterschieden werden:

       32bit mit mehr als 1 GB Memory:
       
       Fortinet-1415.jpg
       
       Bei einem FortiGate Modell basierend auf 32bit und mit mehr als 1 GB Memory, kann der Kernel nicht direkt
       auf das Memory zugreifen. Der einzige Bereich auf den der Kernel direkten Zugriff hat ist das sogenannte
       "low memory". Der Bereich der für das "paging" benutzt wird ist das "high memory". Durch den nachfolgenden
       Befehl wird folgendes ausgegeben:
       
       # diagnose hardware sysinfo memory
       Total low memory (LowTotal)
       Free low memory (LowFree)
       Total high memory (HighTotal)
       Free high memory (HighFree)
       Total system memory (MemTotal = LowTotal + HighTotal)
       Total free memory (MemFree = LowFree + HighFree)
       64bit oder weniger 1 GB Memory:
       
       Fortinet-1416.jpg
       
       Für FortiGate Modelle basierend auf 64bit oder für FortiGate Modell mit weniger als 1 GB Memory ist es
       dem Kernel möglich auf das Ganze Memory zu zugreifen und es muss daher kein "paging" durchgeführt werden.
       Um dies für ein Modell zu überprüfen kann folgender Befehl abgesetzt werden:
       
       # diagnose hardware sysinfo memory 
       total:    used:    free:  shared: buffers:  cached: shm:
       Mem:  1928380416 502669312 1425711104        0 68321280 176857088 167788544
       Swap:        0        0        0
       MemTotal:      1883184 kB
       MemFree:       1392296 kB
       MemShared:           0 kB
       Buffers:         66720 kB
       Cached:         172712 kB
       SwapCached:          0 kB
       Active:         123776 kB
       Inactive:       115784 kB
       HighTotal:           0 kB
       HighFree:            0 kB
       LowTotal:      1883184 kB
       LowFree:       1392296 kB
       SwapTotal:           0 kB
       SwapFree:            0 kB
       
       Für die Positionen "HighTotal" sowie "HighFree" zeigen diese Modell "0 kB". Somit wird für diese Modelle
       der gesamte Memory Bereich als "LowMemory" definiert!

Weitere Befehle stehen zur Verfügung um die Memory Benutzung detailliert aufzulisten. Dazu siehe folgenden Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_die_Memory_Benutzung_eines_FortiGate_Devices_anzeigen_lassen.3F

Wie kann ich unter FortiOS 5.4 die Memory Benutzung eines FortiGate Devices anzeigen lassen?

Wenn die Memory Benutzung eines FortiGate Devices durch nachfolgende Befehle aufgelistet wird müssen diese Werte korrekt intepretiert werden. Nachfolgender Artikel gibt Auskunft wie ein FortiGate Device das Memory benutzt:

       FortiGate-5.4:FAQ#Was_ist_betreffend_Memory_im_Zusammenhang_mit_32.2F64bit_auf_einem_FortiGate_Device_unter_FortiOS_5.4_zu_ber.C3.BCcksichtigen.3F

Um die "Memory" Benutzung anzeigen zu lassen kann folgender Befehl abgesetzt werden:

       # diagnose hardware sysinfo memory
       total:    used:    free:  shared: buffers:  cached: shm:
       Mem:  464683008 190701568 273981440        0 17981440 89571328 81862656
       Swap:        0        0        0
       MemTotal:       453792 kB
       MemFree:        267560 kB
       MemShared:           0 kB
       Buffers:         17560 kB
       Cached:          87472 kB
       SwapCached:          0 kB
       Active:          39528 kB
       Inactive:        65624 kB
       HighTotal:           0 kB
       HighFree:            0 kB
       LowTotal:       453792 kB
       LowFree:        267560 kB
       SwapTotal:           0 kB
       SwapFree:            0 kB
       
       Die Markierten stellen zeigen den "buffer" sowie "cache" der benötigt wird durch den "I/O Cache". Die gleichen Informationen
       werden mit dem folgenden Befehl angezeigt:
       
       # get hardware memory

Der nachfolgende Befehl zeigt das "shared" Memory:

       # diagnose hardware sysinfo shm
       SHM counter:          139
       SHM allocated:    3317760
       SHM total:      191135744
       conservemode:           0
       shm last entered:     n/a
       system last entered:  n/a
       SHM FS total:   198844416
       SHM FS free:    195190784
       SHM FS avail:   195190784
       SHM FS alloc:     3653632
       
       Das Shared Memory erlaubt Informationen über mehrere Prozesse zu teilen. Auf einer FortiGate laufen verschiedene Prozesse/Deamons. 
       Das FortiOS alloziert seperate Memory Blocks für jeden Prozess. Ein Prozess greift auf diese allozierten seperaten Memory Blocks zu. 
       Der Prozess kann jedoch nicht auf einen anderen seperaten Memory Block zugreifen der für einen anderen Prozess alloziert wurde. Somit 
       kann ein Prozess seine Informationen nicht mit einem anderen Prozess teilen. Für diesen Umstand kann das FortiOS dynamisch "shared" 
       Memory allozieren um den Prozessen den Austausch von Informationen zu ermöglichen. Dieses "shared" Memory kann somit durch mehrer 
       Prozesse geteilt werden und wird über das FortiOS gesteuert.

Der nachfolgende Befehl zeigt die Details des "low" Memory Bereichs:

       # diagnose hardware sysinfo slab
       slabinfo - version: 1.1
       kmem_cache            72    140    112    2    2    1 0
       tcp6_session           0      0    928    0    0    1 0
       ip6_session            0      0    864    0    0    1 0
       sctp_session           0      0    864    0    0    1 0
       tcp_session            7     18    864    1    2    1 1
       ip_session             6     60    800    2    6    1 4
       ip6_mrt_cache          0      0    352    0    0    1 0
       fib6_nodes            15    226     32    1    1    1 0
       ip6_dst_cache         49     70    224    2    2    1 0
       ndisc_cache            3     61    128    1    1    1 0
       ip_mrt_cache           0      0    320    0    0    1 0
       tcp_tw_bucket          0     49    160    0    1    1 1
       tcp_bind_bucket       47    226     32    1    1    1 0
       tcp_open_request       0     61    128    0    1    1 1
       inet_peer_cache        4    120     64    1    1    1 0
       ip_dst_cache          13     41    192    1    1    1 0
       ip_fib_hash           34    226     32    1    1    1 0
       arp_cache              5     61    128    1    1    1 0
       vf                     4      7   2208    1    1    2 0
       vf_entry              21    290     24    1    1    1 0
       if_event_cache         0    120     64    0    1    1 1
       blkdev_requests     2048   3078     96   26   38    1 12
       journal_head           5    156     48    1    1    1 0
       revoke_table           2    509     12    1    1    1 0
       revoke_record          0    226     32    0    1    1 1
       eventpoll pwq        347    406     36    2    2    1 0
       eventpoll epi        341    405     96    5    5    1 0
       dnotify_cache          0      0     20    0    0    1 0
       file_lock_cache        2     88     88    1    1    1 0
       fasync_cache           0      0     16    0    0    1 0
       uid_cache              0      0     32    0    0    1 0
       pkt_buf_head_cache    395    480    480   29   30    1 1
       sock                 402    432    928   51   54    1 3
       sigqueue               0     59    132    0    1    1 1
       kiobuf                 0      0     64    0    0    1 0
       cdev_cache           638    720     64    6    6    1 0
       bdev_cache             3    120     64    1    1    1 0
       mnt_cache             18    120     64    1    1    1 0
       inode_cache         5650   5688    448  315  316    1 1
       dentry_cache        5567   5673    128   92   93    1 1
       filp                3570   3599    128   59   59    1 0
       names_cache            0      4   4096    0    2    1 2
       buffer_head        25224  25272     96  312  312    1 0
       mm_struct             70    122    128    2    2    1 0
       vm_area_struct     12212  13320     64  108  111    1 3
       fs_cache              69    226     32    1    1    1 0
       files_cache           70     95    416    4    5    1 1
       signal_act            78     90   1312   14   15    1 1
       pte-cache           3307   3772   2048  836  943    1 107
       size-131072(DMA)       0      0 131072    0    0   16 0
       size-131072            5      5 131072    5    5   16 0
       size-65536(DMA)        0      0  65536    0    0    8 0
       size-65536             4      6  65536    4    6    8 2
       size-32768(DMA)        0      0  32768    0    0    4 0
       size-32768             2      3  32768    2    3    4 1
       size-16384(DMA)        0      0  16384    0    0    2 0
       size-16384            12     15  16384   12   15    2 3
       size-8192(DMA)         0      0   8192    0    0    1 0
       size-8192              7      8   8192    7    8    1 1
       size-4096(DMA)         0      0   4096    0    0    1 0
       size-4096            378    426   4096  192  213    1 21
       size-2048(DMA)         0      0   2048    0    0    1 0
       size-2048            227    320   2048   57   80    1 23
       size-1024(DMA)         0      0   1024    0    0    1 0
       size-1024            284    304   1024   38   38    1 0
       size-512(DMA)          0      0    512    0    0    1 0
       size-512             304    345    512   22   23    1 1
       size-256(DMA)          0      0    256    0    0    1 0
       size-256              43    186    256    2    6    1 4
       size-128(DMA)          0      0    128    0    0    1 0
       size-128            5071   5124    128   84   84    1 0
       size-64(DMA)           0      0     64    0    0    1 0
       size-64            14835  28200     64  129  235    1 106
       
       Dieser "low" Memory Bereich wird von einem FortiGate Device für verschiedenen Funktionen genützt wie für die allgemeine Aufgaben 
       sowie festen Memory Bereich. Beispiele sind zB:
       
       Slab             Size (Bytes)      Benützt durch
       tcp_session      768               TCP Session
       ip_session       640               None TCP Session
       ip_dst_cache     256               Route cache
       buffer_head      128               Read/write data from disk, flash
       inode_cache      512               Information about files and directories
       dentry_cache     128               Cache for file system directory entries
       apr_cache        128               Cache for ARP

Nachfolgendes Dokument wurde durch Fortinet Released um zu zeigen was/wie Analysiert werden kann betreffend Memory und wie dies zu intepretieren ist speziell wenn die Memory Auslastung hoch ist:

       Datei:Memory-Usage-Insights-In-FortiOS-5.pdf

Wie kann ich unter FortiOS 5.4 für die einzelnen Datenbanken wie IPS, Antivirus usw. die Versionen überprüfen?

Auf einer FortiGate existieren etliche Datenbanken für die verschiedenen Funktionen wie IPS, Antivirus, GeoIP, Certification List usw. Diese werden laufend durch das FortiOS 5.4 "up-to-date" gehalten. Dies wird durch die Konfiguratin automatischer Updates erreicht. Die aktuelle Konfiguration kann folgendermassen abgerufen werden:

       # get system auto-update status
       FDN availability:  unavailable at Tue Jan  5 18:13:39 2016
       
       Push update: disable
       Scheduled update: enable
               Update every:   6 hours at 0 minutes after the hour
       Virus definitions update: enable
       IPS definitions update: enable
       Push address override: disable
       Web proxy tunneling: disable

Ein Update der verschiedenen Datenbanken kann auch manuell ausgeführt werden mit folgenden Befehl:

       # execute update-now
       
       NOTE Zusätzlich können einzelne Funktionen wie Antivirus explizit manuell "up-to-date" gebracht werden:
            
            # execute [update-av | update-geo-ip | update-ips | update-list | update-netscan | update-src-vis | update-now]
            
            update-av                   Update AV engine/definitions.
            update-geo-ip               Update IP Geography DB.
            update-ips                  Update IPS engine/definitions.
            update-list                 Download update server list.
            update-netscan              Update netscan object.
            update-now                  Update now.
            update-src-vis              Update src-vis object.

Ein manuelles Update durch "execute update-now" kann durchaus einige Zeit in Anspruch nehmen und sollte nicht unterbrochen werden. Kommt es beim "Update" Vorgang speziell bei der Erstinitialisierung zu Problemen kann ein Troubleshooting durchgeführt werden. Weitere Informationen siehe nachfolgenden Artikel:

       Fortinet:FortiCare-FortiGuard#Die_Registrierung_FortiCare.2FFortiGuard_ist_auf_der_Fortigate_nicht_ersichtlich.2C_was_kann_ich_tun.3F

Nachdem die Datenbanken der verschiedenen Funktionen durch ein "automatisches" oder "manuelles" Update auf den neusten Stand gebracht wurden, können die verschiedenen detaillierten Informationen der Datenbanken usw. durch folgende Befehl abgerufen werden:

       # get system auto-update version
       AV Engine
       ---------
       Version: 5.00227
       Contract Expiry Date: n/a
       Last Updated using manual update on Tue Dec  8 10:57:00 2015
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Virus Definitions
       ---------
       Version: 16.00560
       Contract Expiry Date: n/a
       Last Updated using manual update on Fri Oct 19 08:31:00 2012
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Extended set
       ---------
       Version: 1.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Wed Oct 17 15:46:00 2012
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Mobile Malware Definitions
       ---------
       Version: 0.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan  1 00:00:00 2001
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Attack Definitions
       ---------
       Version: 6.00741
       Contract Expiry Date: n/a
       Last Updated using manual update on Tue Dec  1 02:30:00 2015
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Attack Extended Definitions
       ---------
       Version: 0.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan  1 00:00:00 2001
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       IPS Malicious URL Database
       ---------
       Version: 1.00001
       Contract Expiry Date: n/a
       Last Updated using manual update on Thu Jan  1 01:01:00 2015
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Flow-based Virus Definitions
       ---------
       Version: 1.00123
       Contract Expiry Date: n/a
       Last Updated using manual update on Tue Jul 21 14:19:00 2015
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Botnet Definitions
       ---------
       Version: 1.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon May 28 22:51:00 2012
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       IPS Attack Engine
       ---------
       Version: 3.00156
       Contract Expiry Date: n/a
       Last Updated using manual update on Thu Dec 10 13:40:00 2015
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Internet-service Database Apps
       ---------
       Version: 2.00662
       Contract Expiry Date: n/a
       Last Updated using manual update on Tue Nov 17 11:56:00 2015
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Internet-service Database Maps
       ---------
       Version: 0.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan  1 00:00:00 2001
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Botnet Domain Database
       ---------
       Version: 0.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan  1 00:00:00 2001
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       Vulnerability Compliance and Management
       ---------
       Version: 1.00297-L
       Contract Expiry Date: n/a
       Last Updated using manual update on Fri Dec  4 19:31:00 2015
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Modem List
       ---------
       Version: 0.000
       
       Device and OS Identification
       ---------
       Version: 1.00040
       Contract Expiry Date: n/a
       Last Updated using manual update on Tue Jan  5 17:26:00 2016
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed
       
       IP Geography DB
       ---------
       Version: 1.044
       Contract Expiry Date: n/a
       Last Update Date: Wed Dec  2 22:57:32 2015
       
       
       Certificate Bundle
       ---------
       Version: 1.00001
       Last Update Date: Wed Nov  4 16:07:00 2015
       
       
       FDS Address
       ---------
       
       
       
       URL White list
       ---------
       Version: 0.00000
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan  1 00:00:00 2001
       Last Update Attempt: Tue Jan  5 12:33:50 2016
       Result: Updates Installed

Was sind die Unterschiede zwischen den verschiedenen "Conserve Mode" unter FortiOS 5.4 und was bedeuten diese?

Unter FortiOS 5.4 kann das System in einen sogenannten "Conserve Mode" wechseln. Dies bedeutet: Der "Conserve Mode" sei es der "Regular" und/oder "Kernel" Conserve Mode ist ein Selbstschutz der FortiGate. Ist eine FortiGate kurz vor dem "Conserve Mode" ist diese "short of memory" dh. es steht für die weitere Verarbeitung/Betrieb kein Memory mehr zur Verfügung. Um dies zu verhindern geht der FortiGate Device kurz in den "Conserve Mode" um Memory freizugeben, um weiteren Schaden zu verhindern. Aus diesem Grund ist grundsätzlich der "Conserve Mode" vorübergehender Natur kann jedoch auch permanenter Natur sein, speziell dann wenn ein vorübergehender "Conserve Mode" durch den Administrator unbemerkt bleibt oder ignoriert wird. Ein FortiOS 5.4 kenn folgende "Conserve Mode":

       Regular Conserve Mode
       Kernel Conserve Mode
       Proxy Conserve Mode

Beim "Regular und/oder Kernel" Conserve Mode handelt es sich bei beiden um ein "short of memory" Problem. Der Unterschied liegt darin "wie" diese Situation Zustande kommt dh. welche Limiten überschritten werden:

       Regular Conserve Mode
       
       Der "Regular" Conserve Mode wird dann ausgelöst wenn zuwenig vom "Gesamten" Memory zur Verfügung steht! Nachfolgende
       Tabelle zeigt auf wann dies der Fall ist:
       
       Fortinet-1080.jpg
       
       Die Ursache wieso ein FortiGate Device in den "Regular" Conserve Mode geht kann Prozess abhängig sein dh. ein FortiOS benötigen zuviel
       Prozesse (eher selten) oder hoher Auslastung (shm "shared memory"). Ein "shared memory" - wie der Name selber beschreibt - wird benützt
       für vers. Prozesse (shared). Dieses "shared memory" wird unter "diagnose sys top" nicht aufgelistet da es sich bei den Memory Informationen 
       unter diesem Befehl nicht um das "shared memory" handelt sondern um das Physische Memory. Um die "shared memory" Informationen anzuzeigen
       benutze folgenden Befehl:
       
       # diagnose hardware sysinfo shm
       
       Das "shared memory"  steht vorallem im Zusammenhang mit proxifizierten Prozessen (Antivirus Proxy, SSL Proxy usw.). Dies bedeutet: diese
       proxifizierten Prozesse benötigen "buffer" dh. Platz um Ihre Prozess abzuwickeln und genau diese "buffer" sind im "shared memory"! Diese
       "buffer's" werden auch für andere Prozesse benötigt wie zB "Logging, Quarantine usw". Wenn ein FortiGate Device in den "Regular" Conserve 
       Mode wechselt so erscheint folgender Log Eintrag im "Event" Log: 
       
       conserve=on total=<totalmemMB> free=<freememMB> entermargin=<LF> exitmargin=<HF> msg="The system has entered conserve mode"
       
       Wenn der FortiGate Device wieder aus dem "Regular" Conserve Mode wechselt erscheint folgender Log Eintrag im "Event" Log:
       
       conserve=exit total=<totalmemMB> free=<freememMB> entermargin=<LF> exitmargin=<HF> msg="The system exited conserve mode"
       Kernel Conserve Mode
       
       Im Gegensatz zum "Regular Conserve" Mode wird der "Kernel Conserve" Mode dann ausgelöst wenn die "LowMemory" Limite des "Regular Conserve" 
       Mode ebenfalls überschritten resp. unterschritten wird (siehe Tabelle oben unter Abschnitt "Regular Conserve" Mode). Die "LowMemory" Limite
       ist das Memory das durch den "Kernel" direkt Adressiert wird. Aus diesem Grund - wenn dieser "LowMemory" Bereich überschritten wird - kann
       der Kernel das Memory das dieser direkt Adressiert nicht mehr addressieren und geht deshalb in den "Kernel Conserve Mode". Die "LowMemory"
       Limite hängt vom spezifischen FortiGate Modell ab. Mit nachfolgenden Befehl kann das "LowMemory" angezeigt werden:
       
       # diagnose hardware sysinfo slab
       
       Die Kernel Data Strukturen auch "kernel buffer" genannt werden für die verschiedensten Aufgaben benötigt dh. 
       
       - Speichern der Firewall Session Elemente 
       - Network Address Translation (NAT) und in dessen Zusammenhang stehende "buffer"
       - Routen sowie dessen Route Cache 
       - Forwarding Database 
       - ARP Cache 
       - usw.
       
       Alles diese wichtigen Funktionen nutzen den "LowMemory" Bereich. Ebenfalls wird dieser Bereich "sehr" intensiv genutzt durch das IPS System,
       Application Control usw. Auch die Auslastung der Firewall mit vielen "sessions" kann ein "Kernel Conserve" Mode auslösen denn zB je mehr 
       "sessions" desto mehr "route cache". Dies gilt auch für die UTM Features dh. je mehr IPS, Application Controll, DLP etc. desto mehr 
       Adressierung im "kernel buffer". Neuere FortiGate Modelle können den gesamten Memory Speicherplatz Adressieren da diese Modelle über 
       eine 64bit Architektur verfügen. Was die Unterschiede betreffend Memory im Zusammenhang mit 32/64bit Architektur sind siehe nachfolgender 
       Artikel:
       
       FortiGate-5.4:FAQ#Was_ist_betreffend_Memory_im_Zusammenhang_mit_32.2F64bit_auf_einem_FortiGate_Device_unter_FortiOS_5.4_zu_ber.C3.BCcksichtigen.3F
       
       Ein "Kernel Conserve" Mode wird unter folgenden Umständen ausgelöst:
       
       • Der "kernel conserve mode" wird ausgelöst wenn "low memory" (LowFree) unter 20% vom Total des "low memory" (LowTotal) liegt.
       • Der "kernel conserve mode" wird aufgehoben wenn "low memory" (LowFree) über 30% vom Total des "low memory" (LowTotal) liegt.
       
       Sobald der "Kernel Conserve Mode" eintritt und/oder aufgehoben wird so erscheint im Event Log folgendes: 
       
       "The system has entered system conserve mode"
       "The system exited system conserve mode"
       
       In der Kommandozeile kann der "Kernel Conserve" Mode ebenfalls eruiert werden mit folgenden Befehl:
               
       # diagnose hardware sysinfo shm
       SHM counter:          721
       SHM allocated:   17256448
       SHM total:     1489289216
       conservemode:           0
       shm last entered:     n/a
       system last entered:  n/a
       SHM FS total:  1523073024
       SHM FS free:   1504075776
       SHM FS avail:  1504075776
       SHM FS alloc:    18997248
       
       Die Relevante Position ist "conservemode:" dh. steht diese Positon auf "0" ist der "Kernel Conserve" Mode nicht aktiv. Steht die Position 
       auf "1" ist der "Kernel Conserve" Mode aktiv. Im Mgmt. Web Interface innerhalb des Dashboards und im Widget "Alert Message Console" 
       erscheint eine andere Meldung dh:
       
       "FortiGate has reached system connection limit for x seconds"
       Proxy Conserve Mode
       
       Zusätzlich zum "Kernel/Regular Conserve" Mode gibt es den "Proxy Conserve" Mode. Wie schon erwähnt wird ein "Kernel Conserve" Mode dann 
       ausgelöst wenn nicht genügen "LowMemory" zur Verfügung steht resp. die Limiten dafür (20%) unterschritten wird. Der "Proxy Conserve" 
       Mode tritt dann ein wenn im Gesamten nicht mehr genügend Memory zur Verfügung steht. Dabei gelten folgenden Limiten:
       
       MemTotal        Enter Proxy Conserve Mode        Exit Proxy Conserve Mode
       <= 128 MB       MemFree <=  5 MB                 MemFree > 10 MB
       <= 256 MB       MemFree <= 10 MB                 MemFree > 20 MB
       <  512 MB       MemFree <= 40 MB                 MemFree > 60 MB
       <=   1 GB       MemFree <= 20%                   MemFree > 30%
       >    1 GB       MemFree <= 12%                   MemFree > 18%
       
       Wenn der "Proxy Conserve" Mode eintritt werden in den verschiedenen Logs folgendes angezeigt:
            
       Event logs:
       conserve=on total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin> msg="The system has entered conserve mode"
       conserve=exit total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin> msg="The system exited conserve mode"
            
       Crashlog (Ersichtlich über das Kommando "diagnose debug crashlog read"):
       conserve=entered total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin>
       conserve=exited total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin>
       
       Das Verhalten des "Proxy Conserve" Mode kann über folgendes Kommando konfiguriert werden:
       
       # config system global
       # set av-failopen [idledrop | off | one-shot | pass]
       # end
       
       Die einzelnen Optionen für "av-failopen" haben folgende Bedeutung:
       
       idledrop           Verwirft alle "idle" Proxy Sessions
       off                Alle neue Session für die UTM Scanning aktiviert ist werden geblockt
       one-shot           Für alle neuen Sessions wird ein UTM Scanning durchgführt
       pass (default)     Alle neuen Sessions werden erlaubt "ohne" Inspection
       
       Für "av-failopen" ist "pass" der Standard Wert und für die meisten Umgebungen akzeptabel. In einem High Security Umgebung resp. um in 
       allen Fällen zu verhindern das eine Malware etc. den internen Bereich erricht sollte die Option auf "off" gesetzt werden. Desweiteren
       im Zusammenhang mit dem "Proxy Conserve" Mode ist die folgende Optione ebenfalls zu berücksichtigen sofern ein "Explizit Proxy" 
       eingesetzt wird:
       
       # config system global
       # set av-failopen-session [enable | disable]
       # end

Wenn man herausfinden möchte ob ein FortiGate Device kurz vor einem "Conserve Mode" steht, muss das Memory analysiert werden. Durch nachfolgenden Befehl können alle relevanten Daten des Memory's, die für einen "Conserve Mode" heranzuziehen sind wie MemTotal, MemFree, Buffers (slab), LowTotal ,LowFree aufgelistet werden:

       # diagnose hardware sysinfo memory 
               total:    used:    free:  shared: buffers:  cached: shm:
       Mem:  1932722176 600489984 1332232192        0 135536640 235864064 151691264
       Swap:        0        0        0
       MemTotal:      1887424 kB
       MemFree:       1301008 kB
       MemShared:           0 kB
       Buffers:        132360 kB
       Cached:         230336 kB
       SwapCached:          0 kB
       Active:         242688 kB
       Inactive:       120144 kB
       HighTotal:           0 kB
       HighFree:            0 kB
       LowTotal:      1887424 kB
       LowFree:       1301008 kB
       SwapTotal:           0 kB
       SwapFree:            0 kB
       

In diesem Beispiel zeigt der Device für "LowFree" 1301008. Dies wierum entspricht 68.93% von "LowTotal" 1887424 (1301008 X 100 : 1887424) und es besteht also keine Gefahr für einen "Kernel Conserve" Mode. Da der Device in diesem Beispiel über 2 GB Memory verfügt (1932722176) und gemäss Tabelle gilt in diesem Fall 160 MB für den "Regular Conserve" Mode. Der Befehl zeigt auch als "MemFree" 1301008 was wiederum 1.3 GB entspricht. Somit keine Gefahr für den Device für einen "Regular Conserve" Mode! Die Frage stellt sich "Was bedeuten die Positionen Cached = Active + Inactive?" Das ist die Information die ein FortiGate Device für seine eigenen Stabilität "cached" (i/o buffering). Der "Inactive" Teil des Memory wird - sofern das System diesen benötigt - wieder freigegeben. Der folgende Befehl zeigt dieses Verhältniss auf sprich die Memory Auslastung ist inkl. "cached". Also ist in dieser Memory Auslastung der "Inactive" Teil ebenfalls enthalten der durch das System - sofern benötigt - freigegeben wird:

       # diagnose system top
       Run Time:  3 days, 20 hours and 34 minutes
       0U, 0S, 100I; 1843T, 1270F, 144KF
                newcli      247      R       0.5     0.8
                  sshd      245      S       0.3     0.5
             ipsengine       69      S <     0.0     3.5
           proxyworker       56      S       0.0     1.2
               miglogd       42      S       0.0     1.2
               pyfcgid      227      S       0.0     1.2
               pyfcgid      230      S       0.0     1.1
               cmdbsvr       36      S       0.0     1.1
                httpsd      210      S       0.0     1.0
                httpsd      115      S       0.0     1.0
               sslvpnd       78      S       0.0     0.9
                httpsd       44      S       0.0     0.8
                httpsd      114      S       0.0     0.8
                newcli      246      S       0.0     0.7
                 fgfmd      102      S       0.0     0.7
                cw_acd      103      S       0.0     0.7
                   wad       83      S       0.0     0.7
             scanunitd      109      S <     0.0     0.6

Somit wird hier die Memory Auslastung in Prozenten des gesamten Memory aufgelistet inkl. "cached". Der Bereich des "shm" (Shared Memory) wird in dieser Auflistung nicht gezeigt. Im oben gezeigten Beispiel benützt zB die "ipsengine" 3.5% des gesamten Speichers. Eine weitere Möglichkeit für "system top" wäre folgender Befehl:

       # diagnose sys top-summary 
       CPU [||||||||||||||                          ]  35.5%
       Mem [|||||||||||                             ]  29.0%   539M/1839M
       Processes: 20 (running=6 sleeping=84)
       
         PID      RSS  ^CPU% MEM%   FDS     TIME+  NAME
       * 28433    18M   35.5  1.0    10  00:04.95  newcli [x2]
         36       20M    0.0  1.1    11  00:47.30  cmdbsvr
                   39       11M    0.0  0.6    87  00:01.33  zebos_launcher [x12]
                   51        9M    0.0  0.5    11  00:32.22  uploadd
                   52       22M    0.0  1.2    57  00:22.81  miglogd
                   53        9M    0.0  0.5     6  00:00.00  kmiglogd
                   54       25M    0.0  1.4    19  03:03.25  httpsd [x4]
                   57       23M    0.0  1.3   814  00:04.45  proxyd [x6]
                   58       10M    0.0  0.6     8  00:00.28  wad_diskd
                   59       12M    0.0  0.7    16  00:01.28  scanunitd [x3]
                   61       57M    0.0  3.1    18  00:08.57  ipsmonitor [x2]
                   9233     14M    0.0  0.8    26  00:00.89  iked
                   65        9M    0.0  0.5     8  00:00.60  merged_daemons
                   66        9M    0.0  0.5     8  00:00.20  fnbamd
                   67        9M    0.0  0.5     9  00:00.12  fclicense
                   71       10M    0.0  0.6    18  00:00.31  forticron
                   72        9M    0.0  0.5    11  00:00.12  forticldd
                   73       11M    0.0  0.6    18  00:00.18  urlfilter
                   74       12M    0.0  0.7    35  00:04.31  authd
                   75       10M    0.0  0.6    14  00:00.47  fcnacd

Zum diesem Befehl stehen einige Optionen zur Verfügung anhand derer die Liste sortiert werden kann:

       # diagnose sys top-summary -h
       Usage: top.py [options]
              
       Options:
            -n LINES, --num=LINES
                                  Number of top processes to show (20 by default)
            -i INTERVAL, --interval=INTERVAL
                                  Update interval, in seconds (1 by default)
            -s SORT, --sort=SORT  Sort mode: [cpu_percent (default)|mem|fds|pid]
            -d, --dump            Dump stats to the files
            -h, --help            show this help message and exit

Nachfolgend ein Beispiel anhand "-s m" um die Prozess nach Memory Benützung zu sortieren sowie alle 60 Sekunden anhand "-i 60" ein Refresh durchzuführen. Die Option "-n 10" Listet die Top 10 Prozesse auf:

        # diagnose sys top-summary '-s mem -i 60 -n 10'

Die Frage: "Was kann ich gegen einen drohenden "Conserve Mode" tun?" ist nicht generell zu beantworten dh. je nach Situation ist ist der Ansatz unterschiedlich. Generell ist der Fokus auf das "Memory" zu legen dh. Konfiguration durchzuführen die "Resourcen" schonender sind um möglichts wenig "Memory Resourcen" zu benützen. Nachfolgend einige Hinweise und Ansätze:

        • Reduziere die Anzahl Firewall Sessions (Session Tuning).
        • Reduziere die Grösse der Files betreffend Antivirus Scanning.
        • Deaktiviere alle nicht nötigen Features wie zB Logging, Archiving, DLP, IPS.
        • Entferne das "content summary" (Speziell wenn kein FortiAnalyzer benützt wird).
        • Reduziere das Caching für Explizit Proxy, FortiGuard Antispam sowie Webfiltering.

Policy Rule

Gibt es für eine Firewall Policy Rule für FortiOS 5.4 betreffend benutzen Objekten eine Limite (Policy is too big for system)?

Ja diese Limite existiert und zwar bei allen FortiOS Versionen. Dies bedeutet: wenn eine Firewall Policy Rule erstellt wird und in dieser Firewall Policy Rule wird zB eine Gruppe benutzt für Objekte und in dieser Gruppe exisiteren eine Vielzahl von Objekten kann es zu Fehlermeldungen kommen wie zB:

       "Policy is too big for system"

Dieser Umstand tritt auf wenn zB ein Upgrade durchgeführt wird und nachträglich eine neue Firewall Policy Rule erstellt werden möchte. Die Limite für eine Firewall Policy Rule betreffend enthaltenen Objekte ist die Folgende:

       Für FortiOS 5.4.0 oder höher 9000+ Objekte

Der Grund für diese Limite ist realtiv einfach. Eine Firewall Policy Rule wird in den Kernel eines FortiOS geschrieben. In diesem Kernel existieren "memory limits" und diese verhindern das mehr Memory alloziert wird als gesetzt. Wenn dieser Umstand eintritt dh. zB für die Limite von 8000 Objekten (FortiOS 5.2.4 und tiefer) muss die Firewall Policy aufgeteilt werden in zwei Firewall Policy Rules.

Unter FortiOS 5.4 für eine "Firewall Policy Rule" existiert die Position "Name" um was handelt es sich dabei?

Wenn man unter FortiOS 5.4 eine neue Firewall Policy Rule" erstellt so fällt einem auf das im oberen Bereich eine Position existiert "Name". Wenn man für die zu erstellende "Firewall Policy Rule" per Standard keinen "Name" vergiebt so kann die "Firewall Policy Rule" nicht nicht entsprechend abgespeichert werden da per Standard die Vergabe des "Name" erzwungen wird. Diese Position indiziert einen "PCI Compliance" und wird für "Audits" benützt:

       Fortinet-1615.jpg

Die Bezeichnung des "Name" kann nicht benützt werden um die Logs auf der FortiGate zu Filtern da keine entsprechende Position zur Verfügung steht um dies auszuführen. Ebenso ist diese Position in den "Log Refrence" nicht enthalten. Somit steht diese Position rein im Zusammenhang mit der "PCI Compliance" resp. "Audits". Dies wird dann ersichtlich wenn ein "PCI Compliance" Report ausgeführt wird:

       Fortinet-1617.jpg
       
       NOTE Weitere Informationen dazu wie ein "PCI Compliance" Report ausgeführt wird und um was es sich dabei
            handelt siehe nachfolgenden Artikel:
            
            FortiGate-5.4:FAQ#Was_ist_.22PCI_Compliance.22_und_wie_kann_ich_unter_FortiOS_5.4_einen_.22PCI_Compliance.22_Report_ausf.C3.BChren.3F

Bei einem Upgrade auf FortiOS 5.4 werden zwar die bestehenden "Firewall Policy Rules" übernommen dh. ohne "Name" und auch wenn bestehende "Firewall Policy Rules" modifiziert werden wird die Position "Name" nicht erzwungen, jedoch bei jeder neu erstellten "Firewall Policy Rule" wird "Name" erzwungen. Möchte man diese Funktion deaktiveren dh. damit die Vergabe von "Name" nicht mehr erzwungen wird so kann dieses Feature über folgende Position aktiviert werden:

       System > Feature Select > Allow unnamed Policies

Ebenso kann über CLI dies konfiguriert werden:

       # config system settings
       # set gui-allow-unnamed-policy [enable | disable]  
       # end

Wenn ich für eine "Firewall Policy Rule" unter FortiOS 5.4 verschiedenen "Inspection Mode" benütze (flow/proxy) was gilt?

Neu unter FortiOS 5.4 wird der "Inspection Mode" Global konfiguriert dh. weitere Informationen siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Was_hat_sich_unter_FortiOS_5.4_betreffend_.22Security_Profiles.22_und_.22Inspection_Mode.22_grunds.C3.A4tzlich_ge.C3.A4ndert.3F

Wie dieser Artikel aufzeigt ist es jedoch möglich für "Security Profiles" individuelle Konfigurationen für den "Inspection Mode" durchzuführen dh. "proxy mode" und/oder "flow mode". Wenn dies geschieht kann der Traffic jedoch nicht individuell nach Konfiguration im "proxy mode" und/oder "flow mode" abgearbeitet werden dh. es gilt dann:

       Wenn in einer Firwall Policy Rule "proxy mode" sowie "flow mode" Security Profiles gemischt werden, wird für alle UTM
       Funktionen die beides anbieten dh. "proxy mode" und/oder "flow mode" automatisch "proxy mode" benutzt obwohl ein 
       Security Profile "flow mode" konfiguriert wurde!

Session

Wie kann ich unter FortiOS 5.4 die aktiven "Sessions" auf meinem System anzeigen/auflisten lassen?

Wenn auf einem FortiOS alle aktiven "Sessions" die existieren in der Anzahl aufgelistet werden sollen kann nachfolgender Befehl benutzt werden:

       # get system session status
       The total number of sessions for the current VDOM: 14

Möchte man nun die einzelnen "Sessions" auflisten ohne deren Details kann nachfolgender Befehl benutzt werden:

       # get system session list
       PROTO   EXPIRE SOURCE                  SOURCE-NAT       DESTINATION            DESTINATION-NAT 
       udp     63     192.168.5.2:56751       -                192.168.1.1:53         -               
       udp     179    193.193.135.66:26730    -                193.193.135.65:53      -               
       udp     73     193.193.135.66:26967    -                193.193.135.65:53      -               
       tcp     5      192.168.1.1:3418        -                192.168.1.10:514       -               
       udp     175    193.193.135.70:5246     -                193.193.135.66:5246    -               
       udp     179    193.193.135.66:1024     -                193.193.135.65:514     -               
       udp     175    193.193.135.70:39322    -                193.193.135.66:5247    -               
       udp     179    0.0.0.0:68              -                255.255.255.255:67     -               
       udp     160    192.168.3.3:46417       -                192.168.3.1:5247       -               
       tcp     3599   192.168.5.2:49170       -                192.168.2.1:22         -               
       udp     175    192.168.3.3:5246        -                192.168.3.1:5246       -   
       NOTE Nachfolgend die Beschreibung der einzelnen Spalten:
              
            PROTO               Transportprotokoll der Session (ISO-Model Schicht 4)
            EXPIRE              Zeit bevor die Session terminiert wird
            SOURCE              Source IP Adresse und Source Portnummer
            SOURCE-NAT          Source NAT IP Adresse ein '-' steht für kein NAT.
            DESTINATION         Destination IP Adresse und Destinations Portnummer
            DESTINATION-NAT     Destination NAT IP Adresse ein '-' steht für kein NAT

Wenn auf einem "produktiven System alle aktiven "Sessions" aufgelistet werden kann diese Liste enorm lang sein. Um die Liste der "Sessions" zu filtern kann "grep" benutzt werden. Nachfolgend ein Beispiel

       # get system session list | grep [Such Pattern zB 192.168.3.1]
       udp     160    192.168.3.3:46417       -                192.168.3.1:5247       -               
       udp     175    192.168.3.3:5246        -                192.168.3.1:5246       -
       NOTE Wie der filter "grep" benutzt wird und welche Optionen dieser Befehl beinhaltet zeigt nachfolgender Artikel:
            
            FortiGate-5.4:FAQ#Kann_ich_unter_FortiOS_5.4_Linux.2FUnix_basierenden_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

Zu den aufgelisteten "Sessions" sowie zur "Session Table" können detailliert Informationen angezeigt und aufgelistet werden. Nachfolgend eine Uebersicht über die zur Verfügung stehenden Kommandos sowie deren Anwendung:

       # get system session-info expectation
       # get system session-info full-stat
       # get system session-info list
       # get system session-info statistics
       # get system session-info ttl
       
       Diese Kommandos zeigen folgende Informationen:
       
       NOTE Das Ausführen dieser Befehle kann auf der Console unmengenen von Daten auslösen. Speziell für Devices mit
            hoher Auslastung ist dies zu berücksichtigen.
       
            expectation         Listet/zeigt die zu erwartenden Sessions auf!
       
            full-stat           Listet detaillierte Informationen auf betreffend der Session Table sowie deren zu erwartenden Session, Errors, Statistic usw.
       
            statistics          Listet die gleichen Informationen auf wie "full-stat" jedoch ohne "session table" sowie "expected session"
       
            list                Listet detaillierte Informationen über jede Session auf wie Protokoll Nummer, Shaping Informationen, Policy usw.
       
            ttl                 Listet die Informationen auf betreffend der momentanen Konfiguration betreffend "config system session-ttl" sowie die globalen
                                Einstellungen sowie die spezifizierten Protokoll Konfigurationen sofern diese existieren.

Welche Informationen werden für eine einzelne Session unter FortiOS 5.4 in der "Session" Liste aufgeführt und was bedeuten diese?

Wenn der nachfolgender Befehl auf einer FortiGate ausgeführt wird, werden sämtliche "Sessions" mit deren detaillierten Informationen aufgelistet:

       # diagnose sys session list

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

       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

Dabei werden unzählig Positionen mit deren detaillierten Informationen aufgeführt. Diese haben folgende Bedeutung:

       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 Client Seiting eine "proxy_based" Inspection ist dh. wenn es sich um keine "proxy_based" 
                                       Inspection handelt wird eine "0" gesetzt. Die zweite Stelle dh. in unserem Beispiel "2" gibt Server Seitig den "state" an. Die gülten "states" sind:
                                       
                                       Fortinet-1418.jpg
                                       
                                       Wenn der "proto_state" als "00" ausgegeben wird so handelt es sich um UDP. Dies bedeutet: Obwohl UDP "stateless" ist wird durch die FortiGate zwei
                                       Sessions benutzt dh. "00" one-way und "01" both-ways!
                                       
                                       Fortinet-1419.jpg
       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=                  Gibt an ob ein Traffic Shaper benutzt wird. Wenn ein Traffic Shaper benutzt wird werden Informationen ausgegeben betreffend Priorität und Bandbreite.
       reply-shaper=                   Nachfolgend ein Beispiel:
       per_ip_shaper=                  
                                       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":
                                       
                                       log        Session is being logged
                                       local      Session is to/from local stack (orgin or terminated from FortiGate)
                                       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
                                       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 Aenderung 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
       hook=out dir=org                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" 
       hook=in dir=reply               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.
                                       Nachfolgend ein 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! Nachfolgend ein Beispiel:
                                       
                                       no_ofld_reason: redir-to-av redir-to-ips non-npu-intf
       user=                           Wenn eine Session erstellt wird für eine Verbindung im Zusammenhang mit Authentifizierung wird der "user=" sowie die Gruppenzugehörigkeit "group=" sowie
       group=                          das "authed" Flag gesetzt.
       authed

Wie kann ich unter FortiOS 5.4 herausfinden ob eine Session über den NP Prozessor beschleunigt wird (Offloading)?

Um für die einzelnen "Sessions" herauszufinden ob eine "Session" über den NP Prozessor beschleunigt wird, kann dies im Mgmt. Web Interface aktiviert werden. Dazu muss folgendes gewählt werden:

       FortiView > All Sessions > [Rechtsklick auf eine Spalte zB "Source"] > [Wähle im "Dropdownmenu" FortiASIC] > [Bestätige mit "Apply"]
       Fortinet-1634.jpg
        

Um auf der CLI die detaillierten Informationen einer einzelnen "Sessions" aufzulisten sowie mit deren Informationen herauszufinden ob "Sessions" beschleunigt werden benutze folgender Befehl:

       # diagnose sys session list

Unter FortiOS 5.4 wird für eine "Session" wenn diese nicht beschleunigt wird neu der Grund innerhalb "no_ofld" aufgelistet dh. in der "Session" erscheint folgendes:

       no_ofld_reason: redir-to-av redir-to-ips non-npu-intf
       no_ofld_reason: local.
       
       NOTE Die Information zB "redir-to-av" indiziert unter "no_ofld_reason" das die Beschleunigung nicht durchgeführt werden konnte
            da für den Traffic ein "redirect" (redir-*) durchgeführt wurde. Für dieses Beispiel zur "Antivirus Engine"!

Ebenfalls indiziert die nachfolgende Position keine Beschleunigung und deckt sich mit "no_ofld":

       npu_state=00000000

Wenn eine Session Accelerated wird oder die Möglichkeit dazu besteht wird folgendes ausgegeben:

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

Was die einzelnen Positionen in einer Session idizieren resp. bedeuten kann im folgenden Artikel nachgelesen werden:

       FortiGate-5.4:FAQ#Welche_Informationen_werden_f.C3.BCr_eine_einzelne_Session_unter_FortiOS_5.4_in_der_.22Session.22_Liste_aufgef.C3.BChrt_und_was_bedeuten_diese.3F

Wenn man jedoch auf einem Device arbeitet mit vielen "Sessions" sollte anhand eines gesetzten Filters für "Sessions" gearbeitet werden dh. zB alle "Sessions" für eine bestimmte Policy-ID, Source-IP usw. Dazu kann die Filter Funktion benutzt werden. Die zur Verfügung stehenden Filter sind:

       # diagnose sys session filter
       vd             Index of virtual domain. -1 matches all.
       sintf          Source interface.
       dintf          Destination interface.
       src            Source IP address.
       nsrc           NAT'd source ip address
       dst            Destination IP address.
       proto          Protocol number.
       sport          Source port.
       nport          NAT'd source port
       dport          Destination port.
       policy         Policy ID.
       expire         expire
       duration       duration
       proto-state    Protocol state.
       clear          Clear session filter.
       negate         Inverse filter.

Zum Beispiel um einen bestimmten Port oder eine Destination Adresse zu Filtern müssen folgende Befehle verwendet werden:

       # diagnose sys session filter dport [Port]
       # diagnose sys session filter dst [Destination IPv4 Adresse]

Den Filter kann mit folgendem Befehl überprüft werden:

       # diagnose sys session filter
       session filter:
               vd: any
               proto: any
               proto-state: any
               source ip: any
               NAT'd source ip: any
               dest ip: [Destination IPv4 Adresse]
               source port: any
               NAT'd source port: any
               dest port: [Port]
               policy id: any
               expire: any
               duration: any

Der Filter ist jetzt gesetzt kann nun benutzt werden, um die betreffende "Session/s" aufzulisten:

       # diagnose sys session list

Den "Session" Filter kann mit folgendem Befehl gelöscht oder zurückgesetzt werden:

       # diagnose sys session filter clear
       
       NOTE Wird dieser Befehl "ohne" Filter ausgeführt so werden sämtliche Sessions gelöscht. Aus diesem Grund ist dieser Befehl
            mit Vorsicht auszuführen! Dies bedeutet ebenfalls: Wenn bestimmte "sessions" gelöscht werden sollen müssen diese 
            vorgängig mit einem entsprechenden Filter gesetzt werden. Dieser Filter kann nachträglich mit "diagnose sys session 
            filter" kontrolliert werden! Wenn nachträglich "diagnose sys session clear" ausgeführt wird, werden sämgliche "sessions" 
            gemäss dem gesetzten Filter für "diagnose sys session filter" gelöscht! 

Danach kann wiederum kontrolliert werden ob dies durchgeführt wurde:

       # diagnose sys session filter

Zusätzlich wenn der FortiGate Device über einen NP6 Prozessor verfügt über CLI überprüft werden welche Sessions dem NP6 Prozessor übergeben werden. Um die ID des NP6 zu verifizieren kann auf CLI unter FortiOS 5.4 folgendes benutzt werden:

       # get hardware npu np6 [dce | ipsec-stats | port-list | session-stats | sse-stats]

Die verschiedenen Optionen haben folgende Bedeutung:

       dce NP6        - non-zero subengine drop counters.
       ipsec-stats    - NP6 IPsec offloading statistics.
       port-list      - NP6 port list.
       session-stats  - NP6 session offloading statistics counters.
       sse-stats      - show hardware session statistics counters

Danach kann anhand der ID des NP6 eine entsprechende Abfrage durchgeführt werden zB:

       # diagnose npu np6 sse-stats [ID des NP6 zB "0"]
       Counters        SSE0            SSE1            Total
       --------------- --------------- --------------- ---------------
       active          35189           34937           70126
       insert-total    134611036       134624481       269235517
       insert-success  134611036       134624481       269235517
       delete-total    134575847       134589544       269165391
       delete-success  134575847       134589544       269165391
       purge-total     0               0               0
       purge-success   0               0               0
       search-total    3799074893      3871207649      3375315246
       search-hit      3580496168      3652493853      2938022725
       --------------- --------------- --------------- ---------------
       pht-size        8421376         8421376
       oft-size        8355840         8355840
       oftfree         8355763         8355758
       PBA             3001
       # diagnose npu np6 sse-stats [ID des NP6 zB "1"]
       Counters        SSE0            SSE1            Total
       --------------- --------------- --------------- ---------------
       active          37977           37861           75838
       insert-total    134842807       134847764       269690571
       insert-success  134842807       134847764       269690571
       delete-total    134804830       134809903       269614733
       delete-success  134804830       134809903       269614733
       purge-total     0               0               0
       purge-success   0               0               0
       search-total    3890365012      4023832938      3619230654
       search-hit      3670809994      3804413458      3180256156
       --------------- --------------- --------------- ---------------
       pht-size        8421376         8421376
       oft-size        8355840         8355840
       oftfree         8355749         8355755
       PBA             2983

Der "output" zeigt die Anzahl der "half" Sessions für einen definierten NP6. Eine typische Sessions basiert auf zwei "half" Sessions dh. "ingress" und "egress". Das hier gezeigte Beispiel zeigt 70126 "half" Sessions auf "NP6_0" sowie 75838 "half" Session auf "NP6_1"! Unter FortiOS 5.4 ist es möglich für eine Firewall Policy Rule ein "accounting" zu aktiveren resp. zu deaktivieren. Per Standard ist das "accounting" aktiviert (enable-by-log) sofern das "logging" für die entsprechende Firewall Policy Rule aktiviert wurde:

       # config system np6
       # edit np6_0
       # set per-session-accounting [disable | all-enable | enable-by-log]
       # end

Wenn das "logging" auf einer Firewall Policy Rule keinen Einfluss haben soll auf die "accounting" Funktion kann die Option "all-enable" gesetzt werden!

Was bedeutet "Offloading" Sessions" unter FortiOS 5.4 und wie funktioniert die Funktion "Offloading"?

FortiGate’s und auch andere Hersteller Typen benutzen für die Acceleration ein "offloading". Offloading bedeutet: Wenn ein neues Paket/Session gesendet wird so wird dieses als "diry" gekennzeichnet und somit über den CPU abgearbeitet. Wenn weitere Pakete folgen dh. mit gleicher Source, Destination usw. wird dies durch das "offloading" erkannt und das Paket/Session wird als "may dirty" gekennzeichnet. Dadurch wird für diese Pakete/Sessions ein "offloading" durchgeführt dh. es wird nicht mehr über den CPU abgearbeitet sondern durch das "offloading" (NP). Wenn sich an der Firewall Policy oder an der Konfiguration etwas ändert wird daS Paket abermals als "dirty" gekennzeichnet und somit wird eine Verarbeitung über CPU erzwungen (kein offloading) usw. Nachfolgende Grafik visualisiert diesen Paket Flow dirty / may dirty):

       Fortinet-1633.jpg

Der zuständige ASIC-Prozessor für dieses „Offloading“ ist der NP Prozessor zB. bei der FG-60D/90D ist ein "NP4Lite" Prozessor im Einsatz. Weitere Informationen darüber welcher Device über welchen Prozessor, Memory sowie NP verfügt siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Wo_finde_ich_eine_Uebersicht_welcher_FortiGate_Device_zB_.C3.BCber_wieviel_.22Memory.22_verf.C3.BCgt.2C_ein_.22SOC.22_und.2Foder_.22NP.22_verbaut_ist.3F

Ein "offloading" auf einer FortiGate muss nicht aktiviert werden sondern ist in jeder Firewall Policy Rule per Standard aktiviert durch folgende Konfiguration:

       # config firewall policy
       # edit [Policy ID Nummer]
       # set auto-asic-offload [enable / disable]
       # end
       
       NOTE Es muss berücksichtig werden, dass bei einem Troubleshooting nicht mehr alle Pakete/Sessions in einem 
            "Paket Sniffer" (diagnose sniffer Paket) angezeigt werden. Der Grund ist der folgende: Solange die
            Paket als "dirty" gekennzeichnet" werden werden diese über den CPU abgearbeitet und sind im "kernel"
            über den "Paket Sniffer" ersichtlich. Werden die Paket als "may dirty" gekennzeichnet dh. es wird ein
            "offloading" durchgeführt werden die Paket direkt zum NP gesendet dh. nicht mehr über den Kernel und
            somit sind die Paket für den "Paket Sniffer" nicht mehr ersichtlich.

Ebenso ist betreffend UTM Features folgendes zu berücksichtigen: Wenn für eine Firewall Policy Rule ein Security Profile konfiguriert wird dh. zB. "Antivirus" so wird kein "offloading" mehr durchgeführt, da das Paket/Session durch den "CP" (Content Prozessor) abgearbeitet werden muss und somit kann das Paket nicht den direkten Weg über den "NP" Prozessor wählen. Somit anstelle die Option "auto-asic-offload" für eine Firewall Policy Rule zu deaktiveren um "offload" zu deaktivieren, kann das gleiche erreicht werden in dem vorübergehend für die entsprechende Firewall Policy ein Security Profile aktiviert wird. Somit muss festgestellt werden: Ist für eine Firewall Policy Rule ein UTM Features aktiviert wird kein "offloading" mehr durchgeführt!

Wie beeinflusst unter FortiOS 5.4 die Option "check-protocol-header" eine Session sowie das "Offloading"?

Unter "system global" existiert eine Option "check-protocol-header". Diese Option ist zuständig wie die "protocol headers" innerhalb des "TCP Headers" untersucht werden. Die Option kann folgendermassen gesetzt werden:

       # config system global
       # set check-protocol-header [loose | strict]
       # end
       

Die zwei zur Verfügung stehenden Optionen haben folgende Bedeutung:

       • loose — Das FortiOS untersucht im "basic" Verfahren die "protocol headers" in dem das FortiOS überprüft ob der 
                 "TCP Header" Teil einer Session ist. Ebenso umfasst die "basic" Ueberprüfung die Länge des Layer 4 "TCP 
                 Headers", des "IP Headers", die "IP Version", die "IP Checksu"m sowie ob die "IP Optionen" korrekt 
                 gesetzt sind.
       • strict — Das FortiOS führt sämtliche "basic" Verfahren durch plus ob die ESP Packete über die korrekte Sequenz 
                  Nummer verfügen sowie SPI und Datalänge.

Per Standard ist die Option auf "loose" gesetzt und und somit beeinflusst "loose" das "Offloading" nicht. Wird die Option auf "strict" gesetzt wird das "Offloading" resp. die "Beschleunigung" (Acceleration) komplett deaktiviert da die zusätzlichen ESP Packete sowie SPI und Datenlänge untersucht werden. Wenn die Option "strict" gesetzt wird erscheint aus diesem Grund ein entsprechender Hinweis.

       # config system global
       # set check-protocol-header strict
       # end
       Warning: This setting may break compatibility with some vendors and applications, cause loss of existing
       sessions,reduce overall system performance, drop ESP traffic from VPN tunnels terminated at this unit,
       and disable all hardware acceleration!
       Do you want to continue? (y/n)

Somit sollte "strict" nur dann benutzt werden wenn die zusätzlichen Verfahren wie ESP Sequenz Nummer, SPI und Datenlänge aus Security technigschen Gründen verifiziert werden müssen.

Inspection Mode

Was hat sich unter FortiOS 5.4 betreffend "Security Profiles" und "Inspection Mode" grundsätzlich geändert?

Für FortiOS 5.2 und tiefer wurde der "Inspection Mode" dh. "proxy mode" und/oder "flow mode" über die "Security Profiles" gesteuert. Dies bedeutet: Es gab keine "Globale" Einstellung um den Mode eben "proxy" und/oder "flow" Mode zu bestimmen. Dies ist nun möglich dh. der "Inspecton Mode" kann nun "Global" konfiguriert werden und gilt als Konfiguration für sätmliche bestehenden und neu erstellten "Security Profiles". Die Konfiguration wird unter Mgmt. Web Interface über folgender Position konfiguriert:

       Fortinet-1620.jpg
       Fortinet-1621.jpg

Wie man sieht wird bei dieser Konfiguration ein Hinweis eingeblendet dh. "Warning" um darauf hinzuweisen, dass dieser Wechsel des "Inpsection Mode" zur Folge hat, dass entsprechende "Security Profiles" umgeschrieben werden. Dieser Hinweis dh. die "Warning" wird nur über Mgmt. Web Interface angzeigt dh. wird die Konfiguration mit nachfolgenden Kommando über CLI durchgeführt, wird kein entsprechender Hinweis gezeigt:

       # config system settings
       # set inspection-mode [proxy | flow]
       # end

Somit steht neu der "Inspection Mode" für jede VDOM im "vdom" Mode individuell zur Verfügung und kann seperat konfiguriert werden da die Option unter "config system settings" verfügbar ist dh. keine "Globale" Konfiguration sondern für jede VDOM konfigurierbar:

       # config vdom
       # edit [VDOM Name zB "root"]
       # config system settings
       # set inspection-mode [proxy | flow]
       # end

Wenn der "Inspection Mode" geändert wird dh. von "proxy mode" auf "flow mode" oder umgekehrt so führt das FortiOS 5.4 im Hintergrund folgende Modifikationen automatisch durch:

       -> Für jedes "Antivirus" Profile wird das Kommando "set inspection-mode [proxy | flow]" durchgeführt.
          
       -> Für jedes "WebFilter" Profile wird das Kommando "set inspection-mode [proxy | flow]" durchgeführt.
                    
       -> Wenn Global unter "config system settings" von "proxy mode" auf "flow mode" umkonfiguriert wird so 
          wird für jede "Firewall Policy Rule" für die ein "Security Profile" im "proxy mode" existiert dieses
          entfernt! 
          
          NOTE Wenn die "proxy mode" Security Profiles in den Firewall Policy Rules entfernt werden wie beschrieben so ist diese
               Konfiguration nicht mehr Rückgängig zu machen dh. es ist umbedingt empfohlen vorgängig ein Backup der Konfiguration
               durchzuführen. Ebenso empfiehlt es sich über Mgmt. Console den folgenden "debug" für die CLI zu aktivieren um so zu 
               sehen was genau bei der Aenderung durchgeführt wird:
               
               # diagnose debug cli -1 

Desweiteren ist ebenfalls zu berücksichtigen "was" mit den Security Profiles "Antivirus" sowie "WebFilter" durchgeführt wird, wenn der "Inspection Mode" geändert wird. Nachfolgende Tabelle zeigt au welche Unterschiede in den verschiedenen "Inspection Mode" für "Antivirus" sowie "WebFilter" Security Profiles existieren:

       Fortinet-1622.jpg
       Fortinet-1623.jpg
       Fortinet-1624.jpg

Nichts desto trotz und obwohl die Konfiguration unter "config system settings" konfiguriert wird, steht in den "Security Profiles" die "proxy mode" und "flow mode" unterstützten die Option per Standard bei Folgenden "Security Profiles" zur Verfügung um individuell eine Konfiguration durchzuführen:

       # config [webfilter | antivirus] profile
       # edit [Name des Profiles]
       # set inspection-mode [proxy | flow]
       # end

Somit fragt man sich, ob diese "Security Profiles" dh. "WebFilter" und/oder "Antivirus" die einzigen die individuell konfiguriert werden können da andere "Security Profiles" ebenfalls im "proxy mode" und/oder "flow mode" unterstüzen. Nachfolgende Tabelle zeigt auf welche "Security Profiles" welchen "Inspection Mode" unterstützen:

       Fortinet-1625.jpg

Somit kann auch ein "DLP" sowie ein "Spamfilter" auf "flow mode" konfiguriert werden jedoch sind diese per Standard im "proxy mode" und werden bei Aenderung des "Globalen" Mode unter "config system settings" nicht in "flow mode" unkonvertiert und verbleiben somit im "proxy mode":

       # config dlp sensor
       # edit [Name des Profiles]
       # set flow-based [enable | disable]
       # end
       # config spamfilter profile
       # edit [Name des Profiles]
       # set flow-based [enable | disable]
       # end

Wenn der "Inspection Mode" für verschiedenen "Security Profiles" individuell konfiguriert wird ist zu berücksichtigen, was durchgeführt wird in einer "Firewall Policy Rule" wenn beide "Inspection Mode" benützt werden dh. "proxy mode" und/oder "flow mode". Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Wenn_ich_f.C3.BCr_eine_.22Firewall_Policy_Rule.22_unter_FortiOS_5.4_verschiedenen_.22Inspection_Mode.22_ben.C3.BCtze_.28flow.2Fproxy.29_was_gilt.3F

IPSec / VPN

Wird unter FortiOS 5.4 für ein IPSec VPN auf einem FortiGate Device ein "Offloading" durchgeführt?

Unter FortiOS 5.4 wird automatisch ein "Offloading" für IPSec VPN durchgeführt. Dabei ist zu beachten: Ein "Offloading" wird für "Diffie-Hellman Key" Austausch sowie für den "ESP Traffic" durchgeführt. Neu kann dieses "Offloading" im IPSec VPN Bereich auch deaktiviert werden:

       # config system global
       # set ipsec-asic-offload [enable | disable]
       # end

Per Standard ist das "Offloading" aktiviert. Unter gewissen Umständen zB wenn ein "debug" durchgeführt wird ist es ratsam dieses "Offloading" vorübergehend zu daektivieren. Wenn ein IPSec VPN durch eine FortiGate konfiguriert wird dh. wenn dieses nicht terminiert wird auf der FortiGate dh. kein "unencrypt" durchgeführt wird, und sofern der FortiGate Device über einen NP6 Prozessor verfügt, wird ein "Offloading" für diesen Traffic des IPSec VPN's über den NP6 Prozessor durchgeführt.

SIP / VoIP

Was ist unter FortiOS 5.4 als "SIP ALG" zu verstehen und soll ich diese Funktion benutzen?

In den meisten Fällen sollte anstelle des "SIP Session Helpers" der "SIP ALG" (SIP Application Layer Gateway) benutzt werden. Der "SIP Session Helper" ist eine frühere Implementierung betreffend SIP Support (Standard bis FortiOS 5.0). Der "SIP ALG" (Standard ab FortiOS 5.2) unterstützt die gleichen Funktionen wie im "SIP Session Helper" jedoch zusätzlich wird das SIP Protokoll im "SIP ALG" geschützt vor Angriffen im SIP Bereich. Dies bedeutet zB Sessions werden limitiert, Syntax betreffend SIP sowie SDP Inhalte der Nachrichten werden überprüft usw. Zusätzlich wird über den "SIP ALG" ein detailiertes Logging sowie Reporting zur Verfügung gestellt. Nachfolgende Darstellung zeigt wie der "SIP ALG" om seinem Grundkonstrukt implementiert ist:

       Datei:Fortinet-715.jpg

Der SIP ALG unterstützt folgende Funktionen:

       • Alle Features implementiert im "Session Helper" sowie NAT, SIP und RTP Pinholes (Real Time Protocoll Pinholes)
       • Zusätzlich im Gegensatz zum Session Helper kann auf dem SIP ALG folgendes durchgeführt werden:
       • SIP TCP und UDP Support
       • SIP Message Order Ueberprüfung
       • Konfigurierbare Header Line Length Maximum 
       • Message Fragment Assembly (TCP) 
       • Wenn SIP Nachrichten Fragmentiert sind (vers. Packete) fügt der SIP ALG diese wieder zusammen und schickt diese als Ganzes weiter.
       • L4 Protocol Translation 
       • Message Flood Protection 
       • DoS Protection für "flooding INVITE, REGISTER" und andere Methoden
       • SIP message Type Filtering 
       • SIP Statistik und Logging 
       • SIP über IPv6
       • SIP über SSL/TLS
       • Deep SIP Message Syntax Checking (SIP Header Inspection oder SIP Fuzzing Protection
       • Hosted NAT Traversal 
       • SIP High Availability (HA). 
       • Geographical Redundancy (HA)
       • SIP Per Request Method Message Rate Limitation (Schützt SIP Server vor SIP Ueberlastung und DoS Attacken)
       • RTP Bypass (RTP Pinholing)
       • SIP NAT
       • IP Topology Hiding

Diese Aufstellung zeigt das hinter "SIP" (VoIP) mehr steckt als man glaubt und aus diesem Grund komplizierter als eine normale TCP/UDP-basierte Anwendung ist. Aufgrund der Komplexität der Signalisierung und der Protokolle bei "SIP" sowie der Inkonsistenzen die sich ergeben, wenn eine Firewall die Source-Adresse und Source-Port Daten mit NAT ändert, ist es schwierig für "SIP" eine Firewall ungehindert zu überwinden. "SIP" (VoIP) verwendet zwei verschiedene Protokolle: eines für die Signalisierung (zwischen dem Client und dem SIP/VoIP-Server) und eines für die Medien (zwischen den Clients). Die Port/IP-Adresspaare, die von den Medienprotokollen (RTP/RTCP) für jede Sitzung verwendet werden, werden von den Signalisierungsprotokollen dynamisch verhandelt. Firewalls müssen diese Informationen dynamisch mitverfolgen und warten und zum entsprechenden Zeitpunkt ausgewählte Ports für die Sitzungen auf sichere Weise öffnen und wieder schließen. Mehrere Medienports werden über die Signalisierungssitzung dynamisch verhandelt; die Verhandlungen über die Medienports sind in der Nutzlast der Signalisierungsprotokolle enthalten (IP-Adress- und Port-Informationen). Firewalls müssen für jedes Packet eine "Deep Inspection" durchführen, um diese Informationen zu erhalten und die Sitzungen dynamisch zu warten; dies erfordert zusätzliche Verarbeitungskapazitäten der Firewall. Die Source- und Destination-IP-Adressen sind in die SIP/VoIP-Signalisierungspackete eingebettet. Eine Firewall mit NAT-Unterstützung übersetzt IP-Adressen und -Ports auf IP-Header-Ebene für Packete. Vollsymmetrische NAT-Firewalls passen ihre NAT-Bindungen häufig neu an und können so zufällig die "Pinholes" schließen, über die eingehende Packete in das zu schützende Netzwerk gelangen. In diesem Fall kann der Dienstanbieter keine eingehenden Anrufe an den Kunden weiterleiten. Für die erfolgreiche Unterstützung von "SIP" muss eine NAT-Firewall eine "Deep Packet Inspection" durchführen und eingebettete IP-Adress- und Portinformationen bei der Weiterleitung über die Firewall transformieren können. Genau hier setzt der "SIP ALG" an und übernimmt diese Arbeit in verschiedenen Bereichen dh. Analysiert SIP und SDP Informationen, passt die Packete an (zB für NAT), schützt das Protokoll auf DoS sowie IPS Ebene usw. Bei einigen SIP Implementierungen die von Hersteller zu Hersteller verschieden sein können kann es zu Problemen kommen dh. zB weil über SIP Befehle gesendet werden die durch den "SIP ALG" nicht erkannt werden. Diese Befehle - da nicht erkannt - werden als "unknown" eingestuft sowie geblockt. Um zB dies zu verhindern kann diese spezifische Funktion zu Erkennung der Befehle resp SIP Funktion deaktiviert werden damit "unknown" nicht geblockt werden. Wie hier aufgezeigt ist "SIP" resp. "VoIP" eine komplexe Materie und es existieren etliche verschiedenen Provider mit eigenen Implementierungen usw. Security Technisch gesehen ist/wäre es Sinnvoll den "SIP ALG" anhand eines "VoIP Profiles" zu benutzen jedoch höchst Anspruchsvoll und Komplex. Aus diesem Grund empfehlen wir die Funktion des "SIP Session Helpers" auf einer FortiGate in normalen Umgebungen zu löschen/deaktivieren und die Funktion des "SIP ALG" nicht zu benutzen. Wie der "SIP Session Helper" zu löschen/deaktiveren ist und "SIP ALG" nicht benutzt wird siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Was_ist_unter_FortiOS_5.4_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F

Nichts desto trotz nachfolgend einige Hinweise auf was geachtet werden muss wenn zwar der "SIP Session Helper" gelöscht wird jedoch dennoch der "SIP ALG" anhand eines "VoIP Profiles" benutzt wird:

       Deaktiviere "unknown" SIP Befehle
       
       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set block-unknown disable
       # end
       Deaktiviere NAT Funktion innerhalb SIP
       
       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set nat-trace disable
       # end
       Aktiviere NAT Register Funktion innerhalb SIP
       
       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set register-contact-trace enable
       # end

Für eine Implementierung stellt Fortinet ein spezielles Dokument zur Verfügung das auf die SIP (VoIP) Problematik eingeht:

       Datei:Fortigate-sip-54.pdf

Was ist unter FortiOS 5.4 zu beachten wenn SIP (VoIP) über eine Fortigate implementiert wird?

Wenn SIP resp. VoIP über eine FortiGate unter FortiOS 5.4 implementiert/konfiguriert wird ist folgendes Wichtig: Auf einem FortiOS 5.4 gibt es zwei Funktionen die den SIP Traffic manipulieren. Diese sind:

       Session Helper
       ALG (Application Layer Gateway)

Diese zwei Funktionen werden gesteuert über eine globale Einstellung/Konfiguration und zwar:

       # config system settings
       # set default-voip-alg-mode [proxy-based | kernel-helper-based]
       # end
       
       NOTE Die Optionen "proxy-based" und/oder "kernel-helper-based" haben folgende Bedeutung:
           
            proxy-based          = Default VoIP ALG is "proxy-based" (SIP ALG läuft im User Space)
            kernel-helper-based  = Default VoIP ALG is "kernel-helper-based" (SIP Helper läuft im Kernel Mode)
            
            Somit wird durch folgende Konfiguration entweder der "ALG" oder der "Session Helper" als Standard
            aktiviert:
            
            proxy-based          = ALG
            kernel-helper-based  = Session Helper

Somit um den "ALG" als Standard zu deaktivieren und den "Seesion Helper" ebenfalls zu deaktivieren führe folgendes aus:

       Setze als Standard "Session Helper"
       
       # config system settings
       # set default-voip-alg-mode kernel-helper-based
       # end
       Lösche den Session Helper
       
       # show system session-helper
       
       Suche im "output" folgenden Eintrag dh. dieser identifiziert den "Integer" (12) für "sip":
       
       edit 12
       set name sip
       set port 5060
       set protocol 17
       next
       
       Lösche diesen "Integer" dh. in unserem Beispiel wäre dies:
       
       # config system session-helper
       # delete [Gebe den entsprechenden "Integer" an für unser Beispiel "12"]
       # end
       Deaktiviere Global "sip" Funktionen
       
       # config system settings
       # set sip-helper disable
       # set sip-nat-trace disable
       # end
       
       Führe einen Neustart aus
       
       Damit die Konfiguration aktiviert wird "muss" ein Neustart des Devices durchgeführt werden:
       
       # execute reboot

Danach wird SIP resp. VoIP nicht mehr durch die FortiGate speziell durch den "ALG" oder "Session Helper" verarbeitet da der "Session Helper" nicht mehr existiert und der "ALG" nur dann benützt wird, wenn auf einer Firewall Policy ein "VoIP Profile" konfiguriert wird. Aus diesem Grund sollte darauf geachtet werden, dass "kein" VoIP Profile auf einer entsprechenden Firewall Policy Rule konfiguriert wurde damit gewährleistet ist das die FortiGate betreffend SIP resp. VoIP den Traffic normal verarbeitet ohne in den SIP resp. VoIP Traffic einzugreifen. Wenn dennoch ein "VoIP Profile" benutzt wird sollte man sich der Problematik bewusst sein und folgenden Artikel berücksichtigen:

       FortiGate-5.4:FAQ#Was_ist_unter_FortiOS_5.4_als_.22SIP_ALG.22_zu_verstehen_und_soll_ich_diese_Funktion_benutzen.3F

Wie konfiguriere ich unter FortiOS 5.4 ein "VoIP Profile" und was muss ich dabei beachten?

Bevor ein "VoIP Profile" konfiguriert wird unter FortiOS 5.4 sollte man sich der Problematik bewusst sein dh. dazu sollte folgende zwei Artikel konsultiert werden:

       FortiGate-5.4:FAQ#Was_ist_unter_FortiOS_5.4_als_.22SIP_ALG.22_zu_verstehen_und_soll_ich_diese_Funktion_benutzen.3F
       FortiGate-5.4:FAQ#Was_ist_unter_FortiOS_5.4_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F

Wenn ein "VoIP Profile" konfiguriert werden möchte muss das entsprechende Feature resp. Menü auf dem Mgmt. Web Interface aktiviert werden. Wie dieses Feature aktiviert wird siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Unter_FortiOS_5.4_sehe_ich_.C3.BCber_das_Web_Gui_nicht_alle_Features_wie_kann_ich_diese_aktivieren.2Fdeaktivieren.3F

Wenn das Menü für "VoIP" aktiviert wurde ist dieses im Mgmt. Web Interface über folgende Position ersichtlich:

       Security Profiles > VoIP
       Fortinet-1635.jpg
       NOTE Die Positionen "REGISTER" und "INVITE" geben an wieviele Requests per Second und Policy über SIP akzeptiert werden wobei
            "REGISTER" der Wert der Verbindungen darstellt die benützt werden um Geräte am Controller anzumelden. Der Wert "INVITE" 
            stellt den effektiven Call dar. Dies bedeutet wenn der Wert 100 gesetzt wird so können sich über das entsprechende 
            konfigurierte "VoIP Profile" das für eine Firewall Policy konfiguriert wurde nicht mehr als zB 100 Devices am Controller 
            registrieren (REGISTER). Wenn "INVITE" auf 100 gesetzt wird können sich über die entsprechende Policy nicht mehr als 100 
            Anrufe (INVITE) durchgeführt werden. Die Position "SCCP" steht für das proprietäre CISCO Protokoll und wird nur im 
            Zusammenhang mit diesem benutzt.

Nachdem ein entsprechendes "VoIP Profile" konfiguriert wurde kann dieses in einer entsprechenden Firewall Policy eingebunden werden:

       Fortinet-1636.jpg
       
       NOTE Achte bei der Implementierung, dass für "outgoing" sowie "incoming" ein korrektes NAT (Network Address Translation) für den
            Traffic für "VoIP" Verbindung konfiguriert wird!

Auf der CLI stehen für das "VoIP Profile" unzählige Optionen zur Verfügung:

       # config voip profile
       # edit [Name des entsprechenden Profile]
       # set comment [Gebe einen entsprechenden Kommentar an]
       # config sip
       # set status [disable | enable]
       # set rtp [disable | enable]
       # set open-register-pinhole [disable | enable]
       # set open-contact-pinhole [disable | enable]
       # set strict-register [disable | enable]
       # set register-rate [Integer]
       # set invite-rate [Integer]
       # set max-dialogs [Integer]
       # set max-line-length [Integer]
       # set block-long-lines [disable | enable]
       # set block-unknown [disable | enable]
       # set call-keepalive [Integer]
       # set block-ack [disable | enable]
       # set block-bye [disable | enable]
       # set block-cancel [disable | enable]
       # set block-info [disable | enable]
       # set block-invite [disable | enable]
       # set block-message [disable | enable]
       # set block-notify [disable | enable]
       # set block-options [disable | enable]
       # set block-prack [disable | enable]
       # set block-publish [disable | enable]
       # set block-refer [disable | enable]
       # set block-register [disable | enable]
       # set block-subscribe [disable | enable]
       # set block-update [disable | enable]
       # set register-contact-trace [disable | enable]
       # set open-via-pinhole [disable | enable]
       # set open-record-route-pinhole [disable | enable]
       # set rfc2543-branch [disable | enable]
       # set log-violations [disable | enable]
       # set log-call-summary [disable | enable]
       # set nat-trace [disable | enable]
       # set subscribe-rate [Integer]
       # set message-rate [Integer]
       # set notify-rate [Integer]
       # set refer-rate [Integer]
       # set update-rate [Integer]
       # set options-rate [Integer]
       # set ack-rate [Integer]
       # set prack-rate [Integer]
       # set info-rate [Integer]
       # set publish-rate [Integer]
       # set bye-rate [Integer]
       # set cancel-rate [Integer]
       # set preserve-override [disable | enable]
       # set no-sdp-fixup [disable | enable]
       # set contact-fixup [disable | enable]
       # set max-idle-dialogs [Integer]
       # set block-geo-red-options [disable | enable]
       # set hosted-nat-traversal [disable | enable]
       # set hnt-restrict-source-ip [disable | enable]
       # set max-body-length [Integer]
       # set unknown-header [discard | pass | respond]
       # set malformed-request-line [discard | pass | respond]
       # set malformed-header-via [discard | pass | respond]
       # set malformed-header-from [discard | pass | respond]
       # set malformed-header-to [discard | pass | respond]
       # set malformed-header-call-id [discard | pass | respond]
       # set malformed-header-cseq [discard | pass | respond]
       # set malformed-header-rack [discard | pass | respond]
       # set malformed-header-rseq [discard | pass | respond]
       # set malformed-header-contact [discard | pass | respond]
       # set malformed-header-record-route [discard | pass | respond]
       # set malformed-header-route [discard | pass | respond]
       # set malformed-header-expires [discard | pass | respond]
       # set malformed-header-content-type [discard | pass | respond]
       # set malformed-header-content-length [discard | pass | respond]
       # set malformed-header-max-forwards [discard | pass | respond]
       # set malformed-header-allow [discard | pass | respond]
       # set malformed-header-p-asserted-identity [discard | pass | respond]
       # set malformed-header-sdp-v [discard | pass | respond]
       # set malformed-header-sdp-o [discard | pass | respond]
       # set malformed-header-sdp-s [discard | pass | respond]
       # set malformed-header-sdp-i [discard | pass | respond]
       # set malformed-header-sdp-c [discard | pass | respond]
       # set malformed-header-sdp-b [discard | pass | respond]
       # set malformed-header-sdp-z [discard | pass | respond]
       # set malformed-header-sdp-k [discard | pass | respond]
       # set malformed-header-sdp-a [discard | pass | respond]
       # set malformed-header-sdp-t [discard | pass | respond]
       # set malformed-header-sdp-r [discard | pass | respond]
       # set malformed-header-sdp-m [discard | pass | respond]
       # set provisional-invite-expiry-time [Integer]
       # set ips-rtp [disable | enable]
       # set ssl-mode [off | full]
       # set ssl-send-empty-frags [enable | disable]
       # set ssl-client-renegotiation [allow | deny | secure]
       # set ssl-algorithm [high | medium | low]
       # set ssl-pfs [require | deny | allow]
       # set ssl-min-version [ssl-3.0 | tls-1.0 | tls-1.1 | tls-1.2]
       # set ssl-max-version [ssl-3.0 | tls-1.0 | tls-1.1 | tls-1.2]
       # set ssl-client-certificate [string]
       # set ssl-server-certificate [string]
       # set ssl-server-certificate [string]
       # set ssl-auth-client [string]
       # set ssl-auth-server [string]
       # end
       # config sccp
       # set status [disable | enable]
       # set block-mcast [disable | enable]
       # set verify-header [disable | enable]
       # set log-call-summary [disable | enable]
       # set log-violations [disable | enable]
       # set max-calls [Integer]
       # end
       # end

Weitere Informationen welche Option welche Funktion besitzt siehe nachfolgendes Dokument:

       Datei:Fortigate-CLI-Ref-54.pdf

Ebenso gibt nachfolgendes Dokument speziell Auskunft über das "VoIP Profile" und dessen Funktionen als Referenz:

       [[Datei:Fortigate-sip-54.pdf]

Zeit / Datum

Wie kann ich auf einer FortiGate die Zeit sowie das Datum überprüfe sowie konfigurieren?

Die Zeit sowie das Datum lassen sich über Web Mgmt. Interface überprüfen sowie über CLI. Um die Zeit sowie das Datum über Web Mgmt. zu überprüfen sowie zu konfigurieren wähle folgendes:

       Dashboard > [Widget Systeminformation] > System Time > Change
       
       Fortinet-1612.jpg

Unter dieser Position kann die Zeit und das Datum manuell überprüft sowie konfiguriert werden! Um die Zeit und das Datum über die CLI zu überprüfen kann folgendes Kommando benutzt werden:

       # execute time
       current time is: 19:23:51
       last ntp sync:Wed Dec 23 18:55:08 2015
       # execute date
       current date is: 2015-12-23

Um die Zeit sowie das Datum über CLI zu konfigurieren kann folgendes durchgeführt werden:

       # execute time hh:mm:ss
       # execute date yyyy-mm-dd

Wie kann ich auf einer FortiGate unter FortiOS 5.4 die Zeitzone konfigurieren?

Die Definition der Zeitzone auf einer FortiGate kommt eine "wichtige" Funktion zu dh. FortiGuard benützt die Zeitzone für verschiedenen Konfigurationen. Die Zeitzone auf einer FortiGate ist per Standard auf "US&Canada" gesetzt. Somit benützt "FortiGuard" für dessen Service Server aus dieser Zeitzone "US&Canada". Das gleiche gilt für den WebFilter dh. wenn die Zeitzone nicht angepasst wird so benützt FortiGuard die WebFilter Datenbank der Zeitzone "US&Canada". Um die Zeitzone über Web Mgmt. Interface zu konfigurieren benütze folgende Position:

       Dashboard > [Widget Systeminformation] > System Time > Change

Um die Zeitzone über CLI zu konfigurieren kann folgendes durchgeführt werden:

       # config system global
       # set timezone ?
       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:30)Caracas
       14    (GMT-4:00)Atlantic Time(Canada)
       77    (GMT-4:00)Georgetown
       15    (GMT-4:00)La Paz
       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
       85    (GMT+2:00)Istanbul
       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
       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
       # set timezone 26
       # end

NTP

Wie kann ich auf einer FortiGate die NTP Zeitsynchronisierung aktiviren und konfigurieren?

Um die NTP Zeitsynchronisierung über Web Mgmt. Interface zu aktivieren und zu konfigurieren wähle folgendes:

       Dashboard > [Widget Systeminformation] > System Time > Change
       Fortinet-1612.jpg
       NOTE Per Standard ist für die NTP Zeitsynchronisierung "FortiGuard" aktiviert. Dies ist nicht zu empfehlen. Es sollte
            ein "öffentlichen" NTP Server konfiguriert werden. Wir empfehlen "ch.pool.ntp.org" da dieser ein "öffentlicher"
            NTP Server ist und über mehrer "Stratum" Server verfügt! Wenn dennoch "FortiGuard" benutzt wird muss berücksichtig
            werden, dass diese NTP Server für "FortiGuard" nicht kostenlos zur Verfügung stehen sondern ein Service ist der unter
            der "FortiCare" Lizensierung zur Verfügung steht. Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            Fortinet:FortiCare-FortiGuard#Wenn_ich_.22nur.22_DDNS_.28Dynamic_DNS.29.2C_GeoIP.2C_NTP_und_DNS_Service_von_FortiGuard_benutze_was_muss_ich_im_Minimum_lizensieren.3F

Wenn man die NTP Zeitsynchronisierung über CLI konfigurieren möcht kann folgendes durchgeführt werden:

       # config system ntp
       # set ntpsync enable
       # set type custom
       # set syncinterval 360
       # set server-mode enable
       # set interface "internal"
       # config ntpserver
       # edit 1
       # set server "ch.pool.ntp.org"
       # set ntpv3 disable
       # next
       # end
       # end

Bei diesem Beispiel wird zusätzlich zur NTP Synchronisierung über "ch.pool.ntp.org" die Option "server-mode" aktiviert sowie das "internal" Interface. Dies bedeutet: Auf dem "internal" Interface wird durch die Aktivierung von "server-mode" ein NTP Dienst aktiviert der in diesem Segment den Clients für eine NTP Zeitsynchronisierung zur Verfügung gestellt wird. Dabei ist zu beachten, dass diese Konfiguration keine zusätzliche "Firewall Policy Rule" benötigt da im Hintergrund eine automatische "Firewall Policy Rule" hinzugefügt wird durch das FortiOS (Local-In Policy). Diese erlaubt den Zugriff auf das definierte "Interface" aus diesem Segement. Diese "Local-In Policy" ist über Web Mgmt. Interface ersichtlich sofern das entsprechende Feature aktiviert ist:

       System > Feature Select > Additional Features > Local In Policy

Wenn dieses Feature aktiviert ist, sind die entsprechenden "Local In Policy" über folgende Position ersichtlich:

       Policy & Objects > Local In Policy

PCI Compliance

Was ist "PCI Compliance" und wie kann ich unter FortiOS 5.4 einen "PCI Compliance" Report ausführen?

Die "PCI Compliance" Definition ist eine Beschreibung von Standards denen ein Implementer zB ISP, Finanzinstitute usw. folgend sollte. Somit bietet die Definion "PCI Compliance" Richtlinien an denen sich diese Implementer halten muss um als "PCI Compliance" zu gelten. Dies ist speziell im Zahlungsverkehr dh. Kreditkarten ein "muss". Weitere Informationen siehe nachfolgenden Link:

       https://www.pcisecuritystandards.org/

Unter FortiOS 5.4 wurde dem Rechnung getragen dh. verschiedenen Positionen in verschiedenen Konfigurationen lehnen sich an diesen "PCI Compliance" an. Ein Beispiel wäre zB die Position "Name" innerhalb eine "Firewall Policy Rule". Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Unter_FortiOS_5.4_f.C3.BCr_eine_.22Firewall_Policy_Rule.22_existiert_die_Position_.22Name.22_um_was_handelt_es_sich_dabei.3F

Somit kann unter FortiOS 5.4 auch ein "PCI Compliance" Report ausgeführt werden dh. dieser überprüft die vorhandenen Konfiguration nach "PCI Compliance" Standard. Der Report resp. die Funktion ist jedoch per Standard deaktiviert und kann über Web Mgmt. Interface aktiviert und über einen "schedule" konfiguriert werden. Dabei wird "täglich" durch die Definition des "schedules" ein Report generiert in Form eines Logs. Um die entsprechende Konfiguration durchzuführen wähle im Web Mgmt. Interface folgende Position:

       System > Advanced > Compliance
       Fortinet-1618.jpg

Der "PCI Compliance" Report kann ebenfalls nach der Aktivierung direkt ausgeführt werden mit "run now". Wird dies durchgeführt ist der Report in Form von Log's unter folgender Position verfügbar:

       Log & Report > Compliance Events
       Fortinet-1619.jpg
       
       NOTE Diese Konfiguration über Web Mgmt. Interface ist VDOM basierend dh. wenn der VDOM Mode benutzt wird so muss unter
            "global" generell die Funktion zur Verfügung gestellt werden. Dabei wird der "schedule" Global konfiguriert und 
            in der VDOM entweder aktiviert oder deaktiviert!

Um auf der CLI die Konfiguration des "PCI Compliance" Report durchzuführen führe folgendes aus:

       # config system global
       # set compliance-check enable 
       # set compliance-check-time 09:00:00 
       # end
       # config system settings
       # set compliance-check enable
       # end

Dabei ist folgendes zu berücksichtigen: Bei kleineren Devices wie zB FG-60D kann nicht auf "disk" geloggt werden. Somit stehen für die Logs lokal nur "memory" zur Verfügung sofern nicht Remote zB auf einen FortiAnalyzer geloggt wird. Da für das "memory" Logging 10% des vorhandenen Memory genutzt wird sind diese "Compliance Events" nicht "persistent" sondern sind nach kurzer Zeit nicht mehr verfügbar. Ebenso ist folgendes zu berücksichtigen: Jede Meldung des Reports resp. jeder Eintrag unter "Compliance Events" muss analysiert werden um zu bestimmen ob der Eintag ein Problem für die "PCI Compliance" darstellt. Dies bedeutet auch: Der nachfolgende Eintrag weist daraufhin, dass "deep inspection" für SSH nicht aktiviert wurde. Diese Funktion jedoch steht auf einem FG-60D nicht zur Verfügung also ist dieser Log Eintrag ein Hinweis jedoch kann nicht durch eine entsprechende Konfiguration behoben werden:

       Fortinet-1616.jpg

Es ist somit anzufügen, dass diese Funktion Hinweise liefert im "PCI Compliance" Bereich und nicht im allgemeinen "security" technische Bereich!

Log

Wie sieht eine vollständige Log Konfiguration für FortiOS 5.4 aus und wie wird diese durchgeführt?

Wenn man mit einer Firewall arbeitet ist die absolute Grundvoraussetzung ein zur Verfügung stehendes Log um anhand dessen Analysen durchzuführen. Desweiteren sind die enthaltenen Informationen in den Logs dh. Funktionen die man für die Log Details aktivieren kann unumgänglich und absolut Fundamental. Um eine vollständige Log Konfiguration durchzuführen unter FortiOS 5.4 führe folgendes aus:

       Globale Log Konfiguration
       
       # config log setting
       # set resolve-ip [enable | disable]
       # set resolve-port [enable | disable]
       # set log-user-in-upper [enable | disable]
       # set fwpolicy-implicit-log [enable | disable]
       # set fwpolicy6-implicit-log [enable | disable]
       # set log-invalid-packet [enable | disable]
       # set local-in-allow [enable | disable]
       # set local-in-deny-unicast [enable | disable]
       # set local-in-deny-broadcast [enable | disable]
       # set local-out [enable | disable]
       # set daemon-log [enable | disable]
       # set neighbor-event [enable | disable]
       # set brief-traffic-format [enable | disable]
       # set user-anonymize [enable | disable]
       # set fortiview-weekly-data [enable | disable]
       # end
       
       NOTE Die Option "fortiview-weekly-data" steht nur Devices zur Verfügung die über ein "disk" Logging verfügen!
       
       Wir empfehlen für eine komplette Grundkonfiguration folgendes auszuführen:
       
       # config log setting
       # set resolve-ip enable 
       # set resolve-port enable 
       # set log-user-in-upper disable 
       # set fwpolicy-implicit-log enable 
       # set fwpolicy6-implicit-log disable 
       # set log-invalid-packet disable 
       # set local-in-allow enable 
       # set local-in-deny-unicast disable 
       # set local-in-deny-broadcast disable 
       # set local-out enable 
       # set daemon-log disable 
       # set neighbor-event disable 
       # set brief-traffic-format disable 
       # set user-anonymize disable 
       # end
       Globale Network Visibility Log Konfiguration
       
       Aktiviere/Deaktivieren Network Visibility
       
       # config system network-visibility 
       # set destination-visibility [enable | disable]
       # set source-location [enable | disable]
       # set destination-hostname-visibility [enable | disable]
       # set hostname-ttl [Definiere TTL Standard 86400]
       # set hostname-limit [Definiere Anzahl Hostname Limit Standard 5000]
       # set destination-location [enable | disable]
       # end
       
       Wir empfehlen für eine Konfiguration folgendes:
       
       # config system network-visibility 
       # set destination-visibility enable
       # set source-location enable
       # set destination-hostname-visibility enable
       # set hostname-ttl 86400
       # set hostname-limit 5000
       # set destination-location enable
       # end
       Globale Eventfilter Log Konfiguration
       
       # config log eventfilter
       # set event [enable | disable]
       # set system [enable | disable]
       # set vpn [enable | disable]
       # set user [enable | disable]
       # set router [enable | disable]
       # set wireless-activity [enable | disable]
       # set wan-opt [enable | disable]
       # set endpoint [enable | disable]
       # set ha [enable | disable]
       # set compliance-check [enable | disable]
       # end
       
       Wir empfehlen für eine Konfiguration folgendes:
       
       # config log eventfilter
       # set event enable
       # set system enable
       # set vpn enable
       # set user enable
       # set router enable
       # set wireless-activity enable
       # set wan-opt enable
       # set endpoint enable
       # set ha enable
       # set compliance-check enable
       # end
       Globale Gui Log Konfiguration
       
       # config log gui-display
       # set resolve-hosts [enable | disable]
       # set resolve-apps [enable | disable]
       # set fortiview-unscanned-apps [enable | disable]
       # set fortiview-local-traffic [enable | disable]
       # set location [memory | disk | fortianalyzer | fortiguard]
       # end
       
       NOTE In dieser Konfiguration muss darauf geachtet werden, dass für die Option "location" der Device definiert ist 
            der als "Log Device" definiert wird. Dies bedeutet: Wird als "Log Device" das Memory definiert so muss als
            "location" ebenfalls "memory" definiert werden. Durch "location" wir die API Schnittstelle definiert für den
            Zugriff auf die Datenbank die benützt wird für das Logging!
       
       Wir empfehlen für eine Konfiguration ausgehend davon, dass "memory" Logging benutzt wird folgendes:
       
       # config log gui-display
       # set resolve-hosts enable
       # set resolve-apps enable
       # set fortiview-unscanned-apps enable
       # set fortiview-local-traffic enable
       # set location memory
       # end
       Device Log Konfiguration
       
       NOTE Bei dieser Konfiguration ist zu berücksichtigen, dass nur grösseren Geräten die "disk" für das Logging zur Verfügung steht.
            Kleineren Devices steht nur das "memory" für das Logging zur Verfügung. Wird "memory" benutzt wird 10% des Memory herangezogen
            um ein "memory" Logging durchzuführen. Diese 10% Memory werden immer wieder überschrieben um ein kontinuierliches Logging zu
            gewährleisten. Somit steht im Zusammenhang mit "memory" Logging keine History zur Verfügung. Wir empfehlen ein "Logging" auf
            FortiAnalyzer um eine History zu gewährleisten und das Memory nicht zusätzlich mit einem "memory" Logging zu belasten! Um zu
            verfizieren ob ein Device über die Möglichkeit verfügt auf "disk" zu "Loggen" kann die "Software Matrix" herangezogen werden:
            
            Datei:FortiOS-Software-Platform-Matrix-54.pdf
               
       Device Log Konfiguration "Null-Device"
       
       Diese Konfiguration ist zuständig, das Devices die nicht für "Remote Logging" (FortiAnalyzer) konfiguriert wurde dh. zB für "memory"
       dennoch über "statistics" verfügen. Dies bedeutet: Diese Funktion steht nur im Zusammenhang mit Lokalen Logging!
        
       # config log null-device setting
       # set status [enable | disable]
       # end
       
       Zu diesem Device dh. "null-device" existiert ebenfalls ein entsprechender Filter:
       
       # config log null-device filter 
       # set severity [emergency | alert | critical | error | warning | notification | information | debug]
       # set forward-traffic [enable | disable]
       # set local-traffic [enable | disable] 
       # set multicast-traffic [enable | disable] 
       # set sniffer-traffic [enable | disable]
       # set anomaly [enable | disable] 
       # set voip [enable | disable] 
       # set filter [Benütze ? für weitere Informationen]
       # set filter-type [include | exclude]
       # end
              
       Wir empfehlen folgende Konfiguration unter der Voraussetzung, dass "memory" oder "disk" als "Device Konfiguration" benutzt wird:
       
       # config log null-device setting
       # set status enable
       # end
       
       # config log null-device filter 
       # set severity information 
       # set forward-traffic enable
       # set local-traffic enable 
       # set multicast-traffic enable 
       # set sniffer-traffic enable
       # set anomaly enable 
       # set voip enable
       # unset filter
       # set filter-type include
       
       Device Log Konfiguration "Memory"
       
       # config log memory setting 
       # set status [enable | disable]
       # set diskfull overwrite 
       # end 
       
       # config log memory filter
       # set severity [emergency | alert | critical | error | warning | notification | information | debug]
       # set fortward-traffic [enable | disable]
       # set local-traffic [enable | disable]
       # set multicast-traffic [enable | disable]
       # set sniffer-traffic [enable | disable]
       # set anomaly [enable | disable]
       # set voip [enable | disable]
       # set set filter [Benütze ? für weitere Informationen]
       # set set filter-type [include | exclude]
       # end
       
       Wir empfehlen folgende Konfiguration unter der Voraussetzung, dass "memory" als "Device Konfiguration" benutzt wird:
       
       # config log memory setting 
       # set status enable
       # set diskfull overwrite 
       # end 
       
       # config log memory filter
       # set severity information
       # set fortward-traffic enable
       # set local-traffic enable
       # set multicast-traffic enable
       # set sniffer-traffic enable
       # set anomaly enable
       # set voip enable
       # unset filter
       # set filter-type include
       # end
       
       Device Log Konfiguration "FortiAnalyzer"
       
       # config log fortianalyzer setting 
       # set status [enable | disable] 
       # set ips-archive [enable | disable] 
       # set server [FortiAnalyzer IP] 
       # set enc-algorithm [default | high | low | disable] 
       # set conn-timeout [Buffer in Sekunden; Standard 10 ]
       # set monitor-keepalive-period [OFTP keepalive für Buffer und Status in Sekunden; Standard 5 ]
       # set monitor-failure-retry-period [Retry für keepalive und Buffer in Sekunden; Standard 5 ]
       # set source-ip 0.0.0.0 
       # set upload-option realtime 
       # set upload-interval [Frequenz für Upload; Standard daily]
       # set upload-day [Tag in der Woche/Monat für den Upload; Standard "Kein Wert"]
       # set upload-time [Zeit Definition für Upload zB 00:00]
       # set reliable [enable | disable]
       # end
       
       NOTE Die Optionen "upload-interval, upload-day sowie upload-tim" stehen nur dann zur Verfügung wenn die "disk" für das 
            Logging konfiguriert werden kann!
       
       # config log fortianalyzer filter
       # set severity [emergency | alert | critical | error | warning | notification | information | debug]
       # set fortward-traffic [enable | disable]
       # set local-traffic [enable | disable]
       # set multicast-traffic [enable | disable]
       # set sniffer-traffic [enable | disable]
       # set anomaly [enable | disable]
       # set voip [enable | disable]
       # set dlp-archive [enable | disable]
       # set filter [Benütze ? für weitere Informationen]
       # set filter-type [include | exclude]
       # end
       
       Wir empfehlen folgende Konfiguration unter der Voraussetzung, dass "fortianalyzer" als "Device Konfiguration" benutzt wird:
       
       # config log fortianalyzer setting 
       # set status enable
       # set ips-archive enable 
       # set server [FortiAnalyzer IP] 
       # set enc-algorithm default 
       # set conn-timeout 10
       # set monitor-keepalive-period 5
       # set monitor-failure-retry-period 5
       # set upload-option realtime 
       # set reliable enable
       # end
       
       # config log fortianalyzer filter
       # set severity information
       # set fortward-traffic enable
       # set local-traffic enable
       # set multicast-traffic enable
       # set sniffer-traffic enable
       # set anomaly enable
       # set voip enable
       # set dlp-archive enable
       # unset filter
       # set filter-type include
       # end
       
       Device Log Konfiguration "Disk"
       
       NOTE Ein Logging auf "disk" ist in allen Bereichen nicht empfohlen wenn der FortiGate Device über eine "Flash Disk" verfügt.
            Ob ein Device über "disk" Logging verfügt, kann der "Software Matrix" entnommen werden:
            
            Datei:FortiOS-Software-Platform-Matrix-54.pdf
       
       # config log disk setting
       # set status [enable | disable]
       # set ips-archive [enable | disable]
       # set max-log-file-size [Maximum Log Grösse bevor ein "Rolling" durchgeführt wird in MB; Standard 20]
       # set max-policy-packet-capture-size [Max Grösse für Capturing in MB; Standard 10]
       # set roll-schedule [daily | weekly]
       # set roll-day [sunday | monday | tuesday | wednesday | thursday | friday | saturday]
       # set roll-time [Zeit Definition für "Rolling" zB 00:00]
       # set diskfull [overwrite | nolog]
       # set log-quota [Grösse der Log Quota in MB; Standard 0]
       # set dlp-archive-quota [Grösse der DLP Archiv Quota in MB; Standard 0]
       # set report-quota [Grösse der Report Quota in MB; Standard 0]
       # set maximum-log-age [Löschen von Logs die älter sind als X Tage; Standard 7]
       # set upload [enable | disable]
       # set upload-destination [ftp-server]
       # set uploadip [IPv4 Adresse des FTP Servers]
       # set uploadport [FTP Server Port; Standard 21]
       # set source-ip [IPv4 Source Adresse der Anfrage an FTP Server]
       # set uploaduser [FTP Server Username]
       # set uploadpass [FTP Server Passwort]
       # set uploaddir [FTP Server Upload Verzeichnis]
       # set uploadtype [traffic | event | virus | webfilter | IPS | spamfilter | dlp-archive | anomaly | voip | dlp | app-ctrl | waf | netscan | gtp]
       # set uploadzip [enable | disable]
       # set uploadsched [enable | disable]
       # set uploadtime [Zeit Definition für Upload auf FTP Server zB 00:00]
       # set upload-delete-files [enable | disable]
       # set upload-ssl-conn {default | high | low | disable}
       # set full-first-warning-threshold [Erste Log Device Full Warnung in % 1 - 98, Standard 75]
       # set full-second-warning-threshold [Zweite Log Device Full Warnung in % 2 - 99, Standard 90]
       # set full-final-warning-threshold [Finale Log Device Full Warnung in % 3 - 100, Standard 95]
       # end
       
       # config log disk filter
       # set severity [emergency | alert | critical | error | warning | notification | information | debug]
       # set fortward-traffic [enable | disable]
       # set local-traffic [enable | disable]
       # set multicast-traffic [enable | disable]
       # set sniffer-traffic [enable | disable]
       # set anomaly [enable | disable]
       # set voip [enable | disable]
       # set dlp-archive [enable | disable]
       # set filter [Benütze ? für weitere Informationen]
       # set filter-type [include | exclude]
       # end
       
       NOTE Wenn eine Konfiguration betreffend "Rolling" durchgeführt werden möchte siehe nachfolgender Artikel:
            
            FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_f.C3.BCr_einen_FortiGate_Device_eine_.22Log_Rotation.22_konfigurieren.3F
       
       Wir empfehlen folgende Konfiguration unter der Voraussetzung, dass "disk" als "Device Konfiguration" benutzt wird:
       
       # config log disk setting
       # set status enable
       # set ips-archive enable
       # set max-log-file-size 512
       # set max-policy-packet-capture-size 10
       # set diskfull overwrite
       # set log-quota 2048
       # set dlp-archive-quota 256
       # set maximum-log-age 7
       # set full-first-warning-threshold 75
       # set full-second-warning-threshold 90
       # set full-final-warning-threshold 95
       # end
       
       # config log disk filter
       # set severity information
       # set fortward-traffic enable
       # set local-traffic enable
       # set multicast-traffic enable
       # set sniffer-traffic enable
       # set anomaly enable
       # set voip enable
       # set dlp-archive enable
       # unset filter
       # set filter-type include
       # end
       
       Device Log Konfiguration "Syslog"
       
       Für eine Konfiguration betreffend "syslog" Server siehe nachfolgender Artikel:
       
       FortiGate-5.4:FAQ#Wie_wird_auf_einer_Fortigate_unter_FortiOS_5.4_eine_Log_Konfiguration_f.C3.BCr_einen_.22Syslog_Server.22_durchgef.C3.BChrt.3F
       
       Device Log Konfiguration "FortiGuard"
       
       # config log fortiguard setting 
       # set status [enable | disable]
       # set upload-option [store-and-upload | realtime]
       # set upload-interval [daily | weekly | monthly]
       # set upload-day [Definition des Tages der Woche um ein Rolling der Logs durchzuführen]
       # set upload-time [Definition der Zeit für den Uploade zB 00:00]
       # set enc-algorithm [default | high | low | disable]
       # set source-ip [Definition der Source IPv4 Adresse für die Anfrage]
       # end
       
       NOTE Wenn "fortiguard" Logging konfiguriert wird muss vorgängig ein ForitCloud Account ID konfiguriert werden. Dies kann unter
            folgender Position im Mgmt. Web Interface durchgeführt werden:
            
            Dashboard > License Information Widget > FortiCloud Account > Activate
               
       Weitere Informationen zu FortiGuard "Logging" sowie FortiCloud siehe nachfolgender Artikel:
      
       FortiCloud(FAMS):FAQ

Zusätzlich existieren in den verschiedenen "Security Profiles" Logs die aktiviert werden können. Nachfolgend eine Aufstellungen dieser Logs betreffend "Security Profiles":

      SSL Inspection Profile
      # config firewall ssl-ssh-profile
      # edit [Name des Profiles] 
      # set ssl-invalid-server-cert-log [enable | disable] 
      # end
      Proxy Option Profile
      # config firewall profile-protocol-options 
      # edit [Name des Profiles] 
      # set oversize-log [enable | disable] 
      # set switching-protocols-log [enable | disable] 
      # end 
      Antivirus Profile
      # config antivirus profile 
      # edit [Name des Profiles] 
      # config http
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config ftp
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config imap
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config pop3
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config smtp
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config mapi
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config nntp
      # set archive-log [encrypted | corrupted | multipart | nested | mailbomb | unhandled]
      # end
      # config nac-quar
      # set log [enable | disable]
      # end
      # set av-block-log [enable | disable] 
      # set av-virus-log [enable | disable] 
      # end
      WebFilter Profile
      # config webfilter profile 
      # edit [Name des Profiles] 
      # config web
      # set log-search [enable | disable] 
      # end
      # set log-all-url [enable | disable] 
      # set web-content-log [enable | disable] 
      # set web-filter-activex-log [enable | disable] 
      # set web-filter-command-block-log [enable | disable] 
      # set web-filter-cookie-log [enable | disable] 
      # set web-filter-applet-log [enable | disable] 
      # set web-filter-jscript-log [enable | disable] 
      # set web-filter-js-log [enable | disable] 
      # set web-filter-vbs-log [enable | disable] 
      # set web-filter-unknown-log [enable | disable]
      # set web-filter-referer-log [enable | disable] 
      # set web-filter-cookie-removal-log [enable | disable] 
      # set web-url-log [enable | disable] 
      # set web-invalid-domain-log [enable | disable] 
      # set web-ftgd-err-log [enable | disable] 
      # set web-ftgd-quota-usage [enable | disable]       
      # end
      Data Leak Prevention Profile
      # config dlp sensor 
      # edit [Name des Profiles]  
      # set dlp-log [enable | disable] 
      # set nac-quar-log [enable | disable] 
      # end 
      Application Control Profile
      # config application list 
      # edit [Name des Profiles] 
      # set other-application-log [enable | disable] 
      # set unknown-application-log [enable | disable] 
      # config entries
      # edit [Gebe einen entsprechenden Integer an zB "1"]
      # set log [enable | disable]
      # set log-packet [enable | disable]
      # end
      # end 
      Anti-Spam Profile
      # config spamfilter profile 
      # edit [Name des Profiles] 
      # set spam-log [enable | disable] 
      # config imap
      # set log enable
      # end
      # config pop3
      # set log enable
      # end
      # config smtp
      # set log enable
      # end
      # config mapi
      # set log enable
      # end
      # config msn-hotmail
      # set log enable
      # end
      # config yahoo-mail
      # set log enable
      # end
      # config gmail
      # set log enable
      # end
      # end
      DNS Filter Profile
      # config dnsfilter profile
      # edit [Name des Profiles] 
      # set log-all-url [enable | disable]
      # end
      Cloud Access Security Inspection Profile
      # config application casi profile
      # edit [Name des Profiles]
      # config entries
      # edit [Gebe einen entsprechenden Integer an zB "1"]
      # set log [enable | disable]
      # end
      Intrustion Protection Profile
      # config ips sensor
      # edit [Name des Profiles]
      # config entries
      # edit [Gebe einen entsprechenden Integer an zB "1"]
      # set log [enable | disable]
      # set log-packet [enable | disable]
      # set log-attack-content [enable | disable]
      # end
      VoIP Profile
      # config voip profile
      # edit [Name des Profiles]
      # config sip
      # set log-violations [enable | disable]
      # set log-call-summary [enable | disable]
      # end
      # config sccp
      # set log-violations [enable | disable]
      # set log-call-summary [enable | disable]
      # end
      # end
      Web Application Firewall
      # config waf profile
      # edit [Name des Profiles]
      # config constraint
      # config header-length
      # set log [enable | disable]
      # end
      # config content-lenght
      # set log [enable | disable]
      # end
      # config param-lenght
      # set log [enable | disable]
      # end
      # config line-length
      # set log [enable | disable]
      # end
      # config url-param-lenght
      # set log [enable | disable]
      # end
      # config version
      # set log [enable | disable]
      # end
      # config method
      # set log [enable | disable]
      # end
      # config hostname
      # set log [enable | disable]
      # end
      # config malformed
      # set log [enable | disable]
      # end
      # config max-cookie
      # set log [enable | disable]
      # end
      # config max-header-line
      # set log [enable | disable]
      # end
      # config max-url-param
      # set log [enable | disable]
      # end
      # config max-range-segment
      # set log [enable | disable]
      # end
      # end
      # config method
      # set log [enable | disable]
      # end
      # config address-list
      # set blocked-log [enable | disable]
      # end
      # config url-access
      # edit [Gebe einen entsprechenden Integer an zB "1"]
      # set log [enable | disable]
      # end
      # end
      FortiClient Profile
      # config endpoint-control profile
      # edit [Name des entsprechenden Profiles]
      # config forticlient-winmac-settings
      # set forticlient-log-upload [enable | disable]
      # end
      # end

Desweiteren stehen auf "Globaler" sowie "System" Ebene folgende Logs zur Verfügung:

      # config system global
      # set cli-audit-log [enable | disable]
      # set log-uuid [poliy-only | extended | disable]
      # end
      # config system settings
      # set vpn-stats-log [ipsec | pptp | l2tp | ssl]
      # end

Für die "DoS-Policy" kann für jede "anomaly" ein Log aktiviert resp. deaktiviert werden:

      # config firewall DoS-policy
      # edit [Gebe einen entsprechenden Integer an zB "1"]
      # config anomaly
      # edit [Name der "anomaly"]
      # set log [enable | disable]
      # end
      # end

Wie wird auf einer Fortigate unter FortiOS 5.4 eine Log Konfiguration für einen "Syslog Server" durchgeführt?

Das nachfolgend Beispiel zeigt wie auf einer FortiGate unter FortiOS 5.4 eine Log Konfiguration durchgeführt basierend auf einem "Syslog Server". Als "Syslog Server" wurde unter CentOS 5.x und/oder 6.x der integrierte "syslog" benutzt. Als ersten Schritt wird die FortiGate für den "Syslog Server" konfiguriert:

       FortiGate Konfiguration
       # config log syslogd setting
       # set status enable
       # set server [FQDN Syslog Server]
       # set reliable [Aktiviere TCP-514 Verbindung; Per Standard deaktiviert resp. UDP-514]
       # set port [Standard 514]
       # set csv [enable | disable]
       # set facility [Per Standard local0]
       # set source-ip [Source IP der FortiGate; Standard 0.0.0.0]
       # end
       
       # config log syslogd filter
       # set severity information
       # set fortward-traffic enable
       # set local-traffic enable
       # set multicast-traffic enable
       # set sniffer-traffic enable
       # set anomaly enable
       # set voip enable
       # unset filter
       # set filter-type include
       # end
       
       NOTE Achte bei der Konfiguraiton des "filter" darauf das die "severity" auf "information" gesetzt wird!
       Syslog Server Konfiguration CentOS 5.x / 6.x
       
       Als Erstes muss auf dem CentOS der "syslog" Server so konfiguriert werden, damit er von einem Remote Server "syslog" 
       Nachrichten überhaupt annimmt. Führe auf der Shell folgendes durch:
       
       # vi /etc/sysconfig/syslogd
       
       --------------- /etc/sysconfig/syslogd ---------------
       
       # Options to syslogd
       # -m 0 disables 'MARK' messages.
       # -r enables logging from remote machines
       # -x disables DNS lookups on messages recieved with -r
       # See syslogd(8) for more details
       SYSLOGD_OPTIONS="-m 0 -r"
       # Options to klogd
       # -2 prints all kernel oops messages twice; once for klogd to decode, and
       #    once for processing with 'ksymoops'
       # -x disables all klogd processing of oops messages entirely
       # See klogd(8) for more details
       KLOGD_OPTIONS="-x"
       #
       SYSLOG_UMASK=077
       # set this to a umask value to use for all log files as in umask(1).
       # By default, all permissions are removed for "group" and "other".
       
       --------------- /etc/sysconfig/syslogd ---------------
       
       NOTE Achte und aktiviere unter "SYSLOGD-OPTIONS" den Schalter "-r" denn dieser ist zuständig damit von "Remote" Syslog Nachrichten 
            entgegengenommen werden! Ist diese Option nicht gesetzt lehnt der "Syslog Server" auf dem CentOS die "syslog" Nachrichten von
            Remote ab!
       
       Nun legen wir ein neues Log File an und konfigurieren im "Syslog Server" welche Nachrichten entgegengenommen werden sollen. Zu diesem
       Zweck definieren wir die "facility" dh. "local0.*. Diese "facility" wurde ebenfalls auf der FortiGate als "local0" definiert. Durch die 
       Differenzierung über die "facility" können vers. Fortigate's diesem "Syslog Server" Nachrichten senden und somit die vers. Log's der
       FortiGate Device's unterschieden werden!
       
       # vi /etc/syslog.conf
       
       --------------- /etc/syslog.conf ---------------
       
       # Log all kernel messages to the console.
       # Logging much else clutters up the screen.
       kern.*                                                  /dev/console
       
       # Log anything (except mail) of level info or higher.
       # Don't log private authentication messages!
       local0.none;*.info;mail.none;authpriv.none;cron.none      /var/log/messages
       
       # The authpriv file has restricted access.
       authpriv.*                                              /var/log/secure
       
       # Log all the mail messages in one place.
       mail.*                                                  /var/log/maillog
       
       # Log cron stuff
       cron.*                                                  /var/log/cron
       
       # Everybody gets emergency messages
       *.emerg                                                 *
       
       # Save news errors of level crit and higher in a special file.
       uucp,news.crit                                          /var/log/spooler
       
       # Save boot messages also to boot.log
       local7.*                                                /var/log/boot.log
       
       # Save Fortigate log messages to fortigate.log
       local0.*                                                /var/log/fortigate.log
       
       #*.*                                                    @loghost
       
       --------------- /etc/syslog.conf ---------------
       
       NOTE Beachte bei der Konfiguration, dass die Leerschläge/Zwischenräume "gezwungenermassen" (Fileformat) Tabulatoren sein müssen! 
            Um das Format zu überprüfen kann folgender Befehl abgesetzt werden:
            
            # m4 -D LOGHOST /etc/syslog.conf
       
       Nun legen wir das entsprechende Log File an, dass der "Syslog Server" benutzt um die "local0" Nachrichten des FortiGate Device, in das 
       Log zu schreiben. Danach kann der "syslog" Service neu gestartetn werden um die Konfiguration zu aktivieren:
       
       # touch /var/log/fortigate.log
       # chmod 644 /var/log/fortigate.log
       # chown root:root /var/log/fortigate.log
       
       # service syslog stop
       # service syslog start
       
       Um das Log in "realtime" anzuschauen führe folgenden Befehl aus (um abzubrechen benütze Ctrl + C):
       
       # tail -f /var/log/fortigate.log

Die Konfiguration ist abgeschlossen dh. um die Konfiguration zu testen kann folgendes auf der FortiGate durchgeführt werden:

       # diagnose log test

Dieses Kommando erstellt Test Log Einträge für jeden Bereich wie Authentication, SSL-VPN, Antivirus usw. Diese Test Log Einträge werden nun durch die Konfiguration für "log syslogd setting" zum "Syslog Server" gesendet und sollten im entsprechenden Log File "/var/log/fortigate.log" ersichtlich sein. Kommt es dabei zu Problem und es muss verifiziert werden "ob" die Fortigate diese "syslog" Nachrichten überhaupt sendet resp. die Log's auf dem CenOS ankommen benütze folgenden Befehl:

       # tcpdump -nnp -i eth0 ip dst [Syslog Server IP] and port 514
         

Um das Log File "/var/log/fortigate.log" Täglich zu rotieren auf dem CentOS erstelle das folgende File:

       # vi /etc/logrotate.d/fortigate
       
       --------------- /etc/logrotate.d/fortigate ---------------
       
       /var/log/fortigate.log {
               rotate 30
               daily
               sharedscripts
               postrotate
               nomail
                       /usr/bin/killall -HUP syslogd
               endscript
       }
       
       --------------- /etc/logrotate.d/fortigate ---------------

Die Konfiguration kann getestet werden mit folgenden Befehl:

       # logrotate --force /etc/logrotate.d/fortigate

Wie kann ich unter FortiOS 5.4 für einen FortiGate Device eine "Log Rotation" konfigurieren?

Die Voraussetzung das auf einem FortiGate Device eine "Rotation" für das Log konfiguriert werden kann ist ein "disk" Logging. Ob ein FortiGate Device über diese Möglichkeit verfügt kann der "Software Matrix" entnommen werden:

       Datei:FortiOS-Software-Platform-Matrix-54.pdf

Ein Log eines FortiGate Device's wird per Standard nicht "rotiert" dh. zum Beispiel auf täglicher Basis. Möchte man dies Konfigurieren führe folgendes durch:

       # config log disk setting
       # set status enable
       # set diskfull overwrite
       # set max-log-file-size [Max Grösse in MB bevor ein neues Log erstellt wird; Standard 20]
       # set log-quota [Grösse für gesamter Log Speicher; Standard 0]
       # set roll-schedule [daily oder weekly]
       # set roll-day [sunday | monday | tuesday | wednesday | thursday | friday | saturday]
       # set roll-time [Gebe die Zeit an im Format hh:mm]
       # set maximum-log-age [Gebe an nach wieviel Tagen ein Log gelöscht werden soll; Standard 7]
       # end

Berücksichtige dabei folgendes: Die Logs die "rotiert" werden können im Web Mgmt. Interface nicht explizit gewählt werden! Möchte man die Logs zusätzlich auf einen FTP Server überspielen siehe nachfolgenden Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_die_Logs_eines_FortiGate_Devices_automatisiert_einem_FTP_Server_.C3.BCbermitteln.3F

Wie kann ich unter FortiOS 5.4 die Logs eines FortiGate Devices automatisiert einem FTP Server übermitteln?

Wenn unter FortiOS 5.4 die Logs eines FortiGate Devices automatisiert auf einen FTP Server übermittelt werden soll, muss muss zuerst eine Log "Rotation" konfiguriert werden. Die nötige Voraussetzung damit dies durchgeführt werden kann ist ein "disk" Logging. Ob ein "disk" Logging für einen FortiGate Device zur Verfügung steht, kann der "Software Matrix" entnommen werden:

       Datei:FortiOS-Software-Platform-Matrix-54.pdf

Um eine Log "Rotation" zu konfigurieren siehe nachfolgender Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_f.C3.BCr_einen_FortiGate_Device_eine_.22Log_Rotation.22_konfigurieren.3F

Für die Konfiguration um die Logs automatisiert einem FTP Server zu übermitteln stehen folgende Optionen zur Verfügung:

       # set upload [Aktiviere oder Deaktiviere einen Upload der File anhand "enable oder disable"]
       # set upload-delete-files [Aktiviere oder Deaktiviere die Löschung der Logs lokal auf der Fortigate "nach" dem Upload anhand "enable oder disable"]
       # set upload-destination [Gebe das Ziel an für den Upload dh. "rortianalyzer oder "ftp-server"]
       # set upload-ssl-conn [Gebe an sofern ein FortiAnalyzer für den Upload benutzt wird wie Verschlüsselt werden soll dh. "default | high | low | disable"]
       # set uploaddir [Gebe das Upload Verzeichnis an in der Form zB /Log-Archiv/ ]
       # set uploadip [Wenn ein FTP Server benutzt wird für den Upload gebe die IP Adresse des FTP Server an]
       # set uploaduser [Wenn ein FTP Server benutzt wird für den Upload gebe den Usernamen des FTP Server an]
       # set uploadpass [Wenn ein FTP Server benutzt wird für den Upload gebe das Passwort des FTP Server an]
       # set uploadport [Wenn ein FTP Server benutzt wird für den Upload gebe den benutzten Port des FTP Server an]
       # set uploadsched [Aktiviere oder Deaktiviere den Upload zu einer bestimmten Zeit dh. anhand "disable | enable"]
       # set uploadtime [Definiert den Zeitpunkt (hh:mm) des Uploads sofern "uploadsched" aktiviert wurde]
       # set uploadtype [Gebe an "welche" File berücksichtigt werden; traffic | event | virus | webfilter | IPS | spamfilter | dlp-archive | anomaly | voip | dlp | app-ctrl | waf | netscan | gtp]
       # set uploadzip [Gebe an ob die Log Files "nach" dem Upload anhand ZIP Komprimiert werden sollen dh "disable | enable"]
       # set source-ip [Definiert die Source IPv4 Adresse für den Upload auf den FTP Server]
       
       NOTE Wenn "uploadsched" deaktiviert ist wird per Standard der Upload "nach" dem rotieren den Log Files ausgeführt!

Aus diesen zur Verfügung stehenden Optionen kann als Beispiel folgendes konfiguriert werden:

       # config log disk setting
       # set upload enable
       # set upload-delete-files disable
       # set upload-destination ftp-server
       # set uploaddir /log-archive/
       # set uploadip 193.193.135.65
       # set uploaduser local.intra
       # set uploadpass only4also
       # set uploadport 21
       # set uploadsched disable
       # set uploadtype traffic traffic event virus webfilter IPS spamfilter dlp-archive anomaly voip dlp app-ctrl waf netscan gtp
       # set uploadzip enable

Nach der Uebermittlung der Log Files auf den FTP Server werden diese in folgender Art und Weise auf dem FTP Server gespeichert (Beispiel Traffic Log):

       tlog.FGT60D3G12013754.root.20120927000000.zip

Bei diesem Vorgehen ist folgendes zu berücksichtigen: Werden Logs vom FortiGate Device auf den FTP Server übermittelt, gibt es keine Möglichkeit diese für zB einer Analyse auf den FortiGate Device wieder einzuspielen.

Wie beeinflusst unter FortiOS 5.4 das Kommando "system network-visibility" die Logs und die enthaltenen Informationen?

Das Kommando "system network-visibility" steht im Zusammehang mit der "Geo IP Location". Diese bedeutet: Werden diese Optionen aktiviert (ist per Standard der Fall) so werden betreffend den einzelnen enthaltenen Optionen wie zB "source" Geo Location Informationen in den Logs zu den IP's angezeigt/hinzugefügt:

       # config system network-visibility 
       # destination-visibility [enable | disable]
       # source-location [enable | disable]
       # destination-hostname-visibility [enable | disable]
       # hostname-ttl [Definiere TTL Standard 86400]
       # hostname-limit [Definiere Anzahl Hostname Limit Standard 5000]
       # destination-location [enable | disable]
       # end
       
       NOTE Wenn die Option "source-location" aktiviert wird so wird für "internal" Resourcen zB LAN anstelle der Geo Location die
            Information "reserved" in den Logs angezeigt. Ebenso steht das nachfolgenden Kommando im direkten Zusammenhang mit der
            "network-visibility" resp. muss aktiviert werden damit die Geo Location in den Logs angezeigt/hinzugefügt werden:
            
            # config log gui-display
            # set resolve-hosts [enable | disable]
            # end

Wenn ein Prozess "crashed" gib es unter FortiOS 5.4 ein Log das nähere Informationen enthält über den "crash"?

Nun wenn unter einem Linux/Unix System ein "crash" (Absturz) durch einen Prozess durchgeführt wird, dann führt das Betriebssystem - sofern konfiguriert - ein "dump" durch. Die Information des "dump" werden in ein "core" File geschrieben! Der gleiche Vorgang resp. in einer ähnlich Form wird auch auf einem FortiOS durchgeführt dh. das File in dem die Informationen geschrieben werden ist das "crashlog". Dieses kann auf der CLI anhand des nachfolenden Befehls eingesehen werden:

       # diagnose debug crashlog read

Dieses "crashlog" File kann ebenfalls zurückgesetzt resp. gelöscht werden. Dazu benütze folgenden Befehl:

       # diagnose debug crashlog clear

In diesem "crashlog" File sind Informationen enthalten über die "termination" resp. das benutzte Signal um einen Prozess zu beenden. Wird zB im "crashlog" File folgendes angezeigt wurde der Prozess mit dem Signal "11" beendet:

      application sslvpnd
      *** signal 11 (Segmentation fault)

Das Signal "11" wird als "Invalid memory refrence" definiert dh. Nachfolgend eine Liste verschiedenster Signale:

       4     Illegal instruction
       6     Abort command from FortiOS
       7     Bus error
       9     Unconditional kill
      11     Invalid memory refrence
      14     Alarm clock
      15     Graceful kill

Grundsätzlich werden diese "termination" Signal ebenfalls benutzt um einen Prozess zu beenden resp. neu zu starten (Kill Level). Dies ist jedoch nur dann durchzuführen wenn die Auswirkung 100% klar ist. Ein Prozess kann zB mit einem "termination" Signal 9 neu gestartet werden da der Level 9 ein Prozess unweigerlich beendet und diesen neu startet. Wird dies beim einem Prozess angewandt zB "cmdbsvr" so wird/kann die Konfiguration korrumpiert werden da dieser Prozess für die Konstistenz der Konfiguration sorgt. Nachfolgendes Beispiel zeigt wie anhand dieser "termination" Signale ein Prozess zB "ipsengine" gezwungen wird neu zu starten. Als erstes muss die PID (Process ID) des Prozesses "ipsengine" eruiert werden:

       # diagnose sys top
       Run Time:  9 days, 6 hours and 56 minutes
       3U, 7N, 0S, 90I; 1839T, 1406F
                miglogd       55      S       7.8     1.3
                 newcli    12572      R <     1.4     0.8
              ipsengine      114      S <     0.0     3.8
                 httpsd      119      S       0.0     1.9
                 httpsd      162      S       0.0     1.9
                pyfcgid    12531      S       0.0     1.4
                pyfcgid    12532      S       0.0     1.4
                pyfcgid    12533      S       0.0     1.4
                cmdbsvr       38      S       0.0     1.4
                pyfcgid    12529      S       0.0     1.4
              ipshelper       69      S <     0.0     1.2
                sslvpnd       73      S       0.0     1.2
                 httpsd       57      S       0.0     1.1
                 httpsd      118      S       0.0     1.0
                 cw_acd      108      S       0.0     0.9
              forticron       66      S       0.0     0.9
                    wad       99      S       0.0     0.8
                  fgfmd      107      S       0.0     0.8
              scanunitd      110      S <     0.0     0.8
                 newcli    12561      S <     0.0     0.8

Die "ipsengine" läuft über die PID "114". Dieser Prozess zwingen wir nun einen Neustart auszuführen anhand des Signal 9 (Unconditional kill; Neustart erzwigen):

       # diagnose sys kill [Definiere das "termination" Signal zB "9"] [Definiere die PID für die ein "kill" ausgeführt werden soll zB "114"]

Es wird für dieses Kommando keine Rückmeldung ausgegeben dh. wenn das Kommando erfolgreich läuft nun die "ipsengine" über eine neue PID. Dies kann wiederum mit "sys top" überprüft werden:

       # diag sys top
       Run Time:  9 days, 6 hours and 57 minutes
       13U, 75N, 0S, 12I; 1839T, 1439F
              ipsengine    12574      R <    79.4     1.8
                miglogd       55      S       7.8     1.3
                 newcli    12575      R <     1.4     0.8
                 httpsd      119      S       0.0     1.9
                 httpsd      162      S       0.0     1.9
                pyfcgid    12531      S       0.0     1.4
                pyfcgid    12532      S       0.0     1.4
                pyfcgid    12533      S       0.0     1.4
                cmdbsvr       38      S       0.0     1.4
                pyfcgid    12529      S       0.0     1.4
              ipshelper       69      S <     0.0     1.2
                sslvpnd       73      S       0.0     1.2
                 httpsd       57      S       0.0     1.1
                 httpsd      118      S       0.0     1.0
                 cw_acd      108      S       0.0     0.9
              forticron       66      S       0.0     0.9
                    wad       99      S       0.0     0.8
                  fgfmd      107      S       0.0     0.8
              scanunitd      110      S <     0.0     0.8
                 newcli    12561      S <     0.0     0.8  

Wir weisen nochmals daraufhin diese Art einen Prozess neu zu starten nur dann zu benutzen, wenn die Auswirkungen 100% klar sind. Regulär sollten immer die "build-in" Funktionen des FortiOS benutzt werden dh. wenn eine "ipsengine" neu gestartet werden sollte wäre folgender Befehl der Reguläre:

       # diagnose test application [Prozess- oder Applikationsname zB "ipsengine"] [Test Level zB für Neustart "99"]

CLI

Wie kann ich auf einer FortiGate "sämtliche" zur Verfügung stehenden Befehle/Konfiguration aufzulisten?

Die CLI einer FortiGate ist umfassend und ist Hierachisch strukturiert. Diese Hierachie kann auf einer FortiGate anhand des nachfolgenden Befehls ausgegeben werden um einen Ueberblick zu erhalten:

       # tree

Wenn dieser Befehl abgesetzt wird sollte dieser innerhalb eine SSH Verbindung abgesetzt werden und nicht innerhalb einer RS-232 Verbindung über den Mgmt. Port. Nachfolgend ein Beispiel des Output:

       Output basierend auf FortiOS 5.4.0 tree-5.4.0

Kann ich unter FortiOS 5.4 Linux/Unix basierenden Befehl "grep" auf der Kommandozeile benützen?

Die Kommandozeile von FortiOS 5.4 ist keine Shell im klassischen Sinne! Dennoch kann "grep" benutzt werden um Informationen des Outputs zu durchsuchen. Wenn ein Befehl auf der Kommandozeile ausgeführt wird kann der Output anhand "pipe" ("|") in einen Zwischenspeicher geschrieben werden. Anhand der Anweisung "grep" kann danach dieser Zwischenspeicher durchsucht werden nach Informationen (Parsing). Ein Beispiel wäre zB folgendes:

       Wenn nachdem Login auf der Kommandozeile folgender Befehl eingegeben wird so zeigt Fortinet die gesamte Konfiguration an:
       
       # show
       Möchte man nun diesen Output der sehr lange sein kann nach einer bestimmten Information durchsuchen wie einer IP Adresse zB 
       192.168.1.1 kann folgender Befehl ausgeführt werden:
       
       # show | grep 192.168.1.1
       
       Der Output wird nun Zeile für Zeile gefiltert und nach "192.168.1.1" durchsucht. Alle Zeilen die diese Informatione enthalten
       werden als Resultat ausgegeben!

Zusätzlich stehen dem Befehl "grep" folgende Optionen zur Verfügung:

         Usage: grep [-invfcABC] PATTERN
         Options:
                 -i      Ignore case distinctions
                 -n      Print line number with output lines
                 -v      Select non-matching lines
                 -f      Print fortinet config context
                 -c      Only print count of matching lines
                 -A      Print NUM lines of trailing context
                 -B      Print NUM lines of leading context
                 -C      Print NUM lines of output context

Wie kann ich unter FortiOS 5.4 für einen FortiGate Device einen "daily-reboot" (Neustart) konfigurieren?

Bei Problemen in verschiedenster Art kann es vorkommen, dass man auf einem FortiGate Device einen "daily-reboot" durchführen resp. konfigurieren muss zB wenn durch einen "bug" ein FortiGate Device "high cpu" erreicht oder nach einiger Zeit eine hohe Auslastung zeigt. Einen "daily-reboot" als "die" Lösung zu konfigurieren kann jedoch keine Lösung sein. Jedoch diese Art als vorübergehende Lösung zu konfigurieren ist akzeptabel. Ein "daily-reboot" wird auf dem FortiGate Device folgendermassen konfiguriert:

       # config system global
       # set daily-restart [enable | disable]
       # set restart-time [Gebe die Zeit in hh:mm an für den Neustart zB "05:00"]
       # end

Zu dem definierten "restart-time" wird der FortiGate Device neu gestartet. Voraussetzung das dies zum definierten Zeitpunkt geschieht, ist das Zeit/Datum sowie die Zeitzone korrekt konfiguriert wurde. Wie dies durchzuführen ist siehe nachfolgende Artikel:

       FortiGate-5.4:FAQ#Wie_kann_ich_auf_einer_FortiGate_die_Zeit_sowie_das_Datum_.C3.BCberpr.C3.BCfe_sowie_konfigurieren.3F
       FortiGate-5.4:FAQ#Wie_kann_ich_auf_einer_FortiGate_unter_FortiOS_5.4_die_Zeitzone_konfigurieren.3F

Wird zum gegebenen Zeitpunkt der Neustart des FortiGate Devices durchgeführt wird in den entsprechenden Logs folgendes angzeigt:

       Console                   The system will reboot due to scheduled daily restart. Current time is 05:00
       Syslog                    5: 2009-09-21 05:00:00 log_id=0104041990 type=event subtype=admin pri=information fwver=040000 vd=root msg="Fortigate started"
       Gui Event Log             2 2009-09-21 05:00:00 information admin 41990     Fortigate started

Kann ich unter FortiOS 5.4 für einen FortiGate Device ein Script erstellen und dieses automatisch ausführen lassen?

Unter FortiOS 5 sowie 5.2 war es nicht möglich ein automatisiertes Script auf dem FortiOS zu konfigurieren. Unter FortiOS 5.4 ist dies nun möglich. Die Anwendungszwecke können dabei vielfälltig sein. Ein Script das konfiguriert wird besteht im einzelnen aus FortiOS CLI Kommandos dh. es können verschiedenen Kommandos nacheinander an ein Script hinzugefügt werden. Ebenso sind mehrer Scripts möglich. Die Konfiguration eines Scripts wird folgendermassen durchgeführt:

       # config system auto-script
       # edit [Name des Scripts zB "backup"]
       # set interval [Interval zur Ausführung des Scripts in Sekunden 0-4294967295 ; Beispiel 1 Tag 86400]
       # set repeat [Wiederholungs Interval 0-4294967295; 0 = Unendlich]
       # set start [manual | auto]
       # set script [FortiOS CLI Kommandos]
       # end
       
       NOTE Die effektive Zeit zur Ausführung des Scriptes kann nicht definiert werden dh. es steht nur "manual" oder "auto" zur
            Verfügung. Dies bedeutet: Nach Abschluss der Definierung des Scripts beginnt der "interval" in Sekunden zu laufen!
            Für die Position "script" können mehrere CLI Kommandos definiert werden. Dabei muss pro Zeile ein CLI Kommando definiert
            werden dh. um einen Zeilenumbruch durchzuführen benütze "Ctrl + Enter". Das "gesamte" Script resp. Kommandos müssen 
            innerhalb " " definiert werden. Folgendes Beispiel eines Backup Scripts auf TFTP Server mit zusätzlichen "system status:
            
            set script "get system status[Führe durch Ctrl + Enter]
            >execute backup full-config tftp [Pfad für TFTP zB /path] [IPv4 Adresse TFTP] ["Optional" Password für Backup File]"

Nach der Definition für unser Beispiel ergiebt sich folgende Konfiguration:

       # show system auto-script
       config system auto-script
           edit "backup"
               set interval 86400
               set repeat 0
               set start auto
               set script "get system status
       execute backup full-config /path 192.168.1.10 password"
           next
       end

Wenn das Script zum entsprechenden Zeitpunkt ausgeführt wird so wird das Resultat zB für "get system status" in ein "result" File geschrieben das den gleichen Namen trägt wie das Script selber dh. in unserem Beispiel "backup". Zu dieser Script Funktion stehen verschiedenen Optionen zur Verfügung um zB das "result" File einzusehen oder das Script manuell auszuführen:

       backup     backup
       delete     Delete output of executed scripts.
       result     Display output of executed scripts.
       start      Start script.
       status     List of scripts currently running or executed.
       stop       Stop script.
       stopall    Stop all scripts currently running.

Somit kann zB "result" des Scripts "backup" mit folgenden Befehl eingesehen werden. Nachfolgend ein Beispiel anhand des Kommandos "get system status":

       # execute auto-script result [Name des Scripts zB "backup"]
       ========== #0, 2016-01-05 19:56:14 ==========
       local-sg0e0 $  get system status
       Version: FortiGate-60D v5.4.0,build1011,151221 (GA)
       Virus-DB: 16.00560(2012-10-19 08:31)
       Extended DB: 1.00000(2012-10-17 15:46)
       IPS-DB: 6.00741(2015-12-01 02:30)
       IPS-ETDB: 0.00000(2001-01-01 00:00)
       Serial-Number: FGT60D4613048017
       IPS Malicious URL Database: 1.00001(2015-01-01 01:01)
       Botnet DB: 1.00000(2012-05-28 22:51)
       BIOS version: 04000022
       System Part-Number: P14482-03
       Log hard disk: Not available
       Hostname: local-sg0e0
       Operation Mode: NAT
       Current virtual domain: root
       Max number of virtual domains: 10
       Virtual domains status: 1 in NAT mode, 0 in TP mode
       Virtual domain configuration: disable
       FIPS-CC mode: disable
       Current HA mode: standalone
       Branch point: 1011
       Release Version Information: GA
       System time: Tue Jan  5 19:56:14 2016
       ========== #1, 2016-01-05 19:56:20 ==========

Ebenso kann der Status eines Scripts abgefragt werden:

       # exeute auto-script status
         backup <-- not executed yet; no result

Der "result" eines Scripts kann mit nachfolgenden Befehl zurückgesetzt werden resp. gelöscht werden:

       # execute auto-script delete backup

Zum Schluss muss folgendes erwähnt werden: Diese Script Funktion ist nicht als "backup" Script Funktion zu sehen sondern einfach ein hier gezeigtes Beispiel. Anhand dieses Scripts können zB Applikationen in definierten "interval" neu gestartet werden oder "cache" Informationen zurückgesetzt werden. Ebenso ist zu beachten, dass FortiOS CLI Kommandos nur dann funktionieren wenn diese nicht einen weitere Eingabe Voraussetzen wie zB "execute reboot".