FortiGate-5.0-5.2:FAQ

Aus Fortinet Wiki
Zur Navigation springen Zur Suche springen

Fortigate:FAQ

Vorwort

Diese FAQ's sind für Fortinet Systeme basierend auf OS 4 MR3 sowie 5.0/5.2. Zu Test-Zwecken stand eine Fortigate 60C/D zur Verfügung!


Datenschutz

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

"Die in diesen Artikeln enthaltenen Informationen sind vertraulich und dürfen ohne
schriftliche Zustimmung von der ALSO 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 (Legacy Link http://docs.fortinet.com/fgt.html)
       FortiOS 4 MR3
       Datei:Fortigate-system-admin-40-mr3.pdf                                                     (FortiOS Handbook v3 for FortiOS 4.0 MR3)
       Datei:Fortigate-cookbook.pdf                                                                (FortiOS 4.0 MR3 Cookbook "A practical Guide to getting the best from your Fortigate)
       Datei:Fortigate-cli-40-mr3.pdf                                                              (FortiOS 4.0 MR3 CLI Reference)
       Datei:Fortigate-max-values-40-mr3.pdf                                                       (FortiOS 4.0 MR3 Max Values)
       
       Datei:Fortigate-firewall-40-mr3.pdf                                                         (FortiOS Handbook v3 for FortiOS 4.0 MR3)
       Datei:Fortigate-ha-40-mr3.pdf                                                               (FortiOS Handbook High Availability v3 for FortiOS 4.0 MR3)
       Datei:Fortigate-utm-40-mr3.pdf                                                              (FortiOS Handbook v4.3 for FortiOS 4.0 MR3)
       Datei:Fortigate-authentication-40-mr3.pdf                                                   (FortiOS Handbook Authentication FortiOS 4.0 MR3)
       Datei:Fortigate-troubleshooting-40-mr3.pdf                                                  (FortiOS Handbook Troubleshooting v3 for FortiOS 4.0 MR3)
       FortiOS 5.0
       Datei:Fortigate-install-system-admin-50.pdf                                                 (Install and System Administration for FortiOS 5.0)
       Datei:Fortigate-cookbook-50.pdf                                                             (FortiOS 5.0 FortiGate Cookbook Expanded Version)
       Datei:Fortigate-tips-using-the-Cookbook-50.pdf                                              (FortiOS 5.0 ForgiGate Tips using the Cookbook)
       Datei:Fortigate-cli-50.pdf                                                                  (FortiOS 5.0 CLI Reference)
       Datei:Fortigate-glossary-50.pdf                                                             (FortiOS 5.0 Glossary)
       Datei:Fortigate-max-values-50.pdf                                                           (FortiOS 5.0 Max Values / Online Version http://docs.fortinet.com/fgt/handbook/50/5-0-4/max-values/max-values.html)
       Datei:Fortigate-default settings.pdf                                                        (FortiOS 5.0 Default Settings)
       Datei:Fortigate-lmr-50.pdf                                                                  (FortiOS 5.0.2 Max Log Message Refrence)
       Datei:FortiOS-Upgradepath.pdf                                                               (FortiOS 5.0 Upgrade Matrix)
       Datei:FortiOS-5-Software Matrix.pdf                                                         (FortiOS 5.0 Software Matrix)
       Datei:Supported-RFCs-50.pdf                                                                 (FortiOS 5.0 Supported RFC)
       
       Datei:Fortios-handbook-50.pdf                                                               (FortiOS Handbook OS for FortiOS 5.0)
       Datei:Fortigate-firewall-50.pdf                                                             (FortiOS Handbook Firewall for FortiOS 5.0)
       Datei:Fortigate-wireless-50.pdf                                                             (FortiOS Handbook "Deploying Wireless Networks" for FortiOS 5.0)
       Datei:Fortigate-loggingreporting-50.pdf                                                     (FortiOS Handbook Logging and Reporting FortiOS 5.0)
       Datei:Fortigate-ha-50.pdf                                                                   (FortiOS Handbook High Availability FortiOS 5.0)
       Datei:Fortigate-sslvpn-50.pdf                                                               (FortiOS Handbook SSL-VPN FortiOS 5.0)
       Datei:Fortigate-ipsec-50.pdf                                                                (FortiOS Handbook IPSec VPN FortiOS 5.0)
       Datei:Fortigate-vdoms-50.pdf                                                                (FortiOS Handbook Virtual Domains (VDoms) FortiOS 5.0)
       Datei:Fortigate-wanopt-cache-proxy-50.pdf                                                   (FortiOS Handbook Wan Optimization, Cache, Proxy FortiOS 5.0)
       Datei:Fortigate-advanced-routing-50.pdf                                                     (FortiOS Handbook Advanced Routing FortiOS 5.0)
       Datei:Fortigate-devices-client-reputation-50.pdf                                            (FortiOS Handbook Device/Client Reputation FortiOS 5.0)
       Datei:Fortigate-load-balance-50.pdf                                                         (FortiOS Handbook Load Balancing FortiOS 5.0)
       Datei:Fortigate-authentication-50.pdf                                                       (FortiOS Handbook Authentication FortiOS 5.0)
       Datei:Fortigate-security profiles-50.pdf                                                    (FortiOS Handbook Security Profiles for FortiOS 5.0)
       Datei:Fortigate-managing-devices-50.pdf                                                     (FortiOS Handbook Managing Devices for FortiOS 5.0)
       Datei:Fortigate-troubleshooting-50.pdf                                                      (FortiOS Handbook Troubleshooting for FortiOS 5.0)
       Datei:Fortigate-ipv6-50.pdf                                                                 (FortiOS Handbook IPv6 for FortiOS 5.0)
       Datei:Fortigate-ips-50.pdf                                                                  (FortiOS Handbook Intrusion Prevention System (IPS) for FortiOS 5.0)
       Datei:Fortigate-compliance-50.pdf                                                           (FortiOS Handbook Certifications and Compliances for FortiOS 5.0)
       Datei:Fortigate-traffic-shaping-50.pdf                                                      (FortiOS Handbook Traffic Shaping for FortiOS 5.0)
       Datei:Fortigate-hardware-accel-50.pdf                                                       (FortiOS Handbook Hardware Acceleration for FortiOS 5.0)
       
       SysAdmin's Notebook FortiOS 5.0:
       Datei:Transferring a configuration file from one model to another.pdf                       (Transferring a configuration file from one model to another)
       Datei:Check addressing mode settings if HA cluster not setting up properly.pdf              (Check addressing mode settings if HA cluster notsetting up properly)
       Datei:Name change between versions may cause HA error during upgrade.pdf                    (Change of default name and interface type between versions may cause HA error during) upgrade
       Datei:Strategies for blocking traffic by a service or protocol.pdf                          (Strategies for blocking traffic by a service or protocol)
       Datei:Adding denied sessions to session table.pdf                                           (Adding denied sessions to session table)
       Datei:Increasing the encryption level.pdf                                                   (Increasing the encryption level)
       Datei:Resetting a lost admin password.pdf                                                   (Resetting a lost admin password)
       Datei:Behind the Scenes of the VPN Creation Wizard.pdf                                      (Behind the scenes of the VPN Creation Wizard)
       Datei:Multi-path Routing Basics.pdf                                                         (Multi-Path Routing Basics)
       Datei:Navigating the FortiGate BIOS.pdf                                                     (Navigating the FortiGate BIOS)
       Datei:Using the USB MGMT console port.pdf                                                   (Using the USB MGMT Console port)
       Datei:Fortinet sysadmin toolkit.pdf                                                         (Fortinet SysAdmin’s Toolkit)
       Datei:Fortios certificate management.pdf                                                    (FortiOS Certificate Management)
       Datei:How to configure TMG features on FGT.pdf                                              (How to configure TMG features on FortiGate)
       
       Cookbook Supplementary Recipes FortiOS 5.0:
       Datei:Tips-for-using-the-FortiGate-Cookbook.pdf                                             (Tips for using the FortiGate Cookbook FortiOS 5.0)
       Datei:Dynamic VLANs.pdf                                                                     (Dynamic VLANs)
       Datei:Dynamic VLANs in tunnel mode.pdf                                                      (Dynamic VLANs in tunnel mode)
       Datei:FortiGuard DNS web filtering.pdf                                                      (FortiGuard DNS WebFiltering)
       Datei:FRUP.pdf                                                                              (Fortinet Redundant UTM Protocol (FRUP))
       Datei:Sip Configuration.pdf                                                                 (VoIP/SIP Trafic Using FortiVoice and FortiCall)
       Datei:VDOMs VLANs.pdf                                                                       (Hosting More as one FortiOS instance on a single FortiGate using VDOMS and VLANs)
       Datei:Allowing-SSO-access-with-FGT-and-FAC.pdf                                              (Allowing Single Sign-On access with a FortiGate anda FortiAuthenticator)
       Datei:Excluding-specific-users-from-security-scanning.pdf                                   (Excluding specific users from security scanning)
       Datei:Configuring-IPsec-VPN-with-a-FortiGate-and-a-Cisco-ASA.pdf                            (Configuring IPsec VPN with a FortiGate and aCisco ASA)
       Datei:Providing-secure-remote-access-to-a-network-for-an-iOS-device.pdf                     (Providing secure remote access to a networkfor an iOS device)
       Datei:Extra-help-ipsec-vpn.pdf                                                              (Extra help: IPsec VPN)
       Datei:Creating an IPv6 interface using SLAAC.pdf                                            (Creating an IPv6 interface using SLAAC)
       Datei:Setting-up-an-explicit-proxy-for-users-on-a-private-network.pdf                       (Setting up an explicit proxy for users on a private network)
       Datei:Using-port-pairing-to-simplify-transparent-mode.pdf                                   (Using port pairing to simplify transparent mode)
       Datei:Using-SNMP-to-monitor-the-FortiGate-unit.pdf                                          (Using SNMP to monitor the FortiGate unit)
       Datei:Analyzing-your-network-traffic-using-a-one-armed-sniffer.pdf                          (Analyzing your network traffic using a onearmed sniffer)
       Datei:Fortinet-single-sign-on-polling-mode-windows-AD-network.pdf                           (Fortinet Single Sign-On in Polling Mode for a Windows AD network)
       Datei:Using-two-factor-authentication-with-SSL-VPN.pdf                                      (Using two-factor authentication with SSL VPN)
       Datei:FortiGate-TCP-MSS-Option-v1.pdf                                                       (Avoiding IP Fragmentation in GRE Tunnel Deployments)
       Datei:Configuring-a-FortiGate-unit-as-an-L2TP-IPsec-server.pdf                              (Configuring a FortiGate unit as an L2TP/IPsec server)
       Datei:Creating-and-ordering-IPv4-security-policies-to-provide-network-access.pdf            (Creating and ordering IPv4 security policies to provide network access)
       Datei:Adding-a-FortiGate-unit-without-changing-the-network-configuration.pdf                (Adding a FortiGate unit without changing the network configuration)
       FortiOS 5.2
       Datei:Fortigate-install-system-admin-52.pdf                                                 (Install and System Administration for FortiOS 5.2)
       Datei:Fortigate-cookbook-52.pdf                                                             (FortiOS 5.2 FortiGate Cookbook Expanded Version)
       Datei:Fortigate-tips-using-the-Cookbook-52.pdf                                              (FortiOS 5.2 ForgiGate Tips using the Cookbook)
       Datei:Fortigate-cli-52.pdf                                                                  (FortiOS 5.2 CLI Reference)
       Datei:Fortigate-glossary-52.pdf                                                             (FortiOS 5.2 Glossary)
       Datei:FortiOS-52-Software Matrix.pdf                                                        (FortiOS 5.2 Software Matrix)
       Datei:Supported-RFCs-52.pdf                                                                 (FortiOS 5.2 Supported RFC)
       Datei:Fortigate-max-values-52.pdf                                                           (FortiOS 5.2 Max Values / Online Version http://docs-legacy.fortinet.com/fgt/handbook/52/5-2-0/max-values/max-values.html)
       Datei:FortiOS-Upgradepath-52.pdf                                                            (FortiOS 5.2 Upgrade Matrix)
       
       Datei:Fortigate-getting-started-52.pdf                                                      (FortiOS Handbook Getting Started for FortiOS 5.2)
       Datei:Fortigate-firewall-52.pdf                                                             (FortiOS Handbook Firewall for FortiOS 5.2)
       Datei:Fortigate-authentication-52.pdf                                                       (FortiOS Handbook Authentication for FortiOS 5.2)
       Datei:Fortigate-managing-devices-52.pdf                                                     (FortiOS Handbook Managing Devices for FortiOS 5.2)
       Datei:Fortigate-sslvpn-52.pdf                                                               (FortiOS Handbook SSL VPN for FortiOS 5.2)
       Datei:Fortigate-advanced-routing-52.pdf                                                     (FortiOS Handbook Advanced Routing FortiOS 5.2)
       Datei:Fortigate-ipsec-52.pdf                                                                (FortiOS Handbook IPsec VPN FortiOS 5.2)
       Datei:Fortigate-traffic-shaping-52.pdf                                                      (FortiOS Handbook Traffic Shaping for FortiOS 5.2)
       Datei:Fortigate-ipv6-52.pdf                                                                 (FortiOS Handbook IPv6 for FortiOS 5.2)
       Datei:fortigate-wireless-52.pdf                                                             (FortiOS Handbook "Deploying Wireless Networks" for FortiOS 5.2)
       Datei:Fortigate-best-practices-52.pdf                                                       (FortiOS Handbook Best Practices for FortiOS 5.2)
       
       Cookbook Supplementary Recipes FortiOS 5.2:
       Datei:IPsec-VPN-for-iOS-52.pdf                                                              (Configuring an IPsec VPN for iOS devices FortiOS 5.2)
       Datei:ProvidingRemoteUsersWithAccessUsingSSLVPN-52.pdf                                      (Providing remote users with access using SSL VPN FortiOS 5.2)
       Datei:Redundant-internet-52.pdf                                                             (Using a virtual WAN link for redundant Internet connections FortiOS 5.2)
       
       Cookbook Individual Recipes FortiOS 5.2:
       Datei:Preventing-security-certificate-warnings-52.pdf                                       (Preventing security certificate warnings when using SSL)
       Datei:Fortiauthenticator-31-fortios-52-wireless-eap-tls-win7.pdf                            (FortiAuthenticator v3.1, FortiOS v5.2.0, and Windows 7 SP1 Wireless EAP-TLS Configuration)
       Datei:Allowing-network-access-based-on-schedule-and-device-type.pdf                         (Allowing network access based on schedule and device type)
       Datei:Using-SNMP-to-monitor-the-FortiGate-unit.pdf                                          (Using SNMP to monitor the FortiGate unit)

Unter folgenden Links findet man weitere Dokus für den FortiClient und FortiExplorer:

       FortiClient:
       Fortigate:FAQ#Kann_ich_die_Konfiguration_des_FortiClient_.22vorkonfigurieren.22_und_zur_Verf.C3.BCgung_stellen_.28Distribution.29.3F
       FortiExplorer:
       Fortigate:FAQ#Wo_kann_ich_die_neuste_Software_des_Forti_Explorer_runterladen_und_was_ist_ein_Forti_Explorer.3F

Gibt es einen Link auf die Fortinet Knowledgebase auf der die Artikel gelistet sind?

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

Gibt es ein Dokument indem die Features von einer FortiGate aufgelistet sind?

Im nachfolgenden Dokument wird anhand einer ppt Präsentation als Kurzübersicht auf die einzelnen Features einer FortiGate eingegangen:

       FortiOS 5.0
       Datei:FortiOS-Features-Guide-504-R2.pptx
       Datei:FortiOS-Features-Guide-506-R4.pptx
       FortiOS 5.2
       Datei:FortiOS-Features-Guide-5.2-R1.pptx

Hardware

In welchen Kategorieren werden die Fortinet Produkte eingeteilt?

Fortinet kennt eine ganze Palette von Produkten wie zB FortiGate (Firewall), FortiWeb (Web Application Firewall), FortiDNS (DNS Server) usw. Nachfolgend unabhängig vom Sizing einen Ueberblick (Stand 15. Februar 2012):

       Datei:Fortinet-01.jpg
       
       NOTE Die hier gezeigten Uebersichten können über die Fortinet Seiten eingesehen werden unter dem Menü "Produkte"!
            Eine ebenfalls gute Uebersicht gibt folgendes PowerPoint:
                  
                  Siehe Artikel Fortinet:ProduktInfo#Fortinet_Produkt-Guide

Diese Produkte werden wiederum betreffend Sizing in 4 verschiedene Kategorien unterteilt:

       Enterprise
       MSSP
       Carriers
       SMB/SOHO

Dabei ist zu berücksichtigen, dass einige Produkte in verschiedenen Kategorieren vorkommen dh. ein FortiWi 60C/CM wird unter Enterprise, MSSP und SMB/SOHO geführt. Nachfolgend ein kurzer Ueberblick über die oben aufgeführten Kategorieren:

       ENTERPRISE
       
       Datei:Fortinet-03.jpg
       MSSP
       
       Datei:Fortinet-04.jpg
       CARRIER
       
       Datei:Fortinet-05.jpg
       SMB/SOHO
       
       Datei:Fortinet-06.jpg

Ebenfalls gibt folgende Matrix eine gute Uebersicht über diese Kategorieren und die zur Verfügung stehenden Hardware Appliance:

        Siehe Artikel Fortinet:ProduktInfo#Fortinet_Produkt-Matrix

In den verschiedenen Kategorieren welche Hardware Appliance stehen zur Verfügung?

Folgende Hardware Appliance stehen in den verschiedenen Kategorien von Fortinet zur Verfügung:

       Datei:Fortinet-02.jpg

Für diese Hardware Appliance steht eine gute Uebersicht zur Verfügung die über eine Matrix zeigt wie diese Hardware Appliance eingestuft werden:

       Siehe Artikel Fortinet:ProduktInfo#Fortinet_Produkt-Matrix

Wie verifiziere ich die Hardware Revision eines FortiGate Devices?

Die Hardware Revision kann leider nicht über die CLI zwar ausgelesen werden jedoch fehlt die Generation des Device's! Um die "Hardware Revision" zu verifizieren kann folgender Befehl abgesetzt werden:

       # get system status | grep Part-Number
       System Part-Number: P15968-01

Diese Information bringt einem jedoch in dem Sinne nicht weiter da die "Hardware Generation" fehlt. Die "Hardware Revision" wird auch auf den Fortinet Verpackung geführt als:

       Fortinet P/N P15968-01
       
       NOTE Bei dieser "Hardware Revision" handelt es sich zB um eine FG-70D. Das heisst wenn eine neue 
            "Hardware Revision" released wird so kann diese als P/N Nummer "P15968-01" haben jedoch als
            "Hardware Generation" die "2". Es kann jedoch durchaus sein das ein neue Revision über eine
            P/N Nummer verfügt zB "P15978-02". Somit kann anhand der Part-Number keine Rückschlüsse 
            gezogen werden über die nötige Information von:
            
            Part-Nummer (Hardware Revision) + Hardware Generation

Um die genauen Informationen eines Gerätes zu verifizieren muss bei Fortinet ein Ticket eröffnet werden und die entsprechende Serien Nummer des Devices angegeben werden:

       Fortinet:Support-Case

Wie sieht so eine Fortinet Hardware Appliance aus?

Die FortiGate-60C/D ist eine kleine Hardware Appliance ist jedoch mit dem gleichen OS ausgerüstet wie die Grossen. Die FortiGate-60C verfügt über folgende Anschlüsse etc.:

       Datei:Fortinet-07.jpg

Nachfolgend die Details der Anschlüsse:

       Datei:Fortinet-08.jpg Datei:Fortinet-09.jpg

Wo finde ich eine Kurzübersicht welche FortiGate zB mit wieviel Memory kommt, ob ein SOC und/oder NP verbaut ist usw?

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

       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-824.jpg

Diese Informationen stammen aus einem Post im Fortinet Forum. Dieser Post "sollte" auf dem neusten Stand gehalten werden. Nachfolgend der Link zu diesem Post:

       http://support.fortinet.com/forum/tm.asp?m=100451&p=1&tmode=1&smode=1

Wo finde ich eine Kurzuebersicht über die Feature-Unterstützung der Fortigate Hardware (Low-End 20C bis 80C)?

Folgendes Sheet gibt betreffend Low-End Features im Zusammenhang mit der Hardware eine Kurzübersicht:

       ACHTUNG Die nachfolgende Tabelle zeigt die Feature Unterstützung für FortiOS 4.3.x und nicht für FortiOS 5.x!
               Informationen betreffend FortiOS 5.x siehe folgender Artikel:
               
               Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       Datei:Fortinet-142.jpg

Wie kann ich einen kleinen Device von Fortinet wie zB die 40B betreffend Performance optimieren?

Die nachfolgenden Anweisungen sind nicht als generelle Aenderung zu verstehen und sollten nur angewendet werden wenn die Performance eines Devices wie eine 40B stark belastet ist (conserve mode). Die kleineren Devices haben meist sehr wenig Memory auf dem System zur Verfügung dh. 40B zB 512 MB. Alle Services eines FortiOS können das Memory mehr oder weniger belasten. Innerhalb der UTM Konfiguration gibt es jedoch einige Varianten die das Memory weniger belasten jedoch nicht ohne Auswirkungen. Nachfolgend einige Hinweise was getan werden kann um die Memory Belastung zu optimieren:

       - Lade auf den kleineren Devices bis 100D auf jedenfall FortiOS 4 MR3 Patch 7 oder höher. Der Grund ist dahingehend, 
         dass ab diesem Release sämtliche Log/Reporting Funktionen von diesen Devices entfernt wurde (siehe Release Notes Seite 5):
       
         Datei:FortiOS-v4.0-MR3-Patch-Release-7-Release-Notes.pdf
       - Betreffend Log und Reporting Optimierung bei kleineren Devices siehe auch folgender Artikel:
         
         Fortigate:FAQ#Was_ist_unter_FortiCloud_.28FAMS.2C_Fortinet_Analys_and_Mgmt._System.29_zu_verstehen.3F
       - Setze den IPS Algorithmus auf "low". Für weitere Informationen siehe Artikel:
         
         Fortigate:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F)
       
         # config ips global 
         # set algorithm low 
         # end 
       - Benutze für Antivirus die Einstellung "flow-based" für den Inspection Mode. Details siehe folgender Artikel:
         
         Fortigate:FAQ#Was_ist_.22flow-based.22_Scanning_und_welche_Vor-_und_Nachteile_sind_in_diesem_Zusammenhang_zu_ber.C3.BCcksichtigen.3F
       - Setze die System "Session Timeout" neu:
         
         # config system session-ttl 
         # set default 300 
         # end 
       
         NOTE Beobachte/Monitore das System gut um Unregelmässigkeiten sofort festzustellen und den Wert entweder zu 
              erhöhen oder auf Standard Wert (3600) zu setzen!
       - Setze den Cache von FortiGuard von Standard Wert 1800 auf 500 dh. der Cache wird verkleinert da dieser schneller 
         gelöscht wird. Somit wird auch das Memory weniger belastet jedoch zu lasten von Online Abfragen in die Cloud resp.
         FortiGuard:
       
         # config system fortiguard 
         # set antispam-cache-ttl 500 
         # set webfilter-cache-ttl 500 
         # end
       - Setze den Zeitpunkt der Updates von FortiGuard dh. IPS und Antivirus Signaturen auf die Nacht sofern möglich! 
       - Setze für WebFilter ebenfalls die Inspection Mode "flow-based":
       
         UTM Profiles > Web Filter > Profile > [wähle das entsprechende Profil] > Inspection Mode
       - Setze für Antivirus sowie für Proxy die max. Download Grösse von Files um eine Ueberlastung des Memory's zu verhindern:
       
         Fortigate:FAQ#Wie_setze.2Fblocke_ich_die_File_Limite_.28maximum_file_size.29_f.C3.BCr_den_Antivirus.3F
       - Als Letzteres definiere die Policy so das diese eingeschränkt sind dh. auf Destinationen und Protokoll Ebene (verhinder "all" Policy's)
         und aktiviere nur in diesen Policy Rules UTM/Security Profile's in denen diese auch Sinn ergeben!

Auf einer Fortigate sieht man Fehlernachrichten betreffend "NAND bad blocks / crc errorINITTAR"! Was ist zu tun?

Diese Fehlermeldung erscheinen beim Start eines FortiGate Devices. Diese Fehlermeldungen können folgendermassen aussehen:

       Initializing firewall...TAR: migadmin/ids/: error 10
       crc errorINITTAR: falling back to normal initrd...
       crc errorFAT: bogus logical sector size 0
       Kernel panic: VFS: Unable to mount root fs on 01:00
       info: Failed to scan JFFSv2 file structure
       Open boot device failed.
       ......
       in grub_open errnum=2
       in grub_open errnum=2
       Open boot image failed.
       EXT2-fs error (device mtdblock(31,1)): ext2_free_blocks: bit already cleared for block 15475

Der Grund dafür ist ein korruptes "Flash File System". So ein korruptes "Flash File System" kann von einem Stromunterbruch herrühren, Ueberbelastung des Flash Devices oder von einem nicht kontrollieren "shutdown" (unkontrollierte Stromentnahme). Um Abhilfe zu schaffen müssen die Sektoren im korrupten "Flash File System" als "bad" (Defekt) markiert werden. Dies ist folgendermassen durchzuführen. Verbinde eine Serielle Console mit der Fortigate. Auf dem Client auf der die Serielle Console benutzt wird müssen folgende Einstellungen vorhanden sein:

       8 bits 
       no parity 
       1 stop bit 
       9600 baud (the FortiGate-300 uses 115,000 baud) 
       Flow Control = None 

Schalte den Device ein und achte auf den Consolen Output dh. wenn auf dem Consolen Display folgendes erscheint drücke die spacebar (oder einen anderen button) um den Start Prozess zu unterbrechen:

       NOTE Für den Device 60C wird eine neue Hardware Revision ausgeliefert dh. Revision 3. Diese Revision 3 für 
            eine 60C besitzt einen "USB flash" mit einem eingebauten Kontroller. Somit besitzt eine 60C keine Positon 
            um den NAND zu scannen für "bad block". Das Boot Menü presentiert sich wie folgt:
       "Enter G,F,I,B,Q,or H:
       
       [p]: Normal POST test.
       [q]: Quit this menu.
       Unknown command 'nand' - try 'help'
       NAND scan failed. Try to reboot."
       --> Die Hardware Refision 3 besitzt folgende Hardware Komponenten]:
       
       1. Phison controller: IC USB 2.0 FLASH CONTROLLER LQFP48 ROHS-6
       2. Flash2. Flash:IC MEMORY 32GBIT 2.7-3.6V NAND FLASH 4GX8BIT MLC 1CE TSOP48 ROHS-6 
       Durchzuführen für eine FortiGate 30B, 50B 60B:
       
       FGT60 (11:24-04.25.2005)
       Ver:04000000
       Serial number:FGT-101101101100
       RAM activation
       Total RAM: 128MB
       Enabling cache...Done.
       Scanning PCI bus...Done.
       Allocating PCI resources...Done.
       Enabling PCI resources...Done.
       Zeroing IRQ settings...Done.
       Verifying PIRQ tables...Done.
       Boot up, boot device capacity: 30MB.
       Press any key to display configuration menu...
       
       [G]: Get firmware image from TFTP server.
       [F]: Format boot device.
       [Q]: Quit menu and continue to boot with default firmware.
       [H]: Display this list of options.
       
       Enter G,F,Q,or H: d [Taste "d" für Debug]
       
       [p]: normal POST test. 
       [n]: NAND scan bad block (data will be lost). 
       [q]: quit this menu.
       n [Taste "n" für NAND scan]'
       
       Device 0 scan/test new bad blocks:0x00000000 - 0x08000000 
       .........................................................................................nread glitch@12cb800 nread glitch@12cb800 
       3 4 5 6 7 8 .........................................................................................................................................
       .............................................................................................................................................................
       .............................................................................................................................................................
       ....................................badblock from read: 0x012c0000 
       
       NAND scan finished. 
       
       At least one block verification failed!
       Nand flash chip’s block status:
       
       Failed block of verification: 0401 
       
       Want to mark the above block(s) as bad blocks?… (y/n) y [Taste "y" um die bad Blocks zu markieren]
       
       ——————————
        
       Bad block already: 0X0401
        
       ——————————
        
       Mark failed block(s) of verification as bad block(s)!
       
       Recreate bad block table) – (y/n) y [Taste "y" um die Neuerstellung durchzuführen]
       
       
       
       - Verlasse den "Debug" Mode mit q und stelle die Firmware wieder her dh. führe folgendes durch:
       
       Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F
       Durchzuführen für eine FortiGate 30B, 50B 60B:
       
       FGT50B (11:04-02.28.2007)
       Ver:04000007
       Serial number:FGT50BXXXXXXXXXXX
       RAM activation
       Total RAM: 256MB
       Enabling cache...Done.
       Scanning PCI bus...Done.
       Allocating PCI resources...Done.
       Enabling PCI resources...Done.
       Zeroing IRQ settings...Done.
       Verifying PIRQ tables...Done.
       Enabling Interrupts...Done.
       Boot up, boot device capacity: 64MB.
       Press any key to display configuration menu...
       ..
       
       [G]: Get firmware image from TFTP server.
       [F]: Format boot device.
       [I]: Configuration and information.
       [Q]: Quit menu and continue to boot with default firmware.
       [H]: Display this list of options.
       
       Enter Selection [G]:
       Enter G,F,I,Q,or H: d [Taste "d" für Debug]
       
       dr: Disable onboard RAM.
       rt: Start RAM test.
       offc: Turn off cache.
       onc: Turn on cache.
       lpci: List all PCI devices.
       spci: Set PCI configuration registers.
       clk: Display real time clock.
       q: Quit debug mode.
       h: Display this command list.
       
       :k [Taste "k" für Scan Flash]
       
       Flash CS0 is configured as a I/O based NAND controller at address=FF80h
       Flash I/O not enabled in MSR_DIVIL_BALL_OPTS
       ID NAND device returned ... AD 76 AD 76 AD 76 AD 76
       ROM manufacturer=AD device=76
       The ROM is a 64 MB Hynix HY27US08121M device
       Scan and verify Nand flash's block(Blocks=0X1000)-->
       List existing bad block(s):
       ------------------------------
       ------------------------------
       start_block-->0x000               [Gebe ein 000]
       end_block-->0xfff                 [Gebe ein fff]
       Testing block: 0X0000~0X0FFF of 0X0401
       Block[0X0401]->Error at offset:0X006C, written:0XB6, read:0XB4
       Block[0X0401]->Error at offset:0X0089, written:0X1A, read:0X0A
       Block[0X0401]->Error at offset:0X0129, written:0XB1, read:0X91
       Block[0X0401]->Error at offset:0X012F, written:0X0E, read:0X0A
       Block[0X0401]->Error at offset:0X04DD, written:0XA6, read:0XA4
       Block[0X0401]->Error at offset:0X0532, written:0X67, read:0X47
       Block[0X0401]->Error at offset:0X0537, written:0XDB, read:0X5B
       Block[0X0401]->Error at offset:0X0593, written:0X9A, read:0X8A
       Block[0X0401]->Error at offset:0X05C4, written:0XE1, read:0XC1
       Block[0X0401]->Error at offset:0X07E4, written:0X7C, read:0X5C
       Block[0X0401]->Error at offset:0X092F, written:0XC5, read:0XC1
       Block[0X0401]->Error at offset:0X0C85, written:0XDC, read:0X9C
       Block[0X0401]->Error at offset:0X1085, written:0XD0, read:0X90
       Block[0X0401]->Error at offset:0X1485, written:0XE4, read:0XA4
       Block[0X0401]->Error at offset:0X17E4, written:0X20, read:0X00
       Block[0X0401]->Error at offset:0X1885, written:0X5E, read:0X1E
       Block[0X0401]->Error at offset:0X1891, written:0XB6, read:0X36
       Block[0X0401]->Error at offset:0X1C85, written:0XF8, read:0XB8
       Block[0X0401]->Error at offset:0X1FE4, written:0X68, read:0X48
       Block[0X0401]->Error at offset:0X2085, written:0XD1, read:0X91
       Block[0X0401]->Error at offset:0X2C85, written:0XC2, read:0X82
       Block[0X0401]->Error at offset:0X3485, written:0X47, read:0X07
       Block[0X0401]->Error at offset:0X3885, written:0X73, read:0X33
       Block[0X0401]->Error at offset:0X3C85, written:0XF7, read:0XB7
       Testing block: 0X0000~0X0FFF of 0X0FFF
       At least one block verification failed!
       Nand flash chip's block status:
       Failed block of verification: 0401 ------- Found one bad block
       
       Want to mark the above block(s) as bad blocks?... (y/n) y [Taste "y" um die bad Blocks zu markieren]
       ------------------------------
       Bad block already: 0X0401
       ------------------------------
       Mark failed block(s) of verification as bad block(s)!
       
       Recreate bad block table) - (y/n) y [Taste "y" um die Neuerstellung durchzuführen]
               
       
       - Verlasse den "Debug" Mode mit q und stelle die Firmware wieder her dh. führe folgendes durch:
       
       Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F

Wie kann ich meine Hardware testen (Troubleshooting/HQIP Testing)?

Unter folgender Link (Menü Hardware Troubleshooting) findet man eine Uebersicht von Informationen. Diese Informationen stellen verschiedenen Files/Tools etc. zur Verfügung um eine Hardware zu testen und/oder event. neu zu initialisieren (staging):

        http://emea.fortinet.net/fortinet/troubleShooting.php

Unter "Advanced Hardware Test" findet man die Images für ein HQIP Test. Dies bedeut auf die Fortigate wird temp. ein Image über TFTP hochgeladen und dieses ausgeführt. Durch die Ausführung werden Hardware Test's (Script's) und Diagnosen ausgeführt und angezeigt/aufgelistet. Dieser Output kann über die Telnet Session gespeichert werden und wird oft vom Fortinet Supporter angefordert um bei Problemen festzustellen ob es sich beim Problem um ein Hardware Relevantes Problem handelt:

        http://emea.fortinet.net/fortinet/aht/index.php

Um einen HQIP Test durchzuführen gehe folgendermassen vor:

        -> Lade das entsprechende Image herunter 
        -> Benenne das File um nach "image.out" und verschiebe diese in das root Verzeichnis eines TFTP Servers 
           
           SolarWinTFTP Server http://www.solarwinds.com/products/freetools/free_TFTP_server.aspx
        
        -> Verbinde dich per Telnet oder SSH auf die Fortigate und führe folgenden Befehl durch:
           
           # execute backup config tftp myconfig.cfg [IP TFTP Server]
           Please wait...
           Connect to tftp server [IP TFTP Server] ...
           #
           Send config file to tftp server OK.
           Setting timestamp
        
        -> Nun führe einen Reboot aus:
        
        # execute reboot
        This operation will reboot the system !
        Do you want to continue? (y/n)y
        
        Please stand by while rebooting the system.
        Restarting system.
        üInit SSP ...OK
        Read SPI ...OK
        
        
        FortiGate-60C (18:52-06.18.2010)
        Ver:04000010
        Serial number: FGT60C3G10024815
        CPU(00): 525MHz
        Total RAM:  512 MB
        NAND init... 128 MB
        MAC Init... nplite#0
        Press any key to display configuration menu...
        
        Unterbreche den Boot-Prozess durch "Press any key"
        
        
        [G]:  Get firmware image from TFTP server.
        [F]:  Format boot device.
        [I]:  Configuration and information.
        [B]:  Boot with backup firmware and set as default.
        [Q]:  Quit menu and continue to boot with default firmware.
        [H]:  Display this list of options.
        
        Enter G,F,I,Q,or H:G
        
        Please connect TFTP server to Ethernet port 'Any of port 1,2,3,4,5'.
        
        Enter TFTP server address [192.168.1.168]: [IP Adress TFTP Server]
        Enter local address [192.168.1.188]: [IP Adress Fortigate Port 1-5]
        Enter firmware image file name [image.out]:image.out
        MAC:00:09:0f:e5:8f:a6
        
        Connect to tftp server 193.193.135.65 ...
        
        #########################################
        Receiving Image OK.
        
        ACHTUNG Beim nächsten Menüpunkt wähle "R" dh. NICHT Speichern sondern NUR Ausführen!
        
        Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?R
        reading boot image 1538645 bytes.
        Initializing firewall...
        
        System is started.
        
        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 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. Nachfolgend ein Output eines solchen Tests für eine 60C:

       Datei:Hqip-output.txt

Um die Fortigate wieder in den Orginalzustand zu versetzen führe ein Login 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

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

Eine Fortigate erkennt die Hard Disk nicht mehr oder diese muss neu Formatiert werden?

Wenn die Situation eintrifft, dass auf einer Fortigate die Hard Disk nicht mehr erkannt kann das vers. Gründe haben dh.:

       Das System gibt an, dass die Disk einen Fehler hat!
       Das Operating System wurde modifiziert!
       Die Disk ist voll!
       Das System erkennt die Disk nicht mehr!
       Die Formatierung der Disk schlägt fehl!
       ACHTUNG Durch die nachfolgende Prozedur werden ALLE Daten auf dem Device gelöscht! Es stehen nicht für
               alle Devices solche Image's zur Verfügung da je nach Architektur des Devices dieser Vorgang möglich
               ist oder nicht. Folgender Link gibt Auskunft ob ein solches Image für den entsprechenden Device zur
               Verfügung steht (http://emea.fortinet.net/fortinet/iht/index.php)

Um die Prozedur durchzuführen muss folgende Vorbereitung getroffen werden:

      Serielle Consolen Verbindung mit folgenden Einstellungen:
      
      8 bits 
      no parity 
      1 stop bit 
      9600 baud (the FortiGate-300 uses 115,000 baud) 
      Flow Control = None
      
      TFTP Server für die Uebertragung des Images:
      http://www.solarwinds.com/products/freetools/free_TFTP_server.aspx
      
      LAN Kabel verbunden mit dem Device:
      
      "Interface Internal", für Modell 200, 300, 500, 800, 800F 
      "Interface Internal 4 ", für Modell 100A, 200A, 300, 
      "LAN Interface port1", für Modell 300A, 400, 400A, 500A, 1000 oder höher
      "LAN2", für FortiLog 800 
      
      Das entsprechende Image für den Device (kopiere dieses als "image.out" ins "root" des TFTP Servers und starte diesen):
      
      http://emea.fortinet.net/fortinet/iht/index.php

Wenn die Voraussetzungen gegeben sind gehe folgendermassen vor:

      --> Einschalten des FortiGate Devices 
      
      --> Sobald folgendes erscheint breche den Startvorgang ab "Press Any Key To Download Boot Image"
      
      --> Danach führe folgendes aus:
          
          Enter tftp server address [192.168.1.168]: 192.168.1.168 
          Enter local address [192.168.1.188]: 192.168.1.188 
          Enter File Name [image.out]: image.out 
          Press R to run the Hardisk Format image 
      
      --> Führe einen Neustart aus und kontrolliere ob die Prozedur erfolgreich war:
          
          # get sys stat

Signaturen Update, DNS Resolution funktonieren nicht auf einer 100D; Was ist zu tun?

Die Fortigate 100D ist mit einem dezidierten Mgmt. Interface ausgerüstet. Wie bei anderen Fortigate's ist auf diesem dezidierten Mgmt. Interface die Default IP 192.168.1.99 konfiguriert! Ueber das Mgmt. Interface laufen zB DNS Resolution, Signaturen Updates etc. Aus diesem Grund muss das Mgmt. Interface über Internet Access verfügen damit dieses übers Internet die nötigen Informationen runterladen/erhalten kann (FortiGuard/FortiCare, DNS usw.). Bei einer 100D ist das Mgmt. Interface nicht in der VDOM "root" sondern in einer seperaten VDOM (dmgmt-vdom). Wird diesem Umstand nicht Rechnung getragen verfügt dieses Interface reps. VDOM (dmgmt-vdom) nicht über Internet Access. Der Umstand, dass dieses Mgmt. Interface in der VDOM (dmgmt-vdom) ist wird über das Mgmt. Gui nicht abgebildet. Möchte man das Interface in die VDOM "root" verschieben indem sich das WAN Interface befindet (Internet Access) so führe folgendes auf der Kommandozeile durch:

       # config system global
       # set management-vdom root
       # end

Möchte man auf einer 100D ein Interface für ausschliesslich Mgmt. Zwecke konfigurieren so kann folgendes über Kommandozeile konfiguriert werden:

       # config system dedicated-mgmt
       # set status [enable | disable]
       # set default-gateway [IPv4 Adresse]
       # set dhcp-server [enable | disable]
       # set interface [Name des Interfaces zB "port1"]
       # end

Wenn zusätzlich zu dieser Konfigurationspunkt eine IP und/oder ein IP Range konfiguriert werden möchte die den Zugriff auf das Management Interface einschränkt kann folgendes auf dem entsprechenden Interface konfiguriert werden:

       # config system interface
       # edit [Name des Interfaces zB "port1"]
       # set trust-ip-1 [IPv4 Adresse plus Subnet zB 0.0.0.0/24]
       # set trust-ip-2 [IPv4 Adresse plus Subnet zB 0.0.0.0/24]
       # set trust-ip-3 [IPv4 Adresse plus Subnet zB 0.0.0.0/24]
       # end

Was ist zu berücksichtigen beim Betrieb einer FortiGate 30D?

Wenn man eine FortiGate 30D in Betrieb nimmt und auf das Mgmt. Gui zugreift, fällt einem auf das dort das Gui sich anderst gibt als dies -normal wie bei einer anderen FortiGate- der Fall ist. Grundsätzlich sind die Gui's der FortiGate's immer gleich dh. für jedes Gerät. Natürlich können über die Position "System > Config > Feature" (FortiOS 5) und/oder "System > Config > Admin Settings" (FortiOS 4) Features aktiviert und deaktiviert werden, jedoch der Aufbau gibt sich immer gleich! Bei der FortiGate 30D ist dies nicht mehr der Fall dh. durch Fortinet wurde für den Device ein "GUI-Light" eingeführt/implementiert. Wenn man unter den zur Verfügung stehende Befehlen in der Kommandozeile nach einer Möglichkeit sucht (config system global), die verschiedenen Features resp. Gui ein- oder auszuschalten, bleibt die Suche erfolglos. Ebenso sucht man vergebens nach der Position um Features unter "System > Config > Features" zu aktivieren und/oder deaktivieren. Dies bedeutet das Gui der FortiGate 30D kann nicht durch Features und/oder Kommandozeile manipuliert werden. Features -und mehr- die der Device FortiGate 30D nicht untersützt wurden komplett weggelassen. Dieser Umstand ist zu berücksichtigen beim Einsatz einer FortiGate 30D um diese korrekt zu Positionieren und in Einsatz zu bringen (Fortinet:ProduktInfo#FortiGate-30D). Welche Features die FortiGate 30D untersützt sieht man anhand der Software Matrix:

       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       NOTE Ab FortiOS 5.0.6 wurde das Gui erweitert durch den Wirlesss Controller dh. ab FortiOS 5.0.6 kann der
            Wirless Controller über Kommandozeile aktiviert werden und ist somit über Gui ersichtlich. Ebenfalls
            wurde der 30D die Möglichkeit gegeben 2 FortiAP's zu managen was vorgängig nicht möglich war. Das 
            Kommando um den Wirless Controller auf dem Gui einzblenden ist der folgende:
            
            # config system global
            # set gui-wireless-controller enable
            # set gui-ap-profile enable
            # end

Nachfolgend einen kurzen Einblick in das Gui der FortiGate 30D das durch Fortinet "Gui-Light" genannt wird:

       Es stehen folgende Menüpunkt grundsätzlich zur Verfügung:
       
       Fortinet-825.jpg
       Desweiteren innerhalb der Menüpositonen steht folgendes zur Verfügung:
       
       Dashobard & Monitor
       Fortinet-826.jpg
       System
       Fortinet-827.jpg
       Firewall & VPN
       Fortinet-828.jpg
       Security Profiles
       Fortinet-829.jpg
       User & Device
       Fortinet-830.jpg
       Log & Report
       Fortinet-831.jpg

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 ist es möglich mit nachfolgenden Kommando die Disk (inkl. Boot Disk) mit einem "low level" Format vollumfänglich zu löschen:

       # execute erase-disk
       
       NOTE Dieses Kommando führt wie schon erwähnt einen "low level" Format durch sowie überschreibt jeden
            Block auf dem Device 3 X mit zufälligen Daten!


Gibt es eine Uebersicht wie die Luftzirkulation (Airflow) einer FortiGate aussieht?

Ja diese gibt es jedoch nur für Device's 100D und grösser! Folgende Dokumente zeigen in einfachster Art und Weise wie die Kühlung resp. die Luftzirkulation einer FortiGate durchgeführt wird. Diese Uebersicht gibt es für folgende Geräte:

       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

PowerSupply

Kann man für FortiGate's seperate Spare und/oder Redundante PowerSupply (RPS) beziehen?

Für die verschiedenen Geräte der FortiGate Reihe kann man seperate PowerSupply beziehen. Ebenfalls stehen bei grösseren Geräten RPS (Redundant PowerSupply) zur Verfügung. Nachfolgende Tabelle zeigt welche PowerSupply mit welchen Produkte Code zu welchen Gerät zur Verfügung steht:

       Fortinet-1081.jpg
       Fortinet-1082.jpg

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 bestellt über Fortinet 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:FAQ#Welche_FortiGate.27s_unterst.C3.BCtzen_SFP.27s_und_bei_welcher_FortiGate_werden_SFP.27s_mitgeliefert.3F

Welche FortiGate's unterstützen SFP's und bei welcher FortiGate werden SFP's mitgeliefert?

Nachfolgende Tabelle zeigt welche FortiGate's wieviele SFP's unterstützen und bei welchem FortiGate Modelle 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: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 

Ausgehend von den "offiziellen" Tranceiver von Fortinet (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)

Was sind die genauen Spezifikationen der SFP's die von Fortinet bestellt und/oder für die FortiGate's 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:FAQ#Welche_FortiGate.27s_unterst.C3.BCtzen_SFP.27s_und_bei_welcher_FortiGate_werden_SFP.27s_mitgeliefert.3F

In der nachfolgenden Tabelle werden nun deren Technischen Spezifikationen aufgelistet:

       Fortinet-1087.jpg
       Fortinet-1129.jpg

ASIC/Hardware Acceleration

Was ist/bedeutet die FortiASIC-Based Technology?

FortiASIC ist grundsätzlich zu verstehen als Hardware Beschleunigung um den Durchsatz zu erhöhen. Nachfolgendes Dokument gibt Auskunft über die eingesetzte Technology:

       Datei:Fortinet-ASIC-Based-Advantage.pdf

Was bedeutet das, wenn eine FortiGate über eine "Hardware Acceleration für Netzwerk Ports (NP2)" verfügt?

Wenn eine Firewall "Stateful Inspection" durchführt um den Traffic zu verarbeiten wird dies durchgeführt indem die TCP/UDP Header's auf Stufe (OSI Layer) 3 und 4 angeschaut werden. Die Durchführung dieser Verarbeitung sollte nicht Abhängig sein von Grösse oder Aufkommen des Traffic. Dies stellt bei vers. Firewall's ein Problem dar dh. wenn kleine Packages verarbeitet werden müssen steigt die CPU Auslastung da mehr Headers Analysiert werden müssen. Dies bedeutet die Verarbeitung ist Quantitätsabhängig und nicht grössen Abhängig. Genau hier greift die "Hardware Acceleration" dh. speziell integrierte "application-specific integrated circuits (ASIC)" beschleunigen diese Verarbeitung der TCP/UDP Headers in den Stufen (OSI Layer) 3 und 4. Diese Verarbeitung wird auf den Ports resp. "Hardware Acceleration" durchgeführt um die Auslastung zu verteilen und dies unabhängig von der Grösse des Packets. Damit wird gewährleistet, dass Performance sensitive Services kontinuierlich ihren Durchsatz halten können egal wieviele Packete verarbeitet werden müssen. Fortinet ist der einzige Hersteller die diese Art der Technology (ASIC) in Ihre Devices integriert und kontinuierlich weiterentwickelt. Informationen über diese Technologie findet man auf folgenden Link:

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

Der Kern dieser Technology die Fortinet einsetzt ist die Verwendung des ASIC und dessen NP2 "Hardware Accelerated Network Ports" um den CPU zu entlasten. Aus diesem Grund ist es wichtig bei solchen Devices diese Ports richtig zu verwenden dh. Ports die "nicht" über eine "Hardware Acceleration" verfügung für Synch oder Mgmg. Interfaces zu verwenden und die "Hardware Accelerated" Ports für Services oder Komunikation die sensitive betreffend Performance reagrieren um einen kontinuierlichen Datendurchsatz zu gewährleisten. Ebenfalls zu berücksichtigen sind im Enterprise Bereich die verschiedenen Versionen des ASIC dh. ob diese optimiert wurden für spezielle Aufgaben wie zB IPS. Ein Beispiel zeigt sich in der FortiGate-100D die über einen ASIC verfügt der im IPS Bereich optimiert wurde (siehe Datenblatt Fortinet:ProduktInfo) und somit speziell in diesem Bereich einen hohen Datendurchsatz erzielt gegenüber anderen Devices im gleichen Segment wie zB die FortiGate-200B. Nachfolgend ein Dokument das bildlich die Architektur der FortiGate kurz aufzeigt:

       Datei:FortiASIC TB.pdf
       

Im Oktober 2013 hat Fortinet nachfolgendes Dokument released das die Hardware Acceleration erklärt und die einzelnen Funktionen erklärt:

       Datei:Fortigate-hardware-accel-50.pdf

Um die eingesetzte Hardware sprich ASIC Version abzufragen können folgende Befehle über die CLI abgesetzt werden (Beispiel FortiGate-60C):

       # get hardware status 
       Model name: FortiGate-60C
       ASIC version: CP0
       ASIC SRAM: 64M
       CPU: FortiSOC
       RAM: 936 MB
       Compact Flash: 7669 MB /dev/sda
       Hard disk: 7640 MB /dev/sda
       USB Flash: not available
       # get hardware cpu
       Processor       : FA526id(wb) rev 1 (v4l)
       model name      : FortiSOC
       BogoMIPS        : 524.28
       Features        : swp half thumb 
       
       Hardware        : FSoC_ASIC
       Revision        : 0000
       Serial          : 0000000000000000
       Imp: 0x66 Arch: 0x5 Part: 0x626 Ver: 0x1
       Ctype: 7 DSize: 6 DASS: 8 DLEN: 32 ISize: 6 IASS: 8 ILEN: 32
       Unified TLB: Associativity 4
       0x00003177 HUM: En Vec Base:0xffff0000 IC:En BP:Dis RomP:Dis
       SysP:En WB:Dis DC: En Align:En
       0x00000007 SB: En DB:En RS:En

Weitere Informationen welche ForgiGate über welche Hardware zB RAM, NP, SoC usw. verfügt siehe folgender Artikel:

       Fortigate:FAQ#Wo_finde_ich_eine_Kurz.C3.BCbersicht_welche_FortiGate_zB_mit_wieviel_Memory_kommt.2C_ob_ein_SOC_und.2Foder_NP_verbaut_ist_usw.3F

Was ist der Unterschied der verschiedenen FortiASIC's?

Wenn man von FortiASIC's spricht dann sind das grundsätzlich CPU's die in einer FortiGate spezielle Funktionien übernehmen und diese mit hoher Performance abarbeiten. Nachfolgender Artikel zeigt welche ASIC's im welchen Gerät verbaut sind:

       Fortigate:FAQ#Wo_finde_ich_eine_Kurz.C3.BCbersicht_welche_FortiGate_zB_mit_wieviel_Memory_kommt.2C_ob_ein_SOC_und.2Foder_NP_verbaut_ist_usw.3F

Wenn man die verschiedenen ASIC's gegenüberstellt haben diese verschiedenen Aufgaben die diese speziell verarbeiten dh. speziell spezialisiert sind um eine hohe Performance zu gewährleisten. Nachfolgende Abbildung zeigt solch eine Gegenüberstellung:

       Fortinet-1095.jpg

Betreffend NP4 und/oder NP6 stellt sich die Frage welche Voraussetzungen müssen gegeben sein damit eine "Acceleration" durch den ASIC resp. NP4 und/oder NP6 durchgeführt wird. Nachfolgend eine Aufstellung der Vorraussetzungen:

       NP4: Fast path requirements
       • Layer 2 type 0x0800 (802.1q und 802.3ad* werden unterstützt)
       • Layer 3 muss IPv4 sein
       • Layer 4 muss UDP, TCP oder ICMP sein
       • SNAT und DNAT werden unterstützt
       • Hinzufügen von Security Inspection wie UTM Profiles (flow and proxy-based) deaktiviert "fast path" (Acceleration)
       • QoS ist nicht unterstützt
       • Eingehende Packet dürfen nicht Fragmentiert sein
       • Mischen von "fast path" und "non-fast path" Traffic ist möglich zB FTP "control" Packete werden möglicherweise nicht "offloaded" jedoch "FTP data" schon!
       
       * Traffic must be handled by same NP
       NP6: Fast path requirements
       • Layer 2 type 0x0800 / 0x86dd (802.1q and 802.3ad* werdenunterstützt)
       • Layer 3 kann IPv4 oder IPv6 sein
       • Layer 4 kann UDP, TCP, ICMP oder SCTP sein
       • SNAT und DNAT sind unterstützt
       • Intra-VDOM Traffic wird unterstützt
       • Traffic mit Session Helper ist unterstützt
       • Hinzufügen von Security Inspection wie UTM Profiles (flow and proxy-based) deaktiviert "fast path" (Acceleration)
       • QoS ist unterstützt, "16 million queues (!) pro NP"
       • Eingehende Packet dürfen nicht Fragmentiert sein
       • Mischen von "fast path" und "non-fast path" Traffic ist möglich
       
       * Traffic must be handled by same NP

Kann man für VDom's eine Acceleration konfigurieren?

Unter bestimmten Vorraussetzungen ist dies möglich. Weitere Informationen zu diesem Thema siehe Artikel:

       Fortigate:FAQ#Kann_man_f.C3.BCr_einen_Inter-VDom-Link_eine_Interface_Acceleration_konfigurieren.3F

Was bedeutet "Asic-Offloading" und was muss ich berücksichtigen beim Troubleshooting?

FortiGate's wie auch andere Hersteller benutzen für die Acceleration ein sogenanntes "Offloading". Dies bedeutet kurz gesagt folgendes: Ein Packet/Session wird erkannt das dieses immer wieder auftritt (gleiche Source, Destination etc.). Sobald dies der Fall ist wird das Packet/Session über das "Offloading" abgearbeitet dh. es durchläuft nicht mehr den ganzen Prozess der Abarbeitung über den CPU wie Policy etc. Somit kann ein Packet massiv schneller durch die Firewall abgearbeitet werden. Wie gesagt diese Art des "Offloading" von Packeten/Sessions benutzt auch FortiGate. Der zuständige Prozessor für dieses Offloading ist der NP4 Prozessor zB bei 60D/90D/200D ist ein "NP4Lite" Prozessor im Einsatz. Siehe auch folgender Artikel:

       Fortigate:FAQ#Wo_finde_ich_eine_Kurz.C3.BCbersicht_welche_FortiGate_zB_mit_wieviel_Memory_kommt.2C_ob_ein_SOC_und.2Foder_NP_verbaut_ist_usw.3F

Was jedoch berücksichtigt werden muss, ist der Umstand das bei einem Troubleshooting nicht mehr alle Packete/Sessions unter einem Sniffer mehr angezeigt werden da diese über den NP4 Prozessor direkt abgearbeitet werden (Offloading) und somit nicht mehr über den Sniffer ersichtlich sind. Im normal Fall ist dies kein Problem und fällt nicht weiter auf. Wichtig dabei ist einfach zu wissen -das dem so ist- und was in gegebenen Umständen getan werden kann damit "alle" Packete angezeigt werden. Das "Offloading" kann für jede Policy einzel deaktiviert werden und wird folgendermassen durchgeführt:

       # config firewall policy
       # edit [Policy ID Nummer]
       # set auto-asic-offload [enable / disable]
       # end 
       
       NOTE Per Standard wird für jede Policy das "Offloading" aktiviert sofern der Device über einen
            entsprechenden Prozessor verfügt. Diese Ueberprüfung kann über die Information des Interfaces
            selber folgendermassen durchgeführt werden:
            
            # diagnose hardware deviceinfo nic [Name des entsprechenden Interfaces zB internal] | grep Driver
            Driver Name        :Fortinet NP4Lite Driver

FortiOS

Wo finde ich Dokumente die betreffend FortiOS auf dessen Hauptfunktionen eigehen?

FortiOS besteht aus hunderten Funktionen und/oder Features. Bestimmte Funktionen wie zB VDOM, WAN Optimization, Wireless etc. gehören zu den Hauptfunktionen. Aus diesem Grund hat Fortinet für diese Hauptfunktionen je ein Dokument released, dass auf diese Funktion speziell eingeht. Diese Dokumente sind nicht technischer Natur sondern "Informell" dh. diese geben Kurzauskunft über die Funktion. Nachfolgend die zur Verfügung stehenden Dokumente:

       FortiOS 5.0
       Datei:Inside-fortios-appcntrl-50.pdf          Application Control
       Datei:Inside-fortios-authentication-50.pdf    Authentication
       Datei:Inside-fortios-wanopt-50.pdf            Wan Optimization
       Datei:Inside-fortios-wireless-50.pdf          Wireless
       Datei:Inside-fortios-ha-50.pdf                High Availability
       Datei:Inside-fortios-ips-50.pdf               Intrusion Prevention System
       Datei:Inside-fortios-ipv6-50.pdf              IPv6
       Datei:Inside-fortios-load-balance-50.pdf      Load Balancing
       Datei:Inside-fortios-vdoms-50.pdf             VDOM (Virtuelle Domains)
       Datei:Inside-fortios-voip-50.pdf              VoiP
       Datei:Inside-fortios-vpn-50.pdf               VPN
       Datei:Inside-fortios-dlp-50.pdf               Data Loss Prevention (DLP)
       Datei:Inside-fortios-dos-50.pdf               DoS (Denial Of Service)
       Datei:Inside-fortios-web-filtering-50.pdf     WebFiltering
       FortiOS 5.2
       Datei:Inside-fortios-52.pptx                  Inside FortiOS

Wie werden Packete auf einem FortiOS abgearbeitet (Process Flow)?

Wenn ein Packet eine FortiGate durchläuft (Process Flow) kommen vers. Schnittstellen zum Einsatz die diese Packete beeinflussen können wie zB die UTM Scann Funktionen. Nachfolgende Aufstellung beschreibt solch einen "Process Flow" ausgehend davon, dass ein Packet auf "ein" Interface (Beispiel wan) auftrifft und als Destination "ein anderes" Interface (Beispiel internal) vorsieht:

       NOTE Diese Informationen sind für FortiOS 4 MR3 sowie FortiOS 5!
       Ein Packet erreicht das "wan" Interface:
       
       --> Es wird folgendes abgearbeitet:
           
           • DoS Sensor
           • IP integrity header checking
           • IPsec
           • Destination NAT (DNAT)
           • Routing
       
       --> Das Packet wird durch "Stateful Inspection" abgearbeitet:
       
           • Session Helpers
           • Management Traffic
           • SSL VPN
           • User Authentication
           • Traffic Shaping
           • Session Tracking
           • Policy lookup
       
       --> Das Packet wird durch "UTM Scann Prozess" abgearbeitet (Flow- oder Proxy-Based):
       
           Flow-based Inspection Engine:
       
                       • IPS
                       • Application Control
                       • Data Leak Prevention
                       • Email Filter
                       • Web Filter
                       • Anti-virus
        
           Proxy-based Inspection Engine:
        
                       • VoIP Inspection
                       • Data Leak Prevention
                       • Email Filter
                       • Web Filter
                       • Anti-virus
                       • ICAP
       
       --> "No Match" für "UTM Scann Prozess":        
       
           • IPsec
           • NAT (Source NAT)
           • Routing
           • Internal Interface
       
       --> Packet wird zur Destination ausgeliefert 

Nachfolgende Skizze zeigt diesen Prozess nochamls als Grafik:

       Fortinet-736.jpg
       
       NOTE In diesem Zusammenhang sollte der nachfolgende Artikel eingesehen werden da dieser Auskunft gibt
            Welche "Implied Rules" sowie Ports benützt werden auf einem FortiOS:
            
            Fortigate:FAQ#Was_f.C3.BCr_Incoming.2FOutgoing_.22Implied_Rules.22_sowie_Listening_Ports_existieren_bei_einer_Fortigate.3F

Was für Incoming/Outgoing "Implied Rules" sowie Listening Ports existieren bei einer Fortigate?

Weitere Informationen zu diesem Thema siehe folgender Artikel:

       Fortigate:FAQ#Was_f.C3.BCr_Incoming.2FOutgoing_.22Implied_Rules.22_sowie_Listening_Ports_existieren_bei_einer_Fortigate.3F_2

Wo finde ich eine Kurzuebersicht über die Maximum "Values" für FortiOS?

Der nachfolgende Link gibt Auskunft über die "Maximum Values" des FortiOS 5.0 / 5.2. Dies bedeutet: Da ein kleineres Gerät zB 20C sowie ein grösseres Gerät zB 100D mit dem gleichen FortiOS ausgerüstet werden kann, ergiebt sich automatisch die Frage ob sich Unterschiede ergeben in der Anzahl einer bestimmten Konfiguration? Ein Beispiel wäre: wieviele VDom's kann ich auf einer 20C erstellen und wieviele auf einer 100D:

       Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F (Dokument Fortigate "max-values")

Wo finde ich eine Uebersicht über die "Default Settings" einer FortiGate/FortiOS?

Bei einer FortiGate resp. FortiOS 5.0 gibt es die sogenannten "Default Settings" dh. eine FortiGate wird mit einer Default Konfiguration ausgeliefert. Diese unterscheiden sich je nach Modell. Folgender Artikel gibt Auskunft über diese "Default Settings" unter FortiOS 5.0:

       Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F (Dokument FortiOS 5.0 Default Settings)

Wo finde ich eine Uebersicht welcher Device FortiOS 5 unterstützt?

Weitere Informationen zu diesem Thema siehe Artikel:

       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

Gibt es eine Uebersicht welche Features durch welche Geräte unter FortiOS 5 unterstützt werden?

Unter FortiOS 4 MR3 standen im Befehlsatz (CLI) einer Fortigate grundsätzlich immer alle Befehle zur Verfügung. Spezifische Funktionen wurden unter FortiOS 4 MR3 für kleinere Geräte nicht im Mgmt. Web Interface abgebildet jedoch in der CLI standen diese dennoch zur Verfügung. Unter FortiOS 5.0 / 5.2 wurde diese Strategie geändert dh. aus verschiedene Gründen (Performance Abhängig) stehen bei kleineren Geräten diverse Funktionen -sei es auf der CLI und/oder Web Mgmt. Interface- komplett nicht mehr zur Verfügung. Um festzustellen welches Feature durch welches Geräte/Device unterstützt wird, kann die Software Matrix konsultiert werden. Siehe dazu nachfolgender Link:

        Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

FortiCloud (FAMS)

Was ist unter FortiCloud (FAMS, Fortinet Analys and Mgmt. System) zu verstehen?

Nun Fortinet Devices haben teilweise keine lokale Disk's dh. solche Geräte loggen in's Memory (RAM 10%). Ist dieser Platz vollends aufgebraucht werden die bestehenden Logs aus dem Memory wiederrum überschrieben und die alten Logs gehen unwiederruflich verloren. Wird ein Neustart des Gerätes ausgeführt werden die Logs -da im Memory gespeichert- ebenfalls komplett gelöscht. Devices mit Disk's benützen Flash basierende Disk's was für das Logging problematisch ist. Folgendes ist zu berücksichtigen um festzustellen welcher Device über welche Log Option verfügt:

       Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird das Logging bei kleineren Devices (100D und kleiner) deaktiviert?
       
       Fortigate:FAQ#Ab_FortiOS_4.3_Patch_12_sowie_FortiOS_5.0.2_wird_das_Logging_bei_kleineren_Devices_.28100D_und_kleiner.29_deaktiviert.3F 
       Ab FortiOS 5.2 wird das Logging auf Disk (FortiGate 100D und kleiner) deaktiviert und Disk steht nicht mehr zur Verfügung?
       
       Fortigate:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
       Desweiteren gibt die "Software Matrix" Auskunft welche Funktionen (Logging) auf welchem Device wie zur Verfügung steht:
       
       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

Möchte man nun diese Logs extern speichen etc. hat man mehrere Möglichkeiten:

       - FortiCloud (FAMS, Fortinet Analys and Mgmt. System)
       - FortiManager/FortiAnalyzer
       - Syslog

Dieser FortiCloud (FAMS) Service ist im "keinem" Service (Subscription) enthalten sondern steht zur Verfügung sobald ein Device registriert wurde. Der Name "FortiCloud" wird im Zusammenhang mit FortiOS 5.0.2 gebracht dh. früher hies der Service FAMS (Fortint Analys and Mgmt. System). Jedem Device steht 1 GB Storage (100 MB Log max. pro Tag und max 30 Tage Archiv) zur Verfügung (Daten werden im Datencenter in Vancouver gespeichert sowie die Komunikation in dieses Datencenter dh. von der Fortgate zur FortiCloud (FAMS) Infrastruktur ist/sind verschlüsselt). Wenn 1 GB aufgebraucht ist stoppt das Logging auf dem FortiCloud (FAMS) Server und alte Infos müssen zuerst gelöscht werden (Keine Auto-Roll Funktion). Ebenfalls können über den FortiCloud (FAMS) Service Reports erstellt werden. Diese Report's können jedoch nicht selbst erstellt werden. Die Report Funktion auf dem Device im üblichen Sinne stehen bei kleineren Geräten nicht mehr zur Verfügung (Menüpunkt fehlt vollends). Möchte man "mehr" Storage erwerben um die Daten länger aufzubewahren -auf dem FAMS Server- so kann ein Storage Contract abgeschlossen werden (Zusätzliche Subscription). Mit diesem Contract lässt sich dann individuell definieren wielange diese Logs aubewahrt werden sollen. Um den FortiCloud (FAMS) Service auf einem Gerät zu aktivieren gehe folgendermassen vor:

       Folgendes Offizielle Dokument von Fortinet gibt Auskunft ueber verschiedenen Fragen im Zusammenhang mit FortiCloud (FAMS):
       
       Datei:FortiCloud FAQ.pdf
       Datei:Forticloud-guide.pdf
       Datei:FortiCloud data sheet.pdf
       -> Erstelle auf folgenden Internet Link einen Account (kann auch über den Device selber über Menüpunkt "FortiCloud" (FAMS) > Activate erstellt werden) dh. 
       
          https://www.forticloud.com  NEW (Oktober 2012)
          http://fams.fortinet.com    OLD
       
          NOTE Sobald die entsprechende Account ID für das Gerät existiert kann unter den Einstellungen im Account
               selber (Rechts Oben am Rand) ein Master Account ID hinzugefügt werden dh. später sind diese Geräte dann 
               auch in diesem Master Account ID ersichtlich dh. für den Endkunden sollten seperate Account ID's
               erstellt werden und danach den Reseller Account als Master Account ID hinzugefügt werden! Die 
               gleiche Hirachie kann bei einem Grossen Endkunden für Niederlassungen benützt werden. Ebenfalls
               wird unter den Einstellungen in der Account ID ein allfälliger "Storage Contract" hinzugefügt. Unter den
               Einstellungen in der Account ID findet man auch eine Menüpunkt "Users". Mit diesem Menüpunkt lassen sich 
               zusätzliche User für diese Account ID erfassen die zB nur "Read-Only" Funktion haben.
       
       -> Anhand der neu erstellten Account ID kann dann der Device selber über das Dashboard registriert werden dh. wähle (Anweisungen basierend auf 4.3 MR7):
       
          System > Dashboard > Status > License Information Widget > FAMS (Activate)
        
       -> Um den Device Anzuweisen die Logs dem FAMS zu senden führe folgendes durch:
        
          Log&Report > Log Config > Log Setting > Logging and Archiving > Updload logs remotely > FAMS (In Realtime)
        
       -> Erstelle eine Policy/Rule die das Logging zum FAMS erlaubt!
        
       -> Aktiviere in den entsprechenden Policy/Rule die Logging Funktion "Log Allowed Traffic"
        
       -> Wenn kein "FortiGuard Web service" existiert auf dem Device, jedoch betreffend URL Filter ein "web activity report" 
          gewünscht ist kann dies folgendermassen erreicht werden:
        
          --> Erstelle eine URL Filter der für JEDE URL Filter matched ("^.*$")
          --> Erstelle die entsprechende Policy/Rule für diesen URL Filter
          --> Aktiviere in dieser Policy/Rule für diesen URL Filter "Log Allowed Traffic"
        
          NOTE Durch diesen URL Filter matched anhand "Regular Expression" jede URL und da das Log für diese
               Policy/Rule für den URL Filter aktiviert ist, werden die entsprechenden Infos an den FortiCloud (FAMS) 
               Server übermittelt.

Sobald der Service FAMS registriert ist so komuniziert der Device mit dem FAMS Service über folgende Ports:

          SSL over TCP Port 443, 514 und 541.

Nachfolgend einige Printscreens dieses FortiCloud (FAMS) Server und dessen Möglichkeiten:

      Fortinet-208.jpg
      Fortinet-209.jpg
      Fortinet-210.jpg
      Fortinet-211.jpg

Gibt es für den FortiCloud (FAMS) Service betreffend Device Management Funktionen wie Backup, Script etc.?

Per Default stehen diese Management Funktionen über FortiCloud (FAMS) nicht zur Verfügung denn die Funktion benötigt eine Mgmt. Konfiguration auf der FortiGate. Dies bedeutet zu diesem Zweck muss der Mgmt. Tunnel auf der FortiGate zum FortiCloud (FAMS) Service konfiguriert werden (TCP 541). Um diesen Mgmt. Tunnel zu konfigurieren führe auf dem Device folgendes aus:

       # config system central-management
       # set mode backup
       # set type fortiguard
       # end

Danach wird ein Mgmt. Tunnel in die FortiCloud (FAMS) etabliert und im Account in der FortiCloud (FAMS) können die Funktionen genutzt werden.

Ist es möglich mit dem FortiCloud (FAMS, Fortinet Analys and Mgmt. System) Service die Logs zu "rotieren" oder ein "purge" auszuführen?

Ja dies ist so möglich jedoch eingeschränkt dh. wenn über FortiGuard der Services FAMS oder neu unter "FortiCloud" genutzt wird können die entstehenden Logs auf der Platform nicht manuell manipuliert werden dh. zB ein "purge" oder ein "rotate" ausgeführt werden (Es kann nur Rolling Logs aktiviert oder deaktiviert werden)! Die Limite des FortiCloud (FAMS) Standard Accounts liegt bei max 100 MB pro Tag und max 1 GB Storage sowie 30 Tage Rotation. Wenn das Maximum erreicht ist, wird das Logging gestoppt (kein Alert über Email etc möglich) und es muss manuell eingegriffen werden resp. die Logs gelöscht werden. Weitere Informationen ueber den Service findet man im folgenden Artikel:

       Fortigate:FAQ#Was_ist_unter_FortiCloud_.28FAMS.2C_Fortinet_Analys_and_Mgmt._System.29_zu_verstehen.3F

Um die Log's manuell zu löschen muss folgendermassen vorgegangen werden:

       - Unter folgender Position "System > Dashboard > Status >License Information > FortiCloud (FAMS) > Account" erscheint folgendes:
       
         100% storage quota of FGT60C3G12005279 has been used! Logs are no longer being sent from 
         your FortiGate or FortiWiFi. Please delete some data or subscribe to the service.
       
       - Wähle unter "System > Dashboard" das "Device" Widget! Im "Device" Widget selektiere das "Icon" rechts neben dem Device Namen.
       
       - Wähle "Delete" Data. Nun kann anhand eines Datums definiert werden welche Informatione entfernt werden sollen dh. alle Daten
         "vor" dem definierten Datum werden unwiederruflich gelöscht.
       
         NOTE Weitere Informationen betreffend diesem Vorgang findet man im KB Artikel:
              
              http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33905&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=51971751&stateId=0 0 51973191

Soll ermöglicht werden die Logs zu rotieren (Definierung der Tage für die Rotation) resp. zu verwalten so muss betreffend "FortiCloud" (FAMS) ein Zusatz Vertrag (Subscription) erworben werden der dies danach ermöglicht:

       FC-10-90801-131-02-12      1 year FortiCloud Basic Service with up to 200GB of storage for a single FortiGate

Unter Dashboard erscheint unter FortiCloud Status die Meldung "Activation Pending. Please view confirmation email"?

Wenn FortiCloud (FAMS) aktiviert wird kann es vorkommen, dass nach der Aktivierung diese Meldung auf dem "Dashboard" unter FortiCloud bestehen bleibt und die Aktivierung nicht abgeschlossen werden kann. Ist dies der Fall führe folgendes durch:

       # config system fortiguard-log
       # unset service-account-id
       # end

Durch "unset service-account-id" wird der Cache betreffend ID gelöscht. Danach kann anhand folgendes Kommando die Aktivierung mitverfolgt werden:

       # execute fortiguard-log update

FortiSandbox

Unter FortiOS 5.0.4 steht der Menüpunkt "FortiSandbox" zur Verfügung, Um was handelt es sich dabei?

Nun wenn man das FortiOS 5.0.4 installiert bemerkt man einen neuen Menüpunkt unter folgender Position:

       System > Config > FortiSandbox
       
       Datei:Fortinet-807.jpg

Bei dieser Position handelt es sich um die Anbindung einer Appliance für die Antivirus Funktion (Sandbox) die generell in der FortiCloud zur Verfügung steht;

       Fortinet-808.jpg
       
       NOTE Diese Menüposition ist ebenfalls beschrieben im Abschnitt "Antivirus":
            
            Fortigate:FAQ#Was_bedeutet_im_Antivirus_Profile_die_Funktion_.22Inspect_Suspicious_Files_with_FortiGuard_Sandbox.22.3F

Bei dieser Funktion wird ein sogenanntes "Suspicious" File (Verdacht auf Virus etc.) in die FortiCloud gespielt in eine Sandbox (Pro FortiCloud Account eine Sandbox). Fortinet Analysiert dieses "Suspicious" File und im Falle eines neuen Viruses fliessen die neuen Erkenntnisse ins neuste Antivirus Definition File. Die Analyse die Fortinet durchführt hängen von verschiedenen Faktoren ab wie zB die momentane Gefahrensituation! Es versteht sich von selber das es "Enterprise" Unternehmen aus SOC Compliance Gründen nicht erlaubt ist solche Files in eine Cloud zu analyse Zwecken zu übermitteln. Aus diesen Gründen steht diese Appliance zu Verfügung die ein "Enerprise" Unternehmen nutzen kann im "local" Network um solche "Suspicious" Files aufzuspielen. Die Analyse selber wird nachwievor durch Fortinet resp. durch FortiGuard Service durchgeführt mit dem Unterschied das die Files nicht in die FortiCloud gespielt werden sondern auf die Appliance die sich im "local" Network befindet. Eine Uebersicht betreffend Sandbox gibt folgendes offizielle Dokument:

       Datei:Head First into the Sandbox.pdf

Prozesse

Prozess "cmdbsvr" zeigt permanente 99% Auslastung und/oder ist im "D" status was kann ich dagegen tun?

Der Prozess "cmdbsvr" der unter "diagnose sys top" aufgelistet ist, ist zuständig für die Konfiguration sowie schreibt diese auf die Disk:

      Run Time:  0 days, 0 hours and 15 minutes
      13U, 5S, 82I; 443T, 276F, 78KF
                newcli      100      R <     2.8     4.0
               cmdbsvr       28      D       17.6    1.1
                httpsd       89      S       0.0     4.6
                httpsd       45      S       0.0     4.6
             ipsengine       62      S <     94.6    22.1
                 fgfmd       85      S       0.0     4.1
                newcli       97      S <     0.0     4.0
               miglogd       43      S       0.0     4.0
                cw_acd       87      S       0.0     3.8
             scanunitd       93      S <     0.0     3.7
             scanunitd       92      S <     0.0     3.7
             forticron       63      S       0.0     3.6
             scanunitd       52      S <     0.0     3.4
                 authd       65      S       0.0     3.4
        merged_daemons       61      S       0.0     3.4
             urlfilter       64      S       0.0     3.4
                 quard       80      S       0.0     3.4
        dlpfingerprint       71      S       0.0     3.3
                 sqldb       67      S       0.0     3.3
             eap_proxy       83      S       0.0     3.3

Dieser Prozess darf auf keinen Fall mit "diagnose sys kill 11" beendet sowie neu gestartet werden. Wenn dies durchgeführt wird, besteht die Gefahr eines "vollständigen Konfigurations Verlustes". Wenn der Prozess "cmdbsrv" sich im Status "D" befindet versucht dieser im Hintergrund die aktuelle Konfiguration und/oder Aenderung der Konfiguration auf die Disk zu schreiben und dies ist nicht möglich. Gründe dafür sind oft, dass die Flash Disk korrupt (File System Error; Bad Blocks) ist und daher der Lese-/Schreibvorgang nicht erfolgreich durchgeführt werden kann. Die Disk resp. das Flash sollte daher überprüft werden sowie der Device neu aufgesetzt werden. Nachfolgender Artikel gibt nähere Auskunft wie das Flash überprüft wird (sofern möglich):

       Fortigate:FAQ#Auf_einer_Fortigate_sieht_man_Fehlernachrichten_betreffend_.22NAND_bad_blocks_.2F_crc_errorINITTAR.22.21_Was_ist_zu_tun.3F

Nachfolgender Artikel gibt Auskunft darüber wie ein FortiGate Device neu augesetzt wird:

       Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F

Prozess "miglogd" zeigt permanente 99% Auslastung und/oder FortiGate reagiert sehr langsam?

Der Prozess "miglogd" stellt den Log Deamon auf einem FortiOS dar dh. wenn dieser Deamon permanent auf 99% läuft und auf Disk geloggt wird kann es sein, dass die Disk einen Fehler hat (block error). Um die Situation zu entschärfen sollte das Logging sofort abgeschaltet werden dh:

       # config log disk setting
       # set status disable
       # end

Es ist zu empfehlen nachträglich einen Neustart auszuführen. Nach dem Neustart kann der Grund eruiert werden wieso der Deamon eine Auslastung zeigte von permanenten 99%. Es ist event. zu empfehlen mit dem folgenden Befehl die Disk neu zu formatieren (Sämtliche Daten gehen auf der Disk verloren dh. Logs und/oder Reports):

       # execute formatlogdisk

Dieser Deamon "miglogd" kann ebenfalls anhand des Debug Befehls genauer untersucht werden mit dem folgenden Kommandos:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application miglogd -1 
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable 
       NOTE Wenn der Deamon "miglogd" neu gestartet werden soll führe folgendes aus:
            
            # diagnose debug application miglogd 99

Der "diagnose debug" Befehl ist "persistent" dh. auch wenn ausgeloggt wird läuft dieser im Hintergrund weiter und belastet -je nach Debugging- den Device im hohen Masse. Aus diesem Grund ist es wichtig den Debug wiederum zu "disablen" dh. führe folgendes aus:

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

Systemstatus

Wie kann ich den Systemstatus anzeigen lassen?

Folgender Befehl zeigt den Status des Systems:

       # get system status
       Version: Fortigate-60C v4.0,build0521,120313 (MR3 Patch 6)
       Virus-DB: 14.00000(2011-08-24 17:17)
       Extended DB: 14.00000(2011-08-24 17:09)
       IPS-DB: 3.00150(2012-02-15 23:15)
       FortiClient application signature package: 1.131(2012-03-13 20:13)
       Serial-Number: FGT60C3G10024815
       BIOS version: 04000010
       Log hard disk: Available
       Internal Switch mode: switch
       Hostname: FGT60C3G10024815
       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
       Distribution: International
       Branch point: 521
       Release Version Information: MR3 Patch 6
       System time: Tue Mar 27 09:16:09 2012

Wenn zB eine einzelne Komponente/Information aus dem Output angezeigt werden soll kann dies anhand "grep" durchgeführt werden:

       # get system status | grep Hostname
       Hostname: FGT60C3G10024815
       
       NOTE Weitere Informationen zum Befehl "grep" siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Kann_ich_Linux.2FUnix_basierender_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

Nachfolgender Befehl zeig den Status des Systems betreffend Performance dh. es zeigt "Durchschnittswerte" an betreffend Auslastung:

       # 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: 36% used
       Average network usage: 0 kbps in 1 minute, 0 kbps in 10 minutes, 0 kbps in 30 minutes
       Average sessions: 1 sessions in 1 minute, 2 sessions in 10 minutes, 2 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: 0 days,  0 hours,  18 minutes

Wie kann ich die Prozesse anzeigen lassen?

Nachfolgender Befehl listet die momentanen Prozesse auf. Was die einzelnen "Spalten" bedeuten sieht man in nachfolgender Tabelle:

       # diagnose sys top
       
       Run Time:  0 days, 0 hours and 25 minutes
       6U, 2S, 92I; 443T, 259F, 78KF
                 newcli      100      R       4.7     4.3
                miglogd       40      S       0.9     4.0
                cmdbsvr       26      S       0.0     7.7
                 httpsd       88      S       0.0     4.6
                 httpsd       42      S       0.0     4.6
                 newcli       95      S       0.0     4.3
              ipsengine       59      S <     0.0     4.3
                  fgfmd       82      S       0.0     4.1
                 cw_acd       84      S       0.0     3.8
              scanunitd       90      S <     0.0     3.7
              scanunitd       89      S <     0.0     3.7
              forticron       60      S       0.0     3.6
              scanunitd       49      S <     0.0     3.4
                  authd       62      S       0.0     3.4
                   sshd       94      S       0.0     3.4
              urlfilter       61      S       0.0     3.4
         merged_daemons       58      S       0.0     3.4
                  quard       77      S       0.0     3.4
         dlpfingerprint       68      S       0.0     3.3
                  sqldb       64      S       0.0     3.3
       NOTE Um die Anzeige zu beenden führe "q" aus oder "Ctrl + c". Wenn keine zusätzlichen Angaben zum Befehl 
            hinzugefügt werden wird ein "refresh" der Anzeige alle 2 Sekunden ausgeführt. Möchte man dies erweitern zB
            alle 5 Sekunden gibt man am Ende des Befehls die entsprechende Sekunden an dh:
            
            # diagnose sys top 5
       Datei:Fortinet-307.jpg

Wie kann ich die Memory Benutzung anzeigen lassen?

Um die "Memory" Benutzung anzeigen zu lassen -sei es physikalisches und/oder shared- kann folgender Befehl abgesetzt werden:

       # diagnose hardware sysinfo mem
       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
       # 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

Wie kann ich die Hardware Informationen anzeigen lassen?

Ein Hardware Status -der detaillierte Informationen der entsprechenden Hardware anzeigt-, kann für folgende Komponenten ausgeführt werden:

       cpu
       memory
       nic
       npu
       status
       # get hardware status
       Model name: FortiGate-60D
       ASIC version: CP0
       ASIC SRAM: 64M
       CPU: FortiSOC2
       Number of CPUs: 1
       RAM: 1839 MB
       Compact Flash: 3879 MB /dev/sda
       Hard disk: not available
       USB Flash: not available
       # 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:  1928470528 295714816 1632755712        0  1990656 124264448 113721344
       Swap:        0        0        0
       MemTotal:      1883272 kB
       MemFree:       1594488 kB
       MemShared:           0 kB
       Buffers:          1944 kB
       Cached:         121352 kB
       SwapCached:          0 kB
       Active:          50656 kB
       Inactive:        72776 kB
       HighTotal:           0 kB
       HighFree:            0 kB
       LowTotal:      1883272 kB
       LowFree:       1594488 kB
       SwapTotal:           0 kB
       SwapFree:            0 kB
       # get hardware nic
       The following NICs are available:
               dmz
               eth10
               eth11
               eth4
               eth5
               eth6
               eth7
               eth8
               eth9
               internal
               wan1
               wan2
       # get hardware npu
       
       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.

Wie kann ich die CPU Informationen anzeigen lassen?

Folgender Befehl zeigt die Informationen des "cpu" an:

       # get hardware cpu
       Processor       : FA526id(wb) rev 1 (v4l)
       model name      : FortiSOC
       BogoMIPS        : 524.28
       Features        : swp half thumb 
       
       Hardware        : FSoC_ASIC
       Revision        : 0000
       Serial          : 0000000000000000
       Imp: 0x66 Arch: 0x5 Part: 0x626 Ver: 0x1
       Ctype: 7 DSize: 6 DASS: 8 DLEN: 32 ISize: 6 IASS: 8 ILEN: 32
       Unified TLB: Associativity 4
       0x00003177 HUM: En Vec Base:0xffff0000 IC:En BP:Dis RomP:Dis
       SysP:En WB:Dis DC: En Align:En
       0x00000007 SB: En DB:En RS:En
       NOTE Um weitere Informationen betreffend Hardware zu erhalten siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_die_Hardware_Informationen_anzeigen_lassen.3F

Wie kann ich rausfinden was ein High CPU verursacht und was kann ich dagegen tun?

Wenn auf einer Fortigate festgestellt wird, dass der CPU am Anschlag läuft (High CPU), möchte man herausfinden "welche" Funktion dafür zuständig ist? Folgendes kann durchgeführt werden um dies zu eruieren:

       # diagnose sys top 1
       
       NOTE Die Zahl "1" bedeutet die Refresh Rate zur Erneuerung der angezeigten Informationen!
            Um den Vorgang abzubrechen benütze "q" und/oder "Ctrl + c".

Nachfolgend ein Output der zeigt das IPS zuständig ist für die "High CPU":

       Run Time:  0 days, 0 hours and 15 minutes
       13U, 5S, 82I; 443T, 276F, 78KF
                 newcli      100      R <     2.8     4.0
                cmdbsvr       28      S       0.0     7.8
                 httpsd       89      S       0.0     4.6
                 httpsd       45      S       0.0     4.6
              ipsengine       62      S <     94.6    22.1
                  fgfmd       85      S       0.0     4.1
                 newcli       97      S <     0.0     4.0
                miglogd       43      S       0.0     4.0
                 cw_acd       87      S       0.0     3.8
              scanunitd       93      S <     0.0     3.7
              scanunitd       92      S <     0.0     3.7
              forticron       63      S       0.0     3.6
              scanunitd       52      S <     0.0     3.4
                  authd       65      S       0.0     3.4
         merged_daemons       61      S       0.0     3.4
              urlfilter       64      S       0.0     3.4
                  quard       80      S       0.0     3.4
         dlpfingerprint       71      S       0.0     3.3
                  sqldb       67      S       0.0     3.3
              eap_proxy       83      S       0.0     3.3
         NOTE "Was" die einzelnen Spalten/Positionen bedeuten kann nachfolgender Tabelle entnommen werden:
              
              Datei:Fortinet-307.jpg

Um näher die IPS Engine anzuschauen kann zB folgender Befehl benutzt werden:

       # diagnose test application ipsmonitor 
       
       IPS Engine Test Usage:
       
           1: Display IPS engine information
           2: Toggle IPS engine enable/disable status
           3: Display restart log
           4: Clear restart log
           5: Toggle bypass status
           6: Submit attack characteristics now
           7: Display dynamic profile checksum
           8: Display dynamic profile table
           9: Display dynamic profile name/ID mappings
          97: Start all IPS engines
          98: Stop all IPS engines
          99: Restart all IPS engines and monitor

Um zB die Applikation neu zu starten benutze "99":

       # diagnose test application ipsmonitor 99
       restarting ipsmonitor

Das hier gezeigte Beispiel gilt für IPS kann jedoch mit jeder anderer Applikation wie zB "Proxy" durchgeführt werden! Eine andere Variante ist den Prozess über "kill" zu beenden:

       ATTENTION Diese Variante sollte nur als "letzte" Lösung in Betracht gezogen werden da die Ausführung des 
                 Befehls für die vers. Komponenten wie zB UTM Fatale folgen haben kann!
       
       # diagnose sys kill [Kill Level/Sequenz 1 - 32 wobei 11 den Prozess stopp und neu startet] [PID des Prozesses zB. gmeäss Beispiel für ipsengine "62"]

Wie kann ich die Performance Statistik vers. Komponenten anzeigen lassen?

Nachfolgende Befehle geben Auskunft über die Performance Statistik:

       # get system performance firewall statistics
       getting traffic statistics...
       Browsing: 148387 packets, 93287246 bytes
       DNS: 3382791 packets, 242297653 bytes
       E-Mail: 0 packets, 0 bytes
       FTP: 43050 packets, 27982745 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: 1036322 packets, 84656734 bytes
       Generic UDP: 5016221 packets, 1026693620 bytes
       Generic ICMP: 381 packets, 22244 bytes
       Generic IP: 498649 packets, 52136419 bytes
       # 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: 57% used
       Average network usage: 2 kbps in 1 minute, 1 kbps in 10 minutes, 1 kbps in 30 minutes
       Average sessions: 49 sessions in 1 minute, 45 sessions in 10 minutes, 44 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: 18 days,  0 hours,  35 minutes
       # get system performance top
       Run Time:  18 days, 0 hours and 35 minutes
       6U, 7S, 87I; 936T, 395F, 123KF
                 newcli     5481      R <     4.7     1.3
              ipsengine     4168      S <     0.0     5.5
                pyfcgid     4217      S       0.0     3.9
                pyfcgid     4219      S       0.0     2.8
                pyfcgid     4218      S       0.0     2.5
                pyfcgid     4155      S       0.0     2.2
                 httpsd     4221      S       0.0     2.2
                cmdbsvr     4146      S       0.0     2.1
                 httpsd     4437      S       0.0     2.1
                sslvpnd     4183      S       0.0     1.8
                 httpsd     4154      S       0.0     1.6
                 httpsd     4220      S       0.0     1.6
                miglogd     4152      S       0.0     1.5
                  fgfmd     4210      S       0.0     1.5
                    wad     4189      S       0.0     1.4
                 cw_acd     5426      S       0.0     1.4
                 newcli     4237      S <     0.0     1.3
                src-vis     4197      S       0.0     1.3
            proxyworker     4161      S       0.0     1.3
              scanunitd     4215      S <     0.0     1.2
       
       NOTE Um das Kommando abzubrechen benütze "Ctrl + C".

Wie liste/zeige ich ich die Versionen/Informationen der einzelnen IPS, Virus Datenbanken sowie Engines auf?

Folgender Befehle gibt Auskunft über die Versionen der einzelnen Virus, IPS Datenbanken sowie Engines:

       NOTE Wenn der momentane Status dh. Konfiguration der Funktion "auto-update" angezeigt
            werden soll benütze anstelle "version" die Option "status"!
       # get system auto-update version
       AV Engine
       ---------
       Version: 5.00146
       Contract Expiry Date: n/a
       Last Updated using manual update on Tue May 21 18:01:00 2013
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Virus Definitions
       ---------
       Version: 21.00487
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan 20 00:04:00 2014
       Last Update Attempt: n/a
       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: n/a
       Result: Updates Installed
       
       Attack Definitions
       ---------
       Version: 4.00433
       Contract Expiry Date: n/a
       Last Updated using manual update on Thu Jan 16 00:33:00 2014
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Attack Extended Definitions
       ---------
       Version: 4.00433
       Contract Expiry Date: n/a
       Last Updated using manual update on Thu Jan 16 00:33:00 2014
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Flow-based Virus Definitions
       ---------
       Version: 10.00974
       Contract Expiry Date: n/a
       Last Updated using manual update on Thu Oct 22 01:00:00 2009
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Botnet Definitions
       ---------
       Version: 1.00362
       Contract Expiry Date: n/a
       Last Updated using manual update on Sun Jan 19 10:45:00 2014
       Last Update Attempt: n/a
       Result: Updates Installed
       
       IPS Attack Engine
       ---------
       Version: 2.00174
       Contract Expiry Date: n/a
       Last Updated using manual update on Thu Nov  7 13:31:00 2013
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Vulnerability Compliance and Management
       ---------
       Version: 1.00297-L
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan  6 12:41:00 2014
       Last Update Attempt: n/a
       Result: Updates Installed
       
       Modem List
       ---------
       Version: 1.025
       
       Device and OS Identification
       ---------
       Version: 1.00024
       Contract Expiry Date: n/a
       Last Updated using manual update on Mon Jan 20 09:51:00 2014
       Last Update Attempt: n/a
       Result: Updates Installed
       
       IP Geography DB
       ---------
       Version: 1.019
       Contract Expiry Date: N/A
       Last Update Date: Sat Oct  5 00:25:56 2013
       
       
       FDS Address
       ---------

Was bedeudet/ist der Unterschied zwischen "regular conserve mode" und/oder "kernel conserve mode"?

Nachfolgenden Informationen betreffen den "Conserve Mode" dh. grundsätzlich werden folgende Fragen beantwortet:

       - Um was handelt es sich beim "Conserve Mode"?
       - Was ist die Differenz zwischen dem "Regular" und/oder "Kernel" Conserve Mode?
       - Wie kann ich herausfinden ob ein FortiGate Device kurz vor dem "Conserve Mode" ist?
       - Was bedeuten betreffend Memory die Werte "Cached, Active und Inactive"?
       - Was kann getan werden um Memory Resourcen zu reduzieren um einen "Conserve Mode" zu verhindern?
       Um was handelt es sich beim "Conserve Mode"?
       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 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.
       Was ist die Differenz zwischen dem "Regular" und/oder "Kernel" 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. diese 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 
       beim Memory unter diesem Befehl nicht um das "shared memory" handelt sondern um das Physische Memory. 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 "low" Memory Limite des
       "Regular" Conserve Mode ebenfalls überschritten resp. unterschritten wird (siehe Tabelle oben unter "Regular Conserve Mode).
       Die "low" Memory Limite ist das Memory das durch den "Kernel" direkt Adressiert wird. Aus diesem Grund -wenn dieser "low"
       Bereich überschritten wird- kann der Kernel das Memory das dieser direkt Adressieren kann nicht mehr addressieren und geht
       deshalb in den "Kernel Conserve Mode". Die Limite "low" hängt vom spezifischen FortiGate Modell ab. Neuere FortiGate Modelle
       wie zB 3950/1, 140 können den gesamten Memory Speicherplatz Adressieren da diese Modelle über eine 64bit Architektur verfügen.
       
               • 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"
       
               NOTE Im GUI Dashboard unter "Alert Message Console" erscheint eine andere Meldung dh:
            
                    "FortiGate has reached system connection limit for x seconds"
       
       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 "low" Memory 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".
       Wie kann ich herausfinden ob ein FortiGate Device kurz vor dem "Conserve Mode" ist?
       Wenn man herausfinden möchte ob ein FortiGate Device kurz "vor" einem Conserve Mode steht, muss das Memory aufgezeigt
       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 (Beispile FortiGate 60D): 
       
               # 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
       
               NOTE 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 
                    entsprechend der Tabelle gilt in diesem Fall 160 MB für den "Regular" Conserve Mode. Der Befehl
                    zeigt jedoch als "MemFree" 1301008 was wiederum 1.3 GB entspricht. Somit keine Gefahr für den
                    Device für einen "Regular" Conserve Mode!
              Was bedeuten betreffend Memory die Werte "Cached, Active und Inactive"?
              Was bedeutet "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:
              
                      # 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
                               pyfcgid      228      S       0.0     1.1
                               pyfcgid      229      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
                      
                      NOTE Dieser Befehl zeigt die Memory Auslastung in Prozenten des gesamten Memory. 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 (Memory).
       Was kann getan werden um Memory Resourcen zu reduzieren um einen "Conserve Mode" zu verhindern?
       Die Frage was kann gegen werden um einen "Conserve Mode" zu verhindern ist nicht generell zu beantworten dh. je nach
       Situation kann dies unterschiedlich ausfallen. Generell kann jedoch von folgendem ausgegangen werden um Memory Resourcen
       frei zu machen oder freizugeben:
       
               • Reduziere die Anzahl Firewall Sessions. Siehe dazu Artikel:
               
                 Fortigate:FAQ#Wie_kann_ich_CPU_und.2Foder_Memory_Resourcen_tunen_.28Session_Tuning.29.3F
               
               • Reduziere die Grösse der Files betreffend Antivirus Scanning. Siehe dazu Artikel:
               
                 Fortigate:FAQ#Wie_setze.2Fblocke_ich_die_File_Limite_.28maximum_file_size.29_f.C3.BCr_den_Antivirus.3F
               
               • Deaktiviere alle nicht nötigen Features wie zB Logging, Archiving, DLP, IPS. Siehe dazu folgende Artikel:
               
               • Entferne das "content summary" (Speziell wenn kein FortiAnalyzer benützt wird).
               
               • Reduziere das Caching für Explizit Proxy, FortiGuard Antispam sowie Webfiltering.
               
               NOTE Diese Liste ist keine vollständige Liste. Wichtig ist, dass der Administrator die Auswirkungen durch
                    die nötige Konfiguration und deren Konsequenzen vollständig versteht. UTM Featurs auf "flow-based" 
                    umzustellen kann bereit Abhilfe für die Situation schaffen jedoch die Security selber ist nicht mehr
                    die Gleich wie "proxy-based"!

Gibt es ein einzelnes Kommando das verschiedene Systemrelevante Informationen ausliest/raportiert?

Ja, so ein Kommando existiert und wird "TAC Repport" genannt 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 Detailiert. 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 auf der Kommandozeile folgendes aus:

       # execute tac report
       
       NOTE Es ist "Sinnvoll" diesen Report bei der Ticket Eröffnung seitens Fortinet beizulegen
            da sehr viele relevante Informationen bereits vorhanden sind!

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

       FortiOS 5.0
       Datei:Tac-report.txt
       FortiOS 5.2
       Datei:Tac-report-52.txt

FortiExplorer

Wo kann ich die neuste Software des Forti Explorer runterladen und was ist ein Forti Explorer?

Ueber folgenden Link kann die Software des Forti Explorer runtergeladen werden:

       NOTE Um einen Devices zu verwalten unter FortiOS 5.2 muss mind. der FortiExplorer 2.4 eingesetzt werden!
            Wird der FortiExplorer 2.4 eingesetzt unter FortiOS 5.0 so muss mind FortiOS 5.0.3 oder höher
            eingesetzt werden. Um einen FortiAP über den FortiExplorer 2.4 zu verwalten benötigt man mind 
            FortiOS 5.0.4 oder höher. Der Support den FortiAP über Web zu verwalten wurde unter 2.4 und höher
            komplett entfernt. Dies bedeutet einen FortiAP kann nur anhand des FortiExplorer's über CLI
            verwaltet werden. Ob dies ermöglicht wird bestimmt die Konfiguration auf dem Wireless Controller
            der FortiGate. Weitere Informationen siehe nachfolgenden Artikel:
            
            FortiAP:FAQ#Wie_kann_ich_per_Telnet_auf_einen_Access_Point_zugreifen_wenn_der_Access_Point_.C3.BCber_keinen_Consolen_Port_verf.C3.BCgt.3F
       http://www.fortinet.com/resource_center/fortiexplorer_product_download.html
       
       Datei:Fortinet-41.jpg
       
       Ebenfalls kann der FortiExplorer über die offizielle Support Seite runtergeladen werden (Login wird benötigt):
       
       https://support.fortinet.com/Download/FirmwareImages.aspx
       

Der Forti Explorer ermöglicht es auf eine einfache Art und Weise eine Fortinet Device (FortiGate, FortiWiFi und FortiSwitch) über USB zu konfigurieren. Der Forti Explorer beinhaltet ein Command Line Interface sowie das Mgmt. Gui. Beim Mgmt. Gui handelt es sich um exakt das gleiche Gui wie im Browser. Ebenfalls kann über den FortiExplorer ein Firmware Update durchgeführt werden. Nachfolgend der UserGuide des FortiExplorer:

       Datei:Fortiexplorer-user-guide-22.pdf

Neuere Geräte zB 30D/60D werden nicht mehr mit einem klassichen Seriellen Console Port ausgeliefert. Bei diesem Geräten ist der FortiExplorer -mit Ausnahme des Browsers- die einzige Möglichkeit den Device zu Konfigurieren:

      NOTE Die Fortigate 60D sowie 90D wurde Initial mit "keinem" Consolen Port ausgeliefert! Im Dezember 2013
           announced Fortinet eine neue Hardware Revision der Fortigate 60D sowie 90D "mit" einem Consolen Port.
           Die neue Revision ist zu erkennen anhand der Revision dh. diese kann nicht über die CLI ausgelesen
           werden:
       Fortigate:FAQ#Wie_verbinde_ich_per_Consolen_Anschluss_auf_eine_FortiGate_20C.2F30D.2F60D_da_diese_.C3.BCber_keinen_solchen_Port_verf.C3.BCgt.3F

Kann ich das Konfigurieren/Managen eines FortiGate Devices über den FortiExplorer deaktivieren?

Diese Möglichkeit besteht ab FortiOS 5.2. Dies bedeutet im normal Fall kann jeder Device per Standard über ein USB Kable mit einer Workstation (Windows und/oder MAC) verbunden werden und anhand der Software des FortiExplorers verwaltet resp. konfiguriert werden. Diese Möglichkeit kann über CLI ab FortiOS 5.2 deaktiviert werden:

       # config system console
       # set fortiexplorer disable
       # end

Gibt es einen FortiExplorer für IOS Devices um meine FortiGate zu verwalten?

Ja dies gibt es dh. über ein IPhone resp. IPad kann ein FortiGate Device über den USB Port angeschlossen werden. Es ist ebenfalls möglich ein Backup/Restore durchzuführen. Im ersten Blick scheint dies einer Spielerei gleichzukommen jedoch in spez. Situation kann es durchaus Sinn machen das IPhone resp. das IPad kurz anzuschliessen um zB vor einer Konfigurationsänderung ein Backup durchzuführen. Weitere Informationen dazu findet man im "User Guide" sowie in den "Release Notes":

       Datei:FortiExplorer-for-iOS.pdf
       Datei:Fortiexplorer-v1.0.5-ios-release-notes.pdf

Consolen Port (Mgmt. Port)

Was für ein Kabel benötige ich für den Consolen Anschluss (Seriell RS232) einer Fortinet?

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 (http://www.exsys.ch/index.php?main_page=product_info&products_id=272)
       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:        http://www.exsys.ch/download/driver/EX-1301-2.zip?zenid=2567ab6c6dea337f73663f5533e5293d
       
       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]

Weitere Informationen zur genauen Pin-Belegung betreffend Fortinet Appliance und dem Seriellen Consolen Port siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_sieht_die_PIN-Belegung_des_Seriellen_Consolen_Ports_.28RS232_.2F_DB9_.2F_RJ-45_.2F_AUX.29_einer_Fortinet_Appliance_aus.3F

Wie sieht die PIN-Belegung des Seriellen Consolen Ports (RS232 / DB9 / RJ-45 / AUX) einer Fortinet Appliance aus?

Nachfolgend die technischen Informationen über die Serielle Pin-Belegung 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

Wie verbinde ich per Consolen Anschluss auf eine FortiGate 20C/30D/60D da diese über keinen solchen Port verfügt?

       NOTE Die Fortigate 60D sowie 90D wurde Initial mit "keinem" Consolen Port ausgeliefert! Im Dezember 2013
            announced Fortinet eine neue Hardware Revision der Fortigate 60D sowie 90D "mit" einem Consolen Port.
            Die neue Revision ist zu erkennen anhand der Revision dh. diese kann nicht über die CLI ausgelesen
            werden:
            
            Fortigate:FAQ#Wie_verifiziere_ich_die_Hardware_Revision_eines_FortiGate_Devices.3F

Eine FortiGate 60D (Fortinet:ProduktInfo#FortiGate-60D) ist der erste Device von Fortinet der ohne Consolen Port im eigentlichen Sinne ausgeliefert wird dh. eine FortiGate 60D hat einen sogenannten "USB Mgmt." Port. Aus diesem Grund stellt sich die Frage "Wie greift man auf die FortiGate 60D zu wenn zB über TFTP der Device neu aufgesetzt werden soll" (Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F). Die Frage ist berechtigt da so ein Vorgang Zugriff auf das Bios benötigt. Die FortiGate 60D (sowie auch 20C/30D/60D/90D) unterstützt dies über den FortiExplorer (min. Version 2.1.1038) dh. Zuerst muss der FortiExplorer installiert werden:

       Fortigate:FAQ#Wo_kann_ich_die_neuste_Software_des_Forti_Explorer_runterladen_und_was_ist_ein_Forti_Explorer.3F

Danach kann der Laptop/Workstation über USB an den "USB Mgmt" Port der FortiGate angeschlossen werden. Diese Funktion dh. das der Console Port über einen "USB Mgmt" Port angesteuert ist Device basierend und funktioniert nicht mit jedem Device. Dies bedeutet würde man diese Funktionsweise mit einer 60C testen so funktioniert zwar die Console jedoch der Bios Bereich wird nicht angezeigt:

       NOTE Verbinde den Laptop/Workstation nicht über den "USB Mgmt" der FortiGate solange der FortiExplorer 
            nicht installiert ist. Erst nachdem der FortiExplorer installiert wurde kann der Laptop/Workstation
            über USB an den "USB Mgmt" Port der FortiGate angeschlossen werden!

Sobald der FortiExplorer installiert und die FortiGate über den "USB Mgmt" Port an einem Laptop/Workstation verbunden ist kann die FortiGate eingeschaltet werden. Es erscheint im FortiExplorer folgendes:

       NOTE Als Erstes wird der Hinweis angezeigt "Press any key to display configuration menu...."! Ueber diesen
            Punkt kommt man in das Bios wie bis anhin:
       
       Datei:Fortinet-710.jpg
       Ueber den Menüpunkt "I" hat man zusätzliche Konfigurationsmöglichkeiten:
       
       Datei:Fortinet-711.jpg
       Wiederum über "I" ist zB die Hardware Information erhältlich (ist auch über CLI 
       ersichtlich Fortigate:FAQ#Wie_kann_ich_den_Systemstatus_anzeigen_lassen.3F:
       
       Datei:Fortinet-712.jpg
       NOTE Bei der Position Firmware fällt einem auf, dass diese Version keine offizielle -über den Download
            Bereich- erhältliche Firmware Version ist dh. es handelt sich hier um einen sogenannten Branche
            Release (um den Hardware Support SOC 2 der 60D zu gewährleisten). Aus diesem Grund sollte über TFTP 
            ein offizieller Release geladen werden und zwar 5.0.1 (enthält den Branche Release) oder höher:
            
            Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F
       
       Datei:Fortinet-713.jpg

Kann ich den Consolen Port auf einer FortiGate deaktivieren?

Wenn man zB verhindern möchte, dass in einem Branche Office etc. über den Console Port zugegriffen wird, kann dieser unter FortiOS 5.0 mit folgenden Befehl deaktiviert werden (Deaktiviert ebenfalls den USB Mgmt. Port):

       # config system console
       # set login disable
       # end
       
       NOTE Ab FortiOS 5.2 steht dieses Kommando ebenfalls zur Verfügung und "login" deaktiviert ausschliesslich
            den "Consolen" Port (RS232). Zusätzlich für FortiOS 5.2 hat man die Möglichkeit den USB Port der benutzt
            wird um den Device über "FortiExplorer" zu managen ebenfalls zu deaktivieren. Weitere Informationen siehe
            nachfolgenden Artikel:
            
            Fortigate:FAQ#Kann_ich_das_Konfigurieren.2FManagen_eines_FortiGate_Devices_.C3.BCber_den_FortiExplorer_deaktivieren.3F

USB Port

Was ist bei einem Anschluss eines USB Sticks an eine Fortigate zu berücksichtigen?

Der USB muss FAT16 formatiert werden! Um einen USB Stick unter Windows in dieser Art zu formatieren benütze folgendes Kommando unter einer DOS Box:

       Start > Programme/Dateien 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"]

Der entsprechende USB Device kann auch unter FortiOS formatiert werden dh. nachdem der USB Stick angeschlossen wurde an die FortiGate gebe auf der CLI folgendes Kommando ein:

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

Wenn nun über das WebGui ein Backup durchgeführt wird kann dort als Device "USB" ausgewählt werden. Wenn das Backup auf der CLI durchgeführt werden soll gebe folgendes ein:

       # execute backup ["config" oder "full-config"] usb [Name des Backup Files]
       Please wait....
       Please weit....
       
       Copy config [Name des Backup Files] to USB disk...
       Copy config file to USB disk OK.
       Setting timestamp
       
       NOTE Die Anweisung "config" wird per Standard benützt wenn die VDom Funktion nicht aktiviert ist. Ist die VDom Funktion aktiviert kann
            entweder über die Anweisung "full-config" ein Backup über die ganze Konfiguration durchgeführt oder anhand der Anweisung "config" 
            mit dem Zusatz des entsprechenden VDom Namens nur ein Backup für diese VDom.

Nachträglich -nachdem Backup- kann das File auf dem USB Stick anhand folgendes Kommando verifiziert werden dh. ob dieses auf den USB Stick geschrieben wurde:

       # execute usb-disk list
       2012-12-12 16:10:56         148177 [Name des Backup Files]

Das File kann wiederum mit folgenden Befehl über FortiOS auf dem USB Disk gelöscht werden:

       # execute usb-disk delete [Name des Backup Files]

Wie kann ich die Installation/Konfiguration einer FortiGate komplett automatisieren (USB Auto-Install)?

Eine komplette Automatisierung einer Installation sowie Konfiguration einer FortiGate ist folgendermassen möglich:

       Dazu benötigen wir 3 Vorraussetzungen:
       
       1. USB Stick FAT 16 Formatiert (Siehe Artikel Fortigate:FAQ#Was_ist_bei_einem_Anschluss_eines_USB_Sticks_an_eine_Fortigate_zu_ber.C3.BCcksichtigen.3F)
       2. Das entsprechende Image File (Firmware) der FortiGate (Siehe auch Fortigate:FAQ#Wie_f.C3.BChre_ich_einen_manuellen_Firmware_Update_durch.3F)
       3. Das entsprechende Konfig File dh. equal einem Backup File!

Danach kann über Gui die entsprechende Konfiguration gesetzt werden dh. :

       System > Config > Advanced > USB Auto-Install
       
       Aktiviere hier die Funktionen für das Image oder die Konfiguration und gebe die entsprechenden Namen der Files ein
       die auf dem USB Device benützt werden! Die Konfiguration kann ebenfalls über die CLI durchgeführt werden:
       
       # config system auto-install
       # set default-config-file [File Name]
       # set auto-install-config [enable oder disable]
       # set default-image-file [File Name]
       # set auto-install-image [enable oder disable]        
       # end

Danach kann der entsprechende USB Device mit den entsprechenden Files an eine FortiGate angeschlossen werden sowie die FortiGate gestartet werden!

       NOTE Es empfiehlt sich den Vorgang zu Testzwecken über die Console zu beobachten um Fehler zu eruieren!

Firmware

Ist es möglich ein Firmware Wiederherstellung durchzuführen?

Ja, es ist möglich ein Firmware Wiederherstellung durchzuführen (über TFTP) jedoch nur über eine Serielle Console. Verfügt das Gerät über keine klassische Serielle Console so wie eine FG-20C, FG-30D und FG-60D siehe Artikel:

       Fortigate:FAQ#Wie_verbinde_ich_per_Consolen_Anschluss_auf_eine_FortiGate_20C.2F30D.2F60D_da_diese_.C3.BCber_keinen_solchen_Port_verf.C3.BCgt.3F

Die klassiche Serielle Console muss folgendermassen konfiguriert sein auf dem Client:

       ACHTUNG Dieser Vorgang ist nicht zu benutzen für ein Update sondern ist nur für eine WIEDERHERSTELLUNG der Firmware gedacht!
               Dies bedeutet diese Wiederherstellung löscht ALLE vorhandenen Konfigurationspunkt  sowie das Image (FortiOS) selber und 
               stellt den "Factory-Default" wieder her!
       8 bits 
       no parity 
       1 stop bit 
       9600 baud (the FortiGate-300 uses 115,000 baud) 
       Flow Control = None 
       
       NOTE Weitere Informationen betreffend RS-232 Console findet man im folgenden Artikel:
            
            Fortigate:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F

Steht kein TFTP Server zur Verfügung empfehle ich folgenden frei verfügbaren TFTP Server:

       SolarWindsTftpServer

Dieser TFTP Server kennt im Gegensatz zu anderen nicht die nach RFC definierte max. Grösse von 32 MB. Lade diesen TFTP Server von der orginal Seite heruntern:

       http://www.solarwinds.com/products/freetools/free_TFTP_server.aspx

Die Installation ist denkbar einfach dh. einfach installieren und starten. Danach auf der ersten Maske darauf achten, dass der TFTP Server Root Bereich definiert wurde und der Server gestartet wurde/ist. Danach kann gemäss Fortigate:FAQ#Wie_f.C3.BChre_ich_einen_manuellen_Firmware_Update_durch.3F die Firmware runterladen werden zB "FGT_60C-v400-build0521-FORTINET.out". Kopiere dieses File in den Root Bereich des TFTP Server und benenne dieses um nach image.out. Etabliere zwischen der Fortigate und dem TFTP Server eine Netzwerkverbindung gemäss untenstehenden Tabelle:

       FortiGate Model                                   Interface 
       50, 50A, 100, 200, 300, 500, 800, 800F            Internal 
       80C 50B, all 60 models, 100A, 200A                Internal port 1
       100A, 200A (If Internal Port1 does not work)      Internal port 4 
       300A, 310A, 400, 400A, 500A, 1000 and higher      LAN port 1 
       
       ACHTUNG Obwohl obige Liste angibt welches Modell welchen Port benützt kann der Port ändern!
               Achte beim initieren des TFTP auf die Angabe des Ports dh. auf der Console wird dieser
               ausgegeben (Beispiel 50B):
       
               Please connect TFTP server to Ethernet port "3".

Nun verbinde dich per Serieller Console auf die Fortigate, Logge dich ein und starte den Device neu durch folgenden Befehl:

       # execute reboot

Wenn auf dem Consolen Display folgendes erscheint drücke die spacebar (oder einen anderen button) um den Start Prozess zu unterbrechen:

       FortiGate-60 (root) # FGT60 (11:24-04.25.2005)
       Ver:04000000
       Serial number:FGT-101101101100
       RAM activation
       Total RAM: 128MB
       Enabling cache...Done.
       Scanning PCI bus...Done.
       Allocating PCI resources...Done.
       Enabling PCI resources...Done.
       Zeroing IRQ settings...Done.
       Verifying PIRQ tables...Done.
       Boot up, boot device capacity: 30MB.
       Press any key to display configuration menu...
       ACHTUNG Wenn es Probleme gibt die auf einen korruptes NAND hinweisen "NAND bad blocks" so führe zuerste folgende 
               Anweisungen aus:
               
               Fortigate:FAQ#Auf_einer_Fortigate_sieht_man_Fehlernachrichten_betreffend_.22NAND_bad_blocks_.2F_crc_errorINITTAR.22.21_Was_ist_zu_tun.3F
       NOTE Bei neueren Geräten wie einer 60D ist der Vorgang leicht anderst dh. die entsprechende IP für den TFTP Transfer wird nicht 
            im Prozess des "TFTP Server Transfer" durchgeführt (Position G) sondern muss über die Positionen "C" (Configure TFTP Parameters)
            Vordefiniert werden. Die Parameter für den TFTP Transfer können ebenfalls über die Position "R" (Review TFTP parameters) vorgängig
            eingesehen werden um die entsprechende IP für den TFTP Transfer zu konfigurieren. Nachfolgendes Beispiel zeigt das Menü einer 60D:
            
            Fortinet-1068.jpg

Wenn das "Menü" die Position "[F] Format boot device" enhält drücke F und warte bis das Formatieren abgeschlossen ist.

       [G]: Get firmware image from TFTP server.
       [F]: Format boot device.
       [Q]: Quit menu and continue to boot with default firmware.
       [H]: Display this list of options.
       
       Enter G,F,Q,or H: F
       
       All data will be erased,continue:[Y/N]?
       Formatting boot device...
       ...............
       Format boot device completed.

Nun wähle im Menü G damit der Firmware Download gestartet wird. Es wird folgendes angezeigt:

       Enter G,F,Q,or H: G
       
       Enter TFTP server address [192.168.1.168]:

Gebe die entsprechende IP ein des TFTP Servers. Es erscheint folgendes:

       Enter local address [192.168.1.188]: 192.168.1.99

Nun gebe die entsprechende IP ein für das Fortigate Interface gemäss oben aufgeführten Tabelle. Es erscheint nun folgendes:

       ACHTUNG Versuche nicht vom TFTP Server aus den Device mit einem ping zu erreichen denn der Device
               gibt keine Antwort auf einen ping. Um zB zu kontrollieren ob die Verbindung steht kontrolliere
               mit folgenden Befehl ob der arp Eintrag für den Device auf dem TFTP Server vorhanden ist (dieser
               wird bei der Initierung der Verbindung auf dem Device angezeigt):
               
               arp -a
       Enter firmware image file name [image.out]: 
       ############
       Total 13547047 bytes data downloaded.
       Verifying the integrity of the firmware image.
       
       Total 28000kB unzipped.

Gebe den Namen des Files an für die Firmeare, dass im Root Verzeichnis des TFTP Servers liegt. In unserem Beispiel wäre dies image.out. Auf dem Console Displays wird nun ein "#" angezeigt das indiziert, dass der Download ausgeführt wird. Wenn der Download abgeschlossen ist zeigt der Consolen Display folgendes an:

       Save as Default firmware/Run image without saving:[D/R]

Wähle D für "Default firmware". Die Fortigate wird nun die neue Firmware installieren und automatisch einen Restart ausführen. Dies dauert ca. 3 - 4 Minuten. Die Wiederherstellung ist nun abgeschlossen und das Gerät ist auf Factory-Defaults.

Wie führe ich einen manuellen Firmware Update durch?

Um einen "manuellen" (lokal von der Harddisk) Firmware Update durchzuführen lade zuerst über die Fortinet Support Seite die aktuelle Firmware herunter:

       https://support.fortinet.com

Logge dich ein anhand des Usernamens und Passwortes. Danach präsentiert sich folgende Seite:

       Fortinet-25.jpg

Wähle nun die Position "Firmware Images". Danach öffnet sich ein neues Fenster. Darin wähle das gewünschte Produkt im Scrollbalken dh. in unserem Fall "FortiGate" und gehe danach auf den Download Button. Nun öffnet sich ein neues Fenster indem der FTP Download Server angezeigt wird und in dem die verschiedenen Verzeichnisse der FortiOS Versionen gelistet sind:

       Fortinet-26.jpg

Nun öffnet sich wiederum ein neues Fenster. In diesem Fenster wird über den Browser ein FTP Server geöffnet. Wähle dort die entsprechende Version (in unserem Fall v4.00)

       Datei:Fortinet-27.jpg

Wähle nun wiederum die neuste Version bis folgendes erscheint:

       Datei:Fortinet-28.jpg

Nun muss entsprechend dem Modell die entsprechende Firmware runtergeladen werden. In unserem Fall wäre dies die Firmware für die "60C". Gehe nun auf das WebInterface der FortiGate-60C und wähle dort die folgende Position:

       Datei:Fortinet-29.jpg

Nun kann über die "Lokale Harddisk" die runtergeladene Firmware angegeben werden. Wenn die "neue" Firmware NUR geladen werden soll jedoch nicht "gebootet" werden soll deaktviere die Position "Boot the New Firmware":

       Datei:Fortinet-30.jpg
       Datei:Fortinet-31.jpg

Nach einigen Minuten 3 - 4 kann der Status des OS überprüft werden:

       Datei:Fortinet-32.jpg

Wie führe ich auf einem Cluster ein Firmware Update durch?

Grundsätzlich wird ein Firmware Upgrade auf einem FortiGate Cluster so durchgeführt wie auf einem Standalone Device. Der Unterschied liegt darin, dass wenn ein Update auf einem FortiGate Cluster durchgeführt wird (verbunden auf dem Master), dass File zuerst dem Slave übermittelt wird (über Heartbeat Verbindung) und das Update auf diesem "zuerst" durchgeführt wird resp. stattfindet. Ist das Update erfolgreicht, wird auf dem Master nachträglich das Update durchgeführt.

Es ist dabei darauf zu achten Vorgängig ein Backup auf dem Master duchzuführen und sofern möglich auf dem Slave (über even. existierende Mgmt. Interface). Das Update auf einem Cluster nimmt einige Zeit in Anspruch und sollte nicht unterbrochen werden. Man sollte daher genügend Zeit einberechnen!

       Ein einmal angestossenes Upgdate auf einem Cluster sollte nicht unterbrochen werden!

Es ist zu empfehlen über den Consolen Port verbunden zu sein um etweilige Fehlermeldungen/Neustarts sofort über die Console zu sehen. Muss ein Upgrade in mehreren Schritten durchgeführt werden ist zu empfehlen den Master aus dem Cluster rauszunehme und diesen "local" offline auf den neusten Stand zu bringen. Betreffend UpgradePath ist folgender Artikel zu berücksichtigen:

       FortiOS-Upgradepath

Nachträglich kann anhand dieser Konfiguration der Slave wieder in den Cluster Verbund genommen werden. Weitere Informationen betreffend Setup eines Cluster siehe Artikel:

       Fortigate:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F

Wie kann ich ein Roll-back initieren für eine Firmware?

Wenn man ein Firmware Update durchführt (über GUI) wird automatisch die aktuelle laufenden Partition (Primary) verschoben in die Secondary Partition. Wenn nun aus irgendwelchen Gründen die neue Firmware nicht zufriedenstellen läuft kann ein Rollbak initiert werden. Dadurch wird die Secondary Partition zur Primary Partition und die Primary Partition der aktuellen Firmware zur Secondary! Das Ganze kann über Gui initiert werden oder über Kommandozeile:

       ACHTUNG Vor dem Rollback sollte ein Backup erstellt werden sowie extern gespeichert werden. 
               Dazu kann das manuelle Backup des WebInterface benutzt werden (System > Dashboard > Status > Backup)!
       
       Liste alle Partitions auf
       
       # diagnose sys flash list
       Partition  Image                                     TotalSize(KB)  Used(KB)  Use%  Active
       1          FGT60C-4.00-FW-build521-120313                    39417     26215   67%  Yes
       2          FGT60C-4.00-FW-build513-120130                    39417     26735   68%  No
       3          FLDB-10.00974                                     39420      4448   11%  No
       Image build at Mar 13 2012 19:45:52 for b0521
       Wähle die entsprechende Partition für den nächsten reboot
       
       # execute set-next-reboot secondary
       
       NOTE: Es ist empfohlen NACH dem Rollback Ueber die Console ein "execute formatlogdisk" durchzuführen
             da es ansonsten event. zu Problemen kommt! Wird ein Rollback durchgeführt von FortiOS 5.2 auf FortiOS
             5.0 müssen einige Details beachtet werden. Nähere Informationen siehe im nachfolgenden Artikel indem
             Informationen enthalten sind auf "was" geachtet werden muss in so einem Fall:
             
             Fortigate:FAQ#Was_ist_bei_einem_Upgrade_auf_FortiOS_5.2_zu_ber.C3.BCcksichtigen_betreffend_bestehender_Konfiguration.3F

Wo finde ich einen Ueberblick über die zur Verfügung stehenden Firmware Versionen?

Nun ein FortiOS Release wird bezeichnet durch seinen Release Bezeichnung dh. "GA" oder "MR" 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. Welcher Patch Level über welche Build Nummer verfügt sieht man in der unten aufgeführten Aufstellung:

    FortiOS 5 GA
    Fortinet-832.jpg
    FortiOS 4 MR3
    Fortinet-833.jpg
    FortiOS 4 MR2
    Fortinet-834.jpg
    FortiOS 4 MR1
    Fortinet-835.jpg
    FortiOS 4 GA
    Fortinet-836.jpg
    NOTE Weitere Releases Informationen zB für FortiOS 3 usw. findet man im unten aufgeführten Link!

Diese Informationen stammen aus einem Post im Fortinet Forum. Dieser Post "sollte" auf dem neusten Stand gehalten werden. Nachfolgend der Link zu diesem Post:

       http://support.fortinet.com/forum/tm.asp?m=86591&p=1&tmode=1&smode=1

Initial Setup

Ueber welche Art (Zugriff) kann ich eine Fortigate in Betrieb nehmen (Grundkonfigurieren)?

Eine Fortigate kann auf vers. Weise in Betrieb genommen werden dh. nach eine "Factory Default" oder im Orginal Zustand kann eine Fortigate folgendermassen in Betrieb genommen werden (Initial Setup):

       - Ueber die Software Forti Explorer (Fortigate:FAQ#Wo_kann_ich_die_neuste_Software_des_Forti_Explorer_runterladen_und_was_ist_ein_Forti_Explorer.3F)
       - Ueber die Netzwerk Interface Schnittstelle (NIC)
       - Ueber die USB Schnittstelle (Fortigate:FAQ#Wie_kann_ich_die_Installation.2FKonfiguration_einer_FortiGate_komplett_automatisieren_.28USB_Auto-Install.29.3F)
       - Ueber den Consolen Port (Fortigate:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F)

Wie setze ich eine Fortigate auf "Factory Defaults"?

Eine Fortigate wird anhand des "resets" Knopf's auf "Factory Defaults" gesetzt. Nachfolgend eine Abbildung einer C60 inder der "reset" Knopf zu sehen ist:

       Datei:Fortinet-10.jpg

Benutze eine Büroklammer oder ähnliches und drücke den "reset" Knopf. Danach wird die Fortigate neu gestartet und alle Einstellungen werden auf "Factory Defaults" zurückgesetzt. Dies kann 3 - 4 Minuten dauern.

       ACHTUNG Der Reset Button reagiert bei vers. Firmware Revisionen anderst dh.:
       
               "V4.0 MR3 Patch5 und tiefer"
               Drücke den Resett Button jederzeit und ein Factory Reset (wie über Console "execute factoryreset") 
               wird ausgeführt. Es wird empfohlend den Device über den Consolen Port zu verbinden um zu sehen was 
               durchgeführt wird!
               
               "V4.0 MR3 Patch6 und höher"
               Drücke den Resett Button und es wird über die Console folgendes angezeigt:
               
               “Reset button has been disabled, please press the button during the first 30 seconds when the box is back to normal after a power-cycle."
               
               Dies bedeutet: Sobald die Box einen Neustart ausgeführt hat und der "Log-In" angezeigt wird 
               muss innerhalb 30 Sekunden der Resett Button abermals gedrückt werden damit ein Factory
               Resett ausgeführt wird!

Eine Fortigate lässt sich ebenfalls über Kommandozeile auf "Factory Defaults" setzen. Dazu erstelle über den "Consolen" Port eine Serielle Verbindung und gebe folgenden Befehl ein:

       # execute factoryreset
       # execute formatlogdisk
       
       NOTE Dieser Vorgang löscht die ganze Konfig und tastet das Image (FortiOS) nicht an. Dies bedeutet wenn das
            Image korrupt ist so erbringt dieser Vorgang nicht die gewünschten Resultate! Möchte man das Gerät von 
            GRUNDAUF neu aufsetzen/stagen so benütze folgende Anweisungen:
            
            Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F
       
       NOTE Unter FortiOS 5 gibt es die Möglichkeit einen "execute factoryreset2" auszuführen. Durch diesen Befehl wird
            ebenfalls ein "Factory Default" ausgeführt ausser folgender Konfiguration:
            
            - Interface Konfiguration
            - VDOM Konfiguration
       
            Ein "Factory Default" kann unter FortiOS 5 ebenfalls über das WebInterface durchgeführt werden und zwar über die
            Position:
            
            System > Dashbaord > Status > System Information > Revisions
            
            Ebenfalls gibt es neu unter FortiOS 5 die Möglichkeit den "Reset Button" (sofern das Gerät einen verfügt) komplett
            zu deaktivieren mit folgenden Befehl:
            
            # config system global
            # set admin-reset-button disable
            # end

Welche Werte gelten für eine Fortigate nach einem "reset" (Factory Default)

Nach der Ausführung des "resets" gelten folgende Werte für die Fortigate:

       NOTE Siehe auch folgender Artikel für Detailinformationen:
            
            Fortigate:FAQ#Wo_finde_ich_eine_Uebersicht_.C3.BCber_die_.22Default_Settings.22_einer_FortiGate.2FFortiOS.3F
       Datei:Fortinet-11.jpg
       Datei:Fortinet-23.jpg

Ich habe einen ADSL/VDSL Anschluss der Swisscom; muss ich das WAN Interface meiner Fortigate auf PPPoE setzen?

Wenn man eine ADSL/VDSL Leitung der Swisscom für den Internet Zugang benützt so "war" in der Vergangenheit üblich das "WAN" Interface einfach auf PPPoE zu setzen sowie Username und Passwort für die Anmeldung anzugeben. Dies ist heut nicht mehr in jedem Fall nötig. Konkret bedeutet dies folgendes:

       "ADSL" (auf PPPoE setzen und Username und Passwort angeben):
       
       --> Bei allen Fremdrouter
       --> Bei älteren Swisscom Router ohne Vorkonfiguration (SMC, Netopia (FW: 7.5, 7.6)
       "VDSL" (auf DHCP setzen; es sind keine spezifischen Anmeldedaten nötig):
       
       --> Bei Fremdrouter muss man lediglich die spezifischen Daten angeben (VPI: 8  VCI:35)
       --> Bei den Swisscom Router ist alles bereits vorkonfiguriert.
       
       NOTE VDSL2 benutzt in der Schweiz PTM und nicht ATM. Dies bedeutet VPI/VCI wird nicht benötigt!

Kann ich einen CPU auf einer FortiGate exklusiv für das Management zur Verfügung stellen?

Ab FortiOS 5.0.5 / 5.2 ist dies möglich jedoch nur für FortiGates 1000 und grösser. Der Vorteil an einer solchen Konfiguration liegt bei der Verfügbarkeit dh. wenn dies durchgeführt wird so steht der exklusiv für das Management konfigurierte CPU nur noch für diesen Zweck zur Verfügung dh. für das Management. Somit wird der Zugriff auf das Management auch bei hoher Last garantiert. Für diese Konfiguration führe folgendes durch:

       # configure system npu
       # set dedicated-management-cpu enable
       # end

Kann ich eine FortiGate so konfigurieren das deren Update's etc. über einen Proxy geleitet werden?

Eine FortiGate benötigt für die Update's (FDN Fortinet Distribution Network) wie Antivirus, IPS, Application Control etc. Internet Access! Nun wenn eine FortiGate keinen Internet Access besitzt resp. im Internen Netz ist und Internet Access nur über einen "Explicit Proxy" möglich ist, muss die FortiGate für die Update's so konfiguriert werden damit diese Updates über den "Explicit Proxy" geleitet werden. Dies kann über die Kommandozeile durchgeführt werden:

       NOTE Eine andere Variante -sofern möglich- wäre einen FortiManager einzusetzen und diesen zu 
            erlauben über einen Explicit Proxy in das Internet zu verbinden. Die FortiGate wird
            danach so konfiguriert, dass diese Ihre Upates nicht mehr aus dem Fortinet Distribution
            Network erhält sondern direkt vom FortiManager!
       # config system autoupdate tunneling
       # set address [Gebe die entsprechende IPv4 Adresse oder FQDN des Explicit Proxy an]
       # set port [Gebe den entsprechenden Proxy Port an]
       # set status [enable | disable]
       # set username [Username für die Anmeldung an den Explicit Proxy]
       # set password [Passwort für die Anmeldung an den Explicit Proxy]
       # end
       
       NOTE Bei dieser Konfiguration ist folgendes zu berücksichtigen: Der Username und Passwort das benutzt wird um
            sich beim Explicit Proxy anzumelden sind Optional. Die FortiGate benutzt um sich zum Explicit Proxy zu 
            verbinden die HTTP CONNECT Methode nach RFC 2616. Diese Methode wird im Allgemeinen benutzt um SSL Traffic
            zu "tunneln". Aus diesem Grund muss auf dem Explicit Proxy kontrolliert werden ob dies erlaubt ist da dieser
            Vorgang im normal Fall verhindert wird. Es sollte ebenfalls kontrolliert werden "welche" Ports offen sind
            auf dem Explicit Proxy um in das Internet zu verbinden. Im normal Fall sofern keine Einschränkungen implementiert
            sind wären dies "priviligierte ports" dh. 1 - 1024. FortiGate "autoupdate" Funktion benutzt den folgenden
            Port:
            
            TCP-8890
            
            Dieser Port ist kein "priviligierter port" und muss deshalb event. freigeschaltet werden auf dem Explicit
            Proxy um Verbindungen in das Fortinet Distribution Network zu erlauben (FDN).

Wenn die Implementation über einen Explicit Proxy durchgführt wurde sollte die Implementation getestet werden. Dabei sollte folgender Artikel berücksichtigt werden der aufzeigt wie das Troubleshooting betreffend Update durchgeführt werden kann:

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

Kann ich eine FortiGate Installation Automatisieren?

Weitere Informationen zu diesem Thema siehe folgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_die_Installation.2FKonfiguration_einer_FortiGate_komplett_automatisieren_.28USB_Auto-Install.29.3F

Backup / Restore

Was wird bei einem Backup mitgesichert?

Grundsätzlich wird bei einem Backup ALLES mitgesichert mit einer Einschränkung:

       Wird die Option "Encrypt configuration file" mit der Angabe eine Passwortes NICHT
       angegeben so werden KEIN "selbstimportierten" Zertifikate sowie dessen Informationen
                                     mitgesichert!

Somit will man ein "komplett" Backup ausführen MUSS ein Passwort angegeben werden um das Backup zu verschlüsseln! Dieses Passwort muss wiederum bei einem Restore angegeben werden sowie vorhanden sein ansonsten kann der Restore nicht mehr durchgeführt werden!

Wie kann ich ein manuelles Backup erstellen auf einer FortiGate von der aktuellen Konfiguration?

Ein manuelles Backup einer Fortigate wird über das folgende Menü erstellt:

       Datei:Fortinet-117.jpg
       Datei:Fortinet-118.jpg
       
       NOTE Wenn die Position "Encrypt configuration file" angewählt wird so wird das Backup verschlüsselt.
            Wird ein Passwort gesetzt und dieses ist bei einem allfälligen "Restore" nicht mehr bekannt, 
            gibt es KEINE Möglichkeit mehr den Restore durchzuführen!

Wie kann ich über die CLI ein Backup durchführen und dieses auf einem USB Stick speichern?

Ein Backup auf der Kommandozeile (CLI) auf einen USB Stick wird folgendermassen durchgeführt:

      # execute backup ["config" oder "full-config"] usb [Name des Backup Files]
      Please wait....
      Please weit....
      
      Copy config [Name des Backup Files] to USB disk...
      Copy config file to USB disk OK.
      Setting timestamp
      
      NOTE Die Anweisung "config" wird per Standard benützt wenn die VDom Funktion nicht aktiviert ist. Ist die VDom Funktion aktiviert kann
           entweder über die Anweisung "full-config" ein Backup über die ganze Konfiguration durchgeführt oder anhand der Anweisung "config" 
           mit dem Zusatz des entsprechenden VDom Namens nur ein Backup für diese VDom.

Desweiteren ist zu berücksichtigen wie der USB Stick für den Gebrauch zu formatieren ist. Weitere Informationen siehe nachfolgender Artikel:

       Fortigate:FAQ#Was_ist_bei_einem_Anschluss_eines_USB_Sticks_an_eine_Fortigate_zu_ber.C3.BCcksichtigen.3F

Wie kann ein Backup auf einer Fortigate automatisiert werden?

Ein Backup auf einer Fortigate kann Grundsätzlich NUR mit dem Fortimanager automatisiert werden!

       NOTE Nachfolgend wird eine Möglichkeit gezeigt über Telnet eine Automatisierung eines Backup's durchzuführen. 
            Zusätzlich zu dieser Möglichkeit kann ebenfalls SCP (SSH Secure Copy) aktiviert werden und anhand eines
            Shell Scripts die Automatisierung erreicht werden. Dabei muss für das Login eine sogenannte "Public Key
            Authentication" implementiert werden da es bei SSH resp. SCP nicht möglich ist ein Passwort beim Login
            anhand des Scripts mizugeben! Wie SCP aktiviert wird für SSH siehe nachfolgender Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F
            Fortigate:FAQ#Wie_konfiguriere_ich_f.C3.BCr_den_User_.22admin.22_eine_Public_Key_Authentication.3F

Es gibt eine Möglichkeit das Ganze zu Automatisieren. Eine Variante wäre zB über Telnet folgenden Befehl abzusetzen:

       # execute backup config tftp myconfig.cfg [IP TFTP Server]
       Please wait...
       Connect to tftp server [IP TFTP Server] ...
       #
       Send config file to tftp server OK.
       Setting timestamp
       
       NOTE Wenn kein TFTP Server vorhanden ist installiere SolarWinsTFTP http://www.solarwinds.com/products/freetools/free_TFTP_server.aspx

Nun um das Ganze zu Automatisieren müssen wir uns anhand eines Batches oder ähnlichen über Telnet anmelden und den Befehl absetzen. Dies ist jedoch mit Bordmitteln von Windows nicht möglich. Folgende Möglichkeit bietet sich an:

       - Installiere den folgenden Telnet Client: http://hp.vector.co.jp/authors/VA002416/ttermp23.zip
       - Die Installation des TerraTerm Client befindet sich danach in: C:\Program Files\TTERMPRO
       - Erstelle nun folgende Datei im Installationsverzeichnis von TTERMPRO mit der Endung "ttl" (Macro):
       
       ---------- backup.ttl ----------
       
       ; Konfigurations Variablen:
       Servername = '[IP Fortigate]'
       Username = 'admin'
       Password = 'password'
       ; Fragen der Fortigate
       UsernamePrompt = '[hostname login:'
       PasswordPrompt = 'Password:'
       ; Verbinden....
       connect Servername
       wait UsernamePrompt
       sendln Username
       wait PasswordPrompt
       sendln Password
       ; Führe Befehle aus:
       sendln 'execute backup config tftp myconfig.cfg [IP TFTP Server]'
       
       ---------- backup.ttl ----------
       
       NOTE Gibt man nach der [IP TFTP Server] ein Passwort an so wird das File "myconfig.cfg" verschlüssel und kann nachträglich auf 
            dem TFTP Server nicht eingesehen werden!
       
       ACHTUNG Beim "UsernamePrompt" ist zu beachten, dass dieser so angegeben wird wie er in der Verbindung per Telnet erscheint. 
               Dies bedeutet: Loggt man sich ein per Telnet erscheint zB "fortigate login:". Dies ist dann auch der UsernamePrompt
               der definiert werden muss. Damit das File nachträglich abgeändert werden kann müssen auf dem File unter Windows die
               entsprechenden Userrechte vergeben werden zB "Administrator" (Vollzugriff).

Nun kann das Makro im Zusammenhang mit TerraTerm getestet werden. Oeffne eine DOS Box auf dem Windows Client/Server und führe folgendes aus:

       c:\> "C:\Program Files\TTERMPRO\ttpmarco.exe" backup.ttl

Danach wird das Makro "backup.ttl" abgearbeitet und das File "myconfig.cfg" erstellt und runtergeladen. In diesem Sinne kann nun der hier gezeigte Befehl in einem Batch File zB "backup.bat" eingefügt werden und über eine immerwiederkehrenden Job unter Windows (Task-Planer) ausgeführt werden. Beachte dabei -da der übermittelnde Name immer der Gleiche ist- das im SolarWinsTFTP die Option "rename existing files on confilict" aktiviert ist damit bei Uebermittlung mit dem gleichen Namen das bereits bestehende File auf dem TFTP Server umbenannt wird (mit Datum versehen).

Ueber diese Art und Weise ist es auch möglich immerwiederkehrende Befehle über Telnt an die Fortigate zu senden. Es ist ebenfalsl möglich das Ganze über FTP abzuwickeln da diese Option unter dem "execute backup config" Befehl ebenfalls FTP neben TFTP zur Verfügung steht. Dabei benötigt man jedoch auf dem FTP Server einen "anonymous" Konto! Natürlich ist ebenfalls zu berücksichtigen, dass die TFTP Uebermittlung unverschlüsselt durchgeführt wird. Aus diesem Grund ist zu empfehlen das "myconfig.cfg" File mit einem Passwort zu versehen damit es verschlüsselt wird!

       ACHTUNG Ein verlorengegangenes Passwort eines Backups lässt sich NICHT mehr wiederherstellen dh. das Backup ist für einen Restore vollständig verloren!

Das Passwort für das Backup ist nicht mehr vorhanden wie kann ich trotzdem ein Restore ausführen?

Wenn das Passwort, dass unter einem manuelle Backup auf der Position "Encrypt configuration file" gesetzt wird, nicht mehr bekannt ist gibt es KEINE Möglichkeit mehr einen Restore durchzuführen. Das Gleiche gilt wenn ein Backup per Kommandozeile auf einen FTP oder TFTP gespielt wird und ein Passwort für die Verschlüsselung des Backups gesetzt wird!

Was ist bei einem Restore zu berücksichtigen?

Wenn eine Restore durchgeführt wird mit einem NICHT verschlüsselten Backup und das Gerät ist identisch wie das von dem das Backup gezogen wurde kann das Backup File so belassen werden und wiederum eingespielt (Restore) werden.

       NOTE Es ist zu empfehlen ein Restore nur dann durchzuführen, wenn der zu restorende Device über den gleichen Software Status 
            verfügt (FortiOS) wie der Device von dem der Backup stammt! Dies gilt für reguläre Restores und Device Upgrades dh. wenn der Restore
            auf einem grösseren Device durchgeführt wird. Will man ein Config File auf einem anderen Device (zB Backup von 60C und Restore auf 
            80C) einspielen so muss folgendermassen vorgegangen werden:
       ACHTUNG Ein Restore im Sinne eines Downgrade (Von einem Grösseren Device zB 100D auf 80C) ist offiziell nicht Supported!
               Ebenfalls kann kein Restore durchgeführt, wenn der Device über eine Firmware 4.3.x verfügt und ein Backup File
               FortiOS 5 eingespielt werden soll. 
       1. Führe ein Backup durch auf dem neuen Device zB 80C. Die ersten 3 Zeilen des Backups sieht folgendermassena aus:
       
       #config-version=FGT80C-4.00-FW-build632-120705:opmode=0:vdom=0:user=admin
       #conf_file_ver=4639854451617325875
       #buildno=0632
       #global_vdom=1
       2. Nun nehme das Backup File der 60C und ersetze dort die erste Zeile damit diese die 80C wiederspiegelt:
       
       #config-version=FGT80C-4.00-FW-build632-120705:opmode=0:vdom=0:user=admin
       #conf_file_ver=4639854451617325875
       #buildno=0632
       #global_vdom=1
       
       NOTE Belasse die restlichen Zeilen sofern die beide Devices über den gleichen Firmware Stand verfügen (buildno=632). Durch
            das Belassen der restlichen Zeilen werden bei der Einspielung des Restores auf dem neuen Device die Konfigurationspunkte
            betreffend "vdom" und "opmode" korrekt übernommen resp. konvertiert.!
       
       Ebenfalls sind unterschiede zwischen Ausgangs-Device und End-Device zu berücksichtigen wie zB die Interface Namen. Dies bedeutet 
       wenn man zB eine .config File von einer 60C auf eine 80C einspielen möchte muss vorher das Konfig File manuell bearbeitet werden da
       auf einer 80C die Interfaces sich betreffend Namen unterscheiden. Eine Vorgehensweise ist die Interfaces in der Console aufzulisten
       mit folgenden Befehl und danach mit "Suchen und Ersetzen" im Konfig File anzupassen:
       
       ACHTUNG Wurde auf dem Ausgangsdevice zB 60C der Switchport Mode aktiviert (Separierung der Ports) so muss dies auf dem Zieldevice 
               ebenfalls durchgeführt werden um die korrekte Ausgangslage zu schaffen für die Interface Namen's Anpassung! Weitere Informationen
               betreffend "Switchport Mode" siehe folgender Artikel:
               
               Fortigate:FAQ#Kann_ich_die_den_.22Internen_Switch.22_.28Switch-Mode.29_bei_einer_Fortigate_.22Separieren.22_.28Interface-Mode.29.3F
       
       # get system interface
       
       Eine andere Möglichkeit ist in den zwei .conf Files die Sektion "config system Interface" zu suchen und zu vergleichen um die Anpassung
       zu erruieren.
       
       NOTE Aendere im Konfig File nicht "nur" die Sektion der Interfaces an sondern wirklich über das Ganze File da
            diese Interface Namen in verschiedenen Konfig Sektionen benutzt werden wie zB in der Policy!
       
       Wenn diese Modifikation des .conf Files nicht korrekt durchgeführt wird kommt es autom. zu einer Fehlermeldung da der Ausgangs-Device 
       sich vom End-Device unterscheidet. 
       3. Speichere nun das modifizierte 60C .conf File mit einem neuen Namen ab zB "60C-to-80C.conf"
       4. Nun kann der Restore über das Mgmt. WebInterface durchgeführt werden

Dieser hier beschriebene Vorgang stammt von eine Knowledge-Base Artikel der Fortinet:

       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=10063

Kann ich über einen TFTP, FTP Server einen "Image" Restore durchführen?

Ja, dies kann folgendermassen durchgeführt werden sofern die FortiGate korrekt in das entsprechende Netz (Routing) eingebunden ist:

       # execute restore image tftp [Name des Image Files zB "image.out"] [IPv 4 Adresse des TFTP Servers]
       This operation will replace the current firmware version!
       Do you want to continue? (y/n) y
       
       NOTE Dieser Befehl "execute restore image" kann ebenfalls mit einem FTP Server ausgeführt werden
            dh. die zur Verfügung stehenden Möglichkeiten sind:
            
            # execute restore image [tftp, ftp usb, flash, management-station] 

Wenn der TFTP Server erreicht werden kann sowie das angegebene File gefunden wird so gibt die FortiGate folgende Meldung aus:

       Get image from tftp server OK.
       Check image OK.
       This operation will downgrade the current firmware version!
       Do you want to continue? (y/n) y

Möchte man zu einem späteren Zeitpunkt eine Konfig über TFTP wieder einspielen kann dies ebenfalls über CLI durchgeführt werden:

       # execute restore config tftp [Name des Konfig Files auf dem TFTP Server] [IP Adresse des TFTP Servers]

Kann ich über SCP (SSH Secure Copy) für eine FortiGate einen Restore durchführen?

Dies ist möglich dh. Vorraussetzungen sind, dass SSH sowie SCP für den User "admin" aktiviert sind. Ebenfalls muss eine "Public Key Authentication" aktiviert sein:

       Fortigate:FAQ#Wie_konfiguriere_ich_f.C3.BCr_den_User_.22admin.22_eine_Public_Key_Authentication.3F
       Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F

Wenn diese Voraussetzungen gegeben sind wird ein Restore folgendermassen durchgeführt:

       # scp [Name lokales Konfig File FGT für Restore] admin@[FortiGate IP oder FQDN mit PubKey Authentication]:fgt_restore_config

Danach wird ein Restore ausgeführt sowie einen Neustart des Devices!

Kann ich anhand des "Konfigurations Output" über eine SSH Console ein manuelles Backup durchführen?

Eine weitere Möglichkeit ist die aktuelle Konfiguration als "output" Vollständig über SSH anzuzeigen. Wenn in diesem Schritt anhand von "putty" oder einem anderen SSH Client ein Log betreffend "output" angelegt wird, kann diese Information per Copy/Paste in eine File geschrieben werden. Um dies durchzuführen setze vorgängig folgendes Kommando ab:

       # config system console
       # set output standard
       # end

Achte nun darauf bevor nachfolgendes Kommando abgesetzt wird, dass der "output" der SSH Console über ein Log mitgeloggt wird:

       # show full-configuration
       
       NOTE Dieser Befehl kann resp. sollte nicht in einer Serial Console abgesetzt werden, da
            dieser "output" ziemlich gross ist und je nach benützter Console nicht mehr vollständig
            angezeigt wird (buffer Grösse).

Dieser "output" kann nun je nach Bedarf in ein File gespeichert werden, abgeändert und wiederum in die Console per Copy/Paste eingespielt werden.

Upgrade

Welche Geräte/Devices werden vom neuen FortiOS 5 unterstützt und welche neuen Features umfasst FortiOS 5?

Folgendes Dokument gibt Auskunft über FortiOS 5 und die unterstützten Geräte/Devices:

       Datei:FortiOS-5-Supporting-Device-May-2012.pdf
       
       NOTE Alle neuen Devices dh. FortiGate "D" Serie unterstützen ausschliesslich FortiOS 5.0 / 5.2 dh. die Images
            für FortiOS 4 stehen für diese Geräte nicht zur Verfügung!

Nachfolgendes Dokument zeigt in einer Liste welche neuen Features FortiOS 5 umfasst:

       Datei:FortiOS 5.0 Enhancements.pdf
       FortiOS 5.0
       Datei:Fortigate-whats-new-501.pdf
       Datei:Fortigate-whats-new-502.pdf
       Datei:Fortigate-whats-new-503.pdf
       Datei:Fortigate-whats-new-504.pdf
       Datei:Fortigate-whats-new-505.pdf
       Datei:Fortigate-whats-new-506.pdf
       Datei:Fortigate-whats-new-507.pdf
       FortiOS 5.2
       Datei:Fortigate-whats-new-520.pdf
       
       NOTE Für FortiOS 5.2 hat Fortinet einige "Delta" Dokumente Released die aufzeigen "was"
            der Unterschied ist zwischen FortiOS 5.0 und 5.2. Weitere Informationen siehe nachfolgenden
            Artikel:
            
            Fortigate:FAQ#Was_sind_die_Unterschiede_zwischen_FortiOS_5.0_und_FortiOS_5.2.3F

Folgendes Dokument gibt Auskunft über FortiOS 5 und welche Devices welche Software Funktionen unterstützt:

       FortiOS 5.0
       Datei:FortiOS-5-Software Matrix-R1-201301-V501.pdf
       Datei:FortiOS-5-Software Matrix-R4-201303-V502.pdf
       Datei:FortiOS-5-Software Matrix-R6-201306-V503.pdf
       Datei:FortiOS-5-Software Matrix-R7-201308-V504.pdf
       Datei:FortiOS-5-Software Matrix-R9-201308-V504.pdf
       Datei:FortiOS-5-Software Matrix-R10-201311-V505.pdf
       Datei:FortiOS-5-Software Matrix-R11-201401-V506.pdf
       Datei:FortiOS-5-Software Matrix-R11-201402-V506.pdf
       Datei:FortiOS-5-Software Matrix-R13-201403-V506.pdf
       FortiOS 5.2
       Datei:FortiOS-52-Software Matrix-R1-201406-V520.pdf

Was sind die Unterschiede zwischen FortiOS 5.0 und FortiOS 5.2?

Fortinet hat "Delta" Dokumente Released, die in den einzelnen Bereichen zeigen "wo" die Unterschiede liegen zwischen FortiOS 5.0 und 5.2:

       Datei:FOS-5.2-Delta-Remove-Split-Policy.pdf
       Datei:FOS-5.2-Delta-Wirless.pdf
       Datei:FOS-5.2-Delta-System.pdf
       Datei:FOS-5.2-Delta-Logging Reporting.pdf
       Datei:FOS-5.2-Delta-Firewall.pdf

Was ist bei einem Upgrade auf FortiOS 5 zu berücksichtigen betreffend bestehender Konfiguration?

Wenn ein Upgrade durchgeführt wird auf FortiOS 5 ist grundsätzlich empfehlenswert die nötigen Vorbereitungen zu treffen wie:

       NOTE Im FortiOS 5 wurden einige "tiefgreifende" Modifikationen durchgeführt. Folgendes Artikel
            listet ein Dokument auf indem die neuen Features als Uebersicht vorgestellt werden:
            
            Fortigate:FAQ#Gibt_es_ein_Dokument_indem_die_Features_von_einer_FortiGate_aufgelistet_sind.3F
       1. Backup der aktuellen Konfiguration V4.3 basierend
       2. Event. Upgrade auf V4.3 letzter Patchlevel (Siehe Upgrade Dokument im nachfolgenden Artikel):
          
          Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F
       3. Erneutes Backup der aktuellen Konfiguration V4.3 basierend
       4. Study der Release Notes des betreffenden FortiOS 5
       
       ACHTUNG:
       Bei einem Upgreade auf FortiOS 5 werden grundsätzlich folgende Konfigurationspunkt NICHT übernommen gemäss Release Notes:
       
       Datei:FortiOS-v5.0.0-GA-Release-Notes.pdf
       
       Umlaute:
       Obwohl Umlaute in den Namen in sämtlichen Konfiguration nicht benutzt werden sollte kommt es immer wieder vor das diese
       benutzt werden. Wird ein Upgrade auf FortiOS 5 durchgefüht mit Objekten die Umlaute enthalten können diese nachträglich
       nicht mehr verändert oder gelöscht werden. Die Einzige sauber Lösung wäre vorhergehend diese Umlaute zu entfernen. Wird
       dies nicht durchgeführt, können diese auch nach einem Upgrade entfernt werden und zwar indem man ein Backup durchführt,
       das Backup File so modifiziert das die Umlaute nicht mehr enthalten sind und danach anhand des modifizierten Files ein 
       Restore durchzuführen.
       
       VIP (Virtuelle IP Adressen):
       Die Aenderungen betreffen die VIP Funktion dh. die Max. Value. Unter 4.3.x galt die Max Value von 500. Neu gilt für alle
       Geräte kleiner als FGT-100D die Max Value von 50 Virtuelle IP's (VIP).
       
       Für max Value siehe Artikel: Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F
       
       WAN Optimization:
       Das Profile für WAN Optimization das unter folgenden Kommando eingegeben wurde ("config wanopt rule") wird bei einem 
       Upgrade nicht übernommen dh. das Profile muss mit folgenden Kommando wiederum erstellt werden: "config wanopt profile"
       
       SSL-VPN web portal:
       In einem Upgrade zu FortiOS 5 werden betreffend SSL-VPN Portal nur EIN Portal beibehalten. Wenn mehrere SSL-VPN Portale
       existieren werden diese ignoriert und dazugehörige Policy/Rules werden ebenfalls nicht übernommen. Es wird empfohlen 
       vorhergehend diese zusätzlichen VPN-Portal zu löschen und diese nachträglich nachdem Upgrade wiederum zu konfigurieren!
       
       NOTE Eine 40C unterstützt nur noch 1 VPN Portal dh. weitere VPN Portale können nicht erfasst werden. Versucht man 
            dies über CLI mit folgendem Befehl erscheint folgendes, was wiederum bestätigt, dass nur ein SSL-VPN Portal
            möglich ist:
            
            # config vpn ssl web portal
            # edit new
            
            Too many entries in all tables of .vpn.ssl.web.portal in vdom root: 1 / vdom-max = 1
       
       MAC address filter list:
       Der Inhalt des "mac-filter" Kommandos unter "config wireless-controller vap" wird nicht übernommen bei einem Upgrade 
       auf FortiOS 5. Es wird empfohlen diese Einträge vorhergehend zu zu sichern und diese nachträglich nachdem Upgrade wiederum
       unter dem entsprechenden DHCP Server zu konfigurieren.
       
       Spam Filter Profile:
       Das Spam Filter Profile wurde verändert in FortiOS 5. Die Tabelle für das Kommando "spam-emadddr-table" sowie 
       "spam-ipbwl-table" wurde zusammengelegt in die Tabelle "spam-bwl-table" und diese Tabelle wird weiterhin im existierenden
       Spam Profile geführt.
       
       Spam Filter Black/White List:
       Die Konfiguration betreffend "config spamfilter emailbwl" und "config spamfilter ipbwl" wurden zusammengelegt in die 
       Konfig "config spamfilter bwl"
       
       DLP rule settings:
       Das Kommandos "config dlp rule" wurde in FortiOS 5 entfernt. Die Konfiguration der Rule Einstellungen für DLP wurde 
       integriert in den DLP Sensor.
       
      ID-based firewall policy:
      Die Identity Based Policy (Authentifizierung) wurde dahergehend modifiziert, dass folgendes berücksichtigt werden muss:
      
      - Früher unter 4.3 wurden für die Identiy Based Policy Source und Destination in der Policy selbst definiert. Neu in 
        FortiOS 5 wird dies in der Identity Based Policy (Authentifizierung) nur die Destination definiert. Folgendes Beispiel
        verdeutlicht dies:
        
        Rule 1: 192.168.1.0/24 -> 192.168.100.0/24 -> Identity based
        Rule 2: 192.168.1.0/24 -> 192.168.2.1/32   -> ping accept
        
        In dieser Situation unter FortiOS 5 greift immer die Rule 1 denn die Destination ist nicht mehr in der Policy enthalten
        indem Sinne sondern in der Identiy Based Policy. Somit wenn die Source 192.168.1.0/24 angesprochen wird "matched" immer
        die Rule 1 und somit muss Rule 2 vor die Rule 1 gestellt werden damit diese "matched":
        
        Rule 2: 192.168.1.0/24 -> 192.168.2.1/32   -> ping accept
        Rule 3: 192.168.1.0/24 -> 192.168.100.0/24 -> Identity based
       
       SSL deep-scan
       Vor dem Upgrade auf FortiOS 5 haben wir betreffend "SSL deep-scan" folgende Situation:
       
                - Für AntiVirus, Web Filter und Antispam Profile existieren spearierte Einstellungen/Konfigurationen für 
                  SSL Protokoll oder non-SSL Protokoll.
                
                - Um HTTPS deep-scanning einzuschalten muss der entsprechenden Konfigurationspunkt "deep-scan" unter den
                  Optionen des Proxy aktiviert werden.
       
                  Nach einem Upgrade auf FortiOS 5 ist folgendes zu berücksichtigen:
       
                - Die Einstellungen für SSL Protokoll sowie non-SSL Protokoll betreffend AntiVirus, Web Filter und Antispam
                  Profile wurden komplett entfernt. Die Option non-SSL deckt neu beide Möglichkeiten ab dh. SSL und non-SSL.
                  In den Optionen des Proxy existiert neu die Möglichkeit SSL und/oder non-SSL Protokoll ein- und/oder 
                  auszuschalten. Dies wird benötigt um zu kontrollieren welche Protokolle gescannt werden und welche SSL
                  Protokolle entschlüsselt werden müssen.
                
                - Um HTTPS non-deep (SSL Handshare only) Inspecstion zu benutzen, muss HTTPS aktiviert werden in den Proxy
                  Optionen. Ein Web Filter Profil indem "https-url-scan" aktiviert ist, muss innerhalb eine Policy mit den
                  Proxy Optionen aktiviert werden. Die Web Filter Profil Option wechselt den Inspection mode auf "non-deep".
                  AntiVirus Scanning wird nicht durchgeführt, wenn diese Option aktiviert ist. Die Web Filter Profil Option 
                  greift nicht wenn "inspect-all" aktiviert ist unter den Proxy Optionen.
       
                  PLEASE NOTE Nach einem Upgrade sollten alle Einstellungen betreffend AntiVirus, WebFilter und Antispam 
                              Profile kontrolliert werden denn diese können im Gesamten verloren gehen. Es ist daher ratsam
                              Diese im Gesamten durchzukontrollieren und event. Einstellungen zu vervollständigen!
       5. Korrektur/Modifikation der Konfiguration basierend auf 4.3 sowie erneutes Backup
       6. Upgrade anhand des neuen FortiOS 5.x (letzter Patchlevel) über WebGui
       
          NOTE Ein Einspielen eines Backup Files basierend auf V4.3 (oder V4.x) auf einem bereits installierten FortiOS 5.x ist 
               nicht möglich da im Hintergrund spezielle Scripts nicht ablaufen können. Dies bedeutet nur wenn ein effektives
               Upgrade durchgeführt wird anhand V4.3.x (Letzter Patchlevel) auf FortiOS 5 laufen im Hintergrund diese Scripts 
               ab!
       7. Kontrolle des Upgrade auf FortiOS 5 nachdem Neustart
       
          NOTE Es ist empfohlen ein Kaltstart nachdem ersten kompletten Neustart durchzuführen und das Upgrade nachträglich 
               zu kontrollieren! Diese Kontrolle kann über das Mgmt. WebInterface durchgeführt werden sowie anhand eines "config-error-log".
               Um dieses einzusehen führe unter der CLI folgendes aus:
               
               # diagnose debug config-error-log read
               
               Dieser Befehl zeigt an welche event. Konfigurations Probleme bestehen. Dies bedeutet jedoch nicht das diese Probleme wirklich
               zu berücksichtigen sind dh. diese gelten als Hinweis um auf etweilige Problem aufmerksam zu machen!
       8. Entscheidung ob ein Roll-back durchgeführt werden muss anhand der "secondary partition" die angelegt wurde beim Upgrade
          auf FortiOS 5. Siehe auch Artikel: Fortigate:FAQ#Wie_kann_ich_ein_Roll-back_initieren_f.C3.BCr_eine_Firmware.3F
       9. Backup des FortiOS 5.x basierenden Konfiguration
       
          NOTE Wenn ein grösseres Gerät das kleinere Gerät ersetzen soll dh. zB von einer 60C auf eine 80C so muss nun das Backup
               File der FortiGate 60C so manipuliert werden das dieses der Hardware (zB Interface) der 80C entspricht. Siehe auch Artikel:
               
               Fortigate:FAQ#Was_ist_bei_einem_Restore_zu_ber.C3.BCcksichtigen.3F
       10. Staging eines neuen Gerätes anhand TFTP mit FortiOS 5 sowie Restore des FortiOS 5 basierenden Konfig Files (Backup File):
           
           Fortigate:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F

Was ist bei einem Upgrade auf FortiOS 5.2 zu berücksichtigen betreffend bestehender Konfiguration?

Wenn ein Upgrade durchgeführt wird auf FortiOS 5.2 ist grundsätzlich empfehlenswert die nötigen Vorbereitungen zu treffen wie:

       NOTE Im FortiOS 5.2 wurden einige "tiefgreifende" Modifikationen durchgeführt. Folgendes Artikel
            listet ein Dokument auf indem die neuen Features als Uebersicht vorgestellt werden:
            
            Fortigate:FAQ#Gibt_es_ein_Dokument_indem_die_Features_von_einer_FortiGate_aufgelistet_sind.3F
            Fortigate:FAQ#Was_sind_die_Unterschiede_zwischen_FortiOS_5.0_und_FortiOS_5.2.3F
       1. Backup der aktuellen Konfiguration 5.0 basierend
       2. Event. Upgrade auf V5.06/7 letzter Patchlevel (Siehe Upgrade Dokument im nachfolgenden Artikel):
          
          Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F
       3. Erneutes Backup der aktuellen Konfiguration V5.0.7 basierend
       4. Study der Release Notes des betreffenden FortiOS 5
       
       ACHTUNG:
       Bei einem Upgreade auf FortiOS 5.2 muss grundsätzlich gemäss Release Notes folgendes beachtet werden:
       
       Datei:Fortios-5.2.0-release-notes.pdf
       5. Wenn ein FortiAnalyzer/FortiManager benützt wird um die FortiGate zu verwalten muss folgendes zuerst durchgeführt werden:
          
          FortiManager  = Upgrade auf 5.0.7 oder 5.2
          FortiAnalyzer = Upgrade auf 5.0.7 oder 5.2
          
          NOTE Wurde der FortiManager und/oder FortiAnylzer auf den neusten Stand gebracht muss auf der 
               FortiGate folgendes Kommando abgesetzt werden um die Logs die noch auf der FortiGate
               bestehen zum FortiManager/FortiAnalyzer zu senden:
               
               # execute log roll
               # execute log upload
               
               Wenn ein FortiGate Device mit "store and upload" konfiguriert wurde dh. die Logs werden "nicht"
               Realtime zum FortiManager/FortiAnalyzer gesendet, muss folgender Befehl abgesetzt werden "nach"
               einem Upgrade auf 5.2:
               
               # execute formatlogdisk
               
               Dieser Befehl formatiert die Disk resp. den Logspeicher. Sämtliche Logs -die noch nicht auf dem
               FortiAnalyzer sind- gehen verloaren! Der Grund dafür ist, dass FortiOS 5.2 ein neues Logformat
               benützt das "nicht" Rückwärtskompatibel ist.
       6. Führe das Update auf der FortiGate betreffend 5.2 durch!
          
          NOTE Ein "Downgrade" von 5.2 auf 5.0 ist nicht möglich (Details siehe Release Notes). Ein Fallback
               kann anhand der Backup-Partition durchgeführt werden. Siehe nachfolgenden Artikel für Details:
               
               Fortigate:FAQ#Wie_kann_ich_ein_Roll-back_initieren_f.C3.BCr_eine_Firmware.3F
               
               Wird ein solches "Rollback" Scenarion in Betracht gezogen ist zu berücksichtigen, dass die bestehenden
               Logs "nicht" Rückwärtskompatibel sind mit tieferen Versionen. Um diesem Umstand Rechnung zu tragen kann
               "vor" dem Downgrade auf der FortiGate folgendes durchgeführt werden:
               
               # execute log downgrade-log
               
               Wenn die Log's nicht von Wichtigkeit sind kann "nach" dem Downgrade ebenfalls anstelle "log downgrade-log"
               folgendes durchgeführt werden:
               
               # execute formatlogdisk
               
               Dieser Befehl formatiert die Disk resp. den Logspeicher. Sämtliche Logs -die noch nicht auf dem
               FortiAnalyzer sind- gehen verloaren!
       7. Nachdem Upgrade muessen alle Definition Files wie Antivirus, IPS etc. auf den neusten Stand gebracht werden:
          
          # execute update-now
       8. Nach einem erfolgreichen Update muss folgendes betreffend bestehender Konfiguration berücksichtigt werden:
          
          Firewall Policy
          Ist in einer Policy eine "Authentication" enthalten wie ist zu berücksichtigen, dass unter FortiOS 5.2 die
          "Authentcation" komplett überarbeitet wurde. Dies bedeutet die bestehenden Policies müssen aus Sicherheitsgründen
          überprüft werden. Bei einem Upgrade werden alle "Authentication" basierenden Policy umgeschrieben. Wenn zB in
          einer "Identiy Based Policy" mehrer Einträge existieren werden diese einzeln aufgesplitet und in der neuen Form
          gemäss FortiOS 5.2 dargestellt. Aus disem Grund -und aus Sicherheitsgründen- ist es unerlässlich diese Policies
          zu kontrollieren und event. anzupassen.
          
          Explicit Proxy Policy
          Unter FortiOS 5.2 werden die Explicit basierenden Policies seperate unter folgender Position geführt:
          
          Policy & Objects > Policy > Explicit Proxy
          
          Wenn ein Upgrade durchgeführt wird auf FortiOS 5.2 und Explicit Proxy Policies existieren werden diese in die neue
          seperate "Explicit Proxy" Policy verschoben. In diesem Zusammenhang steht auch ein neues Kommando zur Verfügung um
          diese "seperaten" Explicti Proxy Rules zu erstellen:
          
          # config firewall explicit-proxy-policy
          
          SSL VPN Policy
          Wenn SSL VPN "Portal" Konfigurationen in der Policy bestehen, werden bei einem Upgrade alle Source Interfaces auf "ssl.root"
          gesetzt. Zusätzlich werden alle "Authentication" basierende Rules im Zusammenhang mit den SSL VPN Portal Policies verschoben
          unter die folgende Position, in der das Mapping zwischen User/Gruppen und Portal konfiguriert wird:
          
          VPN > SSL >Settings > Authentication/Portal Mapping
          
          NOTE SSL VPN Tunnel Mode Konfigurationen werden bei einem Upgrade auf FortiOS 5.2 nicht verändert und bleiben bestehen!
          
          Unter FortiOS 5.0 existieren auf den FortiGate per Standard "vordefinierte" SSL VPN Portal wie "full-access". Unter FortiOS
          5.2 existieren "keine" vordefinierten Porta. Dies bedeutet -wenn zB "full-access" als Portal konfiguriert wurde wird dieses
          bei einem Upgrade auf FortiOS 5.2 zwar übernommen jedoch nicht zur Konfiguration hinzugefügt dh. folgende Konfiguration sollte
          überprüft resp. durchgeführt werden:
          
          # config vpn ssl settings
          # set default-portal [Name des SSL VPN Portals]
          # end
          
          Full SSL Inspection Deep Inspection
          Wenn "Full SSL Inspection" (FortiGate Zertifikat installiert auf dem Client/Workstation) benützt wird muss folgendes
          berücksichtigt werden. Verschieden Seiten wie Windows Update benützen Ihre "eigenen" Zertifikate um einen "trust" zu
          etablieren obwohl ein Zertifikat der FortiGate auf dem Client exisitiert. In so einem Fall kommt es zu Zertifikats 
          Meldung auf dem Client. Um diese zu verhindern sollte die betroffenen Sites als "ssl excempt" konfiguriert werden. 
          Dies kann folgendermassen durchgeführt werden:
          
          Erstellt für die betroffenen Site (zB Update Seiten für Microsoft, Apple etc) ein Firewall Object basierend auf deren
          FQDN (Fully Qualified Domain Name):
          
          # edit "host-wildcard.appstore.com"
          # set type fqdn
          # set fqdn "*.appstore.com"
          
          Nachfolgend eine Liste gemäss Release Notes 5.2:
          
          Apple
          • *.appstore.com,
          • *.apple.com
          • *.itunes.apple.com
          • *.icloud.com
          • swscan.apple.com (Mac OS updates)
          
          Dropbox
          • *.dropbox.com
          
          Skype
          • *.messenger.live.com
          
          Windows Updates
          • update.microsoft.com
          
          Nachträglich können diese Adressen im "SSL/SSH Profile" das auf "Full SSL Inspection" konfiguriert ist als "ssl excempt"
          konfiguriert werden dh. diese werden ignoriert bei der "Full SSL Inspection".
          
          Firewall Policy Column
          Bei einem Upgrade werden die definierte Firewall Policy Column (Spalten) nicht übernommen. Siehe auch Artikel:
          
          Fortigate:FAQ#Wie_kann_ich_die_Standard-Spalten-Einstellung_der_Policy_View_manipulieren.2Fver.C3.A4ndern.3F
       9. Wie schon erwähnt wurde im Logging Bereich unter 5.2 mehrere Modifikationen durchgeführt. Dies betrifft "nicht nur" das
          Format sondern für das "effektive" Logging selber. Dies bedeutet das "flash-based" Logging wurde komplett deaktiviert für
          folgende Modelle:
          
          NOTE Somit wenn in der Version 5.0.x und tiefer für untere Modelle ein "flash-based" Logging konfiguriert wurde,
               muss diese Konfiguration modifiziert werden dh. es stehen folgende Logging Device's zur Verfügung:
               
               Memory Logging
               FortiAnalyzer
               FortiCloud
               Syslog
               
               Weitere Informationen auf welchem Device welche Log Methode zur Verfügung steht siehe nachfolgenden Artikel:
               
                FortiOS 5.2 Software Matrix
          
          • FG-100D (P09340-04 or earlier)
          • FG-20C
          • FG-20C_ADSL_A
          • FG-200B/200B_POE (Without FSM)
          • FG-300C_Gen1 (P09616-04 or earlier)
          • FG-40C
          • FG-60C
          • FG-60C-POE
          • FG-60C-SFP
          • FG-70D
          • FG-60D
          • FG-80C/80CM (P05403-05, P05446-05)
          • FW-20C
          • FW-40C
          • FW-20C_ADSL_A
          • FW-60CX_A
          • FW-60C
          • FW-60CM (P08962-04 or later)
          • FW-60CX_ADSL-A
          • FW-60D
          • FW-60D-POE
          • FW-80CM (P05405-06 or later)
          
          NOTE Um für die Devices die "System Part Number" zu erruieren dh. zB "P09340-04" kann
               folgender Befehl auf der CLI ausgeführt werden:
               
               # get system status | grep Part-Number        
       10. FortiOS 5.2 unterstützt betreffend FortiClient Software "nur" die Version 5.2 und ist somit nicht
           Rückwärtskompatibel zu älteren FortiClient Versionen (Kein Support):
          
          • FortiClient (Windows) v5.2.0
          • FortiClient (Mac OS X) v5.2.0
          • FortiClient (iOS) v5.2.0
          • FortiClient (Android) v5.2.0
       11. Sind FortiAP's im Einsatz muss berücksichtigt werden, dass FortiOS 5.2 nicht mit FortiAP's betrieben werden kann 
           die mit einer FirmWare basierend auf FortiOS 5.0.x arbeiten. Dies bedeutet wird eine FortiGate auf FortiOS 5.2 
           gebracht müssen "zwingend" die FortiAP's ebenfalls auf FortiOS 5.2 build 0212 gebracht werden dabei sind folgende
           FortiAP's FortiOS 5.2 build 0212 kompatibel:
           
           FAP-11C, FAP-14C, FAP-28C, FAP-112B, FAP-210B, FAP-220B, FAP-221B, FAP-221C,
           FAP-222B, FAP-223B, FAP-320B, and FAP-320C 
           
           NOTE Grundsätzlich können alle FortiAP's in einem "Roll-back" Scenario von 5.2 auf 5.0.x gebracht
                werden resp. ein "downgrade" ausgeführt werden mit einer Ausnahme: Der FAP-221 der den neuen
                Standard 802.11ac unterstützt ist Hardware basierend nur 5.2 kompatibel dh. durch einen Fix 
                im Bios wird "verunmöglicht" diesen FortiAP mit 5.0.x "downzugraden", wenn der FAP-221C auf
                Stand 5.2 build 0212 (4090) sich befindet.
       12. Vor einem Upgrade sollten betreffend folgenden Themen die "Release Notes" konsultiert werden um die Kompatibilität
           der Komponenten zu überprüfen:
           
           FSSO, FortiExplorer, SSL-VPN usw. 
       13. In den "Release Notes" sind einige "Known Issues" aufgelistet. Es ist ratsam "vor" einem Upgrade ebenfalls diese zu 
           konsultieren um für allfällige Schwierigkeiten vorbereitet zu sein.
       14. Ein Upgrade nimmt seine Zeit in Anspruch speziell ein Upgrade von 5.0.6/7 (gemäss Upgrade Path) auf 5.2. Es wird 
           "dringend" empfohlen über die Serielle Verbindung das Upgrade mitzuverfolgen. Ein Upgrade mit einer "komplexeren"
           Konfig einer FortiGate 60 dauert nach dem Einspielen der neuen Firmware ca. 5 Minuten. Während dem Upgrade Prozess
           darf der Device nicht neu gestartet werden denn das würde den Upgrade Prozess unterbrechen und die Konfig beschädigen.
           Auf der CLI wird in einem regulären Scenario folgendes angezeigt (Firmeware Upgrade wird über Web Mgmt. Interface 
           eingespielt):
           
           login:
           Checking new firmware integrity ... pass
           
           Firmware upgrade in progress ...
           Done.
           
           The system is going down NOW !!
           
           Please stand by while rebooting the system.
           Restarting system.
           
           FortiGate-60D (15:09-08.12.2013)
           Ver:04000022
           Serial number: FGT60D4613048017
           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......
           
           Booting OS...
           Reading boot image... 1262630 bytes.
           Initializing firewall...
           
           System is starting...
           
           For optimal performance of your FortiGate unit,
           disk logging and reporting features have been disabled during upgrade.
           It is recommended to enable logging to FortiCloud on this unit
           to utilize the logging & reporting capabilities.
           The config file may contain errors, 
           Please see details by the command 'diagnose debug config-error-log read'
       15. Es ist "dringend" notwendig nach dem Upgrade gemäss dem letzten Absatz das "config-error-log" zu kontrolieren
           dh. folgendes Kommando einzugeben:
           
           login: admin
           Password: *********
           Welcome !
           # diagnose debug config-error-log read
           >>>  "config" "system" "replacemsg" "captive-portal-dflt" "cpa-disclaimer-page-1" @ global:command parse error (error 1)
           >>>  "config" "system" "replacemsg" "captive-portal-dflt" "cpa-disclaimer-page-2" @ global:command parse error (error 1)
           >>>  "config" "system" "replacemsg" "captive-portal-dflt" "cpa-disclaimer-page-3" @ global:command parse error (error 1)
           >>>  "config" "system" "replacemsg" "captive-portal-dflt" "cpa-reject-page" @ global:command parse error (error 1)
           >>>  "config" "system" "replacemsg" "captive-portal-dflt" "cpa-login-page" @ global:command parse error (error 1)
           >>>  "config" "system" "replacemsg" "captive-portal-dflt" "cpa-login-failed-page" @ global:command parse error (error 1)
           >>>  "set" "gui-default-policy-columns" "#" "policyid" "srcintf" "dstintf" "srcaddr" "dstaddr" "schedule" "service" "authenticat ... @ root.system.settings:value parse error (error )
           >>>  "set" "status" "enable" @ root.client-reputation.profile:command parse error (error -61)
           >>>  "set" "ap-scan" "enable" @ root.wireless-controller.setting:command parse error (error -61)
           >>>  "set" "on-wire-scan" "enable" @ root.wireless-controller.setting:command parse error (error -61)
           >>>  "set" "channel" "36" "44" @ root.wireless-controller.wtp-profile.FortiAP5.radio-1:value parse error (error -651)
           
           NOTE Es ist mit Fehlermeldungen zu rechnen sprich da -wie dieser Artikel zeigt- umfassenden Modifikationen durchgeführt wurden
                unter 5.2 ist nicht jede Fehlermeldung eine effektive Fehlermeldung sondern kann auch ein Hinweis darstellen. Dies bedeutet
                jede Meldungen muss intepretiert werden sowie nachgegangen werden. In den obigen Meldungen wird ausgegeben, dass das "Captive
                Portal" solche Meldungen produziert. Ebenso FortiAP's die angeschlossen sind. Also sind diese Komponenten zu kontrollieren und
                die Funktionen zu testen.
       16. Wenn ein Rollback initiert werden soll kann dies durch die "noch" vorhandene Partition der Vorversion 5.0.6/7 durchgeführt werden.
           Wie dies bewerkstelligt wird zeigt folgender Artikel:
           
           NOTE Vor einem Downgrade muss betreffend Logs event. ein "execute log downgrade-log" durchgeführt werden (siehe Punkt 6):
           
           Fortigate:FAQ#Wie_kann_ich_ein_Roll-back_initieren_f.C3.BCr_eine_Firmware.3F
           
           NOTE Nach einem erfolgreichen "Roll-back" muss die Disk formatiert werden:
                
                # execute formatlogdisk
                
                Dabei ist zu berücksichtien, dass bei bestimmten Devices (siehe Punkt 9) die Disk komplett deaktiviert wird. Dies bedeutet
                handelt es sich beim Rollback Scenario um solch einen Device kann auf "execute formatlogdisk" verzichtet werden da bei solchen
                Devices die Disk unter 5.2 nicht aktiviert wird und somit die Logs resp. die Daten unverändert bleiben. Im Zweifelsfall kann
                dennoch die Disk formatiert werden. Ebenfalls -im Fall des Einsatzes von FortiAP's- müssen die FortiAP's betreffend Firmeware
                ein Downgrade durchgeführt werden da die Firmware FortiAP 5.2 nicht kompatibel ist mit FortiOS 5.0.x. Weitere wichtige Info's
                betreffend Downgrade findet man unter folgenden Artikel:
                
                FortiAP:FAQ#Kann_ich_einen_FortiAP_Firmeware_5.2_basierend_anhand_eines_.22Downgrade.27s.22_mit_Firmeware_5.0.x_laden.3F

Sniffer-Mode

Wie kann ich eine Fortigate mit einem Sniffer Port konfigurieren?

Wenn man eine Fortigate so konfigurieren will, dass ein Interface der Fortigate in den Sniffer Modus konfiguriert wird und dieser an einen Switch Port verbindet, der als Mirror Port (oder auch Span Port) konfiguriert wurde, bekommt dieses Interface der Fortigate sämtlichen Traffic mit der über den Switch verarbeitet wird. Konkret werden alle TCP Päckchen von allen anderen Ports des Switches kopiert und zusätzlich diesem Mirror Port (Span Port) übermittelt. So kann eine Analyse des Traffics durchgeführt werden ohne das Risiko einzugehen den Traffic oder Verbindungen zu beinträchtigen. Gleichzeitig kann dieser Traffic für Reports aufbereitet werden um eine bessere Uebersicht zu erlangen.

Als Erstes muss ein Interface definiert werden das wir für den Sniffer Modus benutzen. In unserem Beispiel benutzen wir den "wan2" Port. Die Voraussetzungen für diese Dokumentation sind ein Factory Reset sowie korrekt konfigurierte und ereichbare DNS Server (Resolution). Ebenfalls ist zu berücksichtigen, dass KEIN Interface benutzt werden kann für den Sniffer Modus (check-box ist nicht sichtbar unter "Interface > Edit für Position "Enable one-arm sniffer") wenn das Interface in Benutzung ist betreffend Policy, Routing und Virtual IP. Als Letzteres benötigen wir auf dem betreffend Switch einen Port der korrekt im Mirror Mode (Span Port) konfiguriert ist.:

       NOTE Fortinet hat im Dezember 2013 für FortiOS 5 ein spezielles Dokument reelased das Schritt für Schritt 
            zeigt wie ein Sniffer-Mode innerhalb zB eines POC's durchgeführt werden soll. Dieses Dokument deckt
            sich im Wesentlichen mit der nachfolgenden Konfiguration. Es ist jedoch zu empfehlen einen Blick in
            dieses Dokument zu werden da dieses Schritt für Schritt die Ganze Konfiguration aufzeigt inkl. den
            UTM Profiles etc.:
            
            Datei:POC Sniffer Mode v1.6.pdf
            Datei:Application and Risk Analysis - One-Arm.dat (Pre-Defined Reporting)
            
            Desweiteren hat Fortinet als "Supplementary Recipes" folgendes Dokument herausgegeben das auf diese
            eingeht:
            
            Datei:Analyzing-your-network-traffic-using-a-one-armed-sniffer.pdf
       Datei:Fortinet-129.jpg
       Datei:Fortinet-130.jpg

Achte darauf, das die Position "Enable one-arm sniffer" aktiviert ist sowie der Management Zugriff über HTTP etc. gewährleistet ist. Die IP die dem Interface vergeben wird stammt aus dem Subnet des Switches dh. damit wir später über einen Arm wiederum auf die Fortignet kommen und diese Administrieren können. Wir werden nun den Sniffer Port (wan2) mit einer entsprechenden Sniffer Policy versehen. In dieser Policy werden wir Standard Werte verwenden bis auf die "Web Filter" Policy. Für diese erstellen wir ein eigenes Profil für "monitor-all":

       Datei:Fortinet-131.jpg
       Datei:Fortinet-132.jpg 
       
       ACHTUNG Damit der Web Filter korrekt funktioniert muss die IP des "wan2" Interface auf das Internet Zugriff haben um
               die nötige FDS Datenbank des Web Filter auf den neusten Stand zu bringen!

Als Nächstes benötigen wir eine Sniffer Policy für den Sniffer Mode:

       Datei:Fortinet-133.jpg
       Datei:Fortinet-134.jpg 

Nun kann die Fortigate über den "wan2" an den Mirror Port (Span Port) des Switches angeschlossen werden. Der Traffic der nun über den Switch läuft sollten nach einigen Minuten in den Logs der Fortigate ersichtlich sein. Um die Logs auszuwerten (Customized Datasets und Charts) siehe:

       Fortigate:FAQ#Kann_ich_die_Standard_Reports_und_Grafiken_.28Datasets_and_Charts.29_aus_den_Logs_der_Fortigate_modifizieren.3F

DNS / DNS Database

Wie konfiguriere ich auf einer FortiGate die DNS Server?

Den DNS Server auf einer FortiGate kommt eine wichtige Funktion zu dh. diese werden für unzählige Funktionen auf einer FortiGate benutzt und müssen einwandfrei funktionieren. Um die DNS Server zu konfikgurieren kann das WebGui benutzt werden dh. unter folgender Position:

       Config > System > > Network > DNS

Diese Konfiguration kann ebenfalls über die Kommandozeile durchgeführt werden und zwar folgendermassen:

       # config system dns
       # set primary [IPv4 Adresse des DNS 1 Serves]
       # set secondary [IPv4 Adresse des DNS 2 Servers]
       # set domain [Lokale Domaine]
       # 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 die DNS Cache vebleibt; Standard 1800]
       # set source-ip [Source IP die benützt werden soll für die DNS Anfrage]
       # end
       
       NOTE Die Anweisung "cache-notfound-response" ist ein Log Relevanter Eintrag dh. wird dieser
            aktiviert und sind die relevanten Log's aktiviert, so wird im Log sofern die Anfrage im
            "locak cache" nicht gefunden wird eine "NOTFOUND" ausgegeben. Per Standard ist diese Option 
            auf "disable".

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

Der DNS Cache einer FortiGate kann über CLI mit folgendem Befehl gelöscht werden:

       # diagnose test application dnsproxy 1
       
       NOTE Die Option "1" steht für "Clear DNS cache". Unter "dnsproxy" stehen noch weitere
            Optionen zur Verfügung wie zB:
            
            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

Kann ich auf der Fortigate einen Splitt DNS Server einrichten?

Ein Splitt DNS Server ist ein DNS Server der auf Anfrage einer bestimmten Source/Environement (Internal und/oder External) die entsprechende Antwort ausliefert. Dies bedeutet: Nehmen wir an wir hätten einen DMZ WebServer mit der IP 192.168.1.1 mit dem FQDN www.mydomain.ch. Dieser FQDN ist auf dem external DNS Server (Authoritativ) registriert. Wenn KEIN Splitt DNS Server konfiguriert ist und ein User im "Internal LAN" diesen Server zB im Browser requested (www.mydomain.ch) so wird dieser Request an den DNS Server gesendet (konfigurierte Public DNS Server der Fortigate). Dieser Request wird vom diesen DNS Server (sofern nicht Authoritativ für www.mydomain.ch) an die Root Server gesendet (sofern nicht im Caching der DNS Server bereits vorhanden) die wiederum den Autoritativen DNS Server für www.mydomain.ch anfragen. Die Antwort die zurückgegeben wird ist die "Public IP" (Virtual IP). Da sich der User im Internen LAN befindet kann dies einige Probleme mit sich bringen da nun der User im "Internen LAN" vom DNS die Public IP (Virtual IP) erhält um www.mydomain.ch aufzurufen. Ebenfalls die DNS Resolution benötigt Zeit und verlangsamt den Zugriff.

Um nun die zwei Welten abzubilden dh. Extern und Intern kann ein Splitt DNS Server konfiguriert werden. Mit einer Fortigate ist dies möglich dh. die Funktion ist die "DNS Database". Per Standard ist diese Funktion/Position NICHT ersichtlich auf einer Fortigate und muss zuerst aktiviert werden unter:

       System > Admin > Settings > DNS Database
       NOTE Ab FortiOS 5.0.3 / 5.2 steht dieses Features über folgende Menüposition zur Verfügung:
             
            System > Config > Features
            
            Fortinet-781.jpg

Sobald die Funktion aktiviert ist, erscheint unter "System > Network > DNS Servers" der entsprechende Punkt. In unserem Beispiel sind wir davon ausgegangen, dass unser DMZ Server folgende Infos betreffend DNS hat:

       192.168.1.1               (IP Adresse des WebServers im DMZ)
       www.mydomain.ch           (FQDN konfiguriert und registriert auf dem Authoritativen DNS Server im Internet)
       212.59.153.115            (Public IP "A" Record konfiguriert auf dem Authoritativen DNS Server im Internet) 

Un nehme wir an im Internen LAN würde es ebenfalls die Domaine geben "mydomain.ch". Ziel wäre es, dass wenn die User im "Internen LAN" www.mydomain.ch im Browser eingeben der DNS Server anstelle der Public IP 212.59.153.115 die interne Adresse des WebServers im DMZ zurückgibt 192.168.1.1 da die Anfrage vom "INTERNEN" LAN kommt und nicht vom Extern. Um so eine konfiguration durchzuführen muss folgendes konfiguriert werden:

       Datei:Fortinet-169.jpg
       Der zu konfigurierende DNS Server muss als MASTER Server konfiguriert werden jedoch NICHT als Authoritativ!
       
       Datei:Fortinet-170.jpg
       Der DNS Server ist konfiguriert nun muss für die entsrpechende Zone ein "A" Record für www.mydomain.ch erfasst werden!
       
       ACHTUNG CNAME (Alias) Einträge sind unter FortiOS 4.x NICHT möglich! Dies wird erst mit FortiOS 5.0 / 5.2 unterstützt!
       
       Datei:Fortinet-171.jpg
       Datei:Fortinet-172.jpg
       
       NOTE Es ist zu empfehlen für den Host ebenfalls einen "PTR" record zu erstellen!
       Datei:Fortinet-173.jpg

Die Konfiguration kann ebenfalls auf der Console durchgeführt werden:

       # config system dns-database
       # edit MYDOMAIN.CH
       # set domain mydomain.ch
       # set type master
       # set view shadow
       # set ttl 86400
       # set primary-name dns
       # set contact hostmaster@mydomain.ch
       # set authoritative disable
       # config dns-entry
       # edit 1
       # set hostname www.mydomain.ch
       # set type A
       # set ip 192.168.1.1
       # set status enable
       # end
       # end

Diese Art der Konfiguration ist ein Hybrid dh. KEIN echter Splitt DNS Server da der Authoritative DNS Server im Internet steht und nicht auf der Fortigate konfiguriert ist. Um jedoch zu gewährleisten, dass unser neu Konfigurierte DNS Server NICHT Authoritativ ist und das NICHT gefundene DNS Einträge extern abgefragt werden, muss die View auf shadow gesetzt werden! Um die Konfiguration abzuschliessen muss der externe Port (wan) auf "Recursive" gesetzt werden dh. das der externe Port "Recursive" Anfragen absetzt:

       NOTE Die Konfiguration des "wan1" Interfaces darf ab FortiOS 5 NICHT MEHR durchgeführt werden
            obwohl dies im FortiOS Handbuch (Stand 1. April 2014 Seite 457) explizit erwähnt ist. Dies
            bedeutet, wird dies durchgeführt so ist dieser Deamon auf dem "wan1" Interface als "Rekursiver"
            DNS Server errreichbar. Ab FortiOS 5 muss nur noch der interne Deamon dh. in unserem Beispiel
            "internal" konfiguriert werden! Die "nicht" internen Anfragen werden dann automatisch den DNS
            Servern -die auf der FortiGate konfiguriert wurden- weitergeleitet!
       Datei:Fortinet-174.jpg
       Datei:Fortinet-175.jpg

Um die Konfig auf der Console durchzuführen führe folgendes durch:

       # config system dns-server
       # edit wan1
       # set mode recursive
       # end

Damit auf dem "Internen" Interface der DNS Server -den wir erstellt haben- erreichbar ist, muss folgende Konfiguration durchgeführt werden:

       Datei:Fortinet-176.jpg
       Datei:Fortinet-177.jpg

Um die Konfig auf der Console durchzuführen führe folgendes durch:

       # config system dns-server
       # edit internal
       # set mode recursive
       # end

Nun fehlt nur noch der letzte Schritt dh. dem User muss über DHCP -sofern nicht manuell konfiguriert- der entsprechende DNS Server zugewiesen werden:

       Datei:Fortinet-178.jpg
       Datei:Fortinet-179.jpg

Die Konfiguration ist abgeschlossen. Wenn nun ein User im "Internal" LAN ein DNS Request absetzt (DNS Server dem User zugewiesen über DHCP 192.168.1.99) schaut die Fortigate im internen DNS Server nach und sofern ein Eintrag gefunden wird so wird dieser ausgeliefert. Ist ein entsprechender Eintrag nicht vorhanden wird die Anfrage über das "wan" Interface an die externen DNS Server weitergewiesen (definierte System DNS Server).

Kann ich auf der Fortigate für den DNS Server und einer bestimmten Zone eine "Zone Transfer" aktivieren?

Nun wenn auf einer FortiGate ein DNS Server (DNS Database) konfiguriert wird -mit oder ohne Split DNS Server- stellt sich die Frage ob die entsprechende Zone zB für "mydomain.ch" automatisch ein Update erhält, wenn der "authoritative" DNS Server für "mydomain.ch" ein Update für einen Eintrag durchführt!? Ab FortiOS 5.0.x ist dies möglich und zwar folgendermassen:

       # config system dns-database 
       # edit [Name des entsprechenden Zonen Eintrages zB. "mydomain.ch"] 
       # set allow-transfer [Gebe die IPv4 Adresse des "authoritativen" Servers an für "mydomain.ch"] 
       # end
       
       NOTE Wie auf einer FortiGate ein DNS Server sprich "DNS Database" eingerichtet wird siehe nachfolgender Artikel:
            
            Fortigate:FAQ#Kann_ich_auf_der_Fortigate_einen_Splitt_DNS_Server_einrichten.3F
            
            Desweiteren ist bei der Komunikation zwischen "authoritativen" und/oder "none-authoritativen" Servern darauf zu 
            achten mit welcher IP die Komunikation durchgeführt wird. Dies bedeutet im normal Fall wird der "non-authoritative"
            Server (in unserem Beispiel die FortiGate) ebenfalls im "authoritativen" Server eingetragen. komuniziert nun die 
            FortiGate nicht die gewünschte "Source IP" zum "authoritativen" Server kann diese mit folgender Konfiguration 
            entsprechend gesetzt werden:
            
            # config system dns-database
            # edit [Name des entsprechenden Zonen Eintrages zB. "mydomain.ch"] 
            # set source-ip [IPv4 Adresse die als Source konfiguriert werden soll]
            # end

Kann ich auf einer FortiGate eine bestimmte DNS Anfrage umschreiben/verändern?

Wenn in einer bestimmten Umgebung eine DNS Anfrage anderst beantwortet werden soll als in einer anderen Umgebung 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. Weitere Informationen siehe nachfolgenden Artikel:

       Fortigate:FAQ#Kann_ich_auf_der_Fortigate_einen_Splitt_DNS_Server_einrichten.3F

Kann/Möchte 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 implementiren gehe folgendermassen vor:

       Beispiel
       
       Mail Server FQDN mail.mydomain.ch
       Mail Server Public IP 212.59.153.125
       Mail Server Internal IP 192.168.1.100
       Schritt 1
       
       Kontrolliere als Erstes ob für DNS (udp) ein DNS Session-Helper existiert:
       
       # show system session-helper
       ................
       edit 13
       set name dns-udp
       set port 53
       set protocol 17
       ................ 
       
       Ist der Session-Helper für DNS (udp) nicht vorhanden 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:
            
            Fortigate:FAQ#Fortigate_benutzt_in_gewissen_Konfigurationen_Protokoll_Nummern_.28Assigned_Internet_Protocol_Numbers.29.3B_Wo_finde_ich_diese.3F
       Schritt 2
       
       Als nächstes konfigurieren wir die "dnstranslation" und zwar gemäss unserem Beispiel folgendermassen:
       
       # config firewall dnstranslation
       # edit [Gebe einen Integer an zB "1"]
       # set dst [IPv4 Internal Adresse von mail.mydomain.ch "192.168.1.100"]
       # set netmask [Netmask für mail.mydomain.ch "255.255.255.255"]
       # set src [IPv4 Public Adresse von mail.mydomain.ch "212.59.153.125"]
       # end
       Erklärung
       
       Die Anfrage an den Public DNS Server sowie dessen Antwort werden folgendermassen auf der FortiGate abgearbeitet:
       
       Anfrage = User --> nslookup mail.mydomain.ch --> Anfrage an Public DNS Server --> FortiGate Policy Allow --> Public DNS Server Anfrage "mail.mydomain.ch"
       Antwort = Public DNS Server Antwort mail.mydomain.ch --> 212.59.153.125 --> FortiGate "Session-Helper" --> "dnstranslation" Funktion = 192.168.1.100 --> User
       
       NOTE wie hier in diesem Beispiel gezeigt kann die Funktion anhand "nslookup" getestet werden
            und somit verifiziert werden ob die "dnstranslation" korrekt funktioniert!

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

DDNS

Wie konfiguriere ich einen DDNS Server Dienst?

Nun der DDNS Dienst steht auf Kommandozeile zur Verfügung dh. sofern die Konfiguration über WebGui nicht mehr zur Verfügung steht (Ab FortiOS 5.0.3 / 5.2). Grundsätzlich ist ein DDNS Client Software auf einer FortiGate implementiert die folgende Dienste unterstützt:

       dhs.org                 — unterstützt members.dhs.org and dnsalias.com
       dipdns.net              — unterstützt  dipdnsserver.dipdns.com
       dyndns.org              — unterstützt  members.dyndns.org
       dyns.net                — unterstützt  www.dyns.net
       easydns.com             — unterstützt  members.easydns.com
       FortiGuardDDNS          — unterstützt  FortiGuard DDNS service
       genericDDNS             — unterstützt  DDNS server (RFC 2136) definiert durch die DDNS Server IP
       now.net.cn              — unterstützt  ip.todayisp.com
       ods.org                 — unterstützt  ods.org
       tzo.com                 — unterstützt  rh.tzo.com
       vavic.com               — unterstützt  ph001.oray.net
       
       NOTE Möchte man einen eigenen DDNS Server installieren wird dieser durch "genericDDNS" 
            Unterstützt. Kommt es zu Problemen kann mit folgendem debug Vorgang ein Troubleshooting
            durchgeführt werden (gilt auch für allg. Troubleshooting):
            
            Fortigate:FAQ#Wie_kann_ich_Verbindungsprobleme_bei_DDNS_auf_den_Grund_gehen.3F

Um den entsprechenden DDNS zu konfigurieren führe auf der Kommandozeile folgendes aus:

       # config system ddns
       # edit [Gebe einen Integer Index an zB "1"]
       # set ddns-domain [Gebe einen DDSN Domain Namen an]
       # set ddns-password [Gebe einen DDSN Passwort an]
       # set ddns-server [Gebe einen DDSN Service an]
       # set ddns-username [Gebe einen DDSN Usernamen an]
       # set monitor-interface [Gebe das entsprechende Interface an]
       # end

Wie kann ich Verbindungsprobleme bei DDNS auf den Grund gehen?

Wenn eine DDNS (Dynamic DNS) Konfiguration durchgeführt wird und es zu Problemen kommt kann mit folgenden Befehlen (debug) die Verbindung überprüft werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug console time ena 
       # diagnose debug application ddnscd -1 
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable 
       
       NOTE Im Befehl "application ddnscd" wird durch die Angabe "-1" die Tiefe (debug level) angegeben.
            Für tieferen Einblick ist die Angaben "-3" empfohlen!

Der "diagnose debug" Befehl ist "persistent" dh. auch wenn ausgeloggt wird läuft dieser im Hintergrund weiter und belastet -je nach Debugging- den Device im hohen Masse. Aus diesem Grund ist es wichtig den Debug wiederum zu "disablen" dh. führe folgendes aus:

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

Wenn betreffend DDNS die Verbindung nicht zu stande kommt (Da zB. falscher Domain Name, Passwort etc.) wird durch die FortiGate alle 240 Sekunden (4 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!

       ACHTUNG Wenn der Output des Debug weitergegeben wird zB Support etc. sollten die Passwörter entfernt werden da in der
               DDNS Verbindung das Passwort "clear-text" übermittelt wird!

Was muss berücksichtigt werden für DDNS bei einem Hardware Austausch?

Wenn eine DDNS Name registriert wird über welchen Dienst auch immer ist dieser Einmalig und kann nicht zweimal vergeben werden. Wenn es nun zu einem Hardware Defekt kommt oder zu einem regulären Hardware Austausch zB grössere Device, muss folgender berücksichtigt werden:

       NOTE Nachfolgende Beispiele gehen davon aus das der FortiGuard DDNS Service benutzt wird!
       DDNS Name muss vorgängig auf dem "alten" Device gelöscht (De-Registrierung) werden:
       
       System > Network > DNS > Enable FortiGuard DDNS Service > [Deaktivieren] > Apply
       
       Nun steht der Name auf dem neuen Gerät für eine neue Registrierung wiederum zur Verfügung!
       DDNS kann nicht vorgängig auf dem "alten" Device gelöscht (De-Registrierung) werden da alte Hardwre nicht mehr zur Verfügung steht::
       
       Es muss über Fortinet ein entsprechendes Technical Support Ticket erstellt werden anhand der Serien Nummer
       des alten Gerätes. Im Ticket muss erwähnt werden, dass dieses Gerät nicht mehr zur Verfügung steht und der
       FortiGuard DDNS Name gelöscht werden soll. Nach Ausführung des Tickets kann dann der entsprechende Name
       wiederum auf dem neuen Device registriert werden.

DHCP

Wie kann ich für ein Interface einen DHCP Server konfigurieren?

Um einen DHCP Server auf einem bestimmten Interface zu konfigurieren führen folgendes auf der Console durch:

     # config system dhcp server
     # edit 1
     new entry '1' added
     # set default-gateway [zB 192.168.1.99]
     # set dns-service default
     # set interface "[Name des Ports zB internal1]"
     # config ip-range
     # edit 1
     new entry '1' added
     # set end-ip 192.168.1.210
     # set start-ip 192.168.1.110
     # next
     # end
     # set netmask 255.255.255.0
     # next
     # end

Die Konfiguration ist ebenfalls über WebGui möglich. Wähle dazu:

       System > Network > DHCP Server > Create New
       
       NOTE Ab FortiOS 5.0.3 / 5.2 wird der DHCP Server nicht mehr als seperater Menüpunkt geführt sondern wird
            innerhalb der Interface Konfiguration als seperater Menüpunkt geführt. Ab FortiOS 5.2 sind zusätzliche
            Konfigurationspunkte über das Gui möglich die unter FortiOS 5.0 nur über Komandozeile möglich sind. Dies
            jedoch nur wenn folgende Option aktiviert ist:
            
            # config system global 
            # set gui-advanced-dhcp enable 
            # end
            
            System > Network > Interfaces > [Wähle ein entsprechendes Interface] > DHCP Server [aktiviere Enable]
            
            Fortinet-1100.jpg
            
            Ueber Kommandozeile stehen folgende Grundoptionen zur Verfügung:
            
            # config system dhcp server 
            # edit 1
            # get
            id                  : 2
            status              : enable 
            lease-time          : 604800
            mac-acl-default-action: assign 
            forticlient-on-net-status: enable 
            dns-service         : specify 
            wifi-ac1            : 0.0.0.0
            wifi-ac2            : 0.0.0.0
            wifi-ac3            : 0.0.0.0
            ntp-service         : specify 
            domain              : 
            wins-server1        : 0.0.0.0
            wins-server2        : 0.0.0.0
            default-gateway     : 0.0.0.0
            next-server         : 0.0.0.0
            netmask             : 0.0.0.0
            interface           : 
            ip-range:
            timezone-option     : disable 
            tftp-server         : 
            filename            : 
            option1             : 0
            option2             : 0
            option3             : 0
            option4             : 0
            option5             : 0
            option6             : 0
            server-type         : regular 
            conflicted-ip-timeout: 1800
            auto-configuration  : enable 
            vci-match           : disable 
            exclude-range:
            reserved-address:
            dns-server1         : 0.0.0.0
            dns-server2         : 0.0.0.0
            dns-server3         : 0.0.0.0
            ntp-server1         : 0.0.0.0
            ntp-server2         : 0.0.0.0
            ntp-server3         : 0.0.0.0
            # end

Wie kann ich für einen DHCP Server eine IP aus dem DHCP Lease löschen?

Um eine IP aus dem DHCP Lease zu löschen benutze folgendes Kommando:

       # execute dhcp lease-clear [IPv4 Adresse oder all]
       
       NOTE Bis FortiOS 5.0 war die nur über CLI möglich. Neu ab FortiOS 5.2 ist dies nur auch über
            Web Mgmt. Gui möglich unter folgender Position:
            
            Fortinet-1101.jpg

Wie füge ich einer bestimmten MAC Adresse eine IP aus dem DHCP Range hinzu?

Wenn einer bestimmten MAC Adresse über den DHCP Server immer die gleiche IP zugewiesen werden soll dann benütze folgende Kommandos auf der CLI um dies durchzuführen:

     # config system dhcp server
     # config reserved-address
     # edit [Wähle einen Integer zB 1]
     # set ip [IPv4 Adresse zB "10.10.10.55"]
     # set mac [Mac Adresse in Form "00:09:0F:30:CA:4F"]
     # set action [assign | block | reserved]
     # end
     
     NOTE Diese Konfiguration kann ebenfalls über das WebGui durchgeführt werden dh. wähle dazu folgendes im WebGui:
          
          System > Network > Inteface > [Wähle ein entsprechendes Interface] > DHCP Server > Advanced
          
          Danach kann unter "Create New" eine MAC Adresse mit der entsprechenden IP konfiguriert werden! Ebenso kann eine
          MAC Adresse konfiguriert werden um explizit eine IP zuzuweisen dh. assign und/oder block sowie reserved.
          
          Ab FortiOS 5.2 kann dies ebenfalls über die "DHCP Monitor" Funktion durchgeführt werden:
          
          Fortinet-1101.jpg

Wie kann ich ein Troubleshooting für einen DHCP Server durchführen?

Wenn zB ein bestimmter Client/Server nicht die entsprechende IP durch den DHCP Server zugewiesen wird und man nähere Informationen benötigt (debug) führe folgendes auf der Kommandozeile aus um an die nötigen Informationen zu kommen:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application dhcps -1
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable

Um nachzuprüfen ob der Traffic auf dem entsprechenden Interface ankommt öffne eine weitere CLI (Kommandozeile) zB über SSH und führe folgendes aus:

      # diagnose sniffer packet [Name des entsprechenden Interfaces zB internal] 'port 67 and 68' 3

Deaktiviere das Interface des Client/Server im Zusammenhang mit dem DHCP Server Problemen und aktiviere dieses wieder. Nun sollten die nötigen Anfrgen/Traffic ersichtlich sein. Nachdem der Debug Modus mit dem entsprechenden Filter nicht mehr benötigt wird führe folgendes aus:

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset

ARP

Wie zeige ich die ARP Table an?

Wie kann ich die ARP Table anzeigen lassen?

       # get sys arp
       Address           Age(min)   Hardware Addr      Interface
       192.168.2.100     0          00:1b:38:88:6e:fe internal

Für eine Auflistung mit ausführlichen Informationen führe aus:

       # diagnose ip arp list
       index=13 ifname=root 0.0.0.0 00:00:00:00:00:00 state=00000040 use=14403581 confirm=14409581 update=14403581 ref=2
       index=11 ifname=internal1 192.168.1.10 state=00000020 use=138 confirm=14405479 update=438 ref=2
       index=11 ifname=internal1 192.168.1.20 state=00000020 use=498 confirm=14408799 update=798 ref=2
       index=6 ifname=dmz 192.168.3.3 00:09:0f:f9:29:20 state=00000002 use=0 confirm=592 update=592 ref=3
       index=16 ifname=fortinet4also 192.168.5.2 9c:b7:0d:de:8f:74 state=00000002 use=0 confirm=0 update=589 ref=3
       index=17 ifname=fortinet4guests 192.168.5.137 ec:85:2f:b0:35:d3 state=00000004 use=1704 confirm=7704 update=1704 ref=0
       index=4 ifname=wan1 193.193.135.65 00:90:0b:2c:bf:4c state=00000008 use=80 confirm=4286 update=80 ref=4
       index=4 ifname=wan1 193.193.135.70 08:5b:0e:0c:f4:18 state=00000002 use=1245 confirm=3745 update=2323 ref=2

Wie "flush" ich die ARP Table?

       # execute clear system arp table

Wie lösche ich ARP Eintraege die auf ein Interface gebunden sind?

       # diagnose ip arp delete [Interface Name] [IPv4 Adresse]
       # diagnose ip arp flush [Interface Name]

Wie kann ich einen statischen ARP Entrag hinzufügen?

       # config system arp-table 
       # edit 1
       new entry '1' added
       # get
       id                  : 1
       interface           : 
       ip                  : 0.0.0.0
       mac                 : 00:00:00:00:00:00
       # set interface [Name des Interface zB "wan1"]
       # set ip [IPv4 Adresse]
       # set mac [MAC Adresse der IPv4 Adresse]
       # end

Routing

Welche "Dynamische Routing Protokolle" unterstützt Fortigate?

Eine Fortigate unterstützt folgende "Dynamischen Routing Protokolle":

       BGP (Border Gateway Protocoll)
       OSPF (Open Shortest Path First)
       RIP (Routing Information Protocoll)
       IS-IS (Intermeditate System to Intermediate System)
       
       NOTE Im Zusammenhang mit OSPF und BGP wird BFD unterstützt (Bi-Directional Forwarding Detection)!

Wie kann ich die Routing Tabelle einer FortiGate anzeigen lassen?

Die Routing Table wird über Kommandozeile folgendermasen angezeigt:

       # get router info routing-table all
       Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
              O - OSPF, IA - OSPF inter area
              N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
              E1 - OSPF external type 1, E2 - OSPF external type 2
              i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
              * - candidate default
       
       C       192.168.2.0/24 is directly connected, internal
       
       NOTE Anstelle von "all" stehen folgende Optionen zur Verfügung:
            
            details      show routing table details information
            all          show all routing table entries
            rip          show rip routing table
            ospf         show ospf routing table
            bgp          show bgp routing table
            isis         show isis routing table
            static       show static routing table
            connected    show connected routing table
            database     show routing information base

Möchte man die Routing Table auf Basis der Protokolle anzeigen lassen kann folgender Befehl benutzt werden:

       # get router info protocols 
       Routing Protocol is "rip"
         Sending updates every 30 seconds with +/-50%
         Timeout after 180 seconds, garbage collect after 120 seconds
         Outgoing update filter list for all interface is not set
         Incoming update filter list for all interface is not set
         Default redistribution metric is 1
         Redistributing:
         Default version control: send version 2, receive version 2 
           Interface        Send  Recv   Key-chain
         Routing for Networks:
         Routing Information Sources:
           Gateway          Distance  Last Update  Bad Packets  Bad Routes
         Distance: (default is 120)
       
       Routing Protocol is "ospf 0"
         Invalid after 0 seconds, hold down 0, flushed after 0
         Outgoing update filter list for all interfaces is
         Incoming update filter list for all interfaces is
         Redistributing: 
         Routing for Networks:
         Routing Information Sources:
           Gateway         Distance      Last Update
         Distance: (default is 110)
           Address         Mask            Distance List
       
       Routing Protocol is "isis"
         System ID: 0000.0000.0000
         Area addr: Non-configured
         IS type: level-1-2
         Number of Neighbors: 0
       
       NOTE Anstelle von "protoccols" stehen folgende Optionen zur Verfügung:
            
            routing-table    show routing table information
            protocols        show routing protocols information
            rip              show rip information
            ospf             show ospf information
            bgp              show router info bgp information
            multicast        show routing multicast information
            bfd              show BFD information
            isis             show isis information
            kernel           show kernel routing table
            vrrp             show vrrp status

Wie zeige ich eine Routing Table an im Zusammenhang mit IP's?

       # diagnose ip route list 
       tab=254 vf=0 scope=253 type=1 proto=2 prio=0 0.0.0.0/0.0.0.0/0->192.168.101.0/24 pref=192.168.101.99 gwy=0.0.0.0 dev=5(wan2)
       tab=254 vf=0 scope=253 type=1 proto=2 prio=0 0.0.0.0/0.0.0.0/0->192.168.2.0/24 pref=192.168.2.99 gwy=0.0.0.0 dev=3(internal)
       # get router info kernel
       tab=254 vf=0 scope=253 type=1 proto=2 prio=0 0.0.0.0/0.0.0.0/0->192.168.101.0/24 pref=192.168.101.99 gwy=0.0.0.0 dev=5(wan2)
       tab=254 vf=0 scope=253 type=1 proto=2 prio=0 0.0.0.0/0.0.0.0/0->192.168.2.0/24 pref=192.168.2.99 gwy=0.0.0.0 dev=3(internal)
       
       NOTE Weitere Informationen zum Kommando "get router info" siehe auch nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_die_Routing_Tabelle_einer_FortiGate_anzeigen_lassen.3F
       # diagnose ip address list
       IP=192.168.2.99->192.168.2.99/255.255.255.0 index=3 devname=internal
       IP=192.168.101.99->192.168.101.99/255.255.255.0 index=5 devname=wan2
       IP=10.10.10.1->10.10.10.1/255.255.255.0 index=6 devname=dmz
       IP=127.0.0.1->127.0.0.1/255.0.0.0 index=13 devname=root
       IP=127.0.0.1->127.0.0.1/255.0.0.0 index=16 devname=vsys_ha
       IP=127.0.0.1->127.0.0.1/255.0.0.0 index=18 devname=vsys_fgfm

Wie kann ich BFD (Bi-Directional Forwarding Detection) aktivieren?

Nun Bi-Directional Forwarding Detection (BFD) kann anhand der CLI eingeschaltet werden. Folgendes ist auszuführen:

       # config system settings
       # set bfd enable
       # end

Nachdem BFD global aktiviert wurde steht die Funktion innerhalb der Interface Konfiguration zur Verfügung:

       # config system interface
       # edit [Interface Name]
       # set bfd enable
       # next
       # edit [Interface Name]
       # set bfd enable
       # end

BFD kann ebenfalls innerhalb eines Routing Protokolls aktiviert werden wie zB OSPF. Um für OSPF BFD zu aktivieren führe folgendes durch:

       # config router ospf
       # set bfd enable
       # config ospf-interface
       # edit [Interface Name]
       # set bfd enable
       # next
       # edit [Interface Name]
       # set bfd enable
       # end

Nachdem BFD auf zwei Interface aktiviert wurde kann durch folgenden Befehl der Status abgefragt werden:

       # get router info bfd neighbor

Nun sollte der Output die "neighbors" mit dem Status "UP" anzeigen. Nach der Implementierung sollte diese vollumfänglich getestet werden.

Wie schalte ich die "Dead Gateway Detection / Link Health Monitor" ein für ein Interface zB wan 1 und 2?

Um eine "Dead Gateway Detection / Link Health Monitor" Ueberwachung einzurichten benötigen wir Devices die wir dazu benützen können. Dies bedeutet: Wenn wir zB 2 ISP's haben müssten wir hinter den "wan1" und "wan2" Interfaces Devices anpingen damit wir feststellen können ob der ISP noch "up and running" ist. Natürlich könnten man die ISP Router direkt nehmen jedoch ist dies nicht eine optimale Lösung. Besser wäre zB einen Router zu nehmen aus dem ISP Backbone Bereich. Somit kann einwandfrei festgestellt werden ob der Backbone des Providers erreichbar ist und im Fall das dem nicht so ist einen Failover zu initieren. Um die beiden "wan1/2" Ports für eine "Dead Gateway Detection / Link Health Monitor" zu konfigurieren führe folgendes durch:

       NOTE Ab FortiOS 5.2 wurde der Name der Funktion geändert auf "Link Health Monitor". Die Grundfunktionen
            sind jedoch dieselbe geblieben mit kleinen Anpassungen!
       FortiOS 5.0
       Datei:Fortinet-139.jpg
       
       Datei:Fortinet-140.jpg
       
       Datei:Fortinet-139.jpg
       
       Datei:Fortinet-141.jpg
       FortiOS 5.2
       Fortinet-1104.jpg
       
       Fortinet-1102.jpg
       
       Fortinet-1104.jpg
       
       Fortinet-1103.jpg

Um die "Dead Gateway Detection / Link Health Monitor" gemäss Beispiel einzuschalten führe folgendes auf der Console aus:

       # config system interface
       # edit "wan1"
       # set fail-detect enable
       # set fail-detect-option detectserver
       # set fail-alert-interfaces "wan1" 
       # end
       # config system interface
       # edit "wan1"
       # config ipv6
       # end
       # end
       # config system link-monitor
       # edit "interf-wan1"
       # set srcintf "wan1"
       # set protocol ping
       # set server [Setze den entsprechende Ping Server für wan1] 
       # set gateway-ip [Setze die ensprechende Gateway IP von wan1]
       # set interval 5
       # set failtime 5
       # set recoverytime 5
       # set set ha-priority 1
       # end
       # config system interface
       # edit "wan1"
       # set fail-detect enable
       # set fail-detect-option detectserver
       # set fail-alert-interfaces "wan2" 
       # end
       # config system interface
       # edit "wan2"
       # config ipv6
       # end
       # end
       # config system link-monitor
       # edit "interf-wan2"
       # set srcintf "wan2"
       # set protocol ping
       # set server [Setze den entsprechende Ping Server für wan2] 
       # set gateway-ip [Setze die ensprechende Gateway IP von wan2]
       # set interval 5
       # set failtime 5
       # set recoverytime 5
       # set set ha-priority 1
       # end

Wenn nun die ISP's Backbone Router erreichbar sind sieht man den Status des "Dead Gateway Detection / Link Health Monitor" unter dem "Routing Monitor" (Router > Monitor > Routing Monitor) dh. wenn beide Routing Einträge für die Zieladressen sichtbar sind so sind beide "Routen" erreichbar.

       NOTE Unter FortiOS 5.0 findet man den Routing Monitor direkt unter dem Routing.
            Der Menüpunkt "Router" existiert per Standard nicht sofern das Feature unter
            folgendem Punkt nicht aktiviert wurde:
           
            System > Config > Features > Advanced Routing
            
            Nachdem aktivieren des Features sollte kurz ausgeloggt und wieder erneut 
            eingeloggt werden.

Wie wird das Routing auf einer Fortigate abgearbeitet?

       0) Routing Cache
       1) Policy Route
       2) Longest Match
       3) Distance
       4) Priority
       5) Metric (Dynamisches Routing)
       6) ECMP (Equal Cost Multiple Path)
       
       NOTE Um den Routing Cache zu erneurn benutze das Kommando:
            
            # execute router restart

Wenn von 0 - 6 nicht zutrifft gilt "Source Based ECMP" was wiederum bedeutet das ein Load Balancing durchgeführt wird sprich zB bei zwei ISP Linien werden gerade IP's über den einten ISP abgearbeitet und die ungeraden über den zweiten ISP (Source Based). Dies ist zu verhindern da das Troubleshooting erschwert wird. Zu empfehlen ist in so einem ein Fall "Policy Routen" zu implementieren. Siehe auch Artikel:

       Fortigate:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F

Wie kann ich ein "Backhole" Routing Eintrag erstellen?

Erstelle für einen "Backhole" Routing Eintrag einen üblichen Routing Eintrag. Dies bedeutet:

       # config router static
       # edit [Gebe eine neue Sequenz Nummer an]
       # set blackhole [enable oder disable]
       # set device [Gebe den Interface Namen an]
       # set distance <distance>
       # set dst [Gebe die Destination Adresse in IPv4 an]
       # end

Weitere Informationen über "Backhole" findet man im folgenden Artikel:

       Allgemein:PMTU-DiscoveryPMTU-BlackHoles

Wie schalte ich das "Reverse Path Forwarding" von "loose" auf "strict" (per Standard gilt "loose")?

Der Mode sollte immer auf "strict" (disabled) gesetzt werden um Spoofing zu verhindern! Per Standard ist "strict-src-check" auf "disabled":

       # config system settings
       # set strict-src-check disable
       # end

Ein Deaktiviertes "Strict Reverse Path Forwarding" resp. "strict-src-check" schützt uns vor:

       - IP Spoofing Attacks
       - Kontrolliert die Source IP Adressen der Packete (Wenn der Weg zurück nicht möglich ist so wird das Packet verworfen)

Es gibt Situationen indem ein Asymetrisches Routing implementiert werden muss. Solche Implementationen sind jedoch "umbedingt" zu verhindern. Wenn ein Asymetrisches Routing implementiert werden muss und die Auswirkungen 100% bekannt sind (Verhindern eines Loops) so muss von "strict" (disabled) auf "loose" (enabled) gewechselt werden sowie explizit ein Asymentrisches Routing erlaubt werden. Dies bedeutet:

       # config system settings
       # set strict-src-check enabled
       # end
       
       # config system settings
       # set asymroute enable
       # end
       
       NOTE Weitere Informationen zum Asymentrischen Routing findet man unter folgenden Artikel:
            
            Fortigate:FAQ#Wieso_verwirft_die_FortiGate_in_einem_Asynchronen_Routing_die_Packete_und_wie_kann_ich_das_verhindern.3F

Wie implementiere ich eine Dual ISP Verbindung?

Nun bei einer Dual ISP Implementierung ist Grundsätzlich folgende Arten zu Unterscheiden:

       - Failover Scenario (Nur eine ISP Verbindung wird benutzt)
       - Dual Redundant Scenario (Beide ISP Verbindungen werden benutzt)

In unserem Beispiel gehen wir von folgender Konstellation aus:

                                                   ___________                                      __________ 
                                                  |           |212.59.153.114/29                   |          |
                                                  |           |------ WAN1 ------------------------|          |
                                                  |           |                                    |          |
        _________________________                 |  FORTI    |                                    | INTENRET |
       |                         |    192.168.2.99|           |193.193.135.66/29                   |          |
       | LAN Env. 192.168.2.0/24 |----- LAN ------|           |------ WAN2 ------------------------|          |
       |_________________________|                |___________|                                    |__________|
       
       
       - Default Gateway "Forti WAN1 = 212.59.153.120"
                         "Forti WAN2 = 193.193.135.65" 


Als Erstes erfassen wir beide WAN Interface gemäss den obigen Angaben:

       System > Network Interface

Editiere WAN1 und WAN2 und setze gemäss obigen Angaben die entsprechenden Werte sprich:

       Fortinet-279.jpg
       Fortinet-280.jpg

Die Interface können natürlich auch auf PPoE oder DHCP gesetzt werden. In so einem Fall sollte die Position "Retrieve default gateway from server" deaktiviert werden sowie "Override internal DNS". Dies bedingt natürlich, dass unter folgender Position korrekte DNS Server definiert wurden die jedoch dann für beide ISP's gelden:

       System > Network > DNS Server

Wenn "Retrieve default gateway from server" aktiviert ist muss darauf geachtet werden, dass die "distance" auf Standard "10" steht dh. dies muss unter dem entsprechenden Interface kontrolliert werden. Nun beide Interface wurden definiert sowie die DNS Server. Nun definieren wir das Routing dh. erstelle für beide ISP's das Routing anhand des jeweiligen Default Gateways:

       Router > Static > Static Route
       
       Fortinet-281.jpg
       Datei:Fortinet-282.jpg

Die Priorität ist bei beden Routen auf "0" gesetzt und die "Distance" ebenfalls bei beiden Routen auf "10" dh. wenn die "Distance" bei beiden Routen auf dem gleichen Wert steht werden beide ISP's gleichzeitig benutzt (Dual Rendundant Scenario; Es gilt "Source Based ECMP"). Wenn die "Distance" unterschiedlich ist (Failover Scenario) so wird nur die ISP Verbindung genutzt die über die kleinere Distance verfügt und die andere als Failover. Die Route mit der kleineren "Distance" hat die erste Priorität und ist aktiv. Die zweite Route mit der grösseren "Distance" wird vom System entfernt und somit ist diese Inaktiv. Nun sofern die WAN 1 + 2 Interfaces korrekt definiert wurden sowie die hier erstellen Routen (Default GW) sind die entsprechenden Routen unter folgender Position ersichtlich:

       NOTE Wenn die Interfaces von WAN1 und/oder WAN2 auf PPPoE oder DHCP gesetzt sind und "Retrieve default gateway from server" aktiviert ist
            so muss die entsprechende "Distance" innerhalb der Interfaces gesetzt werden!
            
            Datei:Fortinet-283.jpg
       Router > Routing Monitor
       NOTE Unter FortiOS 5 findet man den Routing Monitor direkt unter dem Routing dh. der Menüpunkt "Router" existiert nicht mehr und ist
            nun unter "System > Network > Routing > Routing Monitor"!

In unserem Beispiel (mit gleicher "Distance") erscheinen 2 Default Gateways dh. einer für ISP 1 (WAN1) und einer für ISP 2 (WAN2). Nun um die Zwei ISP Verbindung zu überwachen muss ein ECMP (Dead Gateway Detection) Implementiert werden dh. siehe folgender Artikel:

       Fortigate:FAQ#Wie_schalte_ich_die_.22Dead_Gateway_Detection_.2F_Link_Health_Monitor.22_ein_f.C3.BCr_ein_Interface_zB_wan_1_und_2.3F

Nun erfassen wir die entsprechende "Policy Rule" dh. es gilt folgendes:

       --> Wenn "Dual Redundant" benutzt wird und unterschieden wird WAS über welchen Link abgehandelt wird so
           erstelle die nötigen "Policy Route" für WAN1 und WAN2.
              
       --> Wenn "Failover" benutzt wird so implementiere die Policy Rule doppelt dh. einmal für WAN1 und WAN2.
           Wenn dies nicht gewünscht wird können WAN1 und WAN2 in einer Zone zB WAN definiert werden und diese
           Zone in den Policy verwendet werden. Somit werden die Policy nur einmal definiert.

Für die "Failover" Variante ist die Arbeit getan und die Implementierung kann getestet werden. Für die "Dual Redundante" Variante müssen wir nun noch definieren WAS über welchen ISP (WAN1 oder WAN2) abgewickelt wird. Dies bedeutet es muss nur definiert werden über welchen Link sprich WAN1 oder WAN2 der Traffic per Standard läuft. Das Failoverover Senario wird in der "Policy Route" nicht definiert da wenn ein Link ausfällt der Traffic ohnehin über die verbliebene Route (Default Gateway) läuft. Dies wird über eine "Policy Route" defniert dh.:

       Router > Static > Policy Route
      
       Fortinet-284.jpg
       Fortinet-285.jpg
       Fortinet-286.jpg
       NOTE Unter FortiOS 5.2 wurde die Policy Route indem Sinne erweitert, dass es nun möglich ist bestimmten
            Traffic mit einer "expliziten" Policy Route zu blocken (Stop Policy Routing). Dies wird ebenfalls auf 
            dem Web Mgmt. Gui abgebildet:
            
            Fortinet-1105.jpg
            
            Unter der CLI ist es ebenfalls möglich eine "negation" abzubilden". Es stehen folgende Kommandos 
            zur Verfügung:
            
            # config router policy
            # edit [Gebe einen Integer an zB "1"]
            # set input-device [Gebe das Source Interface an zB "lan"]
            # set src [Gebe den entsprechenden IPv4 Range an zB 192.168.1.0/24]
            # set src-negate [Durch "enable" wird "src" negated]
            # set dst [Gebe -sofern nötig- einen entsprechenden IPv4 Adresse/Range an]
            # set dst-negate [Durch "enable" wird "dst" negated]
            # Set action [deny | permit]
            # set protocol [Gebe das entsprechende Protokol an zB TCP = 6]
            # set start-port [Gebe einen entsprechenden Dst. Port an zB TCP 1]
            # set end-port [Gebe einen entsprechenden Dst. Port an zB TCP 65535]
            # set start-source-port [Gebe einen entsprechenden Src. Port an zB TCP 1]
            # set end-source-port [Gebe einen entsprechenden Src. Port an zB TCP 65535]
            # set comments [Setze einen entsprechenden Kommentar]
            # end
       NOTE In unserem Beispiel soll HTTP Port 80 von der Source LAN (192.168.2.0/24) über WAN 1 rausgesendet werden
            und VoIP aus dem LAN über WAN2! Die Destination selber sollte eingegrenzt werden sofern möglich dh. bei
            Port 80 (Für Internet Browsing) ist die Destination natürlich nicht bekannt also belässt man die Position
            auf 0.0.0.0 dh. Any. Bei VoIP wäre es zu empfehlen die Destination durch die Definiton des VoIP Provider
            IP Ranges einzugrenzen!
            
            Betreffend Protokoll Nummern siehe folgender Artikel:
       
            Fortigate:FAQ#Fortigate_benutzt_in_gewissen_Konfigurationen_Protokoll_Nummern_.28Assigned_Internet_Protocol_Numbers.29.3B_Wo_finde_ich_diese.3F
            
            Betreffend VoIP Implementierung siehe folgender Artikel:
            
            Fortigate:FAQ#Was_ist_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F

Wie zeige ich die Informationen an der Routing Protokolle (RIP, OSPF, ISIS)?

Routing Informationen basiert auf Protokollen werden folgendermassen angzeigt:

       # get router info protocols 
       Routing Protocol is "rip"
         Sending updates every 30 seconds with +/-50%
         Timeout after 180 seconds, garbage collect after 120 seconds
         Outgoing update filter list for all interface is not set
         Incoming update filter list for all interface is not set
         Default redistribution metric is 1
         Redistributing:
         Default version control: send version 2, receive version 2 
           Interface        Send  Recv   Key-chain
         Routing for Networks:
         Routing Information Sources:
           Gateway          Distance  Last Update  Bad Packets  Bad Routes
         Distance: (default is 120)
       
       Routing Protocol is "ospf 0"
         Invalid after 0 seconds, hold down 0, flushed after 0
         Outgoing update filter list for all interfaces is
         Incoming update filter list for all interfaces is
         Redistributing: 
         Routing for Networks:
         Routing Information Sources:
           Gateway         Distance      Last Update
         Distance: (default is 110)
           Address         Mask            Distance List
       
       Routing Protocol is "isis"
         System ID: 0000.0000.0000
         Area addr: Non-configured
         IS type: level-1-2
         Number of Neighbors: 0
       
       NOTE Anstelle von "protoccols" stehen folgende Optionen zur Verfügung:
            
            routing-table    show routing table information
            protocols        show routing protocols information
            rip              show rip information
            ospf             show ospf information
            bgp              show router info bgp information
            multicast        show routing multicast information
            bfd              show BFD information
            isis             show isis information
            kernel           show kernel routing table
            vrrp             show vrrp status

Weitere Informationen betreffend Routing Tabelle siehe Artikel:

       Fortigate:FAQ#Wie_kann_ich_die_Routing_Tabelle_einer_FortiGate_anzeigen_lassen.3F

Mit welchen Kommandos kann ich das Routing Analysieren?

Folgende Kommandos können benutzt werden um das Routing zu analysieren:

       # get router info routing-table all
       # get router info routing-table database
       # get router info kernel
       # get router info protocols
       
       NOTE Weitere Informationen siehe Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_die_Routing_Tabelle_einer_FortiGate_anzeigen_lassen.3F
       # diagnose ip address list
       # diagnose ip arp list
       
       NOTE Weitere Informationen siehe Artikel:
            
            Fortigate:FAQ#Wie_zeige_ich_eine_Routing_Table_an_im_Zusammenhang_mit_IP.27s.3F

Wieso verwirft die FortiGate in einem Asynchronen Routing die Packete und wie kann ich das verhindern?

Nun eine FortiGate ist per Standard so konfiguriert, dass RPF (Reverse Path Forwarding) oder auch Anti Spoofing aktiviert ist! Es gibt zwei Situationen in der die FortiGate zurückführen auf RFP und/oder AntiSpoofing die Packete verwirft:

       --> IP Packet werden der FortiGate weitergeleitet in ein bestimmtes Segment zB DMZ obwohl die Quell IP aus 
           einem anderen auf der FortiGate konfigurierten Segment stammt. In diesem Fall werden die IP Packet werworfen!
       
       --> IP Packete werden der FortiGate weitergeleitet obwohl die Quell IP nicht der Routing Konfiguration der FortiGate 
           übereinstimmt. Wenn ein bestimmter Routing Eintrag auf der FortiGate ein bestimmter IP Range in ein bestimmtes 
           Segment sendet jedoch dieser IP Range über ein anderes Segment auf die FortiGate weitergeleitet wird so wird das 
           IP Packet verworfen. Dies gilt für statisches Routing, RIP, OSPF, und BGP!
       
       NOTE In beiden Fällen werden keine Log Einträge erstellt sondern die IP Packete werden "silently"
            verworfen! Dieser Umstand ist im folgenden Knowledge Base Artikel erklärt:
            
            http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD30543&languageId= 

Möchte man das Antispoofing resp. RFP deaktivieren was wiederum heisst Asynchrones Routing erlauben muss folgendes durchgeführt werden:

      # config system settings
      # set strict-src-check enabled
      # end
      
      # config system settings
      # set asymroute enable
      # end
       
      NOTE Das Deaktiveren von RFP und/oder Antispoofing sollte wohlüberlegt sein und nur in Ausnahmenfällen durchgeführt werden
           da vers. Gefahren bestehen wie zB einen Loop nicht mehr verhindern zu können. Weitere Informationen zum Kommando "stict-src-check"
           findet man unter folgenden Artikel:
           
           Fortigate:FAQ#Wie_schalte_ich_das_.22Reverse_Path_Forwarding.22_von_.22loose.22_auf_.22strict.22_.28per_Standard_gilt_.22loose.22.29.3F

Wie wird der Traffice im Transparent Mode betreffend Routing abgearbeitet?

Eine FortiGate im "Transparent Mode" aggiert wie eine Bridge und leitet den Traffic im Layer-2 weiter dh. Ethernet Packete werden basierend auf deren "MAC Adressen" abgearbeitet und NICHT anhand deren IP's. Es findet deshalb kein "Routing" statt und Routen sind nicht konfigurierbar.

       NOTE Damit der Zugriff auf die FortiGate im Transparent Mode gewährleistet ist, wird ein Interface als Mgmt. Interface
            definiert und mit einer IP sowie Subnetmask versehen! Damit "Routing Technisch" gesehen dieses Mgmt. Intrface erreichbar
            ist "muss" für dieses Interface eine Route konfiguriert werden. Diese Route beschränkt sich auf das Mgmt. Interface.

Multicast

Wie kann ich eine Fortigate so konfigurieren, dass diese Multicast Traffic zB für IP TV korrekt verarbeitet?

Voraussetzung um Multicast korrekt abzuarbeiten ist FortiOS 5. FortiOS 4 unterstützt zwar Multicast jedoch in bestimmten Bereichen ist die Implementation nicht vollständig. Bei FortiOS 5 wurde Multicast komplett überarbeitet. Die meisten IP TV wie zB BluewinTV oder Swisscom TV benützen Multicast Traffic für die Uebertragung der Daten. Per Default ist dieser Multicast Traffic geblockt auf einer Firewall. Zusätzlich stellt sich die Frage des NAT (Network Address Translation). Nachfolgende Anweisung um so einen Multicast Traffic korrekt durchzulassen basiert auf einer Fix IP:

       NOTE Die nachfolgenden Anweisungen sind nicht speziell für einen IP TV Anbieter ausgelegt dh. zB 
            Swisscom TV sondern allgemeiner Natur. Eine Anweisung wie eine Konfiguration durchgeführt
            werden muss betreffend Swisscom TV siehe am end dieses Artikels:
       # config system settings
       # set multicast-forward enable
       # set multicast-ttl-notchange enable
       # end
       # config firewall multicast-policy
       # edit 1
       # set dstintf [Konfiguriere das Destination Interface zB "internal"]
       # set protocol 2
       # set srcintf [Konfiguriere das Source Interface zB "wan1"]
       # next
       # edit 2
       # set dstaddr 224.0.0.0 255.0.0.0
       # set dstintf [Konfiguriere das Destination Interface zB "internal"]
       # set nat [Konfiguriere die NAT IP die benutzt wird dh. eine Public IP]
       # set protocol 2
       # set srcintf [Konfiguriere das Source Interface zB "wan1"]
       # next
       # edit 3
       # set dstaddr 239.0.0.0 255.0.0.0
       # set dstintf [Konfiguriere das Destination Interface zB "wanl"]
       # set nat [Konfiguriere die NAT IP die benutzt wird dh. eine Public IP]
       # set protocol 2
       # set srcintf [Konfiguriere das Source Interface zB "internal"]
       # next
       # end

Wie schon erwähnt ist die vorgängig beschriebene Konfiguration allgemeiner Natur. Spezifisch nachfolgend eine Konfiguration für Swisscom TV:

       NOTE Voraussetzungen für diese Konfiguration ist FortiOS 5 (empfohlen letzer Patch Level)! Es ist bei der Wahl
            des Devices ebenfalls auf die entsprechende Grösse zu achten dh. eine 40C ist als absolutes Minimum anzusehen. 
       Swisscom TV basiert grundsätzlich auf "Multicast". Im Multicast Bereich werden Adressen im Range 224.0.0.0 bis 239.255.255.255 verwendet.
       Die Funktion für ein Multicast Routing muss auf einer FortiGate mit FortiOS 5 aktiviert werden:
        
       # config router multicast
       # set multicast-routing disable
       # end
       
       Multicast Routing ist aktiviert dh. als nächsten muss der Multicast Adressbereich definiert werden:
       
       Definiere den Adressbereich für 224.0.0.0:
       
       # config firewall multicast-address
       # edit [Wähle einen entsprechenden Namen zB "Swisscom-TV-Range1″]
       # set start-ip 224.0.0.0
       # set end-ip 224.255.255.255
       # next
       
       Definiere den Adressbereich für 239.0.0.0:
       
       # edit [Wähle einen entsprechenden Namen zB "Swisscom-TV-Range2″]
       # set start-ip 239.0.0.0
       # set end-ip 239.255.255.255
       # next
       # end
       
       Erfasse als nächsten Schritt ein Adress Objekt das die Swisscom TV Box IP darstellt:
        
       # config firewall address
       # edit [Vergebe einen entsprechenden Namen zB "Swisscom-TV-Box"]
       # set address 192.168.1.2
       # end
       
       NOTE Um die Swisscom TV Box zu erruieren kann über die Swisscom TV Box unter Einstellungen die
            Netzwerk-Informationen eingesehen werden.
       
       Nun erstellen wir eine Multicast Firewall Policy die den Multicast Traffic zur Swisscom TV Box erlaubt:
       
       # config firewalll multicast-policy
       
       NOTE Eruierie über "show" oder "get" wo die Policy eingefügt werden soll dh. welchen "Integer" benutzt
            werden soll zB "1" oder "2" etc.
       
       Erstelle einen Multicast Firewall Policy für Inbound:
       
       # edit [Wähle den entsprechenden Integer]
       # set srcintf wan1
       # set srcaddr all
       # set dstintf internal
       # set dstaddr ["Swisscom-TV-Range1″ "Swisscom-TV-Range2"
       # end
       
       Erstelle einen Multicast Firewall Policy für Outbound:
       
       # edit [Wähle den entsprechenden Integer]
       # set srcintf internal
       # set srcaddr "Swisscom-TV-Box"
       # set dstintf wan1
       # set dstaddr "Swisscom-TV-Range1″ "Swisscom-TV-Range2"
       # set snat enable
       # end
       
       NOTE Die ganze Konfiguration kann ebenfalls über das Management Gui durchgeführt werden ausser das Aktivieren des 
            "Multicast Routing" (config router multicast). Um die Multicast Firewall Policy auf dem Management Gui zu 
            konfigurieren muss der entsprechende Punkt unter nachfolgender Position aktiviert werden:
       
            System > Admin > Settings > Multicast Policy
       
       System > Admin > Settings
       
       NOTE Ab FortiOS 5.0.3 steht dieses Features über folgende Menüposition zur Verfügung:
             
            System > Config > Features
            
            Fortinet-781.jpg

Messaging Servers / Email Service

Wo kann ich für Alert's etc. einen Email Server definieren und kann ich eine Verschlüsselung benutzen?

Bis anhin war dies nicht möglich dh. man konnte zwar über folgende Position einen Email Server definieren jedoch "ohne" Verschlüsselung:

       System > Config > Messaging Servers
       NOTE Ab FortiOS 5.2 existiert die seperate Menüposition des "Messaging Servers" nicht
            mehr. Diese befindet sich nun unter folgender Position:
            
            System > Config > Advanced > Email Service

Neu ab FortiOS 5.0.5 / 5.2 ist es möglich eine Verschlüsselung zu aktivieren und zwar SMTPS oder STARTTLS:

       Fortinet-995.jpg

Die Konfiguration wird unter der Kommandozeile folgendermassen durchgeführt:

       # config system email-server
       # set reply-to [Absender Email Adresse]
       # set server [FQDN SMTP Server]
       # set authentication [enable | disable]
       # set username [Username SMTP Authentifizierung]
       # set password [Passwort SMTP Authentifizierung]
       # set security [smtps | starttls]
       # end

Rules/Filter (Policy)

Wie erstelle ich auf der Kommandozeile einen Filter/Rule (Policy)?

Wenn man auf der Kommandozeile eine Policy erstellen möchte so geschieht das folgendermassen (5.0 / 5.2):

       # config firewall policy
       # edit 0
       # set srcintf "lan" 
       # set dstintf "wan1" 
       # set srcaddr "all" 
       # set dstaddr "all" 
       # set action accept
       # set schedule "always"
       # set service "ALL" 
       # set logtraffic all
       # set nat enable
       # end

Wenn man sich vor der Konfig die Möglichkeiten anschaut dann sieht das folgendermassen aus (5.2):

       NOTE Unter FortiOS 5.2 werden die Authentifizierungen betreffend User/Gruppen und/oder Devices in der
            regulären Policy konfiguriert dh. es existieren keine "Identity Based Policy" sowie "VPN SSL 
            Policies" mehr:
       
       # get
       policyid            : 0
       uuid                : 92c2836e-fae2-51e3-3433-740570c3d356
       srcintf:
       dstintf:
       srcaddr:
       dstaddr:
       rtp-nat             : disable 
       action              : deny 
       status              : enable 
       schedule            : 
       schedule-timeout    : disable 
       service:
       logtraffic          : utm 
       logtraffic-start    : disable 
       session-ttl         : 0
       vlan-cos-fwd        : 255
       vlan-cos-rev        : 255
       wccp                : disable 
       groups:
       users:
       devices:
       natip               : 0.0.0.0 0.0.0.0
       match-vip           : disable 
       diffserv-forward    : disable 
       diffserv-reverse    : disable 
       tcp-mss-sender      : 0
       tcp-mss-receiver    : 0
       comments            : 
       block-notification  : disable 
       custom-log-fields:
       tags:
       replacemsg-override-group: 
       srcaddr-negate      : disable 
       dstaddr-negate      : disable 
       service-negate      : disable 
       captive-portal-exempt: disable 
       send-deny-packet    : disable 

Die einzelnen Positionen haben folgende Bedeutung:

       uuid                         Universally Unique IDentifier.
       *srcintf                     Source interface name.
       *dstintf                     Destination interface name.
       srcaddr                      Source address name.
       dstaddr                      Destination address name.
       rtp-nat                      Enable/disable use of this policy for RTP NAT.
       action                       Policy action.
       status                       Enable/disable policy status.
       schedule                     Schedule name.
       schedule-timeout             Enable/disable schedule timeout.
       service                      Service name.
       utm-status                   Enable AV/web/ips protection profile.
       logtraffic                   Enable/disable policy log traffic.
       logtraffic-start             Enable/disable policy log traffic start.
       capture-packet               Enable/disable capture packets.
       wanopt                       Enable/disable WAN optimization.
       webcache                     Enable/disable web cache.
       traffic-shaper               Traffic shaper.
       traffic-shaper-reverse       Traffic shaper.
       per-ip-shaper                Per-IP shaper.
       nat                          Enable/disable policy NAT.
       permit-any-host              Enable/disable permit any host in.
       permit-stun-host             Enable/disable permit stun host in.
       fixedport                    Enable/disable policy fixed port.
       ippool                       Enable/disable policy IP pool.
       central-nat                  Enable/disable central NAT table.
       session-ttl                  Session TTL.
       vlan-cos-fwd                 VLAN forward direction user priority.
       vlan-cos-rev                 VLAN reverse direction user priority.
       wccp                         Enable/disable Web Cache Coordination Protocol (WCCP).
       groups                       User authentication groups.
       users                        User name.
       devices                      Devices or device groups.
       disclaimer                   Enable/disable user authentication disclaimer.
       natip                        NAT address.
       match-vip                    Enable/disable match DNATed packet.
       diffserv-forward             Enable/disable forward (original) traffic DiffServ.
       diffserv-reverse             Enable/disable reverse (reply) traffic DiffServ.
       tcp-mss-sender               TCP MSS value of sender.
       tcp-mss-receiver             TCP MSS value of receiver.
       comments                     comments
       block-notification           Enable/disable block notification.
       custom-log-fields            Log custom fields.
       tags                         Applied object tags.
       replacemsg-override-group    Specify authentication replacement message override group.
       srcaddr-negate               Enable/disable negated source address match.
       dstaddr-negate               Enable/disable negated destination address match.
       service-negate               Enable/disable negated service match.
       timeout-send-rst             Enable/disable sending of RST packet upon TCP session expiration.
       captive-portal-exempt        Enable/disable exemption of captive portal.

Wie sollte eine Policy Struktur resp. Rule Base auf einer FortiGate für KMU aussehen?

Nun ausgehend davon, dass ein KMU Security Anforderungen hat die nicht denen eines Enterprise Unternehmens entsprechnen sollte man auch die Policy Struktur resp. die Rule Base dementsprechend anpassen/erstellen. Bei jeder FortiGate ist eine Rule -abgesehen von der Clean-Up Rule- "per default" implementiert dh.

       Seq#           From             To             Source             Destination             Schedule             Service             Action             UTM/Security Profiles         
       
       1              internal         wan1           any                any                     allways              ALL                 Accept             -

Nun auf dieser Rule sind keine "Profile" wie Antivirus, WebFilter usw. aktiviert sowie kein Log eingeschaltet. Dies sollte auch so bleiben. Eine KMU Rule Base so zu implementieren, dass nur freigegebene Ports resp. Services implementiert werden ist Utopie denn dieser KMU wird all zwei Tag anrufen und sich beschweren das irgendetwas nicht läuft. Somit sollte diese Rule bestehen bleiben! Was nun jedoch implementiert werden sollte sind die einzelnen "Profile" zB für Antivirus, WebFilter usw. Diese implementieren wir Oberhalb der existierenden Rule zB für HTTP. In dieser Rule kontrollieren wir WebFilter und Antivirus:

       Seq#           From             To             Source             Destination             Schedule             Service             Action             UTM/Security Profiles            
       
       1              internal         wan1           any                any                     allways              HTTP                Accept             Antivirus / WebFilter
       
       2              internal         wan1           any                any                     allways              ALL                 Accept             -

Nun hier HTTPS ebenfalls zu erlauben kann zwar durchgeführt werden ist jedoch betreffend den "Profilen" nicht Sinnvoll dh. denn für eine Kontrolle zB für Antivirus muss das Packet entschlüsselt werden und dies ist nur möglich, wenn auf der Client Seite mit Zertifikaten gearbeitet wird. Ist dies nicht der Fall macht HTTPS keine Sinn jedoch kann dieses ebenfalls implementiert werden -ohne- "Profile":

       Seq#           From             To             Source             Destination             Schedule             Service             Action             UTM/Security Profiles            
       
       1              internal         wan1           any                any                     allways              HTTPS               Accept             WebFilter
       
       2              internal         wan1           any                any                     allways              HTTP                Accept             Antivirus / WebFilter
       
       3              internal         wan1           any                any                     allways              ALL                 Accept             -

Auch wenn HTTPS konfiguriert wurde kann man den WebFilter dazunehmen -sofern man im WebFilter die "HTTPS scan only" Funktion (Unter FortiOS 5.0.3 "Scan Encrypted Connections..."- aktiviert hat. Ansonsten macht die Aktivierung des WebFilters in der HTTPS Rule keine Sinn. So baut man eine Rule nach dem Anderen auf:

       Seq#           From             To             Source             Destination             Schedule             Service             Action             UTM/Security Profiles            
       
       1              wan1             internal       any                any                     allways              SMTP                Accept             E-Mail Filter
       
       2              internal         wan1           any                any                     allways              POP3S, IMAPS        Accept             -
       
       3              internal         wan1           any                any                     allways              POP3, IMAP          Accept             Antivirus / E-Mail Filter
       
       4              internal         wan1           any                any                     allways              HTTPS               Accept             WebFilter
       
       5              internal         wan1           any                any                     allways              HTTP                Accept             Antivirus / WebFilter
       
       6              internal         wan1           any                any                     allways              ALL                 Accept             -

Im E-Mail Bereich ist darauf zu achten Woher die E-Mail über POP3 oder IMAP geladen werden (Intern/Extern). Ebenso ist zu berücksichtigen ob die E-Mails zB von einem "hosted Exchange" kommen und ob dieses System bereits ein Antispam resp. Antivirus durchführt. Wenn ja, macht es keinen Sinn das Ganze nochmals zu testen und zu überprüfen. Ein Antivirus anzuwenden für "outgoing" E-Mail macht ebenso keine Sinn sofern man nicht eine entsprechende Reputation zu verlieren hat (Oeffentlicher Dienst). Ebenso möchte man etwas explicit "nicht erlauben", implementiert man ebenso im gleichen Stil eine entsprechende Rule zB wir möchten nicht vom "internal" Bereich, dass mit RDP und/oder IKE gearbeitet wird:

       Seq#           From             To             Source             Destination             Schedule             Service             Action             UTM/Security Profiles           
       
       1              internal         wan1           any                any                     allways              RDP, IKE            Block              -
       
       2              wan1             internal       any                any                     allways              SMTP                Accept             E-Mail Filter
       
       3              internal         wan1           any                any                     allways              POP3S, IMAPS        Accept             -
       
       4              internal         wan1           any                any                     allways              POP3, IMAP          Accept             Antivirus / E-Mail Filter
       
       5              internal         wan1           any                any                     allways              HTTPS               Accept             WebFilter
       
       6              internal         wan1           any                any                     allways              HTTP                Accept             Antivirus / WebFilter
       
       7              internal         wan1           any                any                     allways              ALL                 Accept             -

Was nun zu guter Letzt "geloggt" werden soll ist zu definieren jedoch "Alles" zu loggen macht keinen Sinn sondern ein differenziertes Loggen ist Sinnvoller und hängt von den gegebenen Umständen ab. Was jedoch nicht viel Sinn macht ist bei der "per default" implementierten Rule ein Log einzuschalten und somit "Alles" zu loggen was oberhalb dieser Rule nicht erlaubt ist. Wenn in einer Rule das Log aktiviert ist, wird zwar bestimmt das dieser Traffic geloggt werden soll jedoch bedeutet dies nicht das auch geloggt wird. Grundvoraussetzung das ein Logging ordnungsgemäss funktioniert ist die Log Konfiguration an sich. Weitere Informationen betreffend diesem Thema siehe nachfolgender Artikel:

       Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Desweiteren muss berücksichtigt werden, dass ab FortiOS 5.2 einige Logging Einschränkungen existieren bei kleineren Devices. Weitere Informationen siehe nachfolgender Artikel:

       Fortigate:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Was sind "Local In Policy's" und wie kann ich diese manipulieren?

"Local In Policy" oder auch "Implied Rule's" sind Firewall Policy Rules die unsichtbar (im normal Fall) im Hintergrund laufen und basierend sind auf der aktuellen Konfiguration dh. basierend auf dieser oder Funktionen Traffic erlauben. Ein Beispiel ist die Mgmt. Funktion auf den Interfaces dh. aktiviert man zB "Ping" auf einem Interface wird im Hintergrund eine "Local In Policy" aktiviert die dies erlaubt. Um die "Local In Policies" einzublenden im Mgmt. Web Interface muss das entsprechende Feature aktiviert werden:

       System > Admin > Settings
       
       NOTE Ab FortiOS 5.0.3 / 5.2 steht dieses Features über folgende Menüposition zur Verfügung:
             
            System > Config > Features
            
            Fortinet-781.jpg
       Datei:Fortinet-707.jpg

Sobald die Funktion aktiviert ist können die "Local In Policy" eingesehen werden und folgender Position:

       Policy > Local In Policy
       
       Datei:Fortinet-708.jpg
       
       NOTE Das Logging der "Local In Policy" sollte nur dann aktiviert werden wenn dies auch benötigt wird dh.
            zB für Troubleshooting Zwecken. Wenn das Logging eingeschaltet wird werden die entsprechenden Einträge
            Der "Local In Policy" mit einer Policy ID "0" versehen. Dies bedeutet alles was im Log mit Policy ID
            "0" erscheint stammt von der "Local In Policy"! Unter FortiOS 5.0 findet man das Logging der "Local In
            Policy" unter folgender Position:
            
            Log & Report > Log Config > Log Settings > Local Traffic Logging
            
            Ab FortiOS 5.2 ist "Local Traffic Logging" für Devices 100D und kleiner nicht mehr ersichtlich und kann 
            über CLI konfiguriert werden. In der CLI wird das "Local Logging" über "config log settings" konfiguriert.
            Weitere Informationen dazu siehe nachfolgende Position:
            
            Fortigate:FAQ#Kann_man_die_Logs_die_das_System_selber_produziert_deaktivieren.3F      

Die "Local In Policy" vom System können weder verändert noch gelöscht werden dh. diese können nur entsprechenden den Funktionen (aktiviert/deaktivert) manipuliert werden. Dies bedeutet wird ein "Ping" auf einem Interface "nicht" erlaubt wechselt die Action entsprechend auf "Deny". Wird der Ping erlaubt wechselt die Action auf "Allow". Source und Destinationen können nicht verändert werden. Um dennoch restriktiv einzugreifen in die "Local In Policy" können eigenen "Local In Policy's" erstellt/konfiguriert werden. Diese selber erstellten "Local In Policy's" werden VOR den "Local In Policy" vom System verarbeitet. Die Konfiguration solcher Policy's ist nur über die CLI möglich und können nur dort eingesehen werden dh. erstellte und konfigurierte "Local In Policy's" werden über das Mgmt. WebInterface nicht angezeigt. Wenn man zB davon ausgeht, dass zB für CAPWAP UDP 5246 sowie 5247 benutzt wird und man sich die "Local In Policy" genauer ansieht, stellt man fest das auf ALLEN Interface's der Zugriff über diese Ports erlaubt ist (FortiOS 5.0.2 und tiefer). Dies ist zwar im internen Bereich akzeptable jedoch nicht im externen Bereich dh. WAN Interface. Die "Local In Policy" sieht dementsprechend aus dh.:

       NOTE Ab FortiOS 5.0.3 / 5.2 kann die CAPWAP Funktion sprich ob dies zugelassen ist oder nicht über die 
            Interface Konfiguration aktiviert und/oder deaktiviert werden:
            
            System > Network > Interfaces > [Wähle das entsprechende Interface]
       Datei:Fortinet-709.jpg

Möchte man nun zB das WAN Interface ausschliessen implementiert man eine entsprechende selber konfigurierte "Local In Policy" Rule die dies explizit verhindert:

       NOTE Bei der Konfiguration werden Service- oder Adress Objekte verwendet dh. diese müssen vorgehend über
            Mgmt. WebInterface oder CLI erstellt werden damit diese in der selbsterstellten "Local In Policy"
            zur Verfügung stehen. Welche Adressen und/oder Service zur Verfügung stehen wird durch die Eingabe
            von "?" angezeigt dh. zB "set srcaddr ?"!
       
       # config firewall local-in-policy
       # edit 1
       # set intf [Interface Name zB "wan1"
       # set srcaddr [Adress Objekt oder "all"]
       # set dstaddr [Adress Objekt IP Firewall]]
       # set action deny
       # set service [Service Objekt zB "UDP-5246" und "UDP-5247"]
       # set schedule "always"
       # set auto-asic-offload enable
       # set status enable
       # end

Was für Incoming/Outgoing "Implied Rules" sowie Listening Ports existieren bei einer Fortigate?

Jede Firewall benötigt für eigenen Funktionen wie zB Updates der Signaturen Zugang zum Internet, Zeitsynchronisierung Zugang zum Internet oder internes LAN etc. Bei Fortigate gilt der folgende Grunsatz:

       Manuell abgesetzte Requests (von der Console als User "admin") vom Device dh. ausgehende Verbindungen sind grundsätzlich ALLE erlaubt!
       NOTE Fortinet hat im May 2014 ein neues Dokument released das die unten "aufgeführten" Informationen
            in einem Dokument zusammenfasst. Im Dokument selber sind ebenfalls die Komunikationswege der
            einzelnen Ports aufgeführt:
            
            Datei:FortinetOpenPorts.pdf
       Für OUTGOING Traffic dh. Anfrage die durch den Device selber abgesetzt werden ist folgendes erlaubt:
       
       Funktionalität                                              Port(s) 
       ==============                                              =======
       
       DNS Lookup; RBL Lookup (Blacklist)                          UDP 53
       
       FortiGuard Antispam/Web Filtering Rating Lookup             UDP 53 or UDP 8888
       
       FDN (Fortinet Distribution Network) Server list             UDP 53 (default) or UDP 8888, and UDP 1027 or UDP 1031
       
       NTP synchronization                                         UDP 123
       
       SNMP traps                                                  UDP 162
       
       Syslog                                                      TCP 514/UDP 514
       
       FortiAnalyzer Secured                                       UDP 500/4500, Protocol IP/50
       
       Konfig Backup zu FortiManager oder                          TCP 22
       FortiGuard Analysis und Management Service
       
       SMTP alert email; encrypted virus sample auto-submit        TCP 25
        
       LDAP or PKI authentication                                  TCP 389 oder TCP 636
       
       FortiGuard Antivirus oder IPS Update über FortiManager      TCP 8890.
       
       FortiGuard Analysis und Management Service                  TCP 443

       FortiGuard Analysis und Management Service Log              TCP 514
       Uebertragung (OFTP)
       
       SSL management tunnel zu FortiGuard Analysis und            TCP 541
       Management Service (FortiOS v3.0 MR6 or later)
       
       FortiGuard Analysis und Management Service                  TCP 10151
       Vertrag Verifizierung
        
       Quarantine, Remote Zugriff zu Logs & Reports auf            TCP 514
       FortiAnalyzer Device, Device Registration mit 
       FortiAnalyzer Device (OFTP)
       
       RADIUS authentication                                       TCP 1812
       Für INCOMING Traffic dh. Service und Deamons mit deren Ports:
       
       NOTE Wenn die Fortigate in der "Default Configuration" läuft, akzeptiert der Device KEINE
            TCP und/oder UDP Verbindungen "ausgenommen" auf dem Internen Interface das TCP 443
            zu Administrationszwecken akzeptiert! 
       
       Funktionalität                                              Port(s) 
       ==============                                              =======
       
       FortiGuard Antivirus und IPS Update Push                     UDP 9443 (Downloading Port TCP 443)
       
       SSH Administrations Zugriff                                  TCP 22
       
       Telnet Administrations Zugriff                               TCP 23
       (Wenn der Telnet Port geändert wird so ändert sich 
       auch der HA Sync Port)
       
       HTTP Administrations Zugriff                                 TCP 80
       
       HTTPS Administrations Zugriff                                TCP 443
       
       SSL Mgmt. Tunnel für FortiGuard Analysis und Mgmt. Service   TCP 541 
       
       HA heartbeat (FGCP L2)                                       TCP 703
       
       HTTP oder HTTPS Admin Zugriff für WebGui CLI Widget          TCP 2302
       
       Windows Active Directory (AD) Collector Agent                TCP 8000
       
       User Authentication für Policy Override (für HTTP)           TCP 8008
       
       FortiClient Download Portal                                  TCP 8009
       (Nur für FortiGate-1000A, FortiGate-3600A, FortiGate-5005FA2)
       
       User Authentication für Policy Override (für HTTP)           TCP 8010
       
       VPN Einstellungen (Distribution zu FortiClient)              TCP 8900
       
       SSL VPN                                                      TCP 10443
       
       HA (High Availibility)                                       ETH 8890 (Layer 2)
       Für FDN (Fortinet Distribution Network):
       
       NOTE Fortigate, FortiAnalyzer, FortiManager sowie FortiClient kommunizieen mit dem
            FDN (Fortinet Distribution Network) um Updates zu erahlten sowie Services zu 
            beziehen!
       
       Datei:Fortinet-206.jpg

Nachfolgend die Komunikations Matrix in der Gesamt-Uebersicht:

       Datei:Fortinet-207.jpg

Weitere Informationen betreffend Komunikations Port findet man auf folgenden Knowledge Base Artikel:

       http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=10773&languageId=

Wie kann ich die Source IP manipulieren für die Fortigate eigene initierte Mgmt. Service (SNMP , Syslog , FortiAnalyzer , Alert Email , FortiManager)?

Wenn die Fortigate eigene interne Services initiert wie zB Syslog Nachrichten, Email's usw. so wird eine IP benutzt. Im Normalfall ist dies die IP des internen Interface resp. die IP des Interfaces auf dem der Service benutzt wird. Soll diese aus einem Grund eine Andere sein (manuell definiert) so kann dies ausschliesslich auf der Console durchgeführt werden. Die nachfolgenden Beispiele sind nur einige Positionen in der man die Source IP einer Funktion verändern kann. Weitere Informationen betreffend der Möglichkeiten zur Konfiguration einer "Source IP" für eine spezifische Funktionen siehe CLI Refrence:

       Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F
       Für Disk Logging
       # config log disk setting
       # set source-ip [Definition Source IPv4]
       # end
       Für FortiAnalyzer Logging
       # config log fortianalyzer setting
       # set source-ip [Definition Source IPv4]
       # end
       Für System DNS
       # config system dns
       # set source-ip [Definition Source IPv4]
       # end
       Für SNMP
       # config system snmp community
       # edit 1
       # config hosts
       # edit 1
       # set ip [SNMP Server]
       # set source-ip [Definition Source IPv4]
       # next
       # end
       # set name "community_name"
       # next
       # end
       Für Central-Mgmt
       # config system central-management
       # set fmg-source-ip [Definition Source IPv4]
       # end
       Für Syslog
       # config log syslogd setting
       # set source-ip [Definition Source IPv4]
       # end
       Für Alert Mail
       # config system alertemail
       # set source-ip [Definition Source IPv4]
       # end

Wie wird ein Source/Destination NAT auf einer Fortigate implementiert?

Incoming Traffic (Destination NAT) wird über die "Virtual IP" Funktion abgearbeitet dh. das Mapping wird in der "Virtual IP" Funktion definiert. Zusätzlich muss eine Policy Rule implementiert werden die als Destination das Virtual IP Objekt definiert und den Traffic erlaubt. Ausgehender Traffic (Source NAT / Hide NAT) kann/wird über die "Central NAT Table" definiert dh. die Funktion der "Central NAT Table" muss/kann -da per Default im WebInterface Disabled- zuerst unter folgender Positione aktiviert werden dh.:

       System > Admin > Settings > Central NAT Table
       
       System > Admin > Settings
       
       NOTE Ab FortiOS 5.0.3 / 5.2 steht dieses Features über folgende Menüposition zur Verfügung:
             
            System > Config > Features
            
            Fortinet-781.jpg 

Nach der Aktivierung findet man diese "Central NAT Table" unter:

       Policy > Central NAT Table
       NOTE Es ist zu empfehlen bei einem Incoming NAT (Virtual IP) zusätzlich über Central NAT die entsprechende Konfiguration für Outgoing ebenfalls 
            durchzuführen. Diese Konfiguration ist dazu nötig, wenn der Server selber Traffic initiert und damit das Hide korrekt mit der 
            entsprechenden IP durchgeführt wird (zB für Updates). Die Konfiguration wird nur durchgeführt um Traffic der vom Server selber initiert 
            ist abzudecken. Der Outgoing Traffic der vom Incoming Traffic (Rückantwort) initiert wurde über die Virtual IP Funktion ist durch die 
            Konfiguration in der Virtual IP Funktion abgedeckt (bi-directional traffic).
       BEISPIEL Nachfolgend ein Beispiel eines "incoming" NAT und das dazugehoerige "outgoing" NAT. In diesem Beispiel gehen wir davon aus, dass im DMZ 
                ein Server mit 192.168.100.125 addressiert ist der von aussen mit 212.59.153.125 angesprochen wird (zB DNS Server). Dies bedeutet ein NAT
                von 212.59.153.125 auf 192.168.100.125. Das "outgoing" NAT soll gleich konfiguriert werden dh. wenn 192.168.100.125 nach Aussen komuniziert
                soll der Server hinter der IP 212.59.153.125 translated werden:
       Als Erstes erfassen wir die Virtuelle IP dh. das Objekt für das Incoming NAT:
       
       NOTE Ab FortiOS 5.2 ist die Position "Virtual IP" über folgende Menüpunkt zu finden:
            
            Policy & Objects > Objects > Virtual IPs
       
       Datei:Fortinet-193.jpg
       Datei:Fortinet-194.jpg
       
       NOTE Wenn auf dem externen Interface eine dynamische IP zugewiesen wird dh. keine Fix IP so muss die
            External IP mit der IP 0.0.0.0/0 angegeben werden! Wird die Konfiguration auf der CLI durchgeführt so
            muss folgendes eingegeben werden:
            
            # config firewall vip
            # edit "nat-192.168.1.125"
            # set comment [Füge einen Kommentar hinzu]
            # set type static-nat
            # set arp-reply enable 
            # set extip [Externe IPv4 Adresse zB 212.59.153.125]
            # set extintf [Interface der Externen IPv4 Adresse zB "wan1"]
            # set portforward enable
            # set mappedip [Destination NAT IPv4 Adresse zB "192.168.1.5-192.168.1.5"]
            # set extport [Port Foreward Definition zB 80]
            # set mappedport [Port Foreward Definition zB 80]
            # set portmapping-type 1-to-1
            # end
            
            Wird die Position "arp-reply" aktiviert und wird auf "wan1" eine nicht in der Definition enthaltene IP
            benutzt wird im Hintergrund automatisch ein ARP Eintrag erstellt. Es ist zu empfehlen "immer" ein 
            Portforwarding durchzuführen dh. den Port und/oder Port-Range zu definieren. Wird dies nicht durchgeführt
            werden "alle" Ports 1:1 benutzt! Wird somit in der Policy als Service "all" benutzt ist der interne Server
            mit allen Ports für Incoming NAT (Destination NAT) erreichbar!
       Nun erstellen wir eine Policy/Rule indem wir das Objekt für das Incoming NAT verwenden:
       
       Datei:Fortinet-195.jpg
       Datei:Fortinet-196.jpg
       Nun wird ein Objekt erfasst, dass wir benützen für das Outbound NAT. Dieses Objekt stellt den internen 
       Server dar:
       
       Datei:Fortinet-197.jpg
       Datei:Fortinet-198.jpg
       
       NOTE Möchte man die Konfiguration über CLI durchführen so wird dies folgendermassen durchgeführt:
            
            # config firewall address
            # edit [Gebe den Namen des Objekts an zB host-192.168.100.125]
            # set comment [Gebe einen entsprechenden Kommentar ein]
            # set subnet [IPv4 Adresse/Range zB 192.168.100.125/32]
            # end
       Desweiteren erstellen wir über die Virtual IP ein "IP Pool" Objekt, dass die Public IP Adresse
       darstellt:
       
       Datei:Fortinet-200.jpg
       Datei:Fortinet-201.jpg
       
       NOTE Ab FortiOS 5.0 / 5.2 wurden die Möglichkeiten der Definition eines IP Pools über das
            Web Mmgt. Gui's erweitert:
            
            Fortinet-1106.jpg
            
            NOTE Möchte man die Konfiguration über CLI durchführen muss folgendes abgesetzt werden:
            
            # config firewall ippool
            # edit [Vergebe einen Namen für den IP Pool zB public-212.59.153.125]
            # set comments [Gebe einen entsprechenden Kommentar ein]
            # set startip [Source NAT IPv4 Adresse zB 212.59.153.125]
            # set endtip [Source NAT IPv4 Adresse zB 212.59.153.125]
            # set arp-reply enable
            # end
       In der Central NAT Table werden nun die vorhergehenden Objekte benutzt um das Outgoing NAT zu 
       konfigurieren:
       
       Datei:Fortinet-202.jpg
       Datei:Fortinet-203.jpg
       
       NOTE Möchte man die Konfiguration über CLI durchführen muss folgendes abgesetzt werden:
            
            # config firewall central-nat
            # edit [Vergebe einen Integer zB 0]
            # set orig-addr [Gebe das entsprechende Adress Objekt an zB host-192.168.100.125]
            # set nat-ippool [Gebe das ensprechende IP Pool Object an zB public-212.59.153.125]
            # set orig-port 1
            # set nat-port 1-65535
            # end
            
            Berücksichtige, dass in der Central NAT Table wie bei den Firewall Policie's "top-down first
            match wins" gilt!

Je nachdem wie die Services aussehen, muss eine entsprechende Policy/Rule erstellt werden. Dies bedeutet, wenn der Server 192.168.100.125 selbständig Sessions initiert muss dies durch eine entsprechende Policy/Rule erlaubt werden! So eine entsprechende Policy/Rule würde folgendermassen aussehen:

       Datei:Fortinet-204.jpg

Eine "All" Block Rule lässt Virtual IP's durch und blockt diese nicht; Warum?

Eine Fortigate arbeitet eine "Firewall Policy" die eine "Virtual IP" (Destination NAT) enthält auf eine andere Weise ab als eine "Firewall Policy" ohne "Virtual IP". Wenn man eine Rule folgendermassen implementiert wird der Traffic für die "Virtual Policy" durchgelassen:

       Source                 wan1
       Source Address         all
       Destination            dmz
       Destination Address    all
       Service                ANY
       Action                 Deny
       Source                 wan1
       Source Address         all
       Destination            dmz
       Destination Address    [DMZ Server IP (Virtual IP)]
       Service                ANY
       Action                 Allow

Eigentlich gilt betreffend Policy/Rule Verarbeitung "Top to Down as shown in the WebInterface". Aus diesem Grund müsste der Incoming Request der "Virtual IP" über vorhergehende "wan2 to dmz > All > Deny" abgefangen und somit geblockt werden. Dies ist jedoch nicht der Fall da diese "Virtual Policy" anderst verarbeitet werden. Es gibt zwei Möglichkeiten diese "Virtual IP" für die "Virtual Policy" dennoch zu blocken:

       1. Möglichkeit:
       
       Um zu verhindern das die Virtual IP durchgelassen wird obwohl die entsprechende Policy "NACH" 
       der "wan2 to dmz > All > Deny" kommt muss die "Virtual IP" explizit geblockt werden. Folgendes 
       ist zu implementieren:
       
       Source                 wan1
       Source Address         all
       Destination            dmz
       Destination Address    all
       Service                ANY
       Action                 Block
       
       Source                 wan1
       Source Address         all
       Destination            dmz
       Destination Address    [DMZ Server IP (Virtual IP)]
       Service                ANY
       Action                 Deny
       2. Möglichkeit:
       
       Die zweite Möglichkeit wäre Option "match-vip" für "DENY Policy" zu aktivieren dh. dadurch wird 
       eine "Virtual IP" innerhalb einer DENY RUlE berücksichtigt. Führe auf der Console folgendes aus:
       
       # conf firewall policy
       # edit [firewall policy number]
       # set match-vip enable

Dieser Umstand/Informationen stammen aus der KB:

       http://kb.fortinet.com/kb/microsites/microsite.do?cmd=displayKC&externalId=FD33338

Wie kann ich spezielle Fortigate spezifische Service Ports wie 8008, 8010, 541, 113 schliessen/blocken?

Verschiedene Services auf der Fortigate die benutzt werden für Updates, Authentifizierungen etc. benützen spezifische Ports. Diese können bei einem Audit (Penetration Tests) Probleme verursachen dh. die Firewall gegen aussen "visible" erscheinen lassen etc. Diese Ports können nicht regulär über Gui geschlossen/entfernt werden damit die Firewall in einem Audit nicht mehr als "visible" erscheint sondern müssen über die Console geschlossen/entfernt werden:

       ACHTUNG Die Schliessung/Entfernung der Ports hat Auswirkungen auf die korrekte Arbeitsweise von vers. Services. Bevor
               diese Ports geschlossen/entfernt werden sollte man sich 100% im klaren sein welche Auswirkungen das hat!
       
       --> Wenn die Ports 8008 und 8010 geschlossen/entfernt werden sollen die im Zusammenhang mit "ForitGuard" stehen
           führe folgendes durch:
           
           # config webfilter fortiguard
           # set close-ports enable
           # end
           
           NOTE Diese zwei Ports 8008 und 8010 werden durch folgende Funktionen benötigt: "FortiGuard Block Seite" und "FortiGuard Override Seite". 
                Werden somit diese zwei Ports "disabled" stehen diese zwei Funktionen nicht mehr zur Verfügung!
           
       --> Wenn den Port TCP 113 geschlossen/entfernt werden sollen der im Zusammenhang mit "Ident" steht, 
           führe folgendes durch:
           
           NOTE Der Port 113 steht im Zusammenhang mit "indent" Anfragen. Wenn dieser Port geschlossen/entfernt werden 
                soll muss nachfolgender Befehl für jeden Port abgesetzt werden!
      
           # config system interface
           # edit port1
           # set ident-accept disable
           # next
           # end
       
       --> Wenn den Port TCP 541 geschlossen/entfernt werden sollen der im Zusammenhang mit "FMG-Access" steht, 
           führe folgendes durch:
           
           NOTE Der Port 541 steht im Zusammenhang mit dem "Central-Management" (FortiManager). Wenn dieser Port Global geschlossen
                oder entfernt werden soll muss nachfolgender Befehl abgesetzt werden. Wird dies durchgeführt steht keine Möglichkeit 
                mehr zur Verfügung die Fortigate an ein "Central-Management" anzuhängen! Im WebGui kann man auf jedem Interface diesen
                Port/Service aktivieren oder deaktivieren dh. "FMG-Access"!
           
           # config sys central-management
           # set status disable
           # end
           
       --> Deszweiteren möchte man einen Port resp. Source oder Destination in einer Local In Policy einschränken,
           kann eine "manuelle" Local In Policy implementiert werden. Weitere Informationen siehe folgender Artikel:
           
           Fortigate:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F

Kann ich in einer FortiGate Policy eine "negated" Rule konfigurieren?

Ab FortiOS 5 ist dies möglich eine "negated" (Negative) Rule zu erstellen dh. möglich ist dies für Source, Destination und Services. Erstellt wird so eine "negated" Rule folgendermassen:

       --> Erstelle die Policy über das Gui wie gewohnt dh. als ob die Source, Destination und Service erlaubt wären zB:
       
           Policy ID            Source                Destination               Service               Action
           5                    192.168.1.0/24        10.0.0.0/24               HTTP                  Accept
       
       --> Nun muss die entsprechende Position über die Console anhand folgendes Kommando "negated" werden:
           
           # config firewall policy
           # edit 5
           # set dstaddr-negate enable
           # set srcaddr-negate enable
           # set service-negate enable
           # end
           # end
       
       ACHTUNG Natürlich muessen nicht alle Positionen dh. Source, Destinationen sowie Services "negated" werden dh. einzelne
               wie zB nur die Destinationen sind möglich. Ueber das Web Gui ist diese Konfiguration ab FortiOS 5.0.4 ersichtlich. Dies
               bedeutet wird die Destination, Source und/oder der Service auf "negate" Konfiguriert wird über das Gui die entsprechende
               Position folgendermassen dargestellt:
               
               Fortinet-1107.jpg

Wie konfiguriere ich für ein Policy eine Active Directory (LDAP) Authentifizierung?

Um eine Policy/Rule so zu konfigurieren, dass User über Active Directory (LDAP) sich authentifizieren müssen um die Policy/Rule zu benützen führe "nach" der Konfiguration der Anbindung des Active Directories folgendes durch:

       Fortigate:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F
       NOTE Unter FortiOS 5.2 gibt es keine "identity based policy" mehr dh. die Authentifizierung erfolgt 
            in der "normalen" Policy durch die Definition einer Gruppe/User und/oder Devices.:
       FortiOS 5.2
       # config firewall policy
       # edit 1
       # set srcintf "internal"
       # set dstintf "wan1"
       # set srcaddr "all"
       # set dstaddr "all"
       # set action accept
       # set schedule "always"
       # set service "ANY"
       # set groups [Gebe den/die entsprechende/n Gruppe/n an]
       # set users [Gebe den/die entsprechende/n User an]
       # set devices [Gebe den/die entsprechende/n Device/s an]
       # end
       FortiOS 5.0
       # config firewall policy
       # edit 1
       # set srcintf "internal"
       # set dstintf "wan1"
       # set srcaddr "all"
       # set dstaddr "all"
       # set action accept
       # set identity-based enable
       # set nat enable
       # config identity-based-policy
       # edit 1
       # set schedule "always"
       # set groups "[Gruppen Name für Policy/Rule Authentifizierung]"
       # set service "ANY"
       # next
       # end
       # next
       # end

Kann ich auf einer FortiGate Länderspezifische IP Regionen (geoip) in eine Policy benutzen?

Diese Funktion steht ab FortiOS 4 MR3 zur Verfügung und wird über FortiGuard zur Verfügung gesellt. Dies bedeutet die Information welche IP zu welchem Land gehört wird über FortiGuard abgerufen. Diese Datenbank wird auf der FortiGate gespeichert und wie die Antivirus Definition über die Update Funktion "up to date" gehalten. Dies setzt einen gültigen FortiGuard Contract vorraus. Basis um in einer Policy Länderspezifische IP's zu benutzen ist ein dementsprechend konfiguriertes "Firewall Objekt". Um diese zu erstellen führe folgendes durch:

       Firewall Objects > Address > Create New 
       
       Fortinet-790.jpg
       
       NOTE Möchte man die Funktion GeoIP benutzen und den Bereich "Europe" abdecken so darf im Zusammenhang mit
            der Schweiz nicht "nur" das Objekt "Europe" benutze werden, da im Objekt "Europe" die Schweiz nicht
            abgedeckt wird. Dies bedeutet GeoIP über FortiGuard folgt der politischen Aufteilung was wiederum
            bedeutet -da die Schweiz nicht in der EU ist- die Schweiz nicht im Objekt "Europe" enthalten ist.

Um das Objekt über Kommandozeile zu erfassen führe folgendes durch:

       # config firewall address
       # edit net-geoip-china-00
       # set type [Wähle "geography"]
       # set country [Wähle das entsprechende Land zB "CN"; ? gibt Auskunft über die Auswhal]
       # set interface [Wähle das entsprechende Interface oder "Any"]
       # end
       
       Es stehen für die verschiedenen Länder folgende Abkürzungen zur Verfügung:
       
       Datei:Geo-ip-list.txt

Nun kann das entsprechende Objekt wie üblich in einer Policy Rule benutzt werden. Folgender Diag Befehl steht zur Verfügung um die Funktion zu Troubleshooten:

       Für FortiOS 4 MR3
       
       # diagnose firewall ipgeo [country-list | ip-list | ip2country]
       Für FortiOS 5.0 / 5.2
       
       # diagnose firewall ipgeo [copyright-notice | country-list | ip-list | ip2country | override]
       
       NOTE Die verschiedenen möglichen Optionen haben folgende Bedeutung:
            
            country-list        List all countries.
            ip-list             List IP info of country.
            ip2country          Get country info for the IP.
            override            Print out all user defined IP geolocation data.
            copyright-notice    Copyright note.

Möchte man eine IP oder einen Range mit "override" überschreiben dh. zB eine bestimmte IP oder Range der aus China stammt dennoch zulassen kann dies über Kommandozeile durchgeführt werden:

       # config system geoip-override
       # edit "override-net-geoip-china-00"
       # set country-id "CN"
       # config ip-range
       # edit [Wähle eine Sequenz Nr. zB 1]
       # set start-ip 7.7.7.7
       # set end-ip 7.7.7.8
       # next
       # end
       # end

Unter FortiOS 5 kann durch folgenden Befehl ein Update der Datenbank erzwungen werden:

       # execute update-geo-ip

Unter FortiOS 5.0 / 5.2 kann die Datenbank Version überprüft resp. aufgezeigt werden:

       # diagnose autoupdate versions ==> to check the current database version
       
       IP Geography DB
       ---------
       Version: 1.011
       Contract Expiry Date: N/A
       Last Update Date: Wed Juli  9 22:22:19 2013

Wie kann ich die Standard-Spalten-Einstellung der Policy View manipulieren/verändern?

Ja diese Spalten der Policy View können manipuliert resp. verändert werden. Wird die Konfiguration der Spalten direkt im Gui manipuliert ist diese Konfiguration nicht "Persistent" dh. wenn der Browsercache gelöscht wird ist die Konfiguration weg. Möchte man die Konfiguration "Persistent" durchführen muss auf der CLI dies durchgeführt werde anhand des Befehls "gui-default-policy-columns":

       Beispiel FortiOS 5.0
       # config system settings
       # set gui-default-policy-columns "#" "policyid" "srcintf" "dstintf" "srcaddr" "dstaddr" "schedule" "service" "authentication" "action" "profile" "logtraffic" "nat" "count"
       # end
       Beispiel FortiOS 5.2
       # config system settings
       # set gui-default-policy-columns "#" "policyid" "srcintf" "dstintf" "srcaddr" "dstaddr" "schedule" "service" "groups" "action" "profile" "logtraffic" "nat" "count"
       # end
       NOTE Die Angaben zu Beginn von "#" hat die Bedeutung der Spalte "Sequenz". Möchte man auf den Patch Level basierenden 
            Standard zurück, muss folgender Befehl auf der Kommandozeile eingegeben werden:
            
            # config system settings
            # unset gui-default-policy-columns
            # end

Grundsätzlich steuert diese Option die Standard-Spalten-Eintstellung für die Policy dh. diese kann natürlich je nach Bedürfniss verändert werden zB um die Policy ID per Standard einzublenden benützt man "policyid". Es stehen folgende Felder für die Standard-Spalten-Einstellung zur Verfügung:

       FortiOS 5.0
       policyid                	Policy ID
       srcintf         		Source Interface
       dstintf         		Destination Interface
       srcaddr         		Source Addresses
       dstaddr         		Destination Addresses
       schedule                	Policy Schedule
       service         		Policy Services
       action          		Policy Action
       logtraffic              	Traffic Logging Status
       nat             		Policy NAT Status
       status          		Policy Status
       authentication          	Authentication Groups
       count           		Policy Traffic Counter
       session         		Policy Active Session Counter
       last_used               	Policy Last Access Time
       profile         		UTM Profiles
       av-profile              	Antivirus Profile
       spamfilter-profile      	Email Filter Profile
       application-list        	Application List
       ips-sensor              	IPS Sensor
       dlp-sensor              	DLP Sensor
       icap-profile            	ICAP Profile
       voip-profile            	VOIP Profile
       profile-protocol-options        Proxy Options
       deep-inspection-options         SSL Inspection Options
       profile         		UTM Profiles
       vpntunnel               	VPN Tunnel
       comments                	Policy Comment
       FortiOS 5.2
       #                               Seq #.
       policyid                        Policy ID.
       srcintf                         Source.
       dstintf                         Destination.
       srcaddr                         Source Address.
       dstaddr                         Destination.
       schedule                        Schedule.
       service                         Service.
       action                          Action.
       logtraffic                      Log.
       nat                             NAT.
       status                          Status.
       count                           Count.
       session                         Sessions.
       last_used                       Last Used.
       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.

In der Policy View erscheint eine Meldung "Section view is currently disabled"?

Nun in der Policy kann zwischen zwei "View's" gewählt werden dh. :

      Section View
      Global View

Die Section View basiert auf den Interfaces dh. je nachdem welches Interface gewählt wird in der Source (SrcInt) und/oder Destination (DstInt) werden zur Uebersicht Sektionen gebildet. Wenn nun in der Source und/oder Destination für die Inerface "all" gewählt wird kann keine Sektion mehr erstellt werden da verständlicherweise "all" alle Interfaces bedeutet. Sobald dies der Fall ist, steht die "Section View" nicht mehr zur Verfügung und die Meldung erscheint sobald man im Menü die Policy anwählt:

       Fortinet-814.jpg

Danach steht nur noch die "Global View" zur Verfügung. Möchte man wieder mit der "Sektion View" arbeiten muss die Konfiguration "all" aus den Source und/oder Destination Interface/s entfernt werden.

Wie aktiviere/deaktiviere ich auf einer FortiGate das TAG Mgmt (Object Color)?

Nun bei einer FortiGate können den Object's, Adressen etc. anhand des TAG Mgmt. Farben zugewiesen werden. Diese Funktion kann aktiviert und/oder deaktiviert werden:

       # config system global
       # set gui-object-tags [enable oder disable]
       # end

Nachträglich kann das Aktivieren und/oder Deaktivieren in einem Adress Object kontrolliert werden unter:

       FortiOS 5.0
       Firewall Objects > Address > Addresses > Create New
       
       FortiOS 5.2
       Policy & Objects > Objects > Addresses > Create New
       
       NOTE Wird die Funktion aktiviert steht innerhalb eines Objects die Position "Color" zur Verfügung!

Welche Bedeutung hat innerhalb der Policy Konfiguration die Position "auto-asic-offload"?

Wenn eine Policy erstellt wird und man die verschiedenen Optionen danach unter Kommandozeile anschaut, fällt einem die Position "auto-asic-offload" auf. Dabei handelt es sich um die Funktion des "Offloading". "Offloading" bedeutet kurz gesagt "Acceleration" (Beschleunigung). Im nachfolgenden Artikel findet man Details sowie was zu berücksichtigen ist beim Troubleshooting im Zusammenhag mit der Funktion "Offloading":

       Fortigate:FAQ#Was_bedeutet_.22Asic-Offloading.22_und_was_muss_ich_ber.C3.BCcksichtigen_beim_Troubleshooting.3F

Innehalb einer Policy muss berücksichtigt werden, dass eine Rule -mit "Offloading" enabled (was Standard gemäss der Fall ist)- unabhängig vom Protokoll und Reihenfolge beschleunigt wird. Diese Beschleuningung wird automatisch deaktivert -obwohl "Offloading enabled- ist wenn in der entsprechenden Rule ein Security Profile aktiviert wird. Der Grund ist einfach: Für das "Offloading" ist der NP Prozessor verantwortlich (Network Processor). Wird ein Security Profile aktiviert so wird der Traffic über den CP geleitet dh. Content Processor und somit kann der Network Processor (NP) diesen Traffic nicht mehr "Offloaden" (Beschleunigen). Unter normalen Umständen ist dies kein Problem. Stellt man jedoch Performance Probleme fest auf bestimmten Rule's sollte man -aus Performancen Gründen- darauf achten, dass in der entsprechenden Rule die den Traffic abarbeitet keine Security Profiles konfiguriert sind. Möchte man eine Ueberüfung durchführen "WAS" Beschleunigt wird dh. kann dies folgendermassen durchgeführt werden:

       FortiOS 5.0
       Fortinet-1110.jpg
       
       Fortinet-1111.jpg
       
       NOTE Durch die zusätzliche Spalte "FortiAsic" kann nur eruiert werden ob ein Traffic
            durch das "Offloading" beschleunigt wird!
       FortiOS 5.2
       Fortinet-1108.jpg
       
       Fortinet-1109.jpg
       
       NOTE Durch die zusätzliche Spalte "FortiAsic" kann nur eruiert werden ob ein Traffic
            durch das "Offloading" beschleunigt wird!

Wie kann ich bei einer grossen Anzahl Rules in einer Policy herausfinden wieviel aktiviert/deaktiviert sind?

Dies kann anhand des show Befehls im Zusammenhang mit "grep" herausgefunden werden dh. Betreffend "grep" siehe auch Artikel:

       Fortigate:FAQ#Kann_ich_Linux.2FUnix_basierender_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

Der Befehl "alle" Rules in einer Policy aufzulisten wäre:

       # show full-configuration firewall policy

Um diese nun anhand des "grep" Befehls zu filtern kann folgendes benutzt werden:

       Zeigt die gesamt Anzahl der Rules in einer Firewall Policy:
       
       # show full-configuration firewall policy | grep -c 'set status'
       Zeigt die Anzahl der Aktiven Rules in einer Policy:
       
       # show full-configuration firewall policy | grep -c 'set status enable'
       Zeigt die Anzahl der Deaktivierten Rules in einer Policy:
       
       # show full-configuration firewall policy | grep -c 'set status disable'

Kann ich für Security Profiles sogenannte "Profile Groups" erstellen und diesen in einer Firewall Policy benutzen?

Auf einer FortiGate lassen sich verschiedenen Profiles betreffend UTM Features wie Antivirus, Application Control, IPS usw. erstellen. Diese einzelnen Profiles -von denen mehrere erstellt werden können- werden in der Firewall Policy unter "Security Profiles" konfiguriert und benutzt. So kann in jeder Firewall Policy Rule verschiedenen Security Profiles benutzt werden. Dadurch wird die Granularität bewahrt. Ein anderer Ansatzt ist diese Security Profiles nicht einzel in der Firewall Policy Rule anzugeben sondern nur noch "Profile Groups". Dies bedeutet die verschiedenen "Security Profiles" wie Antivirus, Application Control usw. werden erstellt und in einer Gruppe zusammengefasst. Danach wird in den Security Profiles nicht mehr die einzelnen Security Profiles konfiguriert sondern "nur" noch die entsprechende Gruppe. So lassen sich zB Gruppen erfassen wie:

       Security-Group-Default
       Security-Group-Restricted
       Security-Group-Enhanced

Oder ein anderer Ansatz ist Gruppen basierend aus der LDAP Organisation wie:

       Security-Group-Administration
       Security-Group-Marketing
       Security-Group-Produktmanagemen
       Secuirty-Group-CEO

Diese Gruppen Konfiguration steht per Standard über das Gui nicht zur Verfügung dh. diese muss zuerst aktiviert werden und zwar mit folgenden Befehl:

       # config system global
       # set gui-dynamic-profile-display enable
       # end

Danach muss kurz vom Web Mgmt. ausgeloggt werden und nach dem erneuten Login steht unter folgender Position die neue Funktion zur Verfügung:

       FortiOS 5.0
       Security Profiles > Profile Groups > Profile Groups > Create New
       FortiOS 5.2
       Security Profiles > Advanced > Profile Groups

Unter "Create New" kann nun ein "Profile Group" Name erfasst werden sowie die einzelnen "Security Profiles" für diese Gruppe. Um die "Profile Group" in einer Policy zu konfigurieren muss in der entsprechenden Policy unter FortiOS 5.0 die Funktion aktiviert werden (für jede einzelne Policy). Für FortiOS 5.2 wird die Funktion "Profile Group" nachdem diese über "gui-dynamic-profile-display" aktiviert wurde- per Standard in jeder Policy angezeigt. Um die "Profile Group" für FortiOS 5.0 in der entsprechenden Rule zu aktivieren führe folgendes durch:

       # config firewall policy
       # edit [Gebe die ensprechende Policy ID an der Firewall Policy]
       # set profile-type group
       # set profile-group [Name der "Profile Group"]
       # end
       
       NOTE Steht das Kommando "profile-type" nicht zur Verfügung berücksichtige folgendes:
            
            Die Firewall Policy muss unter "action" auf "accept" gesetzt werden:        # set action accept
            Die firewall Policy muss für UTM aktiviert werden:                          # set utm-status enable

Wie kann ich für eine Policy ID den/die Counter's löschen/zurücksetzen?

Für FortiOS 5 und höhere steht in der Policy resp. in den einzelnen Rules ein "Counter" zur Verfügung der den Traffic der über diese Rule in der Policy läuft aufzeichnet. Um den "Counter" über das WebGui zu löschen resp. zurück zu setzen kann in der entsprechenden Rule und Spalte "Count" eine rechte Maustasten Klick ausgeführt werden und danach erscheint " Clear Counters". Danach nach einem "refresh" des Browser zeigt der "Counter" 0 Packets / 0 B an. Das Ganze kann ebenfalls über die Kommandozeile ausgeführt werden. Um dies durchzuführen muss die Policy ID der entsprechenden Rule in der Policy bekannt sein. Diese kann folgendermassen eruiert werden:

       # show firewall policy

Danach werden alle existierenden Policies mit Policy ID (edit xy) aufgeführt. Ist diese eruiert benötigen wir die "groupid" die folgendermassen eruiert werden kann:

       # diagnose firewall iprope list
       
       NOTE Im Output wird die sogenannte "groupid" aufgeführt dh. zB "group=0010000f". Diese "groupid" 
            bezeichnet/identifiziert die selbst erstellen Firewall Rules/Policy. Beachte dabei das für
            die gesamte Policy "nicht" nur eine "groupid" existiert sondern mehrere! Bei einer grösseren
            Rule Base -um die "groupid" herauszufinden- kann der entsprechende Container anhand der Policy 
            ID mit folgenden Befehl herausgefunden werden:

Danach ergiebt -um den Counter einer bestimmten Policy ID zu löschen- folgendes Kommando:

       Beispiel: Lösche Counter von Policy ID 3
       
       # diagnose firewall iprope clear 0010000f 3
       idx=3 pkts/bytes=0/0
       
       NOTE Möchte man mehrere Counter's sprich von mehreren Rules löschen setzt man die Policy ID
            hinterneinander getrennt von einem Leerschlag!

Session/Session Table

Wie kann ich überpfüen "wieviele" Sessions auf meinem System laufen?

Wenn betreffend Sessions zB ein Tuning ausgeführt ist wäre es sinnvoll die Anzahl Sessions zu überwachen. Folgender Befehl zeigt wieviele Sessions momentan aktiv sind:

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

Um weiter zu überprüfen um "welche" Sessions es sich handelt kann folgendes Kommando ausgeführt 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       -   
       
       Nachfolgend die Legende zu den einzelnen Positionen:
       
       Variable            Description
       PROTO               The transfer protocol of the session.
       EXPIRE              How long before this session will terminate.
       SOURCE              The source IP address and port number.
       SOURCE-NAT          The source of the NAT. ‘-’ indicates there is no NAT.
       DESTINATION         The destination IP address and port number.
       DESTINATION-NAT     The destination of the NAT. ‘-’ indicates there is no NAT.

Um die "session-helper" Informationen aufzulisten benütze folgendes Kommando:

       # get system sesion-helper-info list
       list builtin help module:
       mgcp
       dcerpc
       rsh
       pmap
       dns-tcp
       dns-udp
       rtsp
       pptp
       sip
       mms
       tns
       h245
       h323
       ras
       tftp
       ftp
       list session help:
       help=pmap, protocol=17 port=111
       help=rtsp, protocol=6 port=8554
       help=rtsp, protocol=6 port=554
       help=pptp, protocol=6 port=1723
       help=rtsp, protocol=6 port=7070
       help=sip, protocol=17 port=5060
       help=pmap, protocol=6 port=111
       help=rsh, protocol=6 port=512
       help=dns-udp, protocol=17 port=53
       help=tftp, protocol=17 port=69
       help=tns, protocol=6 port=1521
       help=mgcp, protocol=17 port=2727
       help=dcerpc, protocol=17 port=135
       help=rsh, protocol=6 port=514
       help=ras, protocol=17 port=1719
       help=ftp, protocol=6 port=21
       help=mgcp, protocol=17 port=2427
       help=dcerpc, protocol=6 port=135
       help=mms, protocol=6 port=1863
       help=h323, protocol=6 port=1720

Desweiteren stehen für die Anlyse weitere Kommandos zur Verfügung:

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

Wie kann ich die momentanen Sessions auf einer FortiGate auflisten?

Der nachfolgende Befehl listet alle existierenden Sessions auf:

       # diagnose sys session list
       session info: proto=6 proto_state=02 duration=66 expire=56 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=log 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->11/11->0 gwy=0.0.0.0/0.0.0.0
       hook=out dir=org act=noop 192.168.1.1:1066->192.168.1.20:514(0.0.0.0:0)
       hook=in dir=reply act=noop 192.168.1.20:514->192.168.1.1:1066(0.0.0.0:0)
       pos/(before,after) 0/(0,0), 0/(0,0)
       misc=0 policy_id=0 id_policy_id=0 auth_info=0 chk_client_info=0 vd=0
       serial=001d6095 tos=ff/ff ips_view=0 app_list=0 app=0
       dd_type=0 dd_mode=0
       npu_state=00000000
       
       session info: proto=17 proto_state=01 duration=87778 expire=177 timeout=0 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=log local may_dirty
       statistic(bytes/packets/allow_err): org=1937363/11068/1 reply=1761801/11079/1 tuples=2
       orgin->sink: org pre->in, reply out->post dev=6->49/49->6 gwy=192.168.3.1/0.0.0.0
       hook=pre dir=org act=noop 192.168.3.2:5246->192.168.3.1:5246(0.0.0.0:0)
       hook=post dir=reply act=noop 192.168.3.1:5246->192.168.3.2:5246(0.0.0.0:0)
       src_mac=00:09:0f:95:30:e8
       misc=0 policy_id=0 id_policy_id=0 auth_info=0 chk_client_info=0 vd=0
       serial=001ce93a tos=ff/ff ips_view=0 app_list=0 app=0
       dd_type=0 dd_mode=0
       per_ip_bandwidth meter: addr=192.168.3.2, bps=313
       npu_state=00000000
       
       session info: proto=17 proto_state=01 duration=681551 expire=179 timeout=0 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=log local may_dirty
       statistic(bytes/packets/allow_err): org=117122317/712938/1 reply=79477315/712932/1 tuples=2
       orgin->sink: org pre->in, reply out->post dev=6->49/49->6 gwy=192.168.3.1/0.0.0.0
       hook=pre dir=org act=noop 192.168.3.3:5246->192.168.3.1:5246(0.0.0.0:0)
       hook=post dir=reply act=noop 192.168.3.1:5246->192.168.3.3:5246(0.0.0.0:0)
       src_mac=00:09:0f:f9:29:20
       misc=0 policy_id=0 id_policy_id=0 auth_info=0 chk_client_info=0 vd=0
       serial=000f71cd tos=ff/ff ips_view=0 app_list=0 app=0
       dd_type=0 dd_mode=0
       per_ip_bandwidth meter: addr=192.168.3.3, bps=280
       npu_state=00000000
       total session 50
       NOTE Auf einer Firewall die unter Load steht kann diese Liste der aufgelisteten 
            Sessions enorm lang werden. Aus diesem Grund ist es ratsam in so einem Fall
            anhand des Befehls "| grep" den Output nochmals zu filtern! Wenn zB nach einer
            IP gefiltert werden soll würde das Kommando folgendermassen aussehen:
            
            # diagnose sys session list | grep 192.168.3.3
            
            Der Befehl "grep" bietet weitere Möglichkeiten zur Einschränkung um eine bestimmte
            Session zu finden. Weitere Informationen siehe Artikel:
            
            Fortigate:FAQ#Kann_ich_Linux.2FUnix_basierender_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

Wie erzeuge ich für eine Session einen Filter für eine bestimmte Destination und Port um diese Sessin zu löschen?

Grundsätzlich steht für einen Session Filter folgende Optionen zur Verfügung:

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

Um zB für einen bestimmten Port resp. Destination nun einen Filter zu setzen benütze das Kommando:

       # diagnose sys session filter dport [Port]
       # diagnose sys session filter dst [Destination IP]
       

Um zu überprüfen ob der Filter korrekt gesetzt ist benütze folgenden Befehl:

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

Der Filter ist nun gesetzt und der gesetzte Filter kann nun benutzt werden um die betreffende Session/s zu löschen:

       # diagnose sys session 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!
       

Um den Sessi0n Filter wiederum zu löschen resp. zurückzusetzen benutze:

       # diagnose sys session filter clear

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

       # diagnose sys session filter

Wie kann ich CPU und/oder Memory Resourcen tunen (Session Tuning)?

Im normal Fall ist es nicht nötig CPU und/oder Memory Resourcen zu tunen um zB einen Coserve Mode zu verhindern. Wenn das Sizing des Devices korrekt durchgeführt wurde sowie dessen Konfiguration sollte es nicht zu dieser Situation kommen. Dennoch wenn es nötig wird möglichst CPU und/oder Memory Resource einzusparen kann folgendes durchgeführt werden:

       Session Time Optimierung
       Jeder Traffic Flow der durch die FortiGate abgearbeitet wird steht im Zusammenhang mit einer Session. Je weniger Sessions
       verarbeitet werden desto weniger CPU sowie Memory werden benötigt. Um diese Session Table eines FortiGate Devices zu 
       reduzieren gibt es vers. Ansätze:
       
       • Wenn ein Traffic Flow abgearbeitet wurde so wird die dazugehörige Sessions nicht einfach gelöscht, sondern diese bleibt
         auf dem FortiGate Device bestehen bis der "timer" abgelaufen ist. Dies gilt für "TCP" und/oder "UDP" Sessions. Mit diesen
         Sessions stehen vers. "timer" im Zusammenhang. Somit gilt: Je tiefer die "timer desto schneller sterben die Session und 
         desto weniger bleiben die Sessions erhalten desto weniger Resourcen werden benötigt. Ebenso tragen sogenannten "TCP stuck 
         sessions" in "half-opened", "half-closed" oder "even established" Status dazu bei das Resourden zur Verfügung gestellt 
         werden müssen. Auch diese "TCP stuck sessions" können schneller durch den "timer" auf dem System entfernt werden und 
         somit zu "weniger" Sessions beitragen. Um Global die "timer" anzupassen führe folgendes durch:
         
                 # config system global
                 # set tcp-halfclose-timer [Default Wert 120 Sekunden]
                 # set tcp-halfopen-timer [Default Wert 10 Sekunden]
                 # set tcp-timewait-timer [Default Wert 1 Sekunden]
                 # set udp-idle-timer [Default Wert 180 Sekunden]
                 # end 
                 
                 NOTE Mögliche Werte um die Session Table zu veringern können zB folgendermassen aussehen:
                 
                 # config system global
                 # set tcp-halfclose-timer 30
                 # set tcp-halfopen-timer 30
                 # set tcp-timewait-timer 0
                 # set udp-idle-timer 60
                 # end
                 
                 NOTE Auf dem Wert "tcp-timewait-timer" existiert eine Verzögerung von 10 Sekunden dh. wenn
                      der Wert auf "0 gesetzt wird, so wir die Session 10 Sekunden geöffnet gehalten um 
                      nachträglich nach 10 Sekunden geschlossen zu werden!
       
       • Bestimmte Protokolle wie zB DNS tragen dazu bei das viele Sessions augebaut werden müssen. Diese spezifischen Protokolle 
         sind nur kurz in Gebrauch tragen jedoch durch Ihre "timer" zur Auslastung bei. Diese spezifischen Protokolle sollten nicht
         über die "globalen" Optionen verändert werden sondern im Protokoll selber dh.:
         
                 # config firewall service custom
                 # edit [Name des Service zB DNS]
                 # set tcp-halfclose-timer [Default 0 = Wert von "config system global"; Gültig Werte "1 to 86400" Sekunden] 
                 # set tcp-halfopen-timer [Default 0 = Wert von "config system global"; Gültig Werte "1 to 86400" Sekunden] 
                 # set tcp-timewait-timer [Default 1; 0 = Wert von "config system global"; Gültig Werte "0 to 300" Sekunden]
                 # set udp-idle-timer [Default 0 = Wert von "config system global"; Gültig Werte "1 to 86400" Sekunden] 
                 # end
                 
                 NOTE Wenn eine erhebliche Menge an DNS-Transaktionen über die FortiGate abgewickelt werden und "Virutal IP 
                      Address" oder "DNS Server" von der FortiGate nicht in Gebrauch ist kann der "dns-udp session helper"
                      gelöscht werden. Dieses entfernen des "dns-udp session helper" reduziert sowie limitiert die Kernel
                      Resourcene für jeden DNS Traffic der abgewickelt wird:
                      
                             # show system session-helper
                             # edit 12 (1)
                             # set name dns-udp
                             # set port 53
                             # set protocol 17
                             # next
                             
                             # config system session-helper
                             # delete 12
                             # end
           
                             NOTE Dieser Befehl listet sämtliche "session-helper" auf. Suche den Eintrag für das "dns-udp" Protokoll und dessen
                                  ID. In unserem Beispiel wäre dies die ID "12"!
         
         Wenn ein "timer" neu gesetzt werden soll auf Port Range basierend wäre dies folgendes Kommando:
         
                 # config system session-ttl
                 # set default [Default ist 300; Möglichke Einstellung "300 - 604800 Sekunden]
                 # config port
                 # edit [Wähle einen Integer zB "1"]
                 # set start-port [Wähle den Start Port]
                 # set end-port [Wähle den End Port]
                 # set protocol [Wähle die Protokoll Nummer; Weitere Informationen siehe [Allgemein:Assigned-Internet-Protocol-Numbers-RFC]]]
                 # set timeout [Wähle Timeout in Sekunden oder "never"; Mögliche Einstellung 1 - 604800; Default 300]
                 # end
                 # end
                 
                 NOTE Die Einstellung für "timout" kann auf "never" stehen jedoch sollte mit Vorsicht genutzt werden und ist 
                      im Generellen zu verhindern!

Um Abschliessend das Tuning zu überprüfen gibt es verschiedenen Methoden/Informationen die abgeruft werden können. Weitere Informationen siehe nachfolgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_.C3.BCberpf.C3.BCen_.22wieviele.22_Sessions_auf_meinem_System_laufen.3F

Interface

Wie liste ich die "Interface Namen" mit deren "Referenz Device Nummern" auf?

       # diagnose netlink interface list
       if=internal family=00 type=1 index=3 mtu=1500 link=0 master=0
       ref=9 state=start present flags=up broadcast run multicast

Wie stelle ich fest/kontrolliere ich ob auf irgendwelchen Interfaces ein Error existiert (duplex mismatch)?

Viele Performance Probleme stammen von "duplex mismatch's" oder "falschen" Interface Einstellungen. Um dies auf einem Blick zu kontrollieren benützt folgenden Befehl:

       # diagnose netlink device list
         Interface|       bytes    packets errs drop fifo other compressed mcast colls
             lo.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
         dummy0.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
           eth0.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
            dmz.Rx:           842393471               996280                    0                    0                    0                    0                    0                    0   N/A
               .Tx:           132381670               920500                    0                    0                    0                    0                    0   N/A                    0
           wan1.Rx:           508409412              4741089                    0                    0                    0                    0                    0                    0   N/A
               .Tx:          1452271851              7381395                    0                    0                    0                    0                    0   N/A                    0
           wan2.Rx:             6205500                60998                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                 240                    4                    0                    0                    0                    0                    0   N/A                    0
       internal1.Rx:            2992875                 8675                    0                    0                    0                    0                    0                    0   N/A
               .Tx:            16730340               278839                    0                    0                    0                    0                    0   N/A                    0
       internal2.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       internal3.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       internal4.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       internal5.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       internal6.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       internal7.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
          eth11.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
          modem.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
           root.Rx:            16374140               186074                    0                    0                    0                    0                    0                    0   N/A
               .Tx:            16374140               186074                    0                    0                    0                    0                    0   N/A                    0
       ssl.root.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       mesh.root.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       fortinet4also.Rx:          41724                  714                    0                    0                    0                    0                    0                    0   N/A
               .Tx:               41581                  708                    0                    1                    0                    0                    0   N/A                    0
       fortinet4guests.Rx:       255288                 1300                    0                    0                    0                    0                    0                    0   N/A
               .Tx:              450314                 5061                    0                    1                    0                    0                    0   N/A                    0
       mesh-backhaul.Rx:              0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       fortinet4remote.Rx:            0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    1                    0                    0                    0   N/A                    0
        vsys_ha.Rx:               86315                 1114                    0                    0                    0                    0                    0                    0   N/A
               .Tx:               86315                 1114                    0                    0                    0                    0                    0   N/A                    0
        port_ha.Rx:                   0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0
       vsys_fgfm.Rx:                  0                    0                    0                    0                    0                    0                    0                    0   N/A
               .Tx:                   0                    0                    0                    0                    0                    0                    0   N/A                    0

Betreffend "Duplex mismatch" ist folgendes zu berücksichtigen:

       NIC FortiGate auf Auto, Switch auf Auto
       Result: Ausgehend davon das beide Seiten 802.3u Kompatibel sind und beide Seite über höchst Kapazität von 100/full-duplex verfügen, wird auf
               beiden Seiten 100Mbps full duplex benützt.
       
       NIC FortiGate 100Mbps/full-duplex, Switch auf Auto
       Result: "Duplex mismatch" Keine "auto-negotiation" von der FortiGate, der Switch bietet die Standard Einstellung an 100Mbps/half-duplex.
       
       NIC FortiGate auf Auto, Switch auf 100Mbps/full-duplex
       Result: "Duplex mismatch". Keine "auto-negotiation" Switch, die FortiGate bietet die Standard Einstellung an 100Mbps/half-duplex.
       
       NIC FortiGate auf 100Mbps/full-duplex, Switch auf 100Mbps/full-duplex.
       Result: Korrekte manuelle Konfiguration.
       
       NIC FortiGate auf 100Mbps/half-duplex, Switch auf Auto
       Result: Keine "auto-negotiation" von der FortiGate, Switch Standard Einstellungen 100Mbps/half-duplex. Dies ist eine Ordnungsgemässe Konfig
               sofern die Standard Duplex Einstellungen des Switches diese der FortiGate wiedergeben.
       
       NIC FortiGate auf 10Mbps/half-duplex, Switch auf Auto
       Result: Der Switch ist fähig die Einstellungen der FortiGate zu erkennen (NLP) und setzt sich selber ebenfalls auf 10Mbps. Wenn keine 
               "auto-negotiation" durchgeführt wird auf der FortiGate (FLP) benützt der Switch "half-duplex". Eine ordnungsgemässe Konfiguration
               sofern die Standard Einstellungen betreffend Duplex des Switches die der FortiGate entsprechen.
       
       NIC FortiGate auf 10Mbps/half-duplex, Switch auf 100Mbps/half-duplex
       Result: Kein Link! Beide Seiten etablieren keine Link da die "speed" Konfiguration unterschiedlich ist. "auto-negotiation" wurde auf beiden
               Seiten deaktiviert.
       
       NIC FortiGate auf Auto, Switch auf 10Mbps/half-duplex
       Result: Link wird etabliert basierend auf einer gültigen Konfiguration. Die FortiGate erkennt die Einstellungen des Switches (NLP) und setzt
               sich auf 10Mbps auch ohne "auto-negotiation" des Switches (FLP). Die FortiGate benützt "half-duplex". Der Switch benützt "half-duplex"
               nur dann wenn die Standard Einstellungen des Switches dem entsprechen.
       
       NOTE die Abkürzung NLP bedeutet "Normal Link Pulse" sowie FLP "Fast Link Pulse"!

Wenn ein Interface auf dessen Werte genauer untersucht werden soll kann folgendes Kommando benutzt werden:

       # diag hardware deviceinfo nic [Name des Interfaces zB "internal1"]
       Driver Name     :Fortinet NP4Lite Driver
       Version         :1.0.0
       Admin           :up
       Current_HWaddr   08:5b:0e:47:db:56
       Permanent_HWaddr 08:5b:0e:47:db:56
       Status          :up
       Speed           :100
       Duplex          :Half
       Host Rx Pkts    :8703
       Host Rx Bytes   :2880693
       Host Tx Pkts    :279745
       Host Tx Bytes   :14546770
       Rx Pkts         :8703
       Rx Bytes        :3002535
       Tx Pkts         :279745
       Tx Bytes        :16784700
       rx_buffer_len   :2048
       Hidden          :No
       cmd_in_list     : 0
       promiscuous     : 1

Wie liste ich den Status/Konfiguration eines bestimmten Interface auf?

Der folgende Befehl kann benutzt werden um die Konfiguration/Status eines Interfaces aufzulisten:

       # show system interface [Gebe den Namen des entsprechenden Interfaces ein zB internal]
       config system interface
           edit "internal"
               set vdom "root"
               set ip 192.168.2.99 255.255.255.0
               set allow ping https ssh http fgfm
               set type physical
           next
       end

Wie kann ich ein Interface konfigurieren?

Um ein Interface zu konfigurieren benutze folgende Kommandos:

       # config system interface
       # edit [Name des Ports zB port3]
       # set ip xxx.xxx.xxx.xxx/xx
       # set alias [Name des Alias zB internal]
       # end
       
       NOTE Um festzustellen WAS zusätzlich konfiguriert werden kann benutze in den Optionen
            "?" und oder "get" was wiederum heisst:
            
            # config system interface
            # edit [Name des Ports oder um eine Liste zu sehen der Ports "?"]
            # set allowaccess ?
            
            # config system interface
            # edit [Name des Ports oder um eine Liste zu sehen der Ports "?"]
            # get

Wie passe ich auf einem Interface die MTU Size an?

Ab FortiOS 5.0 / 5.2 kann die MTU Size auf allen Interface's sei es für den ISP und/oder Jumbo Frames angepasst werden. Dies kann über WebGui durchgeführt werden innerhalb der Interface Konfiguration dh.:

       System > Network > Interface

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

       # config system interface
       # edit [Name des entsprechenden Interfaces zB port1]
       # set mtu-override enable
       # set mtu [Setze die MTU Size zB für Jumbo Frames den Wert 9000]
       # next
       # end
       
       NOTE Wird die MTU Size betreffend Jumbo Frames angepasse siehe nachfolgender Artikel betreffend
            Möglichkeiten und Detaisl für Jumbo Frames:
            
            Fortigate:FAQ#Welcher_Treiber.2C_Device_oder_Module_unterst.C3.BCtzen_auf_einer_FortiGate_JumboFrames_und_in_welcher_Gr.C3.B6sse.3F

Wie kann ich die Interface Information/Konfiguration anzeigen lassen?

Um die Informationen/Konfiguration (IP) betreffend aller Interfaces aufzulisten benutze folgenden Befehl:

       # get system interface 
       == [ wan1 ]
       name: wan1    mode: dhcp    ip: 0.0.0.0 0.0.0.0   status: up    netbios-forward: disable    type: physical   netflow-sampler: disable    sflow-sampler: disable    explicit-web-proxy: disable    explicit-ftp-proxy: disable    mtu-override: disable    wccp: disable    drop-overlapped-fragment: disable    drop-fragment: disable    
       == [ wan2 ]
       name: wan2    mode: static    ip: 192.168.101.99 255.255.255.0   status: up    netbios-forward: disable    type: physical   netflow-sampler: disable    sflow-sampler: disable    explicit-web-proxy: disable    explicit-ftp-proxy: disable    mtu-override: disable    wccp: disable    drop-overlapped-fragment: disable    drop-fragment: disable    
       == [ modem ]
       name: modem    mode: pppoe    ip: 0.0.0.0 0.0.0.0   netbios-forward: disable    type: physical   netflow-sampler: disable    sflow-sampler: disable    mtu-override: disable    wccp: disable    drop-overlapped-fragment: disable    drop-fragment: disable    
       == [ ssl.root ]
       name: ssl.root    ip: 0.0.0.0 0.0.0.0   status: up    netbios-forward: disable    type: tunnel   netflow-sampler: disable    sflow-sampler: disable    explicit-web-proxy: disable    explicit-ftp-proxy: disable    mtu-override: disable    
       == [ internal ]
       name: internal    mode: static    ip: 192.168.1.99 255.255.255.0   status: up    netbios-forward: disable    type: physical   netflow-sampler: disable    sflow-sampler: disable    explicit-web-proxy: disable    explicit-ftp-proxy: disable    mtu-override: disable    wccp: disable    drop-overlapped-fragment: disable    drop-fragment: disable

Wie kann ich ein Interface auf Hardware Basis überprüfen oder dessen Treiber herausfinden?

       # diagnose hardware deviceinfo nic [Name des Ports zB port3]
       Driver Name     :Fortinet Nplite Driver
       Version         :1.0
       Admin           :up
       Current_HWaddr   00:09:0f:96:d3:e0
       Permanent_HWaddr 00:09:0f:96:d3:e0
       Status          :up
       Speed           :100
       Duplex          :Half
       Host Rx Pkts    :17153
       Host Rx Bytes   :1489283
       Host Tx Pkts    :79855
       Host Tx Bytes   :4152490
       Rx Pkts         :17154
       Rx Bytes        :1729485
       Tx Pkts         :79855
       Tx Bytes        :4791300
       rx_buffer_len   :2048
       Hidden          :No
       cmd_in_list     :0

Wie kann ich auf einem Interface den Mgmt. Zugriff konfigurieren?

       # config system interface
       # edit [Name des Ports zB port3]
       # set allowaccess http https ping ssh telnet
       # end
       
       NOTE Unter FortiOS 5 steht neu "append" zur Verfügung dh. soll eine weitere Access zur
            bestehender Konfiguration hinzugefügt werden kann dies anstelle "set" mit "append"
            durchgeführt werden.

Wie kann ich für ein Interface ein DNS Listener konfigurieren?

Wenn man auf einer Fortigate einen internen DNS Server konfiguriert gemäss nachfolgenden Artile so muss auf dem entsprechenden Interface ein Listener erstellt werden. Dies wird über die Console folgendermassen durchgeführt:

       Fortigate:FAQ#Kann_ich_auf_der_Fortigate_einen_Splitt_DNS_Server_einrichten.3F
       # config system dns-server
       # edit [Name des Ports zB port3]
       # set mode [recursive | non-recursive | forward-only]
       # end

Wie setze ich auf einer Fortigate den Interface "speed"?

Die Interfaces auf einer Fortigate stehen per Standard auf auto/auto. Um den Interface "speed" fest zu setzen führe folgendes aus:

       # conf sys int
       # edit [interface-name]
       # set speed ?
       # set speed [1000full/10000half/100full/100half/10full/10half/auto]
       # end
       
       NOTE Es ist empfohlen den Interface "speed" nur dann fest zu setzen wenn es mit Netzwerkgeräten zu Problemen kommt!
            Folgender Link gibt Auskunft über die mit Fortinet eingesetzen 1000BaseT Gigabit Ethernet interfaces.
            
            http://kb.fortinet.com/kb/microsites/microsite.do?cmd=displayKC&externalId=13780

Um das Interface zu überprüfen benutze folgendes:

       # diagnose hardware deviceinfo nic

Um den Interface "speed" bei gewissen Modellen zB (60C) auf dem 4-Port Switch zu setzen siehe Artikel:

       Fortigate:FAQ#Wie_setze_ich_f.C3.BCr_den_.22Internen_Switch.22_den_Interface_Speed.3F

Wie schalte ich auf einem Interface "icmp-redirect" aus?

Um "icmp-redirect" auszuschalten benutze folgenden Befehl:

       # config system interface
       # edit [Interface Name]
       # set icmp-redirect disable
       # end
       
       NOTE "icmp-redirect" ist auf allen Interfaces per Standard eingeschaltet!

Gibt es bei VLAN Interface Konfiguration eine Limitierung für die Geräte?

Ja, die gibt es denn für folgende Geräte stehe keine VLAN's zur Verfügung:

       FortiGate 30B
       FortiWiFi 30B

Für die Geräte FGT/FWf-20C/30D/40C gilt folgendes:

       Es besteht keine Möglichkeit -gemäss Software Matrix- für diese Geräte im Web Mgmt. Gui ein VLAN
       zu konfigurieren jedoch kann die Konfiguration in der CLI durchgeführt werden:
       
       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       
       Eine Konfiguration in der CLI wird folgendermassen durchgeführt:
       
       # config system interface
       # edit [Name des VLAN's]
       new entry added
       # set interface internal
       # set vlanid [VLAN ID]
       # set ip [VLAN IP Adresse sowie Subnet Maske zB 10.100.1.10/24]
       # set vdom root
       # end

Nachträglich kann die Konfiguration im Web-Based Manager kontrolliert werden!

Wie konfiguriere ich auf der Console ein "aggregated" Interface (LACP)?

Das LACP (RFC 802.3ad) stellt den offiziellen IEEE-Standard für die Link Aggregation Technik dar. Link Aggregation bezeichnet die dynamische Bündelung von mehreren physischen Verbindungen zwischen zwei Netzwerk-Komponenten zu einer logischen Verbindung. Wenn ein Aggregated Interface erstellt wird so wird eine virtuelle MAC Adresse (Für Standalone dh. "nicht" HA wird das erste Interface herangezogen um das Logisch gebündelte Interface zu representieren; In einem HA Konfiguration wird wiederum das erste Interface herangezogen um die virtuelle MAC Adresse zu errechnen) vergeben um die dynamisch gebündelten physischen Interfaces zu representieren. Für eine logische Verbindung auf einer Fortinet können max. 8 Interfaces gebündelt werden! Um ein "aggregated" Interface ueber die Console zu erstellen führe folgendes durch:

       NOTE Ein "aggregated" Interface kann nicht konfiguriert werden, wenn eine Route existiert die durch das physiche Interface
            benutzt wird dh. zB Default Gateway Route. Wenn dies der Fall ist muss diese temporär gelöscht werden um das "aggregated"
            Interface zu erstellen und um nachträglich die Default Gateway Route wieder zu erstellen! Desweiteren steht die "Aggregation"
            nicht zur Verfügung wenn ein Interface bereits benutzt wird für:
            
            - Interface wird bereits benutzt für eine Aggregation
            - Interface darf keine IP konfiguriert haben sowie nicht benutzt für PPPoE und/oder DHCP
            - Interface darf nicht benutzt werden für DHCP Server/Relay
            - Interface darf keine VLAN's konfiguriert haben
            - Interface darf nicht benutzt sein in einer Policy (inkl. Multicast), NAT Konfiguration (VIP), IP Pool
            - Interface darf nicht benutzt sein als HA (Heartbeat)
            
            Zudem steht diese Funktion eines "aggregated" Interface ab der FortiGate 100D zur Verfügung dh. "low-end" Geräte wie eine 80C 
            oder 60C unterstützen diese Funktion nicht! Der 802.3ad Standard und Fortinet erlauben ein max. von 8 Interfaces die "Aggregiert" 
            werden. Fortinet "recommended" entweder 2, 4 oder 8 physische Ports zu nehmen um eine "Aggregation" zu konfigurieren! Deweit
       # config system interface
       # edit [Name der Logischen Verbindung zB "Aggregated-1"]
       # set type aggregate
       # set member [Physichen Ports für Bündelung von mehreren physischen Verbindungen zB "port1 port2"]
       # set lacp-mode active
       # set lacp-ha-slave [disable | enable]
       # set lacp-speed slow
       # set algorithm L4
       # set ip [IP der Logischen Verbindung zB "192.168.0.1/24]
       # set vdom root
       # next
       # end
       
       ACHTUNG Wenn auf dem Switch keine "multiple LAG groups" konfiguriert werden können und somit das "primary" und die "subordinate unit"
               Interface die gleiche MAC Adressse haben muss "lacp-ha-slave" auf "disable" gesetzt werden da ansonsten ein Failover im HA
               Verbund "delays" hervorruft und somit die Performance beinträchtigt. Aus diesem Grund ist es empfehlenswert das der Switch
               der benutzt wird "multiple Link Aggregation (LAG) Groups" unterstützt um dieses Problem zu verhindern! Im Zweifelsfall kann 
               "lacp-ha-slave" auf "disable" gesetzt werden! 

Um ein "Aggregated Interface" zu Troubleshooten benütze:

       BEISPIEL (Beide Ports up and running)
       
       # diagnose netlink aggregate name [Name des Aggregate Link]
       
       LACP flags: (A|P)(S|F)(A|I)(I|O)(E|D)(E|D)
       (A|P) - LACP mode is Active or Passive
       (S|F) - LACP speed is Slow or Fast
       (A|I) - Aggregatable or Individual
       (I|O) - Port In sync or Out of sync
       (E|D) - Frame collection is Enabled or Disabled
       (E|D) - Frame distribution is Enabled or Disabled
       
       status: up
       distribution algorithm: L4
       LACP mode: active
       LACP speed: slow
       LACP HA: enable
       aggregator ID: 1
       ports: 2
       actor key: 17
       actor MAC address: 00:09:0f:68:35:94
       partner key: 17
       partner MAC address: 00:09:0f:68:37:d8
        
       slave: port7
       status: up
       link failure count: 3
       permanent MAC addr: 00:09:0f:68:35:94
       actor state: ASAIEE
       partner state: ASAIEE
       aggregator ID: 1
       
       slave: port8
       status: up
       link failure count: 2
       permanent MAC addr: 00:09:0f:68:35:95
       actor state: ASAIEE
       partner state: ASAIEE
       aggregator ID: 1
       
       NOTE In diesem Beispiel haben die Aggregator ID's dieselben Werte (ID=1). Dies bedeutet beide Interfaces/Ports
            sind up and running.
       BEISPIEL (Nur ein Port up and running)
       
       # diagnose netlink aggregate [Name des Aggregate Link]
       
       LACP flags: (A|P)(S|F)(A|I)(I|O)(E|D)(E|D)
       (A|P) - LACP mode is Active or Passive
       (S|F) - LACP speed is Slow or Fast
       (A|I) - Aggregatable or Individual
       (I|O) - Port In sync or Out of sync
       (E|D) - Frame collection is Enabled or Disabled
       (E|D) - Frame distribution is Enabled or Disabled
       
       status: up
       distribution algorithm: L3
       LACP mode: active
       LACP speed: slow
       LACP HA: enable
       aggregator ID: 1
       ports: 1
       actor key: 17
       actor MAC address: 00:09:0f:71:1f:22
       partner key: 45
       partner MAC address: 00:0d:66:2f:2b:40
       
       slave: port5
       status: up
       link failure count: 19
       permanent MAC addr: 00:09:0f:71:1f:22
       actor state: ASAIDD < DISABLED
       partner state: ASIODD < OUT OF SYNC / DISABLED
       aggregator ID: 2
       
       slave: port6
       status: up
       link failure count: 2
       permanent MAC addr: 00:09:0f:71:1f:23
       actor state: ASAIEE
       partner state: ASAIEE
       aggregator ID: 1
       
       NOTE In diesem Beispiel haben die Aggregator ID's unterschiedliche Werte dh. Port 5 ID=2 und Port 1 ID=1. Dies bedeutet nur das Interfaces/Port
            6 ist up and running (ID=1).

Ebenfalls kann anhand des "sniffer" Befehls der Traffic betreffend LACP augezeigt werden:

       # diag sniffer packetyour_aggregate_link
       
       2.546898 aggreg_link -- 802.3ad LACPDU (65535,00-09-0F-68-37-D8,0017,0255,0002) ASAIEE (65535,00-09-0F-68-35-94,0017,0255,0002) ASAIEE 0x0000 0180 c200 0002 0009 0f68 37d9 8809 010 .........h7.....
       Dst Multicast - Src = lowest MAC of all ports in the LAG - Eth frame type

Kann ich auf einem Interface eine Secondary/VLAN Adresse konfigurieren die sich mit der Interface IP overlaped?

Wenn man zB ein Interface konfiguriert zB "port1" und dort zB die IP "192.168.1.1/24" vergibt und danach aus irgendwelchen Gründen eine Secondary Adresse IP und/oder VLAN IP auf "port1" konfigurieren will, die sich im gleichen Subnet befindet wie die IP von "port1" so erscheint folgender Fehlermeldung:

       Subnets overlap between 'port1' and the primary IP of 'port1'
       object set operator error, -54 discard the setting
       
       oder
       
       IP address is in same subnet as the others.

Die Fehlermeldung ist klar dh. der Eintrag für die Secondary Adresse im gleichen Subnet ist nicht möglich da "port1" bereits für dieses Subnet zuständig ist. Dies gilt auch im Zusammenhang mit Interfaces resp. SSID's. Es gibt jedoch Umstände in denen man so eine Konfifguration durchführen muss. Um so eine Konfiguration zu ermöglichen muss "allow-subnet-overlap" aktiviert werden auf der Fortigate. Dies wird folgendermassen durchgeführt:

       # config system settings
       # set allow-subnet-overlap [enable | disable]
       # end
       
       NOTE Die Konfiguration "allow-subnet-overlap" muss für ein dedizierte Mgmt. Interfaces in der
            HA (High Availability) Konfiguration nicht aktiviert werden. Dies bedeutet: Ein "overlapping"
            Subnet im Zusammehang mit dem dezidierten Interfaces im HA ist eine Ausnahme und kann -ohne
            allow-subnet-overlap zu aktivieren-durchgeführt werden.

Welcher Treiber, Device oder Module unterstützen auf einer FortiGate JumboFrames und in welcher Grösse?

Dieser Artikel zeigt einen Ueberblick welche Treiber, Device und/oder Module welche MTU Grösse sowie Jumbo Frames auf einer FortiGate unterstützt werden. Jumbo Frames sind Packete die grösser sind als die Standard Maximum Transmission Unit (MTU) von 1500. Uebliche Grössen von Jumbo Frames sind 9000 und 16110 bytes. Jumbo Frames können den Durchsatz massiv erhöhen indem ein Jumbo Frame mehr "data" in einem Frame beinhalten ohne den "overhaed" des Headers. Dabei muss darauf geachtet werden das "alle" involvierten Devices wie zB Switch, Router etc. diese Jumbo Frames unterstützen. Ist dies nicht der Fall werden die Jumbo Frames von diesen Devices verworfen. Ab FortiOS 3.0 MR2 sowie FortiGate 300A und höher werden Jumobo Frames für Fast-Ethernet (100Mbit) und Gigabit-Ethernet (1000Mbit) Interfaces wie folgt unterstützt:

       Fortinet-1089.jpg

Um den Treiber herauszufinden benütze das Kommando aus dem nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_ein_Interface_auf_Hardware_Basis_.C3.BCberpr.C3.BCfen_oder_dessen_Treiber_herausfinden.3F

Um die MTU Size anzupassen benützen das Kommando im nachfolgenden Artikel:

       Fortigate:FAQ#Wie_passe_ich_auf_einem_Interface_die_MTU_Size_an.3F

IPSEC VPN

Wie sieht der "Output" für ein IPSec VPN im Debugging Mode aus?

Das nachfolgende Dokument zeigt wie ein Debugging für ein IPSec VPN betreffend Phase-1 und/oder 2 ausgeführt wird. Grundsätzlich benötigt man für das Debugging folgende Befehle:

       # diagnose debug reset
       # diagnose debug application ike -1
       # diagnose vpn ike log-filter
       # diagnose debug info
       # diagnose debug enable
       
       NOTE Um den Debugging Mode "diagnose debug enable" zu stoppen muss folgender Befehl abgesetzt werden:
            
            # diagnose debug disable
            
            Wenn es sehr viel "output" kommt im Debugging Mode kann der Befehl einfach in die Console kopiert werden
            gefolgt von einem "Enter". Damit lässt sich der Debugging Mode beenden. Weiter ausführliche Informationen
            betreffend "diagnose debug appplication" sowie "diagnose vpn ike" findet man im nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F

Wie schon erwähnt zeigt das nachfolgende Dokument alle Aspekte eines Debugging für IPSec in der Phase-1 und/oder 2. Dies bedeutet anhand eines Beispiels zeigt das Dokument jeden möglichen Fehler mit seinen Fehlermeldungen. Somit kann dieses Dokument auch benützt werden als Referenz für mögliche Fehler:

       Datei:Fortigate-IPSEC-Debugging.pdf

Wie kann ich für ein IPSec VPN für Phase-1 und/oder 2 ein Debugging ausführen?

Ein Debug für IPSec VPN Phase-1 und/oder 2 kann anhand der Debugging Funktion (diagnose debug) auf einer Fortiate durchgeführt werden:

       NOTE Das relativ Schwierige bei einem Debug für IPSec ist den Output dieses Debug's korrekt zu intepretieren.
            Der nachfolgende Artikel enhält ein Dokument von Fortinet das die verschienen Output's resp. Fehlermeldungen
            aufzeigt. Dieses Dokument soll helfen die Meldungen in der Phase-1 und/oder 2 korrekt zu intepretieren und
            Fehler zu beseitigen:
            
            Fortigate:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application ike -l
       # diagnose vpn ike log-filter [Log Filter zB Phase1 Name "name"]
       NOTE Als "log-filter" stehen verschiedene Möglichkeiten zur Verfügung. Dies bedeutet: Ist auf einer Fortigate mehr
            als ein IPSec VPN konfiguriert ist es Sinnvoll nur den Output eines VPN's anzuzeigen anstelle allen VPN's. Der
            folgende Befehl listet die verschiedenen Möglichkeiten des Filters auf:
            
            # diagnose vpn ike log-filter list
            
            	vd: any
            	name: any
            	interface: any
                IPv4 source: any
            	IPv4 dest: any
            	IPv6 source: any
            	IPv6 dest: any
            	source port: any
            	dest port: any
            	autoconf type: any
            	autoconf status: any
        
            Nachfolgender Befehl listet alle Möglichkeiten mit deren Kurzbeschreibung auf:
        
            # diagnose vpn ike log-filter ?
            
            clear        Erase the current filter.
            dst-addr4    IPv4 destination address range to filter by.
            dst-addr6    IPv6 destination address range to filter by.
            dst-port     Destination port range to filter by.
            interface    Interface that IKE connection is negotiated over.
            list         Display the current filter.
            name         Phase1 name to filter by.
            negate       Negate the specified filter parameter.
            src-addr4    IPv4 source address range to filter by.
            src-addr6    IPv6 source address range to filter by.
            src-port     Source port range to filter by.
            vd           Index of virtual domain. -1 matches all.
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       NOTE Es kann zu Situationen kommen indem der Output des laufenden Debug Mode verhindert einen Befehl in der
            Console einzugeben. Wenn dies der Fall ist, kopiere den Befehl einfach in die Console gefolgt durch 
            "Enter"!
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info
       
       Setze den IKE "log-filter" zurück und kontrolliere diesen:
       
       # diagnose vpn ike log-filter clear
       # diagnose vpn ike log-filter list

Wie kann ich einen IPSec VPN Tunnel Manuell Stoppen und Starten?

Um einen IPSec VPN Tunnel Manuell zu stoppen/starten kann über das Web Mgmt. Interface folgendes durchgeführt werden:

       VPN > Monitor > IPsec Monitor > [Markiere den entsprechenden Eintrag] > [Statsu bring-up/down]

Diese vorgehensweise über das Web Mgmt. Interface entspricht auf der Kommandozeile folgenden Befehl:

       # diagnose vpn tunnel down [Geben den entsprechenden Namen an für Phase-2 und Phase-1]
       # diagnose vpn tunnel up [Geben den entsprechenden Namen an für Phase-2 und Phase-1]
       
       NOTE Zusätzlich zu "down/up" stehen folgende Optionen zur Verfügung:
            
            # diagnose vpn tunnel ?
            down         Shut down tunnel
            up           Activate tunnel
            list         List all tunnel
            dialup-list  Lit dialup tunnel
            reset        Flush tunnel SAs and reset NT-T and DPD configuration
            flush        Flush tunnel SAs
            delinbsa     Remove tunnel sa
            deloutbsa    Remove tunnel sa
            dumpsa       Dump all sa
            Stat         Tunnel statistic info

Das Problem bei der Anwendung -sei es über Web Mgmt. Interface- und/oder Kommandozeile ist das Restinformationen der SA nicht von grundauf Erneuert werden. Dies bedeutet wenn kleinere Aenderungen an einem IPSec VPN durchgeführt werden sollte diese Vorgehensweise genügen. Sollte ein VPN IPSec von grundauf neu gestartet werden mit sämtlichen Informationen sollte die vorgehensweise im nachfolgenden Artikel durchgeführt werden:

       Fortigate:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Spielt die Zeichenanzahl des Namens für ein IPSec in der Phase-1 und/oder 2 eine Rolle?

Der Name (Zeichenanzahl) für eine IPSec Konfiguration in der Phase-1 und/oder 2 sollte 15 Zeichen nicht übersteigen. In einem Site2Site VPN indem nur "ein" Tunnel geöffnet wird ist dies kein Problem. In einem Dial-UP VPN bei dem für zusätzliche Verbindungen zusätzliche VPN-Tunnels geöffnet werden, kann dies zu einem Problem führen, denn für jeden Tunnel wird ein "_#" (# steht für 0-9) angehängt. Dies bedeutet werden 10 zusätzliche Verbindunge geöffnet wird an jedem Tunnel "_##" (# steht für 10-99) angehängt. Sobald die Länge des Namens 15 übersteigt kommt es zu Problemen. Aus diesem Grund sollte eine IPSec in der Phase-1 und/oder 2 nie mehr als 12 Zeichen enthalten damit noch genug Zeichen noch vorhanden sind um "_##" (0-99) anzuhängen.

Wie kann ich ein IPSec VPN neu Initieren (Starten) damit von Grundauf neue Informationen (SA) aktiv werden?

Wenn eine IPSec Verbindung Konfiguriert wurde und nachträglich an dieser Konfiguration Aenderungen durchführt (event. auf beiden Seiten) kann es vorkommen, dass die neuen Informationen nicht übernommen/aktiv werden. Oft wird als letzte Alternative ein Neustart des Gerätes durchgeführtt. Nach einem Neustart werden die neuen Informatione sofort aktiv. Die Vorgehensweise einen Device neu zu starten ist zwar eine Möglichkeit aber nicht in jedem Fall machbar da event. mehrere IPSec Tunnel auf dem Device konfguriert wurden. Eine andere Möglichkeit ist über im folgenden Artikel beschrieben den entsprechenden IPSec Tunnel zu stoppen resp. zu starten:

       Fortigate:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Diese Möglichkeit die im vorhergehenden Link beschrieben ist, führt nicht zwangsweise zum Erfolg. Speziell wenn grundlegende Konfigurationsänderungen durchgeführt wurden, sei es an den Sgementen oder in der Phase-1 und/oder 2. Wenn dies der Fall ist kann folgendermassen vorgegangen werden um ein IPSec von grundauf neu zu Initieren (inkl. SA Informationen; Security Association):

       "Erneuerung der Routing Table"
       
       # execute router restart
       "Erneuerung der SA (Security Associations ) für ALLE VDom's"
       
       # diagnose debug application ike 2 
       # diagnose debug enable 
       # diagnose vpn ike restart 
       
       oder
       
       # diagnose vpn ike gateway flush [name Phase 1]
       
       NOTE Wenn nicht ein "ike restart" durchgeführt wird sondern ein "ike gateway" so wird nur die "bestimmte" SA Erneuert jedoch können
            bestimmte Informationen (cache) bestehen bleiben. Sollen die VPN Informationen wirklich erneuert werden so muss ein "ike restart"
            durchgeführt werden (IKE Deamon wird dadurch neu gestartet) was wiederum einen kurzen Unterbruch in event. zusätzlichen VPN Tunnels 
            bedeutet! 
       Danach sollte das Debug wieder abgeschaltet werden:
       
       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

Wenn die vorhergehende Ausführen keine Lösung bringt so sollte zu Troubleshooting Zwecken (Support) - und vor dem Reboot- folgendes durchgeführt werden:

       NOTE Um das nachfolgende Scenario und Befehle besser zu verstehen gehen wir von folgenden Scenario aus:
        _________________________                  ___________                    __________                     ____________                  _________________________
       |                         |                |           | 1.1.1.1          |          |           2.2.2.2 |            |                |                         |
       | LAN Env. 10.1.1.0/24    |----- LAN ------| Forti I   |------ WAN1 ------|  IPSec   |------ WAN 1 ------|  Forti II  |------ LAN -----| LAN Env. 10.2.2.0/24    |
       |_________________________|                |___________|                  |__________|                   |____________|                |_________________________|
       
       Phase-1 Interface auf der Forti I ist benannt:       "toFGT2"
       Phase-1 Interface auf der Forti II ist benannt:      "toFGT1"

Folgende Symptome treten auf:

       --> Der Tunnel ist "up" und wird dementsprechenden auch so im WebGui angezeigt. 
       --> Wenn ein ICMP Echo Request von 1.1.1.1 zu 2.2.2.2 gesendet wird dann:

      . Ich sehe die ICMP Packet auf dem Forti I "internal" Intercace
      . Ich sehe die ICMP Packet auf dem Forti I "toFGT2" Interface 
      . Ich sehe keinen Traffic auf der Forti II "toFGT1" Interface

Ausgehend von diesen Vorraussetzungen führe folgendes aus (Logge alles in ein File):

       AUF DER FORTI I
       
       Oeffne eine CLI Session 1 (IKE Debug und Debug Flow für ICMP Traffic
       
       # diagnose debug reset 
       # diagnose debug console timestamp en 
       # diagnose vpn ike log-filter clear 
       # diagnose vpn ike log-filter dst-addr4 [Public IP Forti I dh. 2.2.2.2]
       # diagnose debug application ike -1 
       # diagnose debug flow filter clear 
       # diagnose debug flow show console enable 
       # diagnose debug flow filter proto 1 
       # diagnose debug flow filter addr [Client IP Forti I Local Env. der den ICMP ausführt dh. 10.2.2.2]
       # diagnose debug flow trace start 10000 
       # diagnose debug enable 
       
       Oeffne eine CLI Session 2 (Capture ICMP Traffic) == 
       
       # diagnose sniffer packet any 'host [Client IP Forti II Local Env. nachdem der ICMP ausführt wird dh. 10.2.2.2] and icmp' 6 0 a
       
       Oeffne eine CLI Session 3 (Capture IPSec Traffic) == 
       
       # diagnose sniffer packet any 'host [Forti II WAN-1 2.2.2.2] and [esp oder UDP Port 4500]' 6 0 a
       
       Oeffne eine CLI Session 4 (Capture IPSec Traffic) == 
       
       # get sys status 
       # get ro info ro dat 
       # fnsysctl ps 
       # diagnose vpn ike status summary 
       # diagnose vpn ike status detailed 
       # get vpn ipsec tunnel summary 
       # diagnose vpn tunnel stat 
       # diagnose vpn ike crypto stats 
       # diagnose vpn ipsec status 
       # diagnose vpn ike gateway list 
       # diagnose netlink interface list [Name der Phase 1 auf Forti I dh. toFGT2] 
       # diagnose vpn ike routes 
       # diagnose vpn tunnel list 
       # diagnose vpn ike errors 
       # diagnose vpn ike counts 
       # diagnose hardware deviceinfo nic [Physical Interface über dessen IPSec läuft dh. wan1]
       
       # fnsysctl cat /proc/net/ipsec0 
       # fnsysctl cat /proc/cp6kxp/kxp0/brief 
       # fnsysctl cat /proc/cp6kxp/kxp0/cmdq 
       # fnsysctl cat /proc/cp6kxp/kxp0/cmdqdis 
       # fnsysctl cat /proc/cp6kxp/kxp0/rng 
       # fnsysctl cat /proc/cp6kxp/kxp0/task 
       # fnsysctl cat /proc/cp7/vpn0/brief 
       # fnsysctl cat /proc/cp7/vpn0/registers 
       # fnsysctl cat /proc/cp8/vpn0/brief 
       # fnsysctl cat /proc/cp8/vpn0/registers 
       # fnsysctl cat /proc/fsoc/cp7/vpn0/brief 
       # fnsysctl cat /proc/fsoc/cp7/vpn0/registers 
       
       NOTE Der "fnsysctl" Befehl schreibt die CP6/CP7/CP8/SoC Statistik Informationen in die CLI Session.
            Einige der Kommandos werden nicht funktionieren (file does not exist) da diese Kommandos alle ASIC's 
            abdecken resp. überprüft. NP2/NP4/SP Hardware Offload Informationen sind nicht enthalten das diese 
            Informationen auf dem FortiGate Modell basiert (Einige haben ein Chip, andere Zwei oder auch Vier).
       AUF DER FORTI II
       
       Oeffne eine CLI Session 1 (IKE Debug und Debug Flow für ICMP Traffic
       
       # diagnose debug reset 
       # diagnose debug console timestamp en 
       # diagnose vpn ike log-filter clear 
       # diagnose vpn ike log-filter dst-addr4 [Public IP Forti I dh. 1.1.1.1]
       # diagnose debug application ike -1 
       # diagnose debug flow filter clear 
       # diagnose debug flow show console enable 
       # diagnose debug flow filter proto 1 
       # diagnose debug flow filter addr [Client IP Forti I Local Env. der den ICMP ausführt dh. 10.1.1.1]
       # diagnose debug flow trace start 10000 
       # diagnose debug enable 
       
       Oeffne eine CLI Session 2 (Capture ICMP Traffic) == 
       
       # diagnose sniffer packet any 'host [Client IP Forti II Local Env. nachdem der ICMP ausführt wird dh. 10.1.1.1] and icmp' 6 0 a
       
       Oeffne eine CLI Session 3 (Capture IPSec Traffic) == 
       
       # diagnose sniffer packet any 'host [Forti II WAN-1 1.1.1.1] and [esp oder UDP Port 4500]' 6 0 a
       
       Oeffne eine CLI Session 4 (Capture IPSec Traffic) == 
       
       # get sys status 
       # get ro info ro dat 
       # fnsysctl ps 
       # diagnose vpn ike status summary 
       # diagnose vpn ike status detailed 
       # get vpn ipsec tunnel summary 
       # diagnose vpn tunnel stat 
       # diagnose vpn ike crypto stats 
       # diagnose vpn ipsec status 
       # diagnose vpn ike gateway list 
       # diagnose netlink interface list [Name der Phase 1 auf Forti II dh. toFGT1] 
       # diagnose vpn ike routes 
       # diagnose vpn tunnel list 
       # diagnose vpn ike errors 
       # diagnose vpn ike counts 
       # diagnose hardware deviceinfo nic [Physical Interface über dessen IPSec läuft dh. wan1]
       
       # fnsysctl cat /proc/net/ipsec0 
       # fnsysctl cat /proc/cp6kxp/kxp0/brief 
       # fnsysctl cat /proc/cp6kxp/kxp0/cmdq 
       # fnsysctl cat /proc/cp6kxp/kxp0/cmdqdis 
       # fnsysctl cat /proc/cp6kxp/kxp0/rng 
       # fnsysctl cat /proc/cp6kxp/kxp0/task 
       # fnsysctl cat /proc/cp7/vpn0/brief 
       # fnsysctl cat /proc/cp7/vpn0/registers 
       # fnsysctl cat /proc/cp8/vpn0/brief 
       # fnsysctl cat /proc/cp8/vpn0/registers 
       # fnsysctl cat /proc/fsoc/cp7/vpn0/brief 
       # fnsysctl cat /proc/fsoc/cp7/vpn0/registers 
       
       NOTE Der "fnsysctl" Befehl schreibt die CP6/CP7/CP8/SoC Statistik Informationen in die CLI Session.
            Einige der Kommandos werden nicht funktionieren (file does not exist) da diese Kommandos alle ASIC's 
            abdecken resp. überprüft. NP2/NP4/SP Hardware Offload Informationen sind nicht enthalten das diese 
            Informationen auf dem FortiGate Modell basiert (Einige haben ein Chip, andere Zwei oder auch Vier).

Nun Oeffne auf "Forti I" auf dem Client 10.1.1.1 ein DOS Box (cmd) und versuche den Client auf "Forti II" zu erreichen dh. 10.2.2.2!

       C:\> ping 10.2.2.2 

Sobald ersichtlich ist, dass der Ping den Client 10.2.2.2 auf "Forti II" nicht erreichen kann führe die Kommandos in der "ClI Session 4" auf Forti I und Forti II erneut aus:

       Oeffne eine CLI Session 4 (Capture IPSec Traffic) == 
       
       # get sys status 
       # get ro info ro dat 
       # fnsysctl ps 
       # diagnose vpn ike status summary 
       # diagnose vpn ike status detailed 
       # get vpn ipsec tunnel summary 
       # diagnose vpn tunnel stat 
       # diagnose vpn ike crypto stats 
       # diagnose vpn ipsec status 
       # diagnose vpn ike gateway list 
       # diagnose netlink interface list [Name der Phase 1 auf Forti II dh. toFGT1] 
       # diagnose vpn ike routes 
       # diagnose vpn tunnel list 
       # diagnose vpn ike errors 
       # diagnose vpn ike counts 
       # diagnose hardware deviceinfo nic [Physical Interface über dessen IPSec läuft dh. wan1]
       
       # fnsysctl cat /proc/net/ipsec0 
       # fnsysctl cat /proc/cp6kxp/kxp0/brief 
       # fnsysctl cat /proc/cp6kxp/kxp0/cmdq 
       # fnsysctl cat /proc/cp6kxp/kxp0/cmdqdis 
       # fnsysctl cat /proc/cp6kxp/kxp0/rng 
       # fnsysctl cat /proc/cp6kxp/kxp0/task 
       # fnsysctl cat /proc/cp7/vpn0/brief 
       # fnsysctl cat /proc/cp7/vpn0/registers 
       # fnsysctl cat /proc/cp8/vpn0/brief 
       # fnsysctl cat /proc/cp8/vpn0/registers 
       # fnsysctl cat /proc/fsoc/cp7/vpn0/brief 
       # fnsysctl cat /proc/fsoc/cp7/vpn0/registers 
       
       NOTE Diese Kommandos in "CLI Session 4" erstellen einen Snapshot bevor der ICMP ausgeführt wird sowie nachträglich.
            Das ist der Grund wieso die Kommands zweimal ausgeführt werden müssen.

Danach müssen alle "CLI Sessions" sauber abgespeichert werden sowie dem Support übermittelt werden. Mit diesen Informationen die vollumfänglich sind kann der Support eine tiefgreifenden Analyse durchführen!

Kann man mit Fortigate eine IPSec VPN Verbindungen (Site2Site) mit Fremdanbietern herstellen (Interoperability Device)?

Fortigate's folgen betreffend IPSec einem IPSec Standard und somit gegenüber Fremdanbietern (Interoperability Device's) Kompatibel. Die offenen Fragen die sich ergeben in solchen Situationen/Konfigurationen betreffen Hauptsächlich die Phase-1 und/oder 2. Dies bedeutet beide Seiten müssen über die gleiche Konfiguration verfügen. Nur so komunizieren die unterschiedlichen Device's einwandfrei. Zu diesen Fragen sollten die in der Phase-1 und/oder 2 verwendeten Konfigurationspunkte gehören. Nachfolgend ein Beispiel um welche Konfigurationspunkte es sich handelt:

       Fortinet-1165.jpg
       Fortinet-1166.jpg
       Fortinet-1167.jpg

Wenn die nötigen Informationen ausgetauscht sind, ist es Sinnvoll über bestimmte Sonderheiten betreffend dem Fremdanbieter kurz zu recherchieren. Folgende Seite von Fortinet gibt einige Hinweise über Fremdanbietern sowie gewissen Konfigurationspunkte. Dabei spielt jedoch Firmewarestand etc. event. eine Rolle;

       http://kb.fortinet.com/kb/microsites/microsite.do?cmd=displayKC&externalId=FD30603

Nach der Konfiguration ist es Sinnvoll die Phase-1 und/oder 2 näher über den Debugging Mode zu kontrollieren um event. Fehlermeldungen zu verhindern:

       NOTE Wenn es zu Problemen kommt sollte auf beiden Seiten ein Debug Mode ausgeführt werden. Nur in Kooperation kann die
            Konfiguration vervollständigt werden um einen zukünftig einwandfreien Betrieb zu gewährleisten!
       Fortigate:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
       Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F
       Fortigate:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Nachfolgend einige Informationen betreffend Fremdanbietern (Interoperability Device):

       IPSEC CISCO ASA <--> FORTIGATE:
       
       Datei:Configuring-IPsec-VPN-with-a-FortiGate-and-a-Cisco-ASA.pdf
       IPSEC ASTARO/SOPHOS V8 <--> FORTIGATE:
       
       http://www.sophos.com/de-de/support/knowledgebase/116130.aspx
       
       NOTE Unter Astaro/Sophos im Zusammenhang mit Fortigate muss die Encryption "3DES" benutzt werden ansonsten kommt 
            es zu Problemen (Error INVALID-MESSAGE-ID)! Der Grund liegt in der Implementierung von "AES" seitens Sophos.
       
        Astaro/Sophos Konfiguration
       
       Fortinet-777.jpg
       
        Fortigate Konfiguration
       
       Fortinet-778.jpg

Gibt es eine Möglichkeit mit einem IPhone/IPad über IPSec eine Verbindung aufzubauen zu einer Fortigate?

Grundsätzlich gibt es dieses Möglichkeit und nachfolgender Artikel zeigt die Konfigurationsmöglichkeit:

       Fortigate:FAQ#Gibt_es_f.C3.BCr_IPhone_und_Android_einen_SSL_VPN_Client.3F

Wie wird unter FortiOS 5.0 ein IPSec basierende Site2Site VPN Verbindung aufgebaut (Interface Based)?

In den nachfolgenden Schritten wird gezeigt wie eine Site2Site IPSec VPN Verbindung zwischen zwei Fortigate's konfiguriert wird. Für die Konfiguration gehen wir von folgender Situation aus:

        _________________________                  ___________                    __________                     ____________                  _________________________
       |                         |    192.168.2.99|           |212.59.153.114/29 |          |  193.193.135.66/29|            |192.168.1.99    |                         |
       | LAN Env. 192.168.2.0/24 |----- LAN ------| Forti I   |------ WAN1 ------| Internet |------ WAN 1 ------|  Forti II  |------ LAN -----| LAN Env. 192.168.1.0/24 |
       |_________________________|                |___________|                  |__________|                   |____________|                |_________________________|
       

Als Erstes konfigurieren wir die "Forti I" dh. erstelle zuerst eine IPSec Phase-1 und 2 für das IPSec basierende site2site VPN zur "Forti II":

       VPN > IPsec > AutoKey (IKE) > Create Phase 1
       
       Datei:Fortinet-143.jpg
       Datei:Fortinet-144.jpg
       
       NOTE Ab FortiOS 5.0.4 wird ein VPN in der Phase-1 automatisch "Interface Based" konfiguriert und nicht mehr "Policy Based".
            Der entsprechende Konfigurationspunkt im Web Mgmt. Interface "Enable IPSec Interface Mode" steht nicht mehr zur Verfügung. Dies 
            bedeutet im Hintergrund wird folgendes Kommando ausgeführt:
            
            # config vpn ipsec phase1-interface
            
            Grundsätzlich sollte kein IPSec VPN "Policy Based" mehr konfiguriert werden da diese Art von VPN's nicht beschleunigt wird.
            Ein "Interface Based" VPN wird per Standard beschleunigt (Acceleration). Wenn aus "Interoperability" Gründen eine "Policy 
            Based" Konfiguration durchgeführt werden soll zeigt nachfolgender Artikel die nötigen Konfigurations Schritte:
            
            Fortigate:FAQ#Wie_konfiguriere_ich_eine_IPSec_VPN_in_der_Phase-1.2F2_als_.22Policy_Based.22_VPN.3F

Erstelle nun auf der "Forti I" die Phase-1 für die "Forti II":

       VPN > IPsec > AutoKey (IKE) > Create Phase 2
       
       Datei:Fortinet-145.jpg
       Datei:Fortinet-146.jpg

Nun die "Forti II" hat einen LAN Segment von "192.168.1.0/24". Diese LAN Segment muss auf der "Forti I" bekannt gemacht werden dh. Routing Technisch so definiert werden, damit die "Forti I" weiss wohin dieser IP Range geroutet werden muss! Da dieser IP Range der "Forti II" über das entsprechende IPSec Interface auf der "Forti I" erreichbar ist, muss dieser IP Range anhand eines statischen Route Eintrages auf das entsprechende IPSec Interface auf der "Forti I" geroutet werden. Dieser statische Route Eintrag kommt der "Encryption Domain" gleich. Die Encryption Domain ist per Definition der Bereich der verschlüsselt/entschlüsselt werden soll. Wenn mehrere IP Ranges im Spiel sind ist dabei zu beachten, dass die Definiton korrekt sind dh. die Subnet's übereinstimmen! Erstelle deshalb auf der "Forti I" einen statische Route für "192.168.1.0/24":

       Router > Static > Static Route
       NOTE Dieser Menüpunkt steht unter FortiOS 5.0 nur zur Verfügung wenn der entsprechende Menüpunkt unter
            folgender Position aktiviert wurde:
            
            System > Config > Feature > Advanced Routing
            
            Danach muss kurz ausgeloggt sowie ein erneutes Login durchgeführt werden. Wurde das entsprechende
            Feature nicht aktiviert steht der Menüpunkt für das "Static Route" unter folgenden Punkt zur Verfügung:
            
            System > Network > Routing
       Datei:Fortinet-147.jpg
       Datei:Fortinet-148.jpg

Nun da es sich um einen neue Seite/Interface handelt auf der "Forti-I" kann für Policy Zwecken einen neue Zone erstellt werden:

       NOTE Ab FortiOS 5.0.3 kann in einer Firewall Policy mehrere Interfaces definiert werden was in den vorhergehenden
            Versionen nicht möglich war. Aus diesem Grund wurde oft mit Zonen gearbeitet. Da die Definition in der Firewall
            Policy von mehreren Interface ab FortiOS 5.0.3 möglich ist sind Zonen nicht mehr zu empfehlen da diese gegenüber 
            der Firewall Policy Abhängigkeiten schaffen
       System > Network > Interface > Create New > Zone
       
       Datei:Fortinet-149.jpg
       Datei:Fortinet-150.jpg

Die Zone ist nun bekannt jedoch benötigen wir noch die entsprechenden Firewall Policy Rules die den Traffic von oder zu "Forti-II" erlauben:

       NOTE Anstelle der Zone kann auch direkt das entsprechende VPN Interface in der Firewall Policy benutzt werden!
       Datei:Fortinet-151.jpg
       Datei:Fortinet-152.jpg
       Datei:Fortinet-153.jpg
       Datei:Fortinet-154.jpg

Diese Firewall Policy Rules erlauben sämtlichen Traffic "Von" und "Zur" Encryption Domain. Auch hier ist zu empfehlen den Traffic einzuschränken und die effektiven IP Ranges klar zu definieren da diese als Definition der "Encryption Domain" gelten. Es sollte dem Grunsatz gefolgt werden:

       Statischer Route Eintrag = Firewall Policy Destination

Die Konfiguration auf der "Forti-I" ist somit abgeschlossen. Führe auf der "Forti-II" exakt die gleiche Konfiguration durch wie für die "Forti-I" jedoch mit den entsprechenden Anpassungen des Segments. Danach kann ein Test ausgeführt werden. Bei diesem Test zB auf der Fortigate selber (über Console) ist zu berücksichtigen, dass wenn ein Ping abgesetzt wird sollte dieser mit der korrekten Source durchgeführt werden. Die Source in einem Ping kann folgendermassen ausgeführt werden:

       # exec ping-options source [IP der gewünschten Source zB LAN Interface .99]
       # exec ping [Destination LAN Env Forti-I oder Forti-II]

Wenn die Verbindung Probleme bereitet und ein Debug nötig wird so sollten folgende Artikel berücksichtigt werden:

       Fortigate:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
       Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F
       Fortigate:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Wenn der IPSec VPN Tunnel etabliert wurde jedoch der Traffic nicht auf der anderen Seite ankommt, muessen die Firewall Policy Rules angeschaut werden. Um zu sehen ob ein Packet abgesendet wird etc. kann der Sniffer benutzt werden. Anhand dieses Sniffer's kann jedes einzelne Interface überprüft werden ob der entsprechende Traffic das entsprechende Interface erreicht.

       # diagnose sniffer packet [Interface Name zB wan1 oder internal] icmp
       
       NOTE Weitere Informationen zur Verwendung der "sniffer" Funktion siehe nachfolgender Artikel:
            
            Fortigate:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F

Wie konfiguriere ich eine IPSec VPN in der Phase-1/2 als "Policy Based" VPN?

Bis FortiOS 5.0.3 konnte man in der Phase-1 den Konfigurations Punkt "Enable IPSec Interface Mode" aktivieren. Wurde dieser aktiviert, wurde die entsprechende Phase-1/2 als "Interface Baed" VPN konfiguriert. Wurde dieser Punkt nicht aktiviert so wurde die entsprechende Phase-1/2 als "Policy Based" VPN konfiguriert. Da der Punkt "Enable IPSec Interface Mode" nicht per Standard aktiviert war wurden VPN's bis FortiOS 5.0.3 per Standard als "Policy Based" VPN konfiguriert. Ab FortiOS 5.0.3 existiert dieser Konfigurationspunkt "Enable IPSec Interface Mode" nicht mehr. Ab FortiOS 5.0.3 wird bei der Konfiguration über das Web Mgmt. Interface einer Phase-1/2 automatisch folgender Befehl ausgeführt:

       config vpn ipsec phase1-interface

Somit ist der "Interface Mode" ab FortiOS 5.0.3 der Standard auf einer Fortigate. "Policy Based" VPN's sollten nicht mehr konfiguriert werden da diese Art der VPN's über keine Beschleunigung (Acceleration) verfügen. Es kann auf "Interoperability" (Fremdanbietern) Devices vorkommen, dass nur ein "Policy Based" VPN die Kompatiblität innerhalb eines VPN's gewährleistet. Ein "Policy Based" VPN wird im Web Mgmt. Interface innerhalb der Firewall Policy konfiguriert. Dieses Feature steht jedoch ab FortiOS 5.0.4 nur dann zur Verfügung, wenn dieses über folgende Position aktiviert wird:

       System > Config > Features > Show More > Policy-based IPsec VPN
       
       Fortinet-815.jpg

Wird das Feature aktiviert kann ein Policy Based VPN in der Firewall Policy konfiguriert werden:

       FortiOS 5.0
       Fortinet-1168.jpg
       FortiOS 5.2
       Fortinet-1169.jpg

Ueber Kommandozeile kann der "Policy Based" Mode folgendermassen konfiguriert werden:

       FortiOS 5.0
       # config vpn ipsec phase1
       # edit [Name der Phase1 Policy Based]
       # get
       name                : [Name der Phase1] 
       type                : static 
       interface           : 
       ip-version          : 4 
       ike-version         : 1 
       local-gw            : 0.0.0.0
       nattraversal        : enable 
       dhgrp               : 5 
       keylife             : 28800
       authmethod          : psk 
       peertype            : any 
       xauthtype           : disable 
       mode                : main 
       mode-cfg            : disable 
       proposal            : 3des-sha1 aes128-sha1 
       localid             : 
       localid-type        : auto 
       negotiate-timeout   : 30
       fragmentation       : enable 
       dpd                 : enable 
       forticlient-enforcement: disable 
       comments            : 
       npu-offload         : enable 
       remote-gw           : 0.0.0.0
       monitor             : 
       add-gw-route        : disable 
       psksecret           : *
       keepalive           : 10
       auto-negotiate      : enable 
       dpd-retrycount      : 3
       dpd-retryinterval   : 5
       
       # config vpn ipsec phase2
       # edit [Name der Phase1 Policy Based]
       # get
       name                : [Name der Phase2] 
       phase1name          : [Name der Phase1] 
       use-natip           : enable 
       selector-match      : auto 
       proposal            : 3des-sha1 aes128-sha1 
       pfs                 : enable 
       replay              : enable 
       keepalive           : disable 
       auto-negotiate      : disable 
       keylife-type        : seconds 
       encapsulation       : tunnel-mode 
       comments            : 
       dhgrp               : 5 
       keylifeseconds      : 1800
       FortiOS 5.2
       # config vpn ipsec phase1 
       # edit [Name der Phase1 Policy Based]
       # get
       name                : [Name der Phase1] 
       type                : static 
       interface           : 
       ike-version         : 1 
       local-gw            : 0.0.0.0
       nattraversal        : enable 
       keylife             : 86400
       authmethod          : psk 
       mode                : main 
       peertype            : any 
       autoconfig          : disable 
       proposal            : aes128-sha256 aes256-sha256 3des-sha256 aes128-sha1 aes256-sha1 3des-sha1 
       localid             : 
       localid-type        : auto 
       fragmentation       : enable 
       dpd                 : enable 
       forticlient-enforcement: disable 
       comments            : 
       npu-offload         : enable 
       dhgrp               : 14 5 
       wizard-type         : custom 
       xauthtype           : disable 
       mesh-selector-type  : disable 
       remote-gw           : 0.0.0.0
       psksecret           : *
       keepalive           : 10
       auto-negotiate      : enable 
       dpd-retrycount      : 3
       dpd-retryinterval   : 5
       
       # config vpn ipsec phase2
       # edit [Name der Phase1 Policy Based]
       # get
       name                : [Name der Phase2] 
       phase1name          : [Name der Phase1]
       use-natip           : enable 
       selector-match      : auto 
       proposal            : aes128-sha1 aes256-sha1 3des-sha1 aes128-sha256 aes256-sha256 3des-sha256 
       pfs                 : enable 
       dhgrp               : 14 5 
       replay              : enable 
       keepalive           : disable 
       auto-negotiate      : disable 
       keylife-type        : seconds 
       encapsulation       : tunnel-mode 
       comments            : 
       keylifeseconds      : 43200

Wenn ein "Policy Based" VPN konfiguriert wird stellt sich die Frage, auf welches Interface muss das IP Segment, dass erreicht werden soll über das "Policy Based" VPN, geroutet werden? Da in einem "Policy Based" VPN kein Interface zur Verfügung steht wie im "Interface Mode" muesste das entsprechende IP Segment auf den Default Gateway geroutet werden!

Wie implementiere ich für ein IPSec VPN ein NAT (Source/Destination) für "Overlapping Encryption Domain)?

Wenn ein IPSec zwischen zwei Fortigate's konfiguriert wird ist zu beachten, dass auf beiden Seiten unterschiedliche IP Sgemente existieren. Dies bedeutet: Beide Fortigates dürfen in deren IP Sgementen nicht den gleichen IP Range/Subnet benutzen. Ist dies der Fall spricht man von einer "Overlapping Encryption Domain". In so einer Situation kann/muss ein Source/Destination NAT implementiert werden. Nachfolgendes Beispiel zeigt eine Situation auf, in der auf beiden Seiten das gleiceh IP Segment existiert 192.168.1.0/24:

        _________________________                  ___________                    __________                     ____________                  _________________________
       |                         |    192.168.1.99|           |212.59.153.114/29 |          |  193.193.135.66/29|            |192.168.1.99    |                         |
       | LAN Env. 192.168.1.0/24 |----- LAN ------| Forti-I   |------ WAN1 ------| Internet |------ WAN 1 ------|  Forti-II  |------ LAN -----| LAN Env. 192.168.1.0/24 |
       |_________________________|                |___________|                  |__________|                   |____________|                |_________________________|
       

Die nachfolgende Konfiguration zeigt auf, wie auf der Seite von "Forti-I" aussehen würde. Da "Forti-I" als Destination für "Forti-II" nicht 192.168.1.0/24 benützen kann muss ein IP Range definiert werden. Dieser IP Range muss mit Forti-II abgesprochen werden, denn dieser darf ebenfalls nicht auf "Forti-II" existieren. Die Ausgangslage ist folgende:

       Overlapping Encryption Domain Forti-I --> Forti-II:
       
       Source:       192.168.1.0/24
       Destination:  192.168.1.0/24
       Source/Destination NAT Forti-I <--> Forti-II:
       
       Source:       192.168.1.0/24 (Source NAT 10.10.10.0/24)
       Destination:  192.168.1.0/24 (Destination 192.168.100.0/24)
       
       Source/Destination NAT Forti-II <--> Forti-I:
       
       Source:       192.168.1.0/24 (Source NAT 192.168.100.0/24)
       Destination:  192.168.1.0/24 (Destination 10.10.10.0/24)
       NOTE Bei der Konfiguration von Source/Destination NAT ist folgendes betreffend NAT/Routing zu berücksichtigen:
            
            Es gilt = "NAT vor Routing"

Nachfolgend die Konfiguration der Outgoing Firewall Policy Rule für "Forti-I" in der die Source translated wird auf 10.10.10.0/24 und als Destination für "Forti-II" 192.168.100.0/24 benutzt:

       Outgoing Forti-I --> Forti-II
       **********************************
       
       Source                     Destination
       192.168.1.0/24             192.168.100.0/24
       
       NOTE Auf der Fortigate innerhalb einer Firewall Policy wird exakt diese Rule für das IPSec VPN konfiguriert. Dabei
            muss auf der "Forti-I" beachtet werden, dass der IP Range/Subnet "192.168.100.0/24" der benutzt wird durch die
            User auf der "Forti-I" um die Destinationen auf der "Forti-II" zu erreichen im Netz der "Forti-I" zur Fortigate
            geroutet wird. Gleichzeitig muss der IP Range den wir benutzen für die Destintion auf das IPSec der "Forti-II"
            geroutet werden. In dieser Firewall Policy wird "Source NAT" aktiviert und der IP Range/Subnet 192.168.1.0/24
            translated 1:1 NAT anhand des IP Range/Subnet 10.10.10.0/24!
       
       Aktiviere Central NAT Table
       
       System > Config > Features > Show More > Central NAT Table
       
       Fortinet-1170.jpg
       
       Destination Routing IPSec Forti-II
       
       Fortinet-1171.jpg
       
       Fortinet-1172.jpg
       
       Erstellen des Source NAT Objekts (VIP IP-Pool)
       
       FortiOS 5.0
       Firewall Objects > Virtual IP > IP Pools > Create New
       
       FortiOS 5.2
       Policy & Objects > Objects > IP Pools > Create New
       
       Fortinet-1173.jpg
       
       Fortinet-1174.jpg
       
       Erstellen der Adress Objekte für Forti-I/II
       
       FortiOS 5.0
       Firewall Objects > Address > Address > Create New
       
       FortiOS 5.2
       Policy & Objects > Objects > Addresses > Create New
       
       Fortinet-1175.jpg
       
       Fortinet-1176.jpg
       
       Fortinet-1175.jpg
       
       Fortinet-1177.jpg
       
       Konfiguration des Source NAT in der Central NAT Table
       
       Policy & Objects > Policy > Central NAT Table > Create New
       
       Fortinet-1178.jpg
       
       Fortinet-1179.jpg
       
       Konfiguration der Firewall Policy Outgoing (Forti-I --> Forti-II)
       
       FortiOS 5.0
       Policy > Policy > Policy > Create New
       
       FortiOS 5.2
       Policy > Policy > IPv4 > Create New
       
       Fortinet-1180.jpg
       
       Fortinet-1181.jpg

Nachfolgend die Konfiguration der Incoming Firewall Policy Rule für "Forti-I" in der die Destination 10.10.10.0/24 -die durch "Forti-II" benutzt wird- translated wird auf 192.168.1.0/24 und "Forti-II" als Source 192.168.100.0/24 benutzt:

       Incoming Forti-II --> Forti-I
       **********************************
       
       Source                     Destination
       192.168.100.0/24           10.10.10.0/24 (vip)
       
       NOTE Auf der Fortigate innerhalb einer Firewall Policy wird exakt diese Rule für das IPSec VPN konfiguriert. 
            In dieser Firewall Policy wird "Destination NAT" 1:1 NAT konfiguriert dh. anhand eines VIP Objektes auf dem 
            Destination Interface "Forti-II"!
       
       Erstellen des Destination NAT Objekts (VIP)
       
       FortiOS 5.0
       Firewall Objects > Virtual IP > Virtual IPs > Create New
       
       FortiOS 5.2
       Policy & Objects > Objects > Virtual IPs > Create New
       
       Fortinet-1182.jpg
       
       Fortinet-1183.jpg
       
       Konfiguration der Firewall Policy Incoming (Forti-II --> Forti-I)
       
       FortiOS 5.0
       Policy > Policy > Policy > Create New
       
       FortiOS 5.2
       Policy > Policy > IPv4 > Create New
       
       Fortinet-1180.jpg
       
       Fortinet-1184.jpg

Die Konfiguration auf der "Forti-I" ist nun abgeschlossen. Nun muss auf der "Forti-II" exakt die gleiche Konfiguration durchgeführt werden jedoch mit der umgekehrten Konstellation! Wenn die Konfiguration mehrmals geändert wird durch zB Troubleshooting sollte das IPSec komplett neu gestartet werden. Nähere Informationen dazu siehe nachfolgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Gibt es eine Doku die zeigt wie man L2TP IPSec auf Windows konfiguriert?

Folgendes Dokument gibt Auskunft über die nötige Konfiguration einer L2TP IPSec Konfiguration unter Windows für FortiOS 4.0 MR3:

       Datei:Technical Note+ L2TP Windows7 IPSEC.pdf
       Datei:Configuring-a-FortiGate-unit-as-an-L2TP-IPsec-server.pdf
       
       NOTE Dieses Dokument stammt aus dem folgenden Knowledge Base Artikel:
            
            http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33431&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=50115989&stateId=0 0 50117406

Wie konfiguriere ich für einen VPN Tunnel Site2Site ein "netbios forward"?

Ein "netbios forward" wird per Standard über einen VPN Tunnel verhindert (block). Wenn jedoch zB eine "Active Directory" Replizierung benutzt wird in einem VPN Tunnel muss "netbios foward" erlaubt werden. Wie das auf einem Interface konfiguriert wird zeigt nachfolgender Artikel:

       Fortigate:FAQ#Eine_.22Active_Directory.22_Replizierung_funktioniert_nicht_.C3.BCber_ein_VPN_Tunnel_.28netbios_forward.29.3F

Windows 7 L2TP IPSec Implementierung/Fehlermeldung "Security layer encountered a processing error during initial negotiations"?

Wenn eine L2TP IPSec Implementierung durchgführt wird und mit Windows 7 L2TP versucht wird zuzugreiffen kommt es zu einer Fehlermeldung auf Windows 7:

       security layer encountered a processing error during initial negotiations

Der Grund dafür ist die Phase 2 dh. Windows 7 überprüft in der Phase 2 die "lifetime proposal" und wenn diese nicht übereinstimmt wird diese Fehlemeldung ausgegeben! Auf der Seite von Windows 7 ist diese "lifetime proposal" folgendermassen konfiguriert:

       3600s/250000kbps

Um die Fortigate diesem Umstand anzupassen führe folgendes durch:

       # config vpn ipsec phase2
       # edit "[Name der Phase 2]"
       # set keylife-type both
       # set keylifekbs 250000
       # set keylifeseconds 3600
       # next
       # end

Wie kann ich kontrollieren ob eine VPN Verbindung die Hardware (CP / NP) für das Offloading (encrypt/decrypt) benutzt?

Wenn eine VPN Verbindung konfiguriert wird steht die Frage im Raum "ob die Verbindung resp. decrypt/encrypt (Offloding)" über die Hardware (ASIC CP) läuft oder über die Software? Je nachdem wie die FortiGate ausgelastet ist steht hier optimierungs (tuning) Potential zur Verfügung. Ob die Hardware Acceleration benutzt wird oder nicht kommt auf die verwendete Verschlüsselung drauf an sowie auf den Peer gegenüber (Interoperability Device). Je nachdem kann die Versclüsselung geändert werden (auf beiden Seiten) um eine bessere Performance auf der entsprechenden FortiGate zu erreichen. Um festzustellen ob die Hardware (ASIC CP) oder die Software benutzt wird kann folgender Befehl abgesetzt werden:

       NOTE Je nach FortiGate Device gestaltet sich die Darstellung anderst dh. neuere
            Versionen des CP Prozessors oder zusätzliche NP Prozessoren. Wichtig dabei ist
            das die entsprechenden Einträge unter dem Abschnitt CP und/oder NP erscheinen.
            Dies ist eine Bestätigung das der ASIC Prozessor das Offloading übernimmt und 
            nicht die Software! Nachfolgender Output stammt von einer 80C:
       
       # diag vpn ipsec status  
       All ipsec crypto devices in use:  
       CP6          
       null:   0       0          
       des:    0       0          
       3des:   0       0          
       aes:    11342694        118453159          
       null:   0       0         
       md5:    0       0          
       sha1:   11342694        118453159          
       sha256: 0       0          
       sha384: 0       0          
       sha512: 0       0  
       
       SOFTWARE:          
       null:   0       0          
       des:    0       0          
       3des:   0       0          
       aes:    0       0          
       null:   0       0          
       md5:    0       0          
       sha1:   0       0          
       sha256: 0       0          
       sha384: 0       0          
       sha512: 0       0

Auf was muss ich achten wenn ein Site2Site VPN konfiguriert wurde und der IPSEC Tunnel immer aktiv bleiben soll?

Wenn ein Site2Site VPN konfiguriert wird so wird per Standard Phase1 und 2 nur dann abgearbeitet und der Tunnel aktiv, wenn durch den Tunnel Traffic transportiert werden soll. Dies bedeutet der Tunnel wir aktiv wenn Traffic produziert wird zwischen den Sites. Wenn der Tunnel nicht oft genutzt wird, ist diese Konfiguration zu belassen. Wird der Tunnel oft genutzt ist es besser den Tunnel "immer" aktiv zu halten da ansonsten jedesmal Phase1 und 2 initiert werden müssen. Wenn der Tunnel "immer" aktiv ist, werden mehr Resourcen auf der FortiGate benützt um den Tunnel resp. event. "die" Tunnel von verschiedenen Sites aktiv zu halten. Aus diesem Grund ist die Entscheidung ob ein Tunnel "immer" aktiv ist oder nicht ein Ueberlegung ob ein Tunnel oft benutzt wird oder nur Gelegentlich und/oder ob die nötigen Resourcen für mehrere aktive Tunnels auf der FortiGate zur Verfügung stehen. Wenn die Entscheidung getroffen wurde den Tunnel "immer" aktiv zu halten ist darauf zu achten das folgende zwei Optionen in der Phase2 aktiviert wurden:

       VPN > IPsec > [Wähle die Phase2 des entsprechenden VPN] > Advanced
       
       Autokey Keep Alive
       Auto-negotiate

Diese zwei Optionen stehen über Web Mgmt. Interface in der Phase2 unter FortiOS 5 unter Advanced zu verfügung und müssen aktiviert werden. Unter FortiOS 4 steht über das Web Mgmt. Interface nur die Option "Auto-Negotiate" zur Verfügung und "Autokey Keep Alive" steht nur über Kommandozeile zur Verfügung und zwar über folgende Position:

       # config vpn ipsec phase2-interface
       # edit [Name der Phase2]
       # set auto-negotiate enable
       # set keepalive enable
       # end
       
       NOTE Wird ein Policy Based VPN benutzt muss folgender Befehl benutzt werden:
            
            # config vpn ipsec phase2

Diese Optionen stehen zum Teil ebenfalls auf Interoperability Devices (Fremdprodukte) zur Verfügung und müssen auf diesen Devices auch aktiviert werden! Nachdem die Konfiguration durchgeführt wurde muss der VPN Tunnel neu gestartet werden (Achtung es entsteht ein Unterbruch):

       Fortigate:FAQ#Wie_kann_ich_einen_IPSEC_VPN_Tunnel_Manuell_Stoppen_und_Starten.3F

FortiClient

Welche Versionen von FortiClient gibt es und wie unterscheiden sich diese?

Der Forticlient ist die Software basierende Lösung von Fortinet für Client2Site VPN. Dabei unterscheiden wir:

       FortiOS V4.0 MR3
       
       Forticlient Lite         SSL VPN; Kostenlos
       Forticlient              SSL VPN; IPSec; Kostenlos (Siehe nachfolgende Tabelle)
       Forticlient Premium      SSL VPN; IPSec (Siehe nachfolgende Tabelle)
       
       Datei:Fortinet-67.jpg

Eine weitere Uebersicht im Gesamten bietet folgende Tabelle:

       Datei:Fortinet-329.jpg

Für FortiOS 5.0 gilt folgendes:

       FortiOS V5.0
       
       Grundsätzlich kann jede Variante des Client eingesetzt werden "free of charge". Die Limitierung umfasst
       den "manageable" Client (Früher Premium) dh. der Antivirus, IPS etc. umfasst. Dieser Client der nun neu
       "FortiClient Endpoint Security" heiss kann auf jedem Device mit max. 10 User eingesetzt werden Benötigt 
       man mehr User Verbindungen muss eine einmalige Lizenz gekauft werden (None Stackable):
       
       Fortinet-335.jpg
       
       Der FortiClient FortiOS 5.0 verfügt über folgende Features (Uebersicht der vers. Betriebssysteme):
       
       Fortinet-811.jpg

Für FortiOS 5.2 gilt folgendes:

       FortiOS V5.2
       
       Grundsätzlich kann jede Variante des Client eingesetzt werden "free of charge". Die Limitierung umfasst
       den "manageable" Client (Früher Premium) dh. einzelne UTM Features etc. umfasst. Dieser Client der nun neu
       "FortiClient Endpoint Security" heiss kann auf jedem Device mit max. 10 User eingesetzt werden Benötigt 
       man mehr User Verbindungen muss eine einmalige Lizenz gekauft werden (None Stackable):
       
       Fortinet-1098.jpg
       
       Der FortiClient FortiOS 5.2 verfügt über folgende Features:
       
       Fortinet-1099.jpg

Nachfolgend ein FAQ Dokument das Aufschluss gibt über verschiedene Fragen:

       Datei:FortiClient 5.0 FAQ.pdf
       Datei:FortiClient 5.2 FAQ.pdf
       
       Nachfolgend eine Präsentation die auf die verschiedenen Features eingeht sowie die Unteschiede aufzeigt
       zwischen V4.3 sowie der neuen V5.0:
       
       Datei:FortiClient-V5-R5.pptx
       Datei:FortiClient-5.0.5-Sales Presentation.pptx
       
       Nachfolgend ein FortiClient v5.0 Upgrade Guide den es sich lohnt reinzuschauen:
       
       Datei:FortiClient-5.0-Upgrade-Guide.pdf
       
       Die Software des "FortiClient Endpoint Security" kann über folgende Seite für die vers. Betriebssystem
       wie Windows, MacOSx, IOS, Android runtergeladen werden:
       
       http://www.forticlient.com

Um welche Version des FortiClient handelt es sich wenn ich diesen über das Mgmt. Web Interface der FortiGate runterlade?

Wenn man unter FortiOS 5.0.5 oder höher (ink.. 5.2) den FortiGuard Service aktiviert resp. dieser erreichbar ist, kann der FortiClient über das Dashboard der FortiGate direkt runtergeladen werden:

       System > Dashboard > Status > License Information > FortiClient Software > [Wähle Mac und/oder Windows)

Diese Version ist eine Online Version und wird direkt aus dem FortiDistribution Service geladen. Sprich die Version die hier geladen wird ist basierend auf dem "FortiClientOnlineInstaller". Dies bedeutet der "FortiClientOnlineInstaller" ist ein .exe File das benutzt wird um das effektive Package aus der Cloud (Fortinet Distribution Service) runterzuladen. Dieses Package das runtergeladen wird steht als Ganzes nicht zur Verfügung und kann nur über den "FortiClientOnlineInstaller" runtergeladen werden (ftp://support.fortinet.com/FortiClient/Windows/v5.00/5.0/5.0.7/):

         NOTE Dieser Link ist nicht direkt zugänglich dh. um zu diesen Links zu gelangen logge dich auf
              https://support.fortinet.com ein und wähle im unteren Bereich "Firmware Images". Danach im 
              Scrollbalken wähle "FortiClient" danach gehe auf den "Download Button". Nun wähle das entsprechende
              Betriebssystem zB "Windows" usw.

Sieht man sich die Release Notes zB der Version 5.0.7/5.2 genauer an so fällt einem folgendes auf:

       In den Release Notes wird folgendes File beschrieben:
       
       • FortiClientOnlineInstaller_5.0.7.0333: Minimal installer for 32-bit and 64-bit Windows. This
         file downloads and installs the latest FortiClient file from the public FDS.
       
       • FortiClientOnlineInstaller_5.2.0.0591: Minimal installer for 32bit and and 64-bit Windows.

Dabei handelt es sich genau um das File das über den FortiDistribution Service. Bei diesem File handelt es sich um ein "Minimal installer" oder besser gesagt "VPN only" Installation File. Nichts desto trotz empfehlen wir die übliche Vorgehensweise für die Installation dh. manueller Download über offizielle Download Seite (Login wird benötigt):

       https://support.fortinet.com/Download/FirmwareImages.aspx 
         FortiOS 5.0
       • FortiClientSetup_5.0.7.0333.exe: Standard installer for 32-bit Windows.
       • FortiClientSetup_5.0.7.0333.zip: A zip package containing FortiClient.msi and language
         transforms for 32-bit Windows. Some properties of the MSI package can be customized
         with FortiClient Configurator tool.
         
       • FortiClientSetup_5.0.7.0333_x64.exe: Standard installer for 64-bit Windows.
       • FortiClientSetup_5.0.7.0333_x64.zip: A zip package containing FortiClient.msi and language
         transforms for 64-bit Windows. Some properties of the MSI package can be customized
         with FortiClient Configurator tool.
         
       • FortiClientTools_5.0.7.0333.zip: A zip package containing miscellaneous tools including the
         FortiClient Configurator tool and VPN Automation files.
         FortiOS 5.2
       • FortiClientSetup_5.2.0.0591.exe : Standard installer for Microsoft Windows (32-bit).
       
       • FortiClientSetup_5.2.0.0591.zip : A zip package containing FortiClient.msi and language transforms for Microsoft Windows
         (32-bit). Some properties of the MSI package can be customized with FortiClient Configurator tool.
       
       • FortiClientSetup_5.2.0.0591_x64.exe: Standard installer for Microsoft Windows (64-bit).
       
       • FortiClientSetup_5.2.0.0591_x64.zip: A zip package containing FortiClient.msi and language transforms for Microsoft Windows
         (64-bit). Some properties of the MSI package can be customized with FortiClient Configurator tool.
       
       • FortiClientTools_5.2.0.0591.zip: A zip package containing miscellaneous tools including the FortiClient Configurator tool and
         VPN Automation files.
       
         NOTE Neu kann der FortiClient 5.2 im Setup als "VPN-Only" ausgeführt werden dies bedeutet wenn "VPN-Only" benötigt
              wird unter FortiClient 5.2 kann dies direkt über das "Setup" bewerkstelligt werden. Somit muss der FortiClient
              5.2 für "VPN-Only" nicht mehr anhand der Licens Packetiert werden. Im Setup stehen zwei Optionen zur Verfügung: 
              
              - Alle Endpoint Security und VPN Komponenten werden installiert
              - VPN Only wird installiert (IPSec/SSL)

Soll der FortiClient 5.0.x sowie 5.2 dennoch Packetiert werden kann dies anhand des Packets "FortiClientTools" durchgeführt werden. Weitere Informationen siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F

Nachträglich kann der Client sofern gewünscht anhand des folgenden Artikels "customized" werden:

       Fortigate:FAQ#Kann_ich_die_Konfiguration_des_FortiClient_.22vorkonfigurieren.22_und_zur_Verf.C3.BCgung_stellen_.28Distribution.29.3F

Danach kann dem Enduser ein vollständiges File zur Verfügung gestellt werden, dass dieser manuell installieren kann oder über GroupPolicy verteilen kann.

Wie wird ein IPSec basierende Client2Site VPN aufgebaut anhand des "Easy to use" Forticlient Wizards?

Nachfolgende Dokumentation gibt Auskunft wie ein Client2Site VPN aufgebaut wird anhand des "Easy to use" Forticlient Wizards. Dieses VPN ist ausschliesslich für den Forticlient. In unserem Beispiel gehen wir davon aus, dass eine Fortigate über folgende Konstellation verfügt (Factory Defaults):

                         ____________                  _________________________
       193.193.135.66/29|            | 192.168.1.99   |                         |
       ----- WAN 1 -----|  Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
                        |____________|                |_________________________|
       
       - Ordnungsgesetzer "Hostname" (meridian)
       - Korrekt arbeitende DNS Server (212.59.153.125, 193.193.136.194)
       - Funktionierendes Routing (Gateway 193.193.135.65)

Als Erstes erfassen einen User und eine Gruppe inder der neu erstellte User Mitglied ist:

       Fortinet-68.jpg
       Fortinet-69.jpg
       Fortinet-70.jpg
       Fortinet-71.jpg

Nun führe den "Esasy to use" Wizard für den Forticlient aus. Dabei ist zu beachten, dass ein IP Range erfasst werden muss der den IP-Pool darstellt. Dies bedeutet, wenn ein Forticlient korrekt authentifiziert wird im über die Fortigate eine IP aus diesem IP-Pool zugewiesen. Dieser IP-Pool wird auch Office-Pool genannt und wird auf dem Internal Network konfiguriert. Dies geschieht jedoch durch den "Easy to use" Wizard und bedarf keiner zusätzlichen Konfiguration. Durch den "Easy to use" Wizard wird nur die Phase 1 konfiguriert dh. die Phase 2 muss zusätzlich konfiguriert werden sowie die Phase 1 deklariert werden:

       ACHTUNG Bei der Vergabe des Phase 1 und 2 Namens vergebe keinen Namen mit mehr als 10 Zeichen zB "FC-Phase1"!
       
       Datei:Fortinet-72.jpg
       
       NOTE Ab FortiOS 5.0.4 gibt es neu einen Step by Step Wizard:
                  
                  Dial Up - FortiClient Windows, Mac and Android
                  
                  Fortinet-798.jpg
                  
                  Fortinet-799.jpg
                  
                  Fortinet-800.jpg
                  
                  NOTE Der "Address Range" stellt den IP Pool dar dh. die IP Adressen die der/die Clients erhalten nach einer
                       erfolgreichen Authentifizierung. Wenn die "Endpoint Registration" aktiviert wird so zählt der Client 
                       betreffend Managebarkeit sprich der Client registriert sich auf der FortiGate und kann von dieser
                       betreffend Konfiguration gemanaged werden (10 Clients Free of Charge).
                  
                  Fortinet-801.jpg
                  
                  Danach ergiebt sich durch den "Step by Step Wizard" folgende Phase1:
                   
                  Fortinet-802.jpg
                  
                  Danach ergiebt sich durch den "Step by Step Wizard" folgende Phase2:
                  
                  Fortinet-803.jpg
                  
                  Dial Up - IPhone / IPad Native IPsec Client
                  
                  Die Konfiguration für IPhone und/oder IPad Native IPsec Client wird durch den Wizard exakt genau gleich
                  durchgeführt wie vorhergehend aufgezeigt. Die Unterschiede liegen in der "encryption" P1 Proposal sowie 
                  in der "DH Group".
                  
                  Fortinet-804.jpg
                  
                  Fortinet-805.jpg
       Datei:Fortinet-73.jpg
       NOTE: Ab MR3 Patch 7 muss keine Phase 2 mehr erstellt werden da diese durch den Wizard automatisch erstellt wird!
       
       Datei:Fortinet-74.jpg
       Datei:Fortinet-75.jpg

Nun erstelle für den Office-IP-Pool ein Adress Objekt:

       Datei:Fortinet-78.jpg
       Datei:Fortinet-79.jpg

Als nächstes erstelle die nötigen Security Policy's. Beachte dabei das die Policy am richtigen Ort zu erstellen dh. verschiebe diese event. nach oben. Es gilt betreffend Policy Rule Abarbeitung Top-To-Down:

       Datei:Fortinet-76.jpg
       Datei:Fortinet-77.jpg
       Datei:Fortinet-76.jpg
       Datei:Fortinet-80.jpg
       
       NOTE Die Definition der Destination stellt die Encryption Domain dar dh. soll diese Restriktiv konfiguriert werden lege
            ein entsprechendes "Adress Objekt" an. Dadurch wird dem Client diese Definition als Encryption Domain durchgegeben!

Installiere nun den Forticlient (ftp://support.fortinet.com/FortiClient/ ) und teste die Verbindung vom WAN1 Interface (Vergebe dem Client zB 193.193.135.65/48) mit folgenden Einstellungen auf dem Forticlient:

       Datei:Fortinet-81.jpg

Um die VPN Verbindung zu troubleshooting kann über die Console folgendes ausgeführt werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application ike -1
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable

Nun führe die Verbindung aus und achte auf den Output in der Console!

Wenn man den Forticlient benützt hätte man die Möglichkeit das VPN auch über SSL zu benutzen sowie das SSL basierende Portal. Führe dazu folgende Konfiguration aus:

       Fortigate:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
       IPSec basierendes VPN anhand Forticlient
       SSL-VPN basierendes VPN anhand Forticlient
       HTTPS basierendes SSL-VPN Portal anhand Browser

Somit entsteht eine extreme flexibilität und man überlässt dem User mit gerinsten Mitteln WELCHE Lösung im Moment er benutzen möchte. Will man diese Flexibilität nicht so ist die SSL-VPN Variante vorzuziehen da diese mit geringsten Aufwand seitens Fortigate und Client/Workstation zu erstellen ist.

Kann ich die Konfiguration des FortiClient "vorkonfigurieren" und zur Verfügung stellen (Distribution)?

Dies ist möglich und wird anhand eines "xml" Files durchgeführt. Dieses "xml" File kann über die FortiGate zur Verfügung gestellt werden (bis 100D 10 User inkl.; zusätzliche User müssen lizensiert werden). Nachfolgendes Dokument gibt Ausfkunft über die vers. Konfigurations Möglichkeiten im diesem "xml" File:

       Datei:Forticlient-xml-ref-50.pdf
       Datei:Forticlient-xml-ref-504.pdf
       Datei:Forticlient-xml-ref-505.pdf
       Datei:Forticlient-xml-ref-506.pdf
       Datei:Forticlient-xml-ref-507.pdf

Nachfolgend die "Administration Guide" des FortiClient für FortiOS 5.0/5.2:

       FortiOS 5.0
       Datei:Forticlient-admin-503.pdf           (Für Windows und Mac OSX)
       Datei:Forticlient-admin-505.pdf           (Für Windows und Mac OSX)
       Datei:Forticlient-admin-506.pdf           (Für Windows und Mac OSX)
       Datei:Forticlient-admin-507.pdf           (Für Windows und Mac OSX)
       FortiOS 5.2
       Datei:Forticlient-admin-520.pdf           (Für Windows und Mac OSX)

Wie aktiviere ich eine FortiClient Endpoint Security License (License File)?

Wenn man eine FortiClient Endpoint Security License ordered (Abhängig von der Art des Devices resp. Grösse) wird ein License Zertificat zugestellt (File). Diese Licesne Zertifikat beinhaltet einen "Activation Code" und sieht folgendermassen aus:

       Fortinet-845.jpg
       
       NOTE Informationen betreffend den Versionen des FortiClient Endpoint Security (FortiOS 5) und dessen
            Lizenzen findet man unter folgenden Artikel:
            
            Fortigate:FAQ#Welche_Versionen_von_FortiClient_gibt_es_und_wie_unterscheiden_sich_diese.3F

Dieser Activation Code muss auf der entsprechenden FortiGate unter folgender Position eingegeben werden:

       - Erstelle eine Verbindung auf das Mgmt. Gui der entsprechenden FortiGate.
       - Unter folgender Position (FortiOS 5.0.2 oder höher) gebe den entsprechenden Activation Code ein:
         
         System > Dashboard > Status > License Information
         
         Fortinet-846.jpg
         
         NOTE Die FortiGate auf der der Activation Code eingegeben wird MUSS über Internet Verbindung resp. 
              Verbindung (Port 53 oder 8888) in die FortiCloud verfügen da in der FortiCloud eine Verfizierung
              des Activation Code durchgeführt wird!
       
       - Nach der erfolgreichen Aktivierung kann das entsprechende License File über den Support Account in der
         die FortiGate mit Ihrer Serien Nummer registriert ist heruntergeladen werden. Logge dich zu diesem Zweck
         im entsprechenden Support Account ein und wähle Menüpunkt "Manage/View Products". Danach wähle den 
         entsprechenden Device (Serien Nummer) und nun kann das License File heruntergeladen werden!

Wie kann ich ein FortiClient Endpoint Security Software Package mit VPN (IPSec/SSL-VPN) only erstellen?

Unter FortiOS 5.0 ist der FortiClient Endpoint Security ein Software Package das etliche Funktionen enthält dh. IPSec, SSL-VPN, Antivirus, Firewall, URL WebFilter, IPS usw. Möchte man den FortiClient Endpoint Security mit den Funktionen im Gesamten dh. Antivirus, Firewall usw. nutzen, muss dieser Lizensiert werden (10 User free) da dieser FortiClient Endpoint Security mit seinen Funktionen über die FortiGate verwaltet wird. Zusätzliche User müssen lizensiert werden. Weitere Informationen dazu siehe folgender Artikel Abschnitt FortiOS 5:

      Fortigate:FAQ#Welche_Versionen_von_FortiClient_gibt_es_und_wie_unterscheiden_sich_diese.3F

Möchte man nun diesen FortiClient Endpoint Security zwar nutzen jedoch "nur" mit seiner IPSec und/oder VPN-SSL Funktion kann zwar das "orginale" Package installiert werden um nachträglich alle anderen Features zu deaktivieren, jedoch ist das nicht ein zu empfehlender/gangbarer Weg. Somit steht man vor der Aufgabe das orginale Software Package so zu manipulieren das Schlussendlich nur noch die gewünschten Funktionen für eine Installation zur Verfügung stehen dh IPSec und/oder VPN-SSL. Dieses beiden Funktionen IPSec und/oder VPN-SSL müssen nicht lizensiert werden und stehen ohne Limitierunge vollumfänglich auf einer FortiGate zur Verfügung. Um das orginale Software Package zu modifizieren kann folgendes durchgeführt werden:

      NOTE Neu kann der FortiClient 5.2 im Setup als "VPN-Only" ausgeführt werden dies bedeutet wenn "VPN-Only" benötigt
           wird unter FortiClient 5.2 kann dies direkt über das "Setup" bewerkstelligt werden. Somit muss der FortiClient
           5.2 für "VPN-Only" nicht mehr anhand der Licens Packetiert werden. Im Setup stehen zwei Optionen zur Verfügung: 
           
           - Alle Endpoint Security und VPN Komponenten werden installiert
           - VPN Only wird installiert (IPSec/SSL)
           
           Soll der FortiClient dennoch anhand des Packages "FortiClientTools" Packetiert werden so muss man berücksichtigen,
           das die FortiOS 5.0 License - die für das Packetierung nötig ist - nicht mehr gültig ist. 
       • Freeware Tool für Packetierung zB Orca (Funktioniert ohne Lizenz eines FortiClient Endpoint Security)
       • FortiClientTools für die Packetierung (Funktioniert nur mit einer entsprechenden Lizenz)
       Freeware Tool "Orca" (MSI Table Editor)
       
       - Lade das Tool "Orca" von folgenden Link herunter: http://www.softpedia.com/get/Authoring-tools/Setup-creators/Orca.shtml
       
       - Danach installiere "Orca.msi" (Typical) und starte das Tool!
       
       - Lade die entsprechenden orginal FortiClient Endpoint Security Package herunter (Beispiel: Link FortiClient Endpoint Security 5.0.5):
       
         ftp://support.fortinet.com/FortiClient/Windows/v5.00/5.0/5.0.5/FortiClientSetup_5.0.5.0308_x64.zip
         ftp://support.fortinet.com/FortiClient/Windows/v5.00/5.0/5.0.5/FortiClientSetup_5.0.5.0308.zip
         
         NOTE Diese Links sind nicht mehr direkt zugänglich dh. um zu diesen Links zu gelangen logge dich auf
              https://support.fortinet.com ein und wähle im unteren Bereich "Firmware Images". Danach im 
              Scrollbalken wähle "FortiClient" danach gehe auf den "Download Button". Nun wähle das entsprechende
              Betriebssystem zB "Windows" usw.
       
       - Entpacke nun die zip Files in ein temporaeres Verzeichnis zB C:\tmp.
       
       - Wähle im Orca Tool "File > Open" und wähle das temporaere Verzeichnis C\tmp resp. das File "FortiClient.msi" (32bit Version). 
         Dieses befindet sich im Verzeichnis C:\tmp\FortiClientSetup_5.0.5.0308 (32bit Version).
       
       - Auf der rechten Seite werden nun im Orca Tool die Tables aufgelistet. Suche die Position "FeatureComponents".
       
       - Wenn die Position "FeatureComponents" angewählt wird so werden die dazugehörigen Features auf der rechten Seite aufgelistet.
       
       - Lösche nun alle Features/Zeilen ausser: "Feature_Basic, Feature_VPN und Feature_SSLVPN"
       
       - Danach gehe auf "save" und das Packet resp. das File "FortiClient.msi" kann nur anhand einer Installation getestet werden!
       FortiClientTools
       
       - Vorraussetzung für diesen Vorgang ist eine FortiClient Endpoint Security "License File" (zB für Devices bis 90D ALSO Art. Nr. 16503101E)! Nähere Informationen dazu siehe Artikel:
         
         Fortigate:FAQ#Wie_aktiviere_ich_eine_FortiClient_Endpoint_Security_License_.28License_File.29.3F
         
       - Im Downloadverzeichnis des jeweiligen FortiClient zB "ftp://support.fortinet.com/FortiClient/Windows/v5.00/5.0/5.0.5" steht ebenfalls
         das Tool "FortiClientTools_5.0.5.0308.zip" zur Verfügung. Dieses Package enthält die nötigen Tools sowie die nötige Dokumentation um
         ein entsprechendes Package zu erstellen. Um das FortiClientTool zu benützen muss jedoch eine Lizenz für FortiClient Endpoint Security
         erworben werden. Das entsprechende Lizenz File muss bei der Generierung des Packages angegeben weden. Dies bedeutet möchte man ein 
         VPN only (IPSec und/oder VPN-SSL) Package erzeugen wäre die Vorgehensweise folgende:
         
       - Entpacke das File "FortiClientTools_5.0.5.0308.zip" in ein temporaeres Verzeichnis.
       
       - Im entpackten zip File befindet sich ein Verzeichnis "FortiClientConfigurator". Wechsle in dieses Verzeichnis.
       
       - Starte das Tool "FortiClientConfiguratorGUI.exe". Es erscheint eine Meldung um die entsprechende Lizenz zu laden:
         
         Gebe das entsprechende License File an:
         
         Fortinet-847.jpg
         
         Gehe mit "Skip" weiter:
         
         Fortinet-848.jpg
         
         Wähle "VPN Only":
         
         Fortinet-849.jpg
         
         Der Vorgang ist abgeschlossen gehe auf "Fertig stellen":
         
         Fortinet-850.jpg
         
         NOTE Vor dem Fertigstellen wird im "Console output...." folgendes als Information angezeigt:
              
              ------------------------------------------------------------------ Console output.... ------------------------------------------------------------------
              
              Executing:
              
              	 -m "C:\Daten\Dat Fortinet\Forti-IPSec-VPN\FortiClient-5.x\5.0.5\FortiClientTools_5.0.5.0308\FortiClientTools_5.0.5.0308\FortiClientConfigurator\x86\FortiClient.msi"   --               
              
              CUSTOMIZATIONKEY "C:\Daten\Dat Fortinet\Forti-IPSec-VPN\License\EFCT102001369600.lic" -i VPN
              
              Configuration complete.
              
              The files needed for Active Directory deployment are located here:
              
                 C:\Daten\Dat Fortinet\Forti-IPSec-VPN\FortiClient-5.x\5.0.5\FortiClientTools_5.0.5.0308\FortiClientTools_5.0.5.0308\FortiClientConfigurator\x86\FortiClient_packaged\ActiveDirectory\
              
              The files needed for manual distribution are located here:
              
                 C:\Daten\Dat Fortinet\Forti-IPSec-VPN\FortiClient-5.x\5.0.5\FortiClientTools_5.0.5.0308\FortiClientTools_5.0.5.0308\FortiClientConfigurator\x86\FortiClient_packaged\ManualDistribution\
              
              You must test the packages to confirm they install correctly before
              deploying them to production.
              
              Executing:
              
              	 -m "C:\Daten\Dat Fortinet\Forti-IPSec-VPN\FortiClient-5.x\5.0.5\FortiClientTools_5.0.5.0308\FortiClientTools_5.0.5.0308\FortiClientConfigurator\x64\FortiClient.msi"   --CUSTOMIZATIONKEY "C:\Daten\Dat Fortinet\Forti-IPSec-VPN\License\EFCT102001369600.lic" -i VPN
              
              Configuration complete.
              
              The files needed for Active Directory deployment are located here:
              
                 C:\Daten\Dat Fortinet\Forti-IPSec-VPN\FortiClient-5.x\5.0.5\FortiClientTools_5.0.5.0308\FortiClientTools_5.0.5.0308\FortiClientConfigurator\x64\FortiClient_packaged\ActiveDirectory\
              
              The files needed for manual distribution are located here:
              
                 C:\Daten\Dat Fortinet\Forti-IPSec-VPN\FortiClient-5.x\5.0.5\FortiClientTools_5.0.5.0308\FortiClientTools_5.0.5.0308\FortiClientConfigurator\x64\FortiClient_packaged\ManualDistribution\
              
              You must test the packages to confirm they install correctly before
              deploying them to production.
              
              ------------------------------------------------------------------ Console output.... ------------------------------------------------------------------               
         
       - Nun werden zwei Verzeichnisse für eine Distribution erstellt dh. "ActiveDirectory" und "ManualDistribution" gemäss den Angaben in der "Console ouput...."
         Information.
       NOTE Für MAC Installation ist der Vorgang anhand des Lizenz Files identisch jedoch benötigt man den FortiClientConfigurator
            für MAC!

Was bedeutet im Client2Site VPN Bereich der Konfigurationspunkt "Splitt Tunneling"?

Im Client2Site VPN IPSec Bereich sowie im VPN-SSL Bereich existiert der Konfigurationspunkt "Splitt Tunneling". Dieser Konfigurationspunkt "Splitt Tunneling" steuert auf der Client Seite die Packet dh. welche Packet die vom Client aus abgesetzt werden in den VPN Tunnel sei es IPSec und/oder VPN-SSL gesendet werden. Gesteuert wird diese Funktion durch einen Routing Eintrag. Dieser kann und wird nur dann erstellt wenn der Client sei es IPSec und/oder VPN-SSL mit Administratoren Rechte installiert wurde. Wurde der VPN Client nicht mit diesen Rechten installiert so kann der entsprechende Eintrag nicht erstellt werden. Die Erstellung dieses Routing Eintrages geschieht nach der erfolgreichen Authentifizierung des Client und wird von der FortiGate durch den Tunnel an den Client gesendet (unter normalen Umständen). Dies kann auf einem Windows Client mit folgenden Kommando kontrolliert werden:

       route print

Wenn eine erfolgreiche Authentifizierung durchgeführt werden und der Route Eintrag erstellt wurde so muss unterschieden werden zwischen folgenden Möglichkeiten:

       Routing Eintrag wurde erstellt anhand eines IP Ranges zB 192.168.1.0/24
       
       Splitt Tunneling wurde aktiviert und nur Packete betreffend dem Subnet das auf der FortiGate konfiguriert
       wurde und im Routing definiert wurde, werden in den VPN Tunnel gesendet!
       Routing Eintrag wurde erstellt anhand 0.0.0.0
       
       Dieser Routing Eintrag kommt einem Default Gateway gleich dh. sämtliche Packete werden in den VPN Tunnel
       gesendet und somit ist das "Split Tunneling" deaktiviert!
       NOTE Das "Split Tunneling" zB des FortiClient wird in der Phase 1 resp. im "Client Wizard" 
            definiert. Dies bedeutet wird "Split Tunneling" aktiviert "muss" ein entsprechendes
            Subnet definiert werden das unter normalen Umständen das LAN representiert! Das Gleiche
            gilt für SSL-VPN dh. das "Split Tunneling" wird im Portal definiert. Wobei ein "explizites"
            "Split Tunneling" auf Kommandozeile definiert wird. Nachfolgend die zwei Kommandos die
            für die Funktion/Definition benötigt werden:
            
            Fuer SSL-VPN Split Tunneling:
            
            # config firewall address
            # set name [Name des IPv 4 IP Pool zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
            # set type iprange
            # set visibility enable
            # set start-ip [198.18.1.1]
            # set end-ip [198.18.1.127]
            # next
            # set name [Name des IPv 4 LAN IP Range zB "net-lan-198.18.0.0-24"]
            # set type iprange
            # set visibility enable
            # set start-ip [198.18.0.1]
            # set end-ip [198.18.0.254]
            # end
            # end
            
            # config vpn ssl web portal
            # edit [Name des Profile zB "tunnel-acces-only"]
            # config widget
            # edit 4
            # set name Tunnel Mode 
            # set type tunnel 
            # set column two 
            # set collapse disable 
            # set split-tunneling enable 
            # set ip-pools  [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
            # set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
            # next
            # end
            # end
            
            Fuer IPSec Split Tunneling:
            
            # config vpn ipsec phase1-interface 
            # edit [Name des Profile zB "fc-ipsec"]
            # set ipv4-start-ip 192.168.1.1
            # set ipv4-end-ip 192.168.1.254
            # set ipv4-netmask 255.255.255.0
            # set ipv4-split-include net-lan-198.18.0.0-24
            # end

SSL-VPN

Gibt es für SSL-VPN eine Limitation betreffend "Concurrent Sessions"?

Nein so eine Limitierung betreffend Concurrent Sessions gibt es nicht. Dies bedeutet die "Concurrent Sessions" hängen von den zur Verfügung stehenden System Resourcen ab! Ein Anhaltspunkt betreffend der SSL-VPN Limitierung pro Device bietet das Datasheet des Devices. Diese findet man unter folgenden Artikel:

       Fortinet:ProduktInfo#FortiGate
       
       NOTE In den Datasheets unter "Specifications" findet man zwei Positionen die den Anhaltspunkt
            liefert:
            
            SSL-VPN Throughput
            Concurrent SSL-VPN Users (Recommended Max)

Wie kann ich den Access Port für die SSL-VPN Funktion konfigurieren?

Die SSL-VPN Funktion läuft per Standard unter FortiOS 5.0 auf Port TCP 10443. Unter FortiOS 5.2 läuft dieser Port per Standard auf Port TCP 443. Dieser kann über WebGui und/oder CLI geändert werden. Ueber WebGui kann dies folgendermassen durchgeführt werden:

       FortiOS 5.0
       VPN > SSL > Config > Login Port
       
       FortiOS 5.2
       VPN > SSL > Settings > Listen on Port

Wenn der SSL-VPN Port gesetzt wird, ist zu berücksichtigen, dass dieser nicht bereits anderweitig genutzt wird. Dies bedeutet: Unter FortiOS 5.0 ist der Admin Port für das Management der FortiGate per Standard auf Port TCP 443 gesetzt und wie schon erwähnt der Port für die SSL-VPN Funktion auf TCP 10443. Nun wenn der SSL-VPN Port auf TCP 443 verschoben werden will muss zuerst der Admin Port verschoben werden:

       Admin Port FortiOS 5.0 / 5.2
       # config system global
       # set admin-port [Setze die entsprechende Port Nummer]
       # end
       SSL-VPN Port FortiOS 5.0
       # config system global
       # set sslvpn-sport 10443
       # end
       
       SSL-VPN Port FortiOS 5.2
       # config vpn ssl settings
       # set port [Setze die entsprechende Port Nummer]
       # end
       
       NOTE Unter FortiOS 5.0 wird kein Hinweis über das Web Mgmt. Interface angezeigt wenn der Port bereits
            belegt ist. Ebenfalls konnte die Konfiguration unter FortiOS 5.0 ohne "Warnung" durchgeführt
            werden. Unter FortiOS 5.2 wurde diesem Umstand Rechnung getragen und neu wird seitens Admin Port
            und/oder SSL-VPN Port ein Hinweis angezeigt wenn der Port bereits belegt ist!
            
            Fortinet-1130.jpg
            
            Fortinet-1131.jpg

Wie kann ich ein SSL-VPN auf einer FortiGate per Kommandozeile (CLI) konfigurieren?

Ausgehend vom nachfolgenden Artikel kann ein SSL-VPN sei es im Tunnel und/oder Web Mode per Mgmt. Web Interface eingerichtet werden:

       Fortigate:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Es kann jedoch durchaus Sinn ergeben die ganze Konfiguration per Kommandozeile (CLI) durchzuführen. Bei folgendem Beispiel wird ein Tunnel Mode sowie ein Web Portal Mode konfiguriert und zwar in dem Sinne, dass diese seperate gehalten werden. Diese Separierung ist für mehr Transparenz zu empfehlen:

       Konfiguration VPN-SSL Settings FortiOS 5.0
       # config vpn ssl settings
       # set sslvpn-enable enable
       # set dns-server1 [IPv 4 Adresse]
       # set dns-server2 [IPv 4 Adresse]
       # set idle-timeout [Setze das Timeout in Sekunden für das SSL VPN zB "1800"; Standard 0]
       # set tunnel-ip-pools [Definiere das Address Objekt für IPv4 Pool Adressen]
       # set route-source-interface disable
       # set port [Definiere den SSL-VPN TCP Access Port zB 10443]
       # set port-precedence  enable [Bei gleicher Port Belegung SSL-VPN hat höhere Presendence als HTTPS]
       # set auto-tunnel-policy disable
       # set auto-tunnel-static-route disable
       # set source-interface disable
       # end
       
       NOTE Ab FortiOS 5.0 gibt es die Optionen "auto-tunnel-policy und static". Diese zwei Optionen sind per 
            Standard aktiviert und ermöglichen eine Konfiguration OHNE eine Route sowie einer Policy. Aus diesem 
            Grund empfehlen wir diese Optionen zu deaktivieren. Unter FortiOS 5.2 gibt es nur noch die Option 
            "auto-tunnel-static". Weitere detaillierte Informationen findet man im folgenden Artikel:
            
            Fortigate:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F
       Konfiguration VPN-SSL Settings FortiOS 5.2
       # config vpn ssl settings
       # set dns-server1 [IPv 4 Adresse]
       # set dns-server2 [IPv 4 Adresse]
       # set idle-timeout [Setze das Timeout in Sekunden für das SSL VPN zB "1800"; Standard 0]
       # set tunnel-ip-pools [Definiere das Address Objekt für IPv4 Pool Adressen]
       # set route-source-interface disable
       # set port [Definiere den SSL-VPN TCP Access Port zB 10443]
       # set port-precedence  enable [Bei gleicher Port Belegung SSL-VPN hat höhere Presendence als HTTPS]
       # set auto-tunnel-static-route disable
       # set source-interface disable
       # set source-adddress [Definiere ein entsprechendes Address Objekt oder "all"]
       # set default-portal [Namen des entsprechenden Portals zB "web-acces-only"]
       # config authentication-rule
       # edit [Gebe einen entsprechenden Integer an]
       # set users [Gebe einen entsprechenden User's an]
       # set groups [Gebe eine entsprechende Gruppe an]
       # set portal [Gebe ein entsprechendes Portal an]
       # end
       # end
       
       NOTE Wenn "authentication-rule" nicht konfiguriert wird so gilt folgendes: Per Standard benützen alle
            User das Portal das über die Option "default-portal" definiert wird. Wenn andere Portale als das
            "default-portal" benützt werden sollen müssen diese unter "authentication-rule" definiert werden!
       FortiOS 5.0 WebPortal Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "web-acces-only"]
       # set allow-access [Setze Global welche Funktionen erlaubt sind zB "web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward"]
       # set heading [Gebe den Header an der "im" WebPortal angezeigt wird zB "Welcome to VPN-SSL Portal"]
       # set page-layout [Setze das Layout dh. für Zweispaltig "double-column"]
       # set allow-user-bookmark enable
       # set mac-addr-check disable
       # set auto-prompt-mobile-user-download disable 
       # set limit-user-logins enable 
       # set host-check none 
       # set virtual-desktop disable 
       # set os-check disable 
       # set cache-cleaner disable 
       # config widget
       # edit 1
       # set name "Session Information"
       # set type info
       # set column one
       # set collapse disable
       # next
       # edit 2
       # set name "Connection Tool"
       # set type tool 
       # set column two
       # set collapse disable
       # set allow-apps [Gebe an WAS erlaubt ist im Connection Tool zB "web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward"]
       # next
       # edit 3
       # set name Bookmarks 
       # set type bookmark 
       # set column one 
       # set collapse disable 
       # set allow-apps web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward
       # config bookmarks
       # edit TerminalServerRDPNative
       # set apptyp rdpnative
       # set description "TerminalServerRDPNative"
       # set host [IPv 4 Adresse]
       # set full-screen-mode disable
       # set screen-height 900
       # set screen-width 1600
       # next
       # edit TerminalServerRDP
       # set apptyp rdp
       # set description "TerminalServerRDP"
       # set host [IPv 4 Adresse]
       # set full-screen-mode disable
       # set screen-height 900
       # set screen-width 1600
       # set keyboard-layout de-ch
       # end
       # next
       # edit 5
       # set name "Login History"
       # set type history
       # set column one
       # set collapse disable
       # set display-limit 5
       # next
       # end
       # end
       FortiOS 5.2 WebPortal Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "web-acces-only"]
       # set web-mode enable
       # set tunnel-mode disable
       # set heading [Gebe den Header an der "im" WebPortal angezeigt wird zB "Welcome to VPN-SSL Portal"]
       # set page-layout [Setze das Layout dh. für Zweispaltig "double-column"]
       # set user-bookmark enable
       # set mac-addr-check disable
       # set display-connection-tools enable
       # set display-forticlient-download disable
       # set display-history enable
       # set display-history-limit 10
       # set auto-prompt-mobile-user-download disable 
       # set limit-user-logins enable 
       # set host-check none
       # set virtual-desktop disable 
       # set os-check disable 
       # set cache-cleaner disable
       # set display-status enable 
       # config bookmark-group
       # edit [Name der Kategorie zB URL]
       # config bookmarks
       # edit [Name des Bookmark's]
       # set description [Beschreibung des Bookmark's]
       # set url "http://www.beispiel.ch"
       # end
       # config bookmark-group
       # edit [Name der Kategorie zB RDP]
       # config bookmarks
       # edit [Name des Bookmark's zB RDP]
       # set description [Beschreibung des Bookmark's]
       # set apptype [Application zB rdp; Zur Auswahl stehen citrix, ftp, portforward, rdp, rdpnative, smb, ssh, telnet, vnc, web]
       # set description [Beschreibung]
       # set host [IPv4 Adresse oder FQDN]
       # set screen-height 900
       # set screen-width 1600
       # set keyboard-layout [Keyboard Layout Code zB de-ch]
       # set logon-user [Optional Username]
       # set logon-password [Optional Passwort]
       # end
       # end
       # config bookmark-group
       # edit [Name der Kategorie zB SSH]
       # config bookmarks
       # edit [Name des Bookmark's zB SSH]
       # set description [Beschreibung des Bookmark's]
       # set apptype [Application zB ssh; Zur Auswahl stehen citrix, ftp, portforward, rdp, rdpnative, smb, ssh, telnet, vnc, web]
       # set description [Beschreibung]
       # set host [IPv4 Adresse oder FQDN]
       # end
       # end
       # end
       FortiOS 5.0 / 5.2 TunnelMode Only
       
       Um den TunnelMode erfolgreich zu konfigurieren benötigen wir zwei Objekte dh. eines stellt das
       LAN dar und das Andere den IPv4 IP Pool Range der dem User über DHCP bei der Verbindung zugeordnet
       wird:
       
       Address Objekt FortiOS 5.0 / 5.2
       # config firewall address
       # edit [Name des IPv 4 IP Pool zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set type iprange
       # set visibility enable
       # set start-ip [198.18.1.1]
       # set end-ip [198.18.1.127]
       # next
       # edit [Name des IPv 4 LAN IP Range zB "net-ip-pool-ssl-vpn-198.18.0.0-24"]
       # set type iprange
       # set visibility enable
       # set start-ip [198.18.0.1]
       # set end-ip [198.18.0.254]
       # end
       # end
       FortiOS 5.0 TunnelMode Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "tunnel-acces-only"]
       # set mac-addr-check disable
       # set auto-prompt-mobile-user-download disable 
       # set limit-user-logins enable 
       # set host-check none 
       # set virtual-desktop disable 
       # set os-check disable 
       # set cache-cleaner disable 
       # config widget
       # edit 4
       # set name Tunnel Mode 
       # set type tunnel 
       # set column two 
       # set collapse disable 
       # set split-tunneling enable 
       # set dns-server1 [IPv4 Adresse]
       # set dns-server2 [IPv4 Adresse]
       # set ip-mode range 
       # set ip-pools  [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
       # set save-password [enable | disable]
       # set keep-alive disable [enable | disable] 
       # set auto-connect [enable | disable]
       # next
       # end
       # end
       FortiOS 5.2 TunnelMode Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "tunnel-acces-only"]
       # set tunnel-mode enable
       # set web-mode disable
       # set cache-cleaner disable
       # set host-check none
       # set limit-user-logins enable
       # set mac-addr-check disable 
       # set os-check disable
       # set virtual-desktop disable
       # set ip-mode range 
       # set auto-connect disable 
       # set keep-alive disable 
       # set save-password disable 
       # set ip-pools 
       # set ip-pools [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
       # set dns-server1 [IPv4 Adresse]
       # set dns-server2 [IPv4 Adresse]
       # end

Als Letzteres muss der entsprechende IP Pool als statische Route eingetragen werden auf dem "ssl-root" Interface dh.:

       FortiOS 5.0 / 5.2 Routing
       # config router static
       # edit [Integer zB "2"]
       # set comment "SSL-VPN IP-Pool Route]
       # set device "ssl.root"
       # set distance 10
       # set dst [IPv4 IP-Pool Network Range zB "198.18.1.0/25]
       # set priority 0
       # end
       # end

Technisch gesehen ist der WebPortal und/oder TunnelMode bereit für den Gebrauch jedoch benötigen wir nun noch die entsprechenden Rules die den Gebrauch erlauben:

       FortiOS 5.0 Policy
       # config firewall policy
       # edit [Gebe einen Integer für die Policy zB "1"
       # set comments "VPN TunnelMode Access"
       # set srcintf "ssl.root"
       # set dstintf [Setze die Destination die erlaubt ist im TunnelMode zB "internal1"]
       # set srcaddr [Setze die Source resp. das Objekt das die IPv 4 IP Pool Netowrk Range darstellt zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set dstaddr [Setze die Destination resp. das Objekt das die IPv 4 LAN Network Range darstellt zB "net-lan-198.18.0.0-24"]
       # set action accept
       # set schedule "galways"
       # set service [Setze die Service die erlaubt sind zB "ALL"]
       # set logtraffic all
       # next
       
       # edit [Gebe einen Integer für die Policy zB "2"
       # set comments "VPN Portal Access"
       # set srcintf [Setze das entsprechende Source Interface resp. Interne zB "wan1"]
       # set dstintf [Setze das entsprechende Destination Interface zB "internal1"]
       # set srcaddr [Setze das entsprechende Objekt das die Source darstellt zB "all"]
       # set dstaddr [Setze das entsprechende Objekt das die Destination darstellt zB "net-192.168.1.0-24"]
       # set action ssl-vpn
       # set identity-based enable
       # config identity-based-policy
       # edit [Gebe einen entsprechenden Integer ein zB "1"]
       # set schedule "always"
       # set logtraffic all
       # set groups [Gebe die entsprechende Gruppe an für die Authentifizierung zB "FortiGroup"]
       # set service [Setze den entsprechenden Service der erlaubt ist zB "ALL"]
       # set sslvpn-portal [Gebe das entsprechende WebPortal Profil an zB "web-access-only"]
       # next
       # end
       # next
       FortiOS 5.2 Policy
       # config firewall policy
       # set comments "VPN TunnelMode Access"
       # set srcintf [Setze das entsprechende Source Interface resp. Interne zB "ssl.root"]
       # set dstintf [Setze das entsprechende Destination Interface zB "internal1"]
       # set srcaddr [Setze das entsprechende Objekt das die Source darstellt zB "all"]
       # set dstaddr [Setze das entsprechende Objekt das die Destination darstellt zB "net-192.168.1.0-24"]
       # set action accept
       # set schedule "always"
       # set service "ALL" 
       # set logtraffic all
       # set groups [Setze einen entsprechende Gruppe] 
       # set users [Setze einen entsprechende User] 
       # set devices [Setze einen entsprechenden Device] 
       # end
       
       NOTE Wenn User und/oder Gruppen definiert werden die nicht das unter "config vpn ssl settings" definierte
            "default-portal" benützen, muss dies unter "config vpn ssl settings" unter "config authentication-rule"
            definiert werden!

Nun kann getestet werden. Wenn es zu Problemen kommt kann mit folgenden Befehl ein Debug ausgeführt werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application sslvpn -1
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable 

Führe nun eine Zugriff über Portal oder TunnelMode durch und achte auf den Output! Nach der Benutzung des Debug sollte dieser wieder zurückgestellt und deaktiviert werden:

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

Wie konfiguriere ich unter FortiOS 5.0 ein SSL-VPN Portal/Tunnel auf einer Fortigate?

Nachfolgende Dokumentation gibt Auskunft wie ein SSL-VPN unter FortiOS 5.0 -sei es im Portal und/oder Tunnel Mode- aufgebaut wird. In unserem Beispiel gehen wir davon aus, dass eine Fortigate über folgende Konstellation verfügt (Factory Defaults):

       NOTE Eine 40C unterstützt nur noch 1 VPN Portal dh. weitere VPN Portale können nicht erfasst werden. Versucht 
            man dies über CLI mit folgendem Befehl erscheint folgendes, was wiederum bestätigt, dass nur ein SSL-VPN Portal
            möglich ist:
            
            # config vpn ssl web portal
            # edit new
            
            Too many entries in all tables of .vpn.ssl.web.portal in vdom root: 1 / vdom-max = 1
                         ____________                  _________________________
       193.193.135.66/29|            | 192.168.1.99   |                         |
       ----- WAN 1 -----|  Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
                        |____________|                |_________________________|
       

Als Erstes erfassen wir einen User sowie eine Gruppe. Der neu erfasste User wird Mitglied dieser neuen Gruppe:

       User & Device > User > User Definition
       
       Fortinet-68.jpg
       Fortinet-69.jpg
       Fortinet-1132.jpg
       Fortinet-1133.jpg
       Fortinet-1134.jpg
       NOTE Wenn der User auf LDAP gesetzt wird so wird die Authentifizierung über Active Directory 
            verifiziert! Desweiteren kann für einen User eine Two Factor Authentication aktiviert werden dh.
            sei es über Hard Token oder ODA. Weitere Informationen betreffend Einbinden eines Active Directory's
            siehe folgender Artikel:
            
            Fortigate:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F
            Fortigate:FAQ#Wie_aktiviere_ich_f.C3.BCr_einen_lokalen_User_Two-Faktor_Authentication_anhand_ODA.3F
       User & Device > User > User Groups
       
       Fortinet-70.jpg
       Fortinet-71.jpg
       
       NOTE Im Gegensatz zu FortiOS 4 MR3 wird unter FortiOS 5.0 das entsprechende Portal nicht mehr in der User Gruppe zugeordnet dh. 
            Unter FortiOS 5.0 wird der entsprechende User und/oder Gruppe in der "Identity Based Policy" dem entsprechenden Portal 
            zugeordnet! Für eine Active Directory Authentifizierung muss eine entsprechende Gruppe dementsprechend konfiguriert resp.
            eingebunden werden.

Anhand der SSL-VPN Funktion wird auf der Fortigate ein Portal und/oder ein Tunnel zur Verfügung gestellt. In unserem Beispiel gehen wir davon aus, dass wir einen internen WebServer (192.168.1.12) haben den wir erreichen möchten. Per Standard ist innerhalb der globalen Konfiguration der SSL-VPN Funktion die Option " sslvpn-enable" aktiviert. Dies bedeutet wiederum, dass die SSL-VPN Funktion zur Verfügung steht. Möchte man die komplette SSL-VPN Funktion deaktivieren so muss diese Option auf "disabled" (deaktiviert) gesetzt werden.

       # config vpn ssl settings
       # set sslvpn-enable enable
       # end

Nun erstellen wir für den WebServer (192.168.1.12) ein Adress Objekt. Führe dazu folgendes aus:

       Firewall Objects > Address > Address
       
       Datei:Fortinet-94.jpg
       Fortinet-95.jpg

Nun damit wir die Internal IP LAN Defintion in den Policy's benutzen können benötigen wir ein Adress Objekt das dieses darstellt:

       Datei:Fortinet-110.jpg
       Fortinet-111.jpg

Für die SSL-VPN Funktion benötigt man einen IP-Pool dh. dieser IP-Pool weist den Usern nach erfolgreicher Authentifizierung eine IP zu. Somit kommt dieser IP-Pool einem DHCP Server gleich. Es kann der "vordefinierte" IP-Pool "SSLVPN_TUNNEL_ADDR1" benutzt werden oder einen eigenen definierten:

       Firewall Objects > Address > Address
       
       Datei:Fortinet-94.jpg
       Fortinet-1135.jpg

Dieser IP-Pool der definierte wurde kann nun als "Globaler IP-Pool" definiert werden. Dies bedeutet er wird für "Alle" SSL-VPN Portale benutzt sofern im SSL-VPN Portal selber kein anderer definiert wird:

       VPN > SSL > Config
       
       Fortinet-96.jpg
       
       NOTE Wie schon erwähnt wird unter "VPN > SSL > Config" die globale SSL-VPN Konfiguration durchgeführt. Dazu gehört
            ebenfalls ein DNS Server der den SSL-VPN Client's zusätzlich zur IP-Pool Adresse nach erfolgreicher Authentifizierung
            zugewisen wird. Wird im SSL-VPN Profile selber ein anderer IP-Pool definiert als unter der globalen Konfig so
            überschreibt die Konfiguration im SSL-VPN Profile die globale Konfiguration!

Im nächsten Schritt wird ein "SSL-VPN Priofile erstellt die den SSL-VPN Usern die verschiedenen Funktionen für SSL-VPN bereitstellt:

       VPN > SSL > Portal
       
       Fortinet-100.jpg
       Fortinet-379.jpg
       
       NOTE Dem Punkt "Splitt Tunneling" kommt eine wichtige Funktion zu dh. Diese Konfiguration steuert welche Packet auf dem Client/
            Workstation durch den SSL-VPN Tunnel gesendet werden. Weitere Informationen dazu siehe nachfolgender Artikel:
            
            Fortigate:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Splitt_Tunneling.22.3F

Nach der Konfiguration kann anhand der Position "View Portal" überprüft werden wie das SSL-VPN Portal nach einem erfolgreichen einloggen aussieht:

       Fortinet-102.jpg
       
       NOTE Möchte man das Aussehen modifizieren zB die verschiedenen Positionen Zweispaltig anzeigen so muss
            dies über Kommandozeile durchgeführt werden. Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F 
       Fortinet-1136.jpg

In den vorhergehenden Konfigurations Schritten haben wir einen IP-Pool erfasst. Dieser wird benutzt um dem Usern eine IP nach einer erfolgreichen Authentifizierung zu zuweisen. Damit die Fortigate weiss wo sich dieser SSL-VPN IP-Pool befindet, muss dieser geroutet werden dh. auf das Interface "ssl.root" das unser SSL-VPN Funktion darstellt:

       Router > Static > Static Route
       
       NOTE Ist dieser Menüpunkt nicht vorhanden muss/kann dieser über folgende Position aktiviert werden:
            
            System > Config > Feature > Advanced Routing
            
            Nach der Aktivierung dieses Features muss kurz ausgeloggt sowie wieder eingeloggt werden!
       Datei:Fortinet-108.jpg
       Fortinet-109.jpg
       
       NOTE Dieser Routing Eintrag ist ab FortiOS 5.0 nicht mehr in jedem Fall nötig! Wir empfehlen "Dringend" den Routing 
            Eintrag dennoch durchzuführen! Weitere "wichtige" Informationen dazu siehe folgender Artikel:
            
            Fortigate:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F

Als letzen Schritt benötigen wir eine entsprechnenden Firewall Policy die den Traffic resp. die SSL-VPN Funktion erlaubt. Der nächste Schritt zeigt die Firewall Policy Rule für das WebPortal. Diese wird über eine "Identity Based Policy" erstellt:

       Policy > Policy > Policy > Create New
       
       Datei:Fortinet-112.jpg
       
       NOTE Es darf/sollte für die Destination Adressen nicht "ALL" und/oder "ANY" definiert werden denn wird dies durchgeführt erscheint
            eine Fehlermeldung "Destination address of Split Tunneling policy is invalid" sobald das Splitt Tunneling aktiviert wird!
       
       Fortinet-380.jpg
       
       NOTE Ab FortiOS 5.0.5 fällt auf, dass in der "Identity Based Policy" im Mgmt. Gui kein Abschnitt mehr erscheint für "service". 
            Diese Position wurde vom Gui entfernt dh. wenn für SSL-VPN betreffend "service" eingeschränkt werden soll muss dies über CLI
            konfiguriert werden. Per Standard steht die Positionen "service" in den "Identity Policy" auf "ALL". Um die Konfiguration über
            CLI durchzuführen führe folgendes durch:
            
            # config firewall policy
            # edit [Gebe die ID an der entsprechenden Policy in der SSL-VPN konfiguriert wurde]
            # config identity-based-policy
            # edit [Gebe die ID an für die entsprechende Policy unter der Identity Policy]
            # set service [Gebe den entsprechenden Service an zB HTTP]
            # end 
            # end 
            
            Um die entsprechende Firewall Policy für SSL-VPN zu finden resp. die ID zu eruieren kann über CLI folgendes Kommando abgesetzt
            werden:
                 
            # show firewall policy

Um eine Firewall Policy Rule für den Tunnel Mode zu erstellen führe folgendes aus:

       Fortinet-1137.jpg
       
       NOTE Diese Firewall Policy ist ab FortiOS 5.0 nicht mehr in jedem Fall nötig! Wir empfehlen "Dringend" die Policy dennoch zu 
            implementieren! Weitere Informationen dazu siehe folgender Artikel:
            
            Fortigate:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F

Die Konfiguration der SSL-VPN Funktion ist nun abgeschlossen. Um diese zu testen kann folgendes durchgeführt werden:

       Teste WebPortal Zugriff https://[Public IP WAN Adresse]:[SSL-VPN Port]
       
       NOTE Unter FortiOS 5.0 sobald die VPN Funktion aktiviert ist und die Option "sslvpn-enable" Option unter der
            global Konfiguration nicht auf "disabled" (deaktiviert) gesetzt ist, kann das WebPortal auf jedem Interface
            der FortiGate erreicht werden. Möchte man dies verhindern und das WebPortal soll "nur" über "wan1" Interface
            erreichbar sein siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F
       Teste Tunnel Mode Zugriff über SSL-VPN Client
       
       Der dazu benötigte Client kann über https://support.fortinet.com  runtergeladen werden. Der Download befindet sich
       im entsprechenden Verzeichnis (SSL-VPN) des Image (Firmware) Downloads einer FortiGate. Desweiteren kann dieser 
       Tunnel Mode ebenfalls mit dem FortiClient getestet werden (IPSec-Only). Weitere Informationen dazu siehe nachfolgenden
       Artikel:
       
       Fortigate:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F

Um den Debug Modus auf der Console SSL-VPN Funktion auszuführen führe folgendes aus:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application sslvpn -1
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable

Wie konfiguriere ich unter FortiOS 5.2 ein SSL-VPN Portal/Tunnel auf einer Fortigate?

Unter FortiOS 5.2 wird ein SSL-VPN Portal/Tunnel anderst konfiguriert als unter FortiOS 5.0. Die Konfiguration ist im Hintrgrund mehr oder weniger dieselbe jedoch wird der Tunnel Mode und der Portal Mode völlig unterschiedlich gehandhabt. Wir gehen von folgenden Beispiel aus:

                         ____________                  _________________________
      193.193.135.66/29|            | 192.168.1.99   |                         |
      ----- WAN 1 -----|  Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
                       |____________|                |_________________________|
      

Um den Tunnel und/oder Portal Mode korrekt zu konfigurieren benötigt man einige Adress Objekte sowie einen User/Gruppe wie:

       Adress Objekt des internen LAN        net-lan-192.168.0.0-24
       Adress Objekt des IP-Pool's           net-ip-pool-10.10.0.0-24
       User                                  user-1 (Mitglied in gr-ssl-vpn-tunnel / gr-ssl-vpn-portal
       Gruppe                                gr-ssl-vpn-tunnel
       Gruppe                                gr-ssl-vpn-portal

Um diese zu erstellen wähle folgendes:

       Policy & Objects > Objects > Addresses
       
       Fortinet-1138.jpg
       net-lan-192.168.0.0-24
       
       Fortinet-1139.jpg
       Fortinet-1138.jpg
       net-ip-pool-10.10.0.0-24
       
       Fortinet-1140.jpg
       
       NOTE Der IP-Pool Bereich stellt nichts anderst dar als einen DHCP Server. Dies bedeutet: Wenn der SSL-VPN
            User ein Login durchführt wird diesem nach erfolgreicher Authentifizierung aus diesem IP-Pool (DHCP)
            eine Adresse zugewiesen!
       User & Device > User Definition
       
       Fortinet-1141.jpg
       user-1
       
       Fortinet-1142.jpg
       Fortinet-1143.jpg
       Fortinet-1144.jpg
       User & Device > User Groups
       
       Fortinet-1145.jpg
       gr-ssl-vpn-tunnel
       
       Fortinet-1146.jpg
       Fortinet-1145.jpg
       gr-ssl-vpn-portal
       
       Fortinet-1147.jpg

In den nächsten Schritten konfigurieren wir einen Tunnel Mode dh. Zugriff auf die SSL-VPN Funktion anhand des Client's sei es der SSL-VPN Client und/oder FortiClient Endpoint Security im VPN-Only mode:

       NOTE Weitere Informationen zum FortiClient Endpoint Sercurity VPN-Only siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F
       Tunnel Mode Only Profile
       
       VPN > SSL > Portals
       
       Fortinet-1148.jpg
       Fortinet-1149.jpg
       
       NOTE Weitere Informationen zur Funktion "Splitt Tunneling" siehe nachfolgender Artikel: 
            
            Fortigate:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Splitt_Tunneling.22.3F
            
            Viele der einzelnen Funktionen eines SSL-VPN Portal's sind nur über Kommandozeile konfigurierbar. 
            Nachfolgender Artikel zeigt wie ein SSL-VPN über die Kommandozeile konfiguriert wird:
            
            Fortigate:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F
       VPN > SSL > Settings
       
       Fortinet-1150.jpg
       
       NOTE Unter FortiOS 5.0 wurde die SSL-VPN Funktion auf "allen" Interface's zur Verfügung gestellt. Um dies zu verhindern
            musst unter FortiOS 5.0 eine "Local-In" Policy implementiert werden. Dies ist unter FortiOS 5.2 nicht mehr nötig da
            über "Listen on Interface" die Interface's auf denen die SSL-VPN Funktion zur Verfügung gestllt wird über diese 
            Position konfiguriert werden kann. Desweiteren, wenn auf der Position "Listen on Port" ein Konflikt besteht da dieser
            Port bereits besetzt ist, wird ein entsprechender Hinweis eingeblendet. Weitere Informationen dazu siehe nachfolgenden
            Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_den_Access_Port_f.C3.BCr_die_SSL-VPN_Funktion_konfigurieren.3F
       Fortinet-1151.jpg
       Fortinet-1152.jpg
       
       NOTE Unter "All Other Users/Groups" muss ein entsprechendes SSL Portal definiert werden. Dieses Portal match sofern in der
            oberen Zeilen kein "match" stattfindet. Es gilt "top down first match wins".
       Fortinet-1153.jpg
       Fortinet-1154.jpg
       Fortinet-1155.jpg
       
       NOTE Unter FortiOS 5.2 existiert keine "Identity Based Policy" mehr sondern die SSL-VPN Funktion mit der
            entsprechenden Gruppe/User wird in der "regulären" Firewall Policy konfiguriert!

Als letzter Schritt muss die IP-Pool Adresse für die SSL-VPN Funktion geroutet werden und zwar auf das Interface "ssl.root". Dieses Interface's tellt die SSL-VPN Funktion dar:

       Fortinet-1163.jpg
       Fortinet-1164.jpg
       NOTE Diese Konfiguration des Routings ist nicht in allen Fällen notwendig da eine Option existiert unter
            "vpn ssl settings" die diese Konfiguration Automatisiert. Weitere Informationen dazu siehe Artikel:
    
    Fortigate:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F

Die Tunnel Mode Konfiguration ist nun abgeschlossen. Als Naechstes konfigurieren wir einen Portal Mode dh. Zugriff auf die SSL-VPN Funktion anhand des Browser auf ein SSL-VPN Portal das vers. Funktionen zur Verfügung stellen kann:

       Portal Mode Only Profile
       
       VPN > SSL > Portals
       
       Fortinet-1148.jpg
       Fortinet-1156.jpg
       
       NOTE Viele der einzelnen Funktionen eines SSL-VPN Portal's sind nur über Kommandozeile konfigurierbar. Nachfolgender
            Artikel zeigt wie ein SSL-VPN über die Kommandozeile konfiguriert wird:
            
            Fortigate:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F
       Fortinet-1157.jpg
       Fortinet-1158.jpg
       Fortinet-1159.jpg
       
       NOTE In unserem Beispiel ist darauf zu achten -da wir mit zwei Portalen dh. tunnel-mode/portal-mode arbeiten- das dasjenige
            des "portal-mode" zuerst gelistet ist und ann das "tunnel-mode" Portal. Es gilt für diesen Konfigurationspunkt "Authentication/
            Portal Mapping" die Regel "top down first match wins":
            
            Fortinet-1162.jpg
            
            Wenn die Unterscheidung zwischen User/Gruppen sowie Portalen nicht ausreicht kann anhand der Funktion "realm" die Konfiguration 
            erweitert werden. Das Feature "realm" ist per Standard deaktiviert und wird über die folgende Position aktiviert:
            
            System > Config > Features > Show More > SSL-VPN Realms
       Fortinet-1160.jpg
       Fortinet-1161.jpg

Wieso funktioniert ab FortiOS 5 mein SSL-VPN auch ohne die IP Pool Route und/oder Policy zu implementieren?

Nun ab FortiOS 5.0 hat Fortinet zwei neue Optionen eingeführt dh. diese implementieren für SSL-VPN Funktion eine automatische Konfiguration in zwei Bereichen:

       --> Routen den IP Pool automatisch auf das ssl.root Interface
       --> Implementieren automatisch eine "Local In Policy" damit der Traffic von ssl.root auf Internal erlaubt wird (Gilt nicht für FortiOS 5.2)

Die zuständigen Optionen für die Automatisierung sind die folgenden:

       # config vpn ssl settings
       # set auto-tunnel-policy [enable | disable]
       # set auto-tunnel-static-route [enable | disable]
       # end
       
       NOTE Die Option "auto-tunnel-policy" steht für FortiOS 5.2 nicht mehr zur Verfügung!

Bedeutet somit folgendes:

       auto-tunnel-policy              (Automatische Policy "source=ssl.root to destination=internal")
       auto-tunnel-static-route        (Automatische Route für den definierten IP-Pool)

Das Unschöne an der ganzen Sache ist folgende:

       --> Ueber den Routing Monitor im Gui wird keine entsprechende Route angezeigt/gelistet!
       --> In der Local In Policy wird kein entsprechender Eintrag angzeigt/gelistet für die Policy!

Wir empfehlen diese beiden Optionen zu deaktivieren und wie bis anhin die Implementierung gemäss nachfolgenden Artikel durchzuführen. Der Grund liegt in der Transparenz sowie Granularität dh. mehrere Gruppen, IP Pools, restriktive Rules etc.:

       Fortigate:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Wie kann ich für das Active Directory (LDAP) eine Passwort Expyring/Renewal Nachticht für SSL-VPN konfigurieren?

Die Funktion des Active Directory Passwort Expyring/Renewal muss in der LDAP Konfiguration auf der Fortigate aktiviert werden (Per Standard deaktiviert). Für nähere Informationen siehe Artikel:

       Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_eine_Active_Directory_.28LDAP.29_Anbindung_ein_Passwort_Expyring_Renewal_Nachricht_konfigurieren.3F

Wie kann ich ein Timeout für SSL-VPN Verbindungen konfigurieren?

Es kann anhand nachfolgenden Kommandos ein Timeout für SSL-VPN Verbindungen resp. User konfiguriert werden. Dies bedeutet: Wenn ein User länger verbunden ist sprich "idle" als dieses Timeout wird er durch das System automatisch (forced) ausgeloggt. Um die Konfiguration durchzuführen führe folgendes unter der CLI durch:

       # config vpn ssl settings
       # set auth-timeout [Sekunden zB 18000]
       # end
       
       NOTE Mögliche Werte für das Timeout sind "0" bis "259 200" Sekunden (3 Tage). Wenn das Timeout auf "0" gesetzt wird
            so wird das Timeout komplett deaktiviert!

Diese Konfiguration sollte nicht verwechselt werden mit dem "idle-timeout". Dies bedeutet das "idle-timeout" stellt den Wert dar für das Timout wenn der Client das Portal nicht benutzt und somit in das "idle-timout" läuft. Um dieses "idle-timout" unter der CLI zu setzen benütze folgendes Kommando:

       # config vpn ssl settings
       # set idle-timeout [Sekunden zB 300]
       # end
       
       NOTE Mögliche Werte für das Timeout sind "0" bis "259 200" Sekunden (3 Tage). Wenn das Timeout auf "0" gesetzt wird
            so wird das Timeout komplett deaktiviert! Es ist empfehlenswert das "idle-timout" möglichst tief zu halten. Per Standard
            ist dieses auf 300 Sekunden (5 Minuten) gesetzt!

Gibt es für IPhone und Android einen SSL VPN Client?

Ja, diesen gibt es siehe folgende links:

       Für Android:
       https://play.google.com/store/apps/details?id=com.fortinet.forticlient
       http://www.fortinet.com/resource_center/product_downloads.html
       
       FortiOS 5.0
       Datei:FortiClient-v5.0.1-Android-Release-Notes.pdf        
       Datei:FortiClient-v5.0.2-Android-Release-Notes.pdf
       Datei:FortiClient-v5.0.3-Android-Release-Notes.pdf
       
       Datei:Forticlient-android-user-guide.pdf
       Datei:Connecting-an-Android-to-a-FortiGate-with-SSL-VPN.pdf
       
       FortiOS 5.2
       Datei:FortiClient-v5.2.0-Android-Release-Notes.pdf
       
       Datei:Forticlient-android-user-guide-52.pdf
       Für IPhone:
       http://itunes.apple.com/us/app/fortimobile-ssl-vpn/id345361028?mt=8
       http://www.fortinet.com/resource_center/product_downloads.html
       
       FortiOS 5.0
       Datei:FortiClient-v5.0-Patch-Release-1-iOS-Release-Notes.pdf        
       Datei:FortiClient-v5.0-Patch-Release-2-iOS-Release-Notes.pdf
       
       Datei:Forticlient-v5-ios-quickstart.pdf
       
       FortiOS 5.2
       Datei:Forticlient-v5.2.0-ios-release-notes.pdf
       
       Datei:Forticlient-ios-user-guide-52.pdf 

Die beiden offiziellen Apps von Fortinet für IPhone und Android unterstützen in der 5.0 Version ausschliesslich das Browsen dh. wenn man verbunden ist mit dem APP kann der aufgebaute VPN Tunnel nur für das Browsen benutzt werden deshalb wird dieser Client auch "SSL proxy VPN connection agent" genannt. Neu unter FortiOS 5.2 unterstützt -im Gegensatz zu IOS- Android ebenfalls eine IPSec Verbindung. Will man eine klassische IPSec Verbindung anhand eines IOS Gerätes durchführen so ist das mit dem Cisco Client (Unity Client) möglich sowie mit der eingebauten VPN Funktion eines IPhones. Nachfolgende Links geben Auskunft wie so eine Verbindung zu konfigurieren ist:

       NOTE Ab FortiOS 5.0.2 ist es möglich den "build-in" Cisco VPN Client anhand des "iPhone Configuration Utility"
            für Windows und/oder MAC zu konfigurieren anhand eines Profiles (.mobileconfig) und dieses wiederum auf 
            der FortiGate unter "Endpoint Profile" einzulesen damit dieses Profile den IPhone/IPad Devices (min. IOS
            V5.1.1) zugewiesen wird. Dies geschieht über das "FortiClient" App. Folgendes Dokument beschreibt diesen
            Vorgang sowie dessen Konfiguration:
            
            Datei:Mobile-configuration-profiles-technical-note.pdf      (Mobile Configuration Profiles for iOS Devices Technical Note)

Desweiteren stellt sich immer wieder die Frage "wie ein Zertifikat für iOS auf einer FortiGate zu erstellen ist sowie auf dem iOS Device zu installieren ist". Folgender Artikel gibt Auskunft über diese Thematik:

       Fortigate:FAQ#Wie_installiere_ich_f.C3.BCr_FortiClient_f.C3.BCr_iOS_.28Apple.29_ein_Zertifikat_auf_den_entsprechenden_Device.3F
       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD31619
       
       Support Notes für IPhone und IPad:
       http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD30893&languageId=
       
       Cisco Client (Unity Client):
       http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD33376&languageId=
       
       IPhone IPsec VPN Setup:
       Datei:FortiGate-iPhone VPN Setup-Guide v1.0 English 2010210.pdf
       NOTE Wenn die IPSec Konfiguration durchgeführt wird speziell mit dem Cisco Client muss Splitt Tunneling 
            deaktiviert werden ansonsten kommt es zu Problemen!

Wie installiere ich für FortiClient für iOS (Apple) ein Zertifikat auf den entsprechenden Device?

Das nachfolgenden Dokument gibt Auskunft wie ein Zertifikat zu erstellen ist auf einer FortiGate und dieses auf einem iOS (Apple) Device installiert wird:

       Datei:Provision-certificates-to-ios-devices-technical-note.pdf

Desweiteren stehen und den Dokumentationen weitere Dokumente zur Verfügung:

       Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F

Kann ich den SSL Traffic betreffend encryption/decryption optimieren und beschleunigen?

Dies ist unter Umständen möglich (Ab FortiOS 5.0.3)! Eine FortiGate führt per Standard die Encryption/Decryption (Entschlüsselung/Verschlüsselung) andhand der CP7 oder CP8 FortiASIC Prozessoren durch. Wenn die FortiGate einer hohen Belastung ausgesetzt ist dh. durch eine hohe Anzahl von SSL Traffic und die eingesetzte FortiGate über mehr als 4 CPU's verfügt, kann die SSL Encryption/Decryption Optimiert werden. Dies geschieht indem der FortiGate mitgeteilt wird "WIE" der SSL Traffic zum CPU gesendet werden soll sprich wieviele "worker" bereitgestellt werden. Bei "worker" handelt es sich effektiv um Prozessoren. Um festzustellen über wieviele CPU's die eingesetzte FortiGate verfügt benütze folgende Befehl:

       # get hardware cpu

Wenn die FortiGate über mehr als 4 CPU's verfügt können die entsprechenden "worker" (CPU) die für die SSL Verarbeitung benützt werden sollen konfiguriert werden:

       # config system global
       # set optimize-ssl [enable oder disable]
       # set ssl-worker-count [Anzahl der "worker" (CPU)]
       # end
       
       NOTE Wenn die Anzahl der "worker" (CPU) erhöht wird sollte das System zu Beginn übewacht
            werden um festzustellen ob die Anzahl der "worker" andere Funktionen auf dem System
            nicht beeinträchtigen!

Welche IP wird benutzt für das SSL-VPN Portal und kann ich diese manipulieren?

Grundsätzlich hört ein SSL-VPN Portal auf "alle" IP's die auf dem Interface konfiguriert sind (FortiOS 5.0). Bedeutet: hätte man ein externes Interface mit einer "public IP" in einem Range zB 193.193.135.66/29 hört das SSL-VPN Portal auf die IP "193.193.135.66/29". Möchte man nun zB die IP "193.193.135.67/29" benutzen konfiguriert man diese IP als "Secondary IP" zusätzlich zur IP "193.193.135.66/29". Wenn die IP "193.193.135.66/29" jedoch nicht für den Zugang für das SSL-VPN Portal benutzt werden soll kann dies über eine manuelle "Local-In Policy" verhindert werden da diese vor der regulären Policy abgearbeitet wird. Das Gleiche gilt für alle anderen Interfaces dh. das SSL-VPN Portal ist unter FortiOS 5.0 per Standard auf allen Interface's erreichbar. Soll dies verhindert werden, kann dies über eine manuelle "Local-In Policy" verhindert/konfiguriert werden. Nähere Informationen zu der Erstellung einer "Local-In Policy" siehe nachfolgender Artikel:

       Fortigate:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F

Wenn für den "interne" Request eine andere IP benutzt werden soll so kann dies mit einer entsprechenden NAT Rule/Implementierung gewährleistet werden. Nähere Informationen betreffend NAT Rule/Implementierung siehe Artikel:

       Fortigate:FAQ#Wie_wird_ein_Source.2FDestination_NAT_auf_einer_Fortigate_implementiert.3F
       
       NOTE Unter der global SSL-VPN Konfiguration stehen desweiteren folgende Optionen zur Verfügung:
            
            # config vpn ssl settings
            # set route-source-interface [enable | disable]
            # set source-interface [enable | disable]
            # end

Wenn VDom's aktiviert wurden und eine zusätzlcihe VDom zur "root" VDom über einen "inter-vdom" Link verbunden ist so komuniziert der über's SSL-VPN Portal eingeloggt User über das Interface des "inter-vdom" Link's auf der "root" VDom Seite:

                         ______________________                                                                     _______________________
       193.193.135.66/29|                      | Interface-root-vdom                          interface-vdom1-vdom |                       |
       ----- WAN 1 -----|  Fortigate vdom-root |------------------------- inter-vdom-link -------------------------| Fortigate vdom-vdom1  |
                        |______________________|                                                                   |_______________________|
       
       NOTE Die Erklärung dazu ist das das "Interface-root-vdom" Interface als WAN Interface gilt für die
            VDom "vdom1"!

Certificate

Wie kann ich ein Zertifikat umkonvertieren damit ich dieses in die Fortigate importieren kann?

Ueber folgende Seite lässt sich ein Zertifikat umkonvertieren damit es nachträglich mit dem richtigen Format in die Fortigate importiert werden kann:

       http://www.msxfaq.de/signcrypt/openssl.htm

Was ist zu beachten bei einem Import eines Zertifikates auf einer Fortigate?

Zertifikate werden von CA's ausgestellt (Certifcation Authority). Normalerweise werden diese Certificate als PKCS#12 Format ausgeliefert. Das Certifcate das man vom Certifcation Authority erhält beinhaltet den:

       public key (Oeffentliches Zertifikat)
       private key (Privates Zertifikat)

Nachfolgend einige Certificate Formate:

       Datei:Fortinet-46.jpg

Je nach Gebrauch müssen diese Certificates umkonvertiert werden um einen erfolgreichen Import zu ermöglichen. Folgender Artikel gibt Auskunft wie so eine Umkonvertierung zu bewerkstelligen ist:

       Fortigate:FAQ#Wie_kann_ich_ein_Zertifikat_umkonvertieren_damit_ich_dieses_in_die_Fortigate_importieren_kann.3F

Um nun ein Certificate in eine Fortigate zu importieren führe folgendes durch:

       Muss ein Certificate Request durchgeführt werden kann dies direkt auf die Fortigate durchgeführt werden:
       
       System > Certificates > Local Certificates > Generate
       
       Dieses Certificate-Output wird dann benutzt um dieses auf einem CA (Certificate Authority) signieren zu 
       lassen (gegenzeichnen). Sobald das Certificate signiert ist kann dieses wiederum über folgende Position
       importiert werden:
       
       System > Certificates > Local Certificates > Import
       Wurde der Certificate-Request nicht auf der Fortigate erstellt (zB bei Wildcard Certificat *.mydomain.ch)
       kann dieses nicht auf der Fortigate importiert werden. Solch ein Import kann nur folgendermassen bewerkstelligt
       werden:
       
       --> PKCS#12 File/Cert
       --> getrenntes .crt und .key File/Cert
       
       Es ist bei solchen Imports auf Fortigate empfehlenswert die Variante der getrennten .crt und .key File/Cert zu
       wählen. Danach können beide Files dh. .crt und .key über folgende Position importiert werden:
       
       System > Certificates > Local Certificates > Import
       
       Sobald der Import durchgeführt wurde muss deklariert werden für WAS dieses Certificate verwendet werden
       soll. Dies wird über eine Drop-Down-Liste gewählt zB:
       
       IPSec
       SSL VPN
       etc.
       
       Eine Einstellung (v3.0/4.0) muss über Kommandozeile angegeben werden:
       
       # config system global
       # set admin-server-cert [cert-name]
       # end
       
       NOTE
       Ist das Zertifikat nicht direkt von der CA, sondern von einem Intermediate Device/CA (Device 
       das ein signiertes Certifcate besitzt von der CA) erstellt worden, wird dieses als NICHT 
       trusted angeschaut. Eine Variante solch ein Intermediate Certificate dennoch als Trusted zu
       verifizieren wäre:
       
       Import des Intermediate Zertifikat auf der Fortigate als „CA Certificate“
       
       Das Intermediate Certificate kann direkt von der CA herunter geladen werden oder es ist im .crt File 
       des eigenen Certificate enthalten. Die .crt-Datei kann einfach mit dem Wordpad geöffnet und der 
       entsprechende Abschnitt in ein eigenes .crt File gespeichert werden:
       
       Beispiel:
       
       --------------- certificate example ---------------
       
       Bag Attributes
       localKeyID: …
       friendlyName: ALSO Schweiz AG
       subject=/C=CH/O=ALSO Schweiz AG/CN=*.also.com/emailAddress=info@also.com
       issuer=/C=CH/O=SwissSign AG/CN=SwissSign Server Gold CA 2008 - G2
       -----BEGIN CERTIFICATE-----
       MII…
       …
       …xmQ=
       -----END CERTIFICATE-----
       
       
       Bag Attributes
       localKeyID: …
       subject=/C=CH/O=SwissSign AG/CN=SwissSign Server Gold CA 2008 - G2
       issuer=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
       -----BEGIN CERTIFICATE-----
       MII…
       
       …0qo=
       -----END CERTIFICATE-----
       Bag Attributes
       localKeyID: …
       subject=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
       issuer=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
       -----BEGIN CERTIFICATE-----
       MII…
       …
       …ZfJ
       -----END CERTIFICATE-----
       
       --------------- certificate example ---------------
       
       In diesem .crt File ist ein Zertifikat für CN=*.also.com zu sehen (erster Abschnitt). Dieses ist 
       signiert worden vom Intermediate   Certificate CN=SwissSign Server Gold CA 2008 - G2. Der 
       dazugehörige (im Beispiel Fett markiert) Abschnitt muss für unserem Fall in ein .crt File gespeichert 
       werden, welches dann als CA-Certificate in der Fortigate importiert werden kann. Im letzten 
       Abschnitt in diesem Beispiel ist das CA Certificate CN=SwissSign Server Gold CA 2008 - G2
       aufgeführt. Ist das Certificate aufgeführt als "Vertrauenswürdiges Certificate" so muss es nicht
       hinterlegt resp. importiert werden. Ist dies nicht der Fall muss in die CA auf der Fortigate
       importiert werden.
       ACHTUNG HINWEIS FUER FORTIMAIL
       Ist das Certificate signiert/gezeichnet worden von einem Intermediate Zertifikat muss folgendes berücksichtigt werden:
       
       Das Intermediate Zertifikat darf NICHT als CA Certificate eingelesen werden sofern das
       .crt File NICHT NUR das public Certificate selbst sondern die GESAMTE Certificate Informationen
       enthält (wie obiges Certifcate Beispiel). Ist dies der Fall gibt Fortimail die gesamten Informationen weiter!

Wir erstelle ich auf einer Fortigate einen Certificate Request und zeichne diesen im Microsoft root CA?

Wenn man eine Certificate, dass auf einer Fortigate erstellt wurde (Certificate Request) innerhalb eines Microsoft root CA (Certificate Authority) zeichnen möchte um diesen nachträglich auf der Fortigate zu importieren gehe folgendermassen vor:

       ACHTUNG Fortiate unterstützt folgende zwei Formate: "DER" und "Base-64"
       --> Um den Certificate Requests zu erstellen der nachträglich im "Microsoft Root CA" gegengezeichnet werden kann wähle:
           
           System > Certificate > Local Certificate > Generate
           
           Geben nun folgende Angaben an:
           
           Certificate Name:     [Name des Certificates]
           ID Type:              [Host IP / Domain Name (FQDN) / Email Adresse]
           
           Organization Unit:    [zB ALSO Schweiz AG]
           Organization :        [zB Informatik]
           Locality (City):      [zB Emmen]
           State/Province:       [zB Luzern]
           Country/Region:       [zB Schweiz]
           e-mail:               [zB info@also.com]
           
           Key Type              RSA
           Key Size              2048 Bit
           
           Enrollment Method     File Based

Wenn man nun den "OK" Button anklickt wird im Hintergrund der "Requet" erstellt. Sieht man sich die Liste unter folgender Position an so erkennt man das dieser Request auf "Pending" steht. Dies bedeutet, dass dieser Request noch nicht gegengezeichnet ist:

           System > Certificate > Local Certificate

Nun markiert man diese Zeile und geht oben auf die "Download" Position um den Request runterzuladen. Dabei ist wichtig den Download so runterzuladen damit er in einem File gespeichert wird (.csr). Dieses File -wenn man es sich ansieht (zB Wordpad)- sieht folgendermassen aus (es darf nicht gespeichert werden im Wordpad sonst kann das File unbrauchbar werden):

           Datei:Fortinet-219.jpg

Danach geht man auf die "Microsoft Certificat Authority" Konsole und führt folgendes aus:

           Datei:Fortinet-220.jpg
           Datei:Fortinet-221.jpg
           Datei:Fortinet-222.jpg
           Datei:Fortinet-223.jpg
           
           NOTE Dieses File das hier gespeichert wird MUSS auf der Fortigate unter den "Local Certificates" importiert werden,
                denn dieses Certificate stellt unser gezeichnetes Certificate dar!

Zurück auf der Fortigate führen wir den Import Vorgang durch:

           Datei:Fortinet-224.jpg
           Datei:Fortinet-225.jpg

Nun das Problem das noch besteht ist das der Fortigate Device momemtan kein Root Certificat hat vom "Microsoft root CA". Dieses muss zuerst aus dem "Certicate Authority" exportiert werden um nachträglich wiederum auf der Fortigate importiert werden. Führe folgendes durch:

           Datei:Fortinet-226.jpg
           Datei:Fortinet-227.jpg
           Datei:Fortinet-228.jpg
           Datei:Fortinet-229.jpg

Erstelle nun eine Verbindung zur Fortigate und importiere das soeben exportierte Certificate:

           Datei:Fortinet-230.jpg

Dieses "Microsoft root CA" muss nun nur noch in den Broswer auf jedem Client/Workstation importiert werden dh. als "Vertrausenwürdiges Stammzertifikat". Das Certificate ist nun importiert und steht vers. Funktionen zur Verfügung dh. zB kann eine Fortigate Anmeldung des Admin Users (über einen Brosser) über ein Certificate durchgeführt werden. Dafür muss folgender Befehl über CLI abgesetzt werden:

           # config system global
           # set admin-server-cert "Admin_Users"
           # end

Wenn dies durchgeführt wird muss bei der ersten Verbindung (Browser) das Certifcate (public key) importiert werden dh. in den Container "vertrauenswürdige Stammzertifikate".

Wie installiere ich für FortiClient für iOS (Apple) ein Zertifikat auf den entsprechenden Device?

Weitere Informationen siehe Artikel:

       Fortigate:FAQ#Wie_installiere_ich_f.C3.BCr_FortiClient_f.C3.BCr_iOS_.28Apple.29_ein_Zertifikat_auf_den_entsprechenden_Device.3F

User / Gruppen

Wie kann ich das das Passwort des User "admin" (Administrator) ändern?

Das "admin" Passwort kann innerhalb des "Dashboards" unter folgenden Position geändert:

       Datei:Fortinet-16.jpg

Das Passwort kann auch über die "Administratoren" Position geändert werden:

       Datei:Fortinet-17.jpg

Möchte man das Passwort des User's admin über Kommandozeile ändern muss folgendes durchgeführt werden:

       # config system admin
       # edit admin
       # set password [Setze ein neues Passwort]
       # next

Wenn das Passwort des User's "admin" (Administrator) nicht mehr bekannt ist wo kann ich dieses zurücksetzen/neu setzen?

Als Grundvorraussetzung muss die Serien Nummer der Fortigate bekannt sein, denn diese wird benötigt um sich als User maintainer einzuloggen. Zugleich ist dieser Vorgang nur anhand einer Seriellen Verbindung möglich:

       -> Erstelle eine Serielle Console.
          
          8 bits 
          no parity 
          1 stop bit 
          9600 baud (the FortiGate-300 uses 115,000 baud) 
          Flow Control = None 
          
          NOTE Weitere Informationen betreffend RS-232 Console findet man im folgenden Artikel:
          
               Fortigate:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F
          
       -> Schalte den Device aus und ein oder starte diesen neu.
       -> Sobald der Login erscheint gebe ein:
       
       User     = 	maintainer
       Password = 	bcpbFGT[Serien Nummer ohne Produktbezeichnung "FGT" dh. zB 60C4613015338]
       Welcome!
       
       # config system admin
       # edit admin
       # set password [Neues Passwort]
       
       NOTE Dieser Vorgang im Ganzen dh. das Einloggen anhand des Users "maintainer" steht nach dem ersten
            erscheinen des regulären "login's" 2 Minuten zur Verfügung dh. wird innerhalb dieser 2 Minuten
            der User "maintainer" nicht benutzt für das Einloggen so deaktiviert sich dieser Funktion dh.
            muss diese wiederum genutzt werden so muss erneut ein Neustart ausgeführt werden! Dieser Vorgang dh.
            das Zurücksetzen des Superadmin Passwort ist für alle Geräte von Fortinet durchzuführen. Für das
            Passwort des Users "maintainer gilt:
            
            bcpb[Fortinet Produkt Bezeichnung zB FortiGate "FGT" oder FortiWifi "FWF"][Serien Nummer ohne Produktbezeichnung]
       
       Möchten man die "Funktion" des "maintainer" deaktivieren dh. keine Möglichkeit geben diesen zu benutzen so kann
       dies folgendermassen durchgeführt werden:
       
       # config system global
       # set admin-maintainer disable
       # end
       
       Anstelle des "maintainer" -der nur benutzt werden kann über die lokale Consolen- kann auch der Consolen Port komplett
       deaktiviert werden. Nähere Informationen siehe Artikel:
       
       Fortigate:FAQ#Wie_setze_ich_eine_Fortigate_auf_.22Factory_Defaults.22.3F

Fortinet hat im Juli 2013 ein Dokument unter "SysAdmin's Notebook" released das diesen Vorgang ebenfalls beschreibt/zeigt:

       Datei:Resetting a lost admin password.pdf   (Resetting a lost admin password)

Welches Timeout gilt für den User "admin" (Administrator) und wo manipuliere ich Dieses?

Für den Administrator gilt 5 Minuten als Timeout. Dieses wird über folgenden Menüpunkt manipuliert:

       Datei:Fortinet-24.jpg
       
       NOTE Ueber die Kommandozeile wird die Konfiguration folgendermassen durchgeführt:
       
       # config system global
       # set admintimeout [Timeout Minutes]
       # end

Wenn das Timeout für den Administrator betreffend SSH angepasst werden soll siehe folgender Artikel:

       Fortigate:FAQ#Wie_setze_ich_f.C3.BCr_den_User_.22admin.22_das_Timeout_f.C3.BCr_SSH.3F

Wie konfiguriere ich für den User "admin" (Administrator) eine Public Key Authentication?

Logge dich als User "root" auf dem System ein auf dem der Zugriff auf die FortiGate erfolgen soll. In unserem Beispiel wäre dies ein CentOS basierendes System. Nach dem Einloggen wechsle in das Root Verzeichnis des User's "root". In unserem Beispiel wäre dies "/root":

       # cd /root
       # pwd
       /root

Die "Public Key Authentication" Informationen werden im User "root" Verzeichnis im Verzeichnis "/root/.ssh" abgelegt. Erstelle dieses Verzeichnis und vergebe die entsprechenden Rechte:

       # mkdir /root/.ssh
       # chmod 700 /root/.ssh
       # chown root:root /root/.ssh

Als nächsten Schritt erstellen wir für die Public Key Authentication eine "privat" sowie einen "public" Key. Diese sind voneinander abhängig dh. der "public" Key basiert auf dem "privat" Key:

       # which ssh-keygen
       /usr/bin/ssh-keygen
       
       # ssh-keygen -t rsa -f /root/.ssh/id_rsa 
       Generating public/private rsa key pair.
       Enter passphrase (empty for no passphrase): 
       Enter same passphrase again: 
       Your identification has been saved in /root/.ssh/id_rsa.
       Your public key has been saved in /root/.ssh/id_rsa.pub.
       The key fingerprint is:
       2b:cf:8d:7f:51:cb:5b:d4:77:13:d4:79:93:ab:da:63 root@mydomain.local.intra
       
       NOTE Gebe keine "passphrase" ein sondern einfach "Enter"!

Nach der erfolgreichen Generierung haben wir folgende Keys:

       # ls -la /root/.ssh/*
       -rw------- 1 root root 1675 Dec  9 13:07 /root/.ssh/id_rsa
       -rw-r--r-- 1 root root  408 Dec  9 13:07 /root/.ssh/id_rsa.pub

Das File "id_rsa" stellt den "privat" Key dar und MUSS umbedingt geschützt werden dh. vergebeentsprechende Rechte:

       # chmod 600 /root/.ssh/id_rsa

Der Public Key muss nun auf der FortiGate konfiguriert werden. Dies wird folgendermassen durchgeführt:

       # more /root/.ssh/id_rsa.pub
       ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsum+V+qTCDNAfjGCtgn/X771NZHveHJgHAfoi6JXjVpZ7Ojd7wQ/30jM7Ma8kwecbAdGV/MStq/lX2Z09qZ/Wkq3V0k+XctrNBOc5fR26vsMwZk5GeJuYLmhXD+agTNNDf1VfRhOKj7UcLoV45kKYBZwzkOFt1E0dODFcdOY+12LwVgAHGd5cPSR3tRXY07HEEnlob0fOSb6XuKZmpgBWhEfNbGBH2gI+bEJC9E9ZoqWYGF3Vi5RgvoeW8l9zSYwtj+zwG9VG0MN9SKJR6gAhqpSvSLsZEUkbNJ9zHocxMsIw4qZ+ATU9+QYhECJTfZmWWCuC1amyV+e1KljpiH9aQ== root@mydomain.local.intra
          
       NOTE der "ssh-rsa" Key ist "eine" Zeile dh. achte darauf wenn die Information für "key-value"
            im nächste Schritt auf der FortiGate konfiguriert wird!

Auf der FortiGate führe folgendes aus:

       # config system admin
       # edit admin
       # set ssh-public-key1 "[key-type] [key-value]"
       # end
          
       Für unseres Beispiel würde das folgendes bedeuten:
          
       # config system admin
       # edit admin
       # set ssh-public-key1 "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsum+V+qTCDNAfjGCtgn/X771NZHveHJgHAfoi6JXjVpZ7Ojd7wQ/30jM7Ma8kwecbAdGV/MStq/lX2Z09qZ/Wkq3V0k+XctrNBOc5fR26vsMwZk5GeJuYLmhXD+agTNNDf1VfRhOKj7UcLoV45kKYBZwzkOFt1E0dODFcdOY+12LwVgAHGd5cPSR3tRXY07HEEnlob0fOSb6XuKZmpgBWhEfNbGBH2gI+bEJC9E9ZoqWYGF3Vi5RgvoeW8l9zSYwtj+zwG9VG0MN9SKJR6gAhqpSvSLsZEUkbNJ9zHocxMsIw4qZ+ATU9+QYhECJTfZmWWCuC1amyV+e1KljpiH9aQ== root@mydomain.local.intra"
       # end

Nun ist alles bereit dh. vom Linux System aus kann nun ein Test durchgeführt werden:

       # ssh admin@mydomain.local.intra
       The authenticity of host 'mydomian.local.intra (mydomain.local.intra)' can't be established.
       RSA key fingerprint is 71:cb:81:d8:2d:e0:09:82:0a:c1:e9:28:10:05:ad:35.
       Are you sure you want to continue connecting (yes/no)? yes
       Warning: Permanently added 'mydomain.local.intra' (RSA) to the list of known hosts.
       #
          
       NOTE Die Frage nach dem spezifischen Host der unsere FortiGate erscheint 
            nur einmal zu Beginn der ersten Verbindung! Bei der zweiten Verbindung
            erscheint diese Frage nicht mehr. Der Host auf dem zugegriffen wird dh.
            unsere FortiGate wird mit dessen Hostnamen und/oder IP im folgenden File
            abgelegt:
               
       # cat /root/.ssh/known_hosts
       mydomain.local.intra ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDrSes+GhiRczY3D/X+AzEHp8X+esH017S4VeqFs4yaGh8rbyUb/iGIoeixqJkB3B1YxLlQ7jc5kgHXspoDl5XN2uoUjd65mBpXZ61/cezNZR+YFmCKCsozHsNjO+LZsvfgXmW03tdX6lL53MzGZdYrW7AOzI2SOJXE7kDANMh5xQ==
       NOTE Wechselt der Name resp. die IP des Hosts muss der entsprechende Eintrag im
            File "known_hosts" gelöscht werden ansonsten wird der Zugriff verweigert!

Zusätzlich zum SSH Zugriff kann SCP für den Admin auf der FortiGate aktiviert werden. Dazu siehe folgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F

Um den Zugang zu tesen benutze vom Linux System aus folgendes Kommando:

       # scp admin@mydomain.local.intra:sys_config /root/
       sys_config                                                                   100%  104KB  20.7KB/s   00:05    
       # ls -la /root/sys_config
       -rw-------  1 root root 106032 Dec  9 13:31 sys_config

Dieser Vorgang kann nun benutzt werden um auf dem Linux ein autom. Backup der FortiGate zu erstellen! Dies kann zB anhand eines "crontab" Eintrages konfiguriert werden:

       # crontab -e
       
       -------------- crontab -------------- 
      
       30 3 * * 0 scp admin@mydomain.local.intra:sys_config /root/$(date +%Y%m%d)-sys_config
       
       -------------- crontab --------------
       
       NOTE Der Cron Eintrag hat folgende Bedeutung und Aufbau:
       
       * * * * *	[Path to script or command]
       
       *                Minuten (0-59)
         *              Stunden (0-23)
           *            TagDesMonats (1-31)
             *          Monat des Jahres (1-12)
               *        TagDerWoche (0-6 with 0=Sunday)

Wie kann ich für den User "admin" (Administrator) zusätzlich zum SSH SCP aktivieren?

Die Funktion SSH wird über folgende Positon aktiviert:

       System > Network > Interfaces > [Wähle das entsprechende Interface] > Administrative Access > [Aktiviere SSH]

Diese Konfiguration umfasst auschliesslich SSH (per Standard auf Port 22) und nicht SCP. Möchte man SCP für den Administrator zusätzlich zu SSH freischalten führe auf der Kommandozeile folgendes durch:

       # config system global 
       # set admin-scp enable 
       # end

Wie setze ich für den User "admin" (Administrator) das Timeout für SSH?

Per Standard gilt für den Administrator bezüglich SSH Timeout 2 Minuten (120 seconds). Um dieses Timeout anzupassen benutze folgenden Befehl auf der Console:

       # config system global
       # set admin-ssh-grace-time [Angaben der Sekunden von 0 - 3600]
       # end

Wie kann ich ein "Passwort Lockout" des User's "admin" (Administrator) konfigurieren/verändern?

Wenn ein Administrator sich 3 X falsch anmeldet wird ein "Lockout" ausgeführt dh. für eine bestimmte Zeit kann der Administrator sich nicht mehr anmelden. Die Anzahl der Versuche sowie die Zeitspanne kann angepasst werden dh. führe folgendes auf der Console aus:

       # config system global
       # set admin-lockout-threshold [Anzahl Möglichkeiten; Standard Wert ist 3]
       # set admin-lockout-duration [Zeitspanne in Sekunden; Stanard Wert ist 60]
       # end

Wie kann ich einen "read-only" Administrator konfigurieren/erstellen?

Unter folgender Positionen kann für eine "Administrator" ein eigenes "Profil" erstellt werden zB "read-only" und dieses nachträglich einem "read-only" Administrator als Profil zugewiesen werden:

       Datei:Fortinet-18.jpg
       Datei:Fortinet-19.jpg
       Datei:Fortinet-20.jpg
       Datei:Fortinet-21.jpg
       Datei:Fortinet-22.jpg

Wie aktiviere ich für einen lokalen User Two-Faktor Authentication anhand ODA?

Wenn man einen User lokal erfasst geschieht dies normalerweise anhand eines Usernamens und Passwortes. Möchte man nun -um die Sicherheit zu erhöhen- diesen User mit einem ODA (On Demand Authentication) versehen zB SMS Token kann dies auf Kommandozeile konfiguriert werden. Ausgangslage zu diesem Beispiel ist, dass ein Lokaler User mit Username und Passwort unter der folgenden Position erfasst wird:

       User & Device > User Definition > Create New
       
       NOTE Ab FortiOS 5.0.3 steht nach "Create New" ein Setup Wizard zur Verfügung. Wähle in diesem "Local User"
            und vergebe einen Usernamen und Passwort. Definiere für SMS eine Mobiel Nummer sowie den SMS Server
            jedoch aktiviere Two-Factor Authentication nicht! Dies geschieht über Kommandozeile!

Um nun dem lokalen User zusätzlich zum Usernamen und Passwort beim Login ein SMS Token zu senden (ODA) führe für den entsprechenden User den wir erfasst haben folgende Konfiguration aus:

       NOTE Wenn ein SMS Server erfasst werden soll dh. "Custom" und nicht "FortiGuard" erfasse/konfiguriere diesen. Wie
            das geschieht siehe folgender Artikel:
            
            Fortigate:FAQ#Wie_konfiguriere_ich_meinen_eigenen_SMS_Provider.2FServer.3F
       # config user local
       # edit [Wähle den entsprechenden User]
       # set two-factor [Wähle disable | fortitoken | email | sms]
       # set sms-server [Wähle fortiguard | custom]
       # set sms-custom-server [Wähle den entsprechenden "Custom" SMS Server sofern vorhanden]
       # set authtimeout [Setze das Timeout der Authentifizierung dh. "0 - 1440" wobei 0 = Global Konfiguration gilt]
       # set auth-concurrent-override [Sind mehrfache Login's erlaubt "enable | disable]
       # end
       
       NOTE Wenn für "authtimeout" 0 gewählt wird gilt die "Globale Konfiguration" diese wird folgendermassen
            definiert:
            
            # config system global
            # set two-factor-sms-expiry [Setze 30 bis 300 Sekunden; Standard ist 60 Sekunden gesetzt]
            # two-factor-email-expiry [Setze 30 bis 300 Sekunden; Standard ist 60 Sekunden gesetzt]
            # end

Der User kann nun zB für das SSL-VPN Portal konfiguriert werden. Wenn sich der User einloggt gibt er normal Usernamen und Passwort ein. Im Hintergrund werden die Informationen übermittelt und wenn der User auf SMS Two Factor Authentication gesetzt ist, wird ein SMS ausgelöst sofern Usernamen und Passwort korrekt verifiziert wurden. Dem User wird auf eine neue Seite weitergeleitet auf der er den ODA Token (On Demand Authentication) -der im über SMS zugesendet wird- eingegeben kann (Token Code:)!

       NOTE Die Seite des SMS Token Code Eingabe kann über die "Replacement Message Groups" modifiziert und angepasst
            werden!
            
            Fortigate:FAQ#Was_sind_.22Replacement_Message_Groups.22_und_wie_verwende_ich_diese.3F

Grundsätzlich kann die Funktion für jede Authentifizierung im Zusammenhang mit FortiGate benutzt werden inder ein User lokal definiert wird. Remote Authenentifizierungen innerhalb von Gruppen wie zB LDAP und/oder Radius können nicht zusätzlich mit einer Two Factor Authentification ausgestattet werden dazu benötigt man den FortiAuthenticator.

Wie kann ich für die User und Gruppen das Authentication Timoute setzen?

Ein "Authentication Timeout" kann auf Globaler Ebene gesetzt werden dh. für ALLE User oder auf gruppen Ebene für eine bestimmte Gruppe:

       Global für ALLE User:
       # config user setting
       # set auth-timeout [Anzahl Minuten; per Standard 5; Maximum 1440 minutes (24 Stunden)]
       # set auth-timeout-type [idle-timeout | hard-timeout | newsession]
       # end
       Auf Gruppen Ebene:
       # config user group
       # edit [Name der Gruppe]
       # set authtimeout [Anzahl Minuten; per Standard 0)
       # end
       
       NOTE Falls ein User Mitglied von mehreren User Gruppen ist, bei welchen jeweils ein gruppenspezifisches
            authtimeout konfiguriert wurde, gilt für den Benutzer das global definierte authtimeout (Default 5 Min.).

Was kann ich betreffend "User Authentication" auf globaler User Ebene sowie Grupen Ebene konfigurieren?

Betreffend Authentifizierung auf User Ebene sowie Gruppen Ebene sind verschiedenen Konfigurationen möglich. Eine davon wäre die Konfiguration des "Timeouts". Details siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timoute_setzen.3F

Zusätzlich zum "Timout" kann folgendes gesetzt werden:

       Global für ALLE User:
       # config user setting
       # set auth-blackout-time [Setze die "blackout-time"; 0 - 3600 Sekunden möglich; Standard 0] 
       # set auth-http-basic [enable | disable] 
       # set auth-invalid-max [Anzahl möglicher Authentifizierung bevor User geblockt wird; Standard 5]   
       # set auth-lockout-duration [Lockout Zeit in Sekunden; Standard 0]
       # set auth-lockout-threshold [Lockout Threshold; Danach wird "lockout-duration" ausgeführt; Standard 3]
       # set auth-multi-group [enable | disable]
       # set auth-secure-http [enable | disable]
       # set auth-type [ftp | http | https | telnet]
       # set auth-timeout [Anzahl Minuten; per Standard 5; Maximum 1440 minutes (24 Stunden)]
       # set auth-timeout-type [idle-timeout | hard-timeout | newsession]
       # config auth-ports
       # end
       NOTE Diese Konfiguration unter "config user setting" sind Global. In den Gruppen der User können diese Optionen mit Ausnahme des "Timeout's"
            nicht differenziert gesetzt werden da diese Optionen nur unter "config user setting" vorhanden sind. Auch in den local User setting dh.
            "config user local" kann mit Ausnhame des Timeouts diese Konfiguration anhand dieser Optionen nicht local für den User gesetzt werden
            da diese Optionen nur unter "config user setting" dh. Global zur Verfügung stehen. Zu den oben angegeben Optionen folgende Erläuterungen:
            
            auth-blackout-time         Bei der Blackout Time handelt es sich um folgendes: Wenn eine Authentifizierung innerhalb von einer Minute 5 Mal 
                                       falsch durchgeführt wird so wir die Source IP des Authentifizierenden für die Blackout Time gesperrt! 
            
            auth-http-basic            Wenn aktiviert wird so wird anstelle der Login Seite des Fortinet OS das reguläre Pop-Up Fenster des Browsers 
                                       angzeigt um die Authentifizierung durchzuführen. 
            
            auth-multi-group           (Standard aktiviert) steuern ob ein User -sei es local oder ActiveDirectory in mehrer Gruppen vorkommt. Ist dies 
                                       nicht der Fall dh. jeder User nur in einer Gruppe kann diese Funktion deaktiviert werden. Die Funktione
            
            auth-secure-http           Wird diese Option aktiviert so wird ein Redirect ausgeführt auf den sicheren Port HTTPS (per Standard deaktiviert)
            
            auth-type                  Wenn der User eine Authentifizierung durchführen soll betreffend einer Firewall Policy können hier die verschiedene
                                       Protokolle die für diese Authentifizierung benutzt werden sollen aktiviert/deaktiviert werden. Per Standard sind alle
                                       Protokolle aktiviert/definiert.
            
            config auth-ports          Werden keine Standard Ports benutzt für "ftp | http | https | telnet" können diese "nicht" Standard Ports hier definiert
                                       werden.

Redirection

In einer Redirection zB für eine Authentifizierung wird auf der Fortigate die IP anstelle des FQDN benutzt?

Wenn zB in einer "Identiy Based Policy" zB für HTTPS Zugriff (User muss sich Authentifizieren um HTTPS aufzurufen) benutzt wird so wird sobald der User eine HTTPS Seite aufruft ein Redirect auf die Authentifizierungs Seite (ebenfalls ein HTTPS Port; Standard 1003) der Fortigate ausgelöst. Die Weiterleitung auf diese Authentifizierungs Seite geschieht IP basierend dh. im Link der Authentifizierungs Seite erscheint die interne IP der Fortigate. Wird mit Zertifikaten gearbeitet löst dies jedoch wieder eine Zertifikats Hinweis/Fehlermeldung aus da das Zertifikat Namens Basierend ist und nicht IP basierend. Die Lösung wäre den Redirect Namens basierend auszulösen und nicht IP basierend.

       NOTE Der Lösungsansatz den Redirect Namens basierend auszulösen und nicht IP basierend ist auch dann in Anwendung zu
            bringen wenn der User hinter einem NAT Device (zB Router) sitzt!

Für das bessere Verständnis nachfolgend ein kurzes Schema wie so ein Redirect ausgelöst wird (per Standard):

       | USER |  ----> network -----> | FortiGate | -- HTTPS Site/Resources
       
       1 -------->       User "matched" eine Firewall Rule/Policy für HTTPS in der "Identiy Based Policy" aktiviert ist
       2 <-------        Ein Redirect auf einen HTTPS Port (Standard 1003) und auf eine IP Adresse der Fortigate wird ausgelöst
       3 -------->       User führt Authentifizierung aus
       4 -------->       User Authentifiziert sich erfolgreich und wird zur gewünschten HTTPS Seite weitergeleitet

Nachfolgend wird über die Console aufgezeigt wie die Konfiguration durchzuführen ist damit ein FQDN (Fully Qualified Domain Name) benutzt wird anstelle der IP:

       ACHTUNG Der benutzte FQDN muss sauber "intern" aufgelöst werden können. Wird ein externes Zertifikat benutzt das extern mit einer
               Public IP auflöst muss anhand eines Split DNS Servers die nötigen Konfiguration durchgeführt werden damit "intern" der
               FQDN mit einer "internen" IP aufgelöst wird. Ist intern kein Splitt DNS Server vorhanden kann die Fortigate herangezogen
               werden um dies zu erreichen!
                     
                     Fortigate:FAQ#Kann_ich_auf_der_Fortigate_einen_Splitt_DNS_Server_einrichten.3F
       # config firewall policy
       # edit [Gebe die entsprechende Policy ID an inder die "Identiy Based Policy" für HTTPS Zugriff aktiviert wurde]
       # set auth-redirect-addr "[Gebe hier den Fully Qualified Domain Name an]"
       # next
       # end

Wenn es nötig wird eine spezielle IP Adresse zu definieren (zB NAT Device) dann kann auch eine IP definiert werden:

       # config firewall policy
       # edit <my_policy_ID>
       # set auth-redirect-addr "[Definiere hier die spezielle IP Adresse zB NAT IP Adresse]"
       # next
       # end

Wenn man den Standard Port 1003 verändern möchte dh. auf einen anderen Port dann benütze folgendes:

       # config system global
       # set auth-https-port [Setze hier den gewünschten HTTPS Port]
       # end

Möchte man HTTP für die Authentifizierung ebenfalls aktivieren (Per Standard deaktiviert) führe folgendes aus:

       # config user setting
       # set auth-secure-http enable
       # end

Authentication

Wie kann ich eine Two-Factor Authentication zB ODA implementieren?

ODA steht für "On Demand Authentication" was wiederum zu vestehen ist ist als "Auf Abruf". Diese Authentifizierungs Methode ist die Gleiche wie eine Token Authentifizierung jedoch wird bei ODA diese durch den User selber ausgelöst (On Demand). Für weitere Informationen siehe folgender Artikel:

       Fortigate:FAQ#Wie_aktiviere_ich_f.C3.BCr_einen_lokalen_User_Two-Faktor_Authentication_anhand_ODA.3F

Was sind "Replacement Message Groups" und wie verwende ich diese?

"Replacement Message's" stellen die verschiedenen Informationen/Nachrichten dar, die eine FortiGate in verschiedenen Situationen ausgiebt/anzeigt. Wenn zB eine Authentifizierung durchgeführt wird so wird dem User eine "Login Page" vom Device zur Verfügung gestellt um Username und Passwort eingeben zu können. Solche eine "Login Page" stellt eine "Replacement Message" dar in der Kategorie (Group Type) "Authentication. Diese Seiten können benutzerspezifisch Angepasst werden (HTML Code) über die "Replacement Message's":

       System > Config > Replacement Message
       
       NOTE Auf der Seite "Replacement Message" kann oben Rechts zwischen "Simple View" und/oder 
            "Extended View" umgeschaltet werden! Wenn "Extended View" angewählt wird stehen zusätzliche
            "Replacement Message's" zur Verfügung!

Wenn man eine Seite unter der vorhergehenden Position abändert, gelten diese Aenderungen "Global" dh. wenn man unter "Authentication" die "Log Page" ändert gilt diese Aenderung für jede "Login Page" für die Funktion "Authentication" auf der gesamten FortiGate! Dies ist nicht immer gewünscht dh. idealer wäre es die "Login Page" für einen bestimmten Zweck zu ändern, jedoch die "globale" Login Page unverändert zu lassen. Dies kann über die Funktion "Replacement Message Groups" bewerkstelligt werden dh. man erstellt eine Gruppe, definierte diese in der Funktion dh. zB "Authentication" und darin befinden sich nachträglich alle Seiten wie "Login Page". Diese können in dieser Gruppe abgeändert werden. Nach der Aenderung weisst man diese Gruppe der entsprechenden Funktion zB der Policy (zB FortiOS 5.0 Identity Based Policy) hinzu. So können für verschiedene Policy's und Funktionen verschiedenen Seiten zur Verfügung gestellt werden ohne die globalen Seiten abzuändern. Damit man eine "Replacement Message Group" erstellen kann muss zuerst diese Funktion aktiviert werden:

       System > Admin > Settings > Replacement Message Groups
       
       NOTE Ab FortiOS 5.0.3 / 5.2 steht dieser Menüpunkt noch unter "System > Admin > Settings" noch unter "System > Config > Features" 
            zur Verfügung und muss über Kommandozeile aktiviert werden. Der Befehl um den entsprechenden Menüpunkt einzublenden lautet:
            
            # config system global
            # set gui-replacement-message-groups enable
            # end
            
            Nach erneuten Einloggen auf dem WebGui sollte nun der entsprechende Menüpunkt erscheinen:
            
            System > Config > Replacement Message Groups

Wird unter den "Replacement Message Groups" eine neue Gruppe anhand "Create New" erfasst, werden die entsprechenden "Replacement Message's" Seiten in folgenden Kategoriern (Group Type) eingeteilt:

       UTM
       Authentication
       Endpoint Control
       Captive Portal

Nun kann innerhalb dieses Menüs eine neue "Replacement Message Groups" erstellt werden anhand von "Create New":

      Fortinet-752.jpg
      
      NOTE Vergebe einen Namen sowie den "Group Type" der die Funktion darstellt wie zB "Authentication"!

Nun kann man innerhalb dieser erstellten Gruppe anhand eines "WYSIWYG" (What You See Is What You Get) die Seiten abgeändert werden inkl. Logos etc. Sind die Modifikationen abgeschlossen muss nun die entsprechende "Replacement Message Group" der entsprechenden Funktion zB Policy zugewisen werden. Für eine "Identity Based Policy" wird das folgendermassen durchgeführt:

       NOTE Unter FortiOS 5.2 existieren keine "Identity Based Policy" mehr sondern sind in der "regulären"
            Firewall anhand von Gruppen/Usern sowie Devices integriert. Die Funktion unter FortiOS 5.2 ist 
            jedoch identisch.
       # config firewall policy
       # edit [Gebe die entsprechende Policy ID an]
       # set replacemsg-override-group [Gebe den Namen an der "Replacement Message Group"]
       # end
       
       NOTE Die Aenderung ist über Mgmt. WebInterface in der entsprechenden Policy nicht ersichtlich dh. unter der 
            Position "Customize Authentication Messages" wird zwar die korrekte und gesetzte "Replacement Message
            Group" gesetzt jedoch sieht man nicht den Namen der gesetzten Gruppe. Diese ist nur über CLI erruirbar
            oder über "System > Config > Replacement Message Group" dh. über die "Ref." (Referenzen) Position! Dies
            gilt für FortiOS 5.0 sowie FortiOS 5.2!

Wie kann ich einen Radius Server Anbindung Troubleshooten?

Nun ein Radius Server wird auf der FortiGate über die folgenden Position konfiguriert resp. hinzugefügt:

       User & Device > Authentication > RADIUS Servers

Dabei werden Angaben wie der Name (FQDN) sowie die IP des Radius Server angegeben. Die Konfiguration des Radius Server geschieht auf der FortiGate anhand eines "Preshared Key" (Server Secret). Ebenso wird die FortiGate auf dem Radius Server als sogenannten "Radius Client" erfasst und zwar mit demselben "Preshared Key". Anhand dieser Einträge sowie des "Preshared Key" wird der Traffic über TCP 1812 (New Radius) sowie -sofern benutzt- für das Accounting TCP 1813 verschlüsselt und Authorisiert. Die Etablierung der Authentifizierung kann über die FortiGate - sofern diese als Radius Client auf dem Radius Server erfasst wurde - anhand des "Test" Button durchgeführt werden. Um die Komunikation zwischen dem Radius Client und Server zu überprüfen stehen folgende Diagnose Kommandos zur Verfügung:

       Teste einene entsprechenden User mit dessen Passwort:
       
       # diagnose test authsever radius server [Gebe das Protokoll an zB pap | chap] [Gebe einen entsprechenden User an] [Gebe das Passwort an des gewählten Users]
       Kontrolliere den Traffic über den entsprechenden Port:
       
       # diagnose sniffer packet [Name des Interfaces zB "internal"] 'port 1812' 3
       
       NOTE Weiter Informationen betreffend "Sniffer" Kommando siehe nachfolgenden ARtikel:
            
            Fortigate:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F

Muss der Radius Port von New Radius 1812 auf Old Radius 1645 gewechselt werden führe folgendes auf der Kommandozeile durch:

            # config system global
            # get | grep radius-port
            radius-port           :1812
            
            # set radius-port 1645
            # get | grep radius-port
            radius-port           :1645
            
            # end

Active Directory (LDAP)

Wie binde ich ein Active Directory (LDAP) für eine Authentifizierung ein?

Nun um ein ActiveDirectory für verschiedenen Authentifizierungen einzubinden gehe folgendermassen vor:

       User & Device > Authentication > LDAP Server > Create New
       
       Datei:Fortinet-719.jpg
       
       NOTE Für "Regular" (empfohlen) muss ein Active Directory User erstellt werden mit einem entsprechenden Passwort.
            Es wird empfohlen diesen User als Read/Only Administrator zu erfassen und diesem Rechte über das ganzen Tree resp.
            Active Directory zu vergeben. Natürlich ist es möglich eine regulären User zu erfassen (nicht Administrator)
            und diesem die entsprechenden Rechte im Active Directory zu vergeben! Sobald der entsprechende User mit dessen
            Passwort unter "Regular" konfiguriert wurde kann anhand des Button "Test" die Konfiguration getestet werden. Dieser
            Test beinhaltet nur den Access dh. es zeigt nicht ob durch das Active Directy ein "browsing" durchgeführt werden 
            kann. Möchte man dies Testen so benutze das gezeigte "icon" denn damit lässt sich das Active Directory effektiv
            öffnen:
            
            Fortinet-837.jpg
            
            Wenn die Verbindung zum Active Directory verschlüsselt durchgeführt werden soll (Port 689) so muss ein entsprechendes
            Certificat definiert werden denn diese Verbindung basiert auf einer SSL Verbindung! Es stehen LDAPS sowie STARTTLS zur
            Verfügung.

Sobald die Active Directory (LDAP) Konfiguration erfolgreich durchgeführt wurde kann nun eine Gruppe erstellt werden um dort das Active Directory einzubinden:

       User & Device > User > User Group
       
       Datei:Fortinet-720.jpg
       
       NOTE Nun im unteren Bereich anhand des "Add" Button kann der entsprechende Active Directory (LDAP) Server hinzugefügt werden.
            Die Position "Any" bedeutet, dass ein entsprechender User (Active Directory Username) über das "ganze" Active Directory 
            mit dessem Tree durchsucht wird. Wir der entsprechende User gefunden wird die Authentifizierung durchgführt. Die Position
            "Specify" gibt die Möglichkeit eine Gruppe zu definieren. Anhand dieser Definition wird wiederum der Tree des Active 
            Directory durchsucht um festzustellen ob der User der eine Authentifizierung durchführt Mitglied ist dieser Gruppe. Ist
            dies der Fall wird eine Authentifizierung durchgeführt. Der Gruppen Name der unter "Specify" angegeben wird muss "unique"
            sein dh. wenn mehrer Gruppen mit dem gleichen Name im Tree des Active Directory existieren gilt "Top Down first Match wins".
            Wenn mehrere Gruppen definiert werden soll so kann anhand des "Add" Button eine weitere Zeile mit einer weiteren Gruppen
            Definition hinzugefügt werden.

Die Generellen Vorbereitungen für eine Active Directory Authentifizierung sind abgeschlossen nun kann diese Konfiguration für verschiedenen weitere Konfigurationen benutzt werden wie:

       Fortigate:FAQ#Kann_ich_f.C3.BCr_einen_Webfilter_betreffend_.22Local_Category.22_eine_Authentifizierung_.28authenticate.29_.C3.BCber_Active_Directory_.28LDAP.29_konfigurieren.3F
       Fortigate:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Nachfolgend einige wichtige Informationen betreffend einer Anbindung eines Active Directory's dh. welche Ueberlegungen durchgeführt werden sollten sowie welche Möglichkeiten zur Verfügung stehen:

       Bestimmung und Identifizierung folgender LDAP Komponenten:
       
       • User
       • User group
       • container (Shared folder)
       • Organization unit (ou)
       Die Komponenten besitzen folgende Active Directory Struktur:
       
       • root wird definiert als dcorganizational unit wird definiert als oucontainer oder user/group wird definiert als cn

Daraus resultiert der dn dh. im Klartext werden die Struktur vom User zu root aufgelistet. Um den dn zu ermitteln gehen wir von folgenden Beispiel aus:

       Datei:Fortinet-205.jpg

Somit ergiebt sich folgendes:

       • ou=Testou2
       • ou=Testou1
       • ou=Vancouver
       • dc=get
       • dc=local
       • cn=Users
       • dc=get
       • dc=local
       SIMPLE BINDING WITHOUT GROUP SEARCH
       
       Nachfolgends Beispiel zeigt eine Anbindung ohne "group search" Funktion (simple binding). Dies wird benutzt, wenn 
       die User die Authentifiziert werden müssenk, direkt in containers oder organizational units befinden dh. in 
       unserem Beispiel sind die User "Testou1" und "Testou2" in der organizational unit "Vancouver". Somit ergiebt sich 
       folgendes:
       
               Vancouver --> get --> local 
               
               oder
               
               • ou=Vancouver
               • dc=get
               • dc=local
       
       Um dies zu konfiguriere gebe auf der Console folgendes ein:
       
               # config user ldap
               # edit ldaptest
               # set server [Active Directory Server IP]
               # set cnid cn
               # set dn ou=Vancouver,dc=get,dc=local
               # next
               # end
               
               ACHTUNG Nur User die direkt in der organizational unit "Vancouver" drin sind werden authentifiziert. 
                       User die nicht in dieser organizational unit oder unter "childs" (ous) von der organizational unit
                       "Vancouver" drin sind werden nicht authentifiziert. Ebenfalls User die in Gruppen drin sind, die 
                       unter der organizational  unit "Vangouver" drin sind, werden nicht authentifiziert.
       REGULAR BINDING WITHOUT GROUP SEARCH
       
       Nachfolgends Beispiel zeigt ebenfalls eine Anbindung ohne "group search" Funktion (regular binding) jedoch 
       befinden sich die User in verschiedenen containers und/oder organizational units! Für diese Art der 
       Konfiguration wird ein username und password benötigt um die Anbidung an das Active Directory durchzuführen. 
       Für diesen Zweck sollte auf dem Active Directory ein spezieller User erstellt werden der über die nötigen Rechte verfügt
       in die vers. containers oder organizational units' reinzuschauen (Read Only Administrator). In unserem Beispiel 
       wären dies der User "user1ou1" in der orgainizational unit "ou1":
       
               # config user ldap
               # edit testldap
               # set server [Active Directory Server IP]
               # set cnid cn
               # set dn dc=get,dc=local
               # set type regular
               # set username cn=user1ou1,ou=ou1,dc=get,dc=local
               # set password [Passwort des Users user1ou1]
               # next
               # end
            
               ACHTUNG In diesem Beispiel spielt es keine Rolle "wo" sich die User befinden dh. in welchen "containers" 
                       und/oder "organizational units".
       SIMPLE BINDING WITH GROUP SEARCH
       
       Nachfolgends Beispiel zeigt eine Anbindung mit "group search" Funktion (simple binding). Dies wird benutzt, wenn 
       die User die Authentifiziert werden müssenk zu einer bestimmten Gruppe gehören und ALLE User dieser Gruppe liegen im
       gleichen containers oder organizational units! Es ergiebt sich folgendes wenn eine Gruppe "Test Users"
       existiert im container "Builtin" sowie alle Mitglieder der Gruppe "Test Users" in dem container "Users" befinden:
       folgendes:
       
               Builtin > Test Users --> get --> local 
               
               oder
               
               • cn=Test Users
               • cn=Builtin
               • dc=get
               • dc=local
       
       Um dies zu konfigurieren gebe folgendes über die Console ein:
       
               # config user ldap
               # edit ldaptest
               # set server [Active Directory Server IP]
               # set cnid cn
               # set dn cn=Users,dc=get,dc=local
               # set group cn="Test Users",cn=Builtin,dc=get,dc=local
               # next
               # end
       
               ACHTUNG Wenn in den Namen Leerschläge vorkommen dh. wie in unserem Beispiel "Test Users" so muss bei 
                       der Konfiguration der Name mit Hochkommas angegeben werden!
       REGULAR BINDING WITH GROUP SEARCH
       
       Nachfolgends Beispiel zeigt ebenfalls eine Anbindung mit "group search" Funktion (regular binding) jedoch 
       befinden sich die User in Gruppen und diesen Gruppen in verschiedenen containers und/oder orgainizational
       units. Ebenfalls können dies Mitglieder dieser Gruppe in "child" oder "parent" container existieren! Für diesen
       Zweck sollte auf dem Active Directory ein spezieller User erstellt werden der über die nötigen Rechte verfügt in 
       die vers. containers oder organizational units' reinzuschauen (Read Only Administrator). In unserem Beispiel 
       wären dies der User "user1ou1" in der orgainizational unit "ou1":
       
               Builtin > Test Users --> get --> local 
               
               oder
               
               • cn=Test Users
               • cn=Builtin
               • dc=get
               • dc=local
       
       Um dies zu konfigurieren gebe folgendes über die Console ein:
       
               # config user ldap
               # edit ldaptest
               # set server 10.151.0.35
               # set cnid cn
               # set dn "dc=get,dc=local"
               # set type regular        
               # set username cn=user1ou1,ou=ou1,dc=get,dc=local
               # set password [Passwort des Users user1ou1]
               # set group cn="Test Users",cn=Builtin,dc=get,dc=local  
               # next 
               # end

Um eine Verbindung betreffend "Active Direktory" zu debuggen benütze folgendes:

       Fortigate:FAQ#Wie_kann_ich_eine_.22Active_Directory.22_.28LDAP.29_Anbindung_debuggen.3F

Wie kann ich für eine Active Directory (LDAP) Anbindung ein Passwort Expyring Renewal Nachricht konfigurieren?

Wenn zB ein SSL-VPN betreffend Authentifizierung über ein Active Directory konfiguriert wird ist zu berücksichtigen, dass wenn ein "Passwort Renewal" konfiguriert wurde im Active Directory, dies ebenfalls für die Active Directory Anbindung auf der FortiGate zu konfigurieren ist. Dies bedeutet führe folgendes durch in der CLI um die "Expyring" Warnung sowie das "Renewal" zu aktivieren:

      # config user ldap
      # edit [LDAP Server Name]
      # set password-expiry-warning [enable oder disable]
      # set password-renewal [enable oder disable]
      # end
      
      NOTE Wird diese Konfigurtion durchgeführt muss berücksichtigt werden, dass die LDAP Anbindung auf der
           FortiGate anhand eines Administrators durchgeführt wird der "Read/Write" Rechte besitzt, denn wenn
           die Funktion "password-renewal" aktiviert ist so muss ein Schreibprozess durch die LDAP Anbindung
           auf der FortiGate in das ActiveDirecory erfolgen! Ohne Read/Write Rechte des Administrators -der
           die Anbindung zum ActiveDirectory ermöglicht- kann dieser Schreibprozess nicht erfolgen. Im Grundsatz
           wird dies nicht empfohlen!

Kann ich einen WiFi Client/Workstation über einen Active Directory LDAP Server unter Benutzung von WPA/WPA2 Authentifizieren?

Ein LDAP Server wird für WiFi Clients/Workstations unterstützt, jedoch nicht JEDER LDAP Server. Dies bedeutet der LDAP Server muss der FortiGate erlauben das Passwort des WiFi Clients/Workstation über "Clear-Text" zu erhalten.

Windows Active Directory unterstützt diese Art dh. "Clear-Text" Uebermittlung nicht. Aus diesem Grund müssen WiFi Clients/Workstations für WPA/WPA2 LDAP Authentifizierung über einen OpenLDAP eingebunden werden.

Der Grund für diesen Umstand ist, das WPA und WPA2 Sicherheits Protokolle vers. Hash Schemas verwenden die nicht Windows Active Directory LDAP Kompatibel sind. Diese System Unterstützen nicht die Anbindung (Service Protokolle) in dieser Art und Weise. Das ist der Grund wieso für WPA/WPA2 LDAP die Anbindungen über OpenLDAP Server geschehen muss.

       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33251&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=33038401&stateId=0

Um das Problem zu umgehen -wenn OpenLDAP nicht in Frage käme- wäre eine Lösung die Authentifizierung über Radius durchzuführen auf einen Device der per Active Directory Anbindung die Authentifizierung überprüft. Dies bedeutet der Device der über Radius angesprochen wird agiert als Uebersetzer. Der Device der hier eingesetzt werden kann wäre zB ein "Fortinet Authenticator", "RSA ACE Server" oder ein "Microsoft ISA Server".

Wie kann ich eine "Active Directory" (LDAP) Anbindung debuggen?

Um eine "LDAP" Anbindung zu testen kann folgender "diagnose debug" Befehl ausgeführt werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application fnbamd –1
       
       NOTE Beim "fnbadm" handelt es sich um den "Fortigate non-blocking auth deamon"!
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere die Debug Funktion
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück
       
       # diagnose debug reset

Wie kann ich eine "Active Directory" (LDAP) Anbindung testen?

Um eine Anbindung zu einem Active Directory auf "User" Basis zu testen kann folgender "diagnose test" Befehl ausgeführt werden:

       # diagnose test authserver [Name Windows LDAP Server] [Username] [Passwort]
       authenticate '[Username]' against 'WindowsLDAP' succeeded!

Eine "Active Directory" Replizierung funktioniert nicht über ein VPN Tunnel (netbios forward)?

Wenn zwei FortiGate's verbunden werden über einen VPN Tunnel und über diesen eine "Active Directory" Replizierung durchgeführt wird so wird dieser Traffic geblockt. Der Grund dafür ist das der "netbios" Traffic "forward" nicht über ein Interface per Standard erlaubt ist. Um diesen Traffic dennoch zu erlauben muss auf dem entsprechenden Interface "netbios" erlaubt werden:

       # config system interface
       # edit [Name des Interface]
       # set netbios-forwarding enable
       # end
       
       NOTE Diese Konfiguration ist durchzuführen für eine NAT Firewall. Wird eine Transparent
            Firewall benutzt resp. muss "netbios forward" über eine Transparent Firewall konfiguriert
            werden muss folgendes Kommando abgesetzt werden:
            
            # config system interface
            # edit [Name des Interface]
            # set l2forward enable
            # end

FSSO (Fortinet Single-Sign-On)

Wie ist FSSO zu verstehen?

FSSO steht für "Fortinet Single-Sign-On" und steht im Zusammenhang mit "Directory Services". Es werden Windows Active Directory unterstützt sowie Novell eDirecotry. FSSO wird ebenfalls durch FSAE (Fortinet Server Authentication Extension) benutzt oder früher war FSSO auch bekannt als "Fortinet Server".

Was kann mit FSSO durchgeführt/angezeigt werden?

FSSO kann folgende Information verarbeiten:

       > Zeigt Login Events an
       > Zeigt Workstation Name, Domain und User an
       > Löst den Workstation Name zur korrespondierenden IP Adresse auf
       > Löst Gruppen auf zu dessen User Mitglieder sind
       > Sendet Login Informationen zum Fortigate Device
       > Erstellt Log Einträge auf dem Fortigate Device

Grundsätzlich gilt: Die FSSO Funktion überwacht welche User über Active Directory oder eDirecorry eingeloggt sind und leitet diese Information dem Fortigate Device weiter! Ist der User Mitglied einer Gruppe die in einer Policy definiert wurde, erhält der User Zugriff auf die Netzwerk Resource!

Es gibt zwei Arten wie FSSO arbeitet; welche sind das?

FSSO kann in zwei vers. Arten ausgeführt werden:

       Domain Controller Agent mode
       Polling mode

Wie funktioniert der "Controller Agent mode"?

Für den "Controller Agent mode" muss auf jedem Domain Controller der Domain Controller Agent installiert werden. Zusätzlich auf einem Windows Server der Wahl muss der Collector Agent installiert werden. Dieser "Collector Agent" erhält die Login Informationen übe den "Domain Controller Agent" und leitet diese dem Fortigate Device weiter. Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy.

       NOTE In dieser Konstellation gilt als Nachteil, dass auf jedem Domain Controller ein Agent 
            (Software) zu installieren ist. In grossen Umgebungen kann dies einigen Aufwand bringen. 
            Für die korrekte Uebermittlung der Informationen zum Collector Agent muss zwischen dem 
            Domain Controller und Collector Agent eine garantierte Bandbreite von 64 kb zur Verfügung 
            stehen.

Wie funktioniert der "Polling mode"?

Für den "Polling mode" muss auf dem Domain Controller kein "Domain Controller Agent" installiert werden. Es reicht den Collector Agent auf einem Server der Wahl zu installieren. Der "Collector Agent" weist den Domain Controller in kurzen (wenige Sekunden) Abständen an (polling) die Login Informationen der User zu übermitteln um diese sogleich dem Fortigate Device weiterzuleiten. Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy.

       NOTE Wenn der "Domain Controller" ausgelastet ist, kann es vorkommen das Login Informationen nicht 
            durch den "Collector Agent" verifiziert werden. Dies gilt als Nachteil wobei in grossen 
            Environemnts mit vielen Domain Controllern der Vorteil übewiegt nicht auf jedem Domain 
            Controller eine Software zu installieren da die Installation eines Collector Agents ausreicht!

Ueber welchen Port kommuniziert FSSO (Collector Agent) und der Fortigate Device?

FSSO (Collectory Agent) benutzt den Port 8256 für die Uebermittlung der Informationen zum Fortigate Device!

Kann NTLM im Zusammenhang mit FSSO benutzt werden?

Ja dies ist möglich. In so einer Konstellation initiert der Fortigate Device eine NTLM Komunikation (negotiation) mit dem Client Browser (Internet Explorer only; FireFox benötigt ein NTLM Plug-In). Der Fortigate Device übermittelt die NTML Package zum "Fortigate Collector" und dieser überprüft die Informationen über den "Domain Controller". Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy. Auf der entsprechenden Rule muss für die Identity Based Policy folgende Optionen gesetzt werden:

       # config firewall policy 
       # edit [Gebe den Integer an der entsprechenden Policy] 
       # set srcintf [Gebe das Source Interface an] 
       # set dstintf [Gebe das Destination Interface an] 
       # set srcaddr [Definiere die Source Adresse/n an]
       # set dstaddr [Definiere die Destination Adresse/n an]
       # set action accept 
       # set service "webproxy" 
       # set identity-based [enable]
       # set ip-based [enable]
       # set active-auth-method [ntlm]
       # set sso-auth-method [fsso]
       # edit [Gebe den Integer an einer neuen Identity Based Policy zB "1"] 
       # set schedule "always" 
       # set utm-status [enable]
       # set groups [Definiere eine Active Directory Gruppe] 
       # set webfilter-profile [Definiere einen entsprechenden WebFilter]
       # set profile-protocol-options [Definiere ein entsprechendes Profil] 
       # next
       # end

Wie kontrolliere ich ob der FSSO "Collector Agent" und die Fortigate zusammen kommunzieren?

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application auth 8256
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable

Nach Gebrauch deaktivieren wieder den debug Modus!

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

Wie kann ich kontrolliere welche User moment eingeloggt sind über FSSO?

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug authd fsso list
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       NOTE Zusätzlich zu der Angaben "auth fsso list" kann "firewall auth list" benützt werden um die
            Authentifizierung an der Firewall anzuzeigen!

Desweiteren steht anstelle von "list" noch folgende Parameter zur Verfügung:

       clear logon      (Löscht alle Login Informationen)
       list             (Listes alle momentan Login auf)
       refresh-groups   (Erneure das Group Mapping)
       refresh-logons   (Re-Synchronisiere die Login Database)
       server status    (Zeige FSSO Server Verbindungen)
       summary          (Summary der momentanen Login's)

Um den Debug auszuschalten führe folgendes aus:

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

HA (High Availibility)

Gibt es für Cluster (Hardware und/oder Virtuell) Spezielle Konditionen bei Fortinet?

Nun Fortinet bietet seinen Resellern Spezielle Konditionen auf Hardware (keine speziellen Konditionen auf Virtuell Appliance sprich VMware) für einen Cluster! Dabei gelten folgenden Vorrausetzungen:

       -> Nur auf Hardware 100D oder grösser
       -> Hardware muss identisch sein dh. zB 2 X 100D
       -> FortiCare (min. 8 X 5) und FortiGuard (Bundle) muss bezogen werden für jeden Node (ab 1000C "Next Generation Firewall" FortiGuard Update Service möglich)
       -> Minimum Laufzeit für FortiCare (min. 8 X 5) und FortiGuard für jeden Node mind. 2 Jahre
       -> Darauffolgende Jahre FortiCare (min. 8 X 5) und FortiGuard keine speziellen Konditionen für 1 Jahr Renewal
       -> Darauffolgende Jahre FortiCare (min. 8 X 5) und FortiGuard spezielle Konditionen für 2 Jahr Renewal oder mehr

Folgende Konditionen gelten für Hardware und/oder Services:

       -> Hardware = 1ter Node 100% (Regulärer Partnerpreis)
                     2ter node 50% auf Regulärer Partnerpreis
          
          Bedeutet
          Listenpreis minus Partner Status Discount zB Bronze 25% = Regulärer Partnerpreis
          Regulärer Partnerpreis minus Cluster Discount 50% = Cluster Konditionen Hardware
       -> Service (FortiCare / FortiGuard (Bundle) ) = 1ter Node 100% (Regulärer Partnerpreis)
                                                       2ter node 30% auf Regulärer Partnerpreis
          
          Bedeutet
          Listenpreis minus Partner Status Discount zB Bronze 12.5% = Regulärer Partnerpreis
          Regulärer Partnerpreis minus Cluster Discount 30% = Cluster Konditionen Service

Folgende Dokumente geben detailliert Auskunft über das oben beschriebene:

       Datei:FORTINET ALPS High Availability Policy.pdf
       Datei:Fortinet HApolicy Discount-Matrix-Reseller.pdf

Kann ich mit unterschiedlichen FortiGate Hardware einen Cluster bauen?

Nun grundsätzlich Nein dh. das FGCP (FortiGate Cluster Protokoll) basiert auf der Hardware dh. mit unterschiedlicher FortiGate Hardware zB FG-60C mit FG-60D kann KEIN Cluster gebaut werden. Auch innerhalb der gleichen Devices gibt es vers. Revisionen sowie Hardware Generationen. Weitere Informationen betreffend Hardware Revisions/Generationen siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_verifiziere_ich_die_Hardware_Revision_eines_FortiGate_Devices.3F

Diese Ueberprüfung der gleichen Hardware Revisions/Generationen kann mit folgenden Befehl deaktiviert werden:

       # execute ha ignore-hardware-revision status
       The ignore mode is disabled

Im normal Fall wird Hardware für einen Cluster als Cluster Hardware bezogen dh. um in den Genuss der Cluster Konditionen zu kommen. Weitere Informationen siehe folgender Artikel:

       Fortigate:FAQ#Gibt_es_f.C3.BCr_Cluster_.28Hardware_und.2Foder_Virtuell.29_Spezielle_Konditionen_bei_Fortinet.3F

Dies bedeutet wird ein Hardware Device als Standalone bezogen, und erst später daraus ein Cluster gebaut, kommt man nicht in den Genuss der Cluster Konditionen. Ebenfalls kann diese Situation einige Probleme verursachen dh. wenn es sich beim zusätzlichen Node um eine andere Hardware Revision/Generation handelt, muss nachfolgender Befehl auf der Kommandozeile abgesetzt werden um die unterschiedlichen Revisionen/Generation innerhalb des FGCP zu ignorieren:

       # execute ha ignore-hardware-revision enable
       
       # execute ha ignore-hardware-revision status
       The ignore mode is enabled

Desweiteren darf sich die Hardware von beiden Nodes nicht unterscheiden dh. beiden müssen über die gleiche Anzahl/Art Interface verfügen. Ebenfalls müssen beiden Nodes über eine Disk in der gleichen Grösse verfügen. Ist dies zB nicht der Fall können die Disk zB unformatiert bleiben, sprich dadurch sind diese nicht mehr in Gebrauch und werden ignoriert.

       NOTE Es ist zu empfehlen gleiche Hardware in einem Cluster jedoch mit unterschiedlichen Revisions etc. zu verhindern,
            denn dies kann zu Problemen führen im Betrieb des Clusters. Wichtig ist auch, dass bei einem allfälligen RMA
            Austausch klar für den Device der auszutauschen ist, den Hinweis zu liefern, dass dieser in einem Cluster benützt
            wird (Serien Nummer). Somit ist gewährleistet, dass Fortinet als Austausch eine kompatiblen Device liefert. Ist/Wäre 
            dieser Device für einen Austausch nicht mehr lieferbar sendet Fortinet zwei Devices mit gleicher Revisions.

Ist es möglich ein FortiGate Cluster zu konfigurieren wenn DHCP/PPPoE auf den Interfaces benutzt wird (HA)?

Bis anhin war dies nicht möglich unter FortiOS 5.0. Dies bedeutet, war ein Interface -ob in Gebrauch oder nicht- als DHCP und/oder PPPoE definiert stand der Befehl "config system ha" nicht zur Verfügung. Neu ist unter FortiOS 5.2 dies möglich dh. für Active-Passive Cluster. Weitere Informationen wie ein Active-Passive Cluster konfiguriert wird siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F

Wie setze ich für Fortigate einen Cluster auf (HA)?

Wenn man einen Cluster (HA) für zwei Fortigate aufsetzen möchte dann ist folgendes dabei zu beachten:

       -> Gleiche Hardware Konfiguration (Kein Support für unterschiedliche Modelle in einem Cluster)
       -> Gleiche Konfiguration/Grösse für die Harddisk
       -> Gleiche Zusatz Karten sofern vorhanden (AMC / FMC)
       -> Gleicher mode Interface/Switch/Hub (Sofern Switch Interfaces vorhanden sind)
       -> Gleiche Softswitch Konfiguration
       -> Kein Interface im PPPoE oder DHCP Mode (HA Mode ist Deaktiviert resp. "config system ha" steht nicht zur Verfügung FortiOS 5.0)
       -> Gleiche Firmware auf beiden Devices
       -> Gleicher Operation Mode (Transparent oder NAT)
       -> Gleicher VDOM mode (aktiviert oder deaktiviert)
          NOTE Betreffend vers. FortiGate Modelle/Revisions in einem Cluster siehe nachfolgender 
               Artikel:
               
               Fortigate:FAQ#Kann_ich_mit_unterschiedlichen_FortiGate_Hardware_einen_Cluster_bauen.3F
               
               Unter FortiOS 5.2 ist es möglich im Gegensatz zu FortiOS 5.0 einen Active-Passive Cluster
               zu konfigurieren obwohl DHCP und/oder PPPoE benutzt wird!

In unserem Beispiel gehen wir von folgender Konstellation aus:

       NOTE Beide Fortigate's befinden sich in Factory Default Status dh. das Internal Interface ist mit der
            IP 192.168.1.99/24 versehen!
                                           __________
                                          |          |
                                          | INTERNET |
                                          |__________|
                                               |
                                        _______|______
                       ________________|              |________________
                      |                |  Red Switch  |                |
                      | WAN1           |______________|                | WAN1
                 _____|_____                                      _____|_____ 
                |           |                                    |           |
                |           |<---- DMZ Interface Heartbeat------>|           |
                |           |                                    |           |
                |  FORTI    |                                    |  FORTI    |
                |           |                                    |           |
                |           |<---- WAN2 Interface Heartbeat----->|           |
                |___________|                                    |___________|
                      |                 ______________                |
                      | INTERANL       |              |               | INTERNAL
                      |________________| Green Switch |_______________|
                                       |______________|
                                              |
                                         _____|____
                                        |          |
                                        |   LAN    |
                                        |__________|

Wenn diese Vorraussetzungen gegeben sind gehe folgendermassen vor:

       Starte den "Master" und logge dich ein auf dem Web Mgmt. Interface und setze den Hostname für den Master:
       
       System > Dashboard > Status > System Information > Host Name
       Nun gehe zur folgenden Position um den HA Modus zu aktivieren:
       
       System > Config > HA
       
       Mode        Active-Passive
       Device      Priority 128
       Group Name  FGT-HA
       Password    ********
       Enable Session Pick-up [aktiviert]
       
       NOTE Wenn "Enable Session Pick-up" nicht aktiviert wird so werden die aktiven Sessions des Master's nicht
            dem Slave Device mitgeteilt dh. bei einem "Failover" vom Master zum Slave kommt es zum Unterbruch da
            der Slave nicht weiss welche Sessions er übernehmen muss. Die zuständigen Interfaces für diese Session
            Uebermittlung sind die "Heartbeat" Interfaces. Ein "Heartbeat" Interface sollte exklusiv benutzt werden
            dh. NUR für die Uebermittlung der Sessions (100 Mbit). Der Wert der Priority dieses Interfaces sollte
            höher liegen als des zweiten Interfaces (zB 100). Es ist zu empfehlen ein zweites "Heartbeat" Interface
            zu definieren. Dieses muss nicht exkl. für "Heartbeat" resp. zur Session Uebermittlung benutzt werden.
            Wenn zB das "wan2" genutzt wird kann diess auf Priority "50" gesetzt werden. Da das "Heartbeat" das 
            exkl. zur Session Uebermittlung auf "100" steht wird nur dieses genutzt und über "wan2" da nur auf 
            "50" gesetzt keine Sessions Uebermittelt (Kein Traffic). Dieses "wan2" wird nur dann genutzt wenn das
            exkl. "Heartbeat" das auf "100" steht ausfällt. Für das "Heartbeat" Interface muss nicht zwingen eine 
            IP Konfig durchgeführt werden:
            
            Fortigate:FAQ#Welche_IP_Adressen_werden_in_einer_HA_Konfiguration_f.C3.BCr_ein_Heartbeat_Interface_vergeben.3F
            
            Wenn als zweites Interface für den "Heartbeat" ein reguläres Interface benutzt wird zB "Internal" sollte
            berücksichtigt werden, dass die Session Uebermittlung in "clear-text" erfolgt dh. Potentiell können die
            Sessions/Traffic mitgehört werden. Dies sollte man verhindern indem man den "Heartbeat" Traffiv verschlüsselt:
            
            Fortigate:FAQ#Kann_ich_f.C3.BCr_den_Heartbeat_eine_Verschl.C3.BCsselung_und.2Foder_eine_Authentifizierung_aktivieren.3F
            
            Desweiteren hat Fortinet betreffend "Heartbeat" ein Dokument released das aufzeigt wie dieses Konfiguriert wird.
            In diesem Dokument wird gezeigt was bei einem "Heartbeat" zu berücksichtigen ist:
            
            Datei:FGSP Configuration Guide.pdf (FortiGate Session Life Support Protocol)
       
       dmz         Heartbeat Interface Enable (Priority 100)
       wan2        Heartbeat Interface Enable (Priority 50)
       
       NOTE Später muss der Slave ebenfalls im gleichen Sinne konfiguriert werden. Möchte man das der Master immer als Master
            aggiert (nach Failover wird der effektive Master Device wieder Master was normalerweise nicht geschieht da beide
            Device über die gleiche Priority verfügen) kann die Priority gegenüber dem Slave höher angesetzt werden! Dies gilt jedoch
            nur insofern, dass die Priority überschrieben wird von der Anzahl Monitored Inferfaces sowie dem "age" (uptime des Device).
            Nachfolgende Abbildung gibt Auskunft nach welchen Kritieren/Funktionen ein Primary zum Primary wird:
            
            Datei:Fortinet-336.jpg
            
            Das Kommando das eingegeben werden muss auf dem Device um die Device Priority über die Console anzupassen wäre:
            
            # config system ha
            # set priority [Priority]
            # end
            
            PLEASE NOTE Um zu gewährleisten, dass der Device mit der höheren Priority zum Primary wird kann die Option "override" 
                        benutzt werden. Diese Option ist per Standard "disabled" sofern es sich nicht um einen virtuellen Cluster 
                        handelt denn in so einem Fall ist "override" per Standard "enabled". Die Option "override" löst eine häufigere
                        "negotiation" aus für die Cluster Devices. Dies kann potentielle Unterbrüche hervorrufen. Die Option "override"
                        überschreibt wenn diese auf "enabled" steht die Funktion "age". Haben beide Devices die gleiche Priority und
                        "override" steht auf "enabled" so greift das System zurück auf die Funktion "age". Es wird empfohlen die Option 
                        "override" auf "disabled" zu belassen. Wenn diese dennoch auf "enabled" gesetzt wird muss folgendes
                        berücksichtigt werden um einen Konfigurations Verlust zu verhindern:
                        
                        - Devices in einem Cluster müssen beide einwandfrei Mitglieder des Clusters sein (get system ha status)
                        - Device Priority auf dem Primary Device MUSS höher sein als auf dem Slave Device
                        - Deaktiviere "override" für Konfigurations Aenderungen
                        
                        Um "override" zu benutzen muss auf dem PRIMARY folgender Befehl abgesetzt werden:
                        
                        # config system ha
                        # set override enable
                        # end
       
       Wenn nun die Konfiguration mit Device Priority sowie mit der Funktion "override" belassen wird reagiert der Cluster nicht auf
       Ausfälle von Interfaces sondern nur auf den Ausfall eines Devices im Cluster. Um einen Interface Verlust abzudecken muss das
       betreffenden Interface für das Monitoring konfiguriert werden. Weitere Informationen siehe Artikel:
       
       NOTE Das Montitoring der Interface darf erst dann aktiviert werden wenn der Cluster vollumfänglich aktiv ist und alle Interfaces
            sauber angeschlossen und überprüft worden sind!
       
            Fortigate:FAQ#Wie_soll_die_Funktion_des_Monitoring_der_Interface_in_einem_HA_Cluster_benutzt_werden.3F
       
       NOTE Es ist zu empfehlen 2 oder mehrere Interfaces als Heartbeat zu definieren. Wenn nur ein Hearbeat konfiguriert ist 
            und dieser unterbrochen wird, (Cluster sehen sich nicht mehr) aggiert jeder Device als Standalone (split-brain configuration)
            und es kommt es zum Netzwerkunterbruch! Aus diesem Grund sollten mind. 2 Interfaces als Hearbeat konfiguriert werden. Wenn
            mehr als 1 "Hartbeat" (exklusiv oder geshared) benutzt wird und über die gleiche Priorität verfügen, wird der Hartbeat Traffic
            über das Interface gesendet, dass über den kleineren "has map order value" verfügt. Wenn die Priorität unterschiedlich gesetzt
            ist wird der "Hartbeat" Traffic über das Interface gesendet mit der höheren Priorität und das Interface mit der "kleineren" wird
            als "fallback" benutzt!
       
       Bestätige die Konfiguration und es geschieht folgendes:
       
       Temporaer kann die Verbindung zur Fortigate verloren gehen da die Fortigate bei der Bestätigung die MAC Adresse der Interfaces 
       entfernt und eine virtuelle MAC Adresse für den Cluster erstellt. Möchte man den Unterbruchen so klein wie möglich halten die 
       ARP Table auf der Workstation über die man auf die Fortigae zugreift gelöscht werden (zB für Windows):
       
       arp -d *
       
       NOTE Weitere Befehle siehe im DOS Prompt "arp /?"!
       
       Nun muss der "Master" runtergefahren werden! Bevor dies geschieht, erstellen wir vom "Master" ein Backup:
       
       System > Dashbaoard > System Information > Backup
       
       Nun fahre nachdem erstellen des "Backup's" den Master über die CLI runter (ausschalten):
       
       # execute shutdown
       
       Starte den Slave (nicht am Netz)! Konfiguriere den Slave exact im gleichen Sinne wie der Master dh. Hardware-Technisch, Firmware 
       (nicht vergessen event. die Harddisk zu formatieren "execute formatlogdiks"). Oeffne das Backup File des Masters und ändere den 
       Hostname (Position):
       
       # config system global
       # set hostname [Gewünschter Hostname]
       
       Nachdem der Slave Hardware-Technisch sowie Firmware-Technisch exakt genau gleich aufgesetzt ist wie der Master, erstelle 
       auf die Slave Maschine eine Verbindung auf das Web Mgmt. Führe nun anhand des modifizierten Backup Files des Masters ein
       "Restore" durch unter:
       
       System > Dashbaoard > System Information > Backup
       
       NOTE Bei FortiOS 5 benötigt das File keine Modifikationen wenn es auf einem anderen/neuen Device wiederum als Restore 
            eingespielt wird. Bei FortiOS 4 benötigt man Modifikationen des Files ansonsten kann das File nicht auf einem anderen
            Device eingespielt werden. Folgender Artikel gibt Auskunft was bei FortiOS 4 durchzuführen ist:
            
            Fortigate:FAQ#Was_ist_bei_einem_Restore_zu_ber.C3.BCcksichtigen.3F
       
       Nachdem Neustart des Devices greife erneut auf das Web Mgmt. zu. Es gilt nun die IP resp. die Zugangsinformationen gemäss
       Restore resp. Backup File des Masters. Auf dem Web Mgmt. ändere die Priorität des Slave (Tiefere Priorität) dh. unter:
       
       System > Config > HA > [Rechts auf Edit]
       
       Nach dieser Konfiguration fahre ebenfalls den Slave runter und schalte diesen aus (über CLI oder Web Mgmt):
       
       # exec shutdown
       
       Nun verkable die beiden Devices gemäss Abbildung die zu Beginn dieses Artikel aufgezeigt wird. Bei den Heartbeat's können ebenfalls
       Crossover Kabel zum Zuge kommen oder "transparente" VLAN's! Sobald die Devices korrekt verkabelt wurden starten zuerst den:
       
       Master
       
       Sobald der Master "up" ist kontrolliere diesen über das WebMgmt. Danach starte den "Slave" Der Cluster Aufbau findet beim Start der 
       Devices statt und benötigt keine weitere Konfiguration. Wenn man auf der Console des "Slave's" das Ganze mitverfolgt fällt einem auf, 
       dass nachdem Start folgende Meldungen auf der Console erscheinen:
       
       [Hostname des Slaves] login: slave's external files are not in sync with master, sequence:0. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:1. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
       
       Dieser Zustand dh. "not in sync" bleibt solange bis der "erste" Sync durchgeführt wurded (ca. 2 - 3 Minuten). Danach erscheint eine Bestätigung
       des erfolgreichen "Sync":
       
       slave succeeded to sync external files with master
       
       Sobald der Cluster aktiv ist kann dieser wie eine Single Unit konfiguriert werden. Die einzelnen Device des Clusters können nicht mehr
       angesprochen werden sofern nicht je Device ein "Dediziertes Management Interface mit IP's" benutzt wird. Sobald der Cluster Aktiv ist wird
       diser nur noch mit den Cluster MAC Adressen und dazugehöriger IP angesprochen. Es wird für die einzelnen Nodes kein IP Adresse mehr benötigt.
       
       Als nächstes kann/können die benötigten Interfaces mit deren IP Adressen konfiguriert werden. Um auf die Fortigate zu verbinden öffnet einen
       Broswer und verbinde dich auf die Virtuelle Cluster Adresse und logge dich ein:
       
       https://192.168.1.99
       
       Wenn es Probleme gibt betreffend Verbindung so konfiguriee den Client mit einer IP aus dem gleichen Subnet dh. zB 192.168.1.1/24. Konfiguriere
       nun den Cluser betreffend IP Adressen, DNS Server, Routing etc. wie gewohnt.
       
       NOTE Nun kann nach Abschluss der Konfiguration und der korrekten Verkabelung das Monitoring der Interfaces eingeschaltet werden:
            
            System > Config > HA
            
            Weitere Informationen zu diesem Thema findet man im Artikel:
            
            Fortigate:FAQ#Wie_soll_die_Funktion_des_Monitoring_der_Interface_in_einem_HA_Cluster_benutzt_werden.3F
       
       ACHTUNG Sobald die Grundkonfiguration durchgeführt wurde betreffend IP Adressen, DNS sowie Routing teste den Cluster in seinen Funktionen
               dh. führe einen kontrollierten Failover durch sowie unkontrollierte Failovers (ausstecken eines Ethernet Kabels). Achte darauf ob 
               und welcher Device NACH dem Failover wiederum Master wird! Nach einem Failover wird durch Fortigate kein Failover auf den Ausgangs
               Device durchgeführt sofern die Priorität dieses Devices nicht höher liegt als die des Failover Devices (Master/Slave)!

Wie führe ich auf einem Cluster ein Firmware Update durch?

Das manuelle Einspielen auf einem FortiGate Cluster einer neuen Firmware ist grundsätzlich der gleiche Vorgang wie auf einem Standalone Device. Das Besondere auf einem Cluster ist zu wissen WAS im Hintergrund geschieht damit im Fall der Fälle eingegriffen werden kann. Der nachfolgende Artikel erklärt wie so ein Firmware Update auf einem Cluster vor sich geht:

        Fortigate:FAQ#Wie_f.C3.BChre_ich_auf_einem_Cluster_ein_Firmware_Update_durch.3F

Kommando über CLI "set mode" für "config system ha" steht nicht mehr zur Verfügung?

Wenn man eine Fortigate in den HA/Cluster Mode setzen möchte so muss der "mode" für den Cluster gesetzt werden. Hat man zB eine Fortigate im "factory default" Status kann das Kommando "set mode" resp. "set mode ?" nicht abgesetzt werden. Der Grund dafür ist, dass die Fortigate im "factory default" status Interface's auf PPPoE oder DHCP gesetzt hat (FortiOS 5.0). Ist dies der Fall kann kein HA/Cluster konfiguriert werden da die Fortigate für PPPoE und DHCP kein HA/Cluster unterstützt. Setze alle Interfaces auf "static" und nachträglich steht das Kommando in der CLI "set mode" resp. "set mode ?" wieder zur Verfügung (Neustart wird nicht benötigt).

       # config system ha
       # set mode ?
       The system may run in HA a-a or HA a-p mode only when all interfaces are not using PPPoE/DHCP as an addressing mode
       
       NOTE Bei älteren Release's von FortiOS 5.0 steht das Kommando "set mode" nicht zur Verfügung solange
            Interfaces existieren die "nicht" auf Static gesetzt sind:
       
       # config system ha
       # mode | grep mode
       
       NOTE Um festzustellen "ob" solche Interfaces existieren kann folgender Befehl abgesetzt werden:
            
            # show system interface | grep -f mode
            
            Durch die Angabe "grep -f" wird der Context der Konfig "mode" angezeigt für "system interface"!
            Kontrolliere ob solche Interface's existieren resp. auf DHCP und/oder PPPoE gesetzt sind. Sofern
            dies der Fall ist wechsle diese betroffenen interfaces auf "set mode static":
            
            # config system interface
            # edit [Port Name zB wan1]
            # set mode static
            # end

Jetzt sollte der "set mode" wieder erscheinen resp. kann gesetzt werden:

       # config system ha
       # get | grep mode
       mode               : standalone
       
       # config system ha
       # set mode ?
       
       # config system ha
       # set mode a-p

Welche Sessions werden im Fall eines Failovers in einem HA Cluster übernommen?

Grundsätzlich werden in einem Cluster die Sessions des Masters (Session Table) über den/die Heartbeat Interface's Synchronisiert. Somit weiss der Slave (Standby in einem Active-Passive Konfiguration) welche Sessions übernommen werden müssen im Fall eines "Failovers". Dies gilt jedoch nicht für folgende Sessions oder Funktionen:

       - UTM Features (Speziell Antivirus und IPS)
       - Zertifikat Basierende Funktionen
       
       NOTE Eine Aussnahme stellt die 100D dar die über eine spezielle Funktion verfügt.
            Diese Funktion "frup-settings" kann über CLI aktiviert werden! Diese Funktion setzt
            jedoch vorraus, dass das zB ein "wan1" Interface übers Kreuz mit zwei Routern 
            verbunden ist. "frups" benützt virtuelle MAC Adressen sowie virtuelle IP's.
            
            Fortinet-753.jpg

Fortinet hat zusätzlich unter "Supplementary Recipes" ein Dokument bereitgestellt, dass zeigt wie eine FRUP Konfiguration gemäss vorhergehenden Abbildung durchgeführt wird. Das Dokument findet man im nachfolgenden Artikel im Abschnitt "Cookbook Supplementary Recipes FortiOS 5.0":

       Fortigate:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F

Kann ich die Differenz für das Cluster "age" anpassen oder verändern?

Die Funktion "age" basiert auf der "Uptime eines Devices" im Cluster dh. für die Kriterien die herangezogen werden ob ein Master/Primary zum Master/Primary wird ist die Funktion "age" an zweiter Stelle nach der Anzahl überwachter Interfaces (Interface Monitoring):

       Datei:Fortinet-336.jpg

Wenn man nun die Differenz die herangezogen wird für das "age" verändern möchte (Per Default gilt 300 Sekunden oder 5 Minute) zB bei einem Firmware Upgrade (Dauer des Upgrades) kann folgendes über die Console eingegeben werden:

       # config system ha
       # set ha-uptime-diff-margin [Dauer in Sekunden von 1 - 65535]
       # end

Um die Differenz eines Devices anzuzeigen benütze folgenden Befehl:

       # diagnose sys ha dump 1
       HA information.
       vcluster id=1, nventry=2, state=work,
       digest=fe.21.14.b3.e1.8d...
       ventry idx=0,id=1,FG50012205400050,prio=128,0,claimed=0,
       override=0,flag=1,time=0,mon=0.
       mondev=port5,50
       ventry idx=1,id=1,FG50012204400045,prio=128,0,claimed=0,
       override=0,flag=0,time=194,mon=0.
       NOTE Das Kommando "diagnose sys ha dump" existiert ab FortiOS 5.0.5 nicht mehr und wurde mit 
            folgenden Kommandos ersetzt:
            
            # diagnose sys ha dump-by [all-xdb | all-vcluster| rcache | all-group | memory | debug-zone | vdom | kernel | device | stat| sesync]
            
            Zusätzlich stehen noch folgende Kommandos zur Verfügung:
            
            # diagnose sys ha sesync-stats
            # diagnose sys ha extfile-sig

Der erste Eintrag betreffend der Zeile "ventry" zeigt den Device auf dem der Administrator momentan eingeloggt ist. Die zweite Zeile betreffend "ventry" zeigt den untergeordneten Device. Die Zeile "mondev" gibt an welche Interface überwacht werden. Auf dem Device auf dem der Administrator momentan eingeloggt ist zeigt betreffend "time" immer "0". Der untergordnete Device zeigt die Differenz zum Primary dh. in unserem Beispiele "194" (194 geteil durch 10 = 19.4 Sekunden). Wenn nun "age" als Standard auf "300" Sekunden steht hat dies KEINEN Einfluss als Kriterium ob der Device zum Primary wird oder nicht, denn solange die Differenz der Devices diese "300" Sekunden nicht übersteigt hat "age" keinen Einfluss.

Wenn nun aus vers. Gründen die "age" zurückgestellt werden soll (wenn zB der Primary über die Priorität gesteuert werden soll) auf ALLEN Devices, kann folgender Befehl ausgeführt werden:

       # diagnose sys ha reset-uptime
       
       NOTE  Dieses Kommando sollte mit bedacht angewendet werden denn die "age" Zeit wird intern zurückgestellt.
             Dies bedeutet kontrolliert man nachträglich mit dem Kommando "diagnose sys ha dump 1" die "age" oder
             über das Dashboard die Uptime sowie in der Cluster Member List wir die Zeit die der Device up-and-runnig
             ist wie gewohnt angezeigt. Dies bedeutet dieser Befehl setzt nicht die "Uptime" Global zurück sondern
             nur für die Funktion "age" im Clustering!

Wie soll die Funktion des Monitoring der Interface in einem HA Cluster benutzt werden?

Für die einzelnen Interfaces in einem HA Cluster kann das "Monitoring der Interface" eingeschaltet werden. Es ist folgendes zu berücksichtigen:

       • Bevor ein Monitoring konfiguriert/verändert werden soll muss der Cluster up and running sein 
       • Alle Interfaces müssen zum Cluster korrekt verbunden sein sowie keien RX/TX, Duplex Mismatch etc. verursachen 

Um ein "Interface Monitoring" zu aktivieren auf einem spezifischen Interface resp. Port benütze folgenden Befehl:

       # config system ha
       # set monitor [Spezifizieren den zu überwachenden Port zB port1]
       # end
       
       NOTE Wird in einem Cluster "kein" Interface/Port für das Monitoring konfiguriert handelt es
            sich bei solch einem Cluster um einen reinen "Device Failover only". Dies bedeutet "nur"
            der Ausfall eines Devices erzwingt einen Failover! Somit wird "nur" die Hardware eines
            Devices in einem Cluster überwacht jedoch nicth die einzelnen Interface's.

Kann ich für den Heartbeat eine Verschlüsselung und/oder eine Authentifizierung aktivieren?

Grundsätzlich sollte "ein" dediziertes/seperates Interface benutzt werden für den "Heartbeat" resp. für die Synchronisation der "Session Table". Wenn ein zusätzliches "Heartbeat" zB über das WAN Interface benutzt wird -als Fallback- so ist es ratsam dieses zu Verschlüsseln und zu Authentifizieren. Wenn dies nicht geschieht ist es event. möglich, dass der Traffic über ein Sniffing mitgehört werden kann um zB falsche Cluster Status Informationen zu senden oder die Session Table abzuhören. Per Standard ist die Verschlüsselung sowie die Authentifizierung deaktiviert. Wenn diese aktiviert werden möchte führe folgendes aus:

       # config system ha
       # set authentication enable
       # set encryption enable
       # end
       
       NOTE Wenn die Verschlüsselung sowie die Authentifizierung aktiviert werden so sinkt die Performance auf den 
            Devices denn diese wird benötigt um die Packet zu Verschlüsseln etc. sowie zu Authentifizieren! Der Impact ist
            zwar nicht enorm dennoch muss dieser mitberücksichtigt werden! Für die Verschlüsselung/Authentifizierung wird in 
            einem Fortinet Cluster Verbund folgendes benutzt:
            
            AES-128 für die Verschlüsselung
            SHA1 für die Authentifizierung

Welche IP Adressen werden in einer HA Konfiguration für ein Heartbeat Interface vergeben?

Das FGCP (FortiGate Cluster Protokoll) vergibt "link-local IP4 Adressen" (RFC 3927) im Range 169.254.0.x für HA "Heartbeat Interfaces" sowie für "inter-VDOM Link". Wenn ein Cluster initial gestartet wird so wird dem Primary "Heartbeat Interface" die Adresse 169.254.0.1 zugewiesen und für den Slave eine IP aus folgendem Range 169.254.0.2 - 63. Für "inter-VDOM Link's" wird der Range 169.254.0.65 und höher benutzt. Um die vergebene IP Adresse für das Heartbeat in einem HA Cluster zu eruieren gebe folgendes Kommando über die Console ein:

       # get system ha status
       Model: 300
       Mode: a-p
       Group: 0
       Debug: 0
       ses_pickup: enable, ses_pickup_delay=disable
       Master:128 alsochlu-sg0e1   FG300C3913601712 1
       Slave : 96 alsochlu-sg0e2   FG300C3913602452 0
       number of vcluster: 1
       vcluster 1: work 169.254.0.2
       Master:0 FG300C3913601712
       Slave :1 FG300C3913602452

Die Auslastung auf einem Heartbeat Interface ist zu hoch und es kommt zu einem unkontrollierten Fail-Over?

Wenn in einem HA Cluster die Auslastung steigt -zB durch hohes Verkehrsaufkommen- wird der CPU stark beansprucht. In so einem Fall kann es vorkommen das die Heartbeat Packete -durch den Primary- nicht zur richtigen Zeit über das Heartbeat Interface -zum Slave- gesendet werden da der CPU anderweitig beschäftigt ist. In so einem Fall kann es zu einem unkontrollierten Fail-Over kommen da der Slave vom Primary keine oder verspätete und somit abgelaufene Packete bekommt und den Primary Part übernimmt. So eine Situation kann ebenfalls eintreffen wenn eine "syn flood attacke" gefahren wird der den Device komplett auslastet und somit wiederum die nötigen Heartbeat Packet nicht oder verspätet zum Slave gesendet werden. Wenn der Grund eines unkontrollierten Fail-Over die Auslastung regulärem Traffic ist so können die Intervall und/oder die Threshold der Packet angepasst werden um einen unkontrollierten Fail-Over zu verhindern. Dazu können über die Console folgende Kommandos abgesetzt werden:

       # config system ha
       # set hb-interval [Gebe den Interval in Sekunden an 1 - 20]
       # set hb-lost-threshold [Gebe den Thresold dh. wieviele Packete 1 - 60]
       # set helo-holddown [Gebe den Holddown in Sekunden an 5 - 300]
       # end
       hb-interval
       Der Heartbeat Interval gibt an "wielange" benötigt wird um die Heartbeat Packete zu senden.
       Per Standard gilt "2" (200 ms). Der Interval Range der konfiguriert werden kann ist 1 bis 20.
       Wenn der Heartbeat Interval zu tief ist wird die Bandbreite unnötig ausgelastet. Wenn der
       Heartbeat Interval zu gross gesetzt ist verliert der Cluster an "sensitivität" betreffend 
       Netzwerkveränderungen etc. Der Interval steht ebenfalls im Zusammenhang mit dem Threshold
       dh. wenn der Threshold auf 6 Packete konfiguriert ist und der Interval auf 2 so wird ein 
       Fail-Over ausgelöst wenn der Cluster innerhalb von 6 X 200 ms = 1200 ms (1.2 Sekunden) keine
       Packete mehr erhält. Somit stehen hier Konfigurations Möglichkeiten zur Verfügung um lange
       Strecken Rechnung zu tragen dh. wenn der Delay zur Uebermittlung von Packeten grösser wird.
       hb-lost-threshold
       Der Threshold gibt an wieviel Packete verloren gehen dürfen bevor ein Fail-Over ausgelöst wird.
       Per Standard gelten "6" Packete (möglich 1 - 60 Packete). Dies bedeutet, dass wenn der Slave
       6 Packete nicht bekommt davon ausgeht das der Primary nicht mehr korrekt funktioniert und zum
       Primary wird. Das Gleiche gilt für den Primary selbst dh. wenn er vom Slave die 6 Packet nicht
       bestätigt bekommt geht der Primary davon aus das der Slave nicht mehr ordnungsgemäss funktioniert.
       Im Generellen gilt: je kleiner der Threshold desto schneller wird ein Fail-Over durchgeführt.
       helo-holddown
       Der hello State hold-down ist die Dauer in Sekunden die der Cluster wartet bis dieser vom
       "hello-state" zum "work-state" wechselt. Nach einem Fail-Over oder beim starten des Clusters
       arbeitet der Cluster im "hello-state" dh. Heartbeat Packete werden im Cluster zu den Devices
       im Cluster gesendet damit jeder Device im Cluster sich austauschen kann. Sobald alle Devices
       im Cluster Verbund erreicht wurden geht der Status auf "work-state". Sehen sich die Devices
       im Cluster aus irgendwelchen Gründen nicht kann dies zu Unterbrüchen führen da der Cluster
       nicht vollständig ist. Ein Grund, dass sich die Devices nicht finden ist zB ein unterschiedlicher
       Standort mit weiten Strecken zwischen den Standorten dh. durch den Delay in der Komunikation
       kann der Status nicht von "hello-state" in den "work-state" gehen. In so einem Fall kann die
       Zeit die benötigt wird damit die Devices untereinander komunizieren können heraufgesetzt 
       werden. Per Standard gilt 20 (20 Sekunden). Die Zeitspanne die konfiguriert werden kann ist
       5 bis 300 Sekunden.

Wie setzt sich die virtuelle MAC Adresse in einem HA Cluster zusammen und wie ändere ich diese?

Die virtuelle MAC Adresse in einem HA Cluster setzt sich wie folgt zusammen:

       00-09-0f-09-<group-id_hex>-<vcluster_integer><idx>

Die <group-id_hex> ist die HA Group ID des HA Clusters umgerechnet in Hexdecimal. Nachfolgende Tabelle zeigt auf wie die Group ID in Hexdecimal für die virtuelle MAC Adresse umgerechnet wird:

       Datei:Fortinet-334.jpg

Der <vcluster_integer> ist 0 für den virtuellen Cluster 1 und für den virtuellen Cluster 2 die 2. Wenn VDom nicht aktiviert sind setzt der HA Cluster die 1 und alle Interfaces befinden sich in der VDom "root". Wenn man die Formel anwendet für einen virtuellen Cluster oder einer virtuellen Domain (VDom) ändert sich die MAC Adress Formel nicht dh. man wendet diese an ob VDom existiert oder virtuelle Cluster angewendet wird.

Die Position <idx> in der Formle ist die Anzahl der Interfaces. Interfaces werden durchnummeriert von 0 bis x wobei x für die Nummer des Interfaces steht. Interfaces werden in "hash map" aufgelistet. Dies bedeutet das diese zuerst Alphabetisch geordnet werden und danach nach Index Nummer (Beispiel: base1 wird zuerst gelistet und danach port1).

       NOTE Nur die <idx> Position für die virtuelle MAC Adresse variert für jedes Interface. Die Position <vcluster_integer> 
            variert nur dann wenn VDom verwendet werden.

Nachfolgend einige Beispiele für virtuelle MAC Adressen und deren Umrechnung:

       Group ID 0 (Default) und VDom's sind nicht aktiviert
       
       •  port1 virtual MAC: 00-09-0f-09-00-00
       •  port10 virtual MAC: 00-09-0f-09-00-01
       •  port2 virtual MAC: 00-09-0f-09-00-02
       •  port3 virtual MAC: 00-09-0f-09-00-03
       •  port4 virtual MAC: 00-09-0f-09-00-04
       •  port5 virtual MAC: 00-09-0f-09-00-05
       •  port6 virtual MAC: 00-09-0f-09-00-06
       •  port7 virtual MAC: 00-09-0f-09-00-07
       •  port8 virtual MAC: 00-09-0f-09-00-08
       •  port9 virtual MAC: 00-09-0f-09-00-09
       •  port11 virtual MAC: 00-09-0f-09-00-0a
       •  port12 virtual MAC: 00-09-0f-09-00-0b
       Group ID 34 und VDom's sind nicht aktiviert
       
       •  port1 virtual MAC: 00-09-0f-09-22-00
       •  port10 virtual MAC: 00-09-0f-09-22-01
       •  port2 virtual MAC: 00-09-0f-09-22-02
       •  port3 virtual MAC: 00-09-0f-09-22-03
       •  port4 virtual MAC: 00-09-0f-09-22-04
       •  port5 virtual MAC: 00-09-0f-09-22-05
       •  port6 virtual MAC: 00-09-0f-09-22-06
       •  port7 virtual MAC: 00-09-0f-09-22-07
       •  port8 virtual MAC: 00-09-0f-09-22-08
       •  port9 virtual MAC: 00-09-0f-09-22-09
       •  port11 virtual MAC: 00-09-0f-09-22-0a
       •  port12 virtual MAC: 00-09-0f-09-22-0b

Um eine virtuelle MAC Adresse zu setzen führe folgendes auf der Console aus:

       # config system interface
       # edit port1
       # set macaddr [MAC Adresse]
       # end
       # end

Bevor man einen Cluster baut ist die MAC Adresse = Hardware Adresse:

       # get hardware nic internal
       
       MAC: 02:09:0f:78:18:c9
       Permanent_HWaddr: 02:09:0f:78:18:c9

Man sieht das die MAC Adresse = der Hardware Adresse ist. Konfiguriert man einen Cluster und setzt wiederum den Befehl ab zeigt sich folgendes Bild:

       # get hardware nic internal
       
       MAC: 00:09:0f:09:00:02
       Permanent_HWaddr: 02:09:0f:78:18:c9

Man sieht nach der HA Cluster Konfiguration sind die MAC Adresse und die Physische MAC Adresse unterschiedlich. Möchte man also die virtuelle MAC Adresse auf allen Interfaces wechseln um zB einen MAC Adressen Konflikt zu umgehen muss "nur" die Group ID geändert werden:

       # config system ha
       # set group-id <id_integer>
       # end

Kann ich anhand eines Befehls den HA Sync Prozess einsehen?

Folgender Befehl gibt die Möglichkeit den HA Sync Prozess einzusehen:

       # diagnose debug application hasync -1

Was ist zu beachten wenn ich die Priorität eines Cluster Nodes anpasse/verändere?

Die Konfiguration der Priorität eines Devices in einem Cluster wird nicht innerhalb des Clusters synchronisiert da die Priorität auf den Device gebunden ist. Somit wenn die Priorität angepasst wird in einem Cluster muss dies auf dem jeweiligen Device durchgeführt werden:

       # config system ha
       # set priority [Nummerische Zahl]
       # end
       
       NOTE um in einem Cluster auf einen Node zu verbinden siehe folgender Artikel:
            
            Fortigate:FAQ#Wie_Manage_ich_einen_Cluster_resp._wie_erlange_ich_Zugriff_auf_einen.2Fden_.22nicht.22_aktiven_Node.3F

Wie Manage ich einen Cluster resp. wie erlange ich Zugriff auf einen/den "nicht" aktiven Node?

Wenn man einen Cluster aufsetzt und nicht ein entsprechendes Interface unter der nachfolgenden Position konfiguriert, kann auf die einzelnen Nodes im Cluster nicht mehr zugegriffen werden:

       System > Config > HA > [Setze den Mode auf "Active-Passive" oder "Active-Active] > Reserve Management Port for Cluster Member

Diese Position bewirkt, dass das definierte Interface komplett aus dem Cluster Verbund genommen wird und unabhängig als reguläres Interfaces agiert. Bedeutet diese Interfaces können je Node mit einer normalen IP versehen werden. Somit kann anhand dieser Interface auf die Nodes im Cluster zugegriffen werden sowie die einzelnen Nodes zB über SNMP überwacht werden!

       NOTE Beachte dabei, dass immer auf den richtigen Node zugegriffen wird, wenn eine Konfiguration durchgeführt werden muss!
            Denn der "nicht" aktive Node wird vom "aktiven" Node alle 15 Minuten überschrieben. Dies bedeutet würde man eine
            Konfiguration "irrtümlicherweise" auf dem "Slave" durchführen und dies nicht bemerken, wird diese Konfiguration 
            durch den Master wiederum überschrieben da die Konfiguration nicht auf dem Master stattgefunden hat!

Diese Konfiguration eines seperaten definierten Interfaces pro Node in einem Cluster um die Nodes zu überwachen, managene sowie für das Troubleshooting ist "absolut" zu empfehlen. Ist dies aus irgendwelchen Gründen nicht möglich kann der Zugriff auf den "nicht aktive" Node nur über die Kommandozeile des Master erfolgen. Bedeutet dies wird folgendermassen ausgeführt:

           Erstelle eine Verbindung auf die Kommandozeile (CLI) des Masters. Verifiziere
           die "Device ID" des nicht aktiven Nodes im Clusterverbund:
           
           # execute ha manage ?
           <id>    please input peer box index.
           <0>     Subsidary unit [Serial Nummer des Devices[
           
           Wähle nun die entsprechende "id" des Devices resp. des nicht aktiven Nodes:
           
           # execute ha manage 0
           
           Nun wird in der Kommandozeile (CLI) der Prompt des nicht aktiven Nodes angezeigt!

Wie kann ich überprüfen ob ein Cluster "In-Synch" ist?

Folgender Befehl zeigt ob ein Cluster "In-Synch" ist dh. ist dies der Fall muss auf beiden Nodes die gleiche Checksum erscheinen:

       # diag sys ha showcsum

Weitere Befehle um den Status eines Clusters abzufragen siehe Artikel:

       Fortigate:FAQ#Wie_kann_ich_den_Status_eines_HA_Cluster_abfragen.3F_2

Heartbeat "Ethertype Packete" werden durch den Switch verworfen wieso und was ist zu tun?

Normale IP Packete sind 802.3 Packete die über ein "Ethernet" Feld verfügen mit der Wert:

       0x0800

Andere Werte werden innerhalb des "Ethernet" Feldes als Level 2 Frames verstanden anstelle von IP Packeten. HA Heartbeat Packete von NAT/Route Mode (ha-eth-type) Cluster benutzen den "Ethernet" Type "0x8890". Diese Packete werden spezielle dazu benutzt die Mitglieder des Clusters und/oder anderen Cluster im Netz zu finden. HA Heartbeat Packet im Transparent Mode (hc-eth-type) benutzen den "Ethernet" Type "0x8891". HA Telnet Sessions (l2ep-eth-type) zwischen Cluster Devices over HA Heartbeat Links benützen den "Ethernet" Type "0x8893". Somit muss der Switch der für das Heartbeat benutzt wird diese "Ethernet" Types erlauben. Ist dies nicht der Fall da der Switch diese "Ethernet" Types bereits für interne Funktionen benützt muss der "Ethernet" Type modifiziert werden. Dies kann über Kommandozeile durchgeführt werden:

       # config system ha
       # set ha-eth-type [ha_ethertype_4-digit_hex]
       # set hc-eth-type [hc_ethertype_4-digit_ex]
       # set l2ep-eth-type [l2ep_ethertype_4-digit_hex]
       # end
       NOTE Bei Cisco N5K/Nexus Switches wird der "Ethernet" Type 0x8890 für interne Funktionen benützt. Wenn 
            dieser Switch solche "Ethernet" Type Packet erhält verwirft er diese (CRC errors) und dies verhindet
            die einwandfreie Komunikation zwischen den Nodes innerhalb eines Cluster. Lösung wäre der "Ethernet"
            Type auf einem freien Wert zu definieren zB "0x888".

Wie kann ich für einen HA Cluster den Gruppen Namen auf Kommandozeile konfigurieren?

Der Gruppen Name in einem Cluster ist dazu da um die dazugehörigkeit der Nodes in einem Cluster zu konfigurieren. Dazu gehören ebenfalls das Cluster Passwort sowie die Group ID. Andere Cluster im Netz dürfen nicht den gleichen Gruppen Namen benützen sondern müssen sich für eine eindeutige Identifikation unterscheiden. Um den Gruppen Namen in einem Cluster über CLI zu definieren führe folgendes aus:

       # config system ha
       # set group-name [Gruppen Namen]
       # end

Wie kann ich für einen HA Cluster den Gruppen ID auf Kommandozeile konfigurieren?

Die Group ID ist wie der Gruppen Namen und das Passwort dazu da einen Cluster Verbund zu identifizieren dh. andere Cluster im Netz dürfen nicht die gleiche Group ID, Passwort sowie Gruppen Namen benützen. Um die Group ID für einen Cluster über CLI zu konfigurieren benütze:

       # config system ha
       # set group-id [Group ID 0 - 255]
       # end

Wie kann ich für einen HA Cluster das Passwort der Gruppe auf Kommandozeile konfigurieren?

In einer Cluser Konfiguration wird zur einen Seite ein Gruppen Namen gesetzt und zum anderen ein Passwort. Dieses Passwort sowie der Gruppen Name muss für alle Node's im Cluster gesetzt werden dh. andere Cluster im gleichen Netz dürfen weder den gleichen Gruppen Namen noch über das gleiche Passwort verfügen. Um das Passwort zu setzen über CLI benutze folgendes Kommando:

       # config system ha
       # set password [Passwort max. Länge 19]
       # end

Wie kann ich über Kommandozeile den Status eines HA Cluster abfragen?

Folgender Befehl gibt eine kurze Auskunft über den Status eines HA Clusters:

       # get system ha status
       Model: 620
       Mode: a-a
       Group: 0
       Debug: 0
       ses_pickup: disable
       Master:128 620_ha_2 FG600B3908600825 0
       Slave :128 620_ha_1 FG600B3908600705 1
       number of vcluster: 1
       vcluster 1: work 169.254.0.1
       Master:0 FG600B3908600825
       Slave :1 FG600B3908600705

Folgender Befehl zeigt ob der Cluster "in synch" ist dh. die Checksum muss auf beiden Nodes gleich sein:

       # diag sys ha showcsum
       is_manage_master()=1, is_root_master()=1
       debugzone
       global: bc 3b 17 fe 44 b2 2d c7 1e d1 59 44 8b cd 64 a9 
       root: b9 c0 bf 46 f3 00 e6 fe d5 ed 2a 6c 79 38 01 c7 
       VDOM-1: a8 0b bf 2e cb d8 5d 26 43 a9 00 b9 e3 3b 9a a1 
       VDOM-2: 9b d1 63 60 79 9d 1c a3 7c 1e eb 7a c5 50 77 bc 
       VDOM-3: 43 da 8b 01 1f a3 7d 24 e1 0b 49 29 3a b1 90 29 
       all: 16 a0 79 8b 64 39 c0 37 40 ed c6 ee 77 62 16 7e 
       
       checksum
       global: bc 3b 17 fe 44 b2 2d c7 1e d1 59 44 8b cd 64 a9 
       root: b9 c0 bf 46 f3 00 e6 fe d5 ed 2a 6c 79 38 01 c7 
       VDOM-1: a8 0b bf 2e cb d8 5d 26 43 a9 00 b9 e3 3b 9a a1 
       VDOM-2: 9b d1 63 60 79 9d 1c a3 7c 1e eb 7a c5 50 77 bc 
       VDOM-3: 43 da 8b 01 1f a3 7d 24 e1 0b 49 29 3a b1 90 29 
       all: 16 a0 79 8b 64 39 c0 37 40 ed c6 ee 77 62 16 7e 

Betreffend Konfiguration etc. gibt es noch folgende Befehle die angewendet werden können um den Status inkl. Konfiguration eines HA abzufragen:

       # show full-configuration system ha
       config system ha
           set group-id 0
           set group-name "FGT-HA"
           set mode a-p
           set password ENC 
           set hbdev "port5" 20 "port6" 10
           set route-ttl 10
           set route-wait 0
           set route-hold 10
           set sync-config enable
           set encryption disable
           set authentication disable
           set hb-interval 2
           set hb-lost-threshold 6
           set helo-holddown 20
           set arps 5
           set arps-interval 8
           set session-pickup enable
           set link-failed-signal disable
           set uninterruptable-upgrade enable
           set vcluster2 disable
           set override enable
           set priority 254
           set monitor "port4" "port5" "port6"
           unset pingserver-monitor-interface
           set pingserver-failover-threshold 0
           set pingserver-flip-timeout 60
       end
       # diagnose sys ha status
       HA information
       Statistics
               traffic.local = s:2096712 p:2541238162 b:1972123729708
               traffic.total = s:9497465 p:2541238496 b:1972123977459
               activity.fdb = c:0 q:0
       
       Model=311, Mode=2 Group=0 Debug=0
       nvcluster=1, ses_pickup=1
       HA group member information: is_manage_master=1.
       FG311B1111111111, 0. Master:254 myfirewall1
       FG311B1111111112, 1. Slave:128 myfirewall2
       
       vcluster 1, state=work, master_ip=10.0.0.1, master_id=0:
       FG311B1111111111, 0. Master:254 myfirewall1(prio=0, rev=0)
       FG311B1111111112, 1. Slave:128 myfirewall2(prio=1, rev=1)

Kann ich für einen Cluster eine VDOM erstellen die ausschliesslich für das Management benutzt wird?

Auf der einen Seite gibt es in einem Cluster die Möglichkeit ein spezifisches Interface auf jedem Node zu konfigurieren (HA Reserved Management Interface) die für das Management der einzelnen Nodes zuständig sind. Diese Art der Konfiguration ermöglicht es die einzelnen Nodes zu überwachen (SNMP) und diese über das spezifische Interface zu Managen/Troubleshooten. Der Nachteil in dieser Konfiguration liegt im Logging Bereich dh. bei der Log Uebertragung auf einen Remote Log Server wie zB "Syslog". Nichts desto trotz ist dies die meist gewählte Implementierung und sollte auch unter normalen Umständen gewählt werden. Dazu wählt man in der HA Konfiguration ein dezidiertes Interface:

      System > Config > HA > Reserve Management Port for Cluster Member
      
      NOTE Beachte dabei das dieses Interface vom "Clustering" ausgenomme ist dh. durch das Konfigurieren
           einer IP für jeden Node auf dem spezifischen Interface das als "Reserve Management Port for
           Cluster Member" konfiguriert wurde kann über diese IP jeder Node einzeln angegangen werden. 
           Dies ermöglichkt auch -über dieses Interace- jeden Node einzeln über SNMP zu überwachen.

Wie oben beschrieben unter normalen Umständen sollte diese Art der Implementation eines Management Interface's konfiguriert werden. Möchte man jedoch mit einer "seperaten" VDOM dh. Mgmt. VDOM arbeiten und die Möglichkeit haben über diese VDOM den Cluster zu managen sowie Log's einzel für jeden Node zB zu einem Syslog zu senden kann eine "Management VDOM" implementiert werden. Dabei ist zu beachten, dass diese Management VDOM "nicht" im Clustering enthalten ist dh. diese wird nicht "synchronized" und ist komplett unabhängig vom Cluster. Alle Interfaces/Ports die innerhalb einer solchen "Management VDOM" zur Verfügung stehen können genutzt werden um den Cluster zu Administrieren. Dabei spielt es keine Rolle ob man die Interfaces/IP's benutzt des Slaves und/oder des Masterw da die "Management VDOM" nicht Bestandteil des "Clustering" ist. Aus diesem Grund werden ebenfalls die Logs unabhängig für jeden Node einzel mit dessen IP resp. die für die Management VDOM benutzt werden zB einem "Syslog" übermittelt. Gleichzeitig kann wie bei der "HA Reserved Management Interface" jeder einzelne Node des Clusters über diese IP's/Interfaces zB über SNMP überwacht werden. Um eine solche Konfiguration durchzuführen bedarf es FortiOS 5.0. Folgendes muss durchgeführt werden über die Console auf dem Cluster:

                                          __________
                                         |          |
                                         | INTERNET |
                                         |__________|
                                               |
                                        _______|______
                       ________________|              |________________
                      |                |  Red Switch  |                |
                      | WAN1           |______________|                | WAN1
                 _____|_____                                      _____|_____ 
                |           |                                    |           |
                |           |<---- PORT1 Interface Heartbeat---->|           |
                |           |                                    |           |
                |  FORTI    |                                    |  FORTI    |
                |____       |                                    |       ____|
                |    |      |                                    |      |    |
      MGMT VDOM |____|______|                                    |______|____| MGMT VDOM
                  |   |                 ______________                |    | 
            MGMT1 |   | INTERANL       |              |      INTERNAL |    | MGMT1
                  |   |________________| Green Switch |_______________|    |
                  |                    |______________|                    |
                  |                           |                            |
                  |                      _____|____                        |
                  |                     |          |                       |
                  |                     |   LAN    |                       |
                  |                     |__________|                       |
                  |                                                        |
                 _|_____________                              _____________|_
                |               |                            |               |                         
                | Mgmt. Switch  |                            | Mgmt. Switch  |
                |_______________|                            |_______________|
                        |                                            |
                        |                                            |
                        |                                            |
                        | Mgmt. Network                              | Mgmt. Network
                        |                                            |
       NOTE Dieses Beispiel geht davon aus das beide Devices "nicht" produktiv sind und nicht im 
            Netzwerk verbunden sind. Die Devices dh. der Master und der Slave werden Standalone
            Konfiguriert und erst zu einem späteren Zeitpunkt über das Heartbeat Interface
            verbunden! Dabei gelten die gleichen Vorraussetzungen für den Bau eines Cluster wie 
            im folgenden Artikel beschrieben:
            
            Fortigate:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
       Master
       
       # config system global
       # set vdom-admin enable
       # end
       
       # config vdom
       # edit [Erstelle eine neue VDOM zB mit dem Namen "MGMT"]
       # end
       
       # config global
       # config system global
       # set management-vdom [Name der neu erstellten VDOM zB "MGMT"]
       # end
       
       NOTE Wenn das Kommando "management-vdom" benutzt wird kann die "root" 
            VDOM nicht angegeben werden in der Konfiguration!
       
       # config system ha
       # set mode [Setze den Mode Active/Passive dh. "a-p"]
       # set hbdev [Setze die Ports für den Heartbeat (Sync) sowie Priorität zB "port1 50"]
       # set standalone-mgmt-vdom enable
       # set priority [Setze einen Integer für Prority zB "200"]
       # set group-name [Gruppen Namen zB "FG-HA-SG0E0]
       # set group-id [Group ID zB "10"]
       # set password [Passwort max. Länge 19]
       # set override enable
       # end
       # end
       
       NOTE Die Option "override enable" wird benutzt damit der Master bei einem Failover
            nachträglich wiederum Master wird! Weitere Informationen zu dieser Option siehe
            nachfolgender Artikel:
            
            Fortigate:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
       
       # config vdom
       # edit [Gebe den Namen der erstellten Mgmt. VDOM an zB "MGMT"]
       # config system interface
       # edit [Wähle das Interface für die Mgmt. VDOM zB "mgmt1"]
       # set vdom [Füge das Interface der Mgmt. VDOM hinzu "MGMT"]
       # set ip [Vergebe die IPv4 Adresse mit deren Subnet zB "192.168.1.99/24]
       # end
       
       # config router static
       # edit 1
       # set device [Wähle das Interface für den Routing Eintrag zB "mgmt1"]
       # set gateway [Konfiguriere den Gateway als IPv4 Adresse zB "192.168.1.1"]
       # next
       # end
       SLAVE
       
       # config system ha
       # set mode [Setze den Mode Active/Passive dh. "a-p"]
       # set set hbdev [Setze die Ports für den Heartbeat (Sync) sowie Priorität zB "port1 50"]
       # set standalone-mgmt-vdom enable
       # set priority [Setze einen Integer für Prority zB "100"]
       # set group-name [Gruppen Namen zB "FG-HA-SG0E0]
       # set group-id [Group ID zB "10"]
       # set password [Passwort max. Länge 19]
       # end
       
       NOTE Beim "hbdev", "mode", "group-name", "group-id" sowie "password" müssen die gleichen Werte wie
            beim "Master" Device gesetzt werden!
       
       Nun führe einen "shutdown" durch für den Slave dh.:
       
       # execute shutdown
       
       Verbinde nun den Master mit dem Slave Device über das konfigurierte "Heartbeat" (hbdev) Interface.
       Danach starte den "Slave" Device erneut und kontrolliere über die Console auf dem Slave das folgende
       Meldung erscheint:
       
       slave's external files are not in sync with master, sequence:1. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
       slave succeeded to sync external files with master
       slave succeeded to sync external files with master
       
       Sobald der Slave Device in "sync" ist mit dem Master kann nun auf dem Slave Device das Interface für
       die Management VDOM -wie schon auf dem Master geschehen- durchgeführt werden:
       
       # config vdom
       # edit [Gebe den Namen der erstellten Mgmt. VDOM an zB "MGMT"]
       # config system interface
       # edit [Wähle das Interface für die Mgmt. VDOM zB "mgmt1"]
       # set vdom [Füge das Interface der Mgmt. VDOM hinzu "MGMT"]
       # set ip [Vergebe die IPv4 Adresse mit deren Subnet zB "192.168.1.100/24]
       # end
       
       # config router static
       # edit 1
       # set device [Wähle das Interface für den Routing Eintrag zB "mgmt1"]
       # set gateway [Konfiguriere den Gateway als IPv4 Adresse zB "192.168.1.1"]
       # next
       # end
       Nun kann zB ein "Syslog" Server konfiguriert werden:
       
       # config log syslogd setting
       # set status enable
       # set server "192.168.1.103"
       # end

Wenn man sich nun die Logs anschaut - die auf dem Syslog Server übermittelt werden - sieht man das diese "pro" Node mit unterschiedlichen IP's übermittelt werden da diese über jeden Node einzeln über die Management VDOM gesendet werden:

       Feb 17 16:06:44 192.168.1.99 date=2014-02-16 time=23:09:10 devname=FG3K9B3E13700260 devid=FG3K9B3E13700260 logid=0001000014 type=traffic subtype=local level=notice vd=MGMT srcip=
       192.168.1.103 srcport=137 srcintf="mgmt1" dstip=192.168.1.255 dstport=137 dstintf="MGMT" sessionid=865 status=deny policyid=0 dstcountry="Reserved" srccountry="Reserved" trandisp=noop 
       service=137/udp proto=17 app=137/udp duration=0 sentbyte=0 rcvdbyte=0
       Feb 17 16:06:44 192.168.1.100 date=2014-02-16 time=23:09:10 devname=FG3K9B3E10700346 devid=FG3K9B3E10700346 logid=0001000014 type=traffic subtype=local level=notice vd=MGMT srcip=
       192.168.1.103 srcport=137 srcintf="mgmt1" dstip=192.168.1.255 dstport=137 dstintf="MGMT" sessionid=704 status=deny policyid=0 dstcountry="Reserved" srccountry="Reserved" trandisp=noop 
       service=137/udp proto=17 app=137/udp duration=0 sentbyte=0 rcvdbyte=0

Weitere Informationen betreffend Einrichtung eines Syslog Servers siehe Artikel:

       Fortigate:FAQ#Wie_kann_ich_auf_einer_Fortigate_die_Logs_zus.C3.A4tzlich_einem_Syslog_Server_senden.3F

Wireless-Controller

Ich sehe über das Web Gui die Menüpositionn "WiFi Controller" nicht?

Die Menüposition im Web Gui des "WiFi Controller's" kann über die Globalen Option ein- oder ausgeblendet werden:

       # config system global
       # set gui-wireless-controller [enable | disable]
       # end

Diese Konfiguration kann auch über das Web Gui durchgeführt werden:

       System > Config > Features > WiFi Controller
       
       Fortinet-781.jpg

Wie setze ich auf einer FortiGate den "Country Code" (location) auf dem WiFi Controller?

Der "Country Code" betreffend WiFi Controller ist eine "Wichtige" Option auf einer FortiGate. Der Grund ist der Folgende: Eine FortiGate wird mit einem "Countr Code" US ausgeliefert dh. United States. Die "AP Profiles" die per Standard auf einer FortiGate existieren basieren auf diesem "Country Code". Wird der "Country Code" der per Standard auf "US" gesetzt ist nicht gewechselt und man benutz die darauf basierenden "AP Profiles" benützt man "US" Standards in den Settings für Radio 1 und/oder 2. Dies bedeutet es stehen zB im 2.4 GHz Bereich nur 11 Channels zur Verfügung und nicht 13 wie für "CH" definiert. Aus diesem Grund ist es "enorm" wichtig diesen "Country Code" zu Beginn richtig zu setzen. Um diesen korrekt zu setzen siehe nachfolgenden Artikel:

       FortiAP:FAQ#Was_ist_als_Erstes_beim_.22setup.22_eines_FortiAP_zu_beachten.3F

Gibt es eine Möglichkeit den Wireless Controller auf einer FortiGate komplett zu deaktiveren?

Wenn man zB aus Security Gründen etc. den "Wireless Controller" komplett deaktivieren möchte kann dies über die CLI durchgeführt werden:

       # config system global
       # set wireless-controller [enable / disable]
       # end

Gibt es eine Möglichkeit über den Wirless Controller die FortiAP's zu überwachen (Health Monitor)?

Nähere Informationen zu diesem Thema siehe folgender Artikel:

       FortiAP:FAQ#Gibt_es_eine_M.C3.B6glichkeit_die_FortiAP.27s_zu_.C3.BCberwachen_.28Health_Monitor.29.3F

Wie kann ich Verbindungsprobleme mit einem Wireless Client/Workstation troubleshooten?

Um zB Verbindungsprobleme mit einem Client oder Workstation zu troubleshooten benütze folgenden "diagnose" Befehl:

       NOTE Um herauszufinden welche Clients mit welcher SSID und MAC Adresse verbunden sind siehe Artikel:
       
            FortiAP:FAQ#Wie_finde_ich_raus_welche_Clients_mit_welcher_SSID_verbunden_sind_und_mit_welcher_MAC_Adresse.3F
       # diagnose wireless-controller wlac sta_filter 9C:B7:0D:DE:8F:74 1
       Set filter sta 9c:b7:0d:de:8f:74 level 1
       
       NOTE Nach der MAC Adresse muss mit "1" der Diag eingeschaltet um mit "0" nachträglich wiederum ausgeschaltet werden!
            Solange der Filter mit "0" nicht ausgeschaltet wird gilt dieser auch wenn aus der Console ausgeloggt wird!

Nachfolgendes Beispiel zeigt eine "korrekte" Verbindung eines Client mit der MAC Adresse 9C:B7:0D:DE:8F:74:

       # 33229.313 <ih> IEEE 802.11 mgmt::assoc_req <== 9c:b7:0d:de:8f:74 vap only4also rId 0 wId 0 00:09:0f:f9:29:22
       33229.314 <ih> IEEE 802.11 mgmt::assoc_resp ==> 9c:b7:0d:de:8f:74 vap only4also rId 0 wId 0 00:09:0f:f9:29:22 resp 0
       33229.316 <cc> STA_CFG_REQ(141) sta 9c:b7:0d:de:8f:74 add ==> ws (0-192.168.3.2:5246) rId 0 wId 0
       33229.316 <dc> STA add 9c:b7:0d:de:8f:74 vap only4also ws (0-192.168.3.2:5246) rId 0 wId 0 bssid 00:09:0f:f9:29:22 NON-AUTH
       33229.318 <cc> STA add 9c:b7:0d:de:8f:74 vap only4also ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22 sec WPA2_ENTERPRISE auth 0
       33229.325 <eh>     send 1/4 msg of 4-Way Handshake
       33229.326 <eh>     send IEEE 802.1X ver=1 type=3 (EAPOL_KEY) data len=95 replay cnt 1
       33229.326 <eh> IEEE 802.1X (EAPOL 99B) ==> 9c:b7:0d:de:8f:74 ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22
       33229.327 <cc> STA_CFG_RESP(141) 9c:b7:0d:de:8f:74 <== ws (0-192.168.3.2:5246) rc 0 (Success)
       33229.516 <eh> IEEE 802.1X (EAPOL 121B) <== 9c:b7:0d:de:8f:74 ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22
       33229.517 <eh>     recv IEEE 802.1X ver=1 type=3 (EAPOL_KEY) data len=117
       33229.518 <eh>     recv EAPOL-Key 2/4 Pairwise replay cnt 1
       33229.519 <eh>     send 3/4 msg of 4-Way Handshake
       33229.520 <eh>     send IEEE 802.1X ver=1 type=3 (EAPOL_KEY) data len=175 replay cnt 2
       33229.520 <eh> IEEE 802.1X (EAPOL 179B) ==> 9c:b7:0d:de:8f:74 ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22
       33229.524 <eh> IEEE 802.1X (EAPOL 99B) <== 9c:b7:0d:de:8f:74 ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22
       33229.525 <eh>     recv IEEE 802.1X ver=1 type=3 (EAPOL_KEY) data len=95
       33229.526 <eh>     recv EAPOL-Key 4/4 Pairwise replay cnt 2
       33229.527 <dc> STA chg 9c:b7:0d:de:8f:74 vap only4also ws (0-192.168.3.2:5246) rId 0 wId 0 bssid 00:09:0f:f9:29:22 AUTH
       33229.528 <cc> STA chg 9c:b7:0d:de:8f:74 vap only4also ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22 sec WPA2_ENTERPRISE auth 1
       33229.529 <cc> STA_CFG_REQ(142) sta 9c:b7:0d:de:8f:74 add key (len=16) ==> ws (0-192.168.3.2:5246) rId 0 wId 0
       33229.533 <eh>     ***pairwise key handshake completed*** (RSN)
       33229.534 <cc> STA_CFG_RESP(142) 9c:b7:0d:de:8f:74 <== ws (0-192.168.3.2:5246) rc 0 (Success)
       33229.549 <dc> DHCP Request server 0.0.0.0 <== host SatellitePro770 mac 9c:b7:0d:de:8f:74 ip 192.168.5.2
       33229.556 <dc> DHCP Ack server 192.168.5.1 ==> host  mac 9c:b7:0d:de:8f:74 ip 192.168.5.2 mask 255.255.255.128 gw 192.168.5.1
       33233.998 <dc> DHCP Inform server 0.0.0.0 <== host SatellitePro770 mac 9c:b7:0d:de:8f:74 ip 192.168.5.2
       33234.003 <dc> DHCP Ack server 192.168.5.1 ==> host  mac 9c:b7:0d:de:8f:74 ip 192.168.5.2 mask 255.255.255.0 gw 192.168.5.1

Nachfolgendes Beispiel zeigt einen "korrekten" Disconnect eines Client mit der MAC Adresse 9C:B7:0D:DE:8F:74:

       33813.865 <ih> IEEE 802.11 mgmt::disassoc <== 9c:b7:0d:de:8f:74 vap only4also rId 0 wId 0 00:09:0f:f9:29:22
       33813.866 <dc> STA del 9c:b7:0d:de:8f:74 vap only4also rId 0 wId 0
       33813.867 <eh>     ***WPA_PTK 9c:b7:0d:de:8f:74 DISCONNECTED***
       33813.869 <cc> STA_CFG_REQ(153) sta 9c:b7:0d:de:8f:74 del ==> ws (0-192.168.3.2:5246) rId 0 wId 0
       33813.870 <cc> STA del 9c:b7:0d:de:8f:74 vap only4also ws (0-192.168.3.2:5246) rId 0 wId 0 00:09:0f:f9:29:22 sec WPA2_ENTERPRISE reason I2C_STA_DEL
       33813.879 <cc> STA_CFG_RESP(153) 9c:b7:0d:de:8f:74 <== ws (0-192.168.3.2:5246) rc 0 (Success)

Nun der oben gezeigte Output stammt vom Fortigate Wireless Controller! Möchte man den Output Access Point Seitig sehen muss auf die Console des Access Points zugegriffen werden und folgendes durchgeführt werden:

       NOTE Es ist nicht zu empfehlen den nachträglichen Vorgang über den Consolen Port des Access Points durchzuführen da durch diesen
            Vorgang die Performance des Access Points zu stark beeinträchtigt wird. Aus diesem Grund sollte der Vorgang über Telnet durchgeführt
            werden! Um den Telnet Zugriff auf einem Access Point zu aktivieren siehe folgender Artikel:
            
            FortiAP:FAQ#Wie_kann_ich_per_Telnet_auf_einen_Access_Point_zugreifen_wenn_der_Access_Point_.C3.BCber_keinen_Consolen_Port_verf.C3.BCgt.3F
       Nachfolgendes Beispiel zeigt den Output einer "korrekte" Verbindung des Client mit der MAC Adresse 9C:B7:0D:DE:8F:74:
       
       ACHTUNG Der Debug muss nach Gebrauch umbedingt ausgeschaltet werden! Dies geschieht anhand des Befehls "cw_debug app cwWtpd 0x0"! 
       
       # cw_debug app cwWtpd 0x7fff
       49009.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248929 dbg 00007fff Pkts 0 0
       49010.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248930 dbg 00007fff Pkts 0 0
       49011.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248931 dbg 00007fff Pkts 0 0
       49012.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248932 dbg 00007fff Pkts 0 0
       49012.742 Wireless event: cmd=0x8c03 len=20
       49012.752 ==========================cwWtpProcRawMsg           7   1=========================
       49012.752 cwWtpProcRawMsg recvfrom total bytes 1750766
       49012.752 cwWtpProcRawMsg: it's a control message
       49012.752 cwWtpProcCipherCtrlMsg: looking at 125-byte encapsulated control message
       49012.752 cwWtpProcCipherCtrlMsg: wrote to socket 16, rc: 125 (errno: 11)
       49012.752 ==========================cwWtpProcRawMsg           7   2=========================
       49012.752 cwWtpDtlsThread: SSL_read() returned 66 ssl_err 0
       49012.753 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49012.753 CAPWAP Control Header Dump:
       49012.753     msgType             : 25 STA_CFG_REQ
       49012.753     seqNum              : 165
       49012.753     msgElemLen          : 53
       49012.753     flags               : 0
       49012.753 cwWtpProcPlainCtlMsg: received STA_CFG_REQ from 192.168.3.1/5246
       49012.753 WTP_EV_GEN - CWWE_STA_CFG_REQ meInfo 0x10124dc8 msgPtr (nil) len 0
       49012.753 cwWtpDtlsThread: SSL_read() returned 0 ssl_err 5
       49012.753 ==========================cwWtpFsmThread            4   1=========================
       49012.753 FSM: old CWWS_RUN(13) ev CWWE_STA_CFG_REQ(47) new CWWS_RUN(13)
       49012.754 CWWS_RUN_enter: Add 1 STAs.
       49012.754 CWWS_RUN_enter: STA ADD 0 - Radio ID 0 MAC 9c:b7:0d:de:8f:74 Vlan Name only4also
       49012.754 cwWtpStaRbtAdd: STA_CFG_REQ insert sta 9c:b7:0d:de:8f:74 0/0/1
       49012.754 CWWS_RUN_enter: sending STA CFG RESP msg.
       49012.755 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49012.755 CAPWAP Control Header Dump:
       49012.755     msgType             : 26 STA_CFG_RESP
       49012.755     seqNum              : 165
       49012.755     msgElemLen          : 11
       49012.755     flags               : 0
       49012.755 wtpDtlsWrite: SSL_write() was successful
       49012.756 CWWS_RUN_enter: wtpDtlsWrite() succeeded.
       49012.756 ==========================cwWtpFsmThread            4   2=========================
       49012.756 cwWtpProcOutCipherCtlMsg: calling recv()
       49012.756 cwWtpSendRawMsg: called with 81 bytes - dumping...
       49012.756 cwWtpSendRawMsg: send out encrypted msg.
       49012.756 cwWtpSendRawMsg: sendto of 81 of 81 bytes for 192.168.3.1/5246
       49012.756 cwWtpSendRawMsg: sendto total bytes 2407860
       49012.756 cwWtpProcOutCipherCtlMsg: successfully sent data...
       49012.756 cwWtpProcOutCipherCtlMsg: calling recv()
       49012.962 ==========================cwWtpProcRawMsg           7   1=========================
       49012.964 cwWtpProcRawMsg recvfrom total bytes 1750959
       49012.964 cwWtpProcRawMsg: it's a control message
       49012.964 cwWtpProcCipherCtrlMsg: looking at 189-byte encapsulated control message
       49012.964 cwWtpProcCipherCtrlMsg: wrote to socket 16, rc: 189 (errno: 11)
       49012.964 ==========================cwWtpProcRawMsg           7   2=========================
       49012.964 cwWtpDtlsThread: SSL_read() returned 135 ssl_err 0
       49012.964 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49012.964 CAPWAP Control Header Dump:
       49012.964     msgType             : 25 STA_CFG_REQ
       49012.965     seqNum              : 166
       49012.965     msgElemLen          : 122
       49012.965     flags               : 0
       49012.965 cwWtpProcPlainCtlMsg: received STA_CFG_REQ from 192.168.3.1/5246
       49012.965 cw_me_decode: me type 11_sta_session_key (1038) len 36 claims 29 more octets
       49012.965 WTP_EV_GEN - CWWE_STA_CFG_REQ meInfo 0x10124dc8 msgPtr (nil) len 0
       49012.965 cwWtpDtlsThread: SSL_read() returned 0 ssl_err 5
       49012.965 ==========================cwWtpFsmThread            4   1=========================
       49012.965 FSM: old CWWS_RUN(13) ev CWWE_STA_CFG_REQ(47) new CWWS_RUN(13)
       49012.965 CWWS_RUN_enter: Add 1 STAs.
       49012.965 CWWS_RUN_enter: STA ADD 0 - Radio ID 0 MAC 9c:b7:0d:de:8f:74 Vlan Name only4also
       49012.966 cwWtpStaRbtDel: DEL duo to ADD remove sta 9c:b7:0d:de:8f:74 0/0/1 from staRbt
       49012.966 cwWtpStaRbtAdd: STA_CFG_REQ insert sta 9c:b7:0d:de:8f:74 0/0/1
       49012.966 CWWS_RUN_enter: sending STA CFG RESP msg.
       49012.966 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49012.966 CAPWAP Control Header Dump:
       49012.966     msgType             : 49013.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248933 dbg 00007fff Pkts 0 0
       49014.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248934 dbg 00007fff Pkts 0 0
       49015.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248935 dbg 00007fff Pkts 0 0
       49016.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248936 dbg 00007fff Pkts 0 0
       49017.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248937 dbg 00007fff Pkts 0 0
       49018.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 248938 dbg 00007fff Pkts 0 0
       # cw_debug app cwWtpd 0x0
       Nachfolgendes Beispiel zeigt den Output eines "korrekten" Disconnect des Client mit der MAC Adresse 9C:B7:0D:DE:8F:74:
       
       ACHTUNG Der Debug muss nach Gebrauch umbedingt ausgeschaltet werden! Dies geschieht anhand des Befehls "cw_debug app cwWtpd 0x0"! 
       
       # cw_debug app cwWtpd 0x7fff
       49113.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249033 dbg 00007fff Pkts 0 0
       49114.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249034 dbg 00007fff Pkts 0 0
       49114.417 Wireless event: cmd=0x8c04 len=20
       49114.417 Wireless event: cmd=0x8c02 len=31
       49114.417 Custom wireless event: 'del sta: wlan00 '
       49114.417 cwWtp_wireless_event_wireless_custom Radio 0 wId 0 Del STA: 9c:b7:0d:de:8f:74
       49114.417 cwWtpSend_REQ_MSG: sending WTP_EVENT_REQ (9) msg.
       49114.417 cwWtpSendRawMsgQueue: SENDING OUT type 9 seqNum 156
       49114.417 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49114.417 CAPWAP Control Header Dump:
       49114.417     msgType             : 9 WTP_EVENT_REQ
       49114.417     seqNum              : 156
       49114.417     msgElemLen          : 34
       49114.417     flags               : 0
       49114.418 wtpDtlsWrite: SSL_write() was successful
       49114.418 cwWtpSendRawMsgQueue: wtpDtlsWrite() succeeded.
       49114.418 cwWtpPendingMsgAdd: add type 9 seqNum 156 into pending msg queue at head 18 Cnt 1
       49114.418 cwWtpProcOutCipherCtlMsg: calling recv()
       49114.418 cwWtpSendRawMsg: called with 113 bytes - dumping...
       49114.418 cwWtpSendRawMsg: send out encrypted msg.
       49114.418 cwWtpSendRawMsg: sendto of 113 of 113 bytes for 192.168.3.1/5246
       49114.418 cwWtpSendRawMsg: sendto total bytes 2408459
       49114.419 cwWtpProcOutCipherCtlMsg: successfully sent data...
       49114.419 cwWtpProcOutCipherCtlMsg: calling recv()
       49114.430 ==========================cwWtpProcRawMsg           7   1=========================
       49114.430 cwWtpProcRawMsg recvfrom total bytes 1751749
       49114.430 cwWtpProcRawMsg: it's a control message
       49114.430 cwWtpProcCipherCtrlMsg: looking at 109-byte encapsulated control message
       49114.430 cwWtpProcCipherCtrlMsg: wrote to socket 16, rc: 109 (errno: 11)
       49114.430 ==========================cwWtpProcRawMsg           7   2=========================
       49114.430 cwWtpDtlsThread: SSL_read() returned 47 ssl_err 0
       49114.431 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49114.431 CAPWAP Control Header Dump:
       49114.431     msgType             : 25 STA_CFG_REQ
       49114.431     seqNum              : 168
       49114.431     msgElemLen          : 34
       49114.431     flags               : 0
       49114.431 cwWtpProcPlainCtlMsg: received STA_CFG_REQ from 192.168.3.1/5246
       49114.431 WTP_EV_GEN - CWWE_STA_CFG_REQ meInfo 0x100ef468 msgPtr (nil) len 0
       49114.431 cwWtpDtlsThread: SSL_read() returned 0 ssl_err 5
       49114.432 ==========================cwWtpProcRawMsg           7   1=========================
       49114.432 cwWtpProcRawMsg recvfrom total bytes 1751830
       49114.432 cwWtpProcRawMsg: it's a control message
       49114.432 cwWtpProcCipherCtrlMsg: looking at 77-byte encapsulated control message
       49114.432 cwWtpProcCipherCtrlMsg: wrote to socket 16, rc: 77 (errno: 11)
       49114.432 ==========================cwWtpProcRawMsg           7   2=========================
       49114.432 ==========================cwWtpFsmThread            4   1=========================
       49114.432 FSM: old CWWS_RUN(13) ev CWWE_STA_CFG_REQ(47) new CWWS_RUN(13)
       49114.432 CWWS_RUN_enter: Del 1 STAs.
       49114.432 CWWS_RUN_enter: STA DEL 0 - Radio ID 0 MAC 9c:b7:0d:de:8f:74 Vlan Name  wId 0
       49114.432 CWWS_RUN_enter STA_DISASSOC wId 0 Intf wlan00 9c:b7:0d:de:8f:74
       49114.433 do80211priv ap wlan00 op 35814 Invalid argument
       49114.433 cwWtpStaRbtDel: STA_CFG_REQ remove sta 9c:b7:0d:de:8f:74 0/0/1 from staRbt
       49114.433 CWWS_RUN_enter: sending STA CFG RESP msg.
       49114.433 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49114.433 CAPWAP Control Header Dump:
       49114.433     msgType             : 26 STA_CFG_RESP
       49114.433     seqNum              : 168
       49114.433     msgElemLen          : 11
       49114.433     flags               : 0
       49114.433 wtpDtlsWrite: SSL_write() was successful
       49114.434 CWWS_RUN_enter: wtpDtlsWrite() succeeded.
       49114.434 ==========================cwWtpFsmThread            4   2=========================
       49114.434 cwWtpDtlsThread: SSL_read() returned 24 ssl_err 0
       49114.434 CAPWAP Hdr: P/T=0/0 len=2 RID=0 WBID=1 T=0 F=0 L=0 W=0 M=0 K=0 resv=0 frag=0/0 resv=0
       49114.434 CAPWAP Control Header Dump:
       49114.434     msgType    49115.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249116.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249036 dbg 00007fff Pkts 0 0
       49117.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249037 dbg 00007fff Pkts 0 0
       49118.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249038 dbg 00007fff Pkts 0 0
       49119.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249039 dbg 00007fff Pkts 0 0
       49120.522 FSM WTP -> AC (192.168.3.1/5246) State: CWWS_RUN (13) connect 4 live 249040 dbg 00007fff Pkts 0 0
       # cw_debug app cwWtpd 0x0

Folgender KB Artikel gibt weiter Auskunft über das Troubleshooting:

       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33214&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=35950338&stateId=0%200%2035948485

Wie finde ich heraus welche Clients ueber welche SSID und MAC Addresse über den Wirless Controller verbunden sind?

Nachfolgender Artikel gibt Auskunft über diese Frage:

       FortiAP:FAQ#Wie_finde_ich_raus_welche_Clients_mit_welcher_SSID_verbunden_sind_und_mit_welcher_MAC_Adresse.3F

Wie kann ich den Wireless-Controller auf einer Fortigate neu starten?

Wenn man den Wireless-Controller auf einer Fortigate aus irgendwelchen Gründen neu starten möchte wird dies folgendermassen durchgeführt:

       # diagnose debug application cw_acd 99

Wird der Service/Deamon "cw_acd" nicht neu gestartet oder läuft der Deamon permanetn auf 99% und kann deshalb nicht neu gestartet werden, muss/kann der Service/Deamon über die PID des Prozesses geschehen (ähnlich wie auf Linux). Der Prozess der den Wireless-Controller kontrolliert wäre folgender:

       cw_acd

Um nun die PID (Prozess ID Deamon) herauszufinden benützen folgenden Befehl auf der Console:

       # diagnose sys top 
       
       NOTE Um den Prozess top zu stoppen benützen ctrl-c

Sobald die PID eruiert ist setze folgenden Befehl ab:

       # diagnose sys kill [Kill Level/Sequenz 1 - 32] [PID des Prozesses cw_acd]

Verfügen alle FortiGate Devices über einen Wireless Controller?

Nähere Informationen siehe Artikel:

       FortiAP:FAQ#Verf.C3.BCgen_alle_FortiGate_Devices_.C3.BCber_einen_Wireless_Controller.3F

Wieviele FortiAP können über eine FortiGate konfiguriert werden?

Weitere Informationen siehe Artikel:

       FortiAP:FAQ#Wieviele_FortiAP_k.C3.B6nnen_.C3.BCber_eine_FortiGate_konfiguriert_werden.3F

Wie kann ich auf dem Wireless Controller einer FortiGate eine IP Fragmentierung verhindern?

Weitere Informationen zu diesem Thema siehe Artikel:

       FortiAP:FAQ#Wie_kann_ich_innerhalb_des_CAPWAP_Tunnel_eine_IP_Fragmentierung_verhindern.3F

Vdom

Was ist eine Vdom und was ist darunter zu verstehen sowie wie aktiviere ich diese?

VDom (Virtuell Domain) wurde durch Fortinet 2004 vorgestellt und ist seitdem her ein fester Bestandteil jeder FortiGate Firewall. VDom ist eine Virtualisierung einer Firewall Instanz im Gesamten dh. sämtliche Firewall Komponenten/Konfiguration wird separariert. Eingeloggte Administratoren sehen auf den Ihnen zugeteilter VDom Instanz nur deren Konfiguration. Interkomunikation zwischen VDom Instanzen sind über virtualisierte Interfaces (Inter-VDOM-Link) direkt möglich ohne physikalische zu benutzen. Jede FortiGate hat die Möglichkeit -ohne zusätzliche Lizensierung- 10 VDOM's zu benutzen. Bis zur FortiGate-1000 können diese VDOM's nicht erweitert werden. Für FortiGate 1000 und grösser können die VDOM Instanzen anhand 25er Package erweitert werden! Die VDOM Funktionalist auf einer FortiGate ist per Standard deaktiviert. Um diee Funktion zu aktivieren führe folgendes durch:

            # config system global
            # set vdom-admin enable
            # end
            You will be logged out for the operation to take effect
            Do you want to continue (y/n)y
       NOTE Duruch die Aktivierung der VDOM Funktion auf einer FortiGate wird die bestehende Instanz zur
            "root" VDOM. Diese Instanz kann nicht unbenannt werden! Weitere Informationen betreffend Details, 
            Informationen sowie Konfiguration siehe nachfolgenden Artikel. Darin befindet sich ein das Dokument
            "Fortigate-vdoms-50.pdf" das sich ausschliesslich mit VDOM's befasst:
            
            Fortigate-vdoms-50
            
            Desweiteren sollte betreffend CLI im Zusammenhang mit VDOM's folgender Artikel berücksichtigt werden:
            
            Fortigate:FAQ#Was_muss_in_der_CLI_.28Kommandozeile.29_betreffend_VDom.27s_beachtet_werden.3F

Was muss in der CLI (Kommandozeile) betreffend VDom's beachtet werden?

Sobald auf der Kommandozeile (CLI = Command Line Interface) die VDOM Funktion aktiviert wird erweitert sich die hirarchische Struktur in der CLI um die einzelnen Konfigurationen der Firewall Instanzen abzubilden. Wie die VDOM Funktion aktiviert wird siehe nachfolgenden Artikel:

       Fortigate:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F

Nach dem die VDOM Funktion aktiviert ist verhätl sich die CLI folgendermassen:

       Global Editieren
       # config global
       # config sytem global
       VDOM Editieren
       # config vdom
       # edit [Vdom Name]

Müssen VDom Instanzen lizensiert werden und wie kann man diese Erweitern?

Jede Fortigate besitzt per Standard 10 VDom Instanzen (FortiGate bis 1000er Serie untersützten 10 VDom’s und sind nicht erweiterbar). Upgrade auf einer höhere Anzahl VDom's bei grösseren Devices als FortiGate 1000er Serie sind jederzeit möglich (25 Package)! Die Virtualisierte Version der FortiGate unterstützt in der Basis Version (VM-00) KEINE VDom's und kann nicht anhand VDOM Lizenzen mit VDom's versehen werden! Wieviel VDom's welche virtuelle Version der FortiGate unterstützt und ob diese Erweiterbar sind sieht man aus dem folgenden Dokument:

       Fortinet:ProduktInfo#FortiGate_VM

Wie Registriere/Aktiviere ich eine zusätzliche VDom Lizenz auf einer FortiGate?

Nachfolgender Artikel gibt Auskunft welche FortiGate (inkl. Virtualisierung) wieviele VDom's unterstützen:

       Fortigate:FAQ#M.C3.BCssen_VDom_Instanzen_lizensiert_werden_und_wie_kann_man_diese_Erweitern.3F

Wenn eine FortiGate sei es Physisch oder Virtualisiert mit zusätzlichen VDom's erweitert wird, muss folgendermassen vorgegangen werden:

       - Die zusätzlichen VDom Lizenzen werden anhand eines Lizenz Zertifikates geliefert!
         
       - Auf diesem Lizenz Zertifikat ist unter "VDOM License Number:" der entsprechende Lizenz Code aufgeführt!
         
       - Logge dich auf https://support.fortinet.com auf den Account ein indem die FortiGate mit dessen Serien Nummer registriert ist!
         
       - Wähle "Manage/View Products" klicke auf die entsprechende Serien Nummer der FortiGate auf der die VDom Lizenzerweiterung durchgeführt werden soll!
         
       - Wähle unter der entsprechenden Serien Nummer der FortiGate "Add VDOM License" und geben den auf dem Zertifikat aufgeführten "VDOM License Number:" ein!
         
       - Führe die Registration durch!
         
       - Nach der Registration wird ein entsprechender VDom Key unter "Add VDOM License" aufgeführt.
         
       - Nun muss der entsprechende "VDom Key" auf der FortiGate unter folgender Position eingespielt werden:
         
         Dashboard > Status > License Information > Virtual Domains
         
         NOTE Wenn ein Cluster Betrieben wird MUSS vorgängig ein Backup durchgeführt werden! Der "VDom Key"
              muss auf beiden Nodes des Clusters eingespielt werden! Das Einspielen der Lizenz führt zu einem 
              sofortigen Neustart der Fortigate ohne Warnung!
         
       - Nach dem Neustart kann die max. Anzahl der VDom's unter folgender Position verifiziert werden:
         
         System > Dashboard> License Information > Virtual Domains
         
         NOTE Diese Verifikation sollte auf Master und Slave durchgeführt werden!

Kann ich die zur Verfügung stehenden Resourcen wie Memory, CPU etc. auf einer FortiGate einer bestimmten VDOM zuweisen?

Nein dies ist so nicht möglich dh. eine feste Zuweisung von Resourcen wie zB RAM Bereich und/oder CPU usw. ist nicht möglich. Was konfiguriert werden kann ist die "Limitierung" von Resourcen. Damit wird gewährleistet, dass durch "Eine" VDOM/Instanz nicht alle Resourcen aufgebraucht werden und somit andere VDOM's beeinträchtigt werden. Nachfolgend die Konfigurationspunkte die für die Limitierung konfiguriert werden können (Stand FortiOS 5.0.4 / 5.2):

       Folgende Position zeigt die "Globalen Resourcen" die zur Verfügung stehen:
       
       Fortinet-812.jpg
       Unter folgender Position können die "Globalen Resourcen" für die einzelnen VDOM's limitiert werden:
       
       Fortinet-813.jpg

Einige Resourcen sind für die einzelnen VDOM Instanzen über Mgmt. Web Interface ersichtlich. Dies gilt für folgende Resourcen:

       • Interface
       • Ref. (Spalte im Web Mgmt. Interface per Standard deaktiviert)
       NOTE Ab FortiOS 5.2 sind zusätzlich folgende Resourcen über Web Mgmt. Interface ersichtlich:
       
       • CPU
       • Memory
       • New Sessions per Second (Spalte im Web Mgmt. Interface per Standard deaktiviert)
       • Sessions (Spalte im Web Mgmt. Interface per Standard deaktiviert)
       Fortinet-1127.jpg
       NOTE Auf der Kommandozeile steht für FortiOS 5.2 folgendes Kommando zur Verfügung:
            
            # diagnose sys vd stats
            vdom-1 cpu:0%   mem:0%
            root   cpu:5%   mem:14%

Kann ich die "management-vdom" Funktion die der "root" VDOM zugewiesen ist einer anderen VDOM zuweisen?

Der Funktion "management-vdom" kommt einer wichtigen Funktion gleich dh. über diese VDOM resp. deren Interfaces wird sämtlicher "local" Traffic ausgeführt. Dies bedeutet die FortiGate benötigt für Ihre Services wie Antivirus, IPS, Application Control, WebFilter usw. Definition Files, DNS Resolution etc. All dieser "local" Traffic wird über die "management-vdom" abgewickelt resp. deren Interface's. Per Standard ist die VDOM "root" als "management-vdom" definiert. Möchte man das Aendern kann dies über Web Mmt. Interface durchgeführt werden:

       Fortinet-1128.jpg
       
       NOTE Die Auswirkungen, wenn die "managemnt-vdom" von der VDOM "root" auf eine neue VDOM verschoben
            wird, sollten gut überlegt sein sowie deren Auswirkungen. Die Konfiguration kann ebenfalls 
            über die Kommandozeile durchgeführt werden:
            
            # config system global
            # set managemtn-vdom [Name der entsprechenden VDOM]
            # end

Welche Konfiguration/Resourcen werden durch die "Globale Instanz" einer VDom Instanz zur Verfügung gestellt?

VDom's sind Firewall Instanzen die komplett separiert sind und zB keine Routing Table, Policy, Object etc. teilen. Nichts desto trotz werden vers. Komponenten von der "Global Instanz" den VDOM Instanzen zur Verfügung gestellt. Dies sind zB Antivirus Definition Files, Firmware etc. Nachfolgend einen Ueberblick "was" von der "Global Instanz" den VDom Instanzen zur Verfügung gestellt wird:

      - Hostname
      - DNS Settings
      - System Time (NTP)
      - Firmware Version
      - Log Konfiguration betreffend Log Speicherort
      - Endpoint Scans
      - UTM Datenbanken
      
      NOTE Zertifikate werden in der "Globalen Instanz" vewaltet und sind Global zu betrachten!

Alle diese Funktionen benötigen teilweise Internet Access und werden auf einer FortiGate auch als "local-in/out" Traffic angesehen. Dieser "local-in/out" Traffic wird über das Interface der "management-vom" abgewickelt (Standard VDOM "root"). Die Zuweisung der "management-vdom" kann verändert werden. Dazu siehe nachfolgenden Artikel:

       Fortigate:FAQ#Kann_ich_die_.22management-vdom.22_Funktion_die_der_.22root.22_VDOM_zugewiesen_ist_einer_anderen_VDOM_zuweisen.3F

Ist das Routing für eine VDom "Global" oder per "VDom" zu verstehen?

Das Routing ist nicht "Global" implementiert sondern per "VDom". Dies bedeutet eine "VDom" ist wie eine seperate in sich geschlossene Routing Instanz und verfügt somit auch ihre eigenen Routing Table. Deshalb muss in jeder "VDom" seperat geroutet werden! Ein Routing Eintrag innerhalb einer VDom wird wie üblich erstellt:

       Datei:Fortinet-138.jpg
       
       NOTE Ein entsprechender Routing Eintrag kann ebenfalls über die Kommandozeile durchgeführt werden:
            
            # config vdom
            # edit [Name der entsprechenden VDom]
            # config router static
            # edit [Gebe einen Sequenz an zB "1"]
            # set dst [IPv4 Subnet]
            # set gateway [IPv4 Adresse]
            # end

Was muss ich berücksichtigen im Zusammenhang mit einer VDom und Layer 2?

Eine VDom im Transparent Modus reagiert eigentlich wie eine Bridge dh. die Interface's die für eine Transparent VDom benutzt werden sind nicht konfigurierbar mit einer IP. Die Aussage, dass eine Fortigate im Transparent Modus als "Bridge" agiert ist zwar im Grundsatz richgit dennoch wiederum nicht ganz richtig dh. richtig wäre "wie ein Switch". Der Grund liegt in den UTM Möglichkeiten im Transparent Modus denn diese benötigen einen Layier um eine Proxyfizierung durchzuführen und deshalb die Festellung "wie ein Switch". Auch im Layer 2 sind einige Umstände zu berücksichtigen damit Traffic von Layer 2 korrekt abgearbeitet wird. Fortinet hat in der "Knowledge Base" ein Dokument Released das diesem Umstand Rechnung trägt:

       Datei:Fortinet+Solutions+for+Transparent+Mode+(Layer-2)-v2.pdf

Können VDom's im HA (High Availability) betrieben werden?

VDOM’s sind Vollumfänglich HA-fähig (Cluster). In Active-Passive Mode laufen sämtliche VDOM’s per Standard jeweils auf der aktiven FortiGate. Der andere passive Device wird erst aktiv sobald die aktive FortiGate resp der primäre Device ausfällt. Dies ist das Standard Verhalten im Cluster (Active-Passive Modus). Es kann jedoch aus Resourcen Gründen (zB Performance) auf einer Active-Passive Installation VDom's auf den Passiven Device ausgelagert werden. Wenn dies durchgeführt wird bleibt der Cluster zwar Active-Passive aber die jeweiligen Nodes übernehmen betreffend den VDom's entweder den Activen Part und/oder den Passiven Part.

       Node Active          Node Passive
       Phyiscal-Node1       Physical-Node2
       vdom-1 (Active)      vdom-1 (Passive)
       vdom-2 (Passive)     vdom-2 (Active)

Wie kann ich eine neue VDom erzeugen/erstellen

Grundvoraussetzung um eine VDom auf einer FortiGate zu erstellen ist das die Funktion aktiviert ist. Nachfolgender Artikel gibt Auskunft wie dies durchgeführt wird:

       Fortigate:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F

Wenn die Funktion VDom aktiviert wird so wird automatisch anhand der vorhandene Konfiguation eine VDom mit dem Namen "root" erstellt (kann nicht umbenannt werden)! Möchte man zu dieser VDom eine zusätzliche VDOM erzeugen so kann dies im Mgmt. Web Interface über folgende Position durchgeführt werden:

       Global > VDOM > VDOM > Create New

Es muss ein entsprechender Name vergeben werden sowie der "Operation Mode" den die VDOM benutzen soll. Möchte man eine Transparent Vdom erstellen muss eine "Management IP/Netmask" konfiguriert werden. Diese "Management IP/Netmask" stellt ein entsprechendes Interface dar auf der FortiGate auf der die entsprechende IP konfiguriert ist. Da eine Transparent VDom über kein Routing verfügt (Bridge) muss für das "Management IP/Netmask" Interface ein Routing definiert werden. Dieses Routing beschränkt sich einzig und alleine auf diese "Management IP/Netmask" resp. auf das physisch konfigurierte Interface. Weitere Informationen betreffend Konfiguration einer Transparent VDom siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_konfiguriere.2Ferstelle_ich_eine_VDom_Instanz_im_Transparent_Mode.3F

Wie konfiguriere/erstelle ich eine VDom Instanz im Transparent Mode?

Wenn man eine Transparent VDom erstellen möchte kann auch ohne die VDom Funktion zu aktivieren die "root" VDom die als NAT definiert ist als "Transparent Mode" definiert werden. Wenn jedoch zusätzlich zur "root" VDom eine zusätzliche VDom im Transparent Mode erstellt werden soll muss zuerst die VDom Funktion aktiviert werden. Wie dies durchzuführen ist siehe nachfolgenden Artikel:

       Fortigate:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F

Danach erstelle eine neue VDOM und konfiguriere diese für Transparent Modus:

       # config vdom
       # edit [Name der neuen VDom zB "vdom-2"]
       # config system settings
       # set opmode transparent
       # set manageip [IPv4 Adresse des Management Interfaces]
       # end
       
       # config router static
       # edit 1
       # set gateway [IPv4 Adresse des Gateway für "manageip"]
       # end
       
       # end
       
       NOTE Die Option "manageip" definiert die IP eines bestehenden und konfigurierten physischen Interfaces. Dieses
            wird benutzt um die Transparent Firewall zu verwalten da diese ja nicht zugänglich ist da eine Transparent
            Firewall über keine IP verfügt (Bridge). Aus diesem Grund muss für dieses Interface "manageip" eine Route
            gesetzt werden. Diese Route ist beschränkt auf die Konfiguration "manageip" resp. auf das physische Interface.
            Eine VDom im Transparent Modus reagiert eigentlich wie eine Bridge dh. die Interface's die für eine Transparent
            VDom benutzt werden sind nicht konfigurierbar mit einer IP. Die Aussage, dass eine Fortigate im Transparent 
            Modus als "Bridge" agiert ist nicht ganz richtig dh. richtig wäre "wie ein Switch". Der Grund liegt in den 
            UTM Möglichkeiten im Transparent Modus denn diese benötigen einen Layier um eine Proxyfizierung durchzuführen
            und deshalb die Festellung "wie ein Switch". Im nachfolgenden Dokumentation wird erklärt wie Interface's im
            Zusammenhang mit VDom's zu benützen sind:
            
            Hosting More as one FortiOS instance on a single FortiGate using VDOMS an VLANs"
            
            Im Zusammenhang mit Layer 2 und VDom's sind einige Umstände zu berücksichtigen dh. Fortinet hat in der "Knowledge
            Base" ein Dokument Released das diesem Umstand Rechnung trägt:
            
            Datei:Fortinet+Solutions+for+Transparent+Mode+(Layer-2)-v2.pdf

Was sind inter-VDom-Links (Interfaces) und wie werden diese erstellt?

Immer wieder ist von inter-VDom-Links resp Interface die Rede. Inter-VDom-Links sind "Virtuelle Interfaces" (Soft-Link), welche eine NAT/Routing-VDommit einer anderen NAT/Routing-VDomverbinden. Diese Inter-VDom-Links ersetzen "physische Kabel". Inter-VDom-Links sollten -sofern keine Transparent Mode VDom- immer mit einer IP Konfiguration versehen werden obwohl dies nicht ein "muss" ist. Empfohlen wird zwischen Zwei VDom NAT Firewall zB ein "Transfer Segment" zu konfigurieren und die entsprechenden IP Ranges/Subnets darüber zu Routen. Auch können mit inter-VDom-Links "meshed" Netzwerke zwischen verschiedenen VDom’s etabliert werden. Um Ringrouten (Loop) zu vermeiden, wird der TTL eines IP-Packets durch die Inter-VDom-Links auf 6 "hope" beschränkt. Das Packet kann also maximal 6x durch ein Inter-VDom-Link übertragen werden bevor es verworfen wird.

       NOTE Unter FortiOS 4 MR3 war es nicht möglich Inter-VDom-Links zu erstellen zwischen zwei VDom's in vers. Modi dh. Transparent
            und/oder NAT. Inter-VDom-Links waren unter FortiOS 4 MR3  nur möglich wenn beide VDom's im gleichen Mode liefen. Die einzige 
            Möglichkeit in solche einem Scenario unter FortiOS 4 MR3 war die "physischen Interfaces" mit einem RJ-45 zu verbinden. Unter 
            FortiOS 5.0 / 5.2 ist es nun möglich Inter-VDom-Links zu erstellen zwischen VDom's die in unterschiedlichen Modi konfiguriert
            sind. dh. NAT und Transparent Modus.

Ein Inter-Vdom-Link kann nur in der "Globalen" Instanz konfiguriert werden und so einer entsprechenden Instanz zur Verfügung gestellt werden. Ein Inter-VDom-Link wird folgendermassen erstellt:

       NOTE Es ist möglich unter bestimmten Vorraussetzungen eine Acceleration für einen Inter-VDom-Link zu konfigurieren.
            Um welche Vorraussetzung es sich handelt siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Kann_man_f.C3.BCr_einen_Inter-VDom-Link_eine_Interface_Acceleration_konfigurieren.3F
       System > Network > Interface
       
       Datei:Fortinet-135.jpg
       
       Datei:Fortinet-136.jpg
        
       Datei:Fortinet-137.jpg

In unserem Beispiel wurde die VDom "root" verbunden mit der VDom "root-2" anhand eines Transfernetzes 172.20.0.0/24! Wenn hinter der VDom "root-1" ein weiteres Netzwerk existieren würde müsste dieses auf der VDom "root" geroutet werden dh. auf den VDom Link! Da unsere VDom "root-1" mit einem inter-VDOM-Link versehen ist muss der Default Gateway der VDom "root-1" auf den Inter-VDom-Link von "root" zeigen dh. erstelle einen Routing Eintrag und berücksichtige folgender Artikel:

       Fortigate:FAQ#Ist_das_Routing_f.C3.BCr_eine_VDom_.22Global.22_oder_per_.22VDom.22_zu_verstehen.3F
       Datei:Fortinet-138.jpg

Kann man für einen Inter-VDom-Link eine Interface Acceleration konfigurieren?

Unter FortiOS 4 M3 war dies nicht möglich. Neu mit FortiOS 5.0 / 5.2 ist dies nun möglich, jedoch nur wenn der Device über "NP4/NP6 Network Processor" verfügt (Kein SoC). Der Unterschied zwischen dem NP4 und/oder NP6 Prozessor liegen daher gehend, dass eine Acceleration für ein Inter-VDom-Link zwischen einer NAT und Transparent VDom nur mit einem NP6 Prozessor möglich ist jedoch nicht für NP4. Wenn ein Inter-VDom-Link mit Acceleration versehen wird (verlinkt) so erscheinen diese Links folgendermassen:

       npuX-vlink0
       npuX-vlink1
       
       NOTE "X" indiziert den Index des NP4/NP6 Prozessors! Ein Beispiel wäre:
       
            npu0-vlink0, npu0-vlink1  (Inter-VDOM Link ist verlinkt mit dem "Ersten" ("0") Prozessors des NP4/NP6 Prozessors)
            npu1-vlink0, npu1-vlink1  (Inter-VDOM Link ist verlinkt mit dem "Zweiten" ("1") Prozessors des NP4/NP6 Prozessors)

Um Inter-VDom-Link's aufzulisten um festzustellen ob diese Accelerated resp. verlinkt sind zum "NP4/NP6 Prozessor" gebe auf der Kommandozeile folgendes ein:

       # get hardware nic | grep npu

Folgendes Kommando auf der CLI zeigt auf welche Ports auf den "NP4/NP6 Prozessor" verlinkt sind:

       # diagnose npu [np4 | np6] list
       ID Model Slot Interface
       0 On-board port1 port2 port3 port4
       port5 port6 npu0-vlink0 npu0-vlink1|
       1 FMC-C20 FMC3 fmc3/1 fmc3/2 fmc3/3 fmc3/4
       fmc3/5 fmc3/6 fmc3/7 fmc3/8
       fmc3/9 fmc3/10 fmc3/11 fmc3/12
       fmc3/13 fmc3/14 fmc3/15 fmc3/16
       fmc3/17 fmc3/18 fmc3/19 fmc3/20
       npu1-vlink0 npu1-vlink1
       
       NOTE Weitere Informationen siehe Knowledge-Base Artikel:
       
       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33888&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=48363952&stateId=0 0 48365253

In Zusammenhang mit VDom's auf einer FortiGate über welche VDom läuft der Mgmt. Traffic?

Wenn ein Fortigate im Zusammenhang mit VDom benutzt wird und mehrer VDom Instanzen vorhanden sind ist zu berücksichtigen, dass der Mgmt. Traffic per Standard über die "root" VDom läuft. Als Mgmt. Traffic wird der "local-in/out" Traffic definiert. Dieser "local-in/out" Traffic wird definiert als zB:

       DNS
       NTP
       External Logging
       FortiGuard
       Alert Emails
       SNMP traps
       Quarantine

Wir die "root" VDom als Transparent VDom konfiguriert übernimmt der Mgmt. Traffic das Interface das in der Transparent VDom als "manageip" definiert wird. Weitere Informationen dazu siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_konfiguriere.2Ferstelle_ich_eine_VDom_Instanz_im_Transparent_Mode.3F

Wenn auf einer Fortigate der Mgmt. Traffic "nicht" über die "root" VDom abgewickelt werden möchte kann die Aufgabe einer anderen VDom zugewiesen werden. Weitere Informationen dazu siehe nachfolgenden Artikel:

       Fortigate:FAQ#Kann_ich_die_.22management-vdom.22_Funktion_die_der_.22root.22_VDOM_zugewiesen_ist_einer_anderen_VDOM_zuweisen.3F

Kann ein physisches Interface auf einer FortiGate mehreren VDom's zugewiesen werden?

Als Grundsatz gilt: Ein physisches Interface kann nur "einer" VDom zugewiesen werden. Wenn ein physisches Interface mehreren VDom's zugewiesen werden soll, muessen auf dem physischen Interface VLAN's konfiguriert werden und diese VLAN's den einzelnen VDom's zugewiesen werden. Nur so kann ein physisches Interface für mehrere VDom's benutzt werden. Nachfolgend ein Beispiel einer Konfiguration:

      # config system interface
      # edit [Name des VLAN's]
      new entry added
      # set interface port1
      # set vlanid [VLAN ID]
      # set ip [VLAN IP Adresse sowie Subnet Maske zB 10.100.1.10/24]
      # set vdom [Name der entsprechenden VDOM]
      # end

Kann ich für eine FortiGate eine VDOM erstellen die ausschliesslich für Management genutzt wird?

Um dies zu realisieren stehen vers. Möglichkeiten zu Verfügung. Grunsätzlich geht man jedoch von zwei Möglichkeiten aus dh. wird ein Cluster betrieben kann die HA Funktion "Reserve Management Port for Cluster Member" benützt weden oder anderseits kann in einem Cluster eine VDOM erstellt werden die ausschlisslich für Management Zwecke zur Verfügung steht. Beide Möglichkeiten stehen im Zusammenhang mit dem Clustering. Weitere detaillierte Informationen zu diesen zwei Möglichkeiten siehe nachfolgender Artikel:

       Fortigate:FAQ#Kann_ich_f.C3.BCr_einen_Cluster_eine_VDOM_erstellen_die_ausschliesslich_f.C3.BCr_das_Management_benutzt_wird.3F

Ich möchte BGP Traffic über eine Transparent VDOM/Firewall erlauben jedoch wird dieser geblockt?

Wenn man eine Transparent Firewall (normalerweise eine VDOM) konfiguriert und auf jeder Seite der Interface's ein Router angeschlossen ist, die miteinander komunizieren und BGP Informationen austauschen (TCP 179), wird dieser Traffic durch die Transparent Firewall -sofern eine entsprechende Firewall Policy Rule existiert- abgearbeiet. Damit der Traffic sauber durchgeht muss folgendes kontrolliert werden:

       • Auf der Transparent Firewall muss eine Multicast Policy konfiguriert werden (Per Standard existiert diese dh. "all allow")
       
       • Es muss eine Firewall Policy konfiguriert werden die den BGP Traffic erlaubt zwischen den Interfaces (TCP-179)
       
       • Auf den Interface's muss folgendes konfiguriert werden (sofern mit mehreren Segmenten gearbeitet wird zB VLAN's):
       
         # config system interface
         # edit [Gebe das ensprechende Interface an zB wan1]
         # set l2forward enable
         # set forward-domain 10
         # end
         
         # config system interface
         # edit [Gebe das ensprechende Interface an zB internal1]
         # set l2forward enable
         # set forward-domain 10
         # end
         
         NOTE Durch die Konfiguration der Interface's in der gleichen "forward-domain" werden diese
              direkt verbunden! Dies bedeutet "Layer 2 broadcasts" werden beschränkt auf die gleiche Gruppe.
              Per Standard sind alle Interfaces in der Gruppe "0". Das Kommando "forward-domain" steht nur
              im Transparent Mode zur Verfügung. Wenn VLAN's im Transparent Mode benutzt werden muss/sollte
              jedes VLAN in eine seperate "forward-domain" da ansonsten ARP Packete dupliziert werden da
              für jedes VLAN im Transparent Mode die gleiche MAC Adresse benutzt wird. Somit kann/kommt es
              zu Kollisionnen! Desweiteren sollte die MTU kontrolliert werden dh. wenn die BGP Session kurz
              hochgefahren wird um nachträglich gleich wieder in den "closed" Status zu gehen muss die MTU
              Size auf den Router kontrolliert sowie event. die der Fortinet angepasst werden. Die MTU Size
              auf einer Fortigate anzupassen wird wiefolgt durcheführt:
              
              Fortigate:FAQ#Wie_passe_ich_auf_einem_Interface_die_MTU_Size_an.3F

Client Reputation/Threat Weight/Device Identification

Wie funktioniert "Client Reputation/Threat Weight" und/oder "Device Identification" sowie auf welchen Geräten steht diese Funktion zur Verfügung?

Eine "Client Reputation" (Ab FortiOS 5.0) sowie "Threat Weight" (Ab FortiOS 5.2) bedeutet, dass Clients überprüft werden anhand eines Scores wie deren Reputation (Ruf) aussieht. Dies wird anhand des Logs durchgeführt. Was wiederum bedeutet, dass die Reputation anhand der Logs und deren Events eine Auswertung durchführt um die Reputation jedes einzelnen Clients zu ermitteln. Die Ermittlung der Clients umfasst die folgenden Informationen:

       • MAC Adresse
       • IP  Adresse
       • Operating System
       • Hostname
       • Username
       • Zeit die vergangen ist seit ein Device das letzte Mal erkannt wurde und über welches Interface diese Erkennung stattgefunden hat.

Diese Client Informationen sind über folgende Position auf einer FortiGate ersichtlich:

       NOTE Unter FortiOS 5.2 wurde der Name betreffend "Client Reputation" gewechselt auf
            "Threat Weigt". Ebenfalls wurde die Menüpositon verschoben und ist neu ersichtlich
            unter:
            
            Log & Report > Log Config > Threat Weight
       User & Device > Device > Device Definition

Die Auswertung um die Reputation der Clients zu ermitteln umfasst folgende Funktionen:

       • Firewall Policy Block
       • Verbindungend Fehlgeschlagen
       • Intrusion Protection
       • Malware Detection
       • Web Aktivitäten
       • Application Protection
       • Geo Lokation
       
       NOTE Um die Reputation der Clients zu ermitteln werden die UTM Funktionen auf der FortiGate benützt! Dies bedeutet folgende UTM 
            Funktionen müssen folgendermassen konfiguriert sein:
            
            • UTM Security Profiles > Antivirus 
            Konfiguriere für DLP die Funktionen die notwendig sind!
            
            • UTM Security Profiles > Web Filter
            In den WebFilter Profilen müssen die entsprechenden Kategorien die nicht zugelassen sind auf "Block" sein sowie ALLE Kategorien 
            die erlaubt sind auf "Monitor". Kombinationen mit "Authenticate" sind natürlich ebenfalls möglich. Da die "Client Reputation" 
            über das Log ermittelt wird muss einfach gewährleistet sein, dass die Clients über den WebFilter anhand zB "Monitor" übewacht werden!
            
            • UTM Security Profiles > Application Control > Application Sensor
            Für die Funktion Application Controll gilt dasselbe wie für den WebFilter dh. auch hier analysiert die Client Reputation die 
            Logs was wiederum bedeutet, dass ALLE Applicationen entweder auf "Block" oder auf "Monitor" gesetzt werden ob "known" oder 
            "unknown". Nur so könnend die Clients überwacht werden (Log) und später durch die "Client Reputation" das Log ausgewertet werden.
             
            • UTM Security Profiles > Intrusion Protection > IPS Sensor
            Im IPS Sensor muss für die "Clients" ein Client Sensor konfiguriert werden dh. ein Sensor der ALLE Signaturen betreffend Client 
            "Monitored" und ins Log schreibt. Nur so ist gewährleistet das die "Client Reputation" die nötigen Auswertungen über das IPS Log 
            durchführen kann. Wenn Server etc. ebenfalsl in die "Client Reputation" einbezogen werden sollen muss ein entsprechender IPS 
            Sensor mit den nötigen Signaturen konfiguriert und über "Monitor" in das Log geschrieben werden.
            
            • UTM Security Profiles > Email Filter 
            Konfiguriere Email Filtering die Funktionen die notwendig sind!
            
            • UTM Security Profiles > Data Leak Prevention > Sensor 
            Konfiguriere für DLP die Funktionen die notwendig sind!

Die Funktion "Client Reputation" für FortiOS 5.0 sowie "Threat Weight" für FortiOS 5.2 stehen auf folgenden Devices zur Verfügung (Siehe Software Matrix "UTM"):

       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

Um die "Client Reputation" zu aktivieren auf einem Device muss innerhalb der "Interface" Konfiguration unter "System > Network > Interface" die Position "Detect and Identify Devices" aktiviert werden. Dies bedeutet das die "Client Reputation/Threat Weight" im direkten Zusammenhang steht mit der Device Identifikation! Die "Client Reputation/Threat Weight" kann unter folgender Position aktiviert sowie konfiguriert werden:

       FortiOS 5.0
       User & Device > Client Reputation > Reputation Definition
       FortiOS 5.2
       Log & Report > Log Config > Threat Weight
       NOTE Sobald die "Client Reputation" aktiviert wird erscheint eine Hinweis/Warnmeldung, dass alle Policys und alle Funktionen
            auf Log gesetzt werden. Dieser Umstand gilt für FortiOS 5.0 jedoch nicht für FortiOS 5.2. Da die "Client Reputation/Threat Weight" 
            über Log Analyse durchgeführt wird und als Grundlage muss geloggt werden. Dies bedeutet die vers. zB Policys können nicht mehr 
            für das Logging deaktiviert werden da die entsprechende Position auf dem WebGui "invers" erscheint da geforced durch die 
            (gilt nur für FortiOS 5.0) "Client Reputation". Aus diesem Grund hier nochmals der Hinweis, dass "Client Reputation" sehr 
            Performance intensiv ist und nur auf den entsprechenden Devices und auch dort mit Vorsicht zu implementieren ist.

Was ist der Unterschied zwischen "Client Reputation" und "Threat Weight"?

Unter FortiOS 5.0 wurde "Client Reputation" Funktion neu implementiert. Details betreffend "Client Reputation" siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_funktioniert_.22Client_Reputation.2FThreat_Weight.22_und.2Foder_.22Device_Identification.22_sowie_auf_welchen_Ger.C3.A4ten_steht_diese_Funktion_zur_Verf.C3.BCgung.3F

Unter FortiOS 5.2 wurde "Client Reputation" umgetauft auf "Threat Weight" und die Menüposition verschoben:

       Log & Report > Log Config > Threat Weight

Der "offensichtliche" Hauptunterschied liegt darin, dass unter FortiOS 5.0 dh. für "Client Reputation" die Log's "geforced" aktiviert werden. Dies bedeutet sobald ich unter FortiOS 5.0 "Client Reputation" benutzen möchte, werden ALLE Logs aktiviert und diese können nicht mehr deaktiviert/manipuliert werden. Unter FortiOS 5.2 wird dies nicht durchgeführt und die Logs bleiben konfigurier/manipulierbar. Nicht nur die Menüposition wurde für FortiOS 5.2 verschoben sondern ebenfalls das Kommando in der CLI:

       # config log threat-weight
       # set blocked-connection [low | medium | high | critical | disable]
       # set failed-connection [low | medium | high | critical | disable]
       # set malware-detected [low | medium | high | critical | disable]
       # set max-rep-db-size [Maximum MBytes]
       # set url-block-detected [low | medium | high | critical | disable]
       # set window-size [Maximal Tage des Zeitfenster für die Daten 1 - 30]
       # config application
       # edit [Gebe einen entsprechenden Category ID an; benutze ? für weitere Infos]
       # set category [category_int>
       # set level [low | medium | high | critical | disable]
       # end
       # config geolocation
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set country [Gebe den entsprechenden Country Code an]
       # set level [low | medium | high | critical | disable]
       # end
       # config ips
       # set info-severity [low | medium | high | critical | disable]
       # set low-severity [low | medium | high | critical | disable]
       # set medium-severity [low | medium | high | critical | disable]
       # set high-severity [low | medium | high | critical | disable]
       # set critical-severity [low | medium | high | critical | disable]
       # end
       # config level
       # set low [1 bis 10]
       # set medium [5 bis 30]
       # set high [10 bis 50]
       # set critical [30 bis 100]
       # end
       # config web
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set group [Gebe eine Entsprechende Group Category ID an; benutze ? für weitere Infos]
       # set level [disable | low | medium | high | critical]
       # end
       # end

UTM Proxy Options / Protocol Options

Wie konfiguriere ich die UTM Proxy/Protocol Options manuell über Kommandozeile?

Bei kleineren Devices steht die Menüposition für die UTM Proxy/Protocol Options nicht mehr über Gui zur Verfügung. Diese müssen für diese Devices zB 40C über Kommandozeile konfiguriert werden. Dies wird folgendermassen durchgeführt:

       NOTE Unter FortiOS 5.2 existiert die Positione "extended-utm-log" nicht mehr!
            Um "streaming" von UTM auszuschliessen existiert unter FortiOS 5.2 folgende
            option die jedoch für FortiOS 5.0 nicht exisitert:
            
            streaming-content-bypass
            
            Wenn "streaming" von UTM ausgeschlossen werden soll muss unter FortiOS 5.0
            explizit eine "Content-Header" Konfiguration durchgeführt werden. Weitere
            Informationen findet man unter folgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_innerhalb_eines_WebFilters_einen_bestimmten_.22MIME.22_Type_.28zB_Audio.29_blockieren_.28Content-Header.29.3F
            
            Desweiteren wurde unter FortiOS 5.2 das Protokoll "im" komplett entfernt und
            steht für eine Konfiguration nicht mehr zur Verfügung.
       # config firewall profile-protocol-options
       # edit [Wähle das entsprechende Profile]
       # get
       name                : default 
       comment             : all default services
       replacemsg-group    : 
       oversize-log            : disable
       switching-protocols-log : disable
       extended-utm-log        : disable 
       http:
           ports                    : 80    
           status                   : enable     
           inspect-all              : disable     
           options                  : no-content-summary     
           comfort-interval         : 10    
           comfort-amount           : 1    
           post-lang                :     
           fortinet-bar             : disable  
           streaming-content-bypass : enable   
           switching-protocols      : bypass     
           oversize-limit           : 10    
           retry-count              : 0    
       ftp:
           ports               : 21    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary splice     
           comfort-interval    : 10    
           comfort-amount      : 1    
           oversize-limit      : 10    
       imap:
           ports               : 143    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
       mapi:
           ports               : 135    
           status              : enable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
       pop3:
           ports               : 110    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
       smtp:
           ports               : 25    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary splice     
           oversize-limit      : 10    
           server-busy         : disable     
       nntp:
           ports               : 119    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary splice     
           oversize-limit      : 10    
       im:
           status              : enable     
           options             :     
           oversize-limit      : 10    
       dns:
           ports               : 53    
           status              : enable     
       mail-signature:
           status              : disable     
           signature           :  

Nun kann das entsprechende UTM Proxy/Protocol Options in die entsprechende Firewall Policy Rule implementiert werden:

       # config firewall policy
       # edit [Wähle die entsprechende Policy ID]
       # set utm-status enable
       # set profile-protocol-options [Wähle das entsprechende Proxy/Protocol Option Profil]
       # end

Wie konfiguriere ich die UTM SSL Proxy/Protocol Options manuell über Kommandozeile?

Bei kleineren Devices steht die Menüposition für die UTM Proxy/Protocol Options nicht mehr über Gui zur Verfügung. Diese müssen für diese Devices zB 40C über Kommandozeile konfiguriert werden. Die SSL Proxy/Protocol Options werden benutzt in folgenden Situationen:

       • SSL Deep Inspection (Client Zertifikat muss auf dem Client/Workstation installiert werden)
       • URL Scan only (Es wird kein Client Zertifikat auf dem Client/Workstation benötigt jedoch "WebFilter Only")
       
       NOTE Betreffend "URL Scan only" Konfiguration siehe nachfolgende Artikel:
            
            Fortigate:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
            Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Die Konfiguration der SSL Proxy/Protocol Options auf der Kommandozeile erfolgt folgendermassen:

       NOTE Unter FortiOS 5.2 wurde die "Deep Inspection Engine" für eine bessere Performance
            modifiziert. Ebenfalls wurde der Name in der Kommandozeile umbenannt und ist neu zu finden
            unter:
            
            # config firewall ssl-ssh-profile
            
            Folgende Option wurde unter FortiOS 5.2 entfernt:
            
            extended-utm-log
            
            Folgende Option ist unter FortiOS 5.2 dazugekommen:
            
            # config ssl-exempt
            
            # config ssl
            # set inspect-all [disable | certification-inspection | deep-inspection]
            # end
            
            # config [https | ftps | impas | pop3s | smtps]
            # set status [disable | certification-inspection | deep-inspection]
            # end
            
            Somit kann durch "certification-inspection" über alles (inspect-all) oder 
            in den einzelnen Protokollen (zB https) gesettzt werden!
       # config firewall deep-inspection-options
       # edit [Wähle das entsprechende Profile]
       # get
       name                : default
       comment             : all default services
       ssl:
           inspect-all         : disable
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       https:
           ports               : 443
           status              : enable
           client-cert-request : bypass
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       ftps:
           ports               : 990
           status              : enable
           client-cert-request : bypass
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       imaps:
           ports               : 993
           status              : enable
           client-cert-request : inspect
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       pop3s:
           ports               : 995
           status              : enable
           client-cert-request : inspect
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       smtps:
           ports               : 465
           status              : enable
           client-cert-request : inspect
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       caname              : Fortinet_CA_SSLProxy
       certname            : Fortinet_SSLProxy
       ssl-server:
       extended-utm-log    : disable
       NOTE Zusätzlich steht in den SSL/SSH Protocol Options wie schon erwähnt "config ssl-exempt" zur Verfügung.
            Dies bedeutet: Soll innerhalb der "Deep Inspection" Konfiguration eine Seite von der "Deep Inspection"
            Funktion ausgenommen werden kann diese Seite unter "config ssl-exempt" konfiguriert werden:
            
            # config firewall ssl-ssh-profile
            # edit [Wähle das entsprechende Profile]
            # config ssl-exempt
            # edit [Wähle einen Integer zB 1]
            # set type [fortiguard-category | address | address6]
            # set fortiguard-category [sofern set type fortiguard-category]
            # set address [sofern set type address]
            # set address6 [sofern set type address6]
            # end
            
            Fortinet hat ein Dokument Released der diese neue Funktion umschreibt und erklärt wieso diese implementiert
            wurde:
            
            Datei:Preventing-security-certificate-warnings-52.pdf

Nun kann das entsprechende UTM SSL Proxy/Protocol Options in die entsprechende Firewall Policy Rule implementiert werden:

       # config firewall policy
       # edit [Wähle die entsprechende Policy ID]
       # set utm-status enable
       # set deep-inspection-options [Wähle das entsprechende SSL Proxy/Protocol Option Profil]
       # end

Wann muss ich die UTM SSL Proxy/Protocol Options in der Firewall Rule aktivierten und definieren?

Wenn ein UTM SSL Proxy/Protocol Option Profile konfiguriert wird so fragt sich wann diese in einer Firewall Rule zusammen mit einem UTM Feature konfiguriert werden muss. Diese Frage ist FortiOS 5.0 resp. 5.2 abhängig da unter FortiOS 5.2 die "Deep Inspection Options" modifiziert wurden. Nachfolgend eine Uebersicht:

       FortiOS 5.0
       Die SSL Proxy/Protocol Options werden dann definiert wenn:
       
       • SSL Deep Inspection (Client Zertifikat muss auf dem Client/Workstation installiert werden)
       • URL Scan only (Es wird kein Client Zertifikat auf dem Client/Workstation benötigt jedoch "WebFilter Only")
       
       NOTE Betreffend "URL Scan only" Konfiguration siehe nachfolgenden Artikle:
            
            Fortigate:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
       FortiOS 5.2
       Die SSL Proxy/Protocol Options werden "automatisch" definiert wenn:
       
       • Ein Security Profile selektiert wird!
       
       Die SSL Proxy/Protocol Options müssen "manuell" definiert werden wenn:
       
       • "SSL Deep Inspection" benötigt wird

Grundsätzlich unterscheidet sich FortiOS 5.0 und/oder FortiOS 5.2 in den SSL Proxy/Protocol Options folgendermassen:

       FortiOS 5.0
       • SSL Proxy/Protocol Options Profile, All UTM Features (https-url-scan disabled) 
       • HTPPS URL Scan Only, WebFilter Only (https-url-scan enabled)
       FortiOS 5.2
       • Certificate Inspection ("certificate-inspection" Option in der CLI), Untersucht nur den SSL Handshake
       • Deep Inspection ("deep-inspection" Option in der CLI), Aktiviert Full Deep Inspection für SSL Traffic
       
       NOTE Diese Konfiguration kann für jedes Protokoll zB https, ftps seperate durchgeführt werden zB:
            
            # config firewall ssl-ssh-profile
            # edit [Gebe einen Namen ein für das Profile]
            # config https
            # set status [disable | certificate-inspection | deep-inspection]
            # end
            # config ftps
            # set status [disable | certificate-inspection | deep-inspection]
            # end
            
            Für FortiOS 5.2 existiert eine "vordefiniertes" Profile mit dem Namen "certificate-inspection".
            Dieses Profile ist basierend auf der Funktion "certificate-inspection" und wird als Default
            Profile benutzt im Hintergrund wenn ein UTM Feature benutzt wird. Dies ist auch der Grund
            wieso ein SSL Proxy/Protocol Option Profile nur dann in einer Firewall Rule zusammen mit einem
            UTM Feature definiert werden muss, wenn "Deep Inspection" benützt wird. Die neue Funktion
            "certificate-inspection" ersetzt die unter FortiOS 5.0 Option "https-url-scan"!

Wie aktiviere ich für die SSL Proxy Options auf einer FortiGate das Extended-UTM-Log?

Für die sogenannten "deep-inspection-options" kann auf einer FortiGate das "Extended-UTM-Log" aktiviert werden. Die Konfiguration wird folgendermassen durchgeführt:

       NOTE Unter FortiOS 5.2 gibt es diese Option "extended-utm-log" nicht mehr. Ebenfalls
            wurden die "deep-inspection-options" modifiziert. Weitere Informationen betreffend
            diesen Neuerungen FortiOS 5.2 findet man im nachfolgenden Artikeln:
            
            Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
            Fortigate:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config firewall deep-inspection-options
       # edit [Name des Profile] 
       # set extended-utm-log [enable | disable] 
       # set ssl-invalid-server-cert-log [enable | disable] 
       # set allow-invalid-server-cert [enable | disable] 
       # end
       
       NOTE Die Option "allow-invalid-server-cert" steht im Zusammenhang mit "extended-utm-log". Dies bedeutet
            wird "allow-invalid-server-cert" aktiviert muss "extended-utm-log" auf enabled stehen! Dies gilt nur für
            FortiOS 5.0 und nicht für FortiOS 5.2 da diese Option unter FortiOS 5.2 nicht existiert.

DLP

Wie schalte ich für einen DLP Sensor auf einer FortiGate das Extended-UTM-Log ein?

Im normal Fall werden "DLP Events" im regulären Log geloggt (Traffic Log). Nun möchte man die Event's seperiert in einem Log loggen, kann dies durch das sogenannte Extended-UTM-Log (Nur für FortiOS 5.0) erreicht werden. Um dieses Extended-UTM-Log zu aktivieren führe folgendes durch:

       NOTE Das Kommando "extended-utm-log" steht für FortiOS 5.2 nicht mehr zur Verfügung.
            Weitere Informationen siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
            Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
       # config dlp sensor
       # edit [Gebe das entsprechende Profile an]
       # set extended-utm-log [enable | disable]
       # set dlp-log [enable | disable]
       # set nac-quar-log [enable | disable]
       # end

Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehen, kann das "UTM Monitoring" wiederum aktiviert werden. Weitere Informationen siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Kann die DLP Funktion im Zusammenhang mit verschlüsselten Verbindungen benutzt werden?

Ja dies ist möglich, sprich in Verbindung mit der DLP Funktion kann "Deep Inspection" benutzt werden mit folgenden Services:

       HTTPS
       FTPS
       
       SMTPS
       POP3S
       IMAPS
       
       NOTE Wenn man einen neuens Filter erstellt in der DLP (Data Leak Prevention) Funktion so kann man
            die entsprechenden Protokolle anwählen jedoch stehen nur die unverschlüsselten Protokolle zur
            Wahl wie zB SMTP. Wenn zB SMTP angewählt ist und es wird "Deep Inspection" im Zusammenhang mit
            DLP benutzt (anhand des SSL Proxy/Protocol Options) so wird automatisch SMTPS benutzt. Das 
            Beispiel für SMTP/SMTPS gilt auch für die anderen Protokoll wie oben aufgeführt. Wie/Wann eine
            "Deep Inspection" konfiguriert wird siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Wie kann ich verhindern das eine bestimmte Grösse von Files übermittelt werden?

Wenn man verhindern will, dass eine bestimmte Grösse von Files runtergeladen/raufgeladen wird zB will man alles verhindern das grösser ist als 20 MB (20480) so muss diese Konfiguration über einen "DLP Sensor" (Data Leak Prevention) durchgeführt werden. Innerhalb eines existierenden "DLP Sensor" wählt man folgendes:

       FortiOS 5.0 / 5.2
       
       Fortinet-1118.jpg
       
       Fortinet-1119.jpg
       
       NOTE Die Positon "File Size >=" ist zu verstehen als "Grösser und/oder Gleich"!

Gebe im Filter die entsprechenden Protokolle an wie "HTTP-POST" (Upload) und/oder "HTTP-GET" (Download) etc. Wenn die Protokolle im Zusammenhang mit "Deep Inspection" benutzt werden sollten folgende Artikel berücksichtigt werden:

       Fortigate:FAQ#Kann_die_DLP_Funktion_im_Zusammenhang_mit_verschl.C3.BCsselten_Verbindungen_benutzt_werden.3F
       Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Wie erstelle ich ein autom. Fingerprinting und benutze dieses in einem DLP Profile?

Ein DLP Fingerprinting wird benutzt um Dokumente durch einen Hash zu schützen. Dies bedeutet: Anhand eines autom. Suchvorganges -und/oder manuellen Uploads- wird einem bestimmten Dokument zB einem Word Dokument ein Hash zugewiesen. Anhand dieses Hash's und des zuständingen DLP Profiles in einer Policy, wird das Dokument wieder erkannt und verhindert, dass dieses übermittelt wird. Um ein Hash automatisch auf einem Fileshare zu erzeugen konfiguriere folgendes:

       NOTE Unter FortiOS 5.2 steht das Fingerprinting für Devices 100D und kleiner nur noch den
            Devices 60C/D sowie 90D zur Verfügung. Auskunft darüber gibt die Software Matrix:
            
            Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       UTM Security Profiles > Data Leak Prevention > Document Fingerprinting
       
       - Danach wähle unter Document Sources > Create New
       
       Datei:Fortinet-637.jpg
       
       NOTE In diesem Beispiel wird ein Windows Share konfiguriert. In diesem Share soll nach einem Mountpoint 
            "export" gesucht werden und darin nach Files "*.txt". Werden diese gefunden sollen diese mit einem
            Sensitive Level "Private" (Hash) versehen werden. Der Scan kann auch per Schedule regelmässig aus-
            geführt werden. Unter Advanced sind einige zusätzliche Einstellungen möglich die je nach Bedarf
            aktiviert oder deaktivert werden können! Unter FortiOS 5.2 gibt es die "seperate" Menüpositon zur 
            Konfiguration des Fingerprintings nicht mehr und muss über CLI durchgeführt werden:
            
            # config dlp doc-source
            # set name [Gebe einen entsprechenden Namen ein für die Doc Source]
            # set server-type [samba]
            # set server [IPv4 Adresse des Servers]
            # set period [none | daily | weekly | monthly]
            # set vdom [mgmt | current]
            # set scan-subdirectories [enable | disable]
            # set remove-deleted [enable | disable]
            # set keep-modified [enable | disable]
            # set username [Gebe den entsprechenden Usernamen an]
            # set password [Gebe das entsprechende Passwort an]
            # set file-path [Setze den entsprechenden File Path]
            # set file-pattern [Setze einen entsprechenden File Pattern]
            # set sensitivity [Critical | Private | Warning]
            # end
            
            Damit den Hash zu speichern muss eine Datenbank zur Verfügung gestellt werden
            sowie ein Storage Device:
            
            # config dlp settings
            # set storage-device [Der zur Verfügung stehende Device zB Internal]
            # set size [Grösse in MB der Datenbank; Standard 16]
            # set db-mode [remove-modified-then-oldest | remove-oldest | stop-adding]
            # set cache-mem-percent [Zur Verfügung stehenden Cache von Memory 1-15; Standard 2]
            # set chunk-size [Setze den Chunksize; Standard 2800]
            # end

Nachdem das Fingerprinting durchgeführt wurde kann dieses in einem DLP Profil hinzugefügt werden! Erstelle ein neues DLP Profile und füge den Fingerprint hinzu:

       UTM Security Profiles > Data Leak Prevention > Sensor > Create New
       
       NOTE Unter FortiOS 5.2 gibt es die seperate Menüposition "Sensor" nicht mehr sondern
            die Menüposition "Data Leak Prevention" stellt die "Sensor" Position direkt dar!
       
       Datei:Fortinet-638.jpg
       - Vergebe einen Namen für das DLP Profile und wähle danach "Create New":
       
       Datei:Fortinet-639.jpg
       Datei:Fortinet-640.jpg
       
       NOTE Achte auf die verschiedenen Einstellungen dh. wie zB "Action" Block sowie die zu 
            ueberwachenden Services (Wähle nur diese die Zweckmässig und Angebracht sind)! 

Das DLP Profile ist nun konfiguriert und kann in einer entsprechenden Policy benutzt werden:

       Policy > Policy > Create New
       
       Datei:Fortinet-641.jpg

Wenn nun versucht wird ein dementsprechendes File des Shares in der konfigurierten Policy zu übermitteln, wird dieses je nach konfigurierter "Action" behandelt dh. in unserem Fall "Block". Diese "Action" ist ersichtlich -sofern das Log im DLP Profile akiviert ist- unter:

       Log & Report > UTM Security Log > Data Leak Prevention
       
       NOTE Diese Art des DLP ist sehr Performance Intensiv und sollte nur dann genutzt werden wenn der 
            Device auch dementsprechende über genügend Performance verfügt! Betreffend Log Konfiguration
            im Zusammenhang mit DLP siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_schalte_ich_f.C3.BCr_einen_DLP_Sensor_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F

Wie kann ich verhindern das bestimmte Files wie zB .exe runtergeladen werden?

Wenn man verhindern möchte, dass bestimmte Files zB über einen "Explicit Proxy" runtergeladen werden können so muss diese Konfiguration über DLP anhand eines entsprechenden Filters/Profiles durchgeführt werden. Die gleiche Konfiguration kann benutzt werden um das runterladen der bestimmten Files über einen "Transparent Proxy" zu verhindern. Als Erstes muss ein entsprechender "File Filter" erstellt werden:

       NOTE Diese Konfiguration ist unter FortiOS 5.2 nicht mehr nötig resp. die Menüposition
            "File Filter" steht nicht mehr zur Verfügung. Die entsprechende Konfiguration unter
            FortiOS 5.2 kann direkt innerhalb des Sensor's/Profile durchgeführt werden! Weitere 
            Details entnehme aus dem nachfolgenden Abschnitt für FortiOS 5.2!
       FortiOS 5.0
       
       UTM Profiles > Data Leak Prevention > File Filter
       
       Datei:Fortinet-264.jpg
       
       Datei:Fortinet-265.jpg
       
       Datei:Fortinet-266.jpg
       
       NOTE Es kann zwischen "File Name Pattern" und "File Type" gewählt werden! Der Unterschied liegt darin, dass der "File Name Pattern" 
            ausschliesslich "Namens" basierend ist dh. es wird im Header des Files nicht nachgeschaut ob es sich wirklich zB um ein .exe 
            handelt sondern wie erwähnt nur die angegebene Extension "Namens" basierend angeschaut. Somit wenn ein "File Name Pattern" *.exe 
            konfiguriert ist und man würde einem User so ein File auf dem Internet für das Runterladen bereitstellen, müsste man dieses damit es 
            runtergeladen werden kann einfach vorgehend umbenennen um das Runterladen zu ermöglichen. Möchte man dies verhindert so muss ein 
            "File Type" konfiguriert werden dh. in diesem Filter wird verifiziert -im Application Header des Files- um was es sich hier 
            für ein File handelt. Somit bringt das umbenennen des Files vor dem Runterladen nichts, denn auch durch das Umbenennen bleibt 
            der "Application Header" des Files bestehen und wird somit auch als bestimmter "File Type" erkannt.
       
       Datei:Fortinet-267.jpg
       
       Datei:Fortinet-268.jpg
       
       Datei:Fortinet-269.jpg
       
       Nun erstellen wir einen DLP Sensor und fügen unser File Pattern Filter diesem DLP Sensor hinzu:
       
       UTM Profiles > Data Leak Prevention > Sensor
       
       Datei:Fortinet-270.jpg
       
       Datei:Fortinet-271.jpg
       
       Datei:Fortinet-272.jpg
       
       Datei:Fortinet-273.jpg
       
       NOTE Unter FortiOS 5.0 wurde die Menüführung verändert dh. wenn man auf "Create New" geht steht einem ein Filter Menü zur Verfügung indem vers. 
            Varianten konfiguriert werden können. Ausgehend von dieser hier gezeigten Konfiguration kann der "File Filter" der vorgehend Konfiguriert
            wurde über die Menüpositionen "Files > File Type included in" ausgewählt werden. Welche Protokolle für den Filter kontrolliert werden sollen
            kann über die Position "Examine the following Services" gewählt werden. Unter FortiOS 5.0 wird die Definition der Services zB HTTP über
            folgende Konfiguration gesteuert "UTM Proxy Options"!
       
       Datei:Fortinet-274.jpg
       FortiOS 5.2
       
       Security Profiles > Data Leak Prevention > Create New
       
       Fortinet-1115.jpg
       
       Fortinet-1116.jpg
       
       Unter FortiOS 5.2 muss nicht zuerst ein "File Filter" erstellt werden sondern die Konfiguration des "File Types"
       sowie des "File Name Patterns" kann Analog FortiOS 5.0 direkt im Profile eingegeben/konfiguriert werden:
       
       Fortinet-1117.jpg
       
       Datei:Fortinet-264.jpg

Nun muss nur noch den erstellten DLP Sensor zur entsprechenden Policy für den "Explicit Proxy" (Wenn kein "Explicit Proxy" benutzt wird einfach die entsprechende Policy wählen) hinzugefügt werden:

       Policy > Policy > Policy
       
       Datei:Fortinet-275.jpg

Wie kann ich den Prozess des Fingerprintings neu starten?

Folgender Befehl kann benützt werden auf der CLI um DLP "fingerprinting" Deamon neu zu starten:

       # diagnose test app dlpfingerprint 99

IPS (Intrusion Prevention System)

Was ist der Unterschied zwischen "regular" und "extended" IPS Database?

Ab FortiOS 5 stehen zwei Datenbanken zur Verfügung dh. eine Reguläre und eine Erweiterte! Die Erweiterte Datenbank steht folgenden Geräten zur Verfügung:

       FWF-81CM, 110C und höher
       
       NOTE Ab FortiOS 5 110C oder höher. Der entsprechende Konfigurationspunkt um die "extended" Database
            zu aktivieren befindet sich innerhalb "System > Config > FortiGuard"!

Die erweiterte Datenbank ist folgende Modelle nicht konfigurierbar dh. nur die Reguläre steht zur Verfügung:

       20C bis 60C und alle andere 8x Modelle
       
       NOTE Neu steht die "extended" Database ab FortiOS 5.0.6 für die "D" Desktop Modelle zur Verfügung!             

Der Unterschied dieser zwei Datenbanken für IPS Signaturen liegt in der Grösse dh. regulär ca. 5700 IPS Signaturen und die erweiterte ca. 7700 IPS Signaturen. Folgendes Kommando kann benutzt werden um die Reguläre oder die Erweiterte Datenbank zu defnieren/aktivieren:

       # config ips global
       # set database [extended / regular]
       # end
       
       NOTE Wenn die Database auf "extended" konfiguriert wird sollte event. die Acceleration
            überprüft werden dh. dazu siehe folgender Artikel:
            
            Fortigate:FAQ#Kann_ich_IPS_Funktion_auf_einer_FortiGate_.C3.BCber_Hardware_beschleunigen.3F

Wann sollte das "Packet Logging" für IPS eingeschaltet werden?

Das "Packet Logging" ist nicht zu verwechseln mit dem "Logging" an und für sich dh. "Packet Logging" ähnelt einem "tcpdump" und hat mit dem "Logging" an und für sich nichts zu tun. Diese Funktion sollte mit bedacht eingesetzt werden sowie dass "Packet Logging" sollte nur zu "Development" Zwecken eingeschaltet werden da es enorm Peformance Intensiv (CPU, RAM) ist. Diesie aus dem "Packet Logging" stammenden Informationen können später im zB "Wireshark" anylysiert werden um selber zB zu bestimmten Zwecke Signaturen zu erstellen! Die Position für das "Packet Logging" findet man in einem "IPS Filter" dh.:

       Datei:Fortinet-43.jpg

Kann eine Fortigate betreffend IPS als "Sniffer" eingesetzt werden?

Ja, dies ist möglich. Dazu benötigt man auf einem Switch einen Monitor/Mirror Port sowie die Fortigate muss auf einem bestimmten Port auf den Sniffer Modus gesetzt werden. Um den Sniffer Port zu konfigurieren/aktivieren muss folgender Befehl auf der CLI ausgeführt werden:

       # config system interface
       # edit [Name des Ports zB port3]
       # set ips-sniffer-mode enable
       # end

Wie sollte auf einer Fortigate ein "IPS Profil" aktiviert werden?

Um optimale Performance zu erreichen sollten vers. Profile für IPS (Sensor) erstellt werden dh. schränkt man die Möglichkeiten ein innnerhalb eines IPS Sensors senkt sich die Anzahl der zu überprüfenden Signaturen. Dies bedeutet erstelle Profile für spezielle Zwecke dh. Server und/oder Clients. Nachfolgend ein Beispiel wie so ein Profil erstellt wird:

       NOTE Wenn aus irgendwelchen Gründen die IPS zuviel Performance benötigt speziell im RAM Bereich kann folgender Befehl
            dazu benutzt werden um den Speicher für IPS zu begrenzen:
            
            # config ips global 
            # set algorithm low 
            # end 
            
       INFO Zusätzlich zur benützten IPS Engine kann die Buffer Size durch den Befehl "socket-size" gesetzt werden dh. 
            bei den meisten Devices ist die Standard Einstellung die korrekte und die Anzuwendende. Dies bedeutet diese
            Einstellung ist Device Art Abhängig!
            
            Für die IPS Engine sind grundsätzlich folgende Einstellungen möglich:
            
            engine-pick           Die IPS Engine selber entscheidet welche Methode die Beste ist.
            
            high                  Schnellste Methode jedoch benötigt mehr Memory. Sollte nur eingesetzt
                                  werden für FortiGate's mit mind. 1 GB Memory.
            
            low                   Langsamere Methode jedoch Memory Resource schonender. Dieser Mode sollte
                                  auf FortiGates eingesetzt werden die über 512 MB Memory verfügen oder weniger.
            
            super                 Dieser Mode sollte für FortiGate's gewählt werden die mehr als 4 GB Memory verfügen
       Datei:Fortinet-44.jpg
       Datei:Fortinet-45.jpg
       
       NOTE Ab FortiOS 5.0.4 stehet ein zusätzliche Menüpunkt innerhalb der IPS zur Verfügung dh. wenn man "Filter Based"
            aktiviert kann zwischen "Basic" und "Advanced" umgestellt werden. Es ist zu empfehlen wenn IPS benutzt wird
            "Filter Based > Advanced" zu wählen da einem diese Variante mehr Optionen bietet den Sensor für den bestimmten
            Zweck einzuschränken. Zusätzlich können unter den -durch "Advanced"- eingeblendeten Menüpunkte "Appliaction"
            und "Protocol" unter "Show more..." zusätzliche Positione eingeblendet werden. Dies gibt einem die Möglichkeite
            den Sensor so zu optimieren:
            
            Fortinet-809.jpg

Was bedeutet IPS "fail-open" und wie verhält es sich?

Nun IPS "fail-open" bedeutet, dass wenn ein IPS Profil/Sensor auf einer Policy aktiv ist und der IPS Service nicht mehr korrekt arbeitet das der Traffic/Verkehr komplett für diese Policy geblockt wird. Per Standard ist "fail-open" auf enabled gesetzt sprich wenn IPS nicht mehr korrekt funktioniert wird der Traffic dennoch durchgelassen. Wenn dies geschieht hat dies keine Auswirkungen auf die restlichen Profile wie Antivirus etc. Wenn der IPS Senso in einem High Security Umgebung eingesetzt wird so kann "fail-open" auf disabled gesetzt werden dh. wenn der IPS Service nicht mehr korrekt arbeitet wird sämtlicher Verkehr/Traffic für die betreffende Policy geblockt. Um "fail-open" auf disable zu setzen gebe auf der Console folgendes ein;

       # config ips global
       # set fail-open disable
       # end

Kann ich wenn der Traffic verschlüsselt ist (SSL) IPS aktivieren?

Die FortiOS V4.x war nicht fähig den verschlüsselten Traffic (SSL) aufzubrechen um eine IPS Ueberprüfung für den Traffic durchzuführen! Mit FortiOS 5.x ist dies nun möglich jedoch ist folgendes zu berücksichtigen:

       Verschlüsselter (SSL) Traffic kann für IPS sowie für Application Controll überprüft werden für folgende Protokolle sofern "Flow-Based" benutzt wird:
       
       HTTPS, FTPS, IMAPS, POP3S sowie SMTPS
       Dies bedeutet "Flow-Based" steht zur Verfügung für:
       
       flow-AV, flow-Web Filering, flow-Antispam sowie flow-DLP

Diese Möglichkeit/Option steht unter folgender Positione zur Verfügung:

       Policy > UTM Proxy Options

Wie erfasse ich für RDP eine IPS Signature um den Zugriff zu schützen?

Nun wenn betreffend RDP auf einen Server zugegriffen werden möchte ist es ratsam diesen Zugriff zu schützen. Predistiniert dazu wäre eine RDP Signatur im IPS Bereich. Jedoch diese existiert so nicht von Hause aus. Soit muss eine manuell erfasste IPS Signatur für RDP konfiguriert werden. Dies kann über folgende Position geschehen:

       UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
       NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
            sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
            dieser Konfiguration siehe folgender Artikel: 
            
            Fortigate:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:

       NOTE Die folgenden Signaturen sind für Windows (RDP.1), Linux (RDP.2) sowie Mobile (RDP.3).  
       Name:         RDP.1
       
       Signature:    F-SBID( --name "RDP.1"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|E0|"; --distance 5,packet; --within 1,packet; --pattern "mstshash="; --within 50; --pcre "/mstshash=\s*/sm"; --distance -12; --within 50; --rate 3,15; --track src_ip; ) 
       Name:         RDP.2
       
       Signature:    F-SBID( --name "RDP.2"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|03 00|"; --within 2,packet; --pattern "|e0 00 00 00 00|"; --distance 3; --within 20; --rate 3,15; --track src_ip; ) 
       Name:         RDP.3
       
       Signature:    F-SBID( --name "RDP.3"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|84 11 3d 4f 2e 62 28 62 51 5d 6e ee f4 49 c2 7e fe 84 11 e6 61 e0 19 20 c9 e5 d3 39 3d f5 7e 24 46 49 84 11 15 be fa 6b 7d 35 09 44 8a c9 32 e7 1b 6e 65|"; --within 51,packet; --data_size 51; --rate 3,15; --track src_ip; )

Wie kann ich eine IP ausschliessen innerhalb eines IPS Sensors resp. Profil (Exempt IP)?

Diese Funktion steht erst ab FortiOS 5.0.3 zur Verfügung. Natürlich waren solche Ausnahmen ebenfalls früher möglich über die Policy, jedoch nur indem man eine zusätzliche Rule implementierte für eine bestimmte Source und Destination. Auf dieser zusätzlichen Rule wurde dann der Sensor resp. das Profil nicht aktiviert. Neu ab FortiOS 5.0.3 kann diese Ausnahme einer Source und Destination direkt im Sensor konfiguriert werden. Vorraussetzung dafür ist, dass man spezifizierte Signaturen verwendet (Specify Signatures) und nicht Filter Basierend (Filter Based).

Nehmen wir an wir hätten einen Microsoft Exchange Server im DMZ. Dieser wird von aussen angegangen mit einem Inbound NAT. Bedeutet eine Rule wird implementiert WAN > DMZ. Auf dieser Rule implementiert man einen IPS Sensor der den Microsoft Exchange Server schützen soll vor Angriffen. Nehmen wir weiter an, dass immer der gleiche MX Relay Server Mail's übermittelt zu diesem Microsoft Exchange Server im DMZ. Dieer MX Relay Server steht unter unserer Kontrolle (trusted). In diesem Scenario macht es keinen Sinn den IPS Sensor auf den MX Relay Server anzuwenden. Genau hier können wir eine "Ausnahme" Implementieren. Da der IPS Sensor einer der Performance intensivsten Funktionen auf einer FortiGate ist kann dies die Performane erhöhen und Resourcen sparen da die Verbindung des MX Relay bei Mailübermittlungen nicht mehr durch den IPS Sensor überprüft wird. Die neue Funktion findet man unter dem IPS Sensor sobald "Specify Signature" angewählt sowie eine entsprechende Signature ausgewählt wird:

       Fortinet-786.jpg

Nun kann über "Create New" anhand der Source IP (In unserem Beispiel der MX Relay Server) und der Destination IP (In unserem Beispiel die internal IP des Microsoft Exchange Servers) die Ausnahme konfiguriert werden.

Wie kann ich eine "Brute Force" Attacke betreffend POP3 und/oder SMTP über eine IPS "Custome Signature" verhindern?

Eine "Brute Force" Attacke stellt einen Angriff dar in der "potentielle Lösungen" eine nach der Anderen durchprobiert wird (http://de.wikipedia.org/wiki/Brute-Force-Methode). Für Pop3 und/oder SMTP im Zusammenhang mit "unverschlüsselten" Protokollen dh. nicht POP3S und/oder SMTPS kann ein "potentieller Angreifer" zB eine "dictionary attacke" durchführen dh. er probiert ein Passwort nach dem Anderen durch. Um das zu verhindern kann zB eine "Custome Signature" erstellt werden die das verhindert. Die bessere Variante ist jedoch klar auf ein verschlüsseltes Protokoll zu wechseln. Wenn dennoch so eine manuelle "Custome Signatur" erstellt werden soll führe folgendes durch:

       UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
       NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
            sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
            dieser Konfiguration siehe folgender Artikel: 
            
            Fortigate:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:

       Name:         POP3.Brute.Force
       
       Signature:    F-SBID( --name "POP3.Brute.Force"; --protocol "tcp"; --service POP3; --flow from_server,reversed; --pattern "-ERR [AUTH] Password supplied"; --rate 10,180; --track src_ip; ) 
       Name:         SMTP.Brute.Force
       
       Signature:    F-SBID( --name "SMTP.Brute.Force"; --pattern "AUTH LOGIN"; --service SMTP; --no_case; --context header; --rate 10,180; --track src_ip;)

In diesem Zusammenhang ist es Wichtig die Position "--rate" zu verstehen da diese Zuständig ist um die Aktion durchzuführen. Dies bedeutet folgendes:

       --rate <matches_int>,<time_int>;
       
       • <matches_int>  Ist die Anzahl (integer) der Uebereinstimmungen innerhalb einer Zeitspanne [time_int] in der die Signature anschlägt (matched)
       • <time_int>     Ist die Zeitspanne (seconds) die definiert wird in der die Signature Uebereinstimmung [matches_int] auftritt.
       
       NOTE Im oberen Beispiel wurde definiert "--rate 10,180". Dies wiederum bedeutet: Wenn ein "innerhalb" (time_int) 180 Sekunden 10 Mal (mateches_int)
            versucht wird zB einzuloggen "AUTH LOGIN" so "matched" die "Custome Signature" und es wird ein Log Eintrag erstellt. Wenn die "Custome Signature"
            Im IPS Profile auf Monitor steht wird ein Log Eintrag erstellt. Ist die "Custome Signature" auf "block" kann durch eine entsprechende "quarantine"
            Konfiguration die entsprechende Source IP (--track src-ip) für eine gewisse Zeit ausgeschlossen resp. blockiert werden!

Kann ich IPS Funktion auf einer FortiGate über Hardware beschleunigen?

Ja dies ist möglich und zwar bei FortiGate's die über einen CPx oder NPx Prozessor verfügen. Wenn die Beschleunigung über diese Prozessoren aktiviert wird werden die IPS Pattern über diese CPx oder NPx Prozessoren verarbeitet und dadurch beschleunigt. Um festzustellen ob die zur Verfügung stehende FortiGate über diese Funktion resp. über diese CPx und/oder NPx Prozessoren verfügt kann mit folgenden Befehl verifiziert werden ob der "hardware-accel-mode" zur Verfügung steht:

       # config ips global
       # set hardware-accel-mode [ engine-pick | none | CP-only | NP-only | NP+CP ]
       # end
       
       NOTE Diese Option steht ab FortiOS 5.0.3 zur Verfügung! Ab FortiOS 5.0.6 wurde das
            Kommando ersetzt durch das Kommando np-accel-mode" sowie "cp-accel-mode" um mehr
            Granularität zu bieten:
            
            # config ips global
            # set np-accel-mode [none | basic]
            # set cp-accel-mode [none | basic | advanced]
            # end
            
            Dabei gilt "np" für Network Prozessor und "cp" Content Prozessor! Per Standard
            steht die Option auf "cn-accel-mode advanced"

Die einzelne Optionen haben folgende Bedeutung:

       • engine-pick         --> Die IPS Engine wählt den besten Mode
       • none                --> Hardware Beschleunigung ist deaktiviert
       • CP-Only             --> Hardware Beschleunigung aktiviert über CPx (Content) Prozessoren
       • NP-only             --> Hardware Beschleunigung aktiviert über NPx (Network) Prozessoren
       • NP+CP               --> Hardware Beschleunigung aktiviert über CPx (Content) und NPx (Network) Prozessoren
       
       NOTE Bei einer FortiGate 60C steht zB diese Option auf "engine-pick"!

Kann ich über eine IPS Signature eine bestimmte WebSite blockieren?

Grundsätzlich ist das möglich anhand einer Custom Signature! Es muss jedoch klar festgestellt werden, dass dies nur unter "nicht normalen" Umständen durchzuführen ist da dies klar nicht die Aufgabe einer IPS Funktion ist. Um eine WebSite zu blockieren steht auf einer FortiGate die WebFilter Funktion zur Verfügung. Weitere Informationen zur WebFilter Konfiguration siehe nachfolgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F

Wenn es dennoch keinen anderen Weg gibt -wieso auch immer- kann eine "Custome Signature" manuell erstellt werden und zwar folgenermassen:

       UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
       
       NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
            sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
            dieser Konfiguration siehe folgender Artikel: 
            
            Fortigate:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:

       Name:         RDP.1
       
       Signature:    F-SBID( --name "WEB SITE BLOCK"; --protocol tcp; --service HTTP; --flow from_client; --pattern "mydomain.ch"; --no_case; --context host; )

Kann ich über eine IPS Signature für DNS Request ein Monitoring einschalten für Domain Namen?

Wenn man intern ein "Public DNS Server" betreibt und man bei Anfragen von extern herausfinden will -ohne den DNS Server zu konsultieren- welche Domains in den DNS Requests abgefragt werden, kann eine IPS Signature erstellt werden. Diese IPS Signture Monitored die DNS Request betreffend "Domain Name" und zeigt in den Logs den DNS Request auf:

      UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
      
      Name:         Domain-Monitor
      
      Signature:    F-SBID( --name Domain-Monitor; --protocol udp; --service dns; --log DNS_QUERY;)
      
      NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
           sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
           dieser Konfiguration siehe folgender Artikel: 
           
           Fortigate:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

DDos

Wieso ist die DDos Sensor Menüposition im WebGui nicht mehr ersichtlich nach einem Upgrade?

Wenn man ein Upgrade durchführt 4.3 Patch 7 fällt einem auf, dass die Menüposition im Web Gui betreffend DDoS nicht mehr vorhanden ist. Dieser Menüpunkt steht für kleinere Geräten (FGT-20/40/50/60/80) nicht mehr über Web Gui zur Verfügung. Die Funktion selber steht jedoch nach wievor zur Verfügung und zwar auf der CLI:

       NOTE Die Menüposition steht für kleinere Devices ebenfalls für FortiOS 5.0 / 5.2 
            nicht mehr über Web Gui zur Verfügung!
       FortiOS 4 MR3
       Datei:Fortinet-327.jpg
       Datei:Fortinet-328.jpg
       FortiOS 5.0 / 5.2
       
       NOTE Unter FortiOS 5.0 / 5.2 wurde diese Funktion in der CLI verschoben in "config firewall DoS-policy":
       
       Datei:Fortinet-723.jpg
       Datei:Fortinet-724.jpg
       

Um ein DoS Sensor in der CLI unter FortiOS 5.0 / 5.2 zu konfigurieren siehe nachfolgendes Beispiel:

       # config firewall DoS-policy
       # edit [Definiere einen DoS Policy ID zB "1"]
       # set interface [Setze ein entsprechendes Interface zB "wan1"]
       # set srcaddr [Setze eine entsprechende Source IP Adresse zB "all"]
       # set dstaddr [Setze eine entsprechende Destination IP Adresse zB "all"]
       # set service [Setze einen entsprechenden Port zB "ALL"]
       # config anomaly
       # edit "tcp_syn_flood"
       # set status enable
       # set action block
       # set threshold 2000
       # next
       # edit "tcp_port_scan"
       # set status enable
       # set threshold 1000
       # next
       # edit "tcp_src_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "tcp_dst_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "udp_flood"
       # set status enable
       # set action block
       # set threshold 2000
       # next
       # edit "udp_scan"
       # set status enable
       # set threshold 2000
       # next
       # edit "udp_src_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "udp_dst_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "icmp_flood"
       # set status enable
       # set action block
       # set threshold 250
       # next
       # edit "icmp_sweep"
       # set status enable
       # set threshold 100
       # next
       # edit "icmp_src_session"
       # set status enable
       # set threshold 300
       # next
       # edit "icmp_dst_session"
       # set status enable
       # set threshold 1000
       # next
       # edit "ip_src_session"
       # set threshold 5000
       # next
       # edit "ip_dst_session"
       # set threshold 5000
       # next
       # edit "sctp_flood"
       # set threshold 2000
       # next
       # edit "sctp_scan"
       # set threshold 1000
       # next
       # edit "sctp_src_session"
       # set threshold 5000
       # next
       # edit "sctp_dst_session"
       # set threshold 5000
       # next
       # end
       # next
       # end

Wie wird auf einer Fortigate ein "DoS" Sensor aktiviert/definiert?

In unserem Beispiel erstellen wir einen "DoS Sensor" der und vor "basic flood" schützt! Führe folgendes durch:

        NOTE Wenn die Menüposition betreffend DoS Sensor nicht ersichtlich ist siehe folgender Artikel:
             
             Fortigate:FAQ#Wieso_ist_die_DDos_Sensor_Men.C3.BCposition_im_WebGui_nicht_mehr_ersichtlich_nach_einem_Upgrade.3F
        UTM Profiles > Intrusion Protection > DoS Sensor

Editiere den per Standard existierende Sensor "blook_flood" Eintrag:

       Datei:Fortinet-155.jpg

In diesem vordefinierten Sensor sind drei spezifische Anomalien aktiviert dh. "tcp_syn_flood, udp_flood und icmp_flood". Um nun den "icmp_flood" anzupassen setze diesen auf "20" sowie aktiviere das Logging:

       Datei:Fortinet-156.jpg

Damit der "DoS Sensor" auch in Benützung ist, muss dieser in einer entsprechenden "DoS Policy" aktiviert werden. Führe folgendes durch:

       Policy > Policy > DoS Policy
       Datei:Fortinet-157.jpg
       Datei:Fortinet-158.jpg

In unserem Beispiel schützen wir das "internal" Inteface vor diesen Angriffen. Natürlich können Source und Destination je nach Zweck eingeschränkt werden. Um das Ganze zu testen kann innerhalb der Defintion der "Source" auf einem Windows basierenden Client anhand "fping" (http://fping.sourceforge.net) folgendes durchgeführt werden:

       fping [Destination IP] -c -t0 -w0

Das Kommando bewirkt das "fping" ICMP Packete abschickt ohne auf Antwort zu warten. Einige dieser Packete werden durch unseren definierten "icmp_flood" Sensor geblockt da die abgesetzen ICMP Packet die Definition (20 per second) übersteigt. Unter folgender Position können die Log's eingesehen sowie der Vorgang verifiziert werden:

       FortiOS 4 MR3
       
       Log&Report > Log & Archive Access > UTM Log
       FortiOS 5.0 / 5.2
       
       Log & Report > Traffic Log

Weitere Informationen betreffend Log Konfiguration unter FortiOS 5.0 / 5.2 findet man unter folgenden Artikel:

       Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wie kann ich für eine "DDoS Policy" verschiedenen Informationen anzeigen lassen?

Wenn eine "DDoS Policy" konfiguriert wird, kann nachträglich mit folgenden Kommando vers. Informationen dieser DDoS Policy augezeigt werden:

       # diagnose ips anomaly [clear | config | filter | list | status]
       
       NOTE Die aufgeführten Optionen haben folgende Bedeutung:
       
       clear            Clear anomaly meters
       config           Liste die DOS-sensoren auf
       filter           Liste den "anomaly" Filter auf
       list             Liste die "anomaly" meters auf
       status           Liste den "anomaly" status auf

Nachfolgende einige Beispiele:

       # diagnose ips anomaly config
       DoS sensors in kernel vd 0:
       DoS id 1 proxy 0
         0 tcp_syn_flood status 1 log 1 nac 0 action 7 threshold 2000
         1 tcp_port_scan status 1 log 1 nac 0 action 0 threshold 1000
         2 tcp_src_session status 1 log 1 nac 0 action 0 threshold 5000
         3 tcp_dst_session status 1 log 1 nac 0 action 0 threshold 5000
         4 udp_flood status 1 log 1 nac 0 action 7 threshold 2000
         5 udp_scan status 1 log 1 nac 0 action 0 threshold 2000
         6 udp_src_session status 1 log 1 nac 0 action 0 threshold 5000
         7 udp_dst_session status 1 log 1 nac 0 action 0 threshold 5000
         8 icmp_flood status 1 log 1 nac 0 action 7 threshold 250
         9 icmp_sweep status 1 log 1 nac 0 action 0 threshold 100
         10 icmp_src_session status 1 log 1 nac 0 action 0 threshold 300
         11 icmp_dst_session status 1 log 1 nac 0 action 0 threshold 1000
         12 ip_src_session status 0 log 0 nac 0 action 0 threshold 5000
         13 ip_dst_session status 0 log 0 nac 0 action 0 threshold 5000
         14 sctp_flood status 0 log 0 nac 0 action 0 threshold 2000
         15 sctp_scan status 0 log 0 nac 0 action 0 threshold 1000
         16 sctp_src_session status 0 log 0 nac 0 action 0 threshold 5000
         17 sctp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
       total # DoS sensors: 1.
       # diagnose ips anomaly status
       meter budget: 100000
       meter used: 8/8
       meter depth: 2
       # diagnose ips anomaly list
       list nids meter:
       id=udp_dst_session    ip=198.41.0.4 dos_id=1 exp=5998 pps=0 freq=0
       id=udp_flood          ip=198.41.0.4 dos_id=1 exp=998 pps=13 freq=13
       id=udp_src_session    ip=193.193.135.65 dos_id=1 exp=5998 pps=0 freq=0
       id=udp_scan           ip=193.193.135.65 dos_id=1 exp=998 pps=14 freq=14
       id=udp_flood          ip=193.193.135.66 dos_id=1 exp=998 pps=0 freq=3
       id=udp_dst_session    ip=192.228.79.201 dos_id=1 exp=5898 pps=0 freq=0
       id=udp_flood          ip=192.228.79.201 dos_id=1 exp=898 pps=0 freq=1
       id=udp_flood          ip=255.255.255.255 dos_id=1 exp=35 pps=0 freq=0
       total # of nids meters: 8.
       # diagnose ips anomaly filter
       anomaly filter:
       id any
       ip 0.0.0.0 mask 0.0.0.0
       nps 0 - 0
       freq 0 - 0

Antivirus

Wie setze/blocke ich die File Limite (maximum file size) für den Antivirus?

Wenn man eine Limite setzen möchte (empfehlenswert) betreffend "maximum file size" im Antivirus Bereich so muss dies über die Console definiert werden. Möchte man zB eine Limite setzen von 15 MB (unkomprimiert) so würde der Befehl folgendermassen lauten:

       ACHTUNG Die Grösse resp. die Limite die angegeben wird für die Files im Zusammenhang mit der Antivirus Funktion steht 
               direkt im Zusammenhang mit der Performance! Dies bedeutet wenn diese zu Gross gesetzt wird zB über 100 MB kann
               dies enorme Performance Einbussen nachsich ziehen! Wieso die Grösse im 10 - 15 MB Bereich liegen sollte zeigt
               nachfolgendes Dokument auf. Dieses gibt Auskunft in welchen File Grössen sich die meisten Anitmalware befinden:
               
               Datei:MalwareFileSize.pdf               
       # config antivirus service [ftp | ftps | http | https | im | imap | imaps | nntp | pop3 | pop3s | smtp | smtps]
       # set uncompsizelimit [Maximum File unkomprimiert für Antivirus Scanning; Standard 10]
       # set uncompnestlimit [Setzt die max. Tiefe des Achrives 1 - 100; Standard 12]
       # set block-page-status-code [Setzt den Return Code für HTTP; Standard 200]
       # scan-bzip2 [enable | disable]
       # end
       
       NOTE Die Option "uncompnestlimit" gilt für folgende Format:
            
            arj, bzip2, cab, gzip, lha, lzh, msc, rar, tar, zip (bzip2 Support ist per Standard deaktiviert)
            
            Wenn man den Befehl "uncompsizelimit" in Zusammenhang mit dem Wert "0" absetzt gilt dies 
            als "unlimited maxmimum file size". Dies ist nicht empfehlenswert dh. man sollte immer
            ein Maximum definieren! Das Maximum kann von Modell zu Modell varieren dh. um die gesetzte Grösse
            zu ermitteln benütze folgendne Befehl (Output Beispiel 60C):
            
            # config antivirus service http
            # set uncompsizelimit ?
            <value>   max unompressed size to scan (1-44MB or use 0 for unlimited)
            # end

Wird Antivirus im Zusammenhang mit verschlüsselten Protokollen benutzt wie https, imaps etc. muss "Deep Inspection" benutzt werden. Was dabei zu beachten ist siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Nun die Limite betreffend "Antivirus" ist zwar gesetzt jedoch ist folgendes zu berücksichtigen betreffend File Grösse:

       Die Angaben von "uncompsizelimit" gelten als max. Grösse für das Antivirus Scanning. Wird diese Grösse Ueberschritten
       erscheint im entsprechenden Log der Hinweis "oversize". Das File wird jedoch nicht "geblockt/gesperrt" sondern wird
       ohne Antivirus Scanning durchgelassen. Möchte man dies verhindern kann ein "oversize block" konfigurieren und zwar
       folgendermassen
       
       Policy > Policy > Protocol/Proxy Options
       
       Wähle die Position Oversized File/Email und den entsprechenden Wert:
       
       Datei:Fortinet-245.jpg
       
       NOTE Wenn die Konfiguration über die Kommandozeile durchgeführt werden soll muss folgendes durchgeführt werden:
            
            # config firewall profile-protocol-options
            # edit [Name des entsprechenden Profiles]
            # config [http | ftp | impa | mapi | pop3 | smtp | nntp]
            # set options [oversize | clientcomfort | servercomfort | no-content-summary | chunkedbypass]
            # set oversize-limit [Max. Grösse für Antivirus Scanning]
            # end
            # end
            
            Wenn die "oversize-limit" gesetzt wird so stellt dies die maximale Grösse dar für Antivirus Scanning. Wird
            unter "set opitons" NICHT "oversize" gesetzt wird das File NICHT geblockt! Somit möchte man zB für "http" 
            eine max. Antivirus Scanning Grösse von 10MB konfigurieren und alles was Grösser ist als 10MB blocken, 
            würde die vollständige Konfiguration folgendermassen aussehen: 
            
            # config antivirus service http
            # set uncompsizelimit 10
            # set uncompnestlimit 12
            # set block-page-status-code 200
            # scan-bzip2 disable
            # end
            
            # config firewall profile-protocol-options
            # edit [Name des entsprechenden Profiles]
            # config http
            # set options oversize no-content-summary
            # set oversize-limit 10
            # end
            # end

Diese Konfiguration ersetzt grunsätzlich nicht "das Maximum eines Files das über die FortiGate runtergeladen werden kann" sondern es steuern einzig und alleine ob ein File geblockt wird, wenn es die "Maximale Grösse von Antivirus Scan übersteigt". Möchte man eine Konfiguratin durchführen für "max. File Grösse betreffend Download/Upload" siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_verhindern_das_eine_bestimmte_Gr.C3.B6sse_von_Files_.C3.BCbermittelt_werden.3F

Kann ich die Antivirus Engine/Database manuell auf den neusten Stand bringen?

Was manuell auf den neusten Stand gebracht werden kann ist das reguläre "Antivirus Definiton File" (ETDB) der FortiGate (enthält ebenfalls Update der Engine). Im Zusammenhang mit dem FortiClient (Premium) kann dies anhand des VCM Files durchgeführt werden. Dies bedeutet ein VCM File ist das "Antivirus Definition File" das benötigt wird damit dem FortiClient (Premium/Endpoint Security) seine Antivirus Definition Files bekommt. Diese Definiton Files können auf der Fortigate dem FortiClient (Premium/Endpoint Security) zur Verfügung gestellt werden. Das Definition File findet man unter folgender URL:

       https://support.fortinet.com/Download/AvNidsDownload.aspx
       
       NOTE Damit man die Files runterladen kann muss man sich mit seinem Support Account zuerst anmelden.
            Danach muss der Verifizierungscode auf der Seite mit dem "confirm" Button bestätigt werden.
            Danach können die vers. Files wie zB VCM runtergeladen werden. Für einen Fortinet Device benötigt
            man das "ETDB" File.

Sobald das Definition File runtergeladen wurde kann dies über folgende Menüposition eingespielt werden:

       System > Config > FortiGuard > AV Definition / VCM Plugins / IPS Definition > ....via Mnaual Update ) [Update]

Was ist der Hauptunterschied in der Antivirus Funktion zwischen FortiOS 5.0 und 5.2?

Unter FortiOS 5.0 wurde die Antivirus Funktion per Standard im "proxy-based" Modus verwendet (Default Profile). Der Grund war die Performance sowie die Antivirus Datenbank sprich unter FortiOS 5.0 konnte im "flow-based" Mode keine "extended" Antivirus Datenbank aus Performance Gründen genutzt werden. Unter FortiOS 5.2 wurde die Performance betreffend "flow-based" Antivirus massiv verbessert sowie viele der Features die unter "proxy-based" zur Verfügung stehen, können nun auch im "flow-based" benutzt werden. Wenn man von "flow-based" spricht war es in der Vergangenheit so, dass Archive nicht entpackt werden konnten und somit gescannt werden konnte da unter FortiOS 5.0 "flow-based" das "ende" des Files nicht erkannt hat. Dies wurde unter FortiOS 5.2 geändert und "flow-based" erkennt nun das "ende" eines Files und kann somit dieses -zB als Archive- entpacken und Scannen. Zusätzlich zu den genannten Neuerungen kann nun unter FortiOS 5.2 und "flow-based" ebenfalls mit der "extended" Antivirus Datenbank benutzt werden, was unter FortiOS 5.0 nicht möglich war (Performance Gründe). Aus diesen verschiedenen Verbesserungen sind die per Standard existierenden Profile's unter FortiOS 5.2 "flow-based" und nicht mehr "proxy-based".

Wie kann ich die "Extreme Virus Database" für die Antivirus Funktion aktivieren?

Nun die "Standard Datenbank" (normal) einer FortiGate für die Antivirus Funktion enthält Virendefinitions die "comment" sind dh. alte "legacy" Virendefinitionen sind nicht mehr enthalten. Diese "legacy" Virendefinitionen stellen im normal Fall keine Gefahr mehr da denn diese nützen Lücken und Security Vulnaribility aus für "alte" Betriebssystem und zB Browser. Dies bedeutet: Um die Grösse der Virendefinitionen-Datenbank klein zu halten werden sollte "legacy" Definitionen von der Datenbank entfernt da die Gefahr einer Infizierung minimal ist. Um in einem Umfeld mit hohen Ansprüchen dennoch die vollständige Datenbank (inkl. "legacy") zu benützen aktiviere diese vollständige Datenbank auf der CLI folgendermassen:

       # config antivirus settings
       # set default-db extrem
       # end
       
       NOTE Diese Funktion sollten nur dann genützt werden wenn die entsprechenden Resourcen auf
            einer FortiGate auch vorhanden sind! Es stehen grundsätzlich -ausser auf kleineren Geräten-
            folgende Optionen zur Verfügung:
            
            [extended | extreme | normal]
            
            Wenn die Antivirus Funktion unter FortiOS 5.0 im "flow-based" Mode betrieben wird, ist es 
            aus "Performance" Gründen nicht möglich die "extreme" Datenbank zu aktivieren. Da die Antivrus
            Funktion unter FortiOS 5.2 massive verbessert wurd ist dies nun möglich. Weitere Informationen
            finden man im folgenden Artikel:
            
            Fortigate:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F

Nachdem die Konfiguration durchgeführt wurde sollte ein Update ausgeführt werden damit die vollständige Datenbank geladen wird. Dafür führe folgendes durch:

        # execute update-now

Nun sollte nach einiger Zeit die Datenbank vollständig auf den neusten Stand sein. Kontrolliere nach einiger Zeit das Datum des letzten Updates um dies zu verifizieren.

Wie kann ich die "grayware" Erkennung für Antivirus aktivieren?

"Grayware" ist die Funktion innerhalb der Antivirus Funktion die "adware" sowie zB "dialer" erkennen kann. Um die "Grayware" Erkennung einzuschalten führe auf der Console folgendes durch:

       # config antivirus settings
       # set grayware [enable oder disable]
       # end

Wie kann ich die Antivirus Database in den gewünschten Modus (extended, extreme, normal) setzen?

Die Antivirus Funktion mit Ihren Database Definition kann in 3 vers. Modi gesetzt werden. Diese wären:

      extended   — Beinhaltet "Wild Virus" sowie eine Umfanggreiche Definition der "Zoo Virus". 
                   "Zoo-Viruses" sind in den normalen Studien nicht mehr aufgeführt da sehr selten. 
                   Dies bedeutet diese Art zu wählen macht nur Sinn in einer "Security" Umgebung!
      extreme    — Beinhaltet "Wild Virus" sowie der "Zoo Virus". "Zoo-Viruses" sind in den normalen
                   Studien nicht mehr aufgeführt da sehr selten. Dies bedeutet diese Art zu wählen 
                   macht nur Sinn in einer "High Security" Umgebung! Der Unterschied zum "extended" 
                   Modus ist, dass in der "extrem" ALLE "Zoo Virus" enthalten sind.
      normal     — Beinhaltet die "Wild Virus" sowie die "üblichen Virus". Für eine "normale" Absicherung
                   resp. Abdeckung gegen Virus sollte diese Art benutzt werden.

Um den entsprechenden Modus zu setzen benütze:

       # config antivirus settings
       # set default-db [extended | extreme | normal]
       # end
       
       NOTE Unter FortiOS 5.2 wurden betreffend der Antivirus Funktion massive Verbesserungen
            durchgeführt. Weitere Informationen siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F

Was ist "flow-based" Scanning und welche Vor- und Nachteile sind in diesem Zusammenhang zu berücksichtigen?

"Flow-based" Scanning steht im Zusammenhang mit Antivirus, Web Filtering und DLP! Das "proxy" Scanning ist zwar schneller jedoch das "flow-based" Scanning ist Resourcenschonender. Beim "proxy-based" Scanning wird das zu überprüfende File auf dem Proxy Server zwischengespeichert (caching) um das File, wenn es als Ganzes gecached ist, zu überprüfen. Um diese Art dh. "proxy-based" durchzuführen -und weil die Files zuerst als Ganzes gecached werden müssen- wird mehr Memory alloziert dh. Resourcenintensiver. Beim "flow-based" Scanning wird das File als "flow" geprüft. Wie gesagt es wird nicht nicht das ganze File im Gesamten überprüft sonder ein Teil dh. eben nur ein "flow". Dadurch entstehen gewissen Nachteile wie zB ein ZIP File muss zuerst als Gesamtes zur Verfügung stehen (cached) um es zu entpacken und den Inhalt zu überprüfen. Bei einer "flow-based" Konfiguration ist dies nicht möglich da das File nie als Gesamntes zur Verfügung steht. "Flow-based" ist zwar Resourcenschonender jedoch muss folgendes berücksichtigt werden: Wenn Antivirus und DLP als "flow-based" konfiguriert sind jedoch Web Filtering nicht so ist diese Konstellation der Konfiguration NICHT Resourcenschonend da durch das Web Filtering Memory alloziert wird. Dies scheint im ersten Augenblick ein Nachteil zu sein jedoch ist dies nur die halbe Wahrheit denn wenn die Fortigate durch Memory Belastung oder Session Limits ausgelastet ist kann durch die "flow-based" Konfiguration ein Vorteil entstehen um den Device zu entlasten und um zu verhindern, dass eine Fortigate in den "conserve mode" schaltet (stoppen aller "proxy-based" basierenden Scans). Dieser "conserve mode" wird solange aufrecht gehalten bis wieder die nötigen Resourcen zur Verfügung stehen. Mit einer Kombination aus "proxy-based" Basierender Konfigurtion und "flow-based" kann diesem Umstand entgegengetreten werden. Die "flow-based" Konfiguration wird folgendermassen konfiguriert:

      NOTE Unter FortiOS 5.2 wurden betreffend der Antivirus Funktion massive Verbesserungen
           durchgeführt. Dies bedeutet die oben erwähnten Umstände stimmen für FortiOS 5.2 nicht 
           mehr für die Antivirus Funktion im "flow-based" Mode. Weitere Informationen siehe 
           nachfolgenden Artikel:
           
           Fortigate:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F
         Aktivieren von "flow-based" Antivirus Scanning
         
         UTM Profiles > AntiVirus > Virus Database
         
         --> Selektiere "Flow-based Virus Database"
         Aktivieren von flow-based Web Filtering
         
         UTM Profiles > Web Filter > [Wähle das entsprechende Profil]
         
         --> Selektiere unter "Inspection Mode" Flow-based
         
         ACHTUNG "flow-based" Scanning unterstützt KEIN "Web Content Filtering". Wenn der "Inspection Mode"
                 auf "flow-based" gesetzt wird so führt die Fortigate für "Content Filtering" proxy Scanning
                 durch und für Web Filtering "flow-based"!
         Aktivieren von "flow-based" DLP
         
         UTM Profiles > Data Leak Prevention > [Wähle das entsprechende Profil]
         
         --> Selektiere unter "Inspection Mode" Flow-based Detection
         
         ACHTUNG Wird unter DLP "Flow-based Detection" aktiviert so gibt es unter diesem Modus KEINE
                 "File Grössen Limitierung"!

Kennt die Antivirus Funktion einer FortiGate die "Heuristic" und wie kann ich diese aktivieren?

Die Antivirus Funktion auf einer FortiGate kennt die sogenannt "Heuristic". Diese kann aktiviert werden ist jedoch per Standard deaktiviert. Um die "Heuristic" Funktion zu aktivieren benütze folgenden Befehl in der CLI:

       # config antivirus heuristic
       # set mode [ pass | block | disable]
       # end
       
       NOTE Die Values "pass" sowie "block" bedeuten folgendes:
            
            pass  - Enable heuristics but detected files are passed
            block - Enable heuristics and detected files are blocked

Wie schalte ich für Antivirus auf einer FortiGate das Extended-UTM-Log ein?

Im normal Fall werden Antivirus Events im regulären Log geloggt (Traffic Log). Nun möchte man die Event's seperiert in einem Log loggen, kann dies durch das sogenannte "Extended-UTM-Log" (Nur für FortiOS 5.0) erreicht werden. Um dieses "Extended-UTM-Log" zu aktivieren führe folgendes durch:

       # config antivirus profile
       # edit [Gebe das entsprechende Profile an]
       # set extended-utm-log [enable | disable]
       # set av-block-log [enable | disable]
       # set av-virus-log [enable | disable]
       # end
       
       NOTE Durch "av-virus-log" wird jeder Scan Vorgang betreffend Antivirus für ein File das gescannt werden
            soll geloggt. Durch "av-block-log" wird ein Log Eintrag erstellt wenn ein Virus Scann Positiv 
            abgeschlossen wurde! Die beiden Befehle "av-block-log" sowie "av-virus-log" stehen unter FortiOS 4.3.x
            sowie unter FortiOS 5.0 / 5.2 zur Verfügung jedoch das "Extended-UTM-Log" steht nur unter FortiOS 5 zur
            Verfügung! Weitere Informationen betreffend "Extended-UTM-Log" im Zusammenhang mit FortiOS 5.2 siehe 
            nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F

Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehn kann unter folgenden Punkt das "UTM Monitoring" aktiviert werden:

       System > Admin > Settings > UTM Monitors

Wenn dieser Punkt aktiviert wird erscheint der entsprechende Menüpunkt unter:

       UTM Security Profiles > Monitor

Diese Monitore können nur mit Daten abgefüllt werden wenn die "Extended-UTM-Log's" zur Verfügung stehen. Weitere Informationen betreffend "UTM Monitoring" siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Kann ich betreffend AV Definitions, IPS Definitions oder IPS Engine ein Downgrade durchführen?

Grundsätzlich ist dies möglich und wird folgendermassen durchgeführt (FortiOS 4 MR3 sowie 5.0 / 5.2):

       # diagnose autoupdate downgrade [enable | disable]

Ueber den Support Bereich auf der Fortinet Seite müssen nun die AV Definition, IPS Definition/Engine manuell runtergeladen werden um ein Downgrade manuell über das Web Gui der FortiGate einspielen zu können:

       https://support.fortinet.com/Download/AvNidsDownload.aspx

Um die AV Definition's, IPS Definition etc. manuell über das Web Gui der FortiGate einspielen zu können wähle folgende Position:

       System > Config > FortiGuard > AV Definitions / IP Definitons ...via Manual Update) [Update]

Nachdem manuellen installieren der nötigen Files deaktiviere das "autoupdate downgrade":

       # diagnose autoupdate downgrade disable

Mit folgenden Kommando kann die Version verifiziert werden:

       # diagnose autoupdate versions

Wenn vorübergehend verhindert werden soll das ein Autoupdate wiederum auf eine neue Version durchgeführt werden soll kann das "autoupdate" deaktiviert werden:

       # config system autoupdate schedule
       # set status disable
       # end

Wo finde ich auf der Fortinet Support Seite mehr Informationen betreffend einem bestimmten Virus?

Die Antivirus Definition DB von Fortinet resp. FortiGuard beinhaltet unzählig Virus Signaturen und deren Variationen. Um festzustellen ob eine bestimmte Virus Signature in der Antivirus Definition DB enthalten ist oder dessen Variationen gebe auf der folgende Seite den Namen des Virus ein:

       FortiGuard http://www.fortiguard.com/encyclopedia/ 

Danach kann auf den entsprechenden Eintrag ein Mausklick ausgeführt werden und die Beschreibung über den angewählten Eintrag erscheint sowie Zusatzinformationen etc.

Wie kann ich ein nicht "bekannten" Virus zu Fortinet übermitteln, damit die Information in die nächsten AV Definitions aufgenommen werden kann?

Wenn ein nicht bekannter Virus zu Fortinet übermittelt werden soll, kann folgender Link dazu benutzt werden die Information resp. das File das den "allfälligen" Virus enthält zu Fortinet zu übermitteln:

       http://www.fortiguard.com/antivirus/virus_scanner.html

Möchte man das File einfach mit der neusten zur Verfügung stehenden Antivirus Signature überprüfen gehe auf "Browse". Gebe das entsprechende File an und bestätige mit "Scan". Möchte man das File übermitteln und Feedback erhalten von Fortinet kann im unteren Bereich zusätzlich eine Nachricht definiert werden mit Name, E-Mail Adresse, Subject (zB New Virus found) sowie einer Kurznachricht (zB File delivered includes new Virus which is not recognized by Fortinet Scanner). Nach Angabe des Files (unter Browse) und Eingabe der Informationen benützt man "Scan and Send Message".

       Fortinet-838.jpg

Eine andere Möglichkeit wäre die neue Funktion der "Sandbox" unter FortiOS 5.0 / 5.2 zu benützen dh. weitere Informationen siehe Artikel:

       Fortigate:FAQ#Unter_FortiOS_5.0.4_steht_der_Men.C3.BCpunkt_.22FortiSandbox.22_zur_Verf.C3.BCgung.2C_Um_was_handelt_es_sich_dabei.3F

Was bedeutet im Antivirus Profile die Funktion "Inspect Suspicious Files with FortiGuard Sandbox"?

Unter FortiOS 5.0 im Antivirus Profile steht neu - sofern ein FortiGuard Contract vorhanden ist - die Funktion "Inpsect Suspicious Files with FortiGuard Sandbox" zu Verfügung. Diese Funktion übermittelt "suspicious files", die durch die Antivirus Funktion auf der FortiGate erkannt wurden, auf eine "Sandbox" beim Fortinet (FortiCloud). Innerhalb dieser "Sandbox" werden diese Files durch FortiGuard Analytics analysiert. Wenn durch die Analyse festgestellt wird, dass ein File in der "Sandbox" ein neuer Virus darstellt wird dessen Signature in das nächste Update der Antivirus Definitions hinzugefügt. Ob ein File in der "Sandbox" als Virus deklariert wird hängt von verschiedenen Umständen sowie von den momentanen Gefahren Situation/Faktoren ab. Die FortiCloud (FAMS) stellt eine Console bereit über die der Administrator der betreffenden FortiGate die "suspicious files" verwalten können. Dies bedeutet der Status der vers. "suspicious files" kann geändert werden in "Pending, Clean, oder Infisziert mit Malware. Ebenso enthält die FortiCloud (FAMS) Konsole information über Datum, Zeit, User und Lokation des infiszierten Files.

       Datei:Head First into the Sandbox.pdf

Kann ich über den "MIME" Header eine bestimmte Applikation vom Antivirus Scanning ausschliessen?

Ja dies ist möglich und wird nicht direkt über die Antivirus Funktion sondern über den WebFilter "Content-Header" konfiguriert (FortiOS 5.0). Weitere Informationen wie vorgegangen muss um diese Konfiguration durchzuführen siehe folgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_innerhalb_eines_WebFilters_einen_bestimmten_.22MIME.22_Type_.28zB_Audio.29_blockieren_.28Content-Header.29.3F
       NOTE Um zB Audio/Video von einem Antivirus Scanning auszunehmen muss dies unter FortiOS 5.0 über die
            "Content Header" Funktion konfiguriert werden. Unter FortiOS 5.2 kann dies über die "Protocol
            Options" durchgeführt werden da dort eine neue Funktion zur Verfügung steht:
            
            # config firewall profile-protocol-options
            # edit [Namen des entsprechenden Profiles
            # set streaming-content-bypass enable
            # end
            
            Diese Option "streaming-content-bypass" ist per Standard aktiviert!

Proxy Explicit

Wie konfiguriere ich einen Explicit Proxy Server inkl. Antivirus für HTTP/HTTPS?

Eine Fortigate kann als Proxy Server agieren und unterstützt den "Transparent Proxy" sowie einen "Explicit Proxy". Unter normalen Umständen wird ein Transparent Proxy bevorzugt da ausser auf der Firewall keine Konfiguration auf dem Client/Workstation durchgeführt werden muss. Wenn jedoch ein "Explicit Proxy" implementiert werden soll kann dies gemäss nachfolgenden Beispiel auf der FortiGate konfiguriert werden. Gehen wir davon aus das wir ein LAN Environmen haben mit dem IP Range 192.168.1.0/24 sowie das LAN Interface der Fortigate ist konfiguriert mit der IP 192.168.1.1. Um nun solch einen Proxy Server zu konfigurieren gehe folgendermassen vor:

       System > Network > Explicit Proxy
       NOTE Ab FortiOS 5.0 / 5.2 ist die Menüpositon "Explicit Proxy" grundsätzlich nicht 
            vorhanden und muss als Feature über folgende Menü Position aktiviert werden:
            
            System > Config > Features > Explicit Proxy
            
            Nachdem das Feature aktiviert wurde muss kurz ausgeloggt sowie erneut eingeloggt
            werden!

Als Erstes aktivieren wir den "Explicit Proxy" auf dem Interface auf dem er als Service zur Verfügung gestellt werden soll:

       System > Network > Interface
       
       Datei:Fortinet-232.jpg
       
       Datei:Fortinet-233.jpg
       
       NOTE Unter FortiOS 5.0 / 5.2 wurde diese Position "Explicit Proxy" in den unteren
            Teil der Seite verchoben!

Nun konfigurieren wir den "Explicit Proxy" Zugriff mit dessen Port etc. Wähle dazu:

       System > Network > Explicit Proxy
       
       Datei:Fortinet-234.jpg
       
       NOTE Wenn unter "Default Firewall Policy Action" Deny gewählt wird muss für den "Explicit Proxy" für den Proxy selber die 
            entsprechenden Rules implementiert werden. Dies bedeutet der Proxy selber hat nur mit "Accept" das Recht mit "sämtlichen" 
            Ports und Protokollen die Anfragen in das Internet abszusetzen. Mit "Deny" muss jeder Port resp. jedes Protokoll freigegeben
            werden. Die Option "FTP" unter dem Abschnitt "Explicit Web Proxy Options" stellt das FTP  Protokoll dar das "encapsulated" 
            über HTTP läuft (Browser basierend) dh. auch genannt "ftp over http". Wenn ein effektiver *FTP Proxy* konfiguriert werden 
            möchte muss dieser im  Abschnitt "Explicit FTP Proxy Options" definiert werden. Weitere Infos im nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_FTP.3F 

Nun definieren wir die entsprechende "Firewall Policy Rule" die benutzt wird um dem Proxy die nötigen Rechte verleit die nötigen Seiten aufzurufen. Führe folgendes aus:

       NOTE Die Firewall Policy Rule die benutzt wird damit der User Zugriff erlangt auf den "Explicit Proxy" muss nicht implementiert 
            werden da sobald man einen "Explicit Proxy" definiert auf  einem Interface eine sogenannte "Local In" Policy erstellt wird. 
            Diese "Local In" Policy steuert einzig und alleine den Zugriff auf den Proxy Port. Diese "Local In" Policy ist ersichtlich 
            unter:
            
            Policy & Objects > Policy > Local In > [Abschnitt Other]
            
            Diese Menüposition ist nur ersichtlich sofern das Feature unter folgender Position aktiviert
            ist:
            
            System > Config > Feature > Show More > Local In Policy
       Policy & Objects > Policy > Create New
       
       NOTE Unter FortiOS 5.0 ist eine "Explicit Proxy Policy" in der "normalen" Policy zu erstellen.  Unter FortiOS 5.2 wurde die 
            "Explicit Proxy Policy in ein seperates Menü unter "Policy & Objects" ausgelagert! Da dies eine spezielle Menüposition 
            ist, die "nur" für den "Explicit Proxy benützt wird muss/kann dort die effektive Konfiguration auf IP/User/Gruppen 
            basierend  durchgeführt werden. Aus disem Grund steht in dieser "seperaten" Policy als Action auch die Position 
            "AUTHENTICATE" zur Verfügung. Sobald diese angewählt wird öffnet sich ein zusätzlicher Abschnitt indem über "Configure
            Authentication Rules" der Zugriff resp. die Authentifizierung konfiguriert werden kann:
            
            Fortinet-1120.jpg
       Datei:Fortinet-235.jpg
       Datei:Fortinet-236.jpg

Die entsprechende "Explicit Proxy" Rule steht nun und es kann bereits das Erstemal getestet werden. Nachdem der Test Erfolgreiche war kann nun die Funktion Antivirus hinzugefügt werden! Dazu muss zuerst ein entsprechendes "Antivirus Profile" erstellt werden:

       Security Profiles > Antivirus > Profile
       
       Fortinet-839.jpg
       
       NOTE Wenn das Antivirus Profile im Zusammenhang mit unverschlüsselten Protokollen zB http benutzt werden soll muss ein 
            entsprechendes Profile für "unverschlüsselte Protokolle" konfiguriert werden. Dies  geschieht unter folgender 
            Position:
            
            Policy & Objects > Policy > Proxy Options
            
            Soll Antivirus im Zusammenhang mit "verschlüsselten Protokollen" benützt werden (Deep Inspection) 
            muss ein entsprechendes Profile für "Deep Inspection" konfiguriert werden:             
            
            Fortinet-840.jpg
            
            Unter FortiOS 5.2 wurden die "Deep Inspection" modifiziert und optimiert. Weitere Informationen
            siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
            Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Das Antivirus Profile sowie das dazugehörige "Proxy Option" (Protocol Option) und/oder "SSL Inspectio" (Deep Inspection"ist nun erstellt. Es muss nun nur noch in der entsprechenden Firewall Policy Rule für den Proxy die Funktion Antivirus hinzugefügt werden:

       Policy & Objects > Policy > [Wähle die entsprechende Policy]
       
       Datei:Fortinet-239.jpg
       Datei:Fortinet-240.jpg
       
       NOTE Wie schon erwähnt muss zum Antivirus Profile das entsprechende Profile entweder für "unverschlüsselte" Protokolle 
            zB http und/oder für "verschlüsselte" Protokolle zB  https in der entsprechenden "Firewall Policy Rule" hinzugefügt 
            werden!

Nun kann wiederum ein Test durchgeführt werden dh. gehe auf folgende Seite und lade ein "eicar" File runter (Antivirus Test File):

       http://www.eicar.com

Gehe "oben Rechts" auf Download. Danach links im Menü auf "Download". Teste die Antivirus Implementierung anhand der "eicar" HTTP und/oder HTTPS Files! Fortinet hat aus dem "Cookbook" ein "Supplementary" Released, indem erklärt wird wie ein "Explict Proxy" konfiguriert wird. Es lohnt sich auch hier einen Blick reinzuwerfen. Das Dokument ist FortiOS 5.0 basierend:

       Datei:Setting-up-an-explicit-proxy-for-users-on-a-private-network.pdf

Wie konfiguriere ich einen Explicit Proxy Server inkl. Antivirus für FTP?

Eine Fortigate kann als "FTP Proxy" Server agieren dh. in unserem Beispiel gehen wir davon aus das wir ein LAN Environmen haben mit dem IP Range 192.168.1.0/24 sowie das LAN Interface der Fortigate ist konfiguriert mit der IP 192.168.1.1. Um nun solch einen "FTP Proxy" Server zu konfigurieren gehe folgendermassen vor: Bevor man auf dem Interface den "FTP Proxy" aktivieren kann, muss die Funktion selber aktiviert werden denn der "FTP Proxy" ist per Standard deaktiviert und somit erscheint die Menüposition unter den Interfaces um den "FTP Proxy" zu aktivieren nicht. Führe folgendes durch:

       NOTE Die Menüpositon des "Explicit Proxy" wird nicht per Standard angezeigt dh. um dieses Menü 
            anzuzeigen führe folgendes aus:
            
            System > Config > Feature > Explicit Proxy
            
            Danach logge kurz aus und führe ein erneutes Login durch. Nun erscheint die entsprechende
            Menüposition.
       
       System > Network > Explicit Proxy > Explicit FTP Proxy Options
       
       Datei:Fortinet-249.jpg
       

Die "FTP Proxy" Service Funktion wurde aktivieren und kann nun auf einem entsprechenden Interface aktiviert werden:

       System > Network > Interface
       
       Datei:Fortinet-250.jpg
       
       Datei:Fortinet-251.jpg

Nun kann eine entsprechende Firewall Policy erstellt werden. Diese ist analog für einen HTTP/HTTPS Proxy. Weitee Informationen siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F

Nach der Implementierung der entsprechenden Firewall Policy Rule sollte die Implementation getestet werden. Wenn man einen "maneullen Test" durchführen möchte muss zuerst auf den "FTP Proxy" verbunden werden. Danach muss "Auf dem FTP Proxy" die effektive Verbindung abgesetzt werden anhand des Kommandos [USER@DESTINATION]. Dies bedeutet zB unter Windows folgendes:

       C:\Users\User>ftp 192.168.1.1
       Verbindung mit 192.168.1.1 wurde hergestellt.
       220 Welcome to Fortigate FTP proxy
       Benutzer (192.168.1.1:(none)): [Username FTP Server]@[FTP Server FQDN/IPv4 Adresse]
       331 Password required for [Username FTP Server]
       Kennwort:
       230 User [Username FTP Server ] logged in
       ftp> bye
       221 Goodbye.

Dies bedeutet wenn man zB eine Software benutzt wie zB "Total Commander" so muss die entsprechende "Verbindungsmethode" gewählt werden. Diese wäre wie das obige Beispiel zeigt:

       Sende Kommando USER Benutzer@Maschinenname

Weitere Informationen wie ein Antivirus Profile konfiguriert wird siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F

Wo kann ich das SSL Zertifikate für die Clients runterladen?

Wenn der "Explicit Proxy" für HTTPS (Deep Inspection) durchführen soll um HTTPS aufzubrechen, muss das folgende Zertifikat runtergeladen und auf den Clients im Browser als "vertrauenswürdiges Stammzertifikat" importiert werden. Dies muss für zB für IE und Firefox seperat geschehen. Das Zertifikat für einen Import in den Browser findet man auf einer Fortigate an folgenden Punkt:

       System > Local Certificate > Fortinet_CA_SSLProxy

Weitere Informationen über "Deep Inspection" findet man im nachfolgenden Artikel:

       Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Welche URL muss im Browser konfiguriert werden um das PAC File zu definieren?

Folgende URL muss zB im Internet Explorere (gilt auch für andere Browser) konfiguriert werden um die Location des PAC Files zu definieren:

       Inernetoptionen > Verbindungen > LAN Einstellungen
       
       Automatisches Konfigurationsscript verwenden: http:\\[Interface Name oder IP auf dem der Explicit Proxy aktiviert wurde]:[Proxy Port zB 8080]/proxy.pac

Kann ich für die Fortigate ein sogenanntes "Proxy Chaining" (forward server) konfigurieren?

Nun unter einem Proxy Chaining versteht man, dass die Anfrage an den Proxy weitergeleitet werden an einen anderen Zentralen Proxy. Im normal Fall wird auf dem Proxy der die Anfrage weiterleitet KEINE Ueberprüfungen durchgeführt da ansonsten das Reporting, Troubleshooting etc. unnötig komplex wird. Es kann jedoch durchaus auf solchen Proxy's Ueberprüfungen durchgeführt werden wenn zB zu wenig Bandbreite zum effektiven Proxy zur Verfügung steht.

Um ein Proxy Chaining zu konfigurieren muss grundsätzlich ein "Explicit Proxy" auf der Fortigate eingerichtet werden mit dessen Globalen Optionen! Zu diesem Zweck siehe:

       Fortigate:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F

Desweiteren um das "Proxy Chaining" zu konfigurieren benutze folgendes:

       # config web-proxy forward-server
       # edit [Server Name für Konfig]
       # set ip [Server IP (ipv4)]
       # set addr-type [fqdn | ip]
       # set port [Port des Proxy zu dem der Request weitergeleitet wird]
       # set healthcheck [enable | disable]
       # set comment [Möglichkeit eines Kommentars]
       # set server-down-option [block | pass]
       # set

Wie schon erwähnt, wenn für das "Proxy Chaining" weitere Global Konfiguration benötigt wird so müssen die Globalen Optionen herangezogen werden:

       # config web-proxy global
       # set tunnel-non-http [enable | disable]
       # set unknown-http-version [reject | tunnel | best-effort]
       # forward-server-affinity-timout [Timout 6 - 60; Standard 30]
       # set forward-proxy-auth [disable | enable]
       # set max-message-length [kBytes]
       # set max-request-length [kBytes]
       # set proxy-fqdn [fqdn]
       # set strict-web-check [disable | enable]
       # end

Proxy SSH

Was ist ein SSH Proxy (Deep Inspection) und wie funktioniert Dieser?

Ab FortiOS 5.0 / 5.2 und für gewisse FortiGate Modelle (Siehe SoftwareMatrix) steht neu ein SSH Proxy zur Verfügung. Dies bedeutet: Dieser SSH Proxy ist zu vergleichen mit einem "HTTPS Explicit Proxy". Wie bei einem "Explicit Proxy" wird ein sogenannte "Deep Inspection" durchgeführt. Dabei fängt der SSH Proxy auf der FortiGate den "key exchange" (Key Austausch) zwischen Client und Server ab(Man of the middle). So kann der SSH Proxy den Traffic entschlüsseln und in die Session schauen um dort die nötige Security Policy gemäss dem konfigurierten SSH Profile durchzuführen. Danach wird der Traffic wiederum gemäss "key exchange" verschlüsselt und zum Empfänger weitergeleitet. Im SSH Profile können folgende Komponenten gelogt oder geblockt werden:

       • SSH remote execution
       • Port forwarding
       • SSH remote shell
       • x11 server forwarding 

Nachfolgend eine schematische Uebersicht wie ein SSH Proxy arbeitet:

       Fortinet-787.jpg

Wie kann ich einen SSH Proxy konfigurieren (Deep Inspection)?

Um einen SSH Proxy zu konfigurieren muss zuerst ein entsprechendes "SSH Proxy Profil" erstellt werden:

       Policy > Policy > SSL/SSH Inspection 

Erstelle nun unter "Create New" ein neues Profile. Unter "SSH Inspection Options" aktiviere "SSH Deep Scan":

       NOTE Diese Menüposition steht nicht für jedes Gerät zur Verfügung. Ob ein Device 
            diese Funktion eines SSH Proxy unterstützt entnehme der Software Matrix:
            
            Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       Fortine-788.jpg

Bei der Definition des Ports können zusätzliche Ports konfiguriert werden zB für den zusätzliche Port 10022 gebe folgendes an:

       22, 10022

Danach konfiguriere die entsprechenden Position dh. Block und/oder Log. Möchte man das Ganze über Kommandozeile konfigurieren führe folgendes aus:

       NOTE Unter FortiOS 5.2 wurden die "deep-inspection-options" umbenannt auf "firewall ssl-ssh-profile".
            Ebenfalls wurden die "Deep Inspection" Funktion verbessert und verändert. Weitere Informationen
            siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config firewall deep-inspection-options
       # edit [Name des entsprechenden Profils]
       # config ssh
       # set port [Gebe den/die entsprechenden Ports an zB "22 10022"]
       # set inspect-all [enable oder disable]
       # set options [Erlaube nicht gültige Zertifikate dh. "allow-invalid-server-cert | ssl-ca-list"]
       # set oversize-limit [Gebe die entsprechende Size an]
       # set block [Setze die zur Verfügung stehenden Optionen auf Block die da sind "exe | port-forward | ssh-shell | x11-filter"]
       # end

URL WebFilter

Hat die gesetzte Zeitzone auf einer FortiGate einen Einfluss auf den URL WebFilter?

Die Setzung der Zeitzone auf einer FortiGate ist eine wichtige Funktion dh. diese bestimmt welche URL WebFilter Datenbank in FortiGuard (Cloud Service) zugewisen wird! Wenn zB die falsche Zeitzone gesetzt wird wie US (Per Standard auf einer FortiGate gesetzt) wird auch die WebFilter Datenbank für US als Referenz herangezogen. Die Zeitzone kann über das Web Mgmt. Interface unter folgender Position gesetzt werden:

       System > Dashboard > Status > System Information > System Time > [Change]

Wenn die Zeitzone über Kommandozeile verändert werden möchte siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_konfiguriere_ich_die_Zeitzone_einer_FortiGate.3F

Wie/Was wird beim FortiGate URL WebFilter genau abgearbeitet (Flow)?

Nachfolgend eine Uebersicht was beim URL WebFilter einer FortiGate genau abgearbeitet wird (Flow):

       NOTE Im nachfolgenden Artikel ist beschrieben "Was" für Informationen in der Abfrage betreffend URL Webfilter
            Datenbank an Fortinet resp. zum Service FortiGuard übermittelt wird:
            
            Fortigate:FAQ#Was_wird_bei_der_URL_WebFilter_abfrage_in_die_FortiClouad_.28FortiGuard.29_mitgegeben_und_abgefragt.3F
       Fortinet-1067.jpg

Gibt es eine Möglichkeit den Status des WebFilters abzufragen?

Ja, diese Möglichkeit existiert dh. mit folgenden Kommando kann der Status abgefragt werden sowie verifiziert werden "welche" FortiGuard Server benutzt werden:

      # get webfilter status
      
      NOTE Die WebFilter Funktion auf einer FortiGate ist die "einzige" Funktion die eine Lizensierung betreffend
           FortiGuard erzwingt dh. wenn kein FortiGuard existiert und ein WebFilter konfiguriert ist, werden alle
           Anfragen geblockt. Wenn der Status in so einer Situation mit dem Kommando "webfilter status" abgefragt
           wird erscheint:
           
           # get webfilter status
           Locale          : english
           
           The service is not enabled.

Wenn es zu Problemen kommt mit dem WebFilter dh. mit der Verbindung zu den FortiGuard Servern siehe nachfolgenden Artikel für weitere Informationen:

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

Wird der URL WebFilter lokal als Datenbank gespeichert oder Online abgefragt?

Die Datenbank die für den URL WebFilter benötigt wird ist nur Online zugänglich dh. über direkte Abfragen zum FortiGuard Service (FortiCloud). Weitere Informationen "wie" diese Abfrage genau abläuft siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie.2FWas_wird_beim_FortiGate_URL_WebFilter_genau_abgearbeitet_.28Flow.29.3F
       NOTE Die Abfragen betreffend WebFilter werden in einene "Cache" geschrieben (Standard 1800 Sekunden). Es
            besteht die Möglichkeiten die Konfiguration des WebFilter sei es ttl, port etc. zu spezifizieren.
            Nachfolgender Artikel gibt Auskunft über diese Konfiguration:
            
            Fortigate:FAQ#Kann_ich_die_Konfiguration_betreffend_WebFilter_Abfragen_f.C3.BCr_FortiGuard_.28FortiCloud.29_manipulieren_.28ttl.2C_cache.2C_port.29.3F

Dies bedeutet jede Anfrage wird Online abgefragt und somit steht die WebFilter Datenbank auf einer FortiGate nicht Offline zur Verfügung. Wenn eine FortiGate aus Sicherheitsgründen über "keinen" Internet Access verfügt, gibt es die Möglichkeit einen FortiManager einzusetzen und die FortiGate so zu konfigurieren, dass dieses Ihre Abfragen direkt zum FortiManager sendet. Der FortiManager selber stellt die WebFilter Datenbank lokal diesen Devices zur Verfügung. Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiManager:FAQ#FNDN_.28Fortinet_Distribution_Network.29

Kann ich die Konfiguration betreffend WebFilter Abfragen für FortiGuard (FortiCloud) manipulieren (ttl, cache, port)?

Die WebFilter Abfragen werden Online in den FortiGuard Service (FortiCloud) gesendet. Nachfolgender Artikel gibt Auskunft "was" genau durchgeführt wird und "welche" Informationen in den FortiGuard Service gesendet wird:

       Fortigate:FAQ#Wie.2FWas_wird_beim_FortiGate_URL_WebFilter_genau_abgearbeitet_.28Flow.29.3F
       Fortigate:FAQ#Was_wird_bei_der_URL_WebFilter_abfrage_in_die_FortiClouad_.28FortiGuard.29_mitgegeben_und_abgefragt.3F

Wenn man diese Konfiguration betreffend zB port, ttl, cache verändern möchte steht über die Kommandozeile folgende Optionen zur Verfügung:

       # config webfilter fortiguard 
       # set cache-mode [ db-ver | ttl; Standard ttl]
       # set cache-prefix-match  [enable | disable]
       # set cache-mem-percent [Prozent vom Memory 1 - 15; Standard 2]
       # set ovrd-auth-port-http [Spezifiziert den auth Port HTTP; Standard 8008]
       # set ovrd-auth-port-https [Spezifiziert den auth Port HTTPS; Standard 8010]
       # set ovrd-auth-port-warning [Spezifiziert den warning Port; Standard 8020]
       # set ovrd-auth-https  [enable | disable]
       # set warn-auth-https  [enable | disable]
       # set close-ports  [enable | disable]
       # set request-packet-size-limit [Grösse des Packetes für Fragmentation; Standard 0]
       # set ovrd-auth-hostname [Setze den Hostname der in FortiGuard übermittelt wird]
       # set ovrd-auth-cert [Definiert Zertifikat für HTTPS; Standard "Fortinet_Firmware"] 
       # end
       
       NOTE Wird der "cache-mode" auf "ttl" gesetzt gilt folgendes: Die entsprechende Abfrage betreffend einer
            Rule wird gelöscht nach Ablauf des Wertes "ttl" das unter FortiGuard gesetzt wird:
            
            # config system fortiguard 
            # set webfilter-cache-ttl 3600
            # end
            
            Wird der "cache-mode" auf "db-ver" gesetzt wird eine Datenbank angelegt in der Grösse von vom
            Wert "cache-mem-percent". Die Abfragen betreffend WebFilter verbleiben in der Datenbank bis
            die WebFilter Datenbank in FortiGuard geändert wird oder der Eintrag über FortiGuard verändert
            wird (force).

Was wird bei der URL WebFilter abfrage in die FortiClouad (FortiGuard) mitgegeben und abgefragt?

Bei der Abfrage wird "nur" der Domain Name abgefragt. Dies bedeutet über Port 53 oder Port 8888 wird in Clear-Text jedoch "verschleiert" (obfuscated) folgendes übertragen:

       • FortiGate Serien Nummer
       • FortiGate Source IP Adresse 
       • Website Komplette URL, inkl. Schema, Hostname und Pfad
       
       NOTE Ob eine FortiGate über Port "53" oder Port "8888" ein Abfrage durchführt kann folgendermassen
            konfiguriert werden:
            
            # config system fortiguard
            # set port [ 53 | 8888]
            # end
            
            Desweiteren kann die Abfrage selber des WebFilters in die FortiGuard definiert werden. Nachfolgender
            Artikel gibt Auskunft über diese Konfiguration:
            
            Fortigate:FAQ#Kann_ich_die_Konfiguration_betreffend_WebFilter_Abfragen_f.C3.BCr_FortiGuard_.28FortiCloud.29_manipulieren_.28ttl.2C_cache.2C_port.29.3F

Ausser den oben aufgelisteten Informationen werden keine zusätzlichen Informationen übertragen. Es obliegt dem Applikations Entwickler "sensitive" Informationen "nicht" in der URL mitzugeben!

Traffic betreffend URL WebFilter wird blockiert obwohl FortiGuard und/oder URL WebFilter lizensiert ist?

Wenn URL WebFilter regulär lizensiert ist über FortiGuard und/oder einzel Lizenz kann es vorkommen, dass der Traffic durch den WebFilter -obwohl erlaubt- blockiert wird! Dieser Umstand "kann" im Zusammenhang stehen mit der Erreichbarkeit des Service dh. in folgenden Situation wird der Traffic blockiert wenn nicht eine entsprechende Konfiguration durchgeführt wurde:

       -> FortiGuard Service ist ausgelaufen und der neue anhängende Service Vertrag noch nicht aktiviert!
       -> FortiGuard Service ist vorübergehend nicht erreichbar!
       -> FortiGaurd Service Verifizierung durch die FortiGate steht auf "Unreachable" oder "nicht korrektes Datum"
       -> FortiGate Sysem DNS Server sind nicht korrekt konfiguriert oder antworten nicht!
          
          NOTE In diesem Zusammenhang wird empfohlen folgender Artikel einzusehen:
               
               Fortinet:FortiCare-FortiGuard#Die_Registrierung_FortiCare.2FFortiGuard_ist_auf_der_Fortigate_nicht_ersichtlich.2C_was_kann_ich_tun.3F

Wenn es zu Störungen kommt im Service von Fortinet in FortiGuard (FortiCloud) wird per Standard alle Anfragen -da unbeantwortet- geblockt. Es wird empfohlen folgende Position zu aktivieren um diesem Umstand entgegenzutreten:

       UTM Security Profiles > Web Filter > Profile > [Wähle das entsprechende Profile] > Advanced Filter > Allow Websites When a Rating Error Occurs
       
       NOTE Wird dieser Konfigurationspunkt aktiviert und eine Anfrage wird in dem FortiGuard
            Service mit einem "error" beantwortet zB weil der Service Momentan nicht erreichbar
            ist, wird die URL erlaubt. Ist diese Position nicht aktiviert werden sämtliche URL's
            geblockt.

Wie kann ich über URL WebFilter den Zugriff auf "Anonymous Proxy" verhindern?

Dies kann im entsprechenden WebFilter Profile über die folgende Kategorie durchgeführt werden

       Security Profiles > WebFilter > [Wähle das entsprechende Profile] > [Aktiviere FotriGuard Categories]
       
       Potentially Liable > Proxy Avoidance > [Rechte Maustaste > Block]
       
       Fortinet-1122.jpg

Setze diese Kategorie auf "Block" und die "Anonymous Proxy's" werden geblockt!

Wie finde ich über URL WebFilter Funktion heraus welche Web Sites durch die User aufgerufen wurden?

Um herauszufinden welche Web Sites/URL die User benützen etc. muss ein "Monitoring" eingerichtet werden. Dazu ist folgendes innerhalb des WebFilter's zur berücksichtigen:

       Kategorie auf > Block         Zugriff nicht erlaubt; Ein Log Eintrag wird erstellt
       Kategorie auf > Allow         Zugriff erlaubt: Kein Log Eintrag wird erstellt
       Kategorie auf > Monitor       Zugriff erlaubt; Log Eintrag wird erstellt
       Kategorie auf > Warning       Uigroff eröaibt: Log Eintrag wird erstellt
       Kategorie auf > Authenticate  Zugriff erlaubt sofern Authentifizierung: Log Eintrag wird erstellt

Aus der obigen Liste wird dadurch klar, dass alle Kategorien die auf "Allow" stehen für einen entsprechenden Log Eintrag auf "Monitor" gesetzt werden müssen. Durch diese Konfiguration werden "sämtliche" Sites/URL geloggt. Damit dieses WebFilter Profile angewendet wird muss dieses in der entsprechenden Firewall Policy Rule aktiviert werden. Dazu führe folgendes aus:

       Policy > Policy > Policy > [Wähle die entsprechende Firewall Policy]
       
       Fortinet-1123.jpg 

Nun kann die Konfiguration getestet werden. Nach einem Zugriff sind die Site's/URL unter folgender Position ersichtlich

       Log&Report > Security Log > Web Filter
       
       NOTE Damit die Logs einwandfrei unter der genannten Position ersichtlich sind müssen die Log Settings
            einwandfrei konfiguriert werden. Weitere Informationen dazu siehe nachfolgende Artikel:
            
            Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
            
            Das Security Log basiert auf der Option "extended-utm-log". Diese Option existiert für FortiOS 5.2
            nicht mehr. Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F

Wie kann ich betreffend URL Filtering eine Website (URL) bei Fortinet Re-Kategorisieren lassen?

Wenn in einer entsprechenden Firewall Policy ein WebFilter aktiviert ist und ein User eine Site/URL aufruft wird diese Site/URL über FortiGuard überprüft. Handelt es sich um eine Site/URL die nicht Kategorisiert ist fällt diese innerhalb der FortiGate Kategorien unter "Unrated". Wenn nun diese Site/URL Kategorisiert werden möchte in FortiGuard oder eine Site/URL Re-Kategorisiert werden soll wähle folgenden Link:

       http://www.fortiguard.com/static/webfiltering.html

Wähle dort den den folgenden Menüpunkt und gebe dort die gewünschte Site/URL ein mit deren FQDN:

       Fortinet-1124.jpg

Nach der Ausführung wird das entsprechende Resultat angezeigt dh. in welcher Kategorie sich die Site/URL befindet. Möchte man nun einen Anfrage für eine Kategorisierung/Re-Kategorisierung absetzen wähle am ende der Seite die endsprechenden Felder aus

       Fortinet-1125.jpg

Jede Anfrage sollte innerhalb von 24 Stunden beantwortet werden. Als Bestätigung erhält man ein E-Mail (Beispiel sieh unten):

       Von: FortiGuard Web Filtering Service [1]
       
       Dear Fortinet customer,
       
       The website(s) you submitted below has been reviewed and updated:
       
       Submission Date:            Thu, 5 Apr 2012 12:08:11 -0700
       URL:                        http://baeurer.de/
       Suggested Category:         Information Technology
       Customer Comment:           Baeurer is a ERP wending company and not developing freeware downloads to the internet. Please re-categorize.
       Updated Category:           Information Technology
       Update Date:                Thu, 5 Apr 2012 19:21:01 -0700
       
       
       If the suggested category does not meet your expectation, kindly contact us through http://www.fortiguard.com/contactus.html, our Web 
       Filtering team would be happy to assist you.
       
       Note that FortiGuard Web Filtering Service categorizes websites, but it is your IT manager who decides what categories to block or allow. 
       Therefore, if you would like access to the site, please contact your IT manager.
       
       The rating update may not be effective immediately on your network because of the Web filtering cache. If you would like to have the 
       update effective immediately, please contact your network administrator.
       
       Thank you for using FortiGuard Web Filtering Service.
       
       Regards,
       
       FortiGuard Web Filtering Service
       Fortinet Inc.

Wo sehe ich das "rating" einer einzelnen Seite betreffend URL Filtering?

Es gibt zwei Möglichkeiten das Rating einer einzelnen Seite betreffend WebFiltering zu überprüfen dh.

       Uebers Mgmt. Web Interface:
       
       FortiOS 5.0
       UTM Profiles > Web Filter > Rating Overrides > Create New > Lookup Rating
       
       FortiOS 5.2
       Security Profiles > Advanced > Web Rating Overrides > Create New > Lookup Rating
       FortiGuard Seite:
       
       http://www.fortiguard.com/static/webfiltering.html
       
       Fortinet-1124.jpg
       
       NOTE Wenn eine Seit Kategorisiert/Re-Kategorisiert werden soll steht am ende der Seite diese
            Funktion zur Verfügung. Weitere Informationen siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_betreffend_URL_Filtering_eine_Website_.28URL.29_bei_Fortinet_Re-Kategorisieren_lassen.3F

Wie kann ich den Zugriff über die URL WebFilter Funktion auf "Streaming Medias" verhindern?

Dies kann über die folgende "Web Filter" Kategorie konfiguriert werden:

       Bandwidth Consuming > Streaming Media and Download
                             Internet Radio and TV
       Fortinet-1126.jpg

Wie kann ich im Zusammenhang mit dem URL WebFiltering ein "whitelisting" und/oder "blacklisting" konfigurieren?

Wenn man ein WebFilter konfiguriert so ist es empfehlenswert ein sogenanntes "whitelisting/blacklisting" zu konfigurieren. Dies bedeutet lokale Kategorien zu benutzen (whitelisting/blacklisting) um Seiten in der FortiGuard Kategorie "lokal" neu zu Kategoriesieren. Ist zB eine Site wie www.also.ch in der FortiGuard Kategorie "Business" und die Kategorie "Business" ist geblockt, kann anstelle der ganze Kategorie auf "Allow" zu setzen, nur die entsprechende Seite in die lokale Kategorie "whitelisting" verschoben werden (Override). Dadurch bleibt die Kategorie "Business" geblock ausser die Seite www.also.ch die sich in der erlaubten Kategorie "whitelisting" befindet. Im Standard WebFilter existieren bereits zwei "lokale" Kategorien dh. "custom1/2".

       UTM Security Profiles > Web Filter > Profile > [Wähle ein entsprechendes Profile] > [Aktiviere "FortiGuard Categories" > Local Categories
       Datei:Fortinet-620.jpg

Diese zwei bestehenden Kategorien können unbenannt oder gelöscht werden:

       # config webfiler ftgd-local-cat
       # delete custom1
       # delete custom2
       # end
       
       NOTE Die Kategorien unter "Local Categories" können nur gelöscht werden wenn diese keine URL's enthalten
            sowie der WebFilter im Gesamten nicht in Benutzung ist! Es ist nicht möglich die Kategorien über das
            WebInterface zu löschen dh. dies ist nur über CLI durchführbar.
       
       Um die Kategorien umzubenennen führe folgendes durch:
       
       # config webfiler ftgd-local-cat
       # rename custome1 to whitelist
       # rename custome2 to blacklist
       # end
       
       Um neue Kategorien zu erstellen führe folgendes auf der CLI durch:
       
       # config webfiler ftgd-local-cat
       # edit whitelist
       # next
       # edit blacklist
       # end

Sobald die Kategorien erstellt wurden können diese mit der entsprechenden Aktion versehen werden wie zB Allow oder Block etc.:

       whitelist > Allow oder Monitoring
       blacklist > Block
       Datei:Fortinet-623.jpg
       
       NOTE Wenn innerhalb des WebFiltes eine Site/URL zB nicht Kategorisiert ist oder man die Seite/URL bei Fortinet
            Re-Kategorisieren lassen will, kann dies über die FortiGuard Seite als Anfrage abgesetzt werden. Weitere
            Informationen zu diesem Vorgang siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_kann_ich_betreffend_URL_Filtering_eine_Website_.28URL.29_bei_Fortinet_Re-Kategorisieren_lassen.3F

Wenn nun eine Seite im WebFilter existiert man diese jedoch "lokal" Re-Kategorisieren will muss ein "Override" konfiguriert werden. Wähle dazu:

       FortiOS 5.0
       UTM Security Profiles > Web Filter > Rating Overrides
       
       FortiOS 5.2
       Security Profiles > Advanced > Web Rating Overrides
       
       Datei:Fortinet-621.jpg
       Datei:Fortinet-622.jpg
       
       NOTE Ueber das "Lookup Rating" kann die Standard Kategorisierung der URL abgefragt werden! Dies
            dient ebenfalls als Anhaltspunkt in welcher Kategorie sich die URL innerhalb des URL 
            WebFilters befindet!

Kann ich für einen Webfilter betreffend "Local Category" eine Authentifizierung (authenticate) über Active Directory (LDAP) konfigurieren?

Ja, dies ist möglich! Als Basis für die Konfiguration eine "lokale" Kategorie erstellt analog "whitelisting/blacklisting" zB mit dem Namen "authenticate". Dazu siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F

Danach wird ein Active Directory (LDAP) auf der FortiGate konfiguriert und eingebunden. Dieses Active Directory (LDAP) wird benutzt in einer Gruppe die benutzt wird für die "lokale" Kategorie "authenticate". Wie ein Active Directory (LDAP) konfiguriert wird sowie die genannte Gruppe siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F

Wenn die "lokale" Kategorie erstellt wurde sowie die Gruppe die auf das Active Directory (LDAP) verweist öffne den entsprechenden WebFilter und führe folgendes durch:

       UTM Security Profiles > WebFilter > [Wähle das entsprechende Profile] > FortiGuard Categories
       
       Datei:Fortinet-721.jpg
       
       NOTE Sobald die entsprechende "Local Category" auf "Authenticate" gesetzt wird erscheint ein entsprechendes
            Pop-Up indem die entsprechende Gruppe mit der Active Directory Einbindung konfiguriert werden kann. 
            Ebenso kann ein "Warning Interval" definiert werden der dem User in Erinnuerung ruft, dass er diese 
            Seite über eine "Authentifizierung anschaut:
            
            Fortinet-722.jpg

Wie funktioniert betreffend WebFilter der "DNS Inspection Mode"?

Die WebFilter Funktion für eine FortiGate kann unter FortiOS 5.0 / 5.2 betreffend "Inspection Mode" in 3 verschiedene Modi gesetzt werden:

       Proxy Mode
       Flow Mode
       DNS Mode

Neu unter FortiOS 5.0 / 5.2 ist der "DNS Inspection Mode". Wenn dieser aktiviert ist muss folgende Voraussetzungen gegeben sein:

       Als DNS Server unter nachfolgender Position muessen die "FortiGuard" Server definiert werden:
       
       System > Network > DNS > DNS Settings > Use FortiGuard Servers

Wenn dies gegeben ist werden die DNS Anfragen auf der FortiGate "Transparent" abgefangen und über die FortiGuard DNS Server aufgelöst sowie dessen Ratings abgefragt. Der Vorteil dieses Modi ist, dass ebenfalls für SSL (HTTPS) der WebFilter genutzt werden kann ohne ein Zertifikat auf dem Client einzuspielen (SSL Deep Inspection) da die WebFilter Funktion rein auf DNS Abfragen und deren Ratings basiert (CN = Common Name). Der Nachteil dieser Funktion liegt im "delay" dh. die Abfragen an die FortiGuard Server benötigen Ihre Zeit. Dennoch ist dieser Mode eine gute Alternative "ohne" Zertifikate auf den Clients SSL (HTTPS) basierende Seiten über den WebFilter zu kontrollieren.

       NOTE Wenn dieser Mode getester werde möchte, muss der Device über die entsprechende Subscription sowie ordnungsgemäss
            registriert sein (ersichtlich im Dashboard). Nur dann ist man berrechtigt die "FortiGuard DNS Server" zu benutzen. Die 
            Clients selber müssen nicht mit den "FortiGuard DNS Server konfiguriert" werden. Wenn Tests durchgeführt werden auf den
            Clients sollte der "DNS Cache" vorgängig gelöscht werden anhand des folgenden Kommandos:
            
            "ipconfig /flushdns"!

Ein weiterer Nachteil liegt in der eingeschränkten Funktion dh. wenn dieser "DNS Mode" benützt wird stehen folgende Funktionen nicht zur Verfügung:

       • Quotas
       • WebFilter Kategorien die auf "Warning oder Authenticate" gesetzt sind
       • Safe Search
       • URL only scanning für HTTPS
       • Advanced Filter Optionen wie:
                                        - web content filtering
                                        - web resume download blocking
                                        - blocking invalid URLs
                                        - HTTP post action options
                                        - Java applet filtering
                                        - ActiveX filtering
                                        - cookie filtering
                                        - image rating
                                        - allowing websites when a rating error occurs
                                        - blocking HTTP redirects by rating

Fortinet hat im Juli 2013 sogenannte "Supplementary Recipes" Dokumente released was einem Teilbereich des "Cookbook's" entspricht. Dazu gehört ebenfalls ein Dokument das zeigt wie man diesen "DNS Inspection" Mode konfiguriert:

       Datei:FortiGuard DNS web filtering.pdf

Wie schalte ich für WebFilter auf einer FortiGate das Extended-UTM-Log ein?

Per Standard werden WebFilter Events im regulären Log geloggt dh. Traffic Log. Nun möchte man die Events separiert in einem Log loggen kann dies durch das sogenannte "Extended-UTM-Log" erreicht werden. Im WebFilter Profile selber stehen verschiedene Log Optionen neben dem "Extended-UTM-Log" zur Verfügung. Um das "Extended-UTM-Log" zu aktivieren und die vers. Funktionen führe folgendes durch:

      NOTE Die Option "extended-utm-log" steht unter FortiOS 5.2 nicht mehr zur Verfügung.
           Weitere Informationen siehe nachfolgenden Artikel:
           
           Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
      # config webfilter profile
      # edit [Gebe das entsprechende Profile an]
      # config web
      # log-search [enable | disable]
      # end
      # set extended-utm-log [enable | disable]
      # set log-all-url [enable | disable]
      # set web-content-log [enable | disable]
      # set web-filter-command-block-log [enable | disable]
      # set web-filter-cookie-log [enable | disable]
      # set web-filter-applet-log [enable | disable]
      # set web-filter-jscript-log [enable | disable]
      # set web-filter-js-log [enable | disable]
      # set web-filter-vbs-log [enable | disable]
      # set web-filter-unknown-log [enable | disable]
      # set web-filter-referer-log [enable | disable]
      # set web-filter-cookie-removal-log [enable | disable]
      # set web-url-log [enable | disable]
      # set web-invalid-domain-log [enable | disable]
      # set web-ftgd-err-log [enable | disable]
      # set web-ftgd-quota-usage [enable | disable]
      # end
      
      NOTE Es ist zu verifizieren "was" alles aktiviert werden sollte. Um ein Grundlogging für WebFilter
           zu aktivieren sollten folgende Optionen aktiviert werden:
           
                  # set extended-utm-log enable
                  # set log-all-url enable
                  # set web-url-log enable
                  # set web-ftgd-err-log enable

Sobald das "Extended-UTM-Log" aktiviert wurde kann -sofern gewünscht- das UMT Monitoring aktiviert werden:

       Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Wie bedeutet der Konfigurationspunkt "Web Overrides" innerhalb der Web Filter Funktion?

Nun diese Funktion steht neu ab FortiOS 5.0.4 / 5.2 zur Verfügung und bedeutet nichts anderes, als das man einen bestehenden WebFilter anhand eines definierten Users, Gruppe oder Source IP und anhand eines "neuen" WebFilter -für eine bestimmte Zeit- überschreiben (Override) kann. Dies bedeutet: Es kann eine Zeitliche Expiration konfiguriert werden dh. um den Override zeitlich zu limitieren. Dadurch können zeitliche Ausnahmen auf User, Gruppe oder Source IP konfiguriert werden. In der Firewall Policy wird nicht das WebFilter Profil für den "Override" benutzt sondern das Orginale (Beispiel: webfilter-http.local.intra). Wenn wie im unteren Beispiel gezeigt ein "Override" existiert für die IP "192.168.1.2" und in der Firewall Policy Rule das Orginal Profile (webfilter-http.local.intra) konfiguriert wurde, wird nicht dieses angewendet sondern das definierte Profile unter der Positon "New Profile" sofern der "Override" Zeitlich noch gültig ist dh. in unserem Beispiel "webfilter-http-override.local.intra":

       NOTE Unter FortiOS 5.2 wurde die Positon des "Override's" verschoben und ist nun neu unter
            folgender Position zu finden:
            
            Security Profiles > Advanced > Web Profile Overrides
       Fortinet-806.jpg

Wie funktioniert der HTTPS scan innerhalb des WebFilter wenn "Deep Inspection" nicht aktiviert ist (Scan Encrypted Connections / HTTPS URL Scan Only)?

Grundsätzlich gilt auf einer FortiGate, wenn "Deep Inspection (Deep Scan)" aktiviert ist (Aufbrechen der SSL Verbindung), dass auf dem Client das entsprechende FortiGate Zertifikat installiert werden muss (Grundvoraussetzung). Diese Art eine SSL Verbindung aufzubrechen ist auch bekannt als "man of the middle". Dies bedeutet wiederum, dass wenn "kein" entsprechendes Zertifikat der FortiGate auf dem Client installiert ist, "Deep Inspection" nicht benutzt werden kann und somit SSL Verbindungen nicht aufgebrochen werden können (Gilt für ALLE UTM Features). Eine Alternative ist die im WebFilter aufgeführt Option "Scan Encrypted Connections". Wenn diese Option "nicht" aktiviert ist -und über CLI die Option "set options https-url-scan enabled" im WeFilter Profile aktiviert ist- wird im Hintergrund folgendes durchgeführt:

          NOTE Unter FortiOS 5.2 existiert die Option innerhalb des WebFilters "Scan Ecrypted Connections" sowie
               in der CLI "https-url-scan" nicht mehr. Dies bedeutet unter FortiOS 5.2 wird die Art und Weise 
               welche Variante benutzt wird dh. "Deep Inspection" oder "HTTPS URL Scan Only" nicht im WebFilter
               Konfiguriert sondern über ein entsprechendes "SSL Protocol Options". Unter FortiOS 5.2 wird ein
               "SSL Protocol Option" unterschieden zwischen "Certificate Inspection" und "Deep Inspection".
               Weitere Informationen dazu siehe nachfolgenden Artikel:
               
               Fortigate:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
       1. Im "TLS Handshake" der Verbindung wird der Hostname des Server Namens innerhalb der "Client Hello" 
          Message herausgefiltert (CN = Common Name).  
       
       2. Wenn ein gültiger Hostname innerhalb Position 1. herausgefiltert werden kann, ist dieser Hostname 
          Basis für die Abfrage für die FortiGuard WebFilter Kategorien.
       
       3. Wenn kein gültiger Hostname herausgefiltert werden kann innerhalb Position 1. wird ein CN (Common Name)
          basierende Ueberprüfung durchgeführt dh. es wird der CN Name des Zertifikats benützt für die Abfrage
          für die FortiGuard Webfilter Kategorie.
       
          NOTE Bis FortiOS 5.0.2 wurde innerhalb der im WebFilter zur Verfügung stehenden Funktion (HTTPS Scan only)
               ausschliesslich Punkt 3. durchgeführt. Ab FortiOS 5.0.3 wurde die Erweiterung unter Punkt 1. und 2. 
               implementiert.
       
       4. Wenn die Option "block-invalid-hostname" innerhalb  des WebFilters aktiviert ist und Punkt 3. trifft zu so
          wird die Seite geblockt und ein entsprechender Log Eintrag wird erstellt.
       
       5. Desweitere ist zur berücksichtigen: Dem Client wird das orginal Zertifikat des Servers -sofern die Seite 
          über die WebFilter Kategorie erlaubt ist- auf dem Client angezeigt. Wenn die Seite über WebFilter Kategorie
          nicht erlaubt ist, wird das Zertifikat in der "blocked" Nachricht, die FortiGate in so einem Fall ausgiebt,
          angezeigt. Dies ist ebenso technisch gesehen ein Beweis das kein "deep scan" ausgeführt wird, denn ansonsten
          würde das FortiGate Zertifikat dem Client präsentiert und nicht das original Zertifikat (man in the middle).
          Diese "block" Nachricht ist effektiv eine "Replacement Message". Möchte man diese deaktivieren so ist folgendes
          Kommando auszuführen:
          
          # config webfilter profile
          # edit [Name des entsprechenden Profiles]
          # set https-replacemsg disable
          # end
          # end
          
          Wenn diese "https-replacemsg" deaktiviert wird so wird dem User ein zB "Self-sign" Zertikat zur Bestätigung 
          angezeigt und der User kann dies Bestätigen.

Wie das "HTTPS URL Scan Only" ("Scan Encrypted Connections" ist deaktiviert) konfiguriert wird zeigt folgender Artikel;

       Fortigate:FAQ#Wie_wird_das_.22Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.22_ohne_.22Deep_Inspection.22_konfiguriert.3F

Wie wird das "Scan Encrypted Connections / HTTPS URL Scan Only" ohne "Deep Inspection" konfiguriert?

Fortinet hat ein Dokument Released für FortiOS 5.0, dass erklärt wie das "HTTPS UTL Scan Only" (Option "Scan Encrypted Connections" ist deaktiviert) konfiguriert wird. Dieses ist kurz und einfach gestaltet und zeigt das Wesentliche:

       NOTE Unter FortiOS 5.2 exisitert die Option "https-url-scan" nicht mehr. Die Funktion "HTTPS URL Scan
            Only" wird unter FortiOS 5.2 über die "SSL Protocol Options" konfiguriert als "certificat-inspection"
            Weitere Auskunft über die Funktionsweise von "HTTPS URL Scan Only" für FortiOS 5.0 sowie FortiOS 5.2
            zeigt nachfolgender Artikel:
            
            Fortigate:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
       FortiOS 5.0 Only
       Datei:FortiOS.HTTPS.Webfiltering.without.SSL.Deep.Scan.pdf

Wie kann ich innerhalb eines WebFilters einen bestimmten "MIME" Type (zB Audio) blockieren (Content-Header)?

Ein WebFilter ist von Hause aus auf einer FortiGate Domainen/URL basierend dh. die FortiGate merkt von sich aus nicht ob zB ein Audio Streaming und/oder Video Streaming durchgeführt wird. Die FortiGate überprüft die Domaine/URL und lässt diese zu oder blockiert diese. Ebenfalls kann die FortiGate zB betreffend Antivirus Scanning nicht diese Streams ignorieren, denn von sich aus erkennt die FortiGate nicht, dass es sich um einen Audio resp. Video Stream handelt und versucht diesen zu scannen. Dies resultiert in einer höheren Auslastung im Memory (data buffering) obwohl dieses Antivirus Scanning nichts bringt. Aus diesem Grund ist es/kann es Sinnvoll sein "MIME" basirend der FortiGate diese Aufgaben klar mitzuteilen resp. zB Audio und/oder Video Stream's vom Scanning auszuschliessen. Nachfolgendes Beispiel zeigt wie über die Funktion "Content-Header" innerhalb eines WebFilters "Audio und/oder Video Streams geblockt" werden können sowie "Antivirus Scanning deaktiviert wird für Audio und/oder Video Streams":

           NOTE Unter FortiOS 5.2 steht die "MIME" Konfiguration wie gewohnt zur Verfügung und kann
                so -wie nachfolgende erklärt- konfiguriert werden. Neu unter FortiOS 5.2 ist das in 
                den "Protocol Opton's" eine neue Option zur Verfügung steht "streaming-content-bypass"
                die Audio und/oder Video ausschliesst.
                
                Fortigate:FAQ#Kann_ich_.C3.BCber_den_.22MIME.22_Header_eine_bestimmte_Applikation_vom_Antivirus_Scanning_ausschliessen.3F

Um zu unterschieden "um was es sich handelt" kann der "MIME" Header (Multipurpose Internet Mail Extensions) analysiert werden um einen "Content-Header" zu konfigurieren der wieder zuständig ist diese "MIME" Header zu erkennen und eine bestimmte Aufgabe zB Deaktivierung von Antivirus Scanning (exempt), zu konfigurieren. Nachfolgendes Beispiel zeigt auf wie zB Audio vom Antivirus Scanning ausgenommen wird sowie über WebFilter Video blockiert wird. Als Basis dazu muss der Stream mit WireShark selber im Sniffer Modus analysiert werden um den "MIME" Type herauszufinden. Eine andere Möglichkeit ist die "Capture" Funktion auf der FortiGate zu nuzen. Die "Capture" Funktion sowie die Möglichkeit Filter zu setzen findet man auf einer FortiGate unter folgender Position:

       System > Network > Packet Capture
       
       NOTE Unter FortiOS 5.2 steht die "Capture" Funktion für kleinere Geräte nicht mehr zu Verfügung.
            Diese Einschränkung steht im Zusammenhang mit dem Umstand, dass bei kleinen Geräten unter 
            FortiOS 5.2 das Disk Logging deaktiviert wurde. Weitere Informationen siehe nachfolgenden Link:
            
            Fortigate:FAQ#Packet_Capture

Dieses "Capture" File kann in WireShark eingelesen und analysiert werden dh. man sieht darin den enthaltenen "MIME" Header des Streams und/oder Files. Nachfolgend ein Beispiel basierend auf YouTube. In diesem Beispiel sieht man den "Content-Type" der den "MIME" Header darstellt:

       Hypertext Transfer Protocol
       HTTP/1.0 200 OK\r\n
       Request Version: HTTP/1.0
       Response Code: 200
       Server: DCLK-AdSvr\r\n
       Content-Type: video/x-ms-asf\r\n
       X-Google-Inred-Content-Type: video/x-ms-asf\r\n
       Content-Length: 410\r\n
       Content-Encoding: gzip\r\n
       
       Hypertext Transfer Protocol
       HTTP/1.1 200 OK\r\n
       Request Version: HTTP/1.1
       Response Code: 200
       Last-Modified: Mon, 14 Sep 2009 00:40:51 GMT\r\n
       Content-Type: video/x-flv\r\n
       Content-Length: 200994\r\n
       Connection: close\r\n
       Content-Disposition: attachment; filename="video.flv"\r\n
       Expires: Thu, 29 Oct 2009 09:06:24 GMT\r\n
       Cache-Control: public,max-age=3600\r\n
       Date: Thu, 29 Oct 2009 08:06:24 GMT\r\n
       Server: gvs 1.0\r\n

Als nächstes muss im WebFilter ein "Content-Header" konfiguriert werden. Dazu wird "Regular Expression" (RegEx) benutzt um verschiedenen "Content-Type's" in der gleichen Kategorie abzudecken dh. unser "Content-Type" in unserem Beispiel wäre:

       Content-Type: video/x-ms-asf\r\n
       Content-Type: video/x-flv\r\n

Natürlich kann genau dieser "Content-Type" als zB "video/x-ms-asf\r\n" abgedeckt werden da wir jedoch "alle" Video's abdecken möchten benutzen wir anhand "Regular Expression" folgendes:

       Folgendes ist im "Content-Type" enthalten:
       
               video/x-flv\r\n
               video/x-ms-asf\r\n
       
       Wir möchten alle Videos abdecken dh. alles was "nach" Video kommt soll über RegEx abgedeckt werden. Die 
       im "Content-Type" enthaltenen Endungen dh. zB .ms, .asf sollen ebenfalls abgedeckt werden. Somit ergiebt
       sich folgendes:
       
               video\\/.*
       
       NOTE Das Zeichen "/" stellt im RegEx ein Sonderzeichen dar und muss "escaped" werden dh. es muss speziell
            markiert werden als Sonderzeichen. Dies wird mit der Kombination "\\" durchgeführt und bedeutet nichts
            anders als "Achtung jetzt kommt ein Sonderzeichen"!
       
       Möchte man im "Content-Type" ebenfalls "audio" abdecken wäre dies:
       
               audio\\/.*

Daraus resultierend ergiebt sich folgendes Kommando für den "Content Header" im WebFilter:

       # config webfilter content-header
       # edit [Gebe einen Integer an zB "1"]
       # set comment [Setze einen Kommentar zB "block video exempt audio"]
       # config entries
       # edit "video\\/.*"
       # set action block
       # next
       # edit "audio\\/.*"
       # set action exempt
       # next
       # end
       # set name [Setze einen Namen für den "Content-Header" zB "block-video-exempt-audio"]
       # next
       # end
       
       NOTE Unter der Position "action" kann folgendes konfiguriert werden und hat folgende Bedeutung:
            
            allow  — Erlauben des zutreffenden Content's.
            block  — Blocken des zutreffenden Content's.
            exempt — Ausschliessen des zutreffenden Content's.
            
            Zusätzlich zu der Option "action" kann ebenfalls die Kategorie mit folgenden Befehl gesetzt werden:
            
            # set category [Gebe die entsprechende Kategorie an; Gebe "?" an um die Kategorien aufzulisten]

Der "Content-Header" ist konfiguriert. Jetzt muss dieser einem entsprechenden "WebFilter Profile" hinzugefügt werden:

       FortiOS 5.0 / 5.2
       # config webfilter profile
       # edit [Wähle den Namen des entsprechenden WebFilter Profiles]
       # config web
       # set content-header-list 1
       # end
       # next
       # end
       FortiOS 4 MR3
       # config webfilter profile
       # edit [Wähle den Namen des entsprechenden WebFilter Profiles]
       # config http
       # set options contenttype-check
       # end
       # config web
       # set content-header-list 1
       # end
       # next
       # end

Wie kann ich innerhalb eines WebFilters einzelne Sites/Kategorien vom "Deep Inspection" ausschliessen?

Wenn auf einer FortiGate das Ordnungsgemässe "Deep Inspection" konfiguriert ist dh. auf dem Client/Workstation wird das Zertifikat der FortiGate importiert stellt sich die Frage "wie" man innerhalb eines WebFilter's der "Deep Inspection" benutzt HTTPS Seiten von dieser Funktion ausschliesst. Dieser Ausschluss kann über eine eigenen "lokale" Kategorie durchgeführt werden. Wie man so eine "lokale" Kategorie erstellt zB "exempt-ssl" siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F

Ausgehend davon das durch obenen Artikel eine eigene Kategorie unter "Local Categories" erstellt wurde zB "exempt-ssl" und diese als "allow" konfiguriert wurde kann nun folgendes durchgeführt werden:

       NOTE Unter FortiOS 5.2 steht die Option "exempt-ssl" für "config ftgd-wf" nicht mehr zur Verfügung.
            Der Grund dafür ist, dass diese Funktion direkt in den "SSL Protocol Options" konfiguriert
            werden kann. Weitere Informationen siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config webfilter profile 
       # edit [Name des entsprechenden Profiles] 
       # config ftgd-wf 
       # set exempt-ssl [ID der entsprechenden Kategorie]
       # end 
       # end
       
       NOTE Wenn mehrer Kategorien angegeben werden sollen führe diese nacheinander
            auf mit einem Leerschlag dazwischen dh. zB:
            
            143 120 20
            
            Es können ebenfalls reguläre resp. standard Kategorien des WebFilters komplett
            mit deren ID angegeben werden und somit ausgeschlossen werden von der Funktion
            der "SSL-Inspection". Ebenso steht die Option "all" zur Verfügung!
            

Um die ID der entsprechenden "Local Category" rauszufinden benütze folgenden Befehl:

       # config webfiler ftgd-local-cat
       # edit [Gebe den Namen der entsprechenden Local Category an zB "exempt-ssl"]
       # get
       desc                : exempt-ssl
       id                  : 143
       # end

Was bedeutet innerhalb eines WebFilter Profiles die Position "YouTube Education Filter" und wie benutze ich diesen?

Kurz umschrieben bedeutet diese Position folgendes: "YouTube Education Filter" eine Möglichkeit für ein Unternehmen (speziell für Schulen) einen Account auf YouTube anzulegen und dort anhand des "YouTube Accounts" zu definieren "welche" YouTube Videos freigegeben sind. Zugeschnitten ist diese Funktion resp. die Art "YouTube Videos zu Filtern" auf Schulen kann jedoch auch von Enterprise Unternehmen genutzt werden. Um auf YouTube einen "Education Account" anzulgen folge nachfolgenden Link:

       NOTE Unter FortiOS 5.2 wurde diese Möglichkeit komplett entfernt und steht nicht mehr zur
            Verfügung!
       http://www.youtube.com/schools

Wenn man einen "Education Account" anlegt wird diese mit einem "YouTube Edu Filter" Passwort verknüpft. Dieses "Passwort" wird dann benutzt um im entsprechenden WebFilter Profile unter folgender Position den "YouTube Education Filter" zu konfigurieren:

       UTM Security Profiles > WebFilter > Profile > [Wähle das entsprechende Profile] > YouTube Education Filter

Wenn man die Konfiguration in der CLI durchführen möchte wäre dies die folgenden Kommandos:

       # config webfilter profile
       # edit [Wähle das entsprechende Profile]
       # config web
       # set safe-search url header
       # set youtube-edu-filter-id [Setze das entsprechende Passwort für den "YouTube Education Filter"]
       # end
       # end

Spamfilter

Wie schalte ich für eine Spamfilter auf einer FortiGate das Extended-UTM-Log ein?

Im normal Fall werden Spamfilter Events im regulären Log geloggt. Nun möchte man die Event seperiert in einem Log loggen kann dies durch das sogenannte "Extended-UTM-Log" (Nur für FortiOS 5.0) erreicht werden. Um dieses "Extended-UTM-Log" zu aktivieren führe folgendes durch:

      # config spamfilter profile
      # edit [Gebe das entsprechende Profile an]
      # set extended-utm-log [enable | disable]
      # end
      
      NOTE Die Option "extended-utm-log" steht für FortiOS 5.2 nicht mehr zur Verfügung.
           Weitere Informationen siehe nachfolgenden Artikel:
           
           Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F

Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehen kann das "UTM Monitoring" aktiviert werden. Wie dies durchgeführt wird siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Was wird im Allgemeinen im EMail/Spamfilter per Standard abgearbeitet?

Wenn ein E-Mail Filter auf einer FortiGate mit seinen aktivierten Optionen in einer Firewall Policy benutzt wird so wird bei unverschlüsselten SMTP oder verschlüsselten SMTPS Traffic -sofern der Device dies unterstützt- folgendes innerhalb des Spamfilters per STandard in folgender Reihenfolge abgearbeitet:

       1. IP address black/white list (BWL) check on last hop IP (hdrip)
       
       2. DNSBL & ORDBL check on last hop IP, FortiGuard Antispam IP check on last hop IP, HELO DNS lookup
       
       3. MIME headers check, E-mail address BWL check
       
       4. Banned word check on email subject
       
       5. IP address BWL check (for IPs extracted from “Received” headers)
       
       6. Banned word check on email body
       
       7. Return email DNS check, FortiGuard Antispam email checksum check, FortiGuard Antispam URL check, DNSBL & ORDBL check on public IP extracted from header.

Für IMAP, POP3 und POP3S gilt folgendes:

       1. MIME headers check, E-mail address BWL check
       
       2. Banned word check on email subject
       
       3. IP BWL check
       
       4. Banned word check on email body
       
       5. Return email DNS check, FortiGuard Antispam email checksum check, FortiGuard Antispam URL check, DNSBL & ORDBL check.

Wie konfiguriere ich einen DNSBL Server für den Emailfilter?

Zusätzlich zu den Standard Funktionen des Email Filters können DNSBL Server konfiguriert werden wie zB ein Server von "Spamhaus Project" (ZEN Server zen.spamhaus.org IP Blacklisting Lookup). Um so einen DNSBL Server zu konfigurieren gebe auf der CLI folgendes ein:

       # config spamfilter dnsbl
       # edit [Gebe einen Integer an zB "1"]
       # set name [Gebe einen Namen ein zB "spamhaus"
       # set comment [Gebe einen entsprechenden Kommentar ein]
       # config entries
       # edit [Gebe einen Integer an für den Server zB "1"]
       # set action [reject | spam]
       # set server [Gebe den FQDN des DNSBL Servers an zB "zen.spamhaus.org"]
       # set status [enable | disable]
       # end
       
       NOTE Weitere informationen betreffend zur verfügung stehende DNSBL Server findet man nachfolgend:
            
            zen.spamhaus.org               http://www.spamhaus.org
            bl.spamcop.net                 http://www.spamcop.net
            dnsbl.sorbs.net                http://www.sorbs.net
            dnsbl.ahbl.org                 http://www.ahbl.org

Welche IP's werden im Header eines EMail durch den Spamfilter überprüft?

Nun im Header eines EMails wird der Weg der Nachricht mit der IP aufgezeigt. Die Abfolge wird vom Abschnitt "Subject" von Unten nach Oben gelesen dh. von Unten nach Oben wird der "Weg der Nachricht" augezeigt mit den IP's sowie FQDN die auf dem Weg der Uebermittlung benutzt wurden. Nun bei der Spamfilter Ueberprüfung auf einer FortiGate wird per Standard der letzte Hop betreffend seiner IP überprüft dh. ob diese in einer Spamliste geführt wird oder nicht. Ist dies der Fall, wird das Mail markiert als SPAM und zugestellt. In gewissen Situation macht es Sinn nicht nur den letzten Hop zu überprüfen sondern alle IP's die benutzt wurden für die Nachrichten Uebermittlung. Möchte man diese Option aktivieren kann dies über die Option "hdrip" durchgeführt werden. Diese Option ist per Standard deaktiviert (hdrip disable) dh. es wird nur wie bereits erwähnt der letzte Hop überprüft. Um diese Option zu aktivieren führe auf der Kommandozeile folgendes aus:

       # config spamfilter profile
       # edit [Wähle das entsprechende Profil]		
       # config smtp		
       # set hdrip enable
       # end
       # end
       
       NOTE Die Option "hdrip" kann nur gesetzt werden wenn im entsprechenden "Email Filter" über Gui die Spam 
            Detection "Enable Spam Detection and Filtering" aktiviert ist. Ueber Kommandozeile wird die Spam Detection
            folgendermassen aktiviert:
            
            # config spamfilter profile
            # edit [Wähle das entsprechende Profil]		
            # set spam-filtering enable
            # end

Wenn es bei der Ueberprüfung über die Option hdrip (AntiSpam Whitelisting/Blacklisting) zu einem False Positive kommt, kann dieser nicht überschrieben werden durch eine Manuelle Konfiguration. In so einem Fall kann Fortinet kontaktiert werden! Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       Fortigate:FAQ#Wie_kann_ich_eine_IP_die_im_FortiGuard_Service_als_.22Blacklist.22_gef.C3.BChrt_wird_entfernen_lassen.3F

Wie kann ich eine IP die im FortiGuard Service als "Blacklist" geführt wird entfernen lassen?

Eine IP im Zusammenhang mit SMTP kann über folgenden Link überprüft werden ob diese im FortiGuard Service als "Blacklist" geführt wird dh. eine schlechte Reputation hat:

       http://www.fortiguard.com/static/antispam.html
       
       NOTE Das entsprechende Feld befindet sich ganz am Ende der Seite! Um diese Seite
            zu erreichen benötigt man einen "Support Account".

Wenn die besagte IP die zur Ueberprüfung auf dieser Seite als "Blacklist" bestätigt wurde und es sich um ein False Positive handelt oder das Problem betreffend dieser IP gelöst wurde kann ein entsprechender Antrag an folgende Email Adresse gesendet werden:

       removespam@fortinet.com

Bei der Uebermittlung sollten die entsprechende Information mitgegeben werden (Email in Englisch) dh. ein Antrag nur mit der Information die besagte IP zu entfernen ist Nutzlos dh. zu Empfehlen ist eine kurz Uebersicht über das Problem zu geben und die entsprechenden Eingriffe um zukünftig das Problem zu verhindern. Werden die Informationen entsprechend durchgegeben werden so wird die entsprechende IP innerhalb 24 Stunden entfernt.

Traffic Shaper

Wo finde ich eine Beschreibung des Traffic Shapings auf einer Fortigate?

Folgende Dokument4 geben in den verschiedenen Versionen Auskunft resp. einen guten Ueberblick über das "Traffic Shaping" auf einer Fortigate:

       Datei:Fortigate-traffic-shaping-40-mr3.pdf
       Datei:Fortigate-traffic-shaping-50.pdf
       Datei:Fortigate-traffic-shaping-52.pdf

Wie kann ich für eine bestimmte Applikation garantierte Bandbreite zur Verfügung stellen?

Um einer Applikation eine garantierte Bandbreite zur Verfügung zu stellen muss auf der Fortigate eine "Traffic Shaper" Konfiguration durchgeführt werden. Die Grundlage so einer Konfiguration ist die Definition der Bandbreite der Applikation dh. die Bandbreite muss definiert werden für:

       - Maximum Bandwidth
       - Guaranteed Bandwidth
       - Traffic Priority
       
       NOTE Die momentane Bandbreite die benützt wird auf einem Interface wird vom FortiOS jede (1) Sekunde überprüft!

Diese Bandbreite wird unter "Firewall Objects > Traffic Shaper > Shared" für jeden Zweck/Applikation definiert. Nachträglich wird diese Definition in den Firewall Policy/Rule konfiguriert. Im nachfolgenden Beispiel nehme wir an wir hätten einen WebServer im DMZ und User im internal LAN. Da dem WebServer -für die internal User- eine wichtige Funktion zukommt, soll die Bandbreite für diesen WebServer garantiert werden. Anderer Traffic in die DMZ soll ebenfalls seine Bandbreite bekommen. Wir gehen von einem 1 GB Netzwerk aus und definieren folgende Bandbreite für den WebServer:

       -> Maximum Bandwidth       16776000              entspricht 1000 MBit/s oder 1 GB
       -> Guaranteed Bandwidth    204800                entspricht 200 MBit/s
       -> Traffic Priority        High

Un folgende Bandbreite für den restlichen Traffic im DMZ:

       -> Guaranteed Bandwidth    102400                entspricht 100 MBit/s
       -> Traffic Priority        Medium

Dies bedeutet wir möchten unserem WebServer permanente 200 MBit/s garantieren. Für den restlichen Traffic garantieren wir 100 MBit/s. Die Frage ist wieso nicht mehr garantiert wird für den restlichen Traffic da ja noch 800 Mbit übrig sind nach Abzug der 200 MBit/s für den WebServer? Nun da die internen User -um zum DMZ zu gelangen- das interne Interface benützen sollte nicht mehr für den restlichen DMZ Traffic zugewiesen werden da ansonsten kein Traffic Volumen mehr übrig bleibt für das interne Interface für andere Destinationen wie WAN. Für die Umrechnung und die korrekte Definition benutze nachfolgende Tabelle:

       Umrechnungstabelle: KBit/s - KB/s
       
       Datei:Fortinet-181.jpg

Wie schon erwähnt muss für die Definition unter Firewall Objects die entsprechenden Definitionen der Bandbreite durchgeführt werden:

       NOTE Unter FortiOS 5.2 wurde die Menüposition des Traffic Shapers verändert dh. 
            
            Poicy & Objects > Objects > Traffic Shapers
       Firewall Objects > Traffic Shaper > Shared
       
       Datei:Fortinet-182.jpg
       Datei:Fortinet-183.jpg
       Datei:Fortinet-182.jpg
       Datei:Fortinet-184.jpg

Nun kann die Policy/Rule erstellt werden in der die Bandbreite definiert wird:

       Policy > Policy > Policy
       
       Datei:Fortinet-185.jpg
       Datei:Fortinet-186.jpg
       
       NOTE Die IP 192.168.2.1 stellt die IP des WebServers dar! Somit wird dieser IP unser Profil "WebServer-DMZ" 
            betreffend Bandbreite zugewiesen!

Erfasse nun eine Policy/Rule für den restlichen Traffic im DMZ!

       Datei:Fortinet-187.jpg

Es ergiebt sich folgende Situation nach dem erstellen der Policy/Rule:

       Datei:Fortinet-188.jpg
       
       NOTE Achte darauf das die Reihenfolge der Policy/Rule korrekt ist dh. da die Rule des WebServers zuerst zieht greift
            die Definitioon der Bandbreite. Wäre die zweite Policy/Rule an erster Stelle und da die Destination auf "any" steht,
            würde diese Rule auch für den WebServer ziehen (First Match wins)!

Nach einem Test kann die Konfiguration im Monitor unter folgender Position kontrolliert werden:

       Policy & Objects > Monitor > Traffic Shaper Monitor

In den Logs kann dies ebenfalls kontrolliert werden dh. ob die Definition greift. Ist dies der Fall sieht man unter den Details im Log die Position Sent Shaper Name. Als Name erscheint auf dieser Position der Name des Profiles resp. der Definition also in unserem Fall "WebServer-DMZ" oder "DMZ".

Wie kann ich für eine bestimmten Zweck (zB Citrix) den Traffic Markieren damit zB Router den Traffic Priorisieren/Kategorisieren?

Wenn man zB über einen Provider einen bestimmten Traffic übermittlet und dieser Provider verschiedene Kategorieren zur Verfügung stellt um diesen Traffic zu Priorisieren muss der Traffic "markiert" werden. Dies wird über ToS oder DSCP durchgeführt. ToS wird in RFC 791 definiert und erweitert durch RFC 1349. DSCP ist die Ablösung von ToS und wird im RFC 2474 definiert. Folgende Seite gibt einen guten Ueberblick:

       http://bogpeople.com/networking/dscp.shtml
       
       http://en.wikipedia.org/wiki/Differentiated_Services_Code_Point#Classification_and_marking

Wenn nun ein Provider zB "AF41" verlangt wäre dies "Precedence 4" was wiederum "Class Selector 4" entspricht:

       Datei:Fortinet-324.jpg

Dies bedeutet wiederum:

       Class Selector 4 = 100xxx 
       AF41             = xxx010
       
       Ergiebt          = 100010 (oder Dezimal 34)

Anhand dieser Informationen erstellt man unter folgenden Punkt für den "Traffic Shaper" den entsprechenden Eintrag:

       Firewall Objects > Traffic Shaper > Shared
       
       Datei:Fortinet-325.jpg

Diesen Eintrag "Citrix-CS4-AF41" kann nun in der entsprechendne Policy unter "Traffic Shaping" als "Shared Traffic Shaper" definiert werden sowie nachträglich getestet werden.

       NOTE Folgender Link gibt Auskunft wie DSCP über eine FortiGate durchgeführt wird sowie wie sich DSCP über ein VPN zu implementieren ist:
       
            http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=13587&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=38530996&stateId=0%200%2038532675
            http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=13588&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=38530996&stateId=0%200%2038532675

VoIP

Muss ich den SIP Session Helper unter FortiOS 5 löschen und wann wird SIP ALG benutzt?

In allen vorgängigen FortiOS Versionen wurde der SIP Session Helper betreffend SIP Session's als Standard genutzt. Unter FortiOS 5.0 wurde neu der SIP ALG (SIP Application Layer Gateway) eingeführt und nichts desto trotz wurde unter FortiOS 5.0 per Standard der SIP Session Helper genutzt und nicht der SIP ALG. Nachfolgender Artikel zeigt in einer kurzen Uebersicht um "was" es sich beim SIP ALG handelt:

       Fortigate:FAQ#Was_ist_ein_SIP_ALG_.28Application_Layer_Gateway.29_und_wieso_soll_ich_diesen_benutzen.3F

Aus diesem Grund musste man unter FortiOS 5.0 den SIP Session Helper löschen um den SIP ALG resp. nicht beide SIP Session Helper und SIP ALG zu nutzen. Weitere Informationen wie der SIP Session Helper gelöscht wird siehe nachfolgenden Artikel:

       Fortigate:FAQ#Was_ist_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F

Neu ab FortiOS 5.2 ist der SIP Session Helper kein Standard mehr sondern der SIP ALG. Somit muss unter FortiOS 5.2 der SIP Session Helper nicht mehr gelöscht werden da dieser nicht genutzt wird da SIP ALG per Standard genutzt wird. Wenn man "nicht" den SIP ALG per Standard benutzen möchte unter FortiOS 5.2 resp. man selber bestimmen will "was" der Standard sein soll betreffend SIP Traffic kann dies unter FortiOS 5.2 neu definiert werden anhand folgenden Kommandos:

       # config system settings
       # set default-voip-alg-mode [proxy-based | kernel-helper-based]
       # end
       
       NOTE Die Optionen "proxy-based" und/oder "kernel-helper-based" haben folgende Bedeutung:
            
            proxy-based          = SIP ALG
            kernel-helper-based  = SIP Session Helper
            
            Bei der Konfiguration betreffend dieser Option ist folgendes zu berücksichtigen:
            
            Obwohl "default-voip-alg-mode" auf "kernel-helper-based" gesetzt ist dh. SIP Session Helper, wird
            der Traffic über den SIP ALG abgewickelt wenn der Traffic eine Firewall Policy Rule matched die ein
            VoIP Profile konfiguriert hat. Explizit wird der SIP Session Helper nur benutzt wenn in der entsprechenden
            Firewall Policy Rule "kein" VoIP Profile benutzt wird. Dieser Umstand gilt nur für FortiOS 5.2!

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

Früher wurde der SIP Traffic über einen "SIP Session Helper" abgehandelt. Dieser sollte unter FortiOS 5.0 gelöscht werden. Jedoch unter FortiOS 5.2 sollte dies verifiziert werden. Weitere Informationen siehe nachfolgenden Artikel:

       Fortigate:FAQ#Muss_ich_den_SIP_Session_Helper_unter_FortiOS_5_l.C3.B6schen_und_wann_wird_SIP_ALG_benutzt.3F

Um den SIP Session Helper zu löschen führe folgendes aus:

       # show system session-helper
         edit 12 (1)
         set name sip
         set port 5060
         set protocol 17
         next
       
       NOTE Dieser Befehl listet sämtliche "session-helper" auf. Suche den Eintrag für das "sip" Protokoll und dessen
            ID. In unserem Beispiel wäre dies die ID "12"!

Nun löschen den "SIP Session Helper" (sip) anhand der ID:

       # config system session-helper
       # delete 12
       # end

Kontrolliere ob der entsprechende SIP "session-helper" (sip) gelöscht wurde:

       # config system session-helper | grep 12
       NOTE Möchte man den "Application Layer Gateway" (ALG) ebenfalls vollständig deaktivieren führe folgendes aus:
       
       # config system settings
       # set sip-helper disable
       # set sip-nat-trace disable
       # end

Führe einen Neustart des Gerätes durch:

      # execute reboot

Als nächsten Schritt muss ein VoIP Profile basierend auf dem "Application Layer Gateway" (ALG) hinzugefügt werden. Weitere Informationen um "was" es sich beim SIP ALG handelt siehe nachfolgenden Artikel:

       Fortigate:FAQ#Was_ist_ein_SIP_ALG_.28Application_Layer_Gateway.29_und_wieso_soll_ich_diesen_benutzen.3F

Ein VoIP Profile wird über folgende Position konfiguriert:

       Security Profiles > VoIP
       
       NOTE Diese Menüposition ist per Standard nicht im WebGui ersichtlich und kann unter folgender
            Position als Feature aktiviert werden:
            
            System > Config > Features > Show More > VoIP

Das per Standard bestehende Profile "default" kann herangenommen werden um die entsprechende Konfiguration zu vervollständigen oder es wird ein neus Profile erstellt:

       Datei:Fortinet-277.jpg
       
       NOTE Die Positionen "REGISTER" und "INVITE" geben an wieviele Requests per Second und Policy über SIP akzeptiert werden wobei
            "REGISTER" der Wert der Verbindungen darstellt die benützt werden um Geräte am Controller anzumelden. Der Wert "INVITE"
            stellt den effektiven Call dar. Dies bedeutet wenn der Wert 100 gesetzt wird so können sich über die entsprechende Policy
            nicht mehr als 100 Devices am Controller registrieren (REGISTER). Wenn "INVITE" auf 100 gesetzt wird können sich über die
            entsprechende Policy nicht mehr als 100 Anrufe (INVITE) durchgeführt werden. Die Position "SCCP" ist ein proprietäres CISCO Protokoll.

Als Letzteres muss nun nur noch das entsprechende Profile VoIP in die entsprechende Firewall Policy Rule in der SIP Traffic benützt wird, eingebunden werden:

       Datei:Fortinet-278.jpg

Was ist ein SIP ALG (Application Layer Gateway) und wieso soll ich diesen benutzen?

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

       Datei:Fortinet-715.jpg

Der SIP ALG unterstützt folgende Funktionen:

       • Alle Features implementiert im "Session Helper" sowie NAT, SIP und RTP Pinholes (Real Time Protocoll Pinholes)
       • Zusätzlich im Gegensatz zum Session Helper kann auf dem SIP ALG folgendes durchgeführt werden:
         
         - Aktivieren/Deaktivieren von RTP Pinholing
         - SIP Register Pinholing
         - SIP Contact Pinholing
         
         NOTE Wenn der RTP Stream "nicht" über die FortiGate abgehandelt wird kann das "RTP Pinholing" deaktiviert
              werden um die Performance zu erhöhen:
              
              # config voip profile
              # edit [Name des VoIP Profiles]
              # config sip 
              # rtp disable
              # end
         
       • SIP TCP und UDP Support
       • SIP Message Order Ueberprüfung
       • Konfigurierbare Header Line Length Maximum 
       • Message Fragment Assembly (TCP) 
       • Wenn SIP Nachrichten Fragmentiert sind (vers. Packete) fügt der SIP ALG diese wieder zusammen und schickt diese als Ganzes weiter.
       • L4 Protocol Translation 
       • Message Flood Protection 
       • DoS Protection für "flooding INVITE, REGISTER" und andere Methoden
       • SIP message Type Filtering 
       • SIP Statistik und Logging 
       • SIP über IPv6
       • SIP über SSL/TLS
       • Deep SIP Message Syntax Checking (SIP Header Inspection oder SIP Fuzzing Protection
       • Hosted NAT Traversal 
       • SIP High Availability (HA). 
       • Geographical Redundancy (HA)
       • SIP Per Request Method Message Rate Limitation (Schützt SIP Server vor SIP Ueberlastung und DoS Attacken)
       • RTP Bypass (RTP Pinholing)
       • SIP NAT
       • IP Topology Hiding

VoIP ist komplizierter als eine normale TCP/UDP-basierte Anwendung. Aufgrund der Komplexität der Signalisierung und der Protokolle bei VoIP sowie der Inkonsistenzen, die sich ergeben, wenn eine Firewall die Quelladress- und Quellportdaten mit NAT ändert, ist es schwierig für VoIP, eine Firewall ungehindert zu überwinden. VoIP verwendet zwei verschiedene Protokolle: eines für die Signalisierung (zwischen dem Client und dem VoIP-Server) und eines für die Medien (zwischen den Clients). Die Port/IP-Adresspaare, die von den Medienprotokollen (RTP/RTCP) für jede Sitzung verwendet werden, werden von den Signalisierungsprotokollen dynamisch verhandelt. Firewalls müssen diese Informationen dynamisch mitverfolgen und warten und zum entsprechenden Zeitpunkt ausgewählte Ports für die Sitzungen auf sichere Weise öffnen und wieder schließen. Mehrere Medienports werden über die Signalisierungssitzung dynamisch verhandelt; die Verhandlungen über die Medienports sind in der Nutzlast der Signalisierungsprotokolle enthalten (IP-Adress- und Portinformationen). Firewalls müssen für jedes Paket eine Deep Inspection durchführen, um diese Informationen zu erhalten und die Sitzungen dynamisch zu warten; dies erfordert zusätzliche Verarbeitungskapazitäten der Firewall.

Die Quell- und Ziel-IP-Adressen sind in die VoIP-Signalisierungspakete eingebettet. Eine Firewall mit NAT-Unterstützung übersetzt IP-Adressen und -Ports auf IP-Header-Ebene für Pakete. Vollsymmetrische NAT-Firewalls passen ihre NAT-Bindungen häufig neu an und können so zufällig die Pinholes schließen, über die eingehende Pakete in das zu schützende Netzwerk gelangen. In diesem Fall kann der Dienstanbieter keine eingehenden Anrufe an den Kunden weiterleiten. Für die erfolgreiche Unterstützung von VoIP muss eine NAT-Firewall eine Deep Packet Inspection durchführen und eingebettete IP-Adress- und Portinformationen bei der Weiterleitung über die Firewall transformieren können. Genau hier setzt der SIP ALG an und übernimmt diese Arbeit in verschiedenen Bereichen dh. Analysiert SIP und SDP Informationen, passt die Packete an (zB für NAT), schützt das Protokoll auf DoS sowie IPS Ebene usw. Bei einigen VoIP Implementierungen die von Hersteller zu Hersteller verschieden sein können kann es zu Problemen kommen dh. zB weil über SIP Befehle gesendet werden die durch den SIP ALG nicht erkannt werden. Diese Befehle -da nicht erkannt- werden als "unknown" eingestuft sowie geblockt. Um zB dies zu verhindern kann die SIP Funktion deaktiviert werden:

       NOTE Security Technisch gesehen ist das enorm Problematisch da zB ohne SIP ALG die Befehle/Kommandos
            innerhalb des SIP Protokolls nicht mehr kontrolliert werden und somit man Angriffen ausgeliefert
            ist! Diesem Umstand ist Rechnung zu tragen!
              
            # config voip profile
            # edit [Name des VoIP Profiles]
            # config sip 
            # set block-unknown disable
            # end

Bei einigen VoIP Herstellern muss das NAT deaktiviert werden (Kein Incoming Audio). Dies wird folgendermassen durchgeführt:

       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set nat-trace disable
       # end

Desweiteren verlangen einige Implementationen, dass die "orginal IP und Port" Informationen der SIP Kontakt Anfrage beibehalten werden dh. diese gehen bei einem NAT (Network Address Translation) verloren. Dies bedeutet eine SIP Kontakt Anfrage sieht orginal folgendermassen aus:

       Contact: <sip:0150302438@172.20.120.110:5060>;

Nun wenn das Packet durch die FortiGate abgearbeitet wird und NAT angewendet wird so sieht das Packet folgendermassen aus:

       Contact: <sip:0150302438@10.10.10.21:33608>;

In diesem Beispiel sieht man, dass die Informationen durch das NAT der FortiGate verändert wurden dh. die IP wurde durch das NAT verändert sowie der Port. Durch die Funktion "enable register-contact-trace" wird durch das VoIP Profile die FortiGate angewiesen diese Informationen NICHT zu verändern dh. die "orginal IP sowie dessen Port" werden mitgegeben. Es wird folgendes angewandt:

       Contact: <sip:0150302438@[nated-ip]:[nated-port];o=[original-ip]:[original-port]>;

Somit wird die SIP Kontakt Anfrage in unserem Beispiel folgendermassen durch die Funktion "enable register-contact-trace" abgearbeitet:

       Contact: <sip:0150302438@10.10.10.21:33608;o=172.20.120.110:5060>;

Um die Funktion einzuschalten dh. "register-contact-trace" führe folgendes durch:

       NOTE Dieser Befehl steht nur unter FortiOS 5.0 / 5.2 zur Verfügung!
       
       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set register-contact-trace enable
       # end

Wie schalte ich für Voip auf einer FortiGate das Extended-UTM-Log ein?

Innerhalb des Voip Profiles kann das UTM Log File für SIP und/oder SCCP aktiviert werden. Dies kann folgendermassen durchgeführt werden:

       NOTE Unter FortiOS 5.2 exestiert die Option "extended-utm-log" nicht mehr. Weitere Informationen
            siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
            Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
       # config voip profile
       # edit [Name des Profile] 
       # set extended-utm-log [enable | disable]
       # config sip
       # set status [enable | disable]
       # set log-violations [enable | disable]
       # set log-call-summary [enable | disable]
       # end
       # config sccp
       # set status [enable | disable]
       # set log-call-summary [enable | disable]
       # set log-violations [enable | disable]
       # end
       # end

Application Control

Wie muss Application Control Service Lizensiert werden?

Die Application Control Service wird über die IPS Lizensierung lizensiert dh. die Signaturen DB der IPS enthält die Informationen der Application Control. Grundsätzlich funktioniert IPS und Application Control auch ohne Lizenz jedoch werden die DB der IPS und/oder Appliaction Control nicht auf den neusten Stand gebraucht.

Wie aktiviere ich für eine bestimmte Applikation/Anwendung die "Application Control"?

Wenn man eine bestimmte Applikation/Anwendung kontrollieren will zB ein Adobe Dokument nimmt man die Funktion "Application Control" zur Hilfe dh. man erstellt ein bestimmtes Profil für die gewünschte Applikation/Anwendung und bestimmt wie mit dieser Applikation/Anwendung verfahren werden soll. Um dies zu konfigurieren gehe folgendermassen vor:

       Datei:Fortinet-33.jpg

Erstelle nun unter "Create New" einen neuen Filter für die bestimmte Application/Anwendung zB Adobe:

       Datei:Fortinet-34.jpg
       
       NOTE Ab FortiOS 5.0.4 stehen neue Menüpunkte innerhalb des Sensors von Application Control zur Verfügung.
            Unter "Filter Based" steht neu die Menüposition "Risk" zur Verfügung. Ebenfalls unter "Filter Based"
            kann man nun zwischen "Basic" und "Advanced" wählen wobei die Position "Advanced" neu ist. Diese
            Menüposition "Advanced" ermöglicht eine weitere Einschränkung resp. Auswahl zwischen "Vendor" und
            Protokollen. Dies bedeutet eine Applikation kann zB geblockt werden auf "Vendor" und/oder "Protokollen"
            Innerhalb der neuen Menüpositionen kann unter "Show more..." die Anzeige erweitert werden. Dadurch wird
            die Konfiguration "Granularer" und "Transparenter":
            
            Fortinet-810.jpg

Es kann auch anstelle eines Filters die Application selber als Basis genommen werden zB You-Tube:

       Datei:Fortinet-35.jpg

Nachdem Abspeichern ergiebt sich folgende Situation:

       Datei:Fortinet-36.jpg

Der entsprechende Sensor ist nun erstellt jedoch fehlt noch die korrekte Aktivierung in der Policy. Dies bedeutet in der entsprechenden Policy/Rule muss nun der entsprechende Sensor aktiviert werden. Editiere zu diesem Zweck die entsprechende Rule zB "internal > wan1" und aktiviere UTM. Danach erscheinen die vers. UTM Features und unter "Enable Application Control" kann der entsprechende Sensor angegeben werden! Um zu kontrollieren "ob" der Sensor anspricht aktiviere in der Policy/Rule "Log Allowed Traffic" und führe einen entsprechenden Test durch!

Wie finde ich heraus welche Applikation am meisten Bandbreite benützt?

Um herauszufinden/zu analysieren welche Applikation am meisten Bandbreite benützt im Netz führe folgendes durch:

       Policy > Policy > Policy
       
       --> Wähle "Column Settings". Verschiebe von der linken Spalte die Position "Count" zur rechten Spalte

Nun ist über die Spalte "Count" in den Policy's ersichtlich welche Policy/Applikation am meisten Bandbreite benützt. Um dies zu "Monitoren" führe folgendes durch:

       --> Erstelle folgendes Profil unter "Application Control":
       
       UTM Profiles > Application Control > Application Sensor
       
       Datei:Fortinet-258.jpg
       Datei:Fortinet-259.jpg
       Datei:Fortinet-260.jpg
       Datei:Fortinet-261.jpg
       Datei:Fortinet-262.jpg
       
       --> Speichere das Profile mit "Apply"
       NOTE Unter FortiOS 5 sieht das Application Sensor Gui ein wenig anderst aus:
            
            Fortinet-842.jpg

Nun das Profil/Sensor ist erstellt und muss nun nur noch in den entsprechenden Policy's die eine hohe Bandbreite haben (Count) aktiviert werden:

       Policy > Policy > Policy
       
       Datei:Fortinet-263.jpg

Alle diese Policy's indenen das Application Profile aktiviert wurden werden im Hintergrund nun überwacht. Diese Uebewachung ist unter folgender Position ersichtlich:

       UTM Profiles > Monitor > Application Monitor

Kann ich wenn der Traffic verschlüsselt ist Application Control aktivieren?

Nähere Informationen findet man über folgenden Artikel:

       Fortigate:FAQ#Kann_ich_wenn_der_Traffic_verschl.C3.BCsselt_ist_.28SSL.29_IPS_aktivieren.3F

Wie kann ich gewährleisten das "basic traffic" wie DNS, icmp usw. über Application Control nicht geblockt wird?

Ab FortiOS 5.0.5 wurde eine neue Funktion implementiert die genau dies gewährleistet dh. Wenn zB ein Application Filter eingesetzt wird der "Network Traffic" blocken soll muss gewährleistet werden das "basic traffic" nicht irrtümlicherweise geblockt wird. Ebenfalls kann die neue Funktion dazu benutzt werden "basic traffic" zu deklarieren der nie über "Application Control" geblockt werden soll. Die Konfiguration wird folgendermassen durchgeführt:

       # config application list
       # edit [Wähle das entsprechende Profile]
       # set options allow-dns allow-icmp allow-http allow-ssl
       # end
       
       NOTE Der einzige Traffic der per Standard aktiviert ist, ist der DNS Traffic! Dazu steht im Application Sensor
            folgende Position zur Verfügung die ebenfalls sofern gewünscht deaktiviert werden kann:
            
            Fortinet-966.jpg

Wie aktiviere ich für Application Control auf einer FortiGate das Extended-UTM-Log?

Innerhalb der Application Controll kann das Extended-UTM-Log aktiviert werden. Dieses wird jedoch nur dann als Extended-UTM-Log File angezeigt, wenn die Logs dem FortiAnalyzer gesendet werden. Um das Extended-UTM-Log File für Application Control zu aktivieren führe folgendes aus:

       # config application list
       # edit [Name des Profile] 
       # set extended-utm-log [enable | disable] 
       # set log [enable | disable]
       # set other-application-log [enable | disable] 
       # set unknown-application-log [enable | disable] 
       # end

NTP / Time / Date

Wie überprüfe/setze ich das Datum und die Zeit einer FortiGate?

       # execute time
       current time is: 05:01:35
       last ntp sync: never
       # execute date
       current date is: 2012-04-03

Um die Zeit resp das Datum anzupassen führe folgndes aus:

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

Wie konfiguriere ich die Zeitzone einer FortiGate?

       # config system global
       # set timezone ?
       
       NOTE Durch "?" werden alle verfügbaren Zeitzonen aufgelistet. Danach kann der richtige Code (Zahl) 
            benutzt werden um die Zeitzone zu setzen!
       
       # set timezone 26
       # end

Wie aktiviere ich den NTP Zeitsynchronisierung auf einer FortiGate?

folgender Befehl wird benttzt für die Aktivierung der NTP Zeitsynchronisierung :

       NOTE Das folgende Beispiel zeigt eine Konfig die ein NTP Server konfiguriert und zwar
            "ch.pool.ntp.org" (360 Sekunden) sowie auf dem "internal" Interface einen NTP
            Service bereitstellt für dieses Segment!
       # config system ntp
       # set ntpsync enable
       # set type custom
       # set syncinterval 360
       # set server-mode enable
       # set interface "internal"
       # config ntpserver
       # edit 1
       # set server "ch.pool.ntp.org"
       # next
       # end
       # end

Logging

Ich sehe in den Logs die Nachricht "The system has entered conserve mode" was bedeuted dies?

Nun wenn in den Logs die Nachricht "The system has entered conserve mode" erscheint ist der Device überlastet (Traffic) oder etwas hat den Device überlastet (Services). Diese Nachricht erscheint in den Logs dann wenn der Device seine Arbeit aus Resourcen Gründen nicht mehr durchführen kann. Wenn dies geschieht sollte erruiert werden WAS den Device zur Ueberlastung bringt. Dabei können folgenden Ueberlegungen hilfreich sein:

       --> Ist das Datenaufkommen (Traffic) für den Device zu hoch?
       --> Wird zuviel geloggt (Devices ohne Disk's loggen 10% des Memory Bereichs danach wird wieder überschrieben)
       --> Sind zuviele Services aktiviert wie IPS, Application Control, AntiVirus usw?

Wenn das Datenaufkommen oder das Logging keine Probleme darstellt so sollte betreffend Services einer nach dem Anderen deaktiviert werden um zu sehen welcher Service für die Ueberlastung zuständig ist. Dabei kann ebenfalls folgendes Hilfreich sein:

       Fortigate:FAQ#Wie_kann_ich_einen_kleinen_Device_von_Fortinet_wie_zB_die_40B_betreffend_Performance_optimieren.3F
       
       Fortigate:FAQ#Wie_kann_ich_die_Prozesse_anzeigen_lassen.3F
       Fortigate:FAQ#Wie_kann_ich_die_Memory_Benutzung_anzeigen_lassen.3F

Gibt es auf dem FortiOS ein "Crash Log" das Informationen enthält nach einem Crash?

Nun wenn unter Linux/Unix ein Crash/Absturz passiert, dann "dumped" das Betriebssystem -sofern konfiguriert- die Information in ein File! Der gleiche Vorgang wird auch auf einer FortiGate durchgeführt dh. das File kann auf der CLI angeschaut werden um bei der Analyse des Crash's wertvolle Infomationen zu liefern. Um das "crash" File anzuschauen führe auf der CLI folgendes aus:

       # diagnose debug crashlog read

Um das "Crash Log file zuückzusetzen benütze folgenden Befehl:

       # diagnose debug crashlog clear

Wie ändere ich im WebGui die "Log Location"?

Um die "Log Location" im WebGui zu ändern führe folgendes durch:

       Datei:Fortinet-119.jpg
       
       NOTE Das Kommando "config log gui" steht für FortiOS 5.0/5.2 nicht mehr zur Verfügung! Stattdessen kann die 
            Log Location ab FortiOS 5.0.3 unter folgender Position geändert werden:
           
            Log & Report > Log Config > Log Settings > GUI Preferences > Display Logs From > [Wähle die entsprechende Position zB Disk]
            
            Steht die Disk unter FortiOS 5.2 nicht zur Verfügung gibt nachfolgender Artikel Auskunft was zu berücksichtigen ist unter
            FortiOS 5.2:
            
            Fortigate:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Um die "Log Location" in der CLI zu ändern führen folgendes durch:

       FortiOS 4 MR3
       # config log gui
       # set log-device [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
       # end
       FortiOS 5.0
       # config log setting
       # set gui-location [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
       # end
       FortiOS 5.2
       # config log gui-display
       # set location [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
       # set resolve-hosts [enable | disable]
       # set resolve-apps [enable | disable]
       # end
       NOTE Die Anweisung "forticloud" steht ab der V4.3 Patch 12 zur Verfügung! Wie die Aenderung
            der "Log Location" für eine VDom durchgeführt werden muss siehe Artikel:
            
            Fortigate:FAQ#Wie_.C3.A4ndere_ich_in_einer_VDom_die_.22Log_location.22.3F

Wie schalte ich auf einer FortiGate das Logging auf der Disk ein?

Erste Voraussetzung damit auf der Disk die Logs abgelegt werde ist eine einwandfreie formatierte Disk auf der FortiGate. Berücksichtige dabei, dass nicht alle FortiGate's über eine Disk, sei es Flash oder HD, verfügen. Um eine Disk einwandfrei zu formatieren führe folgendes aus:

       NOTE Wird FortiOS 5.2 eingesetzt und der Device (FortiGate 100D und kleiner) verfügt zwar über eine Disk jedoch
            diese kann für das Logging nicht eingesetzt werden muss nachfolgender Artikel berücksichtigt werden:
            
            Fortigate:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
       # execute formatlogdisk
       Log disk is /dev/sdb4
       Formatting this storage will erase all data on it, including
         Logs, quarantine files;
         WanOpt caches;
       and requires the unit to reboot.
       Do you want to continue (y/n)
       
       NOTE Wenn die Disk bereits in Gebrauch war, wird dort die SQL DB, Logs, Reportings usw. abgelegt. Formatiert man die
            Disk gehen diese Informationen unwiederruflich verloren dh. bei einem Neustart wird die SQL DB von Grundauf neu
            angelegt! Dieser Vorgang kann ebenfalls dann genutzt werden, wenn die SQL DB Korrupt ist jedoch mit dem Umstand,
            dass ALLE Daten verloren gehen!

Nachdem Formatieren und Neustart kann die Disk mit folgenden Befehl überprüft werden:

       # execute disk list

Nun kann das Logging auf der Disk eingeschaltet werden:

       # config log disk setting
       # set status enable
       # end
       
       NOTE Mit dem Befehl "show full" können die verschiedenen Konfigurations Möglichkeiten abgefragt werden für "log disk setting"!
            Die Konfiguration sowie die Formatierung ist ebenfalls über WebGui möglich dh. unter folgender Position:
            
            System > Config > Advanced
            
            Dort kann ebenfalls -sowie unter der CLI- verschiedenen Quotas betreffend den Logs gesetzt werden!

Wie schalte ich auf einer FortiGate das Logging im Memory ein?

Folgendes Kommando in der CLI wird benützt um das Logging im Memory zu aktivieren:

       NOTE Dieser Befehl steht ab FortiOS 5.0 sowie 5.2 nicht mehr bei allen Devices zur Verfügung dh. die 
            Software Matrix gibt Auskunft ob die Funktion des "Memory Logging" beim entsprechenden Device 
            noch zur Verfügung steht:
            
             FortiOS Software Matrix
       FortiOS 5.0
       # config log memory setting 
       # set status enable
       # set diskfull overwrite
       # set ips-archive enable
       # end
       FortiOS 5.2
       # config log memory setting 
       # set status enable
       # set diskfull overwrite
       # end

Wenn das Logging im Memory aktiviert wird so werden 10% des zur Verfügung stehenden Memory's benutzt für das Logging. Ist dieser Bereich aufgebraucht wird der Bereich erneut überschrieben dh. durch die Funktion "set diskfull overwrite". Wird ein Neustart des Device's durchgeführt -und Memory Logging ist aktiviert- so wird durch den Neustart das Memory gelöscht und somit auch sämtliche Logs die vorhanden waren. Zusätzlich kann für das Memory Logging eine Warning (5.0 / 5.2) sowie die Grösse konfiguriert werden:

       # config log memory global-setting
       # set full-final-warning-threshold [Setze den thresold 3 - 100; Standard 95]
       # set full-first-warning-threshold [Setze den thresold 1 - 98; Standard 75]
       # set full-second-warning-threshold  [Setze den thresold 2 - 90; Standard 99]
       # set max-size [Setze den maximum Buffer in Bytes; Standard 65536]
       # end

Wenn ein Disk Logging aktiviert ist sollte darauf geachtet werden nicht zusätzlich im Memory zu loggen. Informationen betreffend Disk Logging siehe Artikel:

       Fortigate:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_auf_der_Disk_ein.3F

Wie kann ich eine Verbindung/Logging zum FortiAnalyzer konfigurieren?

       # config log fortianalyzer setting
       # set status enable
       # set ips-archive enable
       # set server [IPv4 Adresse des FortiAnalyzers]
       # set enc-algorithm default
       # set localid [Lokale ID zB Name der Firewall]
       # set conn-timeout [Timout für die Verbindung; Standard 10]
       # set monitor-keepalive-period [Standard 5]
       # set monitor-failure-retry-period [Standard 5]
       # set source-ip [Source IP der Firewall; Standard 0.0.0.0]
       # set upload-option realtime
       # set reliable enable
       # end
       NOTE Diese Konfiguration "realtime" bedeutet, dass die Logs "real-time" zum FortiAnalyzer gesendet wird.
            Wird unter "upload-option" nicht "realtime" sondern "store-and-upload" gesetzt werden die Disk auf der
            Disk zwischengespeichert und dann zu einem gesetzten Zeitpunkt zum FortiAnalyzer hochgeladen (upload-interval).
            Die Option "store-and-upload" kann jedoch nur konfiguriert werden für Devices die über eine Disk verfügen
            sowie auf Disk das "Logging" aktivieren können. Unter FortiOS 5.2 wurde das "Logging" auf Disk für Devices
            kleiner als FortiGate 100D deaktiviert und somit kann diese Option für diese Devices nicht gesetzt werden.
            Weitere Informationen betreffend FortiOS 5.2 und Logging findet man im nachfolgenden Artikel:
            
            Fortigate:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Gibt es für die Fortigate ein Dokument betreffend Log Referenzen?

Nachfolgendes Dokument gibt Aufschluss über die Log Referenz einer Fortigate:

       Datei:FortiGate Log Message Reference.pdf

Kann man bei einem Fortigate Device das Logging optimieren?

Startend mit MR3 Patch 7 wurde das Logging und Reporting auf Fortigate Devices optimiert. Um basierend auf diesem Patch Level eine weitere Optimierung zu erzielen sieh folgendes Dokument:

       Datei:FortiOS-v4+0-MR3-Logging-Optimization.pdf

Das Kommando "diagnose log test" kann nicht unter FortiOS 5.0.2 ausgeführt werden?

Dieser Befehl testet die Log Funktionen dh. wird dieser Befehl auf der Kommandozeile ausgeführt, wird für jedes existierende Log ein Log Eintrag erstellt. Dies bedeutet anhand dieses Befehls kann die Log Funktion zB für Syslog, FortiAnalyzer etc. getestet werden.

        NOTE "diagnose log test" steht aber FortiOS 5.0.2 nicht mehr zur Verfügung. Ein ähnlicher oder gleichfertiges
             Kommando ist in Planung (Fortinet Mantis #0194888)! Dies sollte für den Release 5.0.4 der Fall sein dh.
             neuste Informationen bestätigen, dass das Kommando "diagnose log test" wiederum implementiert wird. Mit dem
             Release 5.0.4 wurde der Befehl "diagnose log test" wiederum eingeführt (unverändert wie in der Vergangenheit)!

Wie kann ich auf einer Fortigate die Logs zusätzlich einem Syslog Server senden?

Ausgehend davon, dass wir einen "syslog" Server haben basierend auf CentOS 5.0 / 5.2 ist folgendermassen vorzugehen damit die Fortigate die Logs diesem Syslog Server sendet:

       FortiGate Konfiguration
       # config log syslogd setting
       # set status enable
       # set server [FQDN Syslog Server]
       # set reliable [Aktiviere TCP-514 Verbindung; Per Standard deaktiviert resp. UDP-514]
       # set port [Standard 514]
       # set csv [enable | disable]
       # set facility [Per Standard local0]
       # set source-ip [Source IP der FortiGate; Standard 0.0.0.0]
       # end
       
       Um auf der FortiGate einen Syslog Server Filter zu setzen siehe nachfolgenden Artikel:
       
       Fortigate:FAQ#Wie_kann_ich_nur_bestimmte_Informationen_betreffend_Logging_zu_einem_Syslog_Server_senden.3F
       Syslog Server Konfiguration CentOS 5.X
       - Als Erstes muss auf dem CentOS der "syslog" Server so konfiguriert werden damit er von einem 
         Remote Server "syslog" Nachrichten überhaupt annimmt. Führe folgendes durch:
         
         # vi /etc/sysconfig/syslogd
         
         --------------- /etc/sysconfig/syslogd ---------------
         
         # Options to syslogd
         # -m 0 disables 'MARK' messages.
         # -r enables logging from remote machines
         # -x disables DNS lookups on messages recieved with -r
         # See syslogd(8) for more details
         SYSLOGD_OPTIONS="-m 0 -r"
         # Options to klogd
         # -2 prints all kernel oops messages twice; once for klogd to decode, and
         #    once for processing with 'ksymoops'
         # -x disables all klogd processing of oops messages entirely
         # See klogd(8) for more details
         KLOGD_OPTIONS="-x"
         #
         SYSLOG_UMASK=077
         # set this to a umask value to use for all log files as in umask(1).
         # By default, all permissions are removed for "group" and "other".
         
         --------------- /etc/sysconfig/syslogd ---------------
         
         NOTE Aktiviere unter "SYSLOGD-OPTIONS" den Schalter -r denn dieser ist zuständig damit überhaupt
              Remote Server Syslog Nachrichten entgegengenommen werden!
         
         - Nun legen wir ein neues Log an und konfigurieren im "syslog" Server WELCHE Nachrichten entgegengenommen
           werden sollen. Zu diesem Zweck definieren wir eine "Facility" dh. "local0.*. Diese Facility definieren 
           wird später ebenfalls auf der Fortigate. Durch die Differenzierung über die Facility können vers. Fortigate's
           diesem "syslog" Server Nachrichten senden und somit die vers. Log's unterschieden werden:
         
         # vi /etc/syslog.conf
         
         --------------- /etc/syslog.conf ---------------
         
         # Log all kernel messages to the console.
         # Logging much else clutters up the screen.
         kern.*                                                  /dev/console
         
         # Log anything (except mail) of level info or higher.
         # Don't log private authentication messages!
         auth.info;authpriv.info;cron.info;daemon.info;ftp.info;kern.info;lpr.info;mark.info;news.info;security.info;syslog.info;user.info;uucp.info;mail.none;authpriv.none;cron.none                /var/log/messages
         
         # The authpriv file has restricted access.
         authpriv.*                                              /var/log/secure
         
         # Log all the mail messages in one place.
         mail.*                                                  /var/log/maillog
         
         # Log cron stuff
         cron.*                                                  /var/log/cron
         
         # Everybody gets emergency messages
         *.emerg                                                 *
         
         # Save news errors of level crit and higher in a special file.
         uucp,news.crit                                          /var/log/spooler
         
         # Save boot messages also to boot.log
         local7.*                                                /var/log/boot.log
         
         # Save Fortigate log messages to fortigate.log
         local0.*                                                /var/log/fortigate.log
         
         #*.*                                                    @loghost
         
         --------------- /etc/syslog.conf ---------------
         
         NOTE Beachte dabei, dass die Leerschläge/Zwischenräume "gezwungenermassen" (Fileformat) Tabulatoren
              sein müssen! Um das Format zu überprüfen kann folgender Befehl abgesetzt werden:
              
              # m4 -D LOGHOST /etc/syslog.conf
        
         - Nun legen wir das entsprechende Log an und versehen es mit den nötigen Rechten. Danach kann der "syslog" 
           Service neu gestartetn werden um die Konfiguration zu aktivieren:
         
         # touch /var/log/fortigate.log
         # chmod 644 /var/log/fortigate.log
         # chown root:root /var/log/fortigate.log
         
         # service syslog stop
         # service syslog start
         
         - Um das Log in Echtzeit anzuschauen führe folgenden Befehl aus (um abzubrechen benütze Ctrl + C):
         
         # tail -f /var/log/fortigate.log
         
         - Als Nächstes müssen wir die Fortigate anweisen die Logs diesem konfigurierten "syslog" Server zu senden dh. 
           führe folgendes durch:
         
         Log&Report > Log Config > Log Setting
         
         --> Aktiviere die Position "Syslog"
         --> Definiere die "syslog" Server IP oder den FQDN
         --> Definiere den Port 514
         --> Setze den "Minimum log level" auf Information
         --> Setze die "Facility" auf die Definition die wir im File "syslog.conf definiert haben dh. local0
         --> Aktiviere die Position "Enable CSV Format"
         --> Bestätige die Konfiguration
         
         NOTE Für die Uebermittlung der Log Nachrichten zum "syslog" Server benötigen wir KEINE Policy da der Traffic
              von der Fortigate selber initiert wird. In bestimmten Konstellation kann des vorkommen, dass die "syslog"
              Nachrichten mit der falschen Source IP dem "syslog" Server gesendet werden dh. um diese Source IP zu 
              manipulieren siehe folgender Artikel:
        
              Fortigate:FAQ#Wie_kann_ich_die_Source_IP_setzen_f.C3.BCr_Fortigate_eigene_initierte_Mgmt._Service_.28SNMP_.2C_Syslog_.2C_FortiAnalyzer_.2C_Alert_Email_.2C_FortiManager.29.3F
         
         - Nun sollten die Nachrichten auf dem "syslog" Server gesendet werden und diese sollten im Log "fortigate.log" 
           ersichtlich sein. Um dies zu testen resp. Test Nachrichten zu generieren kann folgender Befehl benützt werden:
         
         # diagnose log test
         
         NOTE Weitere Informationen zum Kommando "diagnose log test" siehe folgender Artikel:
              
              Fortigate:FAQ#Das_Kommando_.22diagnose_log_test.22_kann_nicht_unter_FortiOS_5.0.2_ausgef.C3.BChrt_werden.3F
         
         - Kommt es dabei zu Problem und es muss verifiziert werden "ob" die Fortigate diese "syslog" Nachrichten überhaupt
           sendet benütze folgenden Befehl:
         
         # tcpdump -nnp -i eth0 ip dst [Syslog Server IP] and port 514
         
         - Um das Log "/var/log/fortigate.log" Täglich zu rotieren ergänze das File "/etc/logrotate.conf" um folgenden Eintrag:
           
         # vi /etc/logrotate.conf
         
         --------------- /etc/logrotate.conf ---------------
         
         /var/log/fortigate.log {
               rotate 30
               daily
               sharedscripts
               postrotate
               nomail
                       /usr/bin/killall -HUP syslogd
               endscript
         }
         
         --------------- /etc/logrotate.conf ---------------

Wie kann ich nur bestimmte Informationen betreffend Logging zu einem Syslog Server senden?

Nun wenn ein Syslog Server konfiguriert wird so werden per Standard alle Events zum Syslog Server gesendet. Sollen nur bestimmt Informationen zum Syslog Server gesendet werden so kann der "syslogd filter" benutzt werden um zu bestimmen "welche" Informationen gesendet werden sollen:

       NOTE Diese Konfigurations Möglichkeit gilt für FortiOS 5.0 / 5.2!
       # config log syslogd filter
       # get
       severity                 : information
       forward traffic          : enable
       local-traffic            : enable
       multicast-traffic        : enable
       sniffer-traffic          : enable
       anomaly                  : enable
       netscan-discovery        : enable
       netscan-vulnerability    : enable
       voip                     : enable

Für FortiOS 4 MR3 gilt für die Konfiguration eines Filter folgendes:

       # config log syslogd filter
       # get
       app-ctrl            : enable
       attack              : enable
       dlp                 : enable
       email               : enable
       forward-traffic     : enable
       invalid-packet      : enable
       local-traffic       : enable
       netscan             : enable
       severity            : information
       traffic             : enable
       virus               : enable
       voip                : enable
       web                 : enable
       analytics           : enable
       anomaly             : enable
       app-ctrl-all        : enable
       blocked             : enable
       discovery           : enable
       dlp-all             : enable
       dlp-docsource       : enable
       email-log-google    : enable
       email-log-imap      : enable
       email-log-msn       : enable
       email-log-pop3      : enable
       email-log-smtp      : enable
       email-log-yahoo     : enable
       ftgd-wf-block       : enable
       ftgd-wf-errors      : enable
       infected            : enable
       multicast-traffic   : enable
       oversized           : enable
       scanerror           : enable
       signature           : enable
       suspicious          : enable
       switching-protocols : enable
       url-filter          : disable
       vulnerability       : enable
       web-content         : enable
       web-filter-activex  : enable
       web-filter-applet   : enable
       web-filter-command-block: enable
       web-filter-cookie   : enable
       web-filter-ftgd-quota: enable
       web-filter-ftgd-quota-counting: enable
       web-filter-ftgd-quota-expired: enable
       web-filter-script-other: enable

Um ein Filter zu aktivieren resp. deaktivieren benutze:

       # set [Filter Name] [enable oder disable]

Wie kann ich für bestimmte Log Devices wie Disk, Memory usw. Log Filter setzen?

Unter FortiOS 5.0 / 5.2 steht ein Eventfilter zur Verfügung um Grundsätzlich bestimmte Logs wie System, Wireless etc. zu aktiveren/deaktivieren (per Standard alle aktiviert):

       # config log eventfilter
       # set event enable
       # set system enable
       # set vpn enable
       # set user enable
       # set routr enable
       # set wireless-activity enable
       # set wan-opt enable
       # end

Eine weitere Möglichkeit ist auf den "Log Devices" einen Filter zu setzen für bestimmte Log Einträge bedeutet:

       # config log [disk, memory, fortianalyzer, syslogd] filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end

Kann ich den Memory Bedarf im Zusammenhang mit dem Logging optimieren?

Nun der Memory Bedarf steht im direkten Zusammenhang mit dem Logging dh. wenn viel geloggt wird (Hoher I/O resp. Input/Output) und die SQL Database wächst steigt der Memory Bedarf. Dies kann in dem Sinne optimiert werden indem man die maximale Grösse der SQL Datenbank begrenzt. Die minimale Grösse beträgt 512 MB sowie die maximal Grösse 65536 MB. Die Standard Grösse die Konfiguriert ist beträgt 1024 MB für FortiOS 4.3 sowie 100 MB für FortiOS 5.0/5.2. Um die Grösse anzupassen benütze folgenden Befehl:

       FortiOS 4.3.x:
       # config system global
       # set max-sql-log-size [Angabe der Grösse dh. "1 - 65536"; Default 1024]
       # end
       FortiOS 5.0:
       # config log disk setting
       # set sql-max-size [Angabe der Grösse dh. "1 - 65536"; Default 100]
       # end
       
       NOTE Unter FortiOS 5.2 existiert die Option "sql-max-size" nicht mehr!

Eine weitere Möglichkeit das Memory zu optimieren ist die zur Verfügung stehenden SQL Filter anzupassen dh. WAS in die SQL Database geloggt werden soll und was nicht:

       # config log disk setting
       # config sql-logging
       # set app-ctrl
       # set attack disable
       # set dlp disable
       # set netscan disable
       # set spam disable
       # set traffic disable
       # set virus disable
       # set webfilter disable
       # end
       
       NOTE Ab FortiOS 5.2 existiert die Option "config sql-logging" nicht mehr!

Kann ich die SQL Datenbank für das Logging neu Initialisieren?

Das Logging einer FortiGate geschieht in einer SQL Database. Wenn es aus irgendwelchen Gründen nötig wird diese neu zu initialisieren kann folgender Befehl dazu ausgeführt werden:

       # execute log recreate-sqldb
       This will recreate the SQL log database.
       All local logs recoreded with SQL logging will be deleted!
       Do you want to continue? (y/n) y
       SQL log database is being recreated in the background
       
       NOTE Diese Kommando existiert unter FortiOS 5.2 nicht mehr!

Kann man die Logs die das System selber produziert deaktivieren?

Das System selber produziert Logs wenn zB der NTP Server kontaktiert werden oder zB FortiGuard! Dieser Traffic läuft über die sogenannten "Local-In Policy". Dies bedeutet es existieren System bedingte Loca-In Policy und/oder Manuelle. Möchte man diese aktivieren und/oder deaktivieren steht folgende Konfiguration zur Verfügung um dies zu gewährleisten:

       NOTE Ab 5.2 steht die erwähnte Funktion für 100D und kleiner nicht mehr über 
            Gui zur Verfügung sondern nur noch über CLI:
            
            Log & Report > Log Config > Log Settings > Local Traffic Logging
            
            Möchte man die Funktion auf Kommandozeile manipulieren so benütze folgende Befehle:
            
            FortiOS 5.0
            # config log setting
            # fwpolicy-implicit-log [enable oder disable]
            # fwpolicy6-implicit-log [enable oder disable]
            # set local-in-allow [enable oder disable]
            # set local-in-deny [enable oder disable]
            # set local-out [enable oder disable]
            # end
            
            FortiOS 5.2
            # config log setting
            # fwpolicy-implicit-log [enable oder disable]
            # fwpolicy6-implicit-log [enable oder disable]
            # set local-in-allow [enable oder disable]
            # set local-in-deny-unicast [enable oder disable]
            # set local-in-deny-broadcast [enable oder disable]
            # set local-out [enable oder disable]
            # end

Weitere Informationen zur Thematik Local-In Policy siehe folgender Artikel:

       Fortigate:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F]]

Wie konfiguriere ich auf einer FortiGate eine Log-Rotation?

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

       # config log disk setting
       # set roll-schedule [daily oder weekly]
       # set roll-time [ Gebe die Zeit an im Format hh:mm]
       
       # get
       status              : enable 
       ips-archive         : enable 
       log-quota           : 1024
       dlp-archive-quota   : 500
       report-quota        : 50
       upload              : disable 
       upload-format       : compact 
       drive-standby-time  : 0
       full-first-warning-threshold: 75
       full-second-warning-threshold: 90
       full-final-warning-threshold: 95
       max-log-file-size   : 100
       storage             : (null)
       roll-schedule       : daily 
       roll-time           : 00:00
       diskfull            : overwrite
       # end

Wie kann ich automatisiert die Log Files auf einen FTP Server/FortiAnalyzer spielen?

Wenn die Log Files auf einer Fortigate automatisiert auf einen FTP Server gespielt werden sollen muss zuerst eine Log-Rotation eingerichtet werden. Dazu führe folgendes aus:

       Fortigate:FAQ#Wie_konfiguriere_ich_eine_Log-Rotation.3F

Danach steht folgendes zur Verfügung für die Konfiguration:

       # set upload [Aktiviere oder Deaktiviere einen Upload der File anhand "enable oder disable"]
       # set upload-delete-files [Aktiviere oder Deaktiviere die Löschung der Logs lokal auf der Fortigate "nach" dem Upload anhand "enable oder disable"]
       # set upload-destination [Gebe das Ziel an für den Upload dh. "rortianalyzer oder "ftp-server"]
       # set upload-format [Gebe an ob die Log Files beim Upload Komprimiert werden sollen anhand "compact oder text"]
       # set upload-ssl-conn [Gebe an sofern ein FortiAnalyzer für den Upload benutzt wird wie Verschlüsselt werden soll dh. "default | high | low | disable"]
       # set uploaddir [Gebe das Upload Verzeichnis an in der Form zB /Log-Archiv/ ]
       # set uploadip [Wenn ein FTP Server benutzt wird für den Upload gebe die IP Adresse des FTP Server an]
       # set uploaduser [Wenn ein FTP Server benutzt wird für den Upload gebe den Usernamen des FTP Server an]
       # set uploadpass [Wenn ein FTP Server benutzt wird für den Upload gebe das Passwort des FTP Server an]
       # set uploadport [Wenn ein FTP Server benutzt wird für den Upload gebe den benutzten Port des FTP Server an]
       # set uploadsched [Aktiviere oder Deaktiviere den Upload zu einer bestimmten Zeit dh. anhand "disable | enable"]
       
       NOTE Wenn "uploadsched" deaktiviert ist wird per Standard der Upload "nach" dem rotieren den Log Files ausgeführt!
       
       # set uploadtime [Gebe hier eine spezifische Upload Zeit an in Form hh:mm sofern "uploadsched" auf enabled steht]
       # set uploadtype [Gebe an "welche" File berücksichtigt werden sollen für den Upload dh. "attack event im spamfilter traffic virus voip webfilter"]
       # set uploadzip [Gebe an ob die Log Files "nach" dem Upload anhand ZIP Komprimiert werden sollen dh "disable | enable"]
       
       ACHTUNG Mit der Option "source-ip" kann die Source IP angegeben werden mit der die FortiGate Ihren 
               Request zum FTP Server absetzt!

Daraus ergiebt sich zB folgendes Scenario:

       # config log disk setting
       # set upload enable
       # set upload-delete-files disable
       # set upload-destination ftp-server
       # set uploaddir /log-archive/
       # set uploadip 193.193.135.65
       # set uploaduser local.intra
       # set uploadpass only4also
       # set uploadport 21
       # set uploadsched disable
       # set uploadtype traffic event virus webfilter IPS spamfilter dlp-archive anomaly voip dlp app-ctrl netscan
       # set uploadzip enable
       
       # get
       status              : enable 
       ips-archive         : enable 
       log-quota           : 1024
       dlp-archive-quota   : 500
       report-quota        : 50
       upload              : enable 
       upload-destination  : ftp-server 
       uploadport          : 21
       source-ip           : 0.0.0.0
       uploadpass          : *
       uploaddir           : /log-archive/ 
       uploadtype          : traffic event virus webfilter attack spamfilter dlp-archive dlp app-ctrl 
       uploadzip           : enable 
       upload-format       : compact 
       uploadsched         : disable 
       uploadtime          : 0
       drive-standby-time  : 0
       upload-delete-files : disable 
       full-first-warning-threshold: 75
       full-second-warning-threshold: 90
       full-final-warning-threshold: 95
       max-log-file-size   : 100
       storage             : (null)
       roll-schedule       : daily 
       roll-time           : 00:00
       diskfull            : overwrite 
       uploadip            : 193.193.135.65
       uploaduser          : local.intra 
       # end

Nach der Uebertragung werden die Files in folgender Form abgelegt (Beispiel Traffic Log):

       tlog.FGT60C3G12013754.root.20120927000000.gz
       NOTE Wurden die Logs von der FortiGate auf einen zB FTP Server wegkopiert können diese nicht mehr für eine
            Analyze zurück auf die FortiGate kopiert werden. Ebenfalls können die Logs nicht auf einen FortiAnalyzer
            Zwecks Analyse kopiert werden sofern der Device resp. die FortiGate nicht im FortiAnalyzer konfiguriert
            wurde. Auch wenn der Device resp. die FortiGate auf dem FortiAnalyzer konfiguriert wurde müssen Zwecks
            Analyse die Logs auf dem FortiAnalyzer importiert werden! Wenn Logs lokal nachträglich analysiert werden
            sollen kann ein Tool wie "Splunk" zur Hilfe genommen werden (http://www.splunk.com).

Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird das Logging bei kleineren Devices (100D und kleiner) deaktiviert?

Bei kleineren Devcies wie zB 40C, 60C/D kann das Logging durchaus ein Problem darstellen dh. betreffend Performance und betreffend beanspruchung des Devices. Dies bedeutet wenn ein kleineren Device relativ stark belastet wird und alles geloggt wird kann es nach längeren Zeit zu Problemen mit der Disk (flash-disk) kommen (zB Block NAND error). Aus diesem Grund sollte nur das geloggt werden was wirklich Sinn macht! Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird aus diesem Grund das "local disk" Logging komplett deaktiviert dh. es wird durch den Patch folgender Befehl abgesetzt:

       # config log disk setting
       # set status disable
       # end
       
       NOTE Untr FortiOS 5.2 wurde das Logging für FortiGate 100D auf Disk komplett deaktiviert. Weitere
            Informationen siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Ein entsprechenden Hinweis sieht man in den "Release Notes":

       Datei:FortiOS-v4.0-MR3-Patch-Release-12-Release-Notes.pdf
       Datei:FortiOS-v5.0-Patch-Release-2-Release-Notes.pdf

Dort wird ebenfalls daraufhingewiesen, dass bei allen aufgeführten Devices nach dem Upgrade ein entsprechender Hinweis eingeblendet wird sei es über Gui oder über CLI (ausgenommen bei Geräten der 80C Reihe):

       GUI:
       Datei:Fortinet-698.jpg
       CLI:
       For optimal performance of your FortiGate unit, disk logging has been disabled during upgrade. It is recommended 
       to enable logging to FortiCloud on this unit to utilize the extended logging & reporting capabilities.

Dies bedeutet: Fortinet empfiehlt den Kunden das Logging für "FortiCloud" (oder FAMS) zu aktivieren. Weitere Informationen siehe Artikel:

       Fortigate:FAQ#Was_ist_unter_FortiCloud_.28FAMS.2C_Fortinet_Analys_and_Mgmt._System.29_zu_verstehen.3F

Ebenfalls kann im Gui "neu" der Log Devices für FortiCloud (set log-device forticloud) gesetzt werden:

       Fortigate:FAQ#Wie_.C3.A4ndere_ich_im_WebGui_die_.22Log_Location.22.3F

Wenn weiterhin auf der Disk geloggt werden soll so muss diese Funktion wieder aktiviert werden:

       # config log disk setting
       # set status enable
       Enabling disk logging on this FortiGate unit will impact overall performance and reduce the lifetime of the unit. Fortinet recommends logging to FortiCloud.
       # end
       
       NOTE Wurde innerhalb der Konfiguration "config log disk setting" zusätzliche Konfigurationen durchgeführt wie zB eine
            Log-Rotation so sind diese Informationen nach eine Upgrade verloren da diese durch die Deaktivierung gelöscht werden.
            Sind die Informationen nicht mehr vorhanden können diese im Backup des Konfig File verifiziert werden!

Ab FortiOS 5.2 wird das Logging auf Disk (FortiGate 100D und kleiner) deaktiviert und Disk steht nicht mehr zur Verfügung?

Unter FortiOS 5.2 wurden betreffend Logging mehrere Modifikationen durchgeführt. Dies betrifft "nicht nur" das Format sondern für das "effektive" Logging selber! Dies bedeutet das "flash-based" Logging (Disk) wurde komplett deaktiviert für folgende Modelle:

       NOTE Bei einem Upgrade von FortiOS 5.0.6/7 auf FortiOS 5.2 erscheint auf der Console folgende Meldung:
            
            For optimal performance of your FortiGate unit,
            disk logging and reporting features have been disabled during upgrade.
            It is recommended to enable logging to FortiCloud on this unit
            to utilize the logging & reporting capabilities.
       • FG-100D (P09340-04 or earlier)
       • FG-20C
       • FG-20C_ADSL_A
       • FG-200B/200B_POE (Without FSM)
       • FG-300C_Gen1 (P09616-04 or earlier)
       • FG-40C
       • FG-60C
       • FG-60C-POE
       • FG-60C-SFP
       • FG-70D
       • FG-60D
       • FG-80C/80CM (P05403-05, P05446-05)
       • FW-20C
       • FW-40C
       • FW-20C_ADSL_A
       • FW-60CX_A
       • FW-60C
       • FW-60CM (P08962-04 or later)
       • FW-60CX_ADSL-A
       • FW-60D
       • FW-60D-POE
       • FW-80CM (P05405-06 or later)
       
       NOTE Um für die Devices die "System Part Number" zu erruieren dh. zB "P09340-04" kann
            folgender Befehl auf der CLI ausgeführt werden:
              
            # get system status | grep Part-Number

Somit wenn in der Version 5.0.x und tiefer für untere Modelle ein "flash-based" Logging konfiguriert wurde, muss diese Konfiguration modifiziert werden dh. es stehen folgende Logging Device's zur Verfügung:

       Memory Logging
       FortiAnalyzer
       FortiCloud
       Syslog
       
       NOTE Weitere Informationen betreffend Logging auf Memory -sowie "was" konfiguriert werden kann für das Logging- siehe folgender Artikel:
            
            Fortigate:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_im_Memory_ein.3F
            
            Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Weitere Informationen auf welchem Device welche Log Methode zur Verfügung steht siehe nachfolgenden Artikel:

        FortiOS 5.2 Software Matrix

Wird bei solchen Device's die Disk anhand folgenden Befehls überprüft erscheint folgendes:

       # get system status | grep Log
       Log hard disk: not available

Dies bedeutete in früheren Versionen, dass man die Disk -sofern überhaupt vorhanden- formatieren musste. Dies ist nachwievor möglich anhand folgenden Befehls:

       # execute formatlogdisk
       
       NOTE Wird dies durchgeführt, dann wird die Disk zwar formatiert und ein Neustart ausgeführt jedoch 
            erscheint eine Fehlermeldung:
            
            The system is going down Now!
            Error while writing disk.chk 2(No such file or directory)

Was bedeuten die neuen Logging Options in der Security Policy ab FortiOS 5.02?

Bis anhin konnte in der Policy das Logging entweder aktiviert oder deaktivert werden. Ab FortiOS 5.02 / 5.2 hat man die Möglichkeit verschiedenen Logging Options im Web Gui zu wählen. Nachfolgend eine Beschreibung was diese Optionen im Logging beinhalten sowie die entsprechenden Befehle auf der Kommandozeile:

       • No Log         -> Es werden keine Traffic Logs geschrieben für diese Security Policy.
                           
                           # config firewall policy
                           # edit [Gebe die entsprechende Policy ID an]
                           # set logtraffic disable
                           # end
       • Log UTM        -> Es werden nur Traffic Logs geschrieben für diese Security Policy sowie 
                           für diese UTM Funktionen die aktiviert sind wie zB AntiVirus, WebFilter, 
                           Application Control.
                           
                           # config firewall policy
                           # edit [Gebe die entsprechende Policy ID an]
                           # set logtraffic utm
                           # end
       • Log all        -> Es werden alle Traffic Logs geschrieben für diese Security Policy sei es 
                           Traffic Log sowie UTM Funktionen die aktiviert sind. Wenn diese Option 
                           aktiviert ist kann ein "Capture Packet" durchgeführt werden.
                           
                           # config firewall policy
                           # edit [Gebe die entsprechende Policy ID an]
                           # set logtraffic all
                           # end

Wie kann ich alle Logs zurücksetzen resp. löschen?

Folgender Befehl löscht "alle" Logs unwiederuflich:

       # execute log delete-all
       
       NOTE Verfügt der Device über keine Harddisk und es wird im Memory geloggt, werden
            ebenfalls diese Logs im Memory durch diesen Befehl gelöscht.

Nach Eingabe des Kommandos muss bestätigt werden damit die Logs zurückgesetzt resp. gelöscht werden. Alle Logs gehen unwiederruflich verloren.

Wie kann ich bestimmte Logs in einer bestimmten Kategorie auf CLI auflisten?

       # execute log list [Angabe der entsprechenden Kategorie]
       
       NOTE Kategorien sind: traffic, event, virus, webfilter, attack, spam, content, im, voip, dlp, and app-ctrl.

Wie aktiviere ich auf einer FortiGate das "Extended-UTM-Log"?

Das "Extended-UTM-Log" steht ab FortiOS 5.0 zur Verfügung und loggt Events in den vers. spezifizierten Kategorieren wie Antivirus, IPS usw. in spezielle sperate Logs. Nachfolgende Artikel geben Auskunft wie das Log in den vers. Kategorieren aktiviert wird:¨

       NOTE Ab FortiOS 5.2 existiert das Kommando "extended-utm-log" nicht mehr! Dies bedeutet: Diese
            Konfiguration anhand "extended-utm-log" muss nicht mehr durchgeführt werden sondern ist 
            per Standard das normale Log Verhalten unter FortiOS 5.2. Dies wiederum bedeutet FortiOS 5.2
            loggt per Standard in "seperate" (wie extended-utm-log enabled) Log Files.
       Fortigate:FAQ#Wie_schalte_ich_f.C3.BCr_einen_DLP_Sensor_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       Fortigate:FAQ#Wie_schalte_ich_f.C3.BCr_Antivirus_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       Fortigate:FAQ#Wie_schalte_ich_f.C3.BCr_WebFilter_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       Fortigate:FAQ#Wie_schalte_ich_f.C3.BCr_eine_Spamfilter_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       Fortigate:FAQ#Wie_schalte_ich_f.C3.BCr_Voip_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       Fortigate:FAQ#Wie_aktiviere_ich_f.C3.BCr_die_SSL_Proxy_Options_auf_einer_FortiGate_das_Extended-UTM-Log.3F
       Fortigate:FAQ#Wie_aktiviere_ich_f.C3.BCr_Application_Control_auf_einer_FortiGate_das_Extended-UTM-Log.3F

Desweiteren -betreffend Log Konfiguration- empfehlen wir folgenden Artikel einzusehen:

       Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wie kann ich verhindern das ein Usernamen in den Log's angezeigt wird?

Ab FortiOS 5.0.5 / 5.2 ist es möglich "usernamen" in den Logs mit einem "anonymous" zu versehen dh. anstelle des Usernamens wird "anonymous" angezeigt. Dazu muss folgendes durchgeführt werden:

       # config log setting
       # set user-anonymize enable
       # end

Kann ich betreffend Logging die Kapazität auf einer FortiGate erhöhen?

Für das Logging ist der Prozess "miglogd" zuständig. Dazu siehe auch folgender Artikel:

       Fortigate:FAQ#Prozess_.22miglogd.22_zeigt_permanente_99.25_Auslastung_und.2Foder_FortiGate_reagiert_sehr_langsam.3F

Wenn der Prozess "miglogd" eine hohe Auslastung zeigt kann das durchaus auch von einem hohen Aufkommen der Logs herstammen jedoch muss nicht dh. der Umstand weshalb "miglod" eine hohe Auslastung zeigt muss genau eruiert werden. Wenn ein hohes Aufkommen der Logs zuständig ist für die hohe Auslastung von "miglogd" können die Deamons die für "miglogd" zur Verfügung stehen erhöt werden. Per Standard stehen 8 Deamons zur Verfügung. Um die Deamons für "miglogd" zur erhöhen was wiederum eine höhere Speicherauslastung zur Folge hat muss folgendes durchgeführt werden (ab FortiOS 5.0.6 / 5.2):

       # config system global
       # set miglogd-children [Anzahl Deamons 0 - 15; Standard Wert 8] 
       # end
       
       NOTE Wenn die Anzahl der Deamons verändert wird gehen keine Logs verloren! Für FortiOS 5.2
            gilt der Standard Wert "0"!

Wie sieht/führe ich eine vollständige Log Konfiguration auf einer FortiGate aus?

Nachfolgendes Beispiel zeig wie man auf einer FortiGate ALLE Logs aktiviert/deaktiviert (inkl. UTM-Log's) sowie diese einem FortiAnalyzer übermittelt:

       NOTE Wenn über einen FortiAnalyzer geloggt wird kann durchaus jedes Log eingeschaltet werden. Wird jedoch
            auf die Disk geloggt ist es "NICHT ZU EMPFEHLEN" alle Logs zu aktivieren da das exsessive Logging
            auf der Disk einen event. Crash auf der Disk auslösen kann! Desweiteren sollte darauf geachtet werden,
            das nur auf einen Device geloggt wird dh. zwei Device Log zu aktivieren kann Sinn machen ist jedoch
            eher unüblich. Dies bedeutet auf die lokale Disk und auf den FortiAnalyzer zu loggen macht keinen Sinn,
            denn wenn FortiAnalyzer aktiviert wird und das "gui" ebenfalls auf FortiAnalyzer gesetzt ist, werden 
            dort dh. im Gui die Logs die zum FortiAnalyzer übermittelt werden ebenfalls angezeigt!
       Aktiviere/Deaktiviere für DLP UTM-Log/Log 
       
       # config dlp sensor 
       # edit [Name des Profiles]  
       # set extended-utm-log [enable | disable] 
       # set dlp-log [enable | disable] 
       # set nac-quar-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für Antivirus UTM-Log/Log
       
       # config antivirus profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set av-block-log [enable | disable] 
       # set av-virus-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für VoiP UTM-Log/Log
       
       # config voip profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # config sip 
       # set status [enable | disable] 
       # set log-violations [enable | disable] 
       # set log-call-summary [enable | disable] 
       # end 
       # config sccp 
       # set status [enable | disable] 
       # set log-call-summary [enable | disable] 
       # set log-violations [enable | disable] 
       # end 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für Application UTM-Log/Log
       
       # config application list 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set log [enable | disable] 
       # set other-application-log [enable | disable] 
       # set unknown-application-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" und/oder "log" nicht mehr!
       Aktiviere/Deaktiviere für Deep-Inspection, SSL-SSL-Profile UTM-Log/Log
       
       # config firewall deep-inspection-options 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set ssl-invalid-server-cert-log [enable | disable] 
       # set allow-invalid-server-cert [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert "deep-inspection-options" nicht mehr und wurde verschoben in
            "ssl-ssh-profile". Die Option "extended-utm-log" existiert nicht mehr:
       
       # config firewall ssl-ssh-profile
       # edit [Name des Profiles] 
       # set ssl-invalid-server-cert-log [enable | disable] 
       # end
       Aktiviere/Deaktiviere für Protocol Options UTM-Log/Log
       
       # config firewall profile-protocol-options 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set oversize-log [enable | disable] 
       # set switching-protocols-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für WebFilter UTM-Log/Log 
       
       # config webfilter profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # config web
       # set log-search [enable | disable] 
       # end
       # set log-all-url [enable | disable] 
       # set web-content-log [enable | disable] 
       # set web-filter-command-block-log [enable | disable] 
       # set web-filter-cookie-log [enable | disable] 
       # set web-filter-applet-log [enable | disable] 
       # set web-filter-jscript-log [enable | disable] 
       # set web-filter-js-log [enable | disable] 
       # set web-filter-vbs-log [enable | disable] 
       # set web-filter-unknown-log [enable | disable] 
       # set web-filter-referer-log [enable | disable] 
       # set web-filter-cookie-removal-log [enable | disable] 
       # set web-url-log [enable | disable] 
       # set web-invalid-domain-log [enable | disable] 
       # set web-ftgd-err-log [enable | disable] 
       # set web-ftgd-quota-usage [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für WebFilter [Minimal] UTM-Log/Log  
       
       # config webfilter profile 
       # edit [Name des Profiles] 
       # set extended-utm-log enable 
       # config web
       # set log-search [enable | disable] 
       # end
       # set log-all-url enable 
       # set web-url-log enable 
       # set web-ftgd-err-log enable 
       # end
       Aktiviere/Deaktiviere für Spamfilter UTM-Log/Log  
       
       # config spamfilter profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # config imap
       # set log enable
       # end
       # config pop3
       # set log enable
       # end
       # config smtp
       # set log enable
       # end
       # config mapi
       # set log enable
       # end
       # config msn-hotmail
       # set log enable
       # end
       # config yahoo-mail
       # set log enable
       # end
       # config gmail
       # end
       # end
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr! Neu dazugekommen
            ist die Option:
            
            # config spam-log [enable | disable]
       Aktiviere/Deaktiviere Global Settings Log   
       
       # config log setting 
       # set brief-traffic-format [enable | disable] 
       # set daemon-log [enable | disable] 
       # set neighbor-event [enable | disable] 
       # set fwpolicy-implicit-log [enable | disable] 
       # set fwpolicy6-implicit-log [enable | disable]
       # set gui-location [fortianalyzer] 
       # set log-invliad-packet [enable | disable]
       # set local-in-allow [enable | disable] 
       # set local-in-deny [enable | disable] 
       # set local-out [enable | disable] 
       # set resolve-apps [enable | disable] 
       # set resolve-hosts [enable | disable] 
       # set resolve-ip [enable | disable] 
       # set user-anonymize [enable | disable] 
       # set log-user-in-upper [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die folgenden Option nicht mehr:
            
            gui-location
            local-in-deny
            resolve-apps
            resolve-hosts
            
            Neu dazugekommen sind folgende Optionen:
            
            # set resolve-port [enable | disable] 
            # set local-in-deny-unicast [enable | disable]
            # set local-in-deny-broadcast [enable | disable] 
       Aktiviere/Deaktiviere Global Settings (Empfehlung] Log    
       
       FortiOS 5.0
       # config log setting 
       # set fwpolicy-implicit-log enable 
       # set gui-location [fortianalyzer] 
       # set local-in-allow disable 
       # set local-in-deny disable 
       # set local-out disable 
       # set resolve-apps enable 
       # set resolve-hosts enable 
       # set resolve-ip enable 
       # set user-anonymize disable 
       # end 
       
       FortiOS 5.2
       # config log setting 
       # set fwpolicy-implicit-log enable 
       # set local-in-allow disable 
       # set local-in-deny-unicast disable
       # set local-in-deny-broadcast disable
       # set local-out disable 
       # set resolve-ip enable 
       # set resolve-port enable 
       # set user-anonymize disable 
       # end 
       Aktiviere/Deaktiviere Eventfilter Log    
       
       # config log eventfilter 
       # set event [enable | disable] 
       # set router [enable | disable]
       # set system [enable | disable]
       # set user [enable | disable]
       # set vpn [enable | disable]
       # set wan-opt [enable | disable]
       # set wireless-activity [enable | disable]
       # end 
       Aktiviere FortiAnalyzer Log
       
       # config log fortianalyzer setting 
       # set status enable 
       # set ips-archive enable 
       # set server [FortiAnalyzer IP] 
       # set enc-algorithm default 
       # set localid [set a local ID for Device like Serial Nr.] 
       # set psksecret [Password for Preshared Key] 
       # set conn-timeout 10 
       # set monitor-keepalive-period 5 
       # set monitor-failure-retry-period 5 
       # set source-ip 0.0.0.0 
       # set upload-option realtime 
       # set reliabl enable 
       # end 
       Aktiviere/Deaktiviere Logging Devices
       
       # config log memory setting 
       # set status [enable | disable]
       # set diskfull overwrite 
       # end 
       
       # config log disk setting 
       # set status [enable | disable]
       # set diskfull overwrite 
       # end 
       
       # config log syslogd setting 
       # set status [enable | disable]
       # end 
       
       # config log fortiguard setting 
       # set status [enable | disable]
       # end
       Aktiviere/Deaktiviere Logging Device Filter
       
       # config log [disk, memory, fortianalyzer, syslogd] filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end

Kann ich auf einer FortiGate betreffend Log einen "Eigene Log Nachricht" erstellen?

Wenn logging aktiviert wurde auf einer FortiGate und dieses Log zB zu einem FortiAnalyzer übermittelt wird kann dort über das Event Management die Logs überwacht werden. Wenn ein entsprechender Eintrag erscheint kann ein Event ausgelöst werden. Natürlich kann dies über die bestehenden Standard Log Informationen gefiltert werden und so der Event ausgelöst werden. Wenn jedoch dies schwierig ist und man ein "Key-Word" benötigt steht man vor dem Problem "wie kommt das Key-Word in das Log". Dies kann auf einer FortiGate über die Funktion "custom-log-fields" bewerkstelligt werden. Als Erstes muss die entsprechende Policy ID eruiert werden in dem das "Key-Word" (custom-log-fields) konfiguriert resp. erscheinen soll:

       # show firewall policy

Danach kann ein entsprechendes "custom-log-fields" erstellt werden:

       # config log custom-field
       # edit id [Gebe einen entsprechenden Integer an zB "1"]
       # set name [Vergebe das entsprechende "Key-Word"]
       # set value [Gebe die entsprechende Policy-ID]
       # end
       
       NOTE Als "name" sind nur "Alphanummerische" zeichen erlaubt. Die Gesamtlänge darf
            16 Zeichen nicht übersteigen!

Bestehen verschiedene "custom-log-fields" und sollen diese in einer "Firewall Policy" kombiniert werden ist dies möglich und muss in der "Firewall Policy" selber definiert werden:

       # config firewall policy
       # edit [Gebe die entsprechende Policy-ID an]
       # set custom-log-fields [Gebe den entsprechenden Integer an des "custom-field"; mehrere "custom-field" werden getrennt durch einen Leerschlag]
       # end
       
       NOTE Achte beim Test darauf das die entsprechende "Firewall Policy" für das Log aktiviert ist:
            
       # config firewall policy
       # edit [Gebe die entsprechende Policy-ID an]
       # set logtraffic all
       # end

Wie aktiviere ich auf einer FortiGate die "UTM Monitor" Funktion?

Unter FortiOS 4 MR3 wurden - per Standard - unter den UTM Profiles/Security Profiles die "UTM Monitor" angezeigt! Unter FortiOS 5.0 / 5.2 sind diese - per Standard - deaktiviert und stehen im direkten Zusammenhang mit den "Extended UTM Logs"! Möchte man die "UTM Monitor" wieder aktivieren müssen die "Extended UTM Log's" vorgängig korrekt konfiguriert resp. aktiviert werden. Wie dies durchgeführt wird siehe nachfolgenden Artikel:

       NOTE Unter FortiOS 5.2 existiert die Konfiguration in den vers. Profiles betreffend UTM Logs nicht
            mehr (extended-utm-log) und ist per Standart aktiviert!
       Fortigate:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
       
       NOTE Um einen vollständigen Ueberblick zu erhalten betreffend Logging siehe auch nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wenn die Aktivierung resp. die Konfiguration der "Extended UTM Logs" durchgeführt wurde kann die "UTM Monitor" Funktion aktiviert werden:

       # config system global
       # set gui-utm-monitors enable
       # end

Danach sind diese über das Web Gui ersichtlich und basieren auf den "Extended UTM Logs":

       Fortinet-1094.jpg

Sind in der "Firewall Policy" für eine entsprechende Rule die Logs direkt ersichtlich?

Diese neue Funktion steht ab FortiOS 5.2 zur Verfügung und ermöglicht es direkt aus der "Firewall Policy" für eine entsprechende Rule die Logs für diesen Traffic einzusehen:

       NOTE Diese Funktion steht ebenfalls für die "Explicit Proxy" Policy zur Verfügung jedoch nicht
            für die "Multicast Policy"!
       Fortinet-1112.jpg

SNMP

Gibt es für die Fortigate ein MIB File und wo kann ich dieses runterladen?

       NOTE Unter FortiOS 5.0 / 5.2 wird das MIB dh. inkl. Core MIB direkt auf der FortiGate unter folgender Position zur
            Verfügung gestellt:
            
            Datei:Fortinet-618.jpg

Durch Fortinet wird für die Fortigate ein MIB File für SNMP zur Verfügung gestellt. Dieses kann unter dem Support Account runtergeladen werden:

       https://support.fortinet.com

Logge dich ein anhand des Usernamens und Passwortes. Danach präsentiert sich folgende Seite:

       Fortinet-25.jpg

Wähle nun die Position "Firmware Images". Danach öffnet sich ein neues Fenster. Darin wähle das gewünschte Produkt dh. in unserem Fall "FortiGate":

       Fortinet-26.jpg

Nun öffnet sich wiederum ein neues Fenster. In diesem Fenster wird über den Browser ein FTP Server geöffnet. Wähle dort die entsprechende Version:

       Datei:Fortinet-27.jpg

In nächsten angezeigten Verzeichnis befindet sich ein MIB Verzeichnis und darin befindet sich das entsprechende MIB File das runtergeladen werden kann!

Wie sieht die Definition eines Fortigate MIB Files aus?

Folgende MIB Files geben Aufschluss über die Definition in den MIB Files betreffend einer Fortigate:

       Datei:FORTINET-CORE-MIB.mib
       Datei:FORTINET-FORTIGATE-MIB.mib

Switch-Mode

Wie setze ich für den "Internen Switch" den Interface Speed?

Um den Interface "speed" bei vielen Fortigate Modelle auf dem "Internal Switch" zu setzen führe folgendes aus:

      # config system global
      # set internal-switch-speed [1000full | 100full | 100half | 10full | 10half | auto]
      # end
      NOTE Desweiteren sollte betreffend Einstellungen und/oder Duplex Mismatch folgender Artikel
           berücksichtigt werden:
           
           Fortigate:FAQ#Wie_stelle_ich_fest.2Fkontrolliere_ich_ob_auf_irgendwelchen_Interfaces_ein_Error_existiert_.28duplex_mismatch.29.3F

Kann ich die den "Internen Switch" (Switch-Mode) bei einer Fortigate "Separieren" (Interface-Mode)?

Ja, man kann bei einigen Modellen den "Internal Switch" separieren dh. so das jeder einzelne Port über seine eigenen MAC Adresse verfügt sowie konfiguriert werden kann. Ob bei einem Modell dies möglich ist zeigt das "Software Matrix" Dokument Position "Switch/Interface Mode":

       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       
       NOTE Dabei ist folgendes zu berücksichtigen: Wenn der Device über einen "Switch Controller" verfügt, 
            was ebenfalls in der "Software Matrix" ersichtlich ist, verfügen diese Device's effektive über
            einen Hardware technischen "Switch Controller". Bei diesen Geräten kann der "Internal Switch"
            ebenfalls aufgebrochen werden jedoch nicht über die Kommandozeile und nicht anhand des Kommandos
            "internal-swtich-mode". Denn dieses Kommando steht für diese Geräte nicht zur Verfügung. Wie
            der "Internal Switch" Mode bei diesen Devices in einzelne Ports separiert wird zeigt der folgende
            Artikel:
            
            Fortigate:FAQ#Wieso_kann_ich_auf_einer_FortiGate_mit_.22Hardware_Switch.22_.28zB_100D.2F140D.2F240D.29_den_Internal_Switch_nicht_in_einzelne_Ports_aufbrechen.3F

Um die Ports betreffend dem "Internal Swtich" zu separieren geben auf der Console folgendes ein:

       # config sys global
       # set internal-switch-mode interface
       # end
       changing switch mode will reboot the system!
       Do you want to continue? (y/n)y
       ACHTUNG Wenn man dieses Kommando absetzt so kann eine Fehlermeldunge erscheinen:
       
       Interface internal is in use
       attribute set operator error, -23, discard the setting
       Command fail. Return code -23
       
       Der Grund dafür ist, dass das Internal LAN Interface in Benutzung ist. Dies bedeutet es wird genutzt in einer Policy/Rule
       oder für eine andere Funktion. Um das zu verifizieren loggt man sich auf dem WebMgmt. Gui an und verifiziert dies über
       
       System > Status > Interface
       
       Auf der Zeile des Internal LAN Interfaces sind die Refrence für das Interfaces gelistet (ganz Rechts). Klickt man auf
       die Refrence (Ref) so sieht man wo das Interface in Benützung ist. Geht man von einem Factory Default aus so ist das
       Interface benutzt in der Policy/Rule und im DHCP Server. Deshalb kann diese nicht in den "Switch-Mode" gesetzt werden
       sowie die genannte Fehlermeldung erscheint. Wenn man diese Policy/Rule über die Console löschen möchte führe folgendes 
       durch:
       
       # config firewall policy
       
       Verifiziere welche Policy/Rule es betrifft (in unserem Fall Policy/Rule "1"):
       
       # show
       config firewall policy
           edit 1
               set srcintf "internal"
               set dstintf "wan1"
                   set srcaddr "all"
                   set dstaddr "all"
               set action accept
               set schedule "always"
                   set service "ANY"
               set nat enable
           next
       end
       
       Lösche nun die Policy/Rule "1":
       
       # del 1
       
       Verifiziere ob die Policy/Rule gelöscht wurde:
       
       # show
       config firewall policy
       end
       # end
       
       Lösche nun den DHCP Server:
       
       # config system dhcp server
       
       Verifiziere die momentane Konfiguration:
       
       # show
       config system dhcp server
           edit 1
               set default-gateway 192.168.1.99
               set dns-service default
               set interface "internal"
                   config ip-range
                       edit 1
                           set end-ip 192.168.1.210
                           set start-ip 192.168.1.110
                       next
                   end
               set netmask 255.255.255.0
           next
       end
               
       Lösche den DHCP Server "1":
       
       # del 1
       # show
       # end
       
       Nun kann der Befehl des "Switch-Mode" abermalls ausgeführt werden:
       
       # config sys global
       # set internal-switch-mode interface
       # end
       changing switch mode will reboot the system!
       Do you want to continue? (y/n)y

Wenn nach dem Neustart kein Interface mehr konfiguriert ist/wäre und dies über die Console bewerkstelligt werden müsste kann folgendes durchgeführt werden:

      # config system interface
      # edit [Name des Ports zB internal1]
      # set ip [zB 192.168.1.99/24]
      # set alias [Name des Alias zB internal]
      # end

Um den Mgmt. Web Zugriff wieder zu gewährleisten führe folgendes durch:

      # config system interface
      # edit [Name des Ports zB internal1]
      # set allow [zB http https ping ssh telnet]
      # end

Falls wiederum ein DHCP Server konfiguriert werden soll führe folgendes durch:

      # config system dhcp server
      # edit 1
      new entry '1' added
      # set default-gateway [zB 192.168.1.99]
      # set dns-service default
      # set interface "[Name des Ports zB internal1]"
      # config ip-range
      # edit 1
      new entry '1' added
      # set end-ip 192.168.1.210
      # set start-ip 192.168.1.110
      # next
      # end
      # set netmask 255.255.255.0
      # next
      # end

Wie kann ich auf einer FortiGate anhand Interfaces einen Software-Switch (oder auch Hub) erstellen?

Ein "Software-Switch" ist ein Software basierende Funktion eines "Hardware-Switches" die wie ein Switch aggiert! Sobald ein "Software-Switch" erstellt wird, werden die Interfaces zusammengefasst unter einer "MAC Adresse" und aggieren somit wie ein einzelnes Interface. Traffic zwischen den Interfaces, die Mitglieder sind im Software-Switches, ist erlaubt und kann auch anhand einer Policy nicht verhindert werden. Es ist zu berücksichtigen, dass "Software-Switches" resp. deren Interfaces unter HA nicht überwacht (Monitor) oder als "Heartbeat" Interface benutzt werden können. Ein "Software-Switch" kann übers Web Mgmt. Interface konfiguriert werden dh. über:

       System > Network > Interface > Create New > Interface

Vergebe danach für den Software-Switch einen Namen sowie wähle unter "Type" den Eintrag "Software Switch".

       NOTE Um die gewünschten Interfaces auswählen zu können dürfen diese nicht "in Gebrauch" sein dh.
            zB in einer "Firewall Policy". Dies bedeutet ist dies der Fall müssen die entsprechenden Einträge
            resp. Abhängigkeiten eruieirt und die entsprechenden Einträge gelöscht werden, um nnachträglich 
            die gewünschten Interfaces zum Software Switch hinzu zufügen.

Die Konfiguration kann ebenfalls auf der CLI durchgeführt werden:

       # config system switch-interface
       # edit [Name des Software Switches]
       # set member [Gebe die entpsrechenden Interfaces an zB "port1 port2"]
       # set span [Aktiviere oder Deaktiviere das Port Spanning anhand enable | disable]
       # set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
       # set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]]
       # set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]]
       # set type [Setze den Mode für den Software Switch dh. hub | switch | hardware-switch]
       # set vdom [Vergebe den VDom Name inder der Software Switch benutzt wird]
       # end

Kann ich auf einer FortiGate für den "Software Switch" und/oder virtuellen "Hardware Switch" eine SPAN Port (Port Mirroring) konfigurieren?

Wenn auf einer FortiGate ein "Port Mirroring" konfiguriert werden soll so ist dies für einen "Software Switch" möglich. Diese Funktion des "Port Mirroring" wird auf einem FortiGate Device SPAN benannt. Die SPAN Funktion oder eben "Port Mirroring" sendet "Jedes Packet" vom definierten "span-source-port" zum "span-dest-port". Wenn nun nachträglich auf dem "span-dest-port" ein Sniffer konfiguriert wird (ips-sniffer-mode enable) kann der Traffic analysiert werden. Die Konfiguration der SPAN Funktion ist über folgenden Menüpunkt möglich:

       System > Network > Interfaces

Ueber die Kommandozeile wird die SPAN Funktion resp. das "Port Mirroring" folgendermassen konfiguriert:

       FortiOS 5.0 / 5.2 "Software Switch"
       # config system switch-interface
       # edit [Name des Software Switches]
       # set member [Gebe die entpsrechenden Interfaces an zB "port1"]
       # set span [Aktiviere oder Deaktiviere das Port Spanning anhand enable | disable]
       # set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
       # set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]]
       # set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]]
       # set type [Setze den Mode für den Software Switch dh. hub | switch | hardware-switch]
       # set vdom [Vergebe den VDom Name inder der Software Switch benutzt wird]
       # end
       
       NOTE FortiOS 5.0 unterstützt die SPAN Konfigurtion für einen "Hardware-Switch" nicht. Ab 
            FortiOS 5.2 wird dies unterstützt über folgendes Kommando:
       
       # config system virtual-switch
       # edit [Name des "virtual-switch"]
       # set span enable
       # set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]
       # set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
       # set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]
       # end
       # end
       
       NOTE Folgendes Dokument gibt Auskunft ob der Device über einen "Hardware-Switch" (Switch Controller) verfügt:
            
             FortiOS 5.2 Software Matrix

Nachdem die SPAN Funktion konfiguriert wurde kann wie schon erwähnt zB ein Sniffer Interface konfiguriert werden. Dies wird folgendermassen durchgeführt:

       # config system interface
       # edit [Name des Interfaces]
       # set ips-sniffer-mode enable
       # end

Weitere Informationen wie ein Sniffer konfiguriert wird zB für eine POC etc. siehe nachfolgendes Dokument:

       Fortigate:FAQ#Wie_kann_ich_eine_Fortigate_mit_einem_Sniffer_Port_konfigurieren.3F

Was ist ein virtueller "Hardware Switch" und was ist der Unterschied zu einem Software Switch?

In früheren Versionen des FortiOS 4 MR3 kennt man den sogenannte "Software Switch" dh. man gruppiert bestimmte Interfaces zusammen zu einem "logischen" Software Switch. Innerhalb dieses Software Switches benützen alle Interfaces die (gleiche) IP die für den Software Switch selber gesetzt wurde sowie dessen Subnet. Innerhalb eines Software Switches wird der Traffic von Port zu Port ungehindert übermittelt dh. eine Implementierung einer Policy oder sonstigen UTM Features ist nicht möglich. Wie der Name selbst erklärt handelt es sich hier um einen "Software basierenden Switch" dh. der FortiGate CPU muss diesen Traffic -da Software Basierend- zwischen den Ports abarbeiten. Dies bedeutet Performance Verlust und Beeinträchtigung wenn viel Traffic zwischen den Ports verarbeitet wird. Wie so ein "Software Switch" konfiguriert ist siehe nachfolgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_auf_einer_FortiGate_anhand_Interfaces_einen_Software-Switch_.28oder_auch_Hub.29_erstellen.3F

Für FortiOS 5.0 / 5.2 für die Modelle 100D, 600C, 1000C, and 1240B steht nun eine neue Funktion zur Verfügung dh. ein virtuellen "Hardware Switch". Wie beim "Software Switch" können vers. Ports in einem virtuellen "Hardware Switch" gruppiert werden. Der Traffic zwischen den verschiedenen Ports in einem virtuellen "Hardware Switch" wird durch den virtuellen "Hardware Switch" selber verarbeitet und dadurch entsteht keine Belastung/Beeinträchtigung des FortiGate CPU's im Gegensatz zu einem Software Switch. Dadurch erhöht sich die Performance durch den Einsatz eines virtuellen "Hardware Switch" anstelle eines "Software Switch". Weitere Informationen wie man einen virtuellen "Hardware Switch" konfiguriert siehe folgender Artikel:

       Fortigate:FAQ#Wie_konfiguriere_ich_einen_virtuellen_.22Hardware_Switch.22.3F

Wie konfiguriere ich einen virtuellen "Hardware Switch"?

Um einen "virtuellen Hardware Switch" zu konfigurieren benütze folgenden Befehl:

       # config system virtual-switch
       # edit virt-sw-1
       # set physical-switch sw0
       # config port
       # edit 1
       # set port p1
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # next
       # edit 2
       # set port p2
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # next
       # edit 3
       # set port p3
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # next
       # edit 4
       # set port p4
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # end
       # end
       
       NOTE Ein "virtuellen Hardware Switch" wird nur durch bestimmte Modelle Unterstützt. Die Konfiguration
            eines "virtuellen Hardware Switche's" kann für die bestimmten unterstützen Modelle ebenfalls über WebGui
            durchgeführt werden unter folgender Position:
            
            System > Network > Interface > Create New > Interface > Type > Hardware Switch
            
            Weitere Informationen und Erklärungen finden man unter folgenden Artikel:
            
            Fortigate:FAQ#Was_ist_ein_virtueller_.22Hardware_Switch.22_und_was_ist_der_Unterschied_zu_einem_Software_Switch.3F

Wie kann ich STP (Spanning Tree Protocoll) auf einer FortiGate konfigurieren?

Das Spanning Tree Protocol (STP, deutsch: Spannbaum-Protokoll http://de.wikipedia.org/wiki/Spanning_Tree_Protocol) ist ein vitaler Teil von Switch-Infrastrukturen. Netzwerke können mit einer Vielzahl von Switches als Koppelungselement aufgebaut werden. Allerdings muss die LAN-Technologie sicherstellen, dass zwischen zwei Rechnern jeweils nur ein Datenpfad existiert, um Pakete eindeutig weiterleiten zu können.

Die Vermeidung von Effekten wie Broadcast-Storms wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt. Dies bedeutet, dass ein Switch in einen Zustand versetzt wird, in dem er keine Pakete weiterleitet. Der Spanning-Tree Algorithmus sorgt nun dafür, dass es keine unerwünscht kreisenden Pakete gibt. Er identifiziert Mehrfachwege, indem er Topologien mit redundanten Wegen durch eine logische Blockierung bestimmter Pfade in eine Baumtopologie überführt, die keine Schleifen besitzen. Die inaktiven Switches werden in einen Standby-Modus geschaltet. Bei Ausfall der primären Verbindung können diese sofort aktiviert werden und erzeugen auf diese Weise ein hohes Maß an Fehlertoleranz. STP wird auf einer FortiGate "nur" auf dem "Internen Switch" untersützt und nur unter FortiOS 5.0 / 5.2. STP steht für "Software Switches" nicht zur Verfügung. Wenn auf dem "Internen Switch" auf einer FortiGate STP aktiviert werden soll kann folgender Befehl benutzt werden:

      # config system stp
      # set config-revision [Angabe eines Integer]
      # set forward-delay [In Sekunden "4 bis 30"]
      # set hello-time [In Sekunden "1 bis 10"]
      # set max-age [In Sekunden "6 bis 40"]
      # set max-hops [Angage max. Hop 1 bis 40]
      # set region-name [Angabe des Namen]
      # set status [enable | disable]
      # set switch-priority [Setze die Priorität 0, 4096, 8192, 12288, 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, 61440]
      # end

Wenn die FortiGate selber auf dem Internen Switch "kein" STP durchführt, kann auf den einzelnen Interfaces -um STP zu erlauben und Loop's zu verhindern- durch folgende Befehle STP zugelassen werden:

      # set stpforward [enable | disable]

Wieso kann ich auf einer FortiGate mit "Hardware Switch" (zB 100D/140D/240D) den Internal Switch nicht in einzelne Ports aufbrechen?

Nun einige FortiGate Devices wie die 100D(Generation 3)140D/200D/240D kommen mit integrierten "Hardware Switches" dh. diese Geräte beinhalten einen "Switch Controller" und zwar Hardware basierend (nicht Software und/oder Virtuelle). Die Geräte kommen zB bei einer 240D mit bis zu 40 Ports. Wenn man die Geräte näher anschaut und man versucht die Ports des "Internal Switch's" über Kommandozeile anhand "set internal-switch-mode interface" aufzubrechen (übliche Vorgehensweise) scheitert man!? Der Grund ist, das dieser "Hardware Switche" nicht wie üblich aufgebrochen werden kann. Dies bestätigt auch ein kurzer Blick auf die Kommandozeile, denn die zuständige Option "internal-switch-mode" ist bereits auf "interface" gesetzt (auch zu sehen über "get system status")! Möchte man diese Ports des "Hardware Switch" aufbrechen kann dies über das Web Gui durchgeführt werden. Dies bedeutet man wählt "lan" und danach können die Ports einzeln aus dem "Internen Hardware Switch" entfernt werden:

       Fortinet-816.jpg
       Löscht man nun Port1/2 aus dem Hardware Switch raus stehen diese nachträglich wiederum als
       einzelne Interfaces zur Verfügung:
       
       Fortinet-817.jpg
       Fortinet-818.jpg

Wenn man nun basierend auf dem Kommando "internal-switch-mode" die zur Verfügung stehenden Kommandos in diesem Zusammenhang mit der 100D/140D/240D näher anschaut, fällt einem folgende Befehle auf:

       switch-controller         (steht per Standard auf "disable")
       switch-controller-port    (steht per Standard auf Port 6246)
       
       NOTE Diese Funktion steht momentan exkl. der 100D/140D zur Verfügung!

Wenn man sich desweiteren das Gui anschaut fällt einem auf das folgende Position zusätzliche Optionen enthält (per Standard ab FortiOS 5.0.4 nicht ersichtlich):

       Fortinet-819.jpg

Ueber diese Positione können "Virtuelle Switche's" konfiguriert werden. Wenn man die nachfolgende Option aktiviert, können FortiSwitche's über die neue Menüposition (nur 100D/140D) eingebunden werden:

       # config system global
       # set switch-controller enable
       # end
       Fortinet-820.jpg

Wenn die einzelnen Ports komplett aufgebrochen werden, fällt einem auf das die letzten zwei Ports nicht aufgebrochen werden können. Weitere Informationen dazu findet man im folgenden Artikel:

       Fortigate:FAQ#Wie_kann_ich_die_letzten_zwei_Ports_.28port1.2Fport2.29_auf_einer_100D.28Generation_3.29140D.2F240D_als_einzelne_Ports_aufbrechen.3F

Wie kann ich die letzten zwei Ports (port1/port2) auf einer 100D(Generation 3)140D/240D als einzelne Ports aufbrechen?

Auf einer FortiGate 100D (Generation 3) sowie einer 140D und 240D lassen sich die einzelnen Ports des "Internal Switche"'s nicht über das Kommando "internal-switch-mode" aufbrechen. Diese Geräte besitzen einen Hardware basierenden "Switch Controller". Aus diesem Grund muss der "Internal Switch" gemäss folgenden Artikel aufgebrochen werden:

       Fortigate:FAQ#Wieso_kann_ich_auf_einer_FortiGate_mit_.22Hardware_Switch.22_.28zB_100D.2F140D.2F240D.29_den_Internal_Switch_nicht_in_einzelne_Ports_aufbrechen.3F

Führt man dies durch bemerkt man, dass die letzten zwei Ports (zB bei einer 100D port1/2) obwohl keine Policy Referenz sowie DHCP Referenz auf diesen Ports vorhanden ist, diese nicht aufgebrochen werden können. Um die letzten zwei Ports aufzubrechen muss im Hintergrund der "Virtuelle Switch" gelöscht werden. Dies wird auf der Kommandozeile durchgeführt:

       # config system virtual-switch
       # get
       == [ lan ]
       name: lan    
       # del lan
       # get
       # end

Wurden auf dem "Virtuellen Switch" bereits Konfigurtionen durchgeführt zB DHCP Server und/oder Policy muss diese Referenz zuerst entfernt werden. Die Konfigurierten IP's auf diesen Ports bei der Auflösung des "Virtuellen Switches" gehen vollständig verloren. Für die Auflösung muss kein Neustart der Firewall durchgeführt werden!

Reporting

Kann ich die Standard Reports und Grafiken (Datasets and Charts) aus den Logs der Fortigate modifizieren?

Wenn man davon ausgeht, dass man einen POC (Prof of Concept) durchführt und zu diesem Zweck die Firewall mit einem "Sniffer Port" an einen Mirror Port (Span Port) eines Switche' verbunden hat, möchte man nachträglich möglichst durch die Auswertung der Log's übersichtliche Reports erstellen. Ob ein Device "local" überhaupt Report's erstellen kann zeigt die "Software Matrix" für das jeweilige FortiOS:

       Fortigate:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

Die Standard Reports die "local" auf den Devices zur Verfügung gestellt werden sind nicht sehr ausführlich und für einen POC nicht Zweckmässig. Um das zu ändern, kann man seine eigenen Reports erstellen. Das heisst, die Reports die auf einer Fortigate zur Verfügung gestellt werden (findet man unter "Log & Report) sind eigentlich nichts anderes als SQL Abfragen aus der Datenbank in der die Log Informationen gespeichert werden. Somit müssen für aussagekräftigere Reports einfach spezifische SQL Abfragen konfiguriert werden. Um dies zu konfigurieren führe folgendes über die Console durch:

       Datei:Fortinet Proof of Concept Partner LR.pdf
       
       NOTE Dieses POC Dokument ist zu benutzen mit V4.0 MR3 Patch 6 oder tiefer denn im Patch 7 oder höher wurden für die
            Geräte bis 100D der SQL Befehlsatz entfernt! Wenn mit FortiOS 5 gearbeitet wird ist zu empfehlen die Logs auf 
            den FortiAnalyzer 5.0.4 zu spielen da dort die Reporting Möglichkeiten vielseitig sind und diese Version 
            betreffend Report "SOC Compliant" ist!
       Key Applications Crossing the Network
       
       # config report dataset
       # edit "appctrl.Appl.List.all.info"
       # set query "select app, app_cat, service, sum(sent+rcvd) as bytes, count(src) as sessions from traffic_log where timestamp between ###start_time### and ###end_time### and (app is not null and !=\'N/A\') group by app_cat order by app_cat"
       # next
       # end
       # config report chart
       # edit "appctrl.Appl.List.all.info"
       # set type table
       # set period last24h
       # set comments "All Application List usage"
       # set dataset "appctrl.Appl.List.all.info"
       # set category traffic
       # next
       # end
       Applications Running Over HTTP
       
       # config report dataset
       # edit "traffic.Http.Appl.List"
       # set query "select app, sum(sent+rcvd) as bytes, count(src) as sessions from traffic_log where timestamp between ###start_time### and ###end_time### and (app is not null and app =\'N/A\' and service=\'HTTP\') group by app
       # order by app"
       # next
       # end
       # config report chart
       # edit "traffic.Http.Appl.List"
       # set type table
       # set period last24h
       # set comments "Application That use HTTP"
       # set dataset "traffic.Http.Appl.List"
       # set category traffic
       # next
       # end
       Top Web Sites Visited By Network Users
       
       # config report dataset
       # edit "wf.Top.Url.Categories"
       # set query "select cat_desc, count(*) as totalnum from webfilter_log where timestamp between ###start_time###and ###end_time### and (cat_desc is not null or cat_desc!=\'N/A\') group by cat_desc order by totalnum desc"
       # next
       # end
       # config report chart
       # edit "wf.Top.Url.Categories"
       # set type table
       # set period last24h
       # set comments "Top URL Category in Use"
       # set dataset "wf.Top.Url.Categories"
       # set category webfilter
       # next
       # end
       Top Threat Vectors Crossing the Network
       
       # config report dataset
       # edit "ips.Top.Threats"
       # set query "select severity, attack_name, msg, count(*) as totalnum from attack_log where timestamp between###start_time### and ###end_time### group by severity order by totalnum desc"
       # next
       # end
       # config report chart
       # edit "ips.Top.Threats"
       # set type table
       # set period last24h
       # set comments "Top Threats Traversing the Network"
       # set dataset "ips.Top.Threats"
       # set category attack
       # next
       # end

Um nun das Layout der Reports (Aussehen etc.) zu verbessern kann folgendes über die Console eingegeben werden (Kopiere den Inhalt des nachfolgenden Dokumentes in die Console):

       Datei:Layout cfg.rtf

Dashboard/Widgets

Kann ich die Widget's die auf dem Dashboard angezeigt werden manipulieren?

Unter dem folgenden Menüpunkt werden sogenannten Widget's angezeigt dh. Informationen in Kurzübersicht über das System und dessen Status:

       Dashbaord > Status

Die Widget's selber dh. die Informationen können - teilweise - manipuliert werden. Ebenfalls können die einzelnen Widgets ein- oder ausgeblendet werden. Die Positonen für die Manipulationen befindet sich unter:

       Datei:Fortinet-15.jpg

Ebenfalls kann über das "Dashboard" verschiedenste Konfigurationen wie Datum, Zeit, Registrierung konfiguriert werden. Möchte man zusätzlich zum Menüeintrag "Status" einen eigenen Eintrag erstellen wählt man:

       System > Dashboard > Status > Dashboard > [Im Menü wähle: Add Dashboard] > [Gebe einen entsprechenden Namen an]

Wie kann ich das Standard Dashboard mit seinen Widget's wiederherstellen?

Wenn man das Standard Dashboard "Status" auf einer Fortigate wiederherstellen möchte führe über Web Mgmt. Interface folgendes aus:

       System > Dashboard > Status > Dashboard > [Im Menü wähle: Reset Dashboards]

Wenn dies aus irgendwelchen Gründen nicht möglich ist kann dies auch über die Kommandozeile durchgeführt werden:

       FortiOS 5.0
       
       # config system admin
       # edit "admin"
       # config dashboard-tabs
       # edit 1
       # set name "Status"
       # next
       # edit 2
       # set name "Usage"
       # next
       # end
       
       # config dashboard
       # edit 1
       # set tab-id 1
       # set column 1
       # next
       
       # edit 2
       # set widget-type licinfo
       # set tab-id 1
       # set column 1
       # next
       
       # edit 3
       # set widget-type sysres
       # set tab-id 1
       # set column 1
       # next
       
       # edit 4
       # set widget-type jsconsole
       # set tab-id 1
       # set column 1
       # next
       
       # edit 5
       # set widget-type sysop
       # set tab-id 1
       # set column 2
       # next
       
       # edit 6
       # set widget-type alert
       # set tab-id 1
       # set column 2
       # next
       
       # edit 7
       # set widget-type sessions
       # set tab-id 1
       # set column 2
       # next
       
       # edit 8
       # set widget-type pol-usage
       # set tab-id 1
       # set column 2
       # next
       
       # edit 9
       # set widget-type per-ip-usage
       # set tab-id 2
       # set column 1
       # next
       
       # edit 10
       # set widget-type tr-history
       # set tab-id 2
       # set column 1
       # next
       
       # edit 11
       # set widget-type statistics
       # set tab-id 2
       # set column 2
       # next
       # end
       # next
       # end
       FortiOS 5.2
       
       # config system admin
       # edit "admin"
       # config dashboard-tabs
       # edit 1
       # set name "Status"
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 1
       # set tab-id 1
       # set column 1
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 2
       # set widget-type licinfo
       # set tab-id 1
       # set column 1
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 3
       # set widget-type jsconsole
       # set tab-id 1
       # set column 1
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 4
       # set widget-type sysres
       # set tab-id 1
       # set column 2
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 5
       # set widget-type gui-features
       # set tab-id 1
       # set column 2
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 6
       # set widget-type alert
       # set tab-id 1
       # set column 2
       # set top-n 10
       # end
       # end

Ich kann über WebMgmt. das "Traffic-History" Widget nicht mehr einem Dashboad hinzufügen?

Bis FortiOS 4 MR3 Patch 12 sowie FortiOS 5.0.2 gab es im Web Mgmt. Interface innerhalb der zur Verfügung stehenden "Widget's" das Widget "Traffic-History". Diese existiert nicht mehr! Dieses Widget "Traffic History" zeigte für ein bestimmtes Interface den Traffic über eine History an. Dieses Widget kannn jedoch nach wie vor über die Kommandozeile konfiguriert werden. Führe folgendes aus:

       FortiOS 5.0 / 5.2
       # config system admin 
       # edit admin 
       # config dashboard 
       # edit 66 
       # set widget-type tr-history 
       # set tab-id 1 
       # set column 1 
       # set interface [Definition des Interfaces zB "wan1"]
       # next 
       # end 
       # next 
       # end

Nachträglich ist das "Traffic-History" Widget über das Standard Dashboard ersichtlich und kann ebenfalls über das Web Mgmt. Interface modifiziert werden!

FortiManager

Wo finde ich Informationen wie eine FortiGate in einen FortiManager eingebunden wird?

Grundsätzlich ist folgender Befehl zuständig, dass eine FortiGate in das Zentrale Mgmt. eines FortiManager's eingebunden wird:

       # config system central-management 
       # get
       mode                : normal 
       type                : fortimanager 
       schedule-config-restore: enable 
       schedule-script-restore: enable 
       allow-push-configuration: enable 
       allow-pushd-firmware: enable 
       allow-remote-firmware-upgrade: enable 
       allow-monitor       : enable 
       serial-number       : 
       fmg                 : 
       fmg-source-ip       : 0.0.0.0
       fmg-source-ip6      : ::
       vdom                : root 
       server-list:
       include-default-servers: enable 
       enc-algorithm       : default 
       
       NOTE Es empfiehlt sich über den nachfolgenden Link betreffend FortiManager zu informieren da es 
            verschiedenen Möglichkeiten gibt einen Device in den FortiManager einzubinden. Speziell die
            Option "set fmg [IPv4 oder FQDN des FortiManagers]" ist zu berücksichtigen resp. zu benutzen
            auch wenn die Device Einbindung "vom" FortiManager "zur" FortiGate durchgeführt wird! Weitere
            detailierte Informationen über den FortiManager findet man unter folgenden Link:
            
            FortiManager:FAQ

Wie werden die Logs eines FortiGate Device's zum FortiManager übermittelt (verschlüsselt/unverschlüsselt)?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiManager:FAQ#Wie_werden_die_Logs_eines_FortiGate_Device.27s_zum_FortiManager_.C3.BCbermittelt_.28verschl.C3.BCsselt.2Funverschl.C3.BCsselt.29.3F

FortiAnalyzer

Wo finde ich Informationen wie eine FortiGate in einen FortiAnalyzer eingebunden wird?

Für die Einbindung eines FortiGate Devices auf einen FortiAnalyzer ist folgender Befehl zuständig:

       # config log fortianalyzer setting
       # set status enable
       # get
       # status              : enable 
       # ips-archive         : enable 
       # server              : 0.0.0.0
       # enc-algorithm       : default 
       # localid             : 
       # conn-timeout        : 10
       # monitor-keepalive-period: 5
       # monitor-failure-retry-period: 5
       # source-ip           : 0.0.0.0
       # upload-option       : realtime 
       # reliable            : disable 
       
       NOTE Für die Einbindung muss minimal mit der Option "set server" die IPv4 Adresse des FortiAnalyzer
            konfiguriert werden. Danach werden die Log's des Device's über Port TCP 514 verschlüsselt anhand
            SSL übermittelt. Es ist zu empfehlen sich über nachfolgender Artikel betreffend FortiAnalyzer zu
            informieren:
            
            FortiAnalyzer:FAQ
            
            Desweiteren ist zu berücksichtigen, dass die Log Qualität sprich "was" übermittelt wird seitens dem
            FortiGate Device zu konfigurieren ist. Weitere Informationen betreffend der Konfiguration der Logs
            eines FortiGate Device's siehe nachfolgenden Artikel:
            
            Fortigate:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wie werden die Logs eines FortiGate Device's zum FortiAnalyzer übermittelt (verschlüsselt/unverschlüsselt)?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiAnalyzer:FAQ#Wie_werden_die_Logs_eines_FortiGate_Device.27s_zum_FortiAnalyzer_.C3.BCbermittelt_.28verschl.C3.BCsselt.2Funverschl.C3.BCsselt.29.3F

FortiConverter

Gibt es eine Möglichkeit bei einer Migration die Konfig von Fremdprodukten wie Cisco, Checkpoint usw. auf eine FortiGate zu übernehmen?

Ja diese Möglichkeit gibt es und kann als "Tool" anhand einer Lizenz bezogen werden:

       http://www.fortinet.com/products/forticonverter/index.html
       http://www.fortinet.com/resource_center/product_downloads.html

Die dazugehörigen SKU's sind die folgenden (Stand August 2013):

       FC-10-CON01-401-01-12     4'595.00 $ Enduser Listprice    1 Year Multi-Vendor Configuration Conversion Tool( Requires MS Windows) to create FortiOS configuration files. 
       FC-10-CON01-401-02-12       689.00 $ Enduser Listprice    1 year Renewal Multi-Vendor Configuration Conversion Tool ( Requires MS Windows) to create FortiOS configuration files 
       Datei:FortiConverter 4 1 0 Release Note.pdf
       Datei:FortiConverter 4 2 0 Release Note.pdf
       Datei:FortiConverter 4 3 0 User Guide.pdf

Früher gab es die Möglichkeit über folgenden Link ein "free of charge" Tool bei Fortinet runterzuladen:

      Tool:     https://convert.fortinet.com/forticonverter/index.html
      Release:  https://convert.fortinet.com/forticonverter/release_note.html

Diese Möglichkeit existiert nicht mehr und die Resourcen der Links sind nicht mehr erreichbar.

IPv6

Wie sieht die Unterstützung für IPv6 aus im Zusammenhang mit Fortigate?

Folgende Dokumente giben Auskunft über die IPv6 Unterstützung im Zusammenhang mit Fortigate:

       Datei:Inside IPv6 1.0.pdf
       
       Datei:IPV6 BrochureV3 LR.pdf

Kann ich für IPv6 ein Source NAT konfigurieren?

Ein Source NAT für IPv6 kann ab FortiOS 5 GA Release eingerichtet werden. Dies muss über die Console konfiguriert werden:

       # config firewall ippool6
       # edit [ipool6 Name]
       # set name [Name des ipool6]
       # set endip [IPv6 Adresse]
       # set startip [IPv6 Adresse]
       # next
       # end

Um dies in der entsprechende Policy zu konfigurieren dh. dort wo das Source NAT benötigt wird führe folgendes aus:

       # config firewall policy6
       # edit [ID der entsprechenden Policy]
       # set nat [setze "enable oder disable"]
       # set ippool [setze "enable oder disable"]
       # set poolname [Name des ipool6]
       # next
       # end

Kann ich für IPv6 ein Destination NAT konfigurieren?

Für ein Destination NAT für IPv6 muss zuerst ein VIP-IPv6 erstellt werden das nachträglich in die entsprechende Policy eingefügt wird. Dies wird über die CLI folgendermassen konfiguriert:

       # config firewall vip6
       # edit [Name des vip6 Objekt]
       # set name [Name des vip6 Objekt]
       # set id [Optional Integere ID]
       # set comment [Setze eine event. Beschreibung]
       # set type [Setze "static-nat]
       # set src-filter [Gebe die IPv6 Adresse oder Range an]
       # set extip [Gebe die IPv6 Adresse oder den IPv6 start sowie end Range an]
       # set mappedip [Gebe die IPv6 Adresse oder den IPv6 start sowie end Range an]
       # set arp-reply [Gebe an ob auf ARP geantwortet werden soll "enable oder disable"]
       # set color [Gebe eine event. Farbe an die im Gui angezeigt werden soll "0-255"]
       # next
       # end

Wenn die VIP IPv6 in eine Gruppe eingefügt werden soll erstelle diese und füge die VIP IPv6 hinzu:

       # config firewall vipgrp6
       # edit [Name des vip6 Gruppen Objekt]
       # set name [Name des vip6 Gruppen Objekt]
       # set member [Name des vip6 Objekt]
       # next
       # end

Danach kann das entsprechende Objekt in die Policy eingefügt werden:

       # config firewall policy6
       # edit [ID der entsprechenden Policy]
       # set dstaddr [Name des vip6 Objekt sei es das Objekt oder die Gruppe]
       # next
       # end

Modem

Welche 3G USB Modem's (Compatibility) kann ich für eine FortiGate benutzen?

Ein FortiGate Device kann mit einem 3G USB Modem ausgerüstet werden dh. als Failover, Dial-In oder als alleiniger Internet Access resp. als Failover Device. Fortinet Selber bietet für Ihre Devices keine solchen 3G USB Modems an dh. es muss auf Fremdprodukte zurückgegriffen werden. Dabei besteht die Schwierigkeit -bei Provider- Produkte wie zB Swisscom den effektiv verwendeten Chip zu verfizieren und auch dieser wird bei grossen Providern immer wieder gewechselt. Betreffend Kompatibilitätsliste bietet die FortiGate ein Anhaltspunkt über die zu konfigurierenden 3G USB Modem Geräte auf der FortiGate selber. Auf der FortiGate ist jedoch der Menüpunkt für die 3G USB Modem's per Standard nicht ersichtlich. Um diesen Menüpunkt einzuschalten führe folgendes aus:

       NOTE Wenn die FortiGate auf der die Funktion aktiviert wurde über einen FortiGuard Service verfügt kann
            über den "Update Now" Menüpunkt unter "Configure Modem" die Liste der Unterstützten Geräte über FortiGuard
            auf den neusten Stand gebracht werden. Im Juni 2014 wurde durch Fortinet ein Dokument released mit einer
            Liste von unterstützten Geräten/Devices:
            
            Datei:Supported Modem List-201406-R1.pdf
       # config sys modem
       # set status enable
       # end

Nun kann man über folgenden Menüpunkt die Liste der 3G USB Modem Geräte einsehen:

       System > Network > Modem > Configure Modem
       
       NOTE Egal für was man sich entscheidet dh. für ein unterstütztes und aufgelistet Gerät eines Hersteller und/oder
            eines verfizierten Gerätes des Providers mit dem entsprechenden Chip, es sollte auf jedenfalls ausgiebig 
            getestet werden um die Funktion einwandfrei zu verfizieren!

Unter diesem Menüpunkt werden folgende Geräte aufgelistet:

       Supported (v1.014) FortiOS 5.0 Base
       
       Vendor           Model
       
       AirPrime	5220
       Alcatel	        HSPA Data Card
       Audiovox         PC5740
       Cmotech	        CNU680
       Dell	        5500
       Emobile	        D11LC
       Emobile	        ST Mobile
       Huawei	        E126
       Huawei	        E169
       Huawei	        E1692
       Huawei	        E173
       Huawei	        E180/E220/E3735
       Huawei	        E220/E3735
       Huawei	        E392/E397/E398
       Huawei	        E398
       Huawei	        E600/E169
       Huawei	        K3715
       Huawei	        K3765
       Huawei	        K3770
       Huawei	        K3806
       Huawei	        K4505
       Huawei	        K4511
       Kyocera	        KPC650/Passport
       LG	        L-02C
       LG	        L-03D
       Maxon	        USB3-8521
       MobiData         MBD-200HU
       Novatel	        ExpressCard34 Qualcomm 3G CDMA
       Novatel	        MC990D
       Novatel	        Merlin EX720
       Novatel	        Merlin S620
       Novatel	        Merlin S720
       Novatel	        Merlin X950D
       Novatel	        Merlin XU870
       Novatel	        Ovation MC950D
       Novatel	        Ovation MC998D
       Novatel	        Ovation U720
       Novatel	        Ovation U727
       Novatel	        U760
       Novatel	        U998
       Option	        GI1505
       Option	        GI332
       Option	        N.V. Globetrotter Fusion Quad Lite
       Option	        N.V. Globetrotter HSDPA Modem
       Option	        iCON 225 HSDPA
       Pantech	        PX-500
       Pantech	        UM190
       Quanta	        MU-Q101
       Sierra	        250U
       Sierra	        597
       Sierra	        598U
       Sierra	        AC312U/AC503/USB306/USB308
       Sierra	        AC313U
       Sierra	        AC501/880E
       Sierra	        AirCard 580
       Sierra	        AirCard 595
       Sierra	        AirCard 595U
       Sierra	        AirCard 875
       Sierra	        C885
       Sierra	        EM5625
       Sierra	        MC5720
       Sierra	        UC881
       Sprint	        U300
       ZTE	        AC2736
       ZTE	        MF190
       ZTE	        MF637
       ZTE	        MF668
       ZTE	        MF683
       ZTE	        MF691
       ZTE	        MF821
       ZTE	        MY39
       Supported (v1.031) FortiOS 5.2 Base'
       
       Vendor           Model
       
       AirPrime        5220
       Alcatel         HSPA Data Card
       Alcatel         x230M
       AnyDATA         ADY510L
       Audiovox        PC5740
       Cmotech         CNU680
       D-Link          DWM-156
       Dell            5500
       Emobile         D11LC
       Emobile         ST Mobile
       Franklin        S600C
       Huawei          E126
       Huawei          E169
       Huawei          E1692
       Huawei          E173
       Huawei          E180/E220/E3735
       Huawei          E220/E3735
       Huawei          E353
       Huawei          E372
       Huawei          E392
       Huawei          E392/E397/E398
       Huawei          E398
       Huawei          E600/E169
       Huawei          K3715
       Huawei          K3765
       Huawei          K3770
       Huawei          K3773
       Huawei          K3773/E3131
       Huawei          K3806
       Huawei          K4201
       Huawei          K4505
       Huawei          K4511
       Kyocera         KPC650/Passport
       LG              L-02C
       LG              L-03D
       Maxon           USB3-8521
       MobiData        MBD-200HU
       Novatel         ExpressCard34 Qualcomm 3G CDMA
       Novatel         MC679
       Novatel         MC990D
       Novatel         Merlin EX720
       Novatel         Merlin S620
       Novatel         Merlin S720
       Novatel         Merlin X950D
       Novatel         Merlin XU870
       Novatel         Ovation MC950D
       Novatel         Ovation MC998D
       Novatel         Ovation U720
       Novatel         Ovation U727
       Novatel         U760
       Novatel         U998
       Option          GI1505
       Option          GI332
       Option          N.V. Globetrotter Fusion Quad Lite
       Option          N.V. Globetrotter HSDPA Modem
       Option          iCON 225 HSDPA
       Pantech         PX-500
       Pantech         UM190
       Pantech         UML290
       Quanta          MU-Q101
       Sierra          250U
       Sierra          597
       Sierra          598U
       Sierra          AC312U/AC503/USB306/USB308
       Sierra          AC313U
       Sierra          AC320U
       Sierra          AC330U
       Sierra          AC340U
       Sierra          AC501/880E
       Sierra          AirCard 580
       Sierra          AirCard 595
       Sierra          AirCard 595U
       Sierra          AirCard 875
       Sierra          C885
       Sierra          EM5625
       Sierra          MC5720
       Sierra          MC5728
       Sierra          UC881
       Sprint          U300
       ZTE             AC2736
       ZTE             MF190
       ZTE             MF190U
       ZTE             MF637
       ZTE             MF668
       ZTE             MF680
       ZTE             MF683
       ZTE             MF691
       ZTE             MF821
       ZTE             MY39

Es besteht ebenfalls die Möglichkeit unter "Configure Modem" selber ein "3G USB Modem" zu konfigurieren. Dazu benötigt man folgende Informationen:

       Vendor
       Model
       Vendor ID (Hex)
       Product ID (Hex)
       Init String

Ein 3G USB Modem, angeschlossen an eine FortiGate, ist "nicht" Hot-Swap dh. das 3G USB Modem muss beim Start der FortiGate angeschlossen sein um dieses durch die FortiGate einwandfrei zu erkennen. Auch nach einer einwandfreier Erkennung darf dieses nicht aus- und wieder eingesteckt werden dh. das Funktioneren eines 3G USB Modems unter einer FortiGate wird nur gewährleistet, wenn das 3G USB Modem beim Start einer FortiGate am Device angeschlossen ist. Ueber die Kommandozeile können etliche Optione zusätzlich konfiguriert werden:

       # config system modem
       # set account-relation [equal | fallback]
       # set altmode [enable | disable]
       # set authtype1 [pap chap mschap mschapv2]
       # set authtype2 [pap chap mschap mschapv2]
       # set authtype3 [pap chap mschap mschapv2]
       # set auto-dial [enable | disable]
       # set connect_timeout [Definiere das Timout in Sekunden 30 - 255; Standard 90]
       # set dial-on-demand [enable | disable]
       # set distance [Definiere die Routing "distance"; Standard 10]
       # set extra-init1, extra-init2, extra-init3 [Init String des Modem]
       # set holddown-timer [Nur zu benutzen für Fallback 1 - 60 Sekunden; Standard 60]
       # set idle-timer [Nur bei "mode standalone"; Setzt Idel; Standard 5 Minuten]
       # set interface [Gebe ein Interface Name an der das Modem representiert]
       # set lockdown-lac [Erlaubt nur LAC "local area code"; Standard null]
       # set mode [redudant | standalone]
       # set modem-dev1, modem-dev2, modem-dev3 [internal | pcmciawireless]
       # set network-init [Setzt den "Network Operation" AT command zB "AT+COPS=<mode>,[<format>,<oper>[,<AcT>]]"; Standard 0 = Auto / 1 = Manuell]
       # set passwd1, passwd2, passwd3 [Passwort]
       # set peer_modem1 [actiontec | ascendTNT | generic]
       # set peer_modem2 [actiontec | ascendTNT | generic]
       # set peer_modem3 [actiontec | ascendTNT | generic]
       # set phone1 [Telefon Nummer dial-up Konto]
       # set phone2 [Telefon Nummer dial-up Konto]]
       # set phone3 [Telefon Nummer dial-up Konto]]
       # set pin-init [Setze AT Kommando für PIN]
       # set ppp-echo-request1 [disable | enable]
       # set ppp-echo-request2 [disable | enable]
       # set ppp-echo-request3 [enable | disable]
       # set priority <integer> [enable | disable]
       # set redial [Maximaler Wählvorgang 1-10; Standard null]
       # set status [enable | disable]
       # set username1 [Username dial-up Konto]
       # set username2 [Username dial-up Konto]
       # set username3 [Username dial-up Konto]
       # set wireless-port [TTY Port für 3G Modems; Standard 0 = Default]
       # end

Kann ich eine Dual ISP Implementierung anhand eines Modem konfigurieren?

Grundsätzlich ist dies möglich und ist durchzuführen wie unter folgenden Artikel erklärt:

       Fortigate:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F

Dies was zu berücksichtigen ist wäre der Umstand, dass wenn ein "dynamisches Interface" benutzt wird, wie bei einem Modem, die Routing Table obwohl ECMP aktiviert ist nicht auf den neusten Stand gebracht wird (Default Gateway). In so einem Fall muss der FortiGate mitgeteilt werden, dass für dieses "dynamische Interface" ein "dynamischer Gateway" gilt und somit die nötige Route/Gateway in die Routing Tabelle automatisch eingetragen wird. Dies wird der FortiGate mit folgendem Kommando mitgeteilt:

       # config router static 
       # edit [Wähle den entsprechenden Eintrag/Sequenz] 
       # dynamic-gateway enable 
       # next 
       # end 
       
       NOTE Damit diese Konfiguration durchgeführt werden kann muss das entsprechende "dynamische Interface" aktiv sein!

SMS

Wie konfiguriere ich meinen eigenen SMS Provider/Server?

Wenn auf einer FortiGate eine Two-Factor Authentication eingerichtet werden möchte und dies über SMS durchgeführt wird so muss für die Versendung der SMS ein EMail SMS Provider konfiguriert werden. Eine Versendung von SMS über HTTP GET und/oder POST ist über einen FortiGate Device nicht möglich. Folgender Befehl wird benutzt für die Definition eines SMS Servers/Providers:

       FortiOS 4.3 (ab Patch 9)
       # config user sms-provider
       # edit [Name des Providers/Servers]
       # set mail-server [FQDN des Mail Server]
       # next
       # end
       FortiOS 5.0 / 5.2
       # config system sms-server
       # edit [Name des Providers/Servers]
       # set mail-server [FQDN des Mail Server]
       # next
       # end
       NOTE Bei der Definierung eines SMS Servers/Providers handelt es sich um einen "Mail Server"
            der die per E-Mail übermittelten Nachrichten entgegen nimmt und diese anhand der im
            E-Mail enthaltenen Informationen per SMS an die Zielperson versendet!

Unter FortiOS 5.0 steht die Funktion einer Definierung des SMS Providers/Servers über das Gui zur Verfügung:

       System > Config > Messaging Servers
       
       NOTE Unter FortiOS 5.2 exisitert der Menüpunkt "Messaging Servers" nicht mehr und wurde in folgenden
            Menüpunkt verschoben:
            
            System > Config > Advanced

Wenn das Versenden der SMS über "HTTP GET und/oder POST" gewünscht kann dies über den FortiAuthenticator konfiguriert werden. Dieser agiert dann in der Authentifizierung als Radius Server mit Two-Factor Authentifizierung. Weitee Informationen betreffend "HTTP GET und/oder POST" Konfiguration auf einem FortiAuthenticator siehe nachfolgenden Artikel:

       FortiAuthenticator:FAQ#Wo_kann_ich_f.C3.BCr_das_Versenden_von_SMS_Nachrichten_einen_entsprechenden_SMS_Gateway_definieren.3F

Sniffer

Wie benutze ich das Sniffer Kommando "diagnose sniffer packet"?

Das Sniffer Kommando ist folgendermassen aufgebaut:

       # diagnose sniffer packet <interface_name> <‘filter’> <verbose> <count> a
       
       <interface_name>
       Name des Interfaces auf dem der Sniffer ausgeführt wird zB port1 oder internal. Es kann ebenfalls "any" benutzt werden
       um auf "allen" Interfaces den Sniffer auszuführen!
       
       <‘filter’>
       Definition nach "was" gefiltert werden soll. Das Keyword "none" bedeutet kein Filtering und somit werden alle Packete
       angezeigt. Ein Filter muss innerhalb von "quotes" definiert werden! Als "quotes" kann folgendes benutzt werden: ‘ ' "
       
       Syntax: '[ [src|dst] host<host_name_or_IP1> ] [ [src|dst] host<host_name_or_IP2> ] [ [arp|ip|gre|esp|udp|tcp] [port_no] ] [ [arp|ip|gre|esp|udp|tcp] [port_no] ]'
       
       Beispiele:
       
       Nicht Port 443            = '!port 443'
       Port 443                  = 'port 443'
       Host                      = 'host 192.168.1.1'
       Host und Host             = 'host 192.168.1.1 and host 192.168.1.2' 
       Host und Port 443         = 'host 192.168.1.1 and port 443' 
       Host und nicht Port 443   = 'host 192.168.1.1 and !port 443' 
       Host oder Port 443        = 'host 192.168.1.1 or port 443' 
       Nur udp Traffic           = 'udp'
       Nur SYN Flag              = 'tcp[13]&2==2'
       Nur ARP Packete           = 'arp'
       
       <verbose>
       Definiert den Level der "Verbosity":
       1 - Zeigt header des Packets
       2 - Zeigt header und data von IP Packeten
       3 - Zeigt header und data von Ethernet Packeten (Frames ACSII und HEX)
       4 - Zeigt header und Interface Name des Packets
       5 - Zeigt header und data von IP Packeten mit Interface Namen
       6 - Zeigt header und data von Ethernet Packeten mit Interface Namen
          
       <count>
       Definiert den Counter resp. die Anzahl der Packete die angezeigt werden sollen bevor der Sniffer stoppt. Wenn kein
       Counter defniert wird gilt "unlimited". Dies bedeutet wiederum um den Sniffer abzubrechen muss folgendes in der
       Session/Console durchgeführt werden:
       
       <CTRL C>.
       
       Wird nach dem Counter "a" angegeben so wird das Datum ausgegeben mit genauer Zeit!

Diese Informationen stammen aus vers. Quellen sowie folgender link:

       http://kb.fortinet.com/kb/documentLink.do?externalId=11186

Sniffe den Traffic auf einem PPPoE Interface?

Wenn man auf einem PPPoE Interface den Traffic sniffen möchte ist das "so" nicht einfach möglich. Dies bedeutet, wenn auf dem "wan1" Interface (PPPoE konfiguriert) folgendes Kommando benutzt wird "diagnose sniffer packet wan1" sieht man nur die PPPoE "encapsulated" Packete jedoch nicht die effektive Source und Destination. Um den Traffice zu sniffen "bevor" diese "encapsulated" werden muss das Interface "ppp0" benutzt weden. Das bedeutet folgendes:

       # diagnose sniffer packet ppp0
       
       NOTE Dieses Interface existiert natürlich nur wenn PPPoE auch wirklich konfiguriert ist!

Sniffe den Traffic und zeige für das Packet Datum und Zeit an?

Wenn man innerhalb der Sniffer-Ausgabe für jedes Packet das Datum und die Zeit anzeigen möchte muss dies nach dem Counter mit "a" angegeben werden:

       # diagnose sniffer packet any 1 0 a
       
       NOTE Die Angabe 1 gibt die Verbosity an dh. " 1 = Zeigt header des Packets". Die Position "0" indiziert den 
            Counter was wiederum bedeutet "wieviele" Packet angezeigt werden sollen (0 = unlimited).

Sniffe den gesamten Traffic "ausser Port 22"?

       # diagnose sniffer packet [Interface Name] "!port 22"

Benutze den Schalter "3" um die Ethernet Frames in ACSII und HEX anzeigen zu lassen dh.:

       # diagnose sniffer packet [Interface Name] "!port 22" 3

Sniffe den Traffic "für einen bestimmten Port" auf "allen Interfaces"?

       # diagnose sniffer packet any "port 443" 4

Benutze den Schalter "3" um die Ethernet Frames in ACSII und HEX anzeigen zu lassen dh.:

       # diagnose sniffer packet any "port 443" 3

Sniffe den Traffic "für einen bestimmten Host/IP" auf "allen Interfaces"?

       # diagnose sniffer packet any "host [IP Adresse für Dst]" 4

Benutze den Schalter "3" um die Ethernet Frames in ACSII und HEX anzeigen zu lassen dh.:

       # diagnose sniffer packet any "host [IP Adresse für Dst]" 3

Sniffe den gesamten Traffic "von und zu einem bestimmten Host auf port 80"?

       # diagnose sniffer packet [Interface Name] "host 10.0.1.10 and port 80"

Benutze den Schalter "4" um den Interface Namen anzeigen zu lassen dh. :

       # diagnose sniffer packet [Interface Name] "host 10.0.1.10 and port 80" 4

Sniffe den gesamten UDP/DNS Traffic für ein bestimmtes Interface?

       # diagnose sniffer packet [Interface Name] "udp and port 53"

Sniffe alle TCP Packete "mit einem SYN Flag"?

       # diagnose sniffer packet any 'tcp[13] == 2'

Sniffe alle TCP Packete "mit einem SYN Flag und nur HTTP"?

       # diagnose sniffer packet any "port 80 and tcp[13]&2==2" 4

Sniffe alle ICMP Packete "ausser die für Ping"?

       # diagnose sniffer packet any 'icmp[0] != 8 and icmp[0] != 0' 4

Sniffe alle 802.1q Tagging Packete?

       # diagnose sniffer packet any "none" 6 0 a

Debug Flow

Was ist das spezielle am Kommando "diagnose debug flow"

Dieser Befehl zeigt wie ein Packet abgehandelt wird dh. über welches Interface es reinkommt, wie es geroutet wird, ob die Policy angesprochen wird etc. Es ist ein Monitor für Flow Packages:

       # diagnose debug flow filter clear
       
       # diagnose debug flow show console enable
       # diagnose debug flow filter proto [Angabe der Protokoll Nummer zB "6" für TCP]
       
       NOTE Weitere Informationen betreffend Protokoll Nummern findet man im folgenden Artikel:
            
            Fortigate:FAQ#Fortigate_benutzt_in_gewissen_Konfigurationen_Protokoll_Nummern_.28Assigned_Internet_Protocol_Numbers.29.3B_Wo_finde_ich_diese.3F 
       
       # diagnose debug flow filter [Definition des Filters]
               vf: any
               proto: any
               Host addr: any
               Host saddr: any
               Host daddr: any
               port: any
               sport: any
               dport: any
       
       NOTE Als Filter können folgende Angaben definiert werden:
            
            addr      IP address.
            clear     Clear filter.
            daddr     Destination IP address.
            dport     Destination port.
            negate    Inverse filter.
            port      port
            proto     Protocol number.
            saddr     Source IP address.
            sport     Source port.
            vd        Index of virtual domain.
       
       # diagnose debug flow trace start 20
       # diagnose debug enable
       # diagnose debug flow trace stop
       # diagnose debug flow filter clear
       # diagnose debug flow show console disable
       # diagnose debug disable

Packet Capture

Wie kann ich die Grösse für "Packet Capture" anpassen?

Wenn ein "Packet Capture" ausgeführt wird (Wireshark Format) unter FortiOS 5.0 gilt ein Standard Grösse des "Capture" Files von 10 MB. Dies bedeutet sind die 10 MB aufgebraucht durch einen laufenden "Packet Capture", werden die alten Informationen durch die neuen überschrieben. Möchte man unter FortiOS 5.0 die Grösse anpassen muss folgender Befehl ausgeführt werden auf Kommandozeile:

       # config log disk setting
       # set max-policy-packet-capture-size 10
       # end

Diese Konfiguration ist ebenfalls über Web Mgmt. Interface möglich unter:

       System > Config > Advanced > Logging and Archiving > [Edit] > Packet Capture
       
       NOTE Unter FortiOS 5.2 wird bei kleineren Devices das Logging auf die Disk deaktiviert resp.
            die Kommandos betreffend "config log disk setting" stehen nicht mehr zur Verfügung. Weitere
            Informationen siehe:
            
             FortiOS 5.2 Software Matrix
             
            Auch der Meüpunkt für "Packet Capture" existiert unter FortiOS 5.2 nicht mehr unter folgenden Punkt:
            
            System > Network > Packet Capture
            
            Dieser Punkt kann aber direkt angegangen werden über folgenden "inoffiziellen" Link:
            
            https://[Management IP FortiGate]/p/firewall/sniffer/
            
            Das "Packet Capturing" kann jedoch nachwievor in der Kommandozeile konfiguriert werden
            anhand folgenden Kommandos:
            
            # config firewall sniffer 
            # get
            # edit 1
            # new entry '1' added
            # get
            id                  : 1
            status              : enable 
            logtraffic          : utm 
            ipv6                : disable 
            non-ip              : disable 
            interface           : 
            host                : 
            port                : 
            protocol            : 
            vlan                : 
            application-list-status: disable 
            ips-sensor-status   : disable 
            av-profile-status   : disable 
            webfilter-profile-status: disable 
            spamfilter-profile-status: disable 
            dlp-sensor-status   : disable 
            ips-dos-status      : disable 
            max-packet-count    : 4000

Kann ich das "Packet Capture" für Administratoren Einschränken?

Administratoren auf einer FortiGate basieren betreffend Ihrere Rechte auf Profiles die selber erstellt werden können. Diese Profiles findet man im Web Mgmt. Interface unter folgender Position:

       System > Admin > Admin Profiles 

AB FortiOS 5.2 kann über diese erstellten und/oder exisiterenden Profiles das "Packet Capture" eingeschränkt werden:

       System > Admin > Admin Profiles > [Wähle ein entsprechendes Profile] > Firewall Configuration > Packet Capture Configuration > [None | Read Only | Read-Write]

Die Konfiguration steht ebenfalls über Kommandozeile zur Verfügung:

       # config system accprofile
       # edit [Name des entsprechenden Profiles]
       # set fwgrp custom
       # config fwgrp-permission
       # set packet-capture [read-only | read-write | none]
       # end
       # end
       # end
       # end

Danach muss das entsprechende Profile dem entsprechenden Administrator hinzugefügt werden:

       # config system admin
       # edit [Name des entsprechenden Administrators]
       # set accprofile [Name des entsprechenden Profile das unter "accprofile" erstellt wurde]
       # end

CLI

Allgemein

Was ist der Unterschied auf einer CLI wenn die Funktion "vdom" genutzt wird?

Normalerweise wird auf der CLI der Befehl "config system global" benutzt (vdom nicht aktiviert). Wenn Vdom aktiviert ist funktioniert dieser Befehl nicht mehr da durch die "vdom" Aktivierung eine zusätzliche Ebene erstellt wird. Aus diesem Grund kann nicht mehr direkt "config system global" benutzt werden sondern es muss zuerst die Ebene gewählt werden:

       Wähle die Ebene Global
       # config global
       # config sytem global
       Wähle die entsprechende vdom
       # config vdom
       # edit [Vdom Name]

Wie führe ich auf einer FortiGate auf der Kommandozeile einen "tracert" und/oder "ping" aus?

Um einen "traceroute/tracert" und/oder "ping" auszuführen muss auf der Kommandozeile einer FortiGate folgendes durchgeführt werden:

       # execute traceroute [IPv4 Adresse oder FQDN Name der Destination]
       # execute ping [IPv4 Adresse oder FQDN Name der Destination]
       
       NOTE "execute ping" kann durch folgende Option konfiguriert/beinflusst werden:
            
            # execute ping-options view-settings
            # execute ping-options data-size [bytes]
            # execute ping-options df-bit [yes | no]
            # execute ping-options pattern [2-byte_hex]
            # execute ping-options repeat-count [repeats]
            # execute ping-options source [auto | source-intf_ip]
            # execute ping-options timeout [seconds]
            # execute ping-options tos [service_type]
            # execute ping-options ttl [hops]
            # execute ping-options validate-reply [yes | no]
            
            Dies bedeutet: Möche man eine Ping absetzen und für diesen Ping eine bestimmte
            Source IP konfigurieren kann "execute ping-options source" benutzt werden. Per
            Standard steht diese Option auf "aut"!

Wie konfiguriere ich den Hostnamen einer FortiGate über Kommandozeile?

Um den Hostnamen einer FortiGate über Kommandozeile zu konfigurieren benütze folgenden Befehl:

       # config system global
       # set hostname [Hostname]
       # end

Zur Ueberprüfung ob der Hostname korrekt gesetzt wurde kann folgendes benutzt werden:

       # get system status | grep Hostname

Wie kann ich auf einer Fortigate einen "daily-reboot" (Neustart) konfigurieren?

Es kann vorkommen, dass man auf einem Fortigate Device einen "daily-reboot" durchführen muss zB wenn spezielle ISP's einen neue IP zuweisen (Deutsche Telecom). Wenn dies geschieht kann es zu Problemen kommen auf dem Device. Die Lösung ist ein schlichter Neustart des Devices. Dieser kann über CLI (Kommandozeile) konfiguriert werden. Logge Dich auf die CLI ein (zB über WebInterface > Dashboard > Status > CLI oder über SSH). Danach gebe ein:

       # config system global
           set daily-restart enable
           set restart-time 05:00
       end

Ab diesem Zeitpunkt wird der Device immer 05:00 neu gestartet. Wird der Neustart ausgeführt wird folgendes angezeigt:

       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

Wie finde ich heraus welche Befehle auf der CLI benutzt werden wenn im Webinterface ein Konfiguration durchgeführt wird?

Erstelle eine Serielle Verbindung auf den Consolen Port. Gebe dort ein:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug cli -1
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       NOTE Die Angabe -1 gibt den Debug Level an dh. die Tiefe der Informationen. Um die Consolen Outputs 
            anzuzeigen betreffend den WebInterface Konfigurationen muss mind "-1" gewählt werden. Das max.
            liegt bei 8!

Nun ist der Debugger eingeschaltet. Folgendermassen wird er wieder ausgeschaltet.

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info
       
       ACHTUNG Wenn der Debug Vorgang nicht abgeschaltet wird dh. "disable" läuft dieser permanent mit im 
               Hintergrund dh. dieser Vorgang ist "sehr" Performance Intensiv und sollte deshalb umbedingt
               ausgeschaltet werden! Wenn der User sich ausloggt ist dieser Debug Vorgang ebenfalls noch
               aktiv dh. "persistent"! Aus diesem Grund umbedingt nach Gebrauch ausschalten.

Wie kann ich eine Konfiguration temporär Aktiv setzen und event autom. ein Roll-Back initieren?

So ein Scenario kann anhand des folgenden Kommandos durchgeführt werden:

       # config system global
       # set cfg-save [automatic | manual | revert]
       # end

Die verschiedenen Optionen haben folgende Bedeutung:

       • automatic — Automatisches Speichern nach jeder Konfigurations Aenderung
       
       • manual    — Manuelles speichern der Konfigurations Aenderung anhand des Kommandos:
           
                     # execute cfg save
       
       • revert    — Manuelles speichern der Konfigurations Aenderung innerhalb des definierten Timouts (execute cfg save) 
                     oder 
                     Automatisches Roll-back nach Ablauf des Timouts
                     oder
                     Manuelles Roll-back innerhalb des Timeouts (execute cfg reload).

Ein solches Scenarion kann genutzt werden um eine Konfiguration zu testen bevor diese aktiv wird dh. wenn zB ein Routing Eintrag erstellt werden soll jedoch die Gefahr besteht selber ausgeschlossen zu werden da der Routing Eintrag die verbindung "zum" FortiGate Device betrifft. In so einem Scenario würde folgendermassen vorgegangen werden:

       - Aktiviere den "revert" Mode:
         
         # config system global
         # set cfg-save revert
       
       - Setze das entsprechende Timout:
       
         # set cfg-revert-timout [Angabe in Sekunden zB 600]
         # end
       
       - Speichere den Roll-Back Punkt:
         
         # execute cfg save
       
       - Führe die Konfiguration aus dh. in unserem Beispiel das Routing (Ab "end" gilt das Timout):
         
         # config router static
         # edit [Gebe einen Integer an]
         # set dst [IPv4 Adresse und Subnet Mask]
         # set gateway [IPv4 Adresse]
         # end
       
         System will reload in the next 10 seconds....
         System will reload in the next 9 seconds....
         System will reload in the next 8 seconds....
         System will reload in the next 7 seconds....
         System will reload in the next 6 seconds....
         
         NOTE Zur Warnung werden die letzten 10 Sekunden auf der Console als
              Countdown angezeigt!
       
       - Teste die Konfiguration:
       
         --> Ist diese "Erfolgreich" führe folgendes Kommandos innerhalb des definierten
             Timeouts aus:
             
             # execute cfg save
         
         --> Ist diese "Nicht Erfolgreich" führe innerhalb des Timeouts ein Roll-Back
             durch anhand folgenden Befehl:
             
             # execute cfg reload
             
             oder
             
             Lass das Timout ablaufen damit ein Automatisches Roll-back durchgeführt wird.

Kann ich Linux/Unix basierender Befehl "grep" auf der Kommandozeile benützen?

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

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

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

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

Wie finde ich heraus welche Objekte durch welche Funktionen/Konfiguration benützt werden?

Wenn man auf einer FortiGate über Gui sowie über CLI arbeitet und Modifikationen durchführt kommt man immer wieder in die Situation, dass Objekte nicht verändert oder gelöscht werden können da diese "in use" dh. in Gebrauch sind. Dies bedeutet da die Objeket in Gebrauch sind können diese durch deren Abhängigkeit weder gelöscht und/oder zum Teil verändert werden. Das WebGui bietet zwar eine Möglichkeit diese Abhängigkeiten aufzuzeigen zB für Gruppen Objekte (äusserste Rechte Spalte "Ref."). Auf der Kommandozeile steht diese Funktion ebenfalls zur Verfügung und ist vielschichtiger da über WebGui die Spalte "Ref." nicht immer zur Verfügung steht. Dies bedeutet, wenn man unter "Firewall Objects > Addresses" die Spalte "Ref." sucht ist diese per Standard nicht vorhanden kann jedoch als zusätzliche Spalte eingeblendet werden. Der Befehl auf Kommandozeile der für diese Funktion zuständig ist heisst:

       # diagnose sys checkused <object path>

Dies bedeutet: anhand des "internen" Objekt Namens kann im Zusammenhang mit dem Kommando "diagnose sys checkused" herausgefunden werden, "Wo" das Objekt in Benutzung ist. Nachfolgend einige oft gebrauchte Beispiele:

       # diagnose sys checkused system.interface.name <interface name>
       # diagnose sys checkused system.dhcp.server:name <dhcp name> 
       
       # diagnose sys checkused firewall.address:name <address name>
       # diagnose sys checkused firewall.addrgrp.member.name <address group name>
       
       # diagnose sys checkused firewall.profile: <profile name>
              
       # diagnose sys checkused firewall.service.group:name <servicegroup name>

Gibt es eine Möglichkeit auf einer FortiGate "sämtliche" zur Verfügung stehenden Befehle/Konfiguration aufzulisten?

Ja diese Möglichkeit besteht und zwar anhand des Befehls "tree". Wird dieser ausgeführt wird die CLI (Command Line Interface) Struktur auf der FortiGate ausgegeben. Nachträglich ein Beispiel mit dessen Output:

       # tree
       
       Output basierend auf FortiOS 5.0.7 tree-5.0.7
       # tree
       
       Output basierend auf FortiOS 5.2.0 tree-5.2.0

Divers

Was versteht man unter "Fortinet UTM (Unified Threat Management) for Dummies"?

"Fortinet UTM for Dummies" ist ein Ueberblick über vers. Security Aspekte aber so geschrieben, dass diese für jedermann gut verständlich sind:

       Datei:FTNT UTM For Dummies.pdf

Fortigate benutzt in gewissen Konfigurationen Protokoll Nummern (Assigned Internet Protocol Numbers); Wo finde ich diese?

Bei Konfigurationen speziell auf der Console müssen Nummern für die Protokolle definiert werden zB "proto=6". Diese Nummern nennt man (Assigned Internet Protocol Numbers) und findet man unter folgenden Link:

       Allgemein:Assigned-Internet-Protocol-Numbers-RFC

Wo findet ich zum ueben Fragen fuer die Zertfifizierung von Fortinet?

Nachfolgende zwei Dokumente listen Uebungsfragen und -Antworten auf fuer die Pruefung von Fortinet! Diese Dokumente sind dazu da um sich für die Pruefung vorzubereiten:

       Datei:Uebungs-fragen-A.pdf
       Datei:Uebungs-fragen-P.pdf