FortiGate-5.0-5.2:FAQ: Unterschied zwischen den Versionen

Aus Fortinet Wiki
Zur Navigation springen Zur Suche springen
Zeile 1.206: Zeile 1.206:
         Regulatory Doc  [[Datei:Regulatory-Compliance-Document_FG-TRAN-CFP2-LR4_Rev_1.00.pdf]]
         Regulatory Doc  [[Datei:Regulatory-Compliance-Document_FG-TRAN-CFP2-LR4_Rev_1.00.pdf]]
         Regulatory Doc  [[Datei:Regulatory-Compliance-Document_FG-TRAN-CFP2-SR10_Rev_1.00.pdf]]
         Regulatory Doc  [[Datei:Regulatory-Compliance-Document_FG-TRAN-CFP2-SR10_Rev_1.00.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-GC_Rev 1.02.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-GC_Rev 2.0.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-LX_Rev 2.0.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-QSFP+-LR Rev 1.00.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-QSFP+-SR Rev 1.00.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-SFF_Rev 1.00.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-LR Rev 2.0.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-SR Rev 2.0.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-SX Rev 1.02.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-XFPLR Rev 1.00.pdf]]
        Regulatory Doc  [[Datei:Regulatory-Compliance-Document FG-TRAN-XFPSR Rev 1.00.pdf]]


== ASIC/Hardware Acceleration ==
== ASIC/Hardware Acceleration ==

Version vom 20. März 2017, 15:57 Uhr

FortiGate-5.0-5.2: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 SWITZERLAND.                       *
        *                                                                   *
        *********************************************************************

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

FAQ

Documentation

Wo findet ich die Dokumente wie Datasheets, Quick Start Guide, User Guide etc. ?

Ueber folgenden internen Link findet man Datasheets und Quick Start Guide betreffend Fortigate Devices:

       Fortinet:ProduktInfo

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

       http://community.fortinet.com/

Auf folgender Seite findet man alle orginal Dokumente betreffend Fortigate:

       http://docs.fortinet.com/fortigate/admin-guides (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-Log-Message-Reference-40-mr3.pdf                                            (FortiOS 4.0 MR3 Log Message Refrence)
       Datei:FIPS-CC-Certification-History.pdf                                                     (FortiOS 4.0 FIPS Common Criteria Compliant Operation History)
       
       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                                                 (FortiOS 5.0 Install and System Administration)
       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://help.fortinet.com/fgt/handbook/50/5-0-8/max-values.html)
       Datei:Fortigate-default settings.pdf                                                        (FortiOS 5.0 Default Settings)
       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:Fips-cc-50.pdf                                                                        (FortiOS 5.0 FIPS 140-2 and Common Criteria Compliant Operation)
       Datei:FIPS-CC-Certification-History.pdf                                                     (FortiOS 5.0 FIPS Common Criteria Compliant Operation History)
       Datei:FortiGate-Log-Message-Reference-50.pdf                                                (FortiOS 5.0 Log Message Refrence)
       
       Datei:FortiOS-Compatibility-FMG-FAZ.pdf                                                     (Managed FortiManager/FortiAnalyzer Compatibility Matrix)
       Datei:FortiOS-Compatibility-FAZ.pdf                                                         (Managed FortiAnalyzer Compatibility Matrix)
       Datei:FortiOS-Compatibility-FMG.pdf                                                         (Managed FortiManager Compatibility Matrix)
       
       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)
       
       Technical Documentation Update FortiOS:
       Datei:Fortinet-tech-docs-update-sept-2014.pdf                                               (Fortinet Technical Documentation Update - September 1st to September 24th)
       Datei:Fortinet-tech-docs-update-oct-2014.pdf                                                (Fortinet Technical Documentation Update - September 24th to October 22nd)
       Datei:Fortinet-tech-docs-update-dec-2014.pdf                                                (Fortinet Technical Documentation Update - December to January 12th)
       Datei:Fortinet-tech-docs-update-feb-2015.pdf                                                (Fortinet Technical Documentation Update - January 12th to February 28th)
       
       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)
       Datei:Sysadminnote-sslpublickeypinning.pdf                                                  (Mozilla SSL Public Key Pinning – Bulletin)
       Datei:Layered-Security.pdf                                                                  (A Look at Layered Security)
       Datei:fortios-scanning-of-archive-compressed-files.pdf                                      (AV Engine and Supported Compression Formats)
       Datei:Entropy Tokens with FortiGate.pdf                                                     (Using Entropy Tokens with FortiGate Products)
       Datei:IPS-Signature-Syntax-Guide.pdf                                                        (IPS Signature Syntax Guide)
       
       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: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: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)
       Datei:FortiGate-Solutions-RSSO-RADIUS-Single-Sign-On.pdf                                    (Fortinet Solutions RSSO (RADIUS Single Sign On))
       Datei:Using-a-custom-certificate-for-SSL-inspection.pdf                                     (Using a custom certificate for SSL inspection)
       Datei:LicensingIsolatedFortiGates.pdf                                                       (FortiGuard Licensing for FortiGates with Limited or No Connectivity)
       Datei:Setting-up-YouTube-for-Education-Fortigate.pdf                                        (Setting up YouTube for Education)
       Datei:Protect-web-server.pdf                                                                (Protecting a web server from common external attacks)
       Datei:Config DLP sensor to block files by the extension.pdf                                 (Configure a Data Link Prevention Sensor to block filesby the extension)
       Datei:User-authentication-FSSO-LDAP-FSSO-Advanced-Mode.pdf                                  (User based authentication on FSSO, using LDAP and FSSO agent on advanced mode)
       Datei:Vdoms-to-host-more-than-one-fortios-instance.pdf                                      (Using VDOMs to host two FortiOS instances on a single FortiGate unit)
       Datei:Ips-logging-dns-domain-kookups.pdf                                                    (Logging DNS domain lookups)
       Datei:FortiGate-control-DLMS-COSEM-traffic.pdf                                              (Control of Distribution Line Message Specification (DLMS) or Companion Specification for Energy Metering (COSEM) Traffic)
       Datei:Using-Port-443-for-MGMT-Access-and-SSL-VPN.pdf                                        (Using Port 443 for MGMT Access and SSL VPN)
       Datei:Sign-a-CA-certificate-on-Windows-2008-and-import-certificate-for-SSL-inspection.pdf   (How to sign a CA certificate on Windows server 2008 and import certificate for SSL inspection to a FortiGate)
       Datei:How-To-Buy-&-Import-SSL-Certificate.pdf                                               (Purchase and Import a Signed SSL Certificate)
       
       Datei:Extra-help-ipsec-vpn.pdf                                                              (Extra help: IPsec VPN)
       Datei:Extra-help-troubleshooting-your-installation.pdf                                      (Extra help: Troubleshooting your installation)
       FortiOS 5.2
       Datei:Fortigate-install-system-admin-52.pdf                                                 (FortiOS 5.2 Install and System Administration)
       Datei:Fortios-handbook-system-administration-52.pdf                                         (FortiOS 5.2 Handbook System Administration)
       Datei:Fortigate-cookbook-52.pdf                                                             (FortiOS 5.2 FortiGate Cookbook Expanded Version)
       Datei:Fortigate-cookbook-and-quickstart-guide-52.pdf                                        (FortiOS 5.2 FortiGate Cookbook and Quickstart Guide)
       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:Fortigate-max-values-52.pdf                                                           (FortiOS 5.2 Max Values / Online Version http://help.fortinet.com/fgt/handbook/52/5-2-4/max-values.html)
       Datei:Supported-RFCs-52.pdf                                                                 (FortiOS 5.2 Supported RFC)
       Datei:FortiOS-Upgradepath-52.pdf                                                            (FortiOS 5.2 Upgrade Matrix)
       Datei:FortiGate-Log-Message-Reference-52.pdf                                                (FortiOS 5.2 Log Message Refrence)
       
       Datei:FortiGate Managed FortiSwitch Matrix.pdf                                              (Managed FortiSwitch Compatibility Matrix)
       Datei:FortiOS-Compatibility-FMG-FAZ.pdf                                                     (Managed FortiManager/FortiAnalyzer Compatibility Matrix)
       Datei:FortiOS-Compatibility-FAZ.pdf                                                         (Managed FortiAnalyzer Compatibility Matrix)
       Datei:FortiOS-Compatibility-FMG.pdf                                                         (Managed FortiManager Compatibility Matrix)
       
       Datei:Fortigate-getting-started-52.pdf                                                      (FortiOS Handbook Getting Started for FortiOS 5.2)
       Datei:Fortigate-generic-quickstart-guide-52.pdf                                             (FortiOS Handbook QuickStart Guide FortiGate/FortiWiFi FortiOS 5.2)
       Datei:Fortigate-firewall-52.pdf                                                             (FortiOS Handbook Firewall for FortiOS 5.2)
       Datei:Fortios-handbook-52.pdf                                                               (FortiOS Handbook OS for FortiOS 5.2)
       Datei:Fortigate-ha-52.pdf                                                                   (FortiOS Handbook High Availability FortiOS 5.2)
       Datei:Fortigate-loggingreporting-52.pdf                                                     (FortiOS Handbook Logging and Reporting FortiOS 5.2)
       Datei:Fortigate-vdoms-52.pdf                                                                (FortiOS Handbook Virtual Domains (VDoms) FortiOS 5.2)
       Datei:Fortigate-authentication-52.pdf                                                       (FortiOS Handbook Authentication for FortiOS 5.2)
       Datei:Fortigate-security profiles-52.pdf                                                    (FortiOS Handbook Security Profiles for FortiOS 5.2)
       Datei:Fortigate-troubleshooting-52.pdf                                                      (FortiOS Handbook Troubleshooting 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-load-balance-52.pdf                                                         (FortiOS Handbook Load Balancing FortiOS 5.2)
       Datei:Fortigate-ipsec-52.pdf                                                                (FortiOS Handbook IPsec VPN FortiOS 5.2)
       Datei:Fortigate-compliance-52.pdf                                                           (FortiOS Handbook Certifications and Compliances for FortiOS 5.2)
       Datei:Fortigate-traffic-shaping-52.pdf                                                      (FortiOS Handbook Traffic Shaping for FortiOS 5.2)
       Datei:Fortigate-wanopt-cache-proxy-52.pdf                                                   (FortiOS Handbook WAN Optimization, Web Cache, Explicit Proxy, and WCCP for FortiOS 5.2)
       Datei:Fortigate-ipv6-52.pdf                                                                 (FortiOS Handbook IPv6 for FortiOS 5.2)
       Datei:Fortigate-voip-sip-52.pdf                                                             (FortiOS Handbook VoIP (SIP) for FortiOS 5.2)
       Datei:Fortigate-view-52.pdf                                                                 (FortiOS Handbook View 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)
       Datei:Fortigate-hardware-accel-52.pdf                                                       (FortiOS Handbook Hardware Acceleration for FortiOS 5.2)
       Datei:Fortigate-hardening-52.pdf                                                            (FortiOS Handbook Hardening for FortiOS 5.2)
       Datei:Fortigate-transparent-mode-52.pdf                                                     (FortiOS Handbook Transparent Mode for FortiOS 5.2)
       Datei:Fortigate-life-of-a-packet-52.pdf                                                     (FortiOS Handbook Life of a Packet for FortiOS 5.2)
       
       Technical Documentation Update FortiOS:
       Datei:Fortinet-tech-docs-update-sept-2014.pdf                                               (Fortinet Technical Documentation Update - September 1st to September 24th)
       Datei:Fortinet-tech-docs-update-oct-2014.pdf                                                (Fortinet Technical Documentation Update - September 24th to October 22nd)
       Datei:Fortinet-tech-docs-update-feb-2015.pdf                                                (Fortinet Technical Documentation Update - January 12th to February 28th)
       
       SysAdmin's Notebook FortiOS 5.2:
       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)
       Datei:Sysadminnote-sslpublickeypinning.pdf                                                  (Mozilla SSL Public Key Pinning – Bulletin)
       Datei:FortiGate-control-DLMS-COSEM-traffic.pdf                                              (Control of Distribution Line Message Specification (DLMS) or Companion Specification for Energy Metering (COSEM) Traffic)
       Datei:Layered-Security.pdf                                                                  (A Look at Layered Security)
       Datei:Using-Port-443-for-MGMT-Access-and-SSL-VPN.pdf                                        (Using Port 443 for MGMT Access and SSL VPN)
       Datei:fortios-scanning-of-archive-compressed-files.pdf                                      (AV Engine and Supported Compression Formats)
       Datei:Entropy Tokens with FortiGate.pdf                                                     (Using Entropy Tokens with FortiGate Products)
       Datei:ManageFSWfromFGT52.pdf                                                                (Managing a FortiSwitch unit with a FortiGate for FortiOS 5.2 and FortiSwitchOS 3.x)
       Datei:IPS-Signature-Syntax-Guide.pdf                                                        (IPS Signature Syntax Guide)
       Datei:FortiGate-HA-Remote-Link-Monitor.pdf                                                  (FortiGate - High Availability Remote Link Monitor)
       
       Cookbook Individual 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)
       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)
       Datei:Connecting-a-private-network-to-the-Internet-using-NAT-Route-mode.pdf                 (Connecting a private network to the Internet using NAT/Route mode)
       Datei:Adding-a-FGT-in-Transparent-mode-without-changing-your-existing-configuration.pdf     (Adding a FortiGate in Transparent mode without changing your existing configuration)
       Datei:Using-port-forwarding-to-allow-limited-access-to-an-internal-server.pdf               (Using port forwarding to allow limited access to an internal server)
       Datei:Setting-up-FortiGuard-services.pdf                                                    (Setting up FortiGuard services)
       Datei:Verifying-and-updating-the-FortiGate-units-firmware.pdf                               (Verifying and updating the FortiGate unit’s firmware)
       Datei:Logging-network-traffic-to-gather-information.pdf                                     (Logging network traffic to gather information)
       Datei:IPsec-VPN-FGT-Microsoft-Azure.pdf                                                     (Configuring IPsec VPN between a FortiGate and Microsoft Azure)
       Datei:ConfiguringRedundantArchitecture.pdf                                                  (Configuring redundant architecture using two FortiGates and internal switching)
       Datei:Fortigate-aws-deployment.pdf                                                          (FortiGate Amazon Web Services Deployment Guide)
       Datei:Registering-your-FortiGate-and-configuring-the-system-settings.pdf                    (Registering your FortiGate and configuring the system settings)
       Datei:Setting-up-BGP-over-a-dynamic-IPsec-VPN-between-two-FortiGates.pdf                    (Setting up BGP over a dynamic IPsec VPN between two FortiGates)
       Datei:Controlling-which-applications-can-access-network-resources-and-the-Internet.pdf      (Controlling which applications can access network resources and the Internet)
       Datei:Using-static-urlfilter-to-block-access-specific-website.pdf                           (Using a static URL filter to block access to aspecific website)
       Datei:LicensingIsolatedFortiGates.pdf                                                       (FortiGuard Licensing for FortiGates with Limited or No Connectivity)
       Datei:Protect-web-server.pdf                                                                (Protecting a web server from common external attacks)
       Datei:User-authentication-FSSO-LDAP-FSSO-Advanced-Mode.pdf                                  (User based authentication on FSSO, using LDAP and FSSO agent on advanced mode)
       Datei:Fortios-rsso-with-win-server-2012-and-nps.pdf                                         (FortiGate - RSSO with Windows Server 2012 R2 and NPS)
       Datei:Vdoms-to-host-more-than-one-fortios-instance.pdf                                      (Using VDOMs to host two FortiOS instances on a single FortiGate unit)
       Datei:Ips-logging-dns-domain-kookups.pdf                                                    (Logging DNS domain lookups)
       Datei:Sign-a-CA-certificate-on-Windows-2008-and-import-certificate-for-SSL-inspection.pdf   (How to sign a CA certificate on Windows server 2008 and import certificate for SSL inspection to a FortiGate)
       Datei:How-To-Buy-&-Import-SSL-Certificate.pdf                                               (Purchase and Import a Signed SSL Certificate)
       Datei:Fortios-radius-single-sign-nps-52.pdf                                                 (FortiGate RADIUS Single Sign-On (RSSO) with Windows Server 2008/2012 R2 Network Policy Server (NPS))
       
       Datei:Extra-help-ipsec-vpn.pdf                                                              (Extra help: IPsec VPN)
       Datei:Extra-help-troubleshooting-your-installation.pdf                                      (Extra help: Troubleshooting your installation)
       Datei:Extra-help-fortiguard.pdf                                                             (Extra help: FortiGuard)
       Datei:Extra-help-switch-vs-interface.pdf                                                    (Extra help: Switch mode vs Interface mode)

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

       FortiClient:
       FortiClient:FAQ#Kann_ich_die_Konfiguration_des_FortiClient_.22vorkonfigurieren.22_und_zur_Verf.C3.BCgung_stellen_.28Distribution.29.3F
       FortiExplorer:
       FortiExplorer: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?

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

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

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

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

Weitere Informationen über die Hardware Schematics eines FortiGate Devices findet man über den nachfolgenden Link:

       Fortinet:ProduktInfo#Fortinet_Hardware_Schematics

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

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

Ebenso steht ein Dokument zur Verfügung das auf die Hardware Schematic eines FortiGate Devices eingeht und ebenfalls für jeden Device CPU, RAM, FLASH usw. auflistet:

       Fortinet:ProduktInfo#Fortinet_Hardware_Schematics

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-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       Datei:Fortinet-142.jpg

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-5.0-5.2: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-5.0-5.2:FAQ#Ist_es_m.C3.B6glich_ein_Firmware_Wiederherstellung_durchzuf.C3.BChren.3F

Meine FortiGate führt selbständig einen immer wiederkehrenden Neustart aus was kann ich tun?

Wenn eine FortiGate selbständig immer wieder einen Neustart ausführt fragt sich was getan werden kann um herauszufinden wieso dem so ist. Die Möglichkeiten wieso eine FortiGate immer wieder neu startet können vielfältig sein zB korrupte Konfiguration, defekte Hardware usw. Eine Möglichkeit herauszufinden was diesen selbständigen Neustart auslöst ist die Folgende:

       1. Konfiguriere "putty" für logging dh. alle Informationen werden in ein Log aufgezeichnet (Category > Session > Logging > All session output)
       2. Erstelle eine Consolen Verbindung zur FortiGate (RS232 basierend resp. Seriell)
       3. Führe ein Login durch und gebe folgendes ein:
          
          # diagnose debug reset
          # diagnose debug kernel level 7
          # diagnose debug console timestamp enable
          # diagnose debug enable
          
          NOTE Danach muss gewartet werden bis der selbständige Neustart ausgeführt wird und durch den "debug" wird
               unter normalen Umständen in der Console aufgezeichnet was dieser Neustart ausgelöst hat. Dieser Output
               muss nachträglich einem Fortinet TAC Mitarbeiter übermittelt werden für das weitere Vorgehen. Unter 
               normalen Umständen dh. ohne Neustart wird für diesen "debug" kein Output aufgezeichnet. Dieses
               Vorgehen kann ebenfalls benutzt werden wenn durch den Device ein "freeze" durchgeführt wird.

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 kann ich meine Hardware testen (Troubleshooting/HQIP Testing)?

Damit man den "Advanced Hardware Test" resp. HQIP Test durchführen kann, muss ein spezielles "image" das für jeden Device zur Verfügung gestellt wird, temporär geladen werden. Unter der regulären Support Seite findet man die Images über das Icon "HQIP Images" am ende der Seite. Nachfolgend der direkte Link für "HQIP Images":

       https://support.fortinet.com/Download/HQIPImages.aspx
       
       NOTE Damit man zu diesem Link gelangt muss anhand eines Support Accounts eingeloggt werden sowie damit das 
            entsprechende Image runtergeladen werden kann, muss die entsprechende Serien Nummer des Devices eingegeben
            werden. Dies muss durchgeführt werden da jeder Device identifiziert werden muss anhand der Revision und 
            Generation um das entsprechende HQIP Image zur Verfügung stellen zu können. Dies bedeutet auch: Es ist nicht
            zu empfehlen ein bestehendes Image aus einem früheren HQIP Test zu benützen um auf einem Baugleichen Device
            den Test durchzuführen da die Devices -obwohl Baugleich- sich unterscheiden können in Revision und Generation.

Auf der FortiGate wird dieses HQIP Image wie beim "staging" Prozess selber über TFTP hochgeladen. Weitere Informationen über den "staging" Prozess siehe nachfolgenden Artikel:

       FortiGate:KonfigExample#How_to_Staging.2FSetup_.22Konfigurations_Example.22.3F

Nachdem man das HQIP Image über TFTP geladen hat kann mit dem User "admin" eingeloggt wurde (kein Passwort) kann anhand des Befehls "diagnose hqip start" ein Script ausgeführt werden. Dieses Script führt die verschiedenen Hardware Tests aus. Der Unterschied zum regulären "staging" Prozess selber ist einzig und alleine, dass dieses Image nicht anhand "D" (Default), "B" (Backup) sondern anhand "R" (Run) installiert wird. Dies bedeutet: dieses Image wird durch "R" (Run) in den Memory Bereich temporär installiert. Der Output der Serial Console muss "geloggt" werden damit es später dem Fortinet Support übermittelt werden kann. Im "putty" wird dies für eine Session unter folgender Position konfiguriert:

       Category > Session > Logging > All Session output

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

        -> Lade das entsprechende Image herunter (siehe Link oben; Serien Nummer des Devices muss angegeben werden)
           
        -> Benenne das File um nach "image.out" und verschiebe diese in das root Verzeichnis eines TFTP Servers. 
           Wenn kein TFTP Server vorhanden ist empfehlen wird den SolarwindsTFTP Server. Nachfolgend ein Link
           um diesen runterzuladen:
           
           SolarWinTFTP Server http://www.solarwinds.com/products/freetools/free_tftp_server.aspx
           
        -> Sofern das Web Mgmt. Interface zugänglich ist empfehlen wir vor dem Test ein ordentliches Backup der
           Konfiguration der FortiGate durchzuführen!
           
        -> Führe ueber die Serielle Console nachfolgenden Befehl aus um einen Neustart des Devices durchzuführen:
        
        # execute shutdown
                 
        -> Um das HQIP Image über den TFTP Server zu laden muss eine Workstation folgendermassen mit eine FortiGate
           verbunden werden (Beispiel: FortiGate-60D)
        
                       _____________________________
                      |       RS232 Verbindung      |
        Consolen Port |                             |
           ___________|___                          | RS232 Anschluss
          |               |                     ____|_______________
          | FortiGate 60D |   192.168.1.100/24 |                    |
          |_______________|               _____| LapTop/Workstation | --> SolarWindsTFTP Server starten 
                   |                     | NIC |____________________| --> FortiOS als image.out im C:\TFTP-Root
              WAN1 |                     |      
                   |_____________________|    
         
          NOTE Auf dem Laptop müssen sämtliche Firewall's, Endpoint Security und Netzwerkkarten deaktiviert sein und auf der LAN Netzwerkarte
               muss die IP 192.168.1.100 mit dem Subnet 255.255.255.0 konfiguriert sein (Kein DNS, kein Default Gateway nötig)!
        
        -> Oeffne über Putty eine Serielle Verbindung (Console) und achte darauf das "putty" für Log aktiviert wurde. 
           Schalte Die FortiGate ein und breche den Startprozess ab wenn folgendes erscheint:
        
        FortiGate-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 'wan1.
        
        NOTE Bei neueren Geräte ist die IP für den TFTP Transfer bereits vorkonfiguriert und kann mit dem
             entsprechenden Menüpunkt (R) eingesehen werden. Bei einer FG-60D muss der Client auf dem sich
             der TFTP Server befindet mit der IP 192.168.1.100/24 konfiguriert werden. Achte auf die Angaben
             "Please connect TFTP server to Ethernet port" da dies für Device, Revisions und Generations
             unterschiedlich sein kann. Der Port zB für eine FG-60D ist "wan1"!
                 
        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 "D" oder "B" Speichern sondern NUR Ausführen!
        
        Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?R
        reading boot image 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 und zwar für folgende Informationen:

        1.System information 
        2.Memory test 
        3.CPU test 
        4.Test Compact Flash and Harddisk. 
        5.Test USB ports. 
        6.Test Network interface controller. 
        7.Test SDHC LED. 
        8.Test NIC LEDS. 
        9.Test HA/STATUS LEDS. 

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

       Fortinet-1607.jpg

Nachfolgend ein Output eines solchen Tests für eine FG-60C (ohne korrektes anschliessen der Netzwerkkarten):

       Datei:Hqip-output.txt

Um die Fortigate wieder in den Orginalzustand zu versetzen führe ein Login über die Serielle Consoel durch mit dem User "admin" (kein Passwort). Danach führe folgendes aus:

        HQIP login: admin
        Password:
        Welcome !
        
        HQIP # execute reboot
        This operation will reboot the system !
        Do you want to continue? (y/n)y

Da das HQIP Image "nur" temporärer (Memory) installiert wurde sind alle Informationen nach einem Neustart betreffend diesem Image gelöscht worden. Wenn es nach dem Neustart zu Hinweise/Errors betreffend der Konfiguration kommt zB:

        System is started.
        The config file may contain errors,
        Please see details by the command 'diagnose debug config-error-log read'

Führe ein Login durch und führe folgendes aus:

        # diagnose debug config-error-log read
        >>>  "unset" "post-lang" @ root.firewall.profile-protocol-options.default.ftp:command parse error (error -61)

Oftmals ist ein einfach Neustart der Fortigate nötig um das Problem zu beheben:

        # execute reboot

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.0.x) und/oder "System > Config > Admin Settings" (FortiOS 4.3.x) Features aktiviert und deaktiviert werden, jedoch der Aufbau gibt sich immer gleich! Bei der FortiGate 30D ist dies unter FortiOS 5.0.x 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. Welche Features die FortiGate 30D untersützt sieht man anhand der Software Matrix:

       FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       NOTE Wie schon erwähnt wird für die FG-30D ein "Gui-Light" verwendet dh. die Anordnung der Positionen unterscheiden
            sich vom regulärem Gui einer FortiGate. Dieses "Gui-Light" kann unter FortiOS 5.2 deaktiviert werden dh. es wird
            nur das "Gui-Light" deaktiviert und das "reguläre" Gui einer FortiGate unter FortiOS 5.2 angezeigt. Durch die 
            Deaktivierung des "Gui-Light" ist es nicht möglich zusätzliche Funktionen/Features zu aktivieren! Um das "Gui-Light"
            zu deaktivieren führe folgendes aus:
            
            # config system global
            # set gui-lite disable
            # end
            
            Desweiteren gilt die FortiGate 30D als Ersatz für die FortiGate 40C dies wird im nachfolgenden Dokument dargestellt. 
            Diesem Dokument kann ebenfalls entnommen werden, dass die FortiGate 30D um einen Ersatz für die FortiGate 40C darzustellen
            unter FortiOS 5.2.x mehr Möglichkeiten dazugekommen sind im Gegensatz zum FortiOS 5.0.x:
            
            Datei:FGT-40C versus FGT-30D.pdf
       NOTE Ab FortiOS 5.2.5 werden pro physikalischem Interface 20 VLAN's unterstütz.
       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

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

Weitere Informationen betreffend FortiGate Devices und Hardware Airflow Uebersicht finden man unter folgenden Link:

       Fortinet:ProduktInfo#Fortinet_Hardware_Airflow

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

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

       Datei:FortiGate LED Specs.pdf

Disk

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 system status

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!

Wie kann man die Disk (Flash, SSD) eines FortiGate Device's testen?

Dazu stehen eigentlich zwei Funktionen zur Verfügung dh.:

       - HQIP
       - "diagnose disktest"

Anhand des Befehls "diagnose disktest" kann auf einer FortiGate ab FortiOS 5.2.1 die Disk getestet werden. Dazu sollte berücksichtigt werden, dass dieser Test in einem Maitenance Fenster durchgeführt wird und nicht bei hoher Last. Um diesen Test zu benutzen muss anhand des Befehls zuerst die entsprechende Disk gewählt werden. Um die Disk's aufzulisten benutze folgenden Befehl:

       NOTE Der Test kann seine Zeit dauern dh. bei einer 60D ohne zusätzlichen Optionen dh. no Limit läuft der
            Test für 7728M ca 45 Minuten! Dies gilt für "Round 1" denn sobald diese beendet ist beginnt der Test erneut
            dh. "Round 2". Der Test kann anhand "Ctrl + C" abgebrogen werden. Wenn dies durchgeführt wird erscheint 
            "User interrupt! Restoring data back to disk....".
       Liste die vorhandenen Device's auf:
       
       # diagnose disktest device 
       1    /dev/sda, size 3864MB, boot device
       2    /dev/sdb, size 7728MB
       Selektieren nun die gewünschte Disk zB /dev/sdb dh. "2":
       
       # diagnose disktest device 2
       Current Test Device: /dev/sdb
       Anhand verschiedener Optionen kann der Test beeinflusst werden dh.:
       
       # diagnose disktest [bllock | time | size]
       
       NOTE Die Optionen haben folgende Bedeutung:
            
            block       Die Blocksize für jede Lese- sowie Schreiboperation.
            time        Die Limite der Testzeit für jeden Zyklus. Standard "keine Limite".
            size        Die Limite der Testgrösse für jeden Zyklus. Standard "keine Limite".
       Wenn der gewünschte Device gesetzt ist sowie sofern notwendig die Optioen führe den Test aus:
       
       # diagnose disktest run
       
       Round 1 started.
       Current Test Device: /dev/sdb
       Total size: 7728M
       Current Test Block: 4M.
       Current Time Limit: No limit
       Current Size Limit: No limit
       Time(Sec)    Size(MB)                                                 Read(MB/s) Write(MB/s)
         0.0        0(0.00%):  ..................................................  15.0   8.6
        76.0      200(2.59%):  ..................................................  15.1   8.9
       150.2      400(5.18%):  ..................................................  15.0   9.0
       224.3      600(7.76%):  ..................................................  15.0   8.9
       298.8      800(10.35%): ..................................................  15.1   8.9
       372.9     1000(12.94%): ..................................................  15.1   9.0
       446.9     1200(15.53%): ..................................................  15.1   9.0
       520.7     1400(18.12%): ..................................................  15.2   9.0
       594.4     1600(20.70%): ..................................................  15.1   9.0
       668.4     1800(23.29%): ..................................................  15.2   9.0
       742.1     2000(25.88%): ..................................................  15.3   9.0
       815.8     2200(28.47%): ..................................................  15.3   9.0
       889.5     2400(31.06%): ..................................................  15.3   8.9
       963.1     2600(33.64%): ..................................................  15.4   9.0
       1036.7    2800(36.23%): ..................................................  15.3   9.0
       1110.3    3000(38.82%): ..................................................  15.3   9.0
       1183.9    3200(41.41%): ..................................................  15.3   9.0
       1257.6    3400(44.00%): ..................................................  15.3   9.0
       1331.2    3600(46.58%): ..................................................  15.3   9.0
       1404.7    3800(49.17%): ..................................................  15.3   9.0
       1478.3    4000(51.76%): ..................................................  15.3   9.0
       1551.9    4200(54.35%): ..................................................  15.2   8.9
       1625.8    4400(56.94%): ..................................................  14.5   8.6
       1702.5    4600(59.52%): ..................................................  15.0   8.8
       1777.3    4800(62.11%): ..................................................  15.2   8.9
       1851.6    5000(64.70%): ..................................................  15.1   8.9
       1925.9    5200(67.29%): ..................................................  15.1   8.9
       2000.3    5400(69.88%): ..................................................  15.1   8.9
       2074.7    5600(72.46%): ..................................................  15.1   8.9
       2148.9    5800(75.05%): ..................................................  15.2   8.9
       2223.2    6000(77.64%): ..................................................  15.2   8.8
       2297.5    6200(80.23%): ..................................................  15.1   8.9
       2371.9    6400(82.82%): ..................................................  15.2   8.9
       2446.2    6600(85.40%): ..................................................  15.1   8.9
       2520.5    6800(87.99%): ..................................................  15.3   8.9
       2594.6    7000(90.58%): ..................................................  14.6   8.6
       2671.4    7200(93.17%): ..................................................  15.1   8.4
       2748.0    7400(95.76%): ..................................................  15.3   5.4
       2851.2    7600(98.34%): ................................
       Test Result: Passed
       Tested size: 7728MB (100.00% Coverage of whole disk)
       Time used: 2901.5 sec
       Read Speed:  15.2MB/s
       Write Speed:   8.7MB/s
       Round 1 Finished!
       
       Round 2 started.
       Current Test Device: /dev/sdb
       Total size: 7728M
       Current Test Block: 4M.
       Current Time Limit: No limit
       Current Size Limit: No limit
       Time(Sec)    Size(MB)                                                 Read(MB/s) Write(MB/s)
         0.0        0(0.00%):  ..................................................  14.7   8.4
        77.9      200(2.59%):  .............User interrupt! Restoring data back to disk...
       
       Test Result: Interrupted
       Tested size: 256MB (3.31% Coverage of whole disk)
       Time used:  99.3 sec
       Read Speed:  14.7MB/s
       Write Speed:   8.4MB/s
       Round 2 Finished!

Wird bei einem "unclean shutdown" auf einer FortiGate beim Start ein "filesystem check" durchgeführt?

In der Version 5.2.x wurde diese Funktion integriert sowie die Möglichkeit die Disk explizit zu testen. Weitere Informationen wie man einen "expliziten" Disk Test ausführt siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_man_die_Disk_.28Flash.2C_SSD.29_eines_FortiGate_Device.27s_testen.3F

Wie erwähnt wurde für ein "unclean shutdown" im FortiOS 5.2.x die Funktion eingebaut, dass nach einem "unclean shutdwown" während dem Start Prozess dies erkannt wird und automatisch ein "filesystem check" ausgeführt wird. Diese wird "nicht" anhand des im obigen Link aufgeführten Kommandos ausgeführt sondern ähnelt einem "fsck" das auf einem Linux System ausgeführt wird. Nichts desto trotz kann solch ein "filesystem check" einige Zeit in Anspruch nehmen und deshalb wurde die Vorgehensweise ab der FortiOS Version 5.2.3 geändert. Dies bedeutet: Wenn ein "unclean shutdown" stattfindet ab FortiOS Version 5.2.3 wird kein "filesystem check" mehr direkt beim Neustart des Device ausgeführt sondern sobald sich der Administrator auf dem Web Mgmt. Interface einloggt wird ein entsprechender Dialog angezeigt der durch den "unclean shutdown" ausgelöst wurde:

       Fortinet-1367.jpg

Durch diesen Dialog hat der Administrator die Möglichkeit den "filesystem check" auszuführen oder diesen zu verschieben. Wird der "filesystem check" nach dem einloggen des Administrators ausgeführt so wird ein Neustart des Devices ausgeführt und dieser "filesystem check" beim Neustart ausgeführt. Dies kann durchaus mehrere Minuten in Anspruch nehmen! Wird dieser "filesystem check" anhand "Remind me later" wird dieser nach jedem Einloggen solange angzeigt bis er ausgeführt wurde!

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
       
       NOTE Weitere Informationen betreffend FRPS-100 siehe nachfolgender Artikel:
            
            Fortinet:ProduktInfo#FortiRPS

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-5.0-5.2: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-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_die_SFP_Ports_auf_einer_FortiGate_ebenfalls_Fremdprodukte_wie_Cisco_oder_Huawai_einsetzen.3F)
       
       NOTE Desweiteren ist nachfolgendes Dokument zu beachten, wenn keine "offiziellen" Tranceiver von 
            Fortinet eingesetzt werden (speziell Seite 2 "3rd Party Transceivers Support"):
            
            Datei:Tech Note-Transceivers FAQs-201407-R3.pdf 

Basierend auf den "offiziellen" Tranceiver von Fortinet gemäss Preisliste stehen folgende SFP/SFP+ Module zur Verfügung:

       Transceiver LX, Long Range; all FortiGate models with SFP interfaces                                              ALSO SKU 2690418     (Hersteller SKU FG-TRAN-LX)
       Transceiver SX, Short Range; all FortiGate models with SFP interfaces                                             ALSO SKU 2690421     (Hersteller SKU FG-TRAN-SX)
       Transceiver Base-T (Copper); all FortiGate models with SFP interfaces (supports 10/100/1000)                      ALSO SKU 2690420     (Hersteller SKU FG-TRAN-GC)
       
       10-Gig transceiver, short range SFP+; all FortiGate models with SFP+ interfaces                                   ALSO SKU 2697310     (Hersteller SKU FG-TRAN-SFP+SR)
       10-Gig transceiver, short range XFP; all FortiGate models with XFP interfaces                                     ALSO SKU 2690412     (Hersteller SKU FG-TRAN-XFPSR)
       10-Gig transceiver, SFP+, Long Range; all FortiGate models with SFP+ interfaces                                   ALSO SKU 2690413     (Hersteller SKU FG-TRAN-SFP+LR)
       10-Gig transceiver, XFP, Long Range; all FortiGate models with XFP interfaces                                     ALSO SKU 2690414     (Hersteller SKU FG-TRAN-XFPLR)
       
       40-Gig transceiver, QSFP+, short range; all FortiGate models with QSFP+ interfaces                                ALSO SKU 2694715     (Hersteller SKU FG-TRAN-QSFP+SR)
       40-Gig transceiver, QSFP+, long range; all FortiGate models with QSFP+ interfaces                                 ALSO SKU auf Anfrage (Hersteller SKU FG-TRAN-QSFP+LR)
       
       100-Gig transceiver, CFP2, short Range; all FortiGate models with CFP2 interfaces (10 Channel parallel fiber)     ALSO SKU auf Anfrage (Hersteller SKU FG-TRAN-CFP2-SR10)
       100-Gig transceiver, CFP2, long Range; all FortiGate models with CFP2 interfaces (only singlemode)                ALSO SKU 2707368     (Hersteller SKU FG-TRAN-CFP2-LR4)
       

Für eine direkte Verbindung zweier Fortigates über ein "direct attach cable" steht folgender Artikel zu Verfügung:

       10-Gig transceiver, SFP+, 10m direct attach cable; all FortiGate models with SFP+ and SFP/SFP+ interfaces   

Eine detaillierte Beschreibung der Tranceivereigenschaften befindet sich im folgenden Dokument:

       Datei:TRAN-DAT-R1-201410 web.pdf
       Datei:TRAN-DAT-R2-201503 web.pdf

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

       NOTE Die Informationen stammen aus einem Fortinet KB Artikel:
            
            http://kb.fortinet.com/kb/dynamickc.do?cmd=show&forward=nonthreadedKC&docType=kc&externalId=13823&sliceId=1
       Fortinet-1087.jpg
       Fortinet-1129.jpg

Nachfolgend das offizielle "Regulatory Compliance Document" betreffend SFP SX Transceiver:

       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-SX Rev 1.03.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-CFP2-LR4 Rev 1.00.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-CFP2-SR10 Rev 1.00.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-GC Rev 1.02.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-GC Rev 2.0.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-LX Rev 2.0.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-QSFP+-LR Rev 1.00.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-QSFP+-SR Rev 1.00.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-SFF Rev 1.00.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-LR Rev 2.0.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-SR Rev 2.0.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-SFP+-SX Rev 1.02.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-XFPLR Rev 1.00.pdf
       Regulatory Doc   Datei:Regulatory-Compliance-Document FG-TRAN-XFPSR Rev 1.00.pdf

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

Wie beeinflusst die Option in den Global Setting "check-protocol-header" das Asic-Offloading (Hardware Acceleration)?

In den Global Settings existiert folgendende Option:

       # config system global
       # set check-protocol-header [loose | strict]
       # end
       
       NOTE Die Option "check-protocol-header" bestimmt den Level wie die "protocol headers" untersucht werden. Dabei gibt
            es zwei Levels:
            
            • loose — Die FortiGate untersucht im "basic" Verfahren die "protocol headers" in dem die FortiGate überprüft
                      ob der Header Teil einer Session ist. Ebenso umfasst die "basic" Ueberprüfung die Länge des Layer 4
                      Headers, des IP Headers, die IP Version, die IP Checksum sowie ob die IP Optionen korrekt gesetzt sind.
            
            • strict — Die FortiGate führt sämtliche "basic" Verfahren durch plus ob die ESP Packete über die korrekte 
                       Sequenz Nummer verfügen sowie SPI und Data Länge.

Per Standard ist die Option auf "loose" gesetzt und beeinflusst eine Hardware Acceleration nicht (ASIC-Offloading). Wird die Option auf "strict" gesetzt wird die Acceleration komplett deaktiviert und es erscheint ebenfalls ein Hinweis:

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

Wie kann ich herausfinden/überprüfen wieviele Sessions dem NP6 zur Verarbeitung übergeben wurde?

Basierend auf FortiOS 5.2 und vorausgesetzt man verfügt einen Device mit einem NP6 Prozessor kann in der CLI überprüft werden welche Sessions dem NP6 übergeben worden sind:

       # diagnose npu np6 sse-stats [ID des NP6]

Der Output dieses Kommandos zeigt die Anzahl der "half" Sessions für einen definierten NP6. Eine typische Sessions basiert auf zwei "half" Sessions dh. "ingress" und "egress". Das nachfolgende Beispiel zeigt 70126 "half" Sessions auf "NP6_0" sowie 75838 "half" Session auf "NP6_1":

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

Wie kann ich herausfinden ob eine bestimmte Session beschleunigt wird über den NP Prozessor (Acceleration)?

Unter FortiOS 5.2 ist dies einfach über "FortiView" möglich dh. unter der Position "All Sessions" ist es möglich eine zusätzliche Spalte einzublednen Für "ASIC". Danach wird für jede Session angezeigt ob diese über den NP Prozessor abgearbeitet wird resp. beschleunigt wird. Diese Funktion seht unter 5.0 nicht zur Verfügung. Die Informationen die unter "FortiView > All Sessions" angezeigt werden sind Informationen aus den einzelnen Sessions. Aus diesem Grund kann über das Kommando zur Auflistung der Sessions dies ebenfalls bewerkstelligt werden. Dies ist für FortiOS 5.0 ebenfalls möglich. Zur Auflistung aller Sessions wird folgenden Kommando benutzt:

       # diagnose sys session list

Für die Beschleunigung ist in den einzelnen Sessions folgende Position relevant:

       npu_state=00000000 

Diese Position indiziert "keine" Acceleration dh. keine Möglichkeit der Beschleunigung. Wenn eine Session Accelerated wird oder die Möglichkeit besteht wird folgendes ausgegeben:

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

Was die einzelnen Positionen in einer Session idizieren resp. bedeuten siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Welche_Informationen_werden_f.C3.BCr_eine_einzelne_Session_in_der_.22session.22_Liste_aufgef.C3.BChrt_und_was_bedeuten_diese.3F

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

       # diagnose sys session filter ?
       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 aufzulisten:

       # diagnose sys session list
       

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

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

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

       # diagnose sys session filter

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
       Datei:Inside-fortios-appcntrl-52.pdf          Application Control
       Datei:Inside-fortios-wanopt-52.pdf            Wan Optimization
       Datei:Inside-fortios-fw-52.pdf                Firewall
       Datei:Inside-fortios-authentication-52.pdf    Authentication
       Datei:Inside-fortios-wanopt-52.pdf            Wan Optimization
       Datei:Inside-fortios-ha-52.pdf                High Availability
       Datei:Inside-fortios-ips-52.pdf               Intrusion Prevention System
       Datei:Inside-fortios-ipv6-52.pdf              IPv6
       Datei:Inside-fortios-loadbalancing-52.pdf     Load Balancing
       Datei:Inside-fortios-vdoms-52.pdf             VDOM (Virtuelle Domains)
       Datei:Inside-fortios-voip-52.pdf              VoiP
       Datei:Inside-fortios-vpn-52.pdf               VPN
       Datei:Inside-fortios-dlp-52.pdf               Data Loss Prevention (DLP)
       Datei:Inside-fortios-dos-52.pdf               DoS (Denial Of Service)
       Datei:Inside-fortios-av-52.pdf                Antivirus
       Datei:Inside-fortios-web-filtering-52.pdf     WebFiltering

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-5.0-5.2:FAQ#Was_f.C3.BCr_Incoming.2FOutgoing_.22Implied_Rules.22_sowie_Listening_Ports_existieren_bei_einer_Fortigate.3F
            
            Ebenso wird im nachfolgenden Dokument detailliert auf den "flow" einer FortiGate näher eingegangen:
            
            Datei:Fortigate-life-of-a-packet-52.pdf

Wenn man den vorherigen Standard Prozess Flow einer FortiGate als Grundlage nimmt um einen WebServer Zugriff zwischen Client/Server abzubilden dann ergiebt sich für eine einfache Abfrage eine komplexe Uebersicht die zeigt "was" genau abgearbeitet wird:

       Fortinet-1442.jpg

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

Weitere Informationen zu diesem Thema siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Was_f.C3.BCr_Incoming.2FOutgoing_.22Implied_Rules.22_sowie_Listening_Ports_existieren_bei_einer_Fortigate.3F_2

Welche "Security" Funktionen unterstützt eine FortiGate im "flow-based" und/oder "proxy-based" Mode?

Eine FortiGate bietet im Stateful Inspection Bereich UTM Security Funktionen. Diese können im "flow-based" und/oder teilweise im "proxy-based" Mode ausgeführt werden. Nachfolgend wird eine Tabelle gezeigt die aufzeigt welche UTM Features im "flow-based" und/oder "proxy-based" ausgeführt werden können sowie welche Funktionen teilweise Vor- und Nachteile haben:

       Fortinet-1605.jpg
       Fortinet-1441.jpg
       
       NOTE Weitere Informationen betreffend den Security Funktionen findet man im nachfolgenden Dokument:
            
            Datei:Fortigate-life-of-a-packet-52.pdf

Wichtig dabei ist, dass das Feature Application Controll sowie IPS "nur" im "flow-based" Mode ausgeführt werden können. Deweiteren ist zu berücksichtige:

       Wenn in einer Firwall Policy Rule "flow-based" sowie "proxy-based" Profile gemischt werden, wird für alle UTM
       Funktionen die beides anbieten dh. "proxy-based" und/oder "flow-based" automatisch "proxy-based" für diese 
       Firewall Policy Rule ausgeführt obwohl das Profile "flow-based" konfiguriert wurde!

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-5.0-5.2: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-5.0-5.2: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-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

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-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

FortiCloud

Wo finde ich Informationen über die Funktion FortiCloud und dessen Gebrauch?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiCloud:FAQ

FortiSandbox

FortiSandbox-Positioning.pdf

Wo finde ich weitere Informationen zur Funktion sowie Produkt FortiSandbox?

Weitere Informationen zur Funktion sowie Produkt FortiSandbox siehe nachfolgender Artikel:

       FortiSandbox:FAQ

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

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

Das untenstehende Dokument enthält einen Workshop wie man einen FortiMail und eine FortiGate in die FortiSandbox einbindet.

       Datei:FortiSandbox-Positioning.pdf

FortiView

In FortiView werden "unknown app" sowie "local traffic" angzeigt und/oder nicht angezeigt?

Ab FortiOS 5.2 wurde das Dashboard und dessen Widget's die den Traffic in Statistiken, Monitoren etc. zeigten ersetzt mit der Funktion FortiView. Unter FortiView kann der "local traffic" sowie "unknown app" aufgelistet werden oder nicht dh. diese Möglichkeit wird über das folgende Kommando gesteuert:

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

Diese Konfiguration steht ebenfalls über Web Mgmt. Interface zur Verfügung:

       FortiView > Sources
       
       Fortinet-1324.jpg
       Fortinet-1325.jpg

Prozesse

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. Per Standard werden 20 Zeilen 
            angezeigt dh. unter Umständen wird der Prozess den man sucht nicht in den 20 Zeilen angezeigt. Um die 
            Zeilenanzahl zu erhöhen kann nach den Sekunden die entsprechende Zeilenanzhal angegeben werden:
            
            # diagnose sys top [refresh_time_sec] [number_of_lines]
            
            Somit kann zB folgendes angewendet werden:
            
            # diagnose sys top 5 20

Der nachfolgende Abschnitt zeigt die Details/Erklärung der verschiedenen Positionen:

       Datei:Fortinet-307.jpg
       
       NOTE Zusätzlich ist folgendes zu berücksichtigen: Prozesse werden angezeigt als:
            
            S     Sleeping
            R     Running
            D     Do not disturb
            Z     Zombie
            
            "R" und "S" Status Informationen eines Prozesses sind normal. Das ein Prozess in den Status "D" wechselt
            kann für kurze Zeit vorkommen. Bleibt der Status jedoch für längere Zeit im Status "D" ist dies ein Indiz
            das dieser Prozess nicht korrekt arbeitet. Ein Status "Z" für einen Prozess ist klar ein Indiz das dieser
            Prozess nicht korrekt läuft. Ein Prozess im Status "Z" kann nicht mit "kill" beendet werden dh. um diesen
            Prozess zu beenden ist ein Neustart des Devices notwendig.

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

       # diagnose sys top-summary 
          CPU [||||||||||||||                          ]  35.5%
          Mem [|||||||||||                             ]  29.0%   539M/1839M
          Processes: 20 (running=6 sleeping=84)
          
          PID      RSS  ^CPU% MEM%   FDS     TIME+  NAME
        * 28433    18M   35.5  1.0    10  00:04.95  newcli [x2]
          36       20M    0.0  1.1    11  00:47.30  cmdbsvr
          39       11M    0.0  0.6    87  00:01.33  zebos_launcher [x12]
          51        9M    0.0  0.5    11  00:32.22  uploadd
          52       22M    0.0  1.2    57  00:22.81  miglogd
          53        9M    0.0  0.5     6  00:00.00  kmiglogd
          54       25M    0.0  1.4    19  03:03.25  httpsd [x4]
          57       23M    0.0  1.3   814  00:04.45  proxyd [x6]
          58       10M    0.0  0.6     8  00:00.28  wad_diskd
          59       12M    0.0  0.7    16  00:01.28  scanunitd [x3]
          61       57M    0.0  3.1    18  00:08.57  ipsmonitor [x2]
          9233     14M    0.0  0.8    26  00:00.89  iked
          65        9M    0.0  0.5     8  00:00.60  merged_daemons
          66        9M    0.0  0.5     8  00:00.20  fnbamd
          67        9M    0.0  0.5     9  00:00.12  fclicense
          71       10M    0.0  0.6    18  00:00.31  forticron
          72        9M    0.0  0.5    11  00:00.12  forticldd
          73       11M    0.0  0.6    18  00:00.18  urlfilter
          74       12M    0.0  0.7    35  00:04.31  authd
          75       10M    0.0  0.6    14  00:00.47  fcnacd
          
          NOTE Zum Befehl "diagnose sys top-summary" stehen verschiedenen Optionen zur Verfügung:
                               
               # diagnose sys top-summary -h
               Usage: top.py [options]
               
               Options:
                 -n LINES, --num=LINES
                                       Number of top processes to show (20 by default)
                 -i INTERVAL, --interval=INTERVAL
                                       Update interval, in seconds (1 by default)
                 -s SORT, --sort=SORT  Sort mode: [cpu_percent (default)|mem|fds|pid]
                 -d, --dump            Dump stats to the files
                 -h, --help            show this help message and exit
               
               Nachfolgend ein Beispiel anhand dieser Optionen:
               
               # diagnose sys top-summary '-s mem -i 60 -n 10'
               
                  CPU [|                                       ] 0.9%
                  Mem [||||||||||                              ]  26.0%   482M/1839M
                  Processes: 10 (running=3 sleeping=82)
                  
                  PID      RSS   CPU% ^MEM%   FDS     TIME+  NAME
                * 63       75M    0.0  4.1    37  00:25.26  ipsmonitor [x3]
                  60       39M    0.0  2.1    19  00:51.55  httpsd [x4]
                  5430     24M    0.0  1.4    12  00:01.23  pyfcgid [x4]
                  83       23M    0.0  1.3   780  00:01.60  proxyd [x5]
                  38       23M    0.0  1.3    13  01:50.62  cmdbsvr
                  58       21M    0.0  1.1    25  00:34.67  miglogd
                  30538    20M    0.0  1.1    28  00:00.95  sslvpnd
                  18271    18M    0.0  1.0    12  00:01.11  newcli [x2]
                  30542    16M    0.0  0.9    30  43:04.50  cw_acd
                  110      14M    0.0  0.8    16  00:00.30  fgfmd
               
               Dieses Beispiel sortiert anhand "-s m" die Prozess nach Memory Benützung sowie 
               führt alle 60 Sekunden anhand "-i 60" ein Refresh durch sowie zeigt mit "-n 10"
               die Top 10 Prozesse.

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

Auf einer FortiGate existieren etliche Prozesse die für verschiedenen Aufgaben zuständig sind. Diese könne zB anhand "diagnose sys top 5 99" eingesehen werden. Viele Prozesse existieren nur dann wenn eine entsprechende Konfigurtion durchgeführt wird. Andere existieren nur dann wenn ein bestimmte FortiGate Modell benutzt wird wie zB PoE (Power over Ethernet). Wiederum Andere existieren da jedoch die Funktion zB Wirless Controller "cw_acd" nicht benutzt wird "idle" . Nachfolgend eine Auflistung der bekannten Prozess und einer Kurzbeschreibung dieser:

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

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

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-5.0-5.2: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-5.0-5.2: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
       
       NOTE Nachfolgender Artikel zeigt auf wie Informationen betreffend dem "miglogd" angezeigt werden könnne, um
            festzustellen was die Ursache ist:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_detaillierte_Informationen_.C3.BCber_den_Log_Deamon_.28miglogd.29_anzeigen_lassen.3F

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 test 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-5.0-5.2:FAQ#Kann_ich_Linux.2FUnix_basierender_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

Wie kann ich die System Resourcen anzeigen lassen?

Nachfolgender Befehl zeig den Status des Systems betreffend Auslastung 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

Dieses Kommando zeigt eine Uebersicht über Memory und CPU Auslastung. Durch die Positionen "session" wird ebenfalls der Durchschnitt angzeigt der erstellten Sessions. Zusätzlich werden die Durchschnittswerte aufgelistet betreffend Antivirus sowie IPS Attacken.

Was ist betreffend Memory Benutzen auf einer FortiGate zu berücksichtigen?

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

       Fortinet-1414.jpg

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

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

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

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

Wie kann ich die Memory Benutzung anzeigen lassen?

Um die "Memory" Benutzung anzeigen zu lassen 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
       
       Die Markierten stellen zeigen den Buffer sowie Cache der benötigt wird durch den "I/O Cache".
       # diagnose hardware sysinfo shm
       SHM counter:          139
       SHM allocated:    3317760
       SHM total:      191135744
       conservemode:           0
       shm last entered:     n/a
       system last entered:  n/a
       SHM FS total:   198844416
       SHM FS free:    195190784
       SHM FS avail:   195190784
       SHM FS alloc:     3653632
       
       Das Shared Memory erlaubt Informationen über mehrere Prozesse zu teilen. Auf einer FortiGate laufen
       verschiedene Prozesse/Deamons. Das FortiOS alloziert seperate Memory Blocks für jeden Prozess. Ein
       Prozess greift auf diese allozierten seperaten Memory Blocks zu. Der Prozess kann jedoch nicht auf
       einen anderen seperaten Memory Block zugreifen der für einen anderen Prozess alloziert wurde. Somit
       kann ein Prozess seine Informationen nicht mit einem anderen Prozess teilen. Für diesen Umstand kann
       das FortiOS dynamisch Shared Memory allozieren um den Prozessen den austausch von Informationen zu
       ermöglichen. Dieses Shared Memory kann somit durch mehrer Prozesse geteilt werden und wird über das
       FortiOS gesteuert.

Der nachfolgende Befehl zeigt die Details des "LowMemory" Bereichs. Dieser wird von einer FortiGate für verschiedenen Funktionen genützt die allgemeine Aufgaben sowie festen Memory Bereich. Beispiele sind zB:

       Slab             Size (Bytes)      Benützt durch
       tcp_session      768               TCP Session
       ip_session       640               None TCP Session
       ip_dst_cache     256               Route cache
       buffer_head      128               Read/write data from disk, flash
       inode_cache      512               Information about files and directories
       dentry_cache     128               Cache for file system directory entries
       apr_cache        128               Cache for ARP

Um den "LowMemory" Bereich mit dessen Inhalt einzusehen kann folgendes Kommando durchgeführt werden:

       # diagnose hardware sysinfo slab
       slabinfo - version: 1.1
       kmem_cache            72    140    112    2    2    1 0
       tcp6_session           0      0    928    0    0    1 0
       ip6_session            0      0    864    0    0    1 0
       sctp_session           0      0    864    0    0    1 0
       tcp_session            7     18    864    1    2    1 1
       ip_session             6     60    800    2    6    1 4
       ip6_mrt_cache          0      0    352    0    0    1 0
       fib6_nodes            15    226     32    1    1    1 0
       ip6_dst_cache         49     70    224    2    2    1 0
       ndisc_cache            3     61    128    1    1    1 0
       ip_mrt_cache           0      0    320    0    0    1 0
       tcp_tw_bucket          0     49    160    0    1    1 1
       tcp_bind_bucket       47    226     32    1    1    1 0
       tcp_open_request       0     61    128    0    1    1 1
       inet_peer_cache        4    120     64    1    1    1 0
       ip_dst_cache          13     41    192    1    1    1 0
       ip_fib_hash           34    226     32    1    1    1 0
       arp_cache              5     61    128    1    1    1 0
       vf                     4      7   2208    1    1    2 0
       vf_entry              21    290     24    1    1    1 0
       if_event_cache         0    120     64    0    1    1 1
       blkdev_requests     2048   3078     96   26   38    1 12
       journal_head           5    156     48    1    1    1 0
       revoke_table           2    509     12    1    1    1 0
       revoke_record          0    226     32    0    1    1 1
       eventpoll pwq        347    406     36    2    2    1 0
       eventpoll epi        341    405     96    5    5    1 0
       dnotify_cache          0      0     20    0    0    1 0
       file_lock_cache        2     88     88    1    1    1 0
       fasync_cache           0      0     16    0    0    1 0
       uid_cache              0      0     32    0    0    1 0
       pkt_buf_head_cache    395    480    480   29   30    1 1
       sock                 402    432    928   51   54    1 3
       sigqueue               0     59    132    0    1    1 1
       kiobuf                 0      0     64    0    0    1 0
       cdev_cache           638    720     64    6    6    1 0
       bdev_cache             3    120     64    1    1    1 0
       mnt_cache             18    120     64    1    1    1 0
       inode_cache         5650   5688    448  315  316    1 1
       dentry_cache        5567   5673    128   92   93    1 1
       filp                3570   3599    128   59   59    1 0
       names_cache            0      4   4096    0    2    1 2
       buffer_head        25224  25272     96  312  312    1 0
       mm_struct             70    122    128    2    2    1 0
       vm_area_struct     12212  13320     64  108  111    1 3
       fs_cache              69    226     32    1    1    1 0
       files_cache           70     95    416    4    5    1 1
       signal_act            78     90   1312   14   15    1 1
       pte-cache           3307   3772   2048  836  943    1 107
       size-131072(DMA)       0      0 131072    0    0   16 0
       size-131072            5      5 131072    5    5   16 0
       size-65536(DMA)        0      0  65536    0    0    8 0
       size-65536             4      6  65536    4    6    8 2
       size-32768(DMA)        0      0  32768    0    0    4 0
       size-32768             2      3  32768    2    3    4 1
       size-16384(DMA)        0      0  16384    0    0    2 0
       size-16384            12     15  16384   12   15    2 3
       size-8192(DMA)         0      0   8192    0    0    1 0
       size-8192              7      8   8192    7    8    1 1
       size-4096(DMA)         0      0   4096    0    0    1 0
       size-4096            378    426   4096  192  213    1 21
       size-2048(DMA)         0      0   2048    0    0    1 0
       size-2048            227    320   2048   57   80    1 23
       size-1024(DMA)         0      0   1024    0    0    1 0
       size-1024            284    304   1024   38   38    1 0
       size-512(DMA)          0      0    512    0    0    1 0
       size-512             304    345    512   22   23    1 1
       size-256(DMA)          0      0    256    0    0    1 0
       size-256              43    186    256    2    6    1 4
       size-128(DMA)          0      0    128    0    0    1 0
       size-128            5071   5124    128   84   84    1 0
       size-64(DMA)           0      0     64    0    0    1 0
       size-64            14835  28200     64  129  235    1 106

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

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

Wie kann ich 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-5.0-5.2: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 20
       
       NOTE Die Zahl "1" bedeutet die Refresh Rate zur Erneuerung der angezeigten Informationen!
            Der Zusatz "20" gibt die Zeilenanzahl aus die ausgegeben werden soll. 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

Eine weitere Möglichkeit eine Uebersicht zu erlangen betreffend CPU und Memory Belastung wäre der folgende Befehl:

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

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", "Kernel Conserve Mode" und "Proxy 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 der Unterschied 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"
               
       In der Kommandozeile kann der Conserve Mode ebenfalls eruiert werden mit folgenden Befehl:
               
               # diagnose hardware sysinfo shm
               SHM counter:          721
               SHM allocated:   17256448
               SHM total:     1489289216
               conservemode:           0
               shm last entered:     n/a
               system last entered:  n/a
               SHM FS total:  1523073024
               SHM FS free:   1504075776
               SHM FS avail:  1504075776
               SHM FS alloc:    18997248
       
               NOTE Die Relevante Position ist "conservemode:" dh. steht diese Positon auf "0" ist der "Conserve Mode"
                    nicht aktiv. Steht die Position auf "1" ist der "Conserve Mode" aktiv. Im Web Mgmt. Interface im
                    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
               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).
       
       Eine weitere Möglichkeit für "system top" wäre folgender Befehl:
       
       # diagnose sys top-summary 
       CPU [||||||||||||||                          ]  35.5%
       Mem [|||||||||||                             ]  29.0%   539M/1839M
       Processes: 20 (running=6 sleeping=84)
       
         PID      RSS  ^CPU% MEM%   FDS     TIME+  NAME
       * 28433    18M   35.5  1.0    10  00:04.95  newcli [x2]
         36       20M    0.0  1.1    11  00:47.30  cmdbsvr
                   39       11M    0.0  0.6    87  00:01.33  zebos_launcher [x12]
                   51        9M    0.0  0.5    11  00:32.22  uploadd
                   52       22M    0.0  1.2    57  00:22.81  miglogd
                   53        9M    0.0  0.5     6  00:00.00  kmiglogd
                   54       25M    0.0  1.4    19  03:03.25  httpsd [x4]
                   57       23M    0.0  1.3   814  00:04.45  proxyd [x6]
                   58       10M    0.0  0.6     8  00:00.28  wad_diskd
                   59       12M    0.0  0.7    16  00:01.28  scanunitd [x3]
                   61       57M    0.0  3.1    18  00:08.57  ipsmonitor [x2]
                   9233     14M    0.0  0.8    26  00:00.89  iked
                   65        9M    0.0  0.5     8  00:00.60  merged_daemons
                   66        9M    0.0  0.5     8  00:00.20  fnbamd
                   67        9M    0.0  0.5     9  00:00.12  fclicense
                   71       10M    0.0  0.6    18  00:00.31  forticron
                   72        9M    0.0  0.5    11  00:00.12  forticldd
                   73       11M    0.0  0.6    18  00:00.18  urlfilter
                   74       12M    0.0  0.7    35  00:04.31  authd
                   75       10M    0.0  0.6    14  00:00.47  fcnacd

Zusätzlich zum "Kernel Conserve Mode" gibt es den "Proxy Conserve Mode". Der "Kernel Conserve Mode" wird dann ausgelöst wenn nicht genügen "low memory" zur Verfügung steht resp. die Limiten dafür (20%) unterschritten wird. Der "Proxy Conserve Mode" tritt dann ein wenn im Gesamten nicht mehr genügend Memory zur Verfügung steht. Dabei gelten folgenden Limiten:

       MemTotal        Enter Proxy Conserve Mode        Exit Proxy Conserve Mode
       <= 128 MB       MemFree <=  5 MB                 MemFree > 10 MB
       <= 256 MB       MemFree <= 10 MB                 MemFree > 20 MB
       <  512 MB       MemFree <= 40 MB                 MemFree > 60 MB
       <=   1 GB       MemFree <= 20%                   MemFree > 30%
       >    1 GB       MemFree <= 12%                   MemFree > 18%
       
       NOTE Für den "Proxy Conserve Mode" werden in den verschiedenen Logs folgendes angezeigt:
            
            Event logs:
            conserve=on total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin> msg="The system has entered conserve mode"
            conserve=exit total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin> msg="The system exited conserve mode"
            
            Crashlog (diagnose debug crashlog read):
            conserve=entered total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin>
            conserve=exited total=<TotalMemoryMB> free=<FreeMemoryMB> entermargin=<margin> exitmargin<margin>
       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-5.0-5.2: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-5.0-5.2: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"!

Was passiert mit der UTM Inspection wenn eine FortiGate in den "Proxy Conserve Mode" geht?

Wenn eine FortiGate in den "Proxy Conserve Mode" geht ist die Frage was mit dem Traffic durchgeführt wird betreffend "UMT Inspection". Wieso eine FortiGate in den "Proxy Conserve Mode" geht siehe auch folgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Was_bedeudet.2Fist_der_Unterschied_zwischen_.22Regular_Conserve_Mode.22.2C_.22Kernel_Conserve_Mode.22_und_.22Proxy_Conserve_Mode.22.3F

Das Verhalten eine FortiGate im "Proxy Conserve Mode" wird über folgendes Kommando konfiguriert:

       # config system global
       # set av-failopen [idledrop | off | one-shot | pass]
       # end

Die einzelnen Optionen haben folgende Bedeutung:

       idledrop           Verwirft alle "idle" Proxy Sessions
       off                Alle neue Session für die UTM Scanning aktiviert ist werden geblockt
       one-shot           Für alle neuen Sessions wird ein UTM Scanning durchgführt
       pass (default)     Alle neuen Sessions werden erlaubt "ohne" Inspection

Wie hier gezeigt ist "pass" der Standard Wert und für die meisten Umgebungen akzeptabel. In einem High Security Umgebung resp. um in allen Fällen zu verhindern das eine Malware etc. den internen Bereich erricht sollte die Option auf "off" gesetzt werden. Im Zusammenhang mit dem "Proxy Conserve Mode" ist die folgende Optione ebenfalls zu berücksichtigen sofern ein "Explizit Proxy" eingesetzt wird:

       # config system global
       # set av-failopen-session [enable | disable]
       # end

Diese Konfiguration hat folgende Bedeutung: Wenn "av-failopen-session" aktiviert ist so wird die Konfiguration von "av-failopen" herangezogen. Wenn "av-failopen-session" deaktiviert ist (Standard) so werden alle neuen "Explizit Proxy" Sessions geblockt.

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 finde ich Informationen über den FortiExplorer und dessen Gebrauch?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiExplorer:FAQ

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

Nachfolgendes Dokument zeigt wie auf einem MacOSx basierend auf diesem "USB to RS232 Converter" Adapter konfigiguriert wird inkl. der Konfiguration eines TFTP Servers. Dieses Dokument wurde durch einen Kunden der ALSO Schweiz AG zur Verfügung gestellt:

       Datei:RS232-USB-Converter-TFTP-Server-Konfig-MacOSx.pdf

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

       FortiGate-5.0-5.2: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-5.0-5.2: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-5.0-5.2: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:

       FortiExplorer: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-5.0-5.2: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-5.0-5.2: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:
            
            FortiExplorer: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-5.0-5.2: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-5.0-5.2: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-5.0-5.2: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-5.0-5.2:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F
            
            Wenn der Vorgang der hier beschrieben wird über eine MacOSx Platform durchgeführt wird stellt sich die Frage wie
            sich die Konfiguration betreffend "RS232" resp. Consolen Port darstellt sowie betreffend "TFTP" Server. Auf der
            MacOSx Platform gibt es verschiedenen Ansätze diese Konfiguration für "RS232" resp. Consolen Port sowie "TFTP" 
            Server durchzuführen. Das nachfolgende Dokument wurde durch einen Kunden der ALSO Schweiz AG zur Verfügung gestellt
            das zeigt wie diese Konfiguration durchzuführen ist. Dabei wird der "USB to RS232 Converter" eigensetzt auf den im
            vorhergehenden Link verwiesen wird:
            
            Datei:RS232-USB-Converter-TFTP-Server-Konfig-MacOSx.pdf

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 gemäss nachfolgenden Artikel lade die Firmware runter zB "FGT_60C-v400-build0521-FORTINET.out":

       FortiGate-5.0-5.2:FAQ#Wie_f.C3.BChre_ich_einen_manuellen_Firmware_Update_durch.3F

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-5.0-5.2: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
       
       NOTE Um zu eruieren "welche" Firmware runtergeladen werden muss kann über die "Upgrade Path" Dokumente
            verifiziert werden welche Schritte einzuhalten sind. Dies bedeutet: Ein Firmware Upgrade auf einer
            FortiGate muss anhand dieser "Upgrade Path's" durchgeführt werden ansonsten wird die Konfiguration
            korrupt. Diese "Upgrade Path" Dokumente findet man für jede Version unter folgenden Artikel:
            
            FortiOS-Upgradepath

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

Wenn bei einem Upgrade direkt oder nachträglich festgestellt wird, dass irgendetwas nicht stimmt kann ein "roll-back" initiert werden dh. man aktiviert die vorhergende Instanz resp. Firmware. Bei mehreren Schritten dh. wenn ein Firmware Upgrade in mehreren Schritten durchgeführt werden muss, ist zu berücksichtig das immer nur ein "roll-back" auf die vorhergehnde Instanz/Firmware möglich ist. Für ein "roll-back" auf einer FortiGate stehen immer nur 1 Partitionenen zur Verfügung. Weitere Informationen wie ein "roll-back" initiert wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_Roll-back_initieren_f.C3.BCr_eine_Firmware.3F

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-5.0-5.2: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-5.0-5.2:FAQ#Was_ist_bei_einem_Upgrade_auf_FortiOS_5.2_zu_ber.C3.BCcksichtigen_betreffend_bestehender_Konfiguration.3F

Ist ein Firmware Upgrade direkt auf der FortiGate über FortiGuard zu empfehlen?

Wenn man eine FortiGate eine Zeitlang in Betrieb hat fällt einem auf das über FortiGuard auf der FortiGate Firmware Upgrades angeboten werden (Hinweis). Dies bedeutet: Wenn zB 5.0.x eingesetzt wird und FortiOS 5.2.x zur Verfügung steht wird innerhalb der Firmware Upgrade Funktion eine entsprechende Meldung ausgegeben, dasd ein Upgrade zur Verfügung steht. Diese Meldung stammt von ForitGuard. Die Problematik dieser Meldung ist die Folgende: Bei diesen Meldungen handelt es sich ausschliesslich um einen Hinweis dh. diese Meldungen verifizieren "nicht" ob ein Upgrade durchführbar ist mit der momentanen eingesetzten Version. Wenn ein Upgrade auf einer FortiGate durchgeführt wird müssen die "Upgrade Path's" eingehalten werden. Wenn diese "Upgrade Path's" nicht eingehalten werden so wird zwar ein Upgrade durchgeführt jedoch die Konfiguration kann nicht korrekt übernommen resp. modifiziert werden für die neue Version und somit ergiebt sich durch diesen nicht korrekten "Upgrade Path" eine korrupte Konfiguration. Das Problem ist, dass ein Upgrade File für eine FortiGate "keine" Verifizierung durchführt sondern das Upgrade wird einfach angewandt. Diese Upgrade Path's müssen strikte eingehalten werden und dazu stellt Fortinet für "jede" Version spezielle Dokumente zur Verfügung die diese einzuhaltenden "Upgrade Path's" aufzeigt:

       Datei:FortiOS-Upgradepath.pdf    FortiOS 5.0
       Datei:FortiOS-Upgradepath-52.pdf FortiOS 5.2

In der Vergangenheit gab es immer wieder Probleme mit dieser Funktion und aus diesem Grund und speziell aus den oben aufgeführten Gründen ist abzusehen von einem Firmware Upgrade aus FortiGuard. Die von uns empfohlen Vorgehensweise ist die folgende:

       - Verifiziere die eingesetzte Firmware Version auf der FortiGate über Mgmt. Interface oder CLI (get system status)
       - Verfizieren den einzuhaltenden "Upgrade Path" für ein Upgrade anhand der verifizierten Firmware auf der FortiGate
       - Download über die offizielle "Support Seite" von Fortinet für die entsprechende FortiGate
       - Backup der momentanen Konfiguration der FortiGate
       - Durchführen des Firmware Upgrade gemäss "Upgrade Path"
       
         NOTE Wenn mehrere Schritte vollzogen werden müssen für ein Upgrade ist es zu empfehlen für jeden Schritt ein 
              Backup durchzuführen. Ebenfalls muss berücksichtigt werden, dass "nur" zwei Partitionen zur Verfügung
              stehen auf einer FortiGate für ein event. "roll-back". Dies bedeutet: Die momentane Instanz einer FortiGate
              läuft in Partition "1" oder "2". Diese momentane Instanz ist "active" gesetzt. Wird ein Upgrade angewandt
              so wird die neue Firmware in die freie Partition installiert. Danach wird ein Backup der momentanen "active"
              gesetzten Partition gezogen und in die neue Partition importiert. Bei diesem Import oder auch Restore Vorgang
              werden Script's angewendet um die Konfiguration auf den neusten Stand zu brigen. Danach wird die momentane
              Partition "deaktiviert" und die neue Partition mit der neue Firmware "active" gesetzt. Danach wird ein Neustart
              ausgeführt und da die neue Partition "active" gesetzt wurde wird diese beim Neustart berücksichtigt. Wenn 
              bei einem solchen Vorgang oder auch in einem späteren Zeitpunkt ein "roll-back" durchgeführt werdne möchte,
              kann dieser Vorgang wiederum manuell durchgeführt werden dh. die "active" Partition kann "deaktiviert" werden
              und die vorhergehende auf "active" gesetzt werden. Weitere Informationen dazu siehe nachfolgenden Artikel:
              
              FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_Roll-back_initieren_f.C3.BCr_eine_Firmware.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:

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

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:
         
         FortiExplorer: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-5.0-5.2:FAQ#Wie_kann_ich_die_Installation.2FKonfiguration_einer_FortiGate_komplett_automatisieren_.28USB_Auto-Install.29.3F
         
       - Ueber den Consolen Port:
         
         FortiGate-5.0-5.2:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F

Wie setze ich eine Fortigate auf "Factory Defaults"?

Eine Fortigate kann anhand des "resets" Knopf's auf "Factory Defaults" gesetzt. Nachfolgend eine Abbildung einer C60 in der 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 Das Kommando "factoryreset" 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-5.0-5.2: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 (system.interface)
            - VDOM Konfiguration (system.global.vdom-admin/VDOMs)
            - System Settings (system.settings)
            - Statische Routen (router.static)
       
            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-5.0-5.2:FAQ#Wo_finde_ich_eine_Uebersicht_.C3.BCber_die_.22Default_Settings.22_einer_FortiGate.2FFortiOS.3F
       Datei:Fortinet-11.jpg
       Datei:Fortinet-23.jpg

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-5.0-5.2: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-5.0-5.2: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-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_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!

Kann man unter FortiOS 5.0/5.2 die im Backup File enthaltenen und verschlüsselten Passwörter/PSK Wiederherstellen?

Wenn ein Backup erstellt wird sei es über das Mgmt. Web Interface und/oder über Kommandozeile hat man die Möglichkeit das Backup komplett zu verschlüsseln. Die Verschlüsselung basiert auf einem vergebenen Passwort und anhand diesem wird ein "hash" erstellt das dazu benutzt wird um das Backup komplett zu Verschlüsseln. Wenn beim einem Backup keine Verschlüsselung gewählt wird, werden sämtliche Passwörter und Preshared Secrets (PSK) entweder mit einem "hash" versehen oder "encoded" dh. ebenso verschlüsselt. Somit erscheint im Backup File für die entsprechenden Positionen:

       set ENC [hash/encoding]

Wurde ein Backup anhand eines Passwortes verschlüsselt und bei einem Restore ist das Passwort nicht mehr vorhanden kann der "hash" der für die Verschlüsselung benutzt wurde nicht wiederhergestellt werden dh. das Backup ist verloren. Der gleiche Umstand gilt für die verschlüsselten Passwörter und Preshared Secret (PSK) in einem nicht verschlüsselten Backup File. Es ist auch für Fortinet nicht mögliche diese Verschlüsselung dh. den benutzten "hash" oder "encoding" wiederherzustellen denn dieser basiert auf folgenden Informatonen:

       Encryption hash für FortiOS für Lokale Passwörter und Preshared Key (PSK)
       
       Der String der Zeichen die anstelle des Passwortes im Konfigurations File aufgeführt sind, ist ein "hash" oder "encoding" 
       des Passwortes selber. Der "encryption hash" der benutzt wird für den "admin" Account is "SHA256/SHA1". Der Wert der 
       ersichtlich ist im Konfigurations File für den "admin" Account ist ein Base64 "encoded hash" Wert. Der Grössenunterschied 
       zwischen der tatsächlichen Grösse und der Grösse die zu erwarten ist, entsteht dadurch da der tatsächlichen Grösse ein 
       3-byte grossen Wert hinzugefügt wird um den Passwort Typ zu erkennen dh. es werden 4 Typen von Passwörtern unterschieden 
       resp. erkannt und somit enthält die tatsächliche Grösse zusätzlich einen 12-byte Wert (3-byte X 4 = 12-byte). Wenn ein 
       Konfigurationspunkt ein Preshared Secret (PSK) enthält zB für Phase-1 einer VPN Konfiguration oder ein anderes Passwort, 
       wird in der Konfiguration ein "encoded version" gespeichert. Dies bedeutet: Dies stellt kein "hash" dar sondern das "clear 
       text" Passwort wird "encoded". Dieses "encoding" basiert auf einer Verschlüsselung anhand eines "fixed key" basierend auf 
       DES (AES wird benutzt im FIPS Mode) und einem "encoding" auf Base64. In verschiedenen Situationen ergiebt sich keine 
       Alternative um ein "clear text" Passwort zu speichern als in DES/AES "encoded". Der Grund liegt in den Funktionen selber 
       dh. Folgendes Beispiel: Das Preshared Secret (PSK) das benutzt wird in der Phase-1 einer VPN Konfiguration wird für die 
       IKE Komunikation definiert und IKE benutzt diese Preshared Key (PSK) als "key" für eine HMAC Kalkulation um den "key" zu 
       ermittelnt der benutzt wird um die IKE Komunikation zu sichern/verschlüsseln. Da weder PSK oder ein "hash" zur Gegenseite 
       gesendet werden kann im IKE "handshake", müssen beide Seiten über das "clear text" PSK verfügen und somit ist es nicht 
       möglich für diese PSK einen "hash" zu speichern.
       
       Referenz: http://cookbook.fortinet.com/encryption-hash-used-by-fortios-for-local-pwdpsk/

Somit ist folgendes festzustellen: Je nach Funktion und Anwendung, werden Passwörter und/oder Preshared Key's (PSK) nicht nur im Konfigurations File verschlüsselt abgespeichert sondern auch im FortiOS!

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-5.0-5.2: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-5.0-5.2:FAQ#Wie_konfiguriere_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_eine_Public_Key_Authentication.3F
       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F

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
       Datei:Fortigate-whats-new-521.pdf
       Datei:Fortigate-whats-new-522.pdf
       Datei:Fortigate-whats-new-523.pdf
       Datei:Fortigate-whats-new-524.pdf
       Datei:Fortigate-whats-new-525.pdf
       Datei:Fortigate-whats-new-528.pdf
       Datei:Fortigate-whats-new-529.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-5.0-5.2: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
       Datei:FortiOS-52-Software Matrix-R1-201409-V521.pdf
       Datei:FortiOS-52-Software Matrix-R1-201411-V522.pdf
       Datei:FortiOS-52-Software Matrix-R3-201503-V523.pdf
       Datei:FortiOS-52-Software Matrix-R4-201508-V524.pdf
       Datei:FortiOS-52-Software Matrix-R6-201508-V524.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-5.0-5.2: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-5.0-5.2: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-5.0-5.2: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-5.0-5.2: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-5.0-5.2: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-5.0-5.2: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 sowie sich Gründlich zu Informieren!

       NOTE Im FortiOS 5.2 wurden wiederum einige "tiefgreifende" Modifikationen durchgeführt. In den nachfolgenden Artikeln
            werden die neuen Features erwähnt, erklärt und Unterschiede aufgezeigt! Ebenso hat Fortinet "Delta" Dokumente Released
            die diese Unterschiede ebenfalls in einer Kurzübersicht aufzeigen!
            
            FortiOS 5.2 Delta
             Was sind die Unterschiede zwischen FortiOS 5.0 und FortiOS 5.2?
             FortiGate FortiOS 5.2 Whats New!
            
            Logging
             Ab FortiOS 5.2 wird das Logging auf Disk (FortiGate 100D und kleiner) deaktiviert und Disk steht nicht mehr zur Verfügung?
             Wie sieht/führe ich eine vollständige Log Konfiguration auf einer FortiGate aus?
             Gibt es für das Logging eine Performance Statistik und kann ich diese manipulieren/konfigurieren?
             Ist es möglich die lokalen Logs einer FortiGate auf einen USB Stick zu kopieren?
                         
            IPSec
             Wie wird unter FortiOS 5.2 ein IPSec basierende Site2Site VPN Verbindung aufgebaut (Interface Based)?
            
            SSL-VPN
             Kann ich für SSL-VPN ein "Custome Language File" erstellen/konfigurieren?
             Wieso funktioniert ab FortiOS 5 mein SSL-VPN auch ohne die IP Pool Route und/oder Policy zu implementieren?
            
            Interface
             Was ist ein "Virtual WAN Link" (Redundant Internet Connections) und wie konfiguriere ich Diesen?
             Wie konfiguriere ich auf der Console ein "aggregated" Interface (LACP)?
             Was ist LLDP und wie kann ich dieses Protokoll aktivieren/konfigurieren auf einer FortiGate?
             Kann ich auf einer FortiGate für den "Software Switch" und/oder virtuellen "Hardware Switch" eine SPAN Port (Port Mirroring) konfigurieren?
             Wie verhält sich eine FortiGate wenn Traffic Fragmentiert werden soll (do not fragment bit)?
            
            High Availibilit (HA)
             Ist es möglich ein FortiGate Cluster zu konfigurieren wenn DHCP/PPPoE auf den Interfaces benutzt wird (HA)?
             Kann ich anhand eines Befehls den HA Sync Prozess einsehen?
            
            Policy Route
             Was sind Policy Routen und wie verwende ich diese sowie auf was muss ich achten?
             Wie schalte ich die "Dead Gateway Detection / Link Health Monitor" ein für ein Interface zB wan 1 und 2?
            
            Antivirus
             Was ist der Hauptunterschied in der Antivirus Funktion zwischen FortiOS 5.0 und 5.2?
             Kann ich das Antivirus Scanning (scanunitd) im Memory anschauen und/oder manipulieren?
             Wie setze/blocke ich die File Limite (maximum file size) für den Antivirus?
            
            Application Control
             Wie aktiviere ich für eine bestimmte Applikation/Anwendung die "Application Control"?
            
            FortiGuard
             Welcher Port wird durch den FortiGuard Service benutzt und wie kann ich diesen wechseln?
            
            DHCP Server
             Kann ich für einen DHCP Server auf einer FortiGate ein TFTP Server/File konfigurieren?
             Wie füge ich einer bestimmten MAC Adresse eine IP aus dem DHCP Range hinzu?
            
            VDOM
             Kann ich die zur Verfügung stehenden Resourcen wie Memory, CPU etc. auf einer FortiGate einer bestimmten VDOM zuweisen?
            
            Firewall Policy
             Kann ich für eine FortiGate Firewall Polic eine CoS (Class of Service) konfigurieren?
             Sind in der "Firewall Policy" für eine entsprechende Rule die Logs direkt ersichtlich?
             Wie kann ich die Standard-Spalten-Einstellung der Policy View manipulieren/verändern?
             Was gilt in "einer" Firewall Policy Rule unter FortiOS 5.2, wenn "flow based" und "proxy based" Security Profiles benutzt werden?
             TCP Session einer Firewall Policy ist kleiner als die einer Workstation/Client/Server was kann ich tun?
            
            Protocol Options
             Wann muss ich die UTM SSL Proxy/Protocol Options in der Firewall Rule aktivierten und definieren?
             Wie funktioniert der HTTPS scan innerhalb des WebFilter wenn "Deep Inspection" nicht aktiviert ist (Scan Encrypted Connections / HTTPS URL Scan Only)?
            
            URL Filter
             Kann ich über einen URL Filter anhand eines "referrer's" eine Seite erlauben und/oder blockieren?
             Kann ich innerhalb eines WebFilters für zB Images und Java über FortiGuard ein Rating durchführen?
            
            VoIP
             Muss ich den SIP Session Helper unter FortiOS 5 löschen und wann wird SIP ALG benutzt?
            
            Zertifikate
             Was für ein Standard Zertifikat (Default CA) ist auf einer FortiGate installiert?
             Wie kann ich ein "Local Certificate" von einer FortiGate exportieren und in eine andere FortiGate importieren?
            
            Client Reputation (Threat Weight)
             Was ist der Unterschied zwischen "Client Reputation" und "Threat Weight"?
            
            Wireless
             Welche Firmware sollte auf einer FortiGate und/oder FortiAP eingesetzt werden?
             Kann ich einen Forti Access Point basierend auf Firmeware 5.2 anhand eines "Downgrade's" mit Firmeware 5.0.x laden?
             Was ist als Erstes beim "Setup" eines FortiAP zu beachten (Country Code)?
             Wie implementiere ich ein "Wireless Guest Access Provisioning" (Guest Management) ein "Custome Language File"?
             Kann ich für "Wireless Guest Access Provisioning" die Erstellung der Tickets limitieren?
             Welche Einstellungen gelten wenn anstelle eines entsprechenden Profile für ein Forti Access Point "Automatic / Override Settings" gewählt wird?
             Was bedeutet der Konfigurationspunkt "Rogue AP’s"?
             Was bedeutet "Wireless IDS" (WIDS) und wie konfiguriere ich diese Funktion?
             Wie kann ich per Telnet auf einen Forti Access Point zugreifen wenn der Access Point über keinen Consolen Port verfügt?
             Gibt es die Funktion "Split Tunneling" für Forti Access Points und deren SSID's?
             Kann ich für ein WiFi SSID ein Captive Portal konfigurieren?
             Was bedeutet der Konfigurationspunkt "Background Scan/Spectrum Analyse"?
             Wird bei einer Radius Authentication die Funktion "Accounting" unterstützt?
             Ist es möglich anhand eines FortiCloud Accounts FortiAccess Points zu verwalten/konfigurieren?
             Kann ich bei einem Forti Access Point die LED's deaktivieren damit diese bei Gebrauch nicht mehr blinken?
            
            System
             Welche 3G USB Modem's (Compatibility) kann ich für eine FortiGate benutzen?
             Kann ich das Konfigurieren/Managen eines FortiGate Devices über den FortiExplorer deaktivieren?
             Kann ich das Timout für ein Login komplett ausschalten?
             Was ist die maximal Länger eines Passwortes für eine User Authentication?
             Kann ich das "Packet Capture" für Administratoren Einschränken?
             Wo kann ich für Alert's etc. einen Email Server definieren und kann ich eine Verschlüsselung benutzen?
             Wie kann man die Disk (Flash, SSD) eines FortiGate Device's testen?
             Gibt es eine Möglichkeit nicht erfolgreiche Admin Login's aufzulisten?
             Wie konfiguriere ich einen virtuellen "Hardware Switch"?
            
            FortiClient
             Kann ich unter FortiOS 5.2 einen FortiClient 4 MR3 und/oder 5.0 im "VPN-Only" Mode benutzen?
             Wie kann ich ein FortiClient Endpoint Security Software Package mit VPN (IPSec/SSL-VPN) only erstellen?
             Gibt es eine Möglichkeit alle FortiClient's die auf einer FortiGate Registriert sind zu Deregistrieren?
             Wie kann ich die Registrierungsfunktion betreffend FortiClient Endpoint Security auf einer FortiGate manipulieren?
            
            Device
             Was ist zu berücksichtigen beim Betrieb einer FortiGate 30D?
             FortiExtender 4G/LTE Network Extender?
       1. Backup der aktuellen Konfiguration 5.0 basierend
       2. Event. Upgrade auf V5.06/7 letzter Patchlevel (Siehe Upgrade Dokument im nachfolgenden Artikel):
          
          FortiGate-5.0-5.2: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
          
          Bei einem Upgreade auf FortiOS 5.2 sollten die "Release Notes" Konsultiert werden. In den nachfolgenden Punkten wird
          auf die Hauptpunkte wie FortiManager, FortiAnalyzer eingegangen:
       
          Datei:Fortios-5.2.0-release-notes.pdf
          Datei:Fortios-5.2.1-release-notes.pdf
          Datei:Fortios-5.2.2-release-notes.pdf
          Datei:Fortios-5.2.3-release-notes.pdf
          Datei:Fortios-5.2.4-release-notes.pdf
          Datei:Fortios-5.2.5-release-notes.pdf
          Datei:Fortios-5.2.6-release-notes.pdf
          Datei:Fortios-5.2.7-release-notes.pdf
          Datei:Fortios-5.2.8-release-notes.pdf
          Datei:Fortios-5.2.9-release-notes.pdf
          Datei:Fortios-5.2.10-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 FortiAnalyzer 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 verloren! 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-5.0-5.2:FAQ#Wie_kann_ich_ein_Roll-back_initieren_f.C3.BCr_eine_Firmware.3F
               
               Wird ein solches "Rollback" Scenario 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 verloren!
       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 aufgesplittet 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 sowie zu testen.
          
          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" Explicit 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 Portale. 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 Zertifikat 
          Meldungen 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-5.0-5.2: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 auf den kleineren Modellen
          komplett deaktiviert. Weitere Informationen dazu siehe folgender Artikel:
          
          FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F      
       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
           
           NOTE Der Hinweis "Kein Support" bedeutet folgendes. Im nachfolgnden Artikel wird im FAQ des FortiClients auf diese
                Frage eingegangen. In diesem Dokument findent man die Aussage, dass 4 MR3 sowie 5.0.x basierende FortiClient
                funktionieren "sollten" (should work). Somit ist keine 100% Gewährleistung gegeben das ein 4 MR3 Client sowie
                5.0.x Client unter FortiGate FortiOS 5.2 einwandfrei in den Grundfunktionen funktionieren. Weitere Informationen
                betreffend FortiClient kompatibilität findet man im nachfolgenden Artikel:
                
                FortiClient:FAQ#Kann_ich_unter_FortiOS_5.2_einen_FortiClient_4_MR3_und.2Foder_5.0_im_.22VPN-Only.22_Mode_benutzen.3F
                
                Desweiteren ist folgendes zu beachten: Seit ca. Juli 2014 wird über FortiCloud kein 5.0.x basierender FortiClient
                mehr als Download angeboten dh. neu wird nur der FortiClient 5.2 auch für FortiOS 5.0.x basierende Devices als 
                Download zur Verfügung gestellt. Um was es sich hier handelt siehe nachfolgender Artikel:
                
                FortiClient:FAQ#Um_welche_Version_des_FortiClient_handelt_es_sich_wenn_ich_diesen_.C3.BCber_das_Mgmt._Web_Interface_der_FortiGate_runterlade.3F 
       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 min. 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-221C 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-5.0-5.2: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_Forti_Access_Point_basierend_auf_Firmeware_5.2_anhand_eines_.22Downgrade.27s.22_mit_Firmeware_5.0.x_laden.3F

Sniffer-Mode / CTAP

Wie kann ich eine Fortigate mit einem Sniffer Port konfigurieren?

Unter FortiOS ist es möglich eine FortiGate Interface so zu konfigurieren, dass dieses FortiGate Interface als "sniffer" Port agiert. Dies bedeutet: Auf einem Switch wird eine sogenannter "mirror" Port (oder auch "span" Port) konfiguriert. Der Switch spiegelt (mirror) somit jedes Packet das er erhält auf diesen "mirror" Port. Somit bekommt dieser "mirror" Port auf dem Switch jeden Traffic mit, der über den Switch verarbeitet wird. Wird nun ein FortiGate Interface im "sniffer" Mode an diesen "mirror" Port angeschlossen, erhält die FortiGate somit smätlichen Traffic des "mirror" Port und kann diesen vearbeiten. Dabei ist es möglich einzelne UTM Faetures, Firewall Policy usw. zu aktivieren/konfigurieren und den Traffic so zu verarbeiten als ob der FortiGate Device zwischen dem Traffic agieren würde. Dies bedeutet: Dabei wird der Traffic nicht effektiv geblockt da es sich nur um Traffic handelt der über den "mirror" Port weitergeleitet wird und somit kann die FortiGate über diesen "sniffer" Port nicht reguläre in den Traffic eingereifen. Somit stellt dieser "sniffer" Modus eine ideale Möglichkeit dar den Traffic einer Umgebung zu analysieren und daraus entsprechende Auswertungen und Konfigurationen zu ermitteln. Für die Auswertung resp. Analyse ist es empfohlen einen FortiAnalyzer einzusetzen. Für einen solche "sniffer" Mode Konfiguration muss speziell wenn die UTM Features benutzt werden möchten der FortiGate Device registriert sein sowie der FortiGate Device muss über die entsprechenden UTM Featueres zB UTM-Bundle verfügen. Damit die Registration sowie UTM Features aktiviert werden können muss auf der FortiGate Device über den Mgmt. Port das Internet erreichbar sein. Ebenso benötigt der FortiGate Device über den Mgmt. Port DNS Zugriff. Ausgehend von der Factory Default Zustand eines FortiGate Devices kann folgendes konfiguriert werden:

       Konfiguration Mgmt. Interface Port
       
       # config system interface
       # edit [Name des Interfaces zB "port1"]
       # set vdom "root"
       # set alias [Setze einen gewünschten Alias für das Mgmt. Interface zB "Management"]
       # set ip [IPv4 Adresse des Mgmt. Interfaces zB "198.18.0.2/24"]
       # set allowaccess https ssh ping]
       # end 
       Konfiguration DHCP Server für Mgmt. Interface Port
       
       # config system dhcp server
       # edit[Wähle einen entsprechenden Integer zB "1"]
       # set default-gateway [IPv4 Adresse für den Default Gateway zB "198.18.0.2"]
       # set dns-service default
       # set interface [Name des Interfaces für den DHCP Server zB "portl"
       # config ip-range
       # edit [Wähle einen entsprechenden Integer zB "1"]
       # set end-ip [Start IPv4 Adresse für DHCP Server zB "198.18.0.254"]
       # set start-ip [End IPv4 Adresse für DHCP Server zB "198.18.0.129"]
       # next
       # end
       # set [Netmaks für DHCP Server zB "netmask 255.255.255.0"]
       # next
       # end
       Konfiguration Default Gateway für Mgmt. Interface Port
       
       # config router static
       # edit [Wähle einen entsprechenden Integer zB "1"]
       # set gateway [IPv4 Adresse des Gateway für Mgmt. Interface zB "198.18.0.1"]
       # set device [Name des Mgmt. Interface Port zB "port1"]
       # end
       Konfiguration des NTP Servers sowie TimeZone
       
       # config system global
       # set timezone 26
       # end
       
       # config system ntp
       # set ntpsync enable
       # set type custom
       # set syncinterval 60
       # set server-mode disable
       # config ntpserver
       # edit [Wähle einen entsprechenden Integer zB "1"]
       # set server [Wähle einen entsprechenden NTP Server zB "ch.pool.ntp.org"]
       # set ntpv3 disable
       # next
       # end
       # end
       Konfiguration des System DNS Server
       
       # config system dns 
       # set primary [IPv4 Adresse des Primary DNS Server]
       # set secondary [IPv4 Adresse des Secondary DNS Server]
       # end
       Konfiguration des FortiGuard Ports
       
       # config system fortiguard
       # set port 8888
       # end
       Konfiguration des Interface für den "sniffer" Mode
       
       # config system interface
       # edit [Name des entsprechenden Interfaces zB "wan1"]
       # set vdom "root"
       # set allowaccess ping
       # set ips-sniffer-mode enable
       # set type physical
       # set alias [Setze einen gewünschten Alias für das Mgmt. Interface zB "Sensor"]
       # end
       Konfiguration der "sniffer" Policy
       
       # config firewall sniffer
       # edit [Wähle einen entsprechenden Integer zB "1"]
       # set ipv6 enable
       # set non-ip enable
       # set interface "wan1"
       # set logtraffic all
       # next
       # end
       Konfiguration FortiAnalyzer Logging
       
       # config log fortianalyzer setting
       # set status enable
       # set server [IPv4 Adresse des FortiAnalyzers]
       # set upload-option realtime
       # set reliable enable
       # end
       
       # config log fortianalyzer filter
       # set severity information
       # set fortward-traffic enable
       # set local-traffic enable
       # set multicast-traffic enable
       # set sniffer-traffic enable
       # set anomaly enable
       # set voip enable
       # set dlp-archive enable
       # unset filter
       # set filter-type include
       # end

Möchte man UTM Features benützen dh. anhand konfigurierter UTM-Profiles können diese nachträglich innerhalb der "sniffer" Policy eingebunden resp. aktiviert werden. Verbinde nun zB in unseren Beiespiel den "wan1" Port des FortiGate Devices mit dem konfigurierten "mirror" Port auf dem Switch. Verbinde das Mgmt. Interface in unserem Beispiel "port1" mit dem internen Netz und verbinde dich auf das Mgmt. Web Interface. Wie schon erwähnt muss das Mgmt. Interface über den Default Gateway über Internet Zugriff verfügen. Dabei muss folgender Traffic erlaubt werden sei es extern und/oder intern damit alle Services inkl. UTM-Features für den "sniffer" Mode einwandfrei funktionieren:

       • DNS (UDP 53)
       • NTP (UDP/TCP 123)
       • FortiGuard (TCP 8888)
       • FortiAnalyzer RSH (UDP/TCP 514)
       • ICMP

Danach kann auf der FortiGate folgendes durchgeführt werden:

       Verifiziere den Default Gateway
       
       # 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
       S* 0.0.0.0/0 [10/0] via 198.18.0.1, portl
       C 198.18.0.0/24 is directly connected, portl
       Verifiziere die System DNS Server
       
       # exec ping www.fortinet.com
       Verifiziere die System Zeit/Datum
       
       # execute time
       Führe ein Update durch für UTM-Features/FortiGuard
       
       # execute update-now

Nun muss als letzter Schritt der FortiGate Device auf dem FortiAnalyzer eingebunden werden. Dies bedeutet: Ein entsprechende Anfrage wurde durch die Konfiguration "config log fortianalyzer" bereits zum FortiAnalyzer gesendet. Im Device Manager des FortiAnalyzer kann dementsprechend der FortiGate Device Bestätigt und eingebunden werden! Nach der Einbindung des FortiGate Devices im FortiAnalyzer verifiziere ob die Logs unter dem FortiAnalyzer für den FortiGate Device ersichtlich sind. Dieser Konfigurationsvorgang ist ebenfalls im nachfolgenden Dokument nochmals beschrieben:

       Datei:POC Sniffer Mode v2.1.pdf
       Datei:POC Sniffer Mode v1.6.zip
       Datei:POC Sniffer Mode v1.9.zip
       Datei:POC Sniffer Mode v2.1.pdf

Desweiteren hat Fortinet als "Supplementary Recipes" folgendes Dokument herausgegeben das auf diese Konfiguration eingeht:

       Datei:Analyzing-your-network-traffic-using-a-one-armed-sniffer.pdf

Wie kann ich für einen Fortigate Device das CTAP Portal nutzen und um was handelt es sich dabei?

CTAP steht für "Cyber Threat Assessment Portal" und ist ein Gratis Service von Fortinet für Fortinet Partner. Dies bedeutet: Anhand eines FortiGate Devices im "sniffer" Mode oder "transparent" Mode kann auf dem FortiGate Device der FortiAnalyzer der CTAP Funktion eingebunden werden. Somit werden alle Logs/Informationen zu diesem Service übermittelt und anhand eines Reports ausgewertet. Dabei ist folgendes zur berücksichtigen:

       Minimum FortiGuard Requirements FortiGate Device
       
       Der FortiGate Devices muss über ein Full FortiGuard verfügen! Der Grund ist der Folgende:
       In der "sniffer" Policy sind die verschiedenen UTM Features wie IPS, Application Control,
       AV sowie WebFilter aktiviert. Um eine umfängliche Auswertung zu erhalten, sind diese UTM
       Features die nur im Zusammenhang mit FortiGuard genutzt werden können unumgänglich.
       Unterstützte FortiGate Devices
       
       CTAP unterstützt die folgenden FortiGate Devices:
       
       • FG-100D
       • FG-300D
       • FG-1500D
       
       Dazu siehe auch: "What FortiGate Models Are Supported?"
       Unterstützung FortiOS für die unterstützten FortiGate Devices
       
       CTAP unterstützt die folgenden FortiOS Versionen:
       
       • FortiOS 5.4.0
       • FortiOS 5.2.5/5.2.6
       
       Dazu siehe auch: "FortiGate Configuration Files"

Wenn CTAP benützt werden möchte kann folgendes durchgeführt werden:

       • Downloade für den entsprechenden FortiGate Device das entsprechende Konfigurationsfile:
         
         "FortiGate Configuration Files"
       • Downloade für den entsprechenden FortiGate Device das entsprechende FortiOS für das Konfigurationsfile:
         
         https://support.fortinet.com/Download/FirmwareImages.aspx (Support Account Login)
       • Führe von Grundauf für den entsprechenden FortiGate Device mit dem entsprechenden FortiOS eine Firmware Wiederherstellung durch:
         
         FortiGate-5.4:FAQ#Wie_kann_ich_ein_FortiGate_Device_von_Grundauf_mit_einem_entsprechenden_FortiOS_installieren_.28staging.29.3F
       • Führe für den entsprechenden FortiGate Device anhand des entsprecheden Konfigurationsfile ein Restore durch:
         
         FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_auf_einem_FortiGate_Device_ein_Backup.2FRestore_durchf.C3.BChren.3F
       • Anhand des nachfolgenden Links führe einen Check durch für den entsprechenden FortiGate Device:
         
         "CTAP FortiGate Configuration Checklist"
         
         Für weitere Konfigurationen siehe auch nachfolgender Artikel:
         
         FortiGate-5.4:FAQ#Wie_kann_ich_unter_FortiOS_5.4_f.C3.BCr_einen_Fortigate_Device_einen_Sniffer_Port_konfigurieren.3F
       • Ueberprüfe ob das benützte Mgmt. Interface über Internet Access verfügt für folgende Ports:
         
         DNS/FortiGuard (UDP 53) 
         NTP (TCP/UDP 123)
         FortiGuard (HTTPS 443)
         FortiAnalyzer RSH (TCP/UDP 514 / 96.45.37.72)
       • Führe ein Login durch auf dem CTAP Portal anhand der Support Account Zugangs Informationen und Registriere den entsprechenden 
         FortiGate Device mit dessen Serien Nummer für den CTAP Service:
         
         https://ctap.fortinet.com/
         
         In der Registrierung muss ein entsprechendes Datum für "Logging start date" sowie "Logging end date" definiert werden. Ein Report
         wird nach "Logging end date" nach 48 Stunden bereitgestellt. Die empfohlene Zeitdauert ist 3 - 7 Tage für "Logging start/end date".

Danach kann der FortiGate Device in der entpsrechenden Umgebung in Betrieb genommen werden. Weitere Informationen findet man nach einem erfolgreichen Login ebenfalls unter folgenden Link:

       FAQ        https://ctap.fortinet.com/app/faq
       Download   https://ctap.fortinet.com/app/doc

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
       
       NOTE Um die Einträge für einen DNS Server auf einer FortiGate aufzulisten resp. die DNS Database zu "dumpen" kann folgender
            Befehl benutzt werden:
            
            # diagnose test application dnsproxy 8

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-5.0-5.2: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-5.0-5.2: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:
            
            Allgemein:Assigned-Internet-Protocol-Numbers-RFC
       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:

       NOTE Ab FortiOS 5.0.3 bis FortiOS 5.2.4 war der DDNS immer über Web Mgmt. Interface verfügbar für die Konfiguration. Ab FortiOS 
            5.2.5 wurde  die Position zur Konfiguration des DDNS entfernt und steht nur noch über CLI zur Verfügung!
       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-5.0-5.2: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.

Was muss ich auf einer FortiGate lizensieren um FortiGuard DDNS benutzen zu können?

Nachfolgender Artikel gibt Auskunft was zu lizensieren ist um FortiGuard DDNS benutzen zu können:

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

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-dhcp-advanced 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

Kann ich auf einer FortiGate für einen DHCP Server eine "Option" manuell definieren?

Wenn auf einer FortiGate ein DHCP Server betrieben wird und dem Client/Workstation über eine bestimmte Option zB 138 eine IP zugewiesen werden soll kann dies im DHCP Server auf der FortiGate konfiguriert werden. Grundlegende Optionen wie zB Wirlesss Controller, Wins Server und NTP Server müssen nicht über Optionen definiert werden sondern sind per Standard im DHCP Server vorhanden. Dies bedeutet zB für Wirless Controller, Wins Server und NTP folgendes:

       # config system dhcp server 
       # edit 1
       # set ntp-server1 [IPv4 Adresse]
       # set ntp-server2 [IPv4 Adresse]
       # set ntp-server3 [IPv4 Adresse]
       # set wifi-ac1 [IPv4 Adresse]
       # set wifi-ac2 [IPv4 Adresse]
       # set wifi-ac3 [IPv4 Adresse]
       # set wins-server1 [IPv4 Adresse]
       # set wins-server2 [IPv4 Adresse]
       # set wins-server3 [IPv4 Adresse]
       # end

Muss für eine spezifische Aufgabe ein eigenen Option benützt werden so muss folgendes berücksichtigt werden:

       Konfiguration FortiGate CLI DHCP Option:
       
       # config system dhcp server 
       # edit 1
       # set option1 [option_code] [option_hex]
       # set option2 [option_code] [option_hex]
       # set option3 [option_code] [option_hex]
       # set option4 [option_code] [option_hex]
       # set option5 [option_code] [option_hex]
       # set option6 [option_code] [option_hex]
       # end
       Um den [option_code] zu definiere sollte folgendes berücksichtigt werden:
       
       http://www.networksorcery.com/enp/protocol/bootp/options.htm
       http://de.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
       Um den [option_hex] (IPv4 Adresse) zu definieren muss folgendes berücksichtig werden:
       
       Den [option_hex] muss in "hexadecimal" definiert werden. Dies bedeutet die IP muss in "hexadecimal" umgerechnet werden. 
       Diese Umrechnung wird für jedes "octed" von Links nach Rechts ausgeführt. Im nachfolgenden Beispiel wird die folgende
       IP = 192.168.3.1 in Hexdecimal umgerechnet und zwar von Links nach Rechts:
       
       192 = C0
       168 = A8
         3 = 03
         1 = 01
      
       Hex = C0A80301
       
       NOTE Für die Umrechnung kann zB folgende Seite benutzt werden (Nicht vergessen von Links nach Rechts!):
            
            http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

Somit ergiebt sich für unser Beispiel und betreffend Option "Call Server IP" Option folgende Konfiguration:

       # config system dhcp server 
       # edit 1
       # set option1 129 C0A80301
       # end

Kann ich für einen DHCP Server auf einer FortiGate ein TFTP Server/File konfigurieren?

Ja dies ist möglich dh. ab FortiOS 5.2 kann neben der normalen DHCP Konfiguration zusätzlich ein TFTP Server sowie Filename konfiguriert werden. Weitere Informationen zur DHCP Server Konfiguration siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_Interface_einen_DHCP_Server_konfigurieren.3F

Um zusätzlich ein TFTP Server sowie Filename für den DHCP Server zu konfigurieren führe folgendes aus:

       # config system dhcp server
       # edit [Wähle den Integer des entsprechenden DHCP Server Eintrags]
       # set timezone-option [disable | default | specify]
       # set timezone [timezone_code]
       # set tftp-server [IPv4 Adresse]
       # set filename [Name des Files]
       # end
       # 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 kann ich die ARP Table anzeigen lassen?

Der nachfolgende Befehl listet alle existierenden ARP Einträge auf und dessen MAC Adresse, Interfaces sowie Age in Minuten:

       # get system arp
       Address           Age(min)   Hardware Addr      Interface
       192.168.2.100     0          00:1b:38:88:6e:fe internal
       
       NOTE "Age" zeigt Zeit an in Minuten die verstrichen ist seit "kein" Traffic stattgefunden hat für diesen ARP Eintrag.
            Wenn ein ARP Eintrag für die vordefinierte Zeit kein Traffic stattgefunden hat wird dieser auf "age out" gesetzt.

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

Für Virtual IP und/oder IP Pool werden keine ARP Eintraeg in der ARP Table angezeigt?

Mit den folgenden Kommandos werden ARP Einträge in der ARP Table gezeigt die basierend auf Layer 3 sind:

       # get sys arp
       # diagnose ip arp list

Wenn zB auf einem external Interface ein public IP Range konfiguriert wurden und zu diesem nun ein weitere public IP Range hinzugefügt werden soll muss dieser nicht physisch auf das exerne Interface als Sekundäres Interface hinzugefügt werden. Es reicht wenn für die public IP ein VIP Objekt und/oder ein IP Pool Objekt erstellt werden. Wenn eine "VIP" (Virtual IP) und/oder "IP Pool" erstellt wird auf einer FortiGate werden im Hintergrund automatisch ARP Einträge erstellt sofern für die Objekte die Option "arp-reply" aktiviert wird. Dies ist bei beiden Objekten der Fall. Diese ARP Einträge sind jedoch nicht über die oben gezeigten Kommandos ersichtlich da diese im Layer 4 erstellt werden und somit auf Applikations Layer erstellt werden. Es existiert kein Kommando (Stand 5.2.2) das diese automatisch erstellten ARP Einträge zeigt. Im Zusammnenhang mit "VIP" und/oder "IP Pool" ist folgendes zu berücksichtigen:

       IP Pool
       Wenn ein Interface auf einer FortiGate mit einem definiert "IP Pool" "overlapped" (Ueberschneidung), Antwort das Interface auf 
       alle IP's im Bereich der Ueberschneidung. Nachfolgendes Beispiel um das nachzuvollziehen:
       
       Interface Port 1 ist mit folgender Adresse konfiguriert:  1.1.1.1/24 (IP Range ist 1.1.1.0 - 1.1.1.255)
       Interface Port 1 ist mit folgender Adresse konfiguriert:  2.2.2.2/24 (IP Range ist 2.2.2.0 - 2.2.2.255)
       
       IP Pool 1 existiert mit folgender IP Range Definition:  1.1.1.10 - 1.1.1.20
       IP Pool 2 existiert mit folgender IP Range Definition:  2.2.2.10 - 2.2.2.20
       IP Pool 3 existiert mit folgender IP Range Definition:  2.2.2.30 - 2.2.2.40
       
       Folgende Uberschneidung existiert für Port 1:  1.1.1.10 - 1.1.1.20 (Da im Bereich 1.1.1.0 - 1.1.1.255 und IP Pool 1 definiert ist 1.1.1.10 - 1.1.1.20)
       Folgende Uberschneidung existiert für Port 2:  2.2.2.10 - 2.2.2.20 (Da im Bereich 2.2.2.0 - 2.2.2.255 und IP Pool 2 definiert ist 2.2.2.10 - 2.2.2.20)
       Folgende Uberschneidung existiert für Port 2:  2.2.2.30 - 2.2.2.40 (Da im Bereich 2.2.2.0 - 2.2.2.255 und IP Pool 2 definiert ist 2.2.2.30 - 2.2.2.40)
       
       Fazit
       Somit Antwort Port 1 auf ARP Antworten für folgenden Bereich (Ueberschneidung): 1.1.1.10 - 1.1.1.20
       Somit Antwort Port 2 auf ARP Antworten für folgenden Bereich (Ueberschneidung): 2.2.2.10 - 2.2.2.20 und 2.2.2.30 - 2.2.2.40
       VIP
       Im Zusammenhng mit ARP und VIP können ARP Packet von einer spezifizierten VIP gesendet werden. Dies bedeutet: Durch die Konfiguration
       im VIP Objekt selber anhand der nachfolgeden Option sendet das VIP Objekt gemäss defniertem Interval ARP Packete aus:
       
       # config firewall vip
       # edit [Name des Objekts]
       # set gratuitous-arp-interval [Interval in Sekunden 5-8640000; Standard 0]
       # end
       
       Diese Art der Aussendung von "nicht" angefragen ARP Packete wird auch "gratuitous ARP reply" genannt. Diese Vorgehensweise wird zB 
       benutzt um eine Layer 3 ARP Table up to date zu halten und/oder mit bestimmten Informationen zu versorgen. Eine andere Anwendung wäre
       Layer 2 FDB's auf den neusten Stand zu halten.

Wie "flush" ich die ARP Table?

       # execute clear system arp table

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

Um einen ARP Eintrag der auf ein Interface gebunden ist zu löschen sollte dieser zuerst verifiziert werden:

       # diagnose ip arp list

Danach kann der entsprechende Eintrag gelöscht werden:

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

Wenn ein "flush" ausgeführt werden soll auf die gesamten Einträge kann folgenders durchgeführt werden:

       # 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

Was ist der Unterschied zwischen dem Kommando "system arp" und "system proxy-arp?

In verschiedenen Situationen muss mit "arp" Einträgen gearbeitet werden. Dies bedeutet: Wenn auf dem externen Interface ein public IP Range konfiguriert wurde und zu diesem ein neuer public IP Range dazukommt kann der neue Range auf dem externen Interface unterschiedlich konfiguriert werden. Eine Möglichkeit ist den neuen IP Range auf dem externen Interface als "secondary interface" zu konfigurieren. Eine andere Möglichkeit ist ein VIP Objekt zu erstellen (arp-reply enable). Wiederum eine andere Möglichkeit ist ein statischer ARP Eintrag zu erstellen (system arp). Alle diese Möglichkeiten gehen davon aus das auf dem externen Interface ein neuer public IP Range dazukonfiguriert wird und durch diese Möglichkeiten wird der FortiGate durch einen statischen ARP Eintrag mitgeteilt, dass das externe Interface zuständig ist für den neuen public IP Range. Wenn jedoch der neue public IP Range nicht auf dem externen Interface konfiguriert wird sondern zB im DMZ (Public IP Adressierung der Server) -jedoch dieser neue public IP Range auf das externe Interface geroutet wird- muss dem externen Interface mitgeteilt werden, dass dieses für diesen neuen IP Range zuständig ist. Wird dies mit einem statischen ARP Eintrag auf dem externen Interface durchgeführt wird der Traffic nicht in das DMZ weitergeleitet da der Device davon ausgeht, dass sich der neue public IP Range sich auf dem externen Interface befindet. In so einem Fall wird ein "proxy-arp" erstellt dh. man teilt die Zuständigkeit der FortiGate auf dem externen Interface betreffend einer spezifischen public IP mit ohne eine MAC Adresse mitzugeben da diese auf dem DMZ existieren. Dies bedeutet: Die FortiGate -durch die "proxy-arp" Konfiguration- nimmt den neuen public IP Range auf dem externen Interface an der im DMZ konfiguriert ist und leitet diesen an die MAC Adresse/Interface weiter (ARP) auf dem der neue public IP Range konfiguriert ist. In unserem Beispiel das DMZ Interface. Um einen "proxy-arp" zu konfigurieren muss über Kommandozeile folgendes durchgeführt werden:

       # config system proxy-arp
       # set interface [Externes Interface]
       # set ip [IPv4 Adresse des Servers im DMZ]
       # end
       
       NOTE Diese Art der Implementierung wird auch "IP Adresse zu MAC Adress Translation" genannt!

Routing / Policy Route

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-5.0-5.2: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 zeige ich für die Routing Table den mometan existierenden Cache an (Routing Cache)?

Wenn ein Routing modifiziert resp. Informationen hinzugefügt werden muss berücksichtigt werden, dass betreffend dem Routing ein Cache existiert. Dieser Routing Cache kann mit folgenden Kommando abgefragt werden:

       # diagnose ip rtcache list
       
       family=02 tab=254 vf=0 type=03 tos=0 flag=90000200
       193.193.135.65@5(wan1)->193.193.135.95@16(root) gwy=0.0.0.0 prefsrc=0.0.0.0
       ci: ref=1 lastused=187 expire=0 err=00000000 used=9 br=0 pmtu=1492
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       192.168.3.1@0->192.168.3.3@4(dmz) gwy=0.0.0.0 prefsrc=0.0.0.0
       ci: ref=1 lastused=7 expire=0 err=00000000 used=5776 br=0 pmtu=1500
       
       family=02 tab=254 vf=0 type=02 tos=0 flag=80000200
       193.193.135.65@5(wan1)->193.193.135.66@16(root) gwy=0.0.0.0 prefsrc=193.193.135.66
       ci: ref=2 lastused=3 expire=0 err=00000000 used=632 br=0 pmtu=1492
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       0.0.0.0@0->192.168.1.30@7(internal1) gwy=0.0.0.0 prefsrc=192.168.1.1
       ci: ref=1 lastused=4 expire=0 err=00000000 used=988 br=0 pmtu=1500
       
       family=02 tab=254 vf=0 type=02 tos=0 flag=80000200
       192.168.3.3@4(dmz)->192.168.3.1@16(root) gwy=0.0.0.0 prefsrc=192.168.3.1
       ci: ref=3 lastused=7 expire=0 err=00000000 used=11 br=0 pmtu=1500
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       193.193.135.66@0->193.193.135.70@5(wan1) gwy=0.0.0.0 prefsrc=0.0.0.0
       ci: ref=1 lastused=3 expire=0 err=00000000 used=4844 br=0 pmtu=1492
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       0.0.0.0@0->192.168.1.40@7(internal1) gwy=0.0.0.0 prefsrc=192.168.1.1
       ci: ref=1 lastused=3 expire=0 err=00000000 used=1731 br=0 pmtu=1500
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       0.0.0.0@0->193.193.135.65@5(wan1) gwy=0.0.0.0 prefsrc=193.193.135.66
       ci: ref=1 lastused=0 expire=0 err=00000000 used=14413 br=0 pmtu=1492
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       0.0.0.0@0->193.193.135.65@5(wan1) gwy=0.0.0.0 prefsrc=193.193.135.66
       ci: ref=1 lastused=0 expire=0 err=00000000 used=63791 br=0 pmtu=1492
       
       family=02 tab=254 vf=0 type=02 tos=0 flag=80000200
       0.0.0.0@0->192.168.1.1@16(root) gwy=0.0.0.0 prefsrc=192.168.1.1
       ci: ref=1 lastused=0 expire=0 err=00000000 used=5441 br=0 pmtu=16436
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       192.168.1.1@0->192.168.1.30@7(internal1) gwy=0.0.0.0 prefsrc=0.0.0.0
       ci: ref=1 lastused=1 expire=-1208 err=00000000 used=67 br=0 pmtu=1500
       
       family=02 tab=254 vf=0 type=01 tos=0 flag=00000200
       192.168.1.1@0->192.168.1.40@7(internal1) gwy=0.0.0.0 prefsrc=0.0.0.0
       ci: ref=2 lastused=0 expire=-1027 err=00000000 used=100 br=0 pmtu=1500
       
       family=02 tab=254 vf=0 type=02 tos=0 flag=80000200
       193.193.135.70@5(wan1)->193.193.135.66@16(root) gwy=0.0.0.0 prefsrc=193.193.135.66
       ci: ref=3 lastused=3 expire=0 err=00000000 used=1 br=0 pmtu=1492
       
       family=02 tab=254 vf=0 type=02 tos=0 flag=80000200
       0.0.0.0@0->127.0.0.1@16(root) gwy=0.0.0.0 prefsrc=127.0.0.1
       ci: ref=1 lastused=3 expire=0 err=00000000 used=397 br=0 pmtu=16436

Wenn der Routing Cache auf den neusten Stand gebracht werden soll kann folgendes Kommando ausgeführt werden:

       # execute router restart

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 kann ich die Routing Tabelle für eine Client2Site (Dial-Up) Verbindung auflisten?

Wenn unter 5.0.x eine Client2Site Verbindung (Dial-Up) konfiguriert wird dh. "Interface Based" so muss der "IP Pool" der Verbindung auf das entsprechende IPSec Interface geroutet werden. Ab FortiOS 5.0.x ist dieser Eintrag eigentlich nicht mehr nötig denn sobald in der konfigurierten Verbindung der "IP Pool" definiert wird so wird im Hintergrund dieser automatisch auf Layer 4 im IKE Deamon geroutet. Dieser Routing Eintrag - da basierend auf Layer 4 - wird in der ordentlichen Routing Table auf Layer 3 nicht angezeigt. Um den Routing Eintrag unter Layer 4 bei einer Verbindung aufzulisten kann der folgende Befehl benutzt werden:

       # diagnose vpn ike routes list
       
       NOTE Unter FortiOS 5.0.x ist es dennoch möglich auf Layer 3 anhand des IPSec Interfaces Phase 1 unter Routing im Web Mgmt. Interface
            einen Eintrag zu erstellen. Unter FortiOS 5.2.x ist dies momentan im Web Mgmt. nicht möglich. Jedoch kann unter FortiOS 5.2.x 
            ein entsprechender Eintrag in der CLI durchgeführt werden. Wir empfehlen "dringend" solch einen Eintrag zu erstellen denn dieser
            wird im Layer 3 aufgelistet (Routing Monitor) und hilft die Transparenz im Routing Bereich der Konfiguration zu erhöhen. Weitere
            Informationen dazu siehe nachfolgenden Artikel:
            
            FortiClient:FAQ#Unter_FortiOS_5.2_kann_f.C3.BCr_eine_Client2Site_IPSec_VPN_Verbindung_keine_.22static_route.22_im_Web_Mgmt._konfiguieren_werden.3F

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
       
       NOTE Benütze für die Position [Gateway IP] "0.0.0.0" was die Funktion anweist den entsprechenden Default Gateway
            des Interfaces der Routing Table zu entnehmen!
       
       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 0.0.0.0
       # 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 0.0.0.0
       # 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
       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.

Dies bedeutet: wenn beide Routing Einträge für die Zieladressen sichtbar sind so sind beide "Routen" erreichbar.

Wie wird auf einer FortiGate ein "Routing Table Lookup" durchgeführt?

Dieser Artikel beschreibt nicht die Art und Weise wie eine FortiGate das Routing abarbeitet dh. selektiert welches Routing zuerst greift wie zB Policy Routen usw. Wie ein Routing auf einer FortiGate abgearbeitet wird siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_wird_das_Routing_auf_einer_Fortigate_abgearbeitet.3F

Dennoch zeigt nachfolgendes Diagramm wie der "Lookup" in der "Routing Table" durchgeführt wird basierend auf dem vorhergehenden Link/Artikel:

       Fortinet-1604.jpg

Somit können für die verschiedenen Tables wie Policy Based Route, Cache usw. folgende Befehle benutzt werden um in die Table reinzuschauen und zu eruieren ob ein entsprechender Eintrag existiert:

       # diagnose firewall proute list              (Policy Based Routing)
       # diagnose ip rtcache list                   (Routing Cache)
       # get router info routing-table all          (Routing Table)
       # get router info kernel                     (Forwarding Information Base Table (Kernel))
       
       NOTE Die "Forwarding Information Base Table" ist Kernel basierend und wird erstellt oder basiert auf Prozesse. Dies
            bedeutet: zB für SSL-VPN IP Pool Subnet wir der entsprechende Routing Eintrag nur dann erstellt wenn ein User
            die Funktion des SSL-VPN benutzt. Dieser Eintrag für SSL-VPN ist Kernel basierend und ist somit Prozess basierend
            sprich wird die Funktion/Prozess benutzt wird ein entsprechender Eintrag in den Kernel geschrieben (FIB ; Forwarding
            Information Base).

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
            
            Desweiteren ist betreffend Routing die vorgehensweise der FortiGate für die "Lookup Table" Wichtig. Weitere
            Informationen sowie Details siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_wird_auf_einer_FortiGate_ein_.22Routing_Table_Lookup.22_durchgef.C3.BChrt.3F

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-5.0-5.2:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F

Wie kann ich ein "Backhole" Routing Eintrag erstellen und für was werden diese benötigt?

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 distance [Setze die "distance" wobei diese höher sein Muss als die reguläre Route]
       # set dst [Gebe die Destination Adresse in IPv4 an]
       # end

Grundsätzlich wäre es Ratsam/Möglich für jede FortiGate Firewall für die "private IP" Ranges eine "blackhole" Route zu setzen. Der Grund ist der Folgende: Wenn eine VPN Verbindung auf "wan1" konfiguriert wurde sowie ein IP Range "10.10.10.0/24" als statische Route für die VPN Verbindung (IPSec Interface), sieht man in der Routing Tabelle einen entsprechenden Routing Eintrag - sofern das VPN aktiv ist -! Wenn nun die VPN Verbindung deaktiviert wird/ist (Interface IPSec "administrative down" oder VPN Verbindung auf "down"), wird der statische Routing Eintrag für das IPSec Interface "10.10.10.0/24" deaktiviert resp. aus der Routing Tabelle entfernt da die VPN Verbindung deaktiviert ist/wurde. Wird zu/in diesem Zeitpunkt eine Session aufgebaut für "10.10.10.0/24" dh. für die VPN Verbindung (Remote Netzwerk), wird dieser Request über den Default Gateway gesendet da die statische Route für "10.10.10.0/24" aus der Routing Tabelle entfernt wurde (VPN Verbindung "down"). Wenn die VPN Verbindung wiederum aktiviert wird/ist, wird die statische Route "10.10.10.0/24" zwar wiederum in die Routing Tabelle eingetragen jedoch nicht benutzt da eine existierende Session existiert die für "10.10.10.0/24" den Default Gateway benutzt. Dies geschieht solange bis die Session nicht mehr aktiv ist. Ein "refresh" der Routing Tabelle anhand "execute router restart" löst dieses Problem nicht. Somit kann zwar die entsprechende Session "manuell" gelöscht werden jedoch ist dies ein Manueller Eingriff. Um diese Situation zu verhindern kann eine "blackhole" Routing implementiert werden was wiederum folgendes bedeutet: Es wird eine "blackhole" Route für "10.10.10.0/24" eingetragen mit der "distance 20" (Default alle Routen auf "10"). Wird die VPN Verbindung deaktiviert benutzt "10.10.10.0/24" diese "blackhole" Route da diese in zweiter Priorität (distance 20) greift. Auch wenn existierende Sessions bestehen benützen diese sofort die effektive Route da diese mit einer kleineren Distance konfiguriert wurde (distance 10). Somit kommt man zum folgenden Schluss: Provilaktisch könnte auf jeder Firewall für die "private" IP's blackhoe Routen angelegt werden um falsches Routing vorzubeugen:

       10.0.0.0    bis 10.255.255.255       10.0.0.0/8 
       172.16.0.0  bis 172.31.255.255       172.16.0.0/12 
       192.168.0.0 bis 192.168.255.255      192.168.0.0/16

Weitere Informationen betreffend Privat IP Bereich siehe auch:

       https://de.wikipedia.org/wiki/Private_IP-Adresse

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

Der Mode "strict-src-check" ist per Standard auf "loose" (disabled) gesetzt um grundsätzlich AntiSpoofing zu verhindern! Dies bedeutet: Wenn "loose" gesetzt ist (disabled) ist man betreffend "Antispoofing" zwischen den "Internen Segmenten" geschützt für "Spoofing Attacken" dh. zB. DMZ-to-LAN etc. Potentiell wäre es jedoch möglich vom "Internet Segment" her anhand privater IP eine "Spoofing Attacke" durchzuführen. Dies wird jedoch verhindert da der ISP unter normalen Umständen verhindert, dass "private IP's" im "Internet Segment" geroutet werden. Aus diesem Grund ist die standard Einstellung von "strict-src-check disabled" für "Perimeter Firewall" ausreichend kann jedoch auch auf "strict-src-check enabled" gesetzt werden. Wird eine FortiGate Firewall als reine "LAN Firewall" (nicht Perimeter) eingesetzt, sollte die Option "strict-src-check" aktiviert (enabled) werden um "strict" Mode zu benutzen da auf allen Interfaces ein Routing von "privat IP's" möglich ist bei einer "LAN Firewall". Die Konfiguration von "strict-src-check" kann folgendermassen durchgeführt werden:

       # config system settings
       # set strict-src-check [enabled | disable]
       # end

Ein Deaktiviertes "Strict Reverse Path Forwarding" resp. "loose" 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 in dem 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, ist es jedoch nicht empfohlen "strict-src-check" zu deaktivieren (disable). Somit muss für ein "Asymetrisches Routing" der "strict-src-check" im "strict" Mode sein dh. aktiviert (enable). Der "strict-src-check" sollte nur dann deaktiviert (disable) werden dh. "loose" Mode um Netzwerkprobleme zu eruieren. Dies bedeutet: Für eine "Asymetrisches Routing" sollte folgendes konfiguriert werden (strict Mode):

       # 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-5.0-5.2: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 zur gleichen Zeit benutzt)

In unserem Beispiel gehen wir von folgender Konstellation aus das beide ISP zur gleichen Zeit benutzt werden dh. "Dual Redundant Scenario":

        _________________________                  ___________                                                ___________ 
       |                         |     10.10.10.1 |           |212.59.153.114/29           212.59.153.120/29 |           |                __________
       | DMZ Env. 10.10.10.0/24  |------DMZ-------|           |------ WAN1 ----------------------------------| Router I  |---------------|          |
       |_________________________|                |           | (Manuelle Konfiguration)                     |___________|               |          |
        _________________________                 | FORTGATE  |                                               ___________                | Internet |
       |                         |    192.168.2.99|           |193.193.135.66/29           193.193.135.65/29 |           |               |          |
       | LAN Env. 192.168.2.0/24 |----- LAN ------|           |------ WAN2 ----------------------------------| Router II |---------------|__________|
       |_________________________|                |___________| (DHCP Konfiguration VDSL)                    |___________|

Als Erstes erfassen wir beide WAN Interface gemäss den obigen Angaben dh. "WAN1" wird "Manuell" konfiguriert (statisch) und "WAN2" wird über "DHCP" konfiguriert (VDSL):

       System > Network Interface

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

       WAN1 Manuelle Konfiguration (statisch)
       
       Fortinet-279.jpg
       WAN2 DHCP Konfiguration (VDSL)
       
       Fortinet-280.jpg
       
       NOTE Bei der "DHCP" Konfiguration ist zu beachten das die Position "Distance" auf den Wert "10" gesetzt wird.
            Dies gilt ebenfalls für "PPPoE". Bei der "Manuellen" Konfiguration wird in einem späteren Zeitpunkt die
            "Distance" anhand eines "statischen" Routing Eintrag konfiguriert. Ziel ist es beide ISP Verbindung mit
            gleicher "Distance" (Standard 10) und "Priority" (Standard 0) zu konfigurieren um so ein "ECMP" zu 
            erreichen (Equal Cost Multipathing). Bei "DHCP" sowie bei "PPPoE" kann die Position "Retrieve default 
            gateway from server" aktiviert werden. Die Position "Override internal DNS" darf auf keinen Fall bei 
            "DHCP" sowie "PPPoE" aktiviert werden. Desweiteren ist es bei "dynamischer" Konfiguration dh. speziell 
            für "DHCP" kurz die "Gewichtung" (weight) zu kontrollieren. Per Standard steht dieser Wert auf "0" dh.
            kontrolliere ob die beiden Verbindung über "weight 0" verfügen:
            
            # get system interface | grep weight
            
            Wird über dieses Kommando kein "output" ausgegeben steht der Wert auf jedem Interface auf Standard "0". 
            Wird hier ein "output" ausgegeben muessen die Interface's "WAN1" sowie "WAN2" kontrolliert werden:
            
            # config system interface
            # edit [Name des Interface zB "wan1" oder "wan2"]
            # unset weight
            # end

Die Interfaces "WAN1" sowie "WAN2" wurden konfiguriert. Da weder für "WAN1" noch für "WAN2" ein DNS Server konfiguriert wurde muss nun dies definiert werden. Dabei ist zu beachten, dass die DNS Server der Provider nicht benutzt werden können. Dies bedeutet: Unter normalen Umständen erlaubt ein ISP keine DNS Anfragen die nicht aus dessen IP Range stammen dh. wenn über "WAN1" eine DNS Anfrage abgesetzt wird anhand der DNS Server von "WAN2", wird dies - da die Anfrage über "WAN1" IP Range die DNS Server von "WAN2" erreichen - abgelehnt. Somit müssen unabhängige DNS Server konfiguriert werden die von "jedem" IP Range zugänglich sind. Dies Lösung ist Folgende: Konfiguriere unter folgender Position die "intenene" DNS Server:

       System > Network > DNS
       
       NOTE Auf dem "internen" DNS Server konfiguriere einen "forwarder" für die umbekannten Domainen dh. anstelle, dass
            auf dem "internene" DNS Server ISP DNS konfiguriert werden können die "Root Server" konfiguriert werden. Diese
            stehen im Internet für "alle" zur Verfügung und können somit für beide Interfaces resp. ISP benützt werden!

Nun definieren wir das Routing dh. für "WAN1" muss eine statische Route konfiguriert werden. Dabei ist zu beachten das die "Distance" sowie die "Priority" auf die Standard Werte gesetzt werden dh. "Distance 10" und "Priority 0":

       NOTE Um die nötige Konfiguration durchzuführen dh. speziell in einem weiteren Schritt betreffend "Policy Routing" muss das
            entsprechende Web Mgmt. Gui eingeschaltet werden (Routing). Dieses wird folgendermassen aktiviert:
            
            # config system global
            # set gui-dynamic-routing [enable | disable]
            # end
            
            Nachträglich kurz ausloggen aus dem Web Mgmt. Interface und wieder einloggen. Danach erscheint neu ein Menüpunkt "Routing".
       Router > Static > Static Route
       
       Fortinet-281.jpg
       
       NOTE Ein "statischer" Routing Eintrag ist nur dann zu konfigurieren, wenn das Interface "Manuell" Konfiguriert 
            wurde. Wurde das Interface anhand "PPPoe" oder "DHCP" konfiguriert ist die Position  "Retrieve default 
            gateway from  server" innerhalb der Interface Konfiguration zu aktivieren sowie dessen "Distance" 
            innerhalb der Interface Konfiguration anzupassen (Distance 10). Dadurch wird der "Default Gateway" für 
            "DHCP" sowie "PPPoE" automatisch mit der "Distance 10" in die Routing Tabelle eingetragen sobald die
            Verbindung korrekt etabliert wurde!

Die "Priority" ist somit bei beden Routen sei es "statisch" sowie "dynamisch" 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" (Equal Cost Multipathing). Wenn die "Distance" unterschiedlich wäre (Failover Scenario) so wird nur die ISP Verbindung genutzt die über die kleinere "Distance" verfügt und die andere als Failover da diese über eine grössere "Distance" verfügt deaktiviert in dem der Routing Eintrag in der Routing Tabelle für den Default Gateway entfernt wird. Somit verfügt nur die Verbindung mit der kleineren "Distance" über einen Routing Eintrag für den Default Gateway. Es ist somit Wichtig nach der Konfiguration der Interface's sowie der Routing Einträge das "ECMP" zu kontrollieren und durch den "Routing Monitor" die Konfigurtion zu bestätigen

       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" sofern das Web Mgmt. Gui für 
            Dynamic Routing nicht aktiviert wurde. Wenn dies der Fall ist wird ein seperates Menü für das Routing angezeigt. 
            Wir empfehlen dieses Gui zu aktivieren:
            
            # config system global
            # set gui-dynamic-routing [enable | disable]
            # end

Damit man die "Distance" sowie die "Priority" sieht im "Routing Monitor" müssen diese zusätzlichen Spalten eingeblendet werden dh. "Distance" und "Metric":

       Fortinet-1399.jpg

Eine weitere Möglichkeit die Routing Tabelle zu kontrollieren wäre über Kommandozeile:

       # 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
       
       S*      0.0.0.0/0 [10/0] via 212.59.153.120, wan1
                         [10/0] via 193.193.135.65, wan2
       
       C       10.10.10.0/24 is directly connected, dmz
       C       192.168.2.0/24 is directly connected, port1
       C       212.59.153.120.112/29 is directly connected, wan1
       C       193.193.135.64/29 is directly connected, wan2

In diesem "output" wird bestätigt, dass "WAN1" sowie "WAN2" über dies gleiche "Distance" sowie "Priority" verfügen ([10/0]) und es werden 2 "Default Gateways" aufgeführt was die korrekte "ECMP" (Equal Cost Multipathing) bestätigt. Da wir 2 "Default Gateway" in der Routing Tabelle aufgeführt haben muss nun der FortiGate beigebracht werden ob diese benützt werden können oder nicht dh. ob die ISP Verbindung korrekt "up and running" sind. Dazu wird die Funktion "Dead Gateway Detection" benutzt (FortiOS 5.2 Link Health Monitor). Wie dies zu konfigurieren ist siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2: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

Wenn die "Dead Gateway Detection" feststellt, dass eine Verbindung nicht mehr "up and running" ist entfernt die FortiGate den entsprechenden "Default Gateway" der ISP Verbindung. Somit verbleibt nur ein "Default Gateway" und der Traffic wird automatisch über diesen verbleibenden "Default Gateway" gesendet. Ziel unserer Konfiguration ist es "beide" ISP Verbindungen gleichzeitig zu benutzen dh. in der momentanen Situation gilt "ECMP" was konkret heisst "Source IP based Equal Cost Multipathing". Per RFC werden "gerade" IP's über die einte ISP Verbindung gesendet und "ungerade" über die andere ISP Verbindung. Um nun zu bestimmen "welcher" Traffic welche ISP Verbindung benutzen soll muss nun Layer 4 benutzt werden resp. die Funktion der "Policy Route". Dabei muss nur der "Primary Path" definiert werden dh. welcher Traffic soll über welche ISP Verbindung gesendet werden solange "beide" Default Gateway's aktiv sind. Wenn durch einen Ausfall nur noch "ein" Default Gateway vorhanden ist muss dieser "Secondary Path" nicht definiert werden da der Traffic - da nur noch ein Default Gateway vorhanden ist - über diesen Default Gateway gesendet wird. Wie schon erwähnt wird dies anhand einer "Policy Route" definiert die unter folgender Position konfiguriert werden kann:

       Router > Static > Policy Route
       
       NOTE Die verschiedenen "Policy Routen" stellen eine Tabelle dar in der gilt "top down first match wins". Aus 
            diesem Grund sollte nach dem Grundsatz vorgegangen werden:
            
            Für jede "Firewall Policy Rule" eine "Policy Route".

Nachfolgendes Beispiel zeigt wie "Policy Routen" implementiert werden (Basierend auf unserem Beispiel) wenn davon ausgegangen wird das "alle" Protokolle erlaubt wären jedoch "voip" explizit über "WAN2" gesendet werden soll:

       NOTE Wie schon erwähnt gilt für die Policy Route "top down first match wins". Dabei ist ebenfalls zu berücksichtigen:
            Wenn in der Tabelle der Policy Route "top down first match wins" kein "match" gefunden wird so wir die Routing
            Tabelle konsultiert. Aus diesem Grund ist es "dringend" zu empfehlen "spezifizierte" Policy Routen zu implementieren
            und auf "ANY" oder sämtliche Ports zB "1-65535" zu verzichten! Dies bedeutet ebenfalls: Nachfolgendes Beispiel ist als
            Beispiel zu verstehen und sollte nicht so angewandt werden. Wenn Clients im LAN über eine entsprechende Firewall Policy
            erlaubt wird HTTP und HTTPS zu benutzen sollte auch dementsprechend eine "Policy Route" implementiert werden basieredn
            auf TCP und Port 80 sowie 443!
       "Policy Route für "LAN to WAN2" --> voip UDP Port 5060"
       
       Fortinet-284.jpg
       "Policy Route für "LAN to DMZ" --> tcp Port 1-65535"
       
       Fortinet-285.jpg
       "Policy Route für "DMZ to LAN" --> tcp Port 1-65535"
       
       Fortinet-286.jpg
       "Policy Route für "LAN to WAN1" --> tcp Port 1-65535"
       
       Fortinet-1400.jpg
       "Policy Route für "DMZ to WAN1" --> tcp Port 1-65535"
       
       Fortinet-1401.jpg
       NOTE Bei der Konfiguration der Policy Routen ist immer von "top down first match wins" auszugehen. Es sollten
            keine Konfiguration basierend auf "ANY" (Protocol) durchgeführt werden. Wenn die Definition der "Gateway
            Address" auf "0.0.0.0" belassen wird so wird die Routing Tabelle herangezogen um die effektive "Gateway
            Address" (Default Gateway) zu eruieren. 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). Ebenfalls ist es möglich eine "negation" abzubilden". Dies muss jedoch in der Kommandozeile
            konfiguriert werden. 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

Als letzter Schritt müssen nun nur noch die entsprechenden "Firewall Policy Rules" implementiert werden die den Traffic erlauben. Wenn ein Traffic resp. der "Secondary Path" nicht erlaubt werden soll so muss eine entsprechende "explicit deny" Firewall Policy Rule implementiert werden. Desweiteren sind verschiedene Ueberlegungen durchzuführen der verschiedenen Services. Nachfolgend einige Ansätze die zu berücksichtigen sind:

       - Wenn "voip" vom Provider der ISP Verbindung "WAN2" zur Verfügung gestellt wird und dies im "Primary Path" konfiguiert wurde ist, 
         wird der Service ebenfalls über den "Secondary Path" (WAN1) zur Verfügung gestellt (Public IP WAN1)?
       - Wenn SMTP outgoing benutzt wird existiert für den "Secondary Path" ein entsprechender MX Record sowie PTR Record?
       - Wenn im DMZ Services zur Verfügung gestellt werden wie sieht der Service im Fall eines "Secondary Path" aus!

Dies sind nur einige Hinweise die helfen sollen die einzelnen Service zu reflektieren um die Services zu gewährleisten. Nachfolgend betreffend Protokoll Nummern siehe folgender Artikel:

       Allgemein:Assigned-Internet-Protocol-Numbers-RFC
            

Wenn VoIP Implementiert wird solle nachfolgender Artikel berücksichtigt werden:

       FortiGate-5.0-5.2: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-5.0-5.2:FAQ#Wie_kann_ich_die_Routing_Tabelle_einer_FortiGate_anzeigen_lassen.3F

Was sind Policy Routen und wie verwende ich diese sowie auf was muss ich achten?

Policy Routen steuern bei mehreren Routing Möglichkeiten den Traffic dh. über Policy Routen kann der Traffic über ein bestimmtes Interface gesendet werden. Dabei stellt sich die Frage "wann" werden Policy Routen benötigt und/oder konfiguriert? Grundsätzlich kann folgendes festgestellt werden: Sobald ECMP (Equal Cost Multiple Path) gilt wird über Policy Routen der Traffic gereglt. Dabei ist zu berücksichtigen "wann" ECMP gilt? Dabei ist zu berücksichtigen wie ein Routing auf einer FortiGate abgearbeitet wird. Dazu siehe folgender Link:

       FortiGate-5.0-5.2:FAQ#Wie_wird_das_Routing_auf_einer_Fortigate_abgearbeitet.3F

Dies bedeutet wenn verschiedenen Routing Einträge die gleiche "Cost" haben sprich gleiche Distance, Priority und Longest Match und kein Dynamisches Routing (OSPF, BGP, RIP) implementiert ist gilt ECMP. Standardsgemäss gilt bei ECMP wenn keine zusätzliche Konfiguration durchgeführt wird "Source Based IP Routing" was wiederum bedeutet: Alle IP's im letzten Octet die "gerade" sind dh. 2,4,6 usw. werden über die einten Link versendet und alle "ungeraden" 3,5,7 über den anderen Link. Dabei spielt es keine Rolle um welchen (Service/Protokolle) es sich handelt. Um dies zu konfigurieren werden "Policy Routen" konfiguriert die über Source, Destination, Service sowie Protokolle bestimmen über welcher Link (Path) der Traffic gesendet werden soll. Bei mehreren "Policy Routen" gilt "top down first match wins". Eine klassische Implementierung für Policy Routen ist eine Dual ISP Konfiguration:

       FortiGate-5.0-5.2:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F

Um eine "Policy Route" über Mgmt. Web Interface zu konfigurieren muss das entsprechende Feature aktiviert werden:

       System > Config > Feature > [Aktiviere "Advanced Routing"]

Danach steht über Web Mgmt. Interface die Funktion unter folgender Position zur Verfügung:

       Router > Static > Policy Routes
       
       Fortinet-1296.jpg
       NOTE Unter FortiOS 5.2 wurden die Policy Routen erweitert dh. es stehen unter Kommandozeile die Option zur Verfügung
            eine Source und/oder Destination mit einem "negate" zu versehen. Ebenfalls kann neu eine Policy Route erlaubt (permit)
            oder ausgeschlossen (deny) werden. Diese Möglichkeit wiederspiegelt im Web Mgmt. Interface die Position "Action". Bei 
            "deny" ist folgendes zu beachten: Wird ein Traffic resp. eine Policy Route auf "deny" gesetzt, wird dieser Traffic
            nicht geblockt sondern aus der Policy Route Tabelle "ausgeschlossen" dh. -sofern eine reguläre Route existiert wird
            diese angewendet-. Finally lässt sich feststellen: "Eine auf deny gesetzte Policy Route schliesst Diese aus für die 
            Anwendung innerhalb der Policy Routen und das reguläre Routing wird angewendet".
            
            Fortinet-1297.jpg
            
            Um eine Policy Route über Kommandozeile zu konfigurieren führe folgendes durch:
            
            # config router policy
            # edit [Gebe einen entsprechenden Integer an zB 1]
            # set input-device [Gebe das entsprechende Source Interface an]
            # set src [Gebe die entsprechende IPv4 Adresse/Range an]
            # set src-negate [enable | disable]
            # set dst [Gebe die entsprechende IPv4 Adresse/Range an]
            # set dst-negate [enable | disable]
            # set protocol [Gebe das entsprechende Protokoll an zB für TCP 6]
            # set start-source-port [Gebe den Startport an; Mögliche Port's 1 - 65535]
            # set end-source-port [Gebe den Endport an; Mögliche Port's 1 - 65535]
            # set start-port [Gebe den Startport an; Mögliche Port's 1 - 65535]
            # set end-port [Gebe den Endport an; Mögliche Port's 1 - 65535]
            # set action [permit | deny]
            # set output-device [Name des entsprechenden Destination Interface]
            # set gateway [IPv4 Adresse]
            # end

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-5.0-5.2: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-5.0-5.2: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 AntiSpoofing aktiviert ist (disabled = "loose" Mode)! 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 ein "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 Weitere Informationen zu "strict-src-check" siehe nachfolgenden Artikel:
           
           FortiGate-5.0-5.2: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

Auf was muss ich achten wenn ich "multicast foward" erlauben möchte?

Wenn ich Multicast Traffic über verschiedenen Interface zB "internal" nach "dmz" erlauben möchte sind zwei Kommandos unter "system settings" dafür zuständig das dies ermöglicht wird:

       # config system setting
       # set multicast-forward [enable | disable]
       # set multicast-ttl-notchange [enable | disable]
       # end

Somit möchte man Multicast Traffic erlauben müssen beide Option aktiviert werden (enable). Nachträglich kann über die Multicast Policy eine entsprechende "Multicast Firewall Policy" konfiguriert werden anhand Source/Destination der den entsprechenden Traffic erlaubt.

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.

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

In welchem Zusammenhang steht die Option "allow-traffic-redirect" mit Firewall Policy's?

Unter dem Kommando "config global settings" existiert die Option "allow-traffic-redirect" diese steht im Zusammenhang mit den Firewall Policy's dh. diese Option ist per Standard aktiviert (enabled) und erlaubt es für eine Uni-Bidirectionale Verbindung "nur" eine Firewall Policy zu konfigurieren. Dies bedeutet folgendes:

       User Anfrage Download:       Source: internal       Destination: dmz       Service: HTTP         Action: allow          (set allow-traffic-redirect enable)
       

In diesem Beispiel wird durch ein User ein Download ausgefürt auf dem WebServer über HTTP im "dmz". Bei dieser Verbindung muss nur eine Firewall Policy konfiguriert werden entsprechend dem Beispiel (Outgoing) da es sich bei dieser Verbindung um eine Uni-Bidirectionale Verbindung handelt dh. eine Stateful Inspection Firewall erlaubt in einer Uni-Bidirectional Verbindung den Rückweg (Flow) in der gleichen Session. Damit dies per Standard erlaubt resp. möglich ist, ist die Option ""allow-traffic-redirect" aktiviert. Ist diese Option "deaktiviert" so muss der Flow zurück zum User (Rückweg) explizit ebenfalls konfiguriert werden was wiederum für unser Beispiel folgendes bedeutet:

       User Anfrage Download:       Source: internal       Destination: dmz       Service: HTTP         Action: allow          (set allow-traffic-redirect disabled)
       User Anwort Download :       Source: dmz            Destination: internal  Service: HTTP         Action: allow          (set allow-traffic-redirect disabled)
       NOTE Diese Option "allow-traffic-redirect" steht "nicht" im Zusammenhang mit VLAN, NAT sowie IPSec dh. sobald diese Funktionen auf einer
            Firewall benutzt werden, wird die Option "ignoriert"!

Die Option wird folgendermassen konfiguriert:

       # config system global
       # set allow-traffic-redirect [enable | disable ]
       # end
       
       NOTE Wie schon erwähnt ist die Option per Standard aktiviert (enabled). Dies sollte auch unter normalen Umständen so belassen
            werden da dies ein Standard Verhalten einer "Stateful Inspection" Firewall ist. Nur in sehr seltenen Fällen wird diese
            Option "deaktiviert".

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 (Update März 2015) ein neues Dokument released das die unten "aufgeführten" Informationen in einem 
            Dokument zusammenfasst. Im Dokument selber sind ebenfalls die Komunikationswege der einzelnen Ports sowie Produkte 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=

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

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

       "Policy is too big for system"

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

       Für FortiOS 5.2.1/2/3/4 8000 Objekte
       Für FortiOS 5.2.5 oder höher 9000+ Objekte
       
       NOTE Für Informationen betreffend FortiOS 5.4.x siehe nachfolgender Artikel:
            
            FortiGate-5.4:FAQ#Gibt_es_f.C3.BCr_eine_Firewall_Policy_Rule_f.C3.BCr_FortiOS_5.4_betreffend_benutzen_Objekten_eine_Limite_.28Policy_is_too_big_for_system.29.3F

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

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

Wieviele Simultane NAT Verbindung sind auf einer FortiGate möglich?

Ausgehend davon das "theoretischerweise" 65'535 Destination Ports möglich sind obliegt der Kalkulation wieviele Simultane NAT Verbindungen möglich sind folgende Kalkulation:

       N X R X P X D X DP

Wobei N, R, P, D und DP für folgendes steht:

       N:  Anzahl NAT IP Adressen
       R:  Port Range
       P:  Anzahl Protokolle
       D:  Anzahl einmaliger Destination IP Adressen
       DP: Anzahl einmaliger Destination Pors

Somit ausgehend von der max. Möglichkeiten kann folgende Kalkulation durchgeführt werden:

       N=1 X R=60'416 X P=2 X D=1 X DP=65'535

Diese Kalkulation ergiebt eine Summe von 7'918'725'120. Dieses Total an möglichen Simultanen Verbindungen ist jedoch nicht realistisch da nicht alle 65'535 Port als Destination benutzt wird. Somit muss aus realistischen Gründen folgendes Kalkuliert werden (Beispiel: WebServer TCP Port 80):

       N=1 X R=60'416 X P=1 X D=1 X DP=1

Somit sinkt das Total der simultanen Verbindungen drastisch auf 60'416. Somit ergiebt sich aus dieer Zahl die realistische Möglichkeit einer FortiGate für die max. Anzahl simultaner Verbindungen auf einen WebServer TCP Port 80 exkl. zusätzlicher eingesetzer Technolgien wie Reverse Proxy oder Load Balancing. Wenn eine FortiGate in die Situation gerät, dass keine NAT Port vergeben werden können so wird im Traffic Log dies indiziert mit folgender Meldung:

       msg="NAT port is exhausted."

Wenn die FortiGate in diese Situation gerät, wird der Traffic rejected und diese Meldung wird in das Traffic Log geschrieben. Zur Ueberprüfung resp. zur Bestätigung, dass die FortiGate sich in dieser Situation befindet, kann nachfolgender Befehl abgesetzt werden:

       # diagnose sys session stat

In diesem Output wird die Position "clash=" angezeigt. Ist der Counter "grösser = 0" wurden Verbindungen rejected da keine NAT Ports mehr vorhanden sind.

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. Dazu wird ein "IP Pool" Objekt benötigt. die Funktion der "Central NAT Table" muss/kann -da per Default im WebInterface Disabled- zuerst unter folgender Positione aktiviert werden dh.:

       NOTE Wenn zB ein WAN1 Interface konfiguriert wird mit einem public IP Range und zu diesem ein zweitere public IP Range
            dazu kommt muss dieser nicht auf dem Interface konfiguriert werden. Durch die Objekte "Virtaul IP" und/oder "IP Pool"
            werden automatisch (per Standard aktiviert in den Objekten) ARP Einträge erstellt auf dem jeweiligen Interface. Dabei
            muss berücksichtigt werden, dass diese in der ARP Table nicht ersichtlich sind da diese auf Layer 4 erstellt werden.
            Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#F.C3.BCr_Virtual_IP_und.2Foder_IP_Pool_werden_keine_ARP_Eintraeg_in_der_ARP_Table_angezeigt.3F
       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 (Source NAT) 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 wird 
            abzudecken (Source NAT). 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). Desweiteren ist betreffend "Central NAT" Table folgendes zu 
            berücksichtigen: Die "Central NAT" Funktion unterstützt folgende Protokolle "TCP (proto 6), UDP (proto 17) and SCTP (proto 132)". Andere Protokolle
            werden nicht unterstützt und sind für FortiOS 5.4 geplant. Unter normalen Umständen reicht jedoch die Abdeckung durch TCP und/oder UDP.
       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

Wieso sollte ein VIP Object auf einer FortiGate das "nicht" in Gebrauch ist in einer Firewall Policy gelöscht werden?

Wenn ein "VIP Objekt" (Destination NAT) erstellt wird und dieses "nicht" in einer Firewall Policy benützt wird sollte dieses "VIP Objekt" gelöscht werden. Dies folgt eigentlich einem Grundsatz, dass auf einer Firewall im Allgemeinen Objekte die nicht in Gebrauch sind gelöscht werden sollte. Aus diesem Grund ist es eigentlich unerlässlich von Zeit zu Zeit ein "overview" auf einer Firewall durchzuführen um ein "clean-up" durchzuführen. Der Grund wieso ein "VIP Objekt", dass nicht in Gebrauch ist gelscht werden sollte, ist in der Ursache zu suchen, dass die Firewall -obwohl nicht in Gebauch- eine bestehende Konfiguration hat betreffend einem "Destination NAT" (VIP Objekt). Im nachfolgenden Beispiel wird dieser Umstand erklärt. Wir gehen von folgender Typology aus:

       Fortinet-1355.jpg
       
       NOTE In diesem Beispiel existiert auf der "FortiGate I" ein "VIP Objekt" das jedoch nicht in Gebrauch in einer 
            Firewall Policy! Dieses "VIP Objekt" wiederspiegelt die IP des "Remote Servers" (200.200.200.200) sowie
            als "Destination NAT" den internen Server "192.168.0.100". Auf der "FortiGate 1" existiert eine Route 
            für die Destination 200.200.200.200 dh. ein Default Gateway!

Wenn nun die internen User im Netz 192.168.0.x eine Anfrage absetzen zum Remote Server 200.200.200.200 wird diese Anfrage geblockt (drop). Der Grund liegt darin das auf der "FortiGate 1" ein "VIP Objekt" existiert, das den Remote Server durch die Definition des "VIP Objekts" als "Internen" Server definiert. Dies bedeutet: "Logisch" gesehen -durch die Defintion des "VIP Objekts"- definiert die "FortiGate 1" den Server als "Intern" und somit wird die Anfrage geblockt (drop). Aus diesem Grund ist im Zusammenhang mit einem "VIP Objekt" (Destination NAT) folgendes zur berücksichtigen:

       1. Jedes "VIP Objekt" das auf einer FortiGate erstellt wird definiert einen "Logische Lokale IP" und erstellt auf "Layer 4" einen entsprechenden "ARP Eintrag"!
       2. Jedes "VIP Objekt" steht ausschliesslich direkt im Zusammennang mit einem "Destination NAT"!
       3. "Destination NAT" wird VOR "Routing" durchgeführt (NAT vor Route)!
       
       NOTE Für ein "VIP Objekt" wird per Standard durch den nachfolgenden Befehl eine "ARP Eintrag" im Hintergrund auf "Layer 4"
            erstellt. Dieser "ARP Eintrag" ist nicht im Zusammenhang zu bringen mit den regulären "ARP" Einträgen auf Layer 2 dh.
            durch das Kommando "get sys arp" werden nur "ARP" Einträge aufgelistet basierend auf Layer 2. Es existiert für "Layer 4"
            kein Kommando das diese "ARP Einträge" auf einer FortiGate auflistet:
            
            # config firewall vip
            # edit [Name des VIP Objekt's"
            # set arp-reply enable
            # end

Diese Informationen stammen aus dem Knowledge Base Artikel der Fortinet:

       http://kb.fortinet.com/kb/microsites/microsite.do?cmd=displayKC&docType=kc&externalId=FD36210&sliceId=1&docTypeID=DT_KCARTICLE_1_1

Wie wird ein "Hairpin NAT (VIP)" konfiguriert und was ist darunter zu verstehen?

Dieser Begriff "Hairpin NAT (VIP)" steht kurz gesagt im Zusammenhang mit einem "Destination NAT" (VIP). Die nachfolgende Abbildung zeigt im welchem Scenario ein "Hairpin NAT (VIP)" implementiert wird:

       Fortinet-1356.jpg
       
       NOTE Die Implementation eines "Hairpin NAT (VIP)" sollte möglichst verhindert werden da der Traffic vom "internal" User
            zum "dmz" Server nicht den direkten Weg wählt über das "internal" Interface zum "dmz" Interface sondern zusätzlich
            über das "wan1" Interface (Performance). Die zu anstrebende Implementation wäre ein "Split DNS" Server zu benutzen
            sei es über ein "Active Directory" Server oder die "Split DNS" (DNS Database) Funktion der FortiGate. Weitere
            Informationen betreffend "DNS Database" Funktion der FortiGate siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#DNS_.2F_DNS_Database

Wenn nun der User "192.168.1.100" eine Anfrage stellt zum Server "10.10.10.10" stellen sich folgende Fragen resp. folgende Komponenten sind zu berücksichtigen:

       Wenn der User anhand eines FQDN (Fully Qualified Domain Name) die Anfrage absetzt wird dem User welchen Namen zur Verfügung gestellt?
       
       1. Interner Server Name basierend auf "10.10.10.10" = "Split DNS Server" Konfiguration oder "Host Eintrag auf 10.10.10.10"
       2. Externen Server Name basierend auf "172.16.1.10" = Keine "Split DNS Server" Konfiguration oder "Host Eintrag"

Wenn der User anhand des FQDN Anfrage für den "dmz" Server über den "Internen DNS" Server die IP "10.10.10.10" zurück bekommt, kann eine "Normale" Firewall Policy Rule implementiert werden die den Traffic vom User "internal" zum "dmz" Server erlaubt dh.:

       # config firewall policy
       # edit [Integer der entsprechenden Policy zB "1"]
       # set srcintf "internal"
       # set dstintf "dmz"
       # set srcaddr "[Name des entsprechenden Objekts zB node-192.168.1.100]"
       # set dstaddr "[Name des entsprechenden Objekts zB host-10.10.10.10]"
       # set action accept
       # set schedule "always"
       # set service "ALL"
       # next
       # end

Wenn der User anhand des FQDN Anfrage für den "dmz" Server die IP "172.16.1.10" zurück bekommt muss anhand eines "Hairpin NAT (VIP)" (Destination NAT) dieser Traffic über "wan1" erlaubt werden. Dies wird folgendermassen durchgeführt:

       Konfigurieren eines VIP Objekts (Destination NAT):
       
       # config firewall vip
       # edit [Name des entsprechenden VIP Objekts zB "nat-172.16.1.10"]
       # set extip 172.16.1.10
       # set extintf [Setze das external Interface auf "wan1"]
       # set mappedip 10.10.10.10
       # next
       # end
       Konfiguriere eine Firewall Policy (Incoming) die den Traffic vom "Internet" ins "dmz" erlaubt:
       
       # config firewall policy
       # edit [Integer der entsprechenden Policy zB "1"]
       # set srcintf "wan1"
       # set dstintf "dmz"
       # set srcaddr "all"
       # set dstaddr "[Name des entsprechenden VIP Objekts zB "nat-172.16.1.10"]"
       # set action accept
       # set schedule "always"
       # set service "ALL"
       # next
       # end
       Konfiguriere eine Firewall Policy (Outgoing) die den Traffic vom "lan" zum "wan1" erlaubt:
       
       # config firewall policy
       # edit [Integer der entsprechenden Policy zB "2"]
       # set srcintf "internal"
       # set dstintf "[Setze das Interface auf dieses das vom VIP Objekt benutzt wird dh. "wan1"]
       # set srcaddr "[Name des entsprechenden Objekts zB node-192.168.1.100]"
       # set dstaddr "all"
       # set action accept
       # set schedule "always"
       # set service "ALL"
       # set nat enable
       # next
       # end
       
       NOTE Diese Firewall Policy Rule entspricht der Rule die dem "lan" erlaubt im Allgemeinen auf das Internet 
            zu zu greifen!
       Konfiguriere eine Firewall Policy (Incoming) die den Traffic vom "lan" zum "dmz" erlaubt (Destination NAT):
       
       # config firewall policy
       # edit [Integer der entsprechenden Policy zB "3"]
       # set srcintf "internal"
       # set dstintf "dmz"
       # set srcaddr "[Name des entsprechenden Objekts zB node-192.168.1.100]"
       # set dstaddr "[Name des entsprechenden VIP Objekts zB "nat-172.16.1.10"]"
       # set action accept
       # set schedule "always"
       # set service "ALL"
       # next
       # end
       
       NOTE Eine weitere Möglichkeit für die hier abgebildetet Firewall Policy ist anstelle des VIP Objektes unter "dstaddr"
            die "dstaddr" auf "all" zu setzen und anstelle des VIP Objektes die Option "match-vip" zu aktivieren:
            
            # config firewall policy
            # edit [Integer der entsprechenden Policy zB "3"]
            # set srcintf "internal"
            # set dstintf "dmz"
            # set srcaddr "[Name des entsprechenden Objekts zB node-192.168.1.100]"
            # set dstaddr "all"
            # set action accept  
            # set schedule "always"
            # set service "ALL"
            # set match-vip enable 
            # next
            # end

Wie hier aufgezeigt wird ist ein "Hairpin NAT (VIP)" zwar Logisch gesehen relativ einfach zu implementieren jedoch innerhalb von Firewall Policy's relativ unübersichtlich. Ebenfalls "kann" eine solche Implementation basierend auf einem "Hairpin NAT (VIP)" ein Performance Problem darstellen sei es für den User sowie für den Firewall Device selber da der Traffic zweimal durch die Firewall abgearbeitet wird (internal > wan1 > dmz anstelle internal > dmz)! Aus diesem Grund ist einer "Split DNS Konfiguration" sofern möglich immer den Vorzug zu geben speziell da diese Funktion ahand der "DNS Database" Funktion von einem FortiGate Device zur Verfügung gestellt wird.

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-5.0-5.2: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-5.0-5.2: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
       NOTE Damit GeoIP Funktion dh. die Update's über FortiGuard zur Verfügung gestellt werden muss diese Funktion
            lizensiert werden. Nachfolgender Artikel gibt Auskunft was zu lizensieren ist:
            
            Fortinet:FortiCare-FortiGuard#Wenn_ich_.22nur.22_DDNS_.28Dynamic_DNS.29.2C_GeoIP.2C_NTP_und_DNS_Service_von_FortiGuard_benutze_was_muss_ich_im_Minimum_lizensieren.3F

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

       NOTE Bei einem Upgrade von FortiOS 5.0 auf FortiOS 5.2 geht die manuelle Konfiguration der Spalten-Einstellung
            vollständig verloren!
       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-5.0-5.2: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-5.0-5.2: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!

Kann ich für eine FortiGate Firewall Polic eine CoS (Class of Service) konfigurieren?

Ab FortiOS 5.2 ist dies möglich dh. Mit CoS (IEEE 802.1p) bezeichnet man ein Verfahren zur Markierung und anschließender Priorisierung in IP-basierten Netzwerken, die nach IEEE 802.1p standardisiert sind. CoS ermöglicht eine gezielte Priorisierung, während mit Quality of Service (QoS) explizite Bandbreitengarantien oder -beschränkungen eingerichtet werden. Nach der heute noch weit verbreiteten Klassifizierung können drei spezifische Class-of-Service-Kategorien unterschieden werden:

       Anwendungsklasse 1: Sprache
       Anwendungsklasse 2: geschäftskritischer Datentransfer wie SAP, ERP oder Videokonferenzen
       Anwendungsklasse 3: geschäftsunkritische Anwendungen wie E-Mail und WWW-Browsing
       NOTE Weitere Informationen zu CoS siehe nachfolgender Artikel:
            
            http://de.wikipedia.org/wiki/Class_of_Service

Wenn der Traffic auf einer FortiGate anhand CoS markiert werden soll kann der Wert 255 für "Passthrough" gesetzt werden oder 0 - 7 für die Anwendungsklassen. Um CoS zu konfigurien muss die entsprechende Firewall Policy konfiguriert werden:

       # config firewall policy
       # set vlan-cos-fwd [Setze den entsprechenden Wert 0 - 7, Passthrough 255]
       # set vlan-cos-rev [Setze den entsprechenden Wert 0 - 7, Passthrough 255]
       # end

Kann ich für eine Firewall Policy Rule für Source und/oder Destinationen mehrere Interfaces wählen?

Seit FortiOS 5.0 kann innerhalb einer Firewall Policy Rule für Source und/oder Destination mehrer Interface's gewählt werden. Dies gitl für nicht für IPSec Interface's (Phase-1) jedoch für Physische Interface's sowie Zonen. Dabei können diese untereinander innerhalb einer Source und/oder Destination Co-existieren. Das Ganze gilt jedoch nicht für SSL-VPN Interface's dh. ssl.root. Ein ssl.root Interface kann nicht mit anderen Interfaces sei es Physisch, IPSec und/oder Zonen Co-existieren.

Was gilt in "einer" Firewall Policy Rule unter FortiOS 5.2, wenn "flow based" und "proxy based" Security Profiles benutzt werden?

Unter FortiOS 5.2 gilt zB im Antivirus Bereich "flow based" als Standard. Dies zeigt sich ebenfalls wenn auf einer FortiGate unter FortiOS 5.2 im "factoryreset" Modus eine neue Firewall Policy erstellt wird. Da im Antivirus Bereich "flow based" Standard ist, erscheint in der Firewall Policy keine "Protocol Options" mehr. Konfiguriert man das "default" Antivirus Security Profile als "proxy based" Profile und erstellt wieder eine neue Firewall Policy, erscheinen die "Protocol Options" wieder. Somit stellt sich die Frage wenn "flow based" und "proxy based" (zB Antivirus im "flow based" und WebFilter im "proxy based") in einer Firewall Policy benutzt werden "was" gilt?

       So eine Konfiguration ist "zwar" möglich jedoch nicht zu empfehlen dh. Wenn eine Firewall Policy Rule konfiguriert wird sollte darauf geachtet 
       werden, dass "alle" Security Profiles über den gleichen Mode verfügen dh. entweder "proxy based" oder "flow based". Wenn dies nicht beachtet
       wird dh. "proxy-based" und "flow-based" Profiles gemischt werden so wird für die UTM Features die beide Modi Unterstüzen "proxy-based" benutzt
       obwohl das Profile "flow-based" konfiguriert wurde. Weiter detaillierte Informationen dazu siehe nachfolgenden Artikel:
       
       FortiGate-5.0-5.2:FAQ#Welche_.22Security.22_Funktionen_unterst.C3.BCtzt_eine_FortiGate_im_.22flow-based.22_und.2Foder_.22proxy-based.22_Mode.3F

TCP Session einer Firewall Policy ist kleiner als die einer Workstation/Client/Server was kann ich tun?

In Ausnahmefällen kann es dazu kommen das eine TCP Session betreffend TTL (Time to Life) kleiner ist als die der Workstation/Client/Server. Die Auswirkungen sind, dass die Firewall die Session sterben lässt -da der TTL bereits abgelaufen ist-, jedoch die Workstation/Client/server die Session wieder aufnehmen möchte, die auf dessen Seite immer noch aktiv ist. Dabei kommt es zu unnötigen Traffic/Komunikation da der Client -für den die Session immer noch aktiv ist- Anfragen zu Firewall sendet, jedoch diese nicht beantwortet werden können da die Session auf der Firewall bereits abgelaufen ist. Nachträglich lässt die Workstation/Client/Server die Session auf seiner Seite sterben da diese nicht mehr beantwortet wird durch die Firewall und öffnet abermals einen neue Session. Wie beschrieben benötigt dieser Vorgang unnötig Resourcen und Zeit. In diesem Zusammenspiel spielen die TTL Werte die unter Global gesetzt werden ein Rolle. Um diese anzuzeigen in den Sessions benutze über CLI folgendes:

       # get system session-info ttl

Diese Information resp. Konfiguration die unter diesen Befehl angezeigt werden sind abhängig von den globalen Einstellunge. Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_CPU_und.2Foder_Memory_Resourcen_tunen_.28Session_Tuning.29.3F

Die Lösung des Problems wäre wenn die Firewall der Workstation/Client/Server explizit bei Ablauf einer Session einen RST (reset) zur Workstation/Client/Server senden würde um diesen explizit zu informieren, dass die Session nicht mehr gültig ist. Dies kann unter FortiOS 5.2 über die Firewall Policy konfiguriert werden. Dies bedeutet folgendes auf der Kommandozeile:

       # config firewall policy
       # edit [ID der gewünschten Firewall Policy]
       # set timeout-send-rst enable
       # end

Was ist zu berücksichtigen, wenn in einer Firewall Policy/Rule ein Adress Objekt benutzt wird mit FQDN und/oder Wildcard?

Wenn eine Firewall Policy/Rule definiert wird und in dieser ein Adress Objekt basierend auf eine FQDN (Fully Qualified Domain Name) und/oder Wildcard muss folgendes berücksichtigt werden:

Entscheidend dabei ist die Art und Weise "Wie" eine DNS Lookup abgesetzt wird und wie dieser beantworte wird dh. Stehen nur öffentliche DNS Server zB vom Provider zur Verfügung so unterstützen resp. verhindern diese eine "Rekursive DNS Abfrage" dh. als Beispiel:

       # nslookup www.mydomain.ch
       
       NOTE Diese Anfrage stellt eine "konkrete" Anfrage an einen DNS Server dh. da diese "konkreter" Natur ist wird
            diese von allen DNS Servern sofern möglich beantwortet!
       # nslookup mydomain.ch
       
       NOTE Diese Anfrage ist nicht "konkret" sondern durch die Anfrage wird dem DNS Server die Frage übermittelt, dass
            eine "Rekursive" Antwort erwartet wird. Eine solche Anfrage kann durch den DNS Server in zwei verschiedenen Varianten
            beantwortet werden. Wenn für "mydomain.ch" ein Eintrag existiert im DNS Server und "Rekursive" Anfragen nicht erlaubt
            sind wird "nur" der Eintrag für "mydomain.ch" als Antwort geliefert. Sind "Rekursive" Anfragen erlaubt wird nicht nur
            der Eintrag für "mydomain.ch" als Antwort geliefert sondern sämtliche existierenden Einträge für "mydomain.ch" 
       # nslookup *.mydomain.ch
       
       NOTE Solche eine DNS Anfrage ist nicht korrekt und wird durch den Public DNS Server nicht beantwortet sowie mit einer
            entsprechenden Fehlermeldung "quittiert":
            
            *** google-public-dns-a.google.com can't find *.mydomain.ch: Non-existent domain

Dieser Umstand ist zu berücksichtigen wenn in einer Firewall Policy/Rule mit FQDN und/oder Wildcard gearbeiet wird was wiederum bedeutet wenn folgende Adress Objekte erstellt werden zB:

       # config firewall address
       # edit "www.mydomain.ch"
       # set type fqdn
       # set fqdn "www.mydomain.ch"
       # end
       
       NOTE Dieses Objekt wird durch Public DNS Server einwandfrei aufgelöst sofern ein Eintrag existiert.
       # config firewall address
       # edit "mydomain.ch"
       # set type fqdn
       # set fqdn "mydomain.ch"
       # end
       
       NOTE Dieses Objekt wird durch Public DNS Server die eine "Rekursive" Anfrage "nicht" beantworten
            nur mit dem Eintrag beantwortet der für "mydomain.ch" existiert.
       # config firewall address
       # edit "wildcard-mydomain.ch"
       # set type fqdn
       # set fqdn "*.mydomain.ch"
       # end
       
       NOTE Dieses Objekt wird durch Public DNS Server die eine "Rekursive" Anfrage "nicht" beantworten
            da es sich um keine korrekte Anfrage handelt.

Um die FQDN mit oder ohne Wildcard auf einer FortiGate zu überprüfen um festzustellen ob diese korrekt betreffend DNS Server "aufgelöst" werden kann folgender Befehl benutzt werden:

       # diagnose firewall fqdn list

Wenn dennoch ein FQDN im Zusammenhang mit oder ohne Wildcard benutzt werden soll - und es steht kein "Rekursiver" DNS Server zur Verfügung - um diesen zu erlauben, blockieren und/oder von einem UTM Feature auszuschliesse kann dies über eine Firewall Policy/Rule anhand eines WebFilters konfiguriert werden. Dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_.C3.BCber_einen_URL_Filter_anhand_eines_.22referrer.27s.22_eine_Seite_erlauben_und.2Foder_blockieren.3F

Wie verhindere ich eine Block Nachricht im Browser wenn ein Request Explizit durch eine "deny" Policy Rule verhindert wird?

Wenn ab FortiOS 5.2.1 in der Firewall Policy Rule eine "Explizite Rule" konfiguriert wird, die ein bestimmter Traffic/Request verhindert soll (deny) so wird im Browser folgende "Replacement Message" angezeigt:

       NOTE Per Standard ist diese Option unter 5.2.1 auf "enabled". Ab FortiOS 5.2.3 wurde dieser Standard geändert und nun
            steht diese Option auf "disabled"!
       Fortinet-1346.jpg
       
       NOTE Diese "Replacement Message" in folge einer Explizit "deny" Rule gilt nicht für die "Clean-Up" Rule! Soll
            diese "Replacement Message" aktiviert/deaktiviert werden so muss folgendes auf dieser Firewall Policy Rule über
            CLI konfiguriert werden:
            
            # config firewall policy
            # edit [ID der entsprechenden Policy ID]
            # set block-notification disable
            # end

In meiner Firewall Policy ist die "SSL Inspection" bei aktivierten UTM Features aktiv obwohl keine "Deep Inspection" benutzt wird?

Wenn man eine Firewall Policy erstellt unter FortiOS 5.2 und die UTM Features in dieser Policy aktiviert fällte einem auf, dass die Position "SSL Inspection" in jedem Fall aktiviert wird. Dieser Umstand ist nicht neu dh. Wenn man eine Policy unter FortiManager 5.0.7 konfiguriert und diese abspeichert sowie nachträglich die UTM Profiles kontrolliert wird -obwohl keine "Deep Inspection" benutzt wird ein "SSL Inspection" Profile hinzugefügt. Der Grund, speziell unter FortiOS 5.2, ist das in jeder Policy per Standard das "SSL Inspection" Profile aktiviert ist. Dies kann auf der Kommandozeile verifiziert werden:

       NOTE Wenn keine "Deep Inspection" benutzt wird so wird ein "SSL Inspection" Profile nur für HTTPS konfiguriert um die
            WebFilter Funktion "URL Scan only" zu benutzen. Unter FortiOS 5.2 wird diese Funktion im Gegensatz zu FortiOS 5.0
            in den "SSL Inspection" Profiles konfiguriert dh. in so einem Fall ist dieses betreffend HTTPS aktiiert sowie auf
            "Certification Inspection". Weitere detailiert Informationen siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
       # config firewall policy
       # edit [Gebe die entsprechende ID an]
       # get | grep ssl-ssh-profile
       # end
       # end

Natürlich kann in jeder Firewall Policy -sofern "Deep Inspection nicht benutzt wird- dieses "SSL Inspection" Profile deaktiviert werden da es nicht benutzt wird:

       # config firewall policy
       # edit [Gebe die entsprechende ID an]
       # unset ssl-ssh-profile
       # end
       # end

Dieser Umstand das jede Firewall Policy auf Kommandozeile angepasst werden soll kann über ein entsprechendes "SSL Inspection" Profile umgangen werden. Dies bedeutet: In allen Firewall Policys in denen weder eine "Deep Inspection" noch ein "URL scan only" (Certification Inspection HTTPS) durchgeführt wird kann ein "SSL Inspection" Profile hinzugefügt werden im "Deep Inspection" Mode in dem "alle" Ports wie HTTPS, SMTPS usw. deaktiviert sind. Dieses "SSL Inspection" Profile wird dann in den jeweiligen Firewall Policys benutzt in denen keine "Deep Inspection" und/oder "URL scan only" (Certifiction Inspection) durchgeführt wird:

       Policy & Objects > Policy > SSL Inspection > Create New
       
       Fortinet-1387.jpg

Auf der Kommandozeile wird dieses "SSL Inspection" Profile folgendermassen angelegt:

       # config firewall ssl-ssh-profile
       # edit "local-dummy.intra"
       # set comment "Dummy Profile SSL Inspection no ports"
       # config https
       # set status disable
       # end
       # config ftps
       # set status disable
       # end
       # config imaps
       # set status disable
       # end
       # config pop3s
       # set status disable
       # end
       # config smtps
       # set status disable
       # end
       # end

In diesem Sinne muss nun nicht mehr jede Firewall Policy auf Kommandozeile angepasst werden sondern es wird -obwohl die Funktion "Deep Inspection" nicht benützt wird- jeder Firewall Policy dieses "dummy" SSL Inspection Profile hinzugefügt indem "alle" Ports wie HTTPS, SMTP usw. deaktiviert sind.

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.

Wenn die Session List sehr gross ist kann mit dem Befehl "grep" die Liste durchsucht werden. Dabei wird folgendes angewendet:

       # get system session list | grep [Such Pattern zB 192.168.3.1]
       
       udp     160    192.168.3.3:46417       -                192.168.3.1:5247       -               
       udp     175    192.168.3.3:5246        -                192.168.3.1:5246       -

Somit wird jede Zeile nach dem "Such Pattern" durchsucht und ausgegeben. Für den Befehl "grep" stehen zusätzliche Optionen zur Verfügung. Dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_Linux.2FUnix_basierender_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F

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 einzelnen Sessions auf einer FortiGate auflisten?

Der nachfolgende Befehl listet alle existierenden Sessions auf:

       NOTE In einer Session werden verschiedenen Informationen/Flags angezeigt resp. aufgeführt. Was diese Informationen/Flags zu 
            bedeuten haben siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Welche_Informationen_werden_f.C3.BCr_eine_Session_in_der_.22session.22_Liste_aufgef.C3.BChrt_und_was_bedeuten_diese.3F
       # 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-5.0-5.2:FAQ#Kann_ich_Linux.2FUnix_basierender_Befehl_.22grep.22_auf_der_Kommandozeile_ben.C3.BCtzen.3F


Desweiteren ist es möglich für die Session Liste eine Filter zu setzen um nachträglich anhand des gesetzen Filter diese Session zu löschen. Diese Filter Funktion kann ebenfalls benutzt werden um nur bestimmte Sessions aufzulisten. Weitere Informationen betreffend diesem Session Filter Funktion siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_erzeuge_ich_f.C3.BCr_eine_Session_einen_Filter_f.C3.BCr_eine_bestimmte_Destination_und_Port_um_diese_Sessin_zu_l.C3.B6schen.3F

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

Wenn der nachfolgende Befehl auf einer FortiGate abgesetzt wird, werden sämtliche Sessions aufgelistet:

       # diagnose sys session list

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

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

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

       proto=6                         Gibt an um welches Protokoll es sich handelt zB 6 = TCP. Weitere Informationen zu den Protokoll Nummern siehe auch nachfolgender Artikel:
                                       
                                       Allgemein:Assigned-Internet-Protocol-Numbers-RFC
       proto_state=02                  Die erste Stelle des "proto_state" gibt an ob diese Session Client Seiting eine "proxy_based" Inspection ist dh. wenn es sich um keine "proxy_based" 
                                       Inspection handelt wird eine "0" gesetzt. Die zweite Stelle dh. in unserem Beispiel "2" gibt Server Seitig den "state" an. Die gülten "states" sind:
                                       
                                       Fortinet-1418.jpg
                                       
                                       Wenn der "proto_state" als "00" ausgegeben wird so handelt es sich um UDP. Dies bedeutet: Obwohl UDP "stateless" ist wird durch die FortiGate zwei
                                       Sessions benutzt dh. "00" one-way und "01" both-ways!
                                       
                                       Fortinet-1419.jpg
       expire=21                       Diese Positione gib an wie lange die Session noch gültig ist bis diese gelöscht wird resp. abgelaufen ist (TTL = time to live).
       origin-shaper=                  Gibt an ob ein Traffic Shaper benutzt wird. Wenn ein Traffic Shaper benutzt wird werden Informationen ausgegeben betreffend Priorität und Bandbreite.
       reply-shaper=                   Nachfolgend ein Beispiel:
       per_ip_shaper=                  
                                       origin-shaper=OutShapper prio=2 guarantee 12800Bps max 128000Bps traffic 92Bps
                                       reply-shaper=InShaper prio=4 guarantee 2560Bps max 25600Bps traffic 125Bps
                                       per_ip_shaper=PerIPShaper
       state=may dirty none app ntf    Der "state" indiziert die "session flags". Dazu nachfolgende Liste der meistgebrauchten "session flags":
                                       
                                       log        Session is being logged
                                       local      Session is to/from local stack (orgin or terminated from FortiGate)
                                       ndr        Session will be checked by IPS signature
                                       nds        Session will be checked by IPS anomaly
                                       br         Session is being bridged (TP mode)
                                       npu        Session can be offloaded to NPU
                                       wccp       Session is handled by WCCP
                                       npd        Session cannot be offloaded to NPU
                                       redir      Session is being processed by an application layer proxy
                                       authed     Session was successfully authenticated
                                       auth       Session required (or required) authentication
                                       
                                       Grundsätzlich wird jedes "erste" Packet über die Firewall Policy kontrolliert. Wenn dieses Packet erlaubt wird über die Firewall Policy wird eine "session"
                                       erstellt und bezeichnet (flag) als "may_dirty". Wenn eine Aenderung in der Firewall Policy durchgeführt wird so werden "alle" existierenden "sessions" von
                                       "may_dirty" auf "diry" gesetzt. Dadurch werden sämtliche Packet ab diesem Zeitpunkt nicht mehr über den NPU gesendet sondern zum CPU. Der CPU kontrolliert
                                       abermals das Packet in der Firewall Policy und wenn dieses erlaubt wird, werden diese "sessions" auf "may_dirty" gesetzt. Wenn dieses Packet in der Firewall
                                       Policy nicht erlaubt wird werden diese Packet verworfen und mit einem "flag" "block" versehen. Danach verbleibt die "session" im Memory bis diese den TTL
                                       resp. "expire" erreicht. So kann die FortiGate über die "flags" "dirty"und/oder "may_dirty" erkenne/evaluieren nach einer Modifikation der Firewall Policy 
                                       ob diese weiterhin erlaubt werden (may_dirty) resp. die entsprechende "session" geblockt werden (block).
       policy_id=0                     Gibt an welche Firewall Policy-ID benutzt wurde. Die Firewall Policy-ID 0 indiziert eine "Local-In Policy".
       statistic                       Steht für den Packet Counter der auch über die Firewall Policy der FortiGate ersichtlich ist
       hook=out dir=org                Gibt an wie die Packete für "out" und "in" verarbeiet werden dh. wenn NAT (Network Address Translation) benutzt wird so werden die Positionen "act=snat" 
       hook=in dir=reply               sowie "act=dnat" aufgeführt. Aus den nachfolgenden Informationen kann eruiert werden wie NAT durchgeführt wurde. Nachfolgend ein Beispiel mit NAT:
                                       
                                       hook=post dir=org act=snat 100.1.10:50194 -> 216.58.216.110:80(10.200.1.1:50194)
                                       hook=pre dir=reply act=dnat 216.58.216.110:80 -> 10.200.1.1:50194(10.0.1.10:50194)
       npu_state=00000000              Zeigt ob eine Session über "hardware acceleration" beschleunigt wurde. Wenn dies der Fall ist resp. möglich wäre wird "npu info:" aufgeführt mit den 
                                       entsprechenden "counters" für die "hardware acceleration" aus denen man entnehmen kann ob die Session über die Hardware Beschleunigung abgearbeitet wurde.
                                       Nachfolgend ein Beispiel:
                                       
                                       npu info: flag=0x00/0x00, offload=0/0, ips_offload=0/0, epid=0/0, ipid=0/0, vlan=0/0
       user=                           Wenn eine Session erstellt wird für eine Verbindung im Zusammenhang mit Authentifizierung wird der "user=" sowie die Gruppenzugehörigkeit "group=" sowie
       group=                          das "authed" Flag gesetzt.
       authed

Wie erzeuge ich für eine Session einen Filter für eine bestimmte Destination und Port um diese Session 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! Dies bedeutet ebenfalls: Wenn bestimmte
            "sessions" gelöscht werden sollen müssen diese vorgängig mit einem entsprechenden Filter gesetzt
            werden. Dieser Filter kann nachträglich mit "diagnose sys session filter" kontrolliert werden!
            Wenn nachträglich "diagnose sys session clear" ausgeführt wird, werden sämgliche "sessions" 
            gemäss dem gesetzten Filter für "diagnose sys session filter" gelöscht! 

Um den Session 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

Wieso werden auf der FortiGate einige Sessions automatisch gelöscht (Memory Tension Drops)?

Wenn auf einer FortiGate kein entsprechendes Memory mehr zur Verfügung steht so tritt der entsprechende "Conserve Mode" ein. Weitere Informationen zu den verschiedenen "Conserve Mode" siehe auch:

       FortiGate-5.0-5.2:FAQ#Was_bedeudet.2Fist_der_Unterschied_zwischen_.22Regular_Conserve_Mode.22.2C_.22Kernel_Conserve_Mode.22_und_.22Proxy_Conserve_Mode.22.3F

Bevor jedoch die FortiGate in bestimmten Situation in en "Conserve Mode" geht versucht sie diesen zu verhindern in dem die ältesten Sessions aus der Session Tabelle gelöscht werden (Memory Tension Drops) um weitere "Memory Pages" zur Verfügung zu stellen für neue Sessions. Dieser Umstand steht "nicht" im direkten Zusammenhang mit einem "Conserve Mode" kann jedoch ein Indiz sein auf einen eintretenden "Conserve Mode". Um zu sehen ob ein "Memory Tension Drop" durchgeführt wurde kann folgender Befehl ausgeführt werden:

       # diagnose sys session stat
       misc info:       session_count=12 setup_rate=0 exp_count=0 clash=0
               memory_tension_drop=0 ephemeral=0/61440 removeable=0
       delete=0, flush=0, dev_down=0/0
       TCP sessions:
                6 in SYN_SENT state
       firewall error stat:
       error1=00000000
       error2=00000000
       error3=00000000
       error4=00000000
       tt=00000000
       cont=00000593
       ids_recv=00000de8
       url_recv=00000000
       av_recv=00000b79
       fqdn_count=00000015
       tcp reset stat:
               syncqf=0 acceptqf=0 no-listener=2 data=0 ses=0 ips=0
       global: ses_limit=0 ses6_limit=0 rt_limit=0 rt6_limit=0

Die Position "memory_tension_drop" gibt an wieviele Session durch diesen Mechanismus gelöscht wurden. Wenn dies eintritt sollte dieser Umstand genauer untersucht werden da aus irgendwelchen Gründen zuwenig Resourcen zur Verfügung stehen auf der FortiGate für die ordnungsgemässe Abarbeitung der Sessions.

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
                 
                 Fortinet-1417.jpg
                 
                 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!
                 
                 NOTE Beim Wert "halfclose-timer" ist folgendes zu berücksichtigen: Wenn ein Client eine Session initiert 
                      und nach der Datenübertragung der Gegenstelle übermittelt das diese beendet ist geschieht folgendes:
                      
                      Client Initiates Close      {[FIN,ACK]----------------->}
                                                  {<---------------------[ACK]}
                 
                      Durch "FIN,ACK" wird der Gegenstelle mitgeteilt "Datenübertragung beendet bitte bestätigen". Danach sendet
                      die Gegenstelle ein "Acknoledge" (ACK) als Bestätigung. Der Zustand der Session auf der FortiGate ist nun
                      "halfclose" und der Timer beginnt zu laufen (Standard 120 Sekunden):
                      
                      Connection Is Half-Closed   {<---------------[more data]}
                                                  {[Data ACK]---------------->}
                 
                      Sobald der "timer" für "halfclose" abgelaufen ist (Standard 2 Minten 120 Sekunden) wird die Session geschlossen:
                 
                      Connection's                {<-----------------[FIN,ACK]}
                      "Other Half" Closes         {[ACK]--------------------->}
               
       • 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 3600; 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 "timeout" 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-5.0-5.2:FAQ#Wie_kann_ich_.C3.BCberpf.C3.BCen_.22wieviele.22_Sessions_auf_meinem_System_laufen.3F

Was muss ich auf einer FortiGate berücksichtigen wenn ich für eine Session die TTL anpasse/konfiguriere?

Wenn aus irgendwelchen Gründen die "session-ttl" auf einer FortiGate angepasst werden soll muss folgendes berücksichtigt werden:

       NOTE Wenn die Session TTL auf der Firewall Policy kleiner ist als definiert zwischen Client und Server kann folgende Konfiguration
            bereits helfen um Unterbrüche zu verhindern:
            
            FortiGate-5.0-5.2:FAQ#TCP_Session_einer_Firewall_Policy_ist_kleiner_als_die_einer_Workstation.2FClient.2FServer_was_kann_ich_tun.3F

Wenn eine Verbindung über die FortiGate etabliert wird so wird eine Session im Memory der FortiGate erstellt (Session Table). Diese Session werden in verschiedenster Art und Weise beeinflusst durch die Konfiguration die auf der FortiGate durchgeführt wurde. Auf der einen Seite stehen die "timer" zur Verfügung. Diese bestimmen ebenfalls wann eine Session aus der Session Table gelöscht wird. Stehen jedoch nicht im Zusammehang mit der "session-ttl" sondern mit den Halfclose/closed Zustand. Weitere Informationen siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_CPU_und.2Foder_Memory_Resourcen_tunen_.28Session_Tuning.29.3F

Per Standard ist der "session-ttl" unter folgenden Kommando definiert:

       # config system session-ttl
       # set default [3600]
       # config port
       # edit [Gebe einen Integer an zB 1]
       # set end-port [Gebe den Endport an]
       # set protocol [Gebe das Protokol an zB tcp]
       # set start-port [Gebe den Startport an]
       # set timeout [Gebe das Timout an in Sekunden oder never]
       # end
       # end

Werden hier Werte verändert oder konfiguriert gelten diese Global für die Ganze FortiGate Konfiguration. Möchte man die globalen Werte nicht ändern und die Konfiguration im Service durchführen kann dies anhand des folgenden Komando durchgeführt werden das einem ermöglicht einen benutzerdefinierten Service zu konfigurieren:

       # config firewall service custom
       # edit [Name des Service zB TCP-23]
       # set category [Setze sofern gewünscht eine entsprechende Kategorie; für mehr Info benutze ?]
       # set comment [Setze einen Kommentar]
       # set protocol [ICMP | ICMP6 | IP | TCP/UDP/SCTP]
       # set protocol-number [Setze das entsprechende Protokoll dh. zB für TCP 6]
       # set session-ttl [TTL in Sekunden]
       # set tcp-halfclose-timer [halfclose-timer in Sekunden]
       # set tcp-halfopen-timer [halfopen-timer in Sekunden]
       # set tcp-portrange [Setze den entsprechenden TCP Port oder Port Range zB 23 oder 22-23]
       # set tcp-timewait-timer [tcp-timewait-timer in Sekunden]
       # set udp-idle-timer [udp-idle-timer in Sekunden]
       # set udp-portrange [Setze den entsprechenden UDP Port oder Port Range]
       # set visibility [enable | disable]
       # end

Wie man sieht kann man in einem benutzerdefinierten Service die Halclose/closed "timer" ebenfalls konfigurieren. Diese Werte unter "config firewall service custom" überschreiben die Werte in "config system global". Wenn man den global Konfigurierten Wert unter "config system session-ttl" über eine Firewall Policy Rule überschreiben möchte kann dies mit dem nachfolgenden Kommando über die entsprechende Firewall Policy Rule durchgeführt werden:

       # config firewall policy
       # edit [Wähle die Policy-ID der entsprechenden Firewall Policy Rule]
       # set session-ttl [TTL in Sekunden]
       # end

Wenn möglich sollten die globalen Werte resp. Konfiguration nicht verändert werden da dies - da Global - sämtliche Sessions resp. Services beinflusst.

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

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!

Wie kann ich eine PPPoE Verbindung manuell neu initieren und wie kann ich PPPoE troubleshooten?

Wenn ein Interface auf PPPoE gesetzt ist und die Verbindung geht verloren (zB vorübergehender Unterbruch der Verbindung) so verbindet sich das PPPoE Interface neu sobald die Verbindung wieder aktiv ist. Damit dies geschieht sind folgende Optionen verantwortlich:

       # config system interface
       # edit [Name des Interface's]
       # set mode pppoe
       # set disc-retry-timeout [0 Sekunden Deaktiviert das Feature; Standard 1 Sekunde]  
       # set idle-timeout [0 Sekunden Deaktiviert das Feature; Standard 0 Sekunde]
       # set padt-retry-timeout [0 Sekunden Deaktiviert das Feature; Standard 1 Sekunde] 
       # end
       
       NOTE Durch "disk-regry-timeout" wird nach Standard nach einem Unterbruch nach "1 Sekunde" ein neuer Versuch gestartet 
            die Verbindung zu etablieren. Durch "idle-timout" kann konfiguriert werden ob eine Verbindung beendet werden soll 
            wenn diese "idle" ist dh. dieses Feature ist im normal Fall deaktiviert da eine PPPoE Verbindung permanent aktiv 
            sein soll. Die Option "padt-regry-timout" steuert das PADT dh. dies muss durch den Provider unterstützt werden. 
            Per Standard ist diese Option auf "1 Sekunde" dh. nach einem Unterbruch wird nach 1 Sekunde ein neuer Versuch 
            unternommen die Verbindung zu etablieren.

Wenn eine PPPoE Verbindung nicht korrekt funktioniert und die Ursache im PPPoE liegt (Anmeldung etc.) kann dies durch folgenden Befehl eruiert werden:

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

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

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:

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

Je nach device und interface werden die "counters" für das Komando "diagnose hardware deviceinfo nic" aufgelistet. Diese "counters" haben folgende Bedeutung:

       Rx_Errors = rx error count              Bad frame was marked as error by PHY
       
       Rx_CRC_Errors +                         Valid in 10/100M mode
       RX_Length_Errors -
       Rx_Align_Errors
       
       Rx_Dropped                              Running out of buffer space A newer error is rx_no_buffer_count
       
       Rx_Missed_Errors                        Equals Rx_FIFO_Errors + CEXTERR (Carrier Extension Error Count). Only valid in 1000M mode,
                                               which is marked by PHY
       
       Tx_Errors=Tx_Aborted_Errors             ECOL, Excessive Collisions Count. Valid in half-duplex mode
       
       Tx_Windows_Errors                       LATECOL, Late Collisions Count. Late collisions are collisions that occur after 64-byte time 
                                               into the transmission of data packet while working in 10/100 Mb/s data rate, and 512 byte time 
                                               into the transmission of the packet while working in the 1000 Mb/s data rate. This register 
                                               only increments if transmits are enabled and the device is in half-duplex mode.
       
       Rx_Dropped                              See RX error.
       
       Tx_Dropped                              Not defined
       
       Collisions                              Total number of collisions experienced by the transmitter. Valid in half-duplex mode
       
       Rx_Length_Errors                        Transmission length error
       
       Rx_Over_Errors                          Not defined
       
       Rx_CRC_Errors                           Frame crc error
       
       Rx_Frame_Errors                         Same as Rx_Align_Errors. This error is only valid in 10/100M mode
       
       Rx_FIFO_Errors                          Same as Rx_Missed_errors; missed packet count
       
       Tx_Aborted_Errors                       ECOL - Excessive Collisions Count. Only valid in half-duplex mode
       
       Tx_Carrier_Errors                       The PHY should asset the internal carriert sense signal during every transmission Failure to 
                                               do so may indicate that the link has failed, or the PHY has an incorrect link configuration. 
                                               This regiser only increments if tansmits are enabled. This register is not valid in internal 
                                               SerDes1 mode (TBI mode for the 82544GC/E), and is only valid when the Ethernet controller is 
                                               operatin at full duplex.
       
       Tx_FIFO_Errors                          Not defined
       
       Tx_Heartbeat_Errors                     Not defined
       
       Tx_Window_Errors                        LATECOL - Late Collisions Count
       
       Tx_Single_Collision_Frames              Counts the number of times that a successfully transfmitted packet encountered a single 
                                               collision. The value only increments if transmits are enabled and the Ethernet controller 
                                               is in half-duplex mode.
       
       Tx_Multiple_Collision_Frames            Multiple Collision Count, counts the number of times that a transmit encountered more than one 
                                               collision but less than 16. The value only increments if transmits are enabled and the Ethernet 
                                               controller is in half-duplex mode
       
       Tx_Deferred                             Counts defer events. A defer event occurs when the transmitter cannot immediately send a packet 
                                               due to the medium being busy either because another device is transmitting, the IPG timer has 
                                               not expired, half-duplex deferral events, reception of XOFF frames, or the link is not up. This 
                                               register only increments if transmits are enabled. This counter does not increment for sttreaming 
                                               transmits that are deferred due to TX IPG
       
       Rx_Frame_Too_Longs                      Rx frame over size
       
       Rx_Frame_Too_Shorts                     Rx frames too short
       
       Rx_Align_Errors                         This error is only valid in 10/100M mode
       
       Symbole Error Count                     SYMERRS - Counts the number of symbol errors between reads. The count increases for every bad 
                                               symbol received, whether or not a packet is currently being received and whether or not the link 
                                               is up. This register only increments in internal SerDes mode

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 auf Kommandozeile 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

Grundsätzlich ist die Konfiguration nachträglich aktiv es kann jedoch einige Zeit dauern bis diese angewendet wird. Um die Konfiguration sofort zu aktivieren kann das Interface Administrativ down/up genommen werden, ein Neustart ausgeführt werden oder alle Sessions gelöscht werden.

       NOTE Wird die MTU Size betreffend Jumbo Frames angepasse siehe nachfolgender Artikel betreffend
            Möglichkeiten und Detaisl für Jumbo Frames:
            
            FortiGate-5.0-5.2:FAQ#Welcher_Treiber.2C_Device_oder_Module_unterst.C3.BCtzen_auf_einer_FortiGate_JumboFrames_und_in_welcher_Gr.C3.B6sse.3F

Wie verhält sich eine FortiGate wenn Traffic Fragmentiert werden soll (do not fragment bit)?

Unter FortiOS 5.0 kann das Verhalten einer FortiGate betreffend Fragmentierung nur über die MTU gesteuert werden. Dies bedeutet: Eine FortiGate unter FortiOS 5.0 verhindert eine Fragementierung resp. lässt per Standard keine Fragementierung zu reps. ignoriert das "do not fragment bit". Somit muss anhand der MTU eine Fragmentierung verhindert werden:

       FortiGate-5.0-5.2:FAQ#Wie_passe_ich_auf_einem_Interface_die_MTU_Size_an.3F

Unter FortiOS 5.2 wurde diesem Umstand Rechnung getragen mit einer neuen globalen Option "honor-df" die das "do not fragment bit" brücksichtigt. Dies bedeutet: Damit die FortiGate das "do not fragment bit" berücksichtigt muss die Option -die ein "don'f fragement" ausführt- deaktiviert werden. Dies wird folgendermassen ausgeführt:

       # config system global
       # set honor-df disable
       # end

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-5.0-5.2: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-5.0-5.2: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-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       
       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! Um ein
            LACP zu konfigurieren muss folgendes durchgeführt werden:
            
            NOTE Entgegen des oberen Abschnitts unterstützt eine FortiGate 1000D/900D KEINE Link Aggregation (LAG) resp. LACP da
                 dieser Device über keinen internen "Internal Switch Fabric" (ISF) verfügt!
       # 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
       
       NOTE 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! 
       
       NOTE Ab FortiOS 5.2 wurden die Aggregierten/Redundanten Interfaces erweitert mit Zusatzfunktionen die den Betrieb verbessern. Neu 
            kann ein "min-links" angegeben werden die für eine Aggregation existieren müssen (1-32). Zusätzlich wenn "min-links" überschritten
            wird kann anhand "min-links-down" definiert werden wieviele Interface's "Administrative-Down" gesetzt werden um ein Failover
            zu erzwingen. Nachfolgend die neuen Befehle die unter FortiOS 5.2 zur Verfügung stehen: 
            
            # set min-links [Minimum Anzahl Links die existieren müssen: 1- 32]
            # set min-links-down administrative
            
            Betreffend Aggregate/Redundanz steht innerhalb der Interface Konfiguration die Option "link-up-delay" zur Verfügung. Anhand dieser
            Option soll anhand des delays ein "flapping" verhindert werden. Wenn innerhalb einer Aggregate/Redundanz Konfiguration ein Interface
            nach dwon-state wieder erreichbar wird so geschieht dies innerhalb 50ms. Um ein "flapping" zu verhindern kann die "link-up-delay"
            Option dazu benützt werden die Zeit zu vergrössern bevor ein Interface innerhalb der Aggregae/Redundanz Konfiguration wieder als  
            als Aktiv gekennzeichnet wird. Betreffend "Redundante" Interface's wwird unter FortiOS 5.2 die Option "priority-override" zur Verfügung
            gestellt. Wenn eine "Redundanz" konfiguriert wird so ist nur ein Port in der "Redundanz" aktiv der den Traffic abwickelt. Wenn ein zB.
            Port 1 aktiv ist jedoch ein Failover auf Port 2 durchgeführt wird, fragt sich ob ein erneuter Failover durchgeführt werden soll wenn
            Port 1 wiederum aktiv ist. Mit "priority-override" kann dieses Scenarion ob ein erneutes Failover durchgeführt werden soll oder nicht
            gesteuert werden: 
            
            # set priority-override [enable | disable]
            # set link-up-delay [Gebe die entsprechende Zeit in Millisekunden an; Standard 50]

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:

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

Was ist LLDP und wie kann ich dieses Protokoll aktivieren/konfigurieren auf einer FortiGate?

LLDP (Link Layer Discovery Protocol) ist ein Protokoll das Device Informationen zu anderen Devices weitergiebt. Ab FortiOS 5.2 kann dieses Protokoll für die "Device Identification" aktiviert werden. Die Informationen die für die Device Identification -wenn LLDP aktiviert wird auf einer FortiGate- erkannt werden sind die folgenden:

       • Chassis ID
       • Port ID
       • TTL
       • System Name
       • System Description
       • System Capabilities
       • Aggregation
       • Host Name
       
       NOTE Um die Informationen zu verifizieren kann folgendes Kommando benutzt werden:
            
            # diagnose user device list

LLDP ist per Standard deaktiviert und kann entweder Global oder über jedes einzelne Interface aktiviert werden:

       # config system global
       # set lldp-transmission [enable | disable]
       # end
       # config system interface
       # edit [Name des entsprechenden Interface zB internal]
       # set device-identification [enable | disable]
       # end
       
       NOTE Wenn LLDP Global aktiviert wird so wird LLDP auf allen Port's benutzt die über eine MAC Adresse verfügen!
       # config system interface
       # edit [Name des entsprechenden Interface zB internal]
       # set device-identification [enable | disable]
       # set lldp-transmission [enable | disable]
       # end

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-5.0-5.2: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-5.0-5.2:FAQ#Wie_passe_ich_auf_einem_Interface_die_MTU_Size_an.3F

Was ist ein "Virtual WAN Link" (Redundant Internet Connections) und wie konfiguriere ich Diesen?

Bei der "Virtual WAN Link" Funktion (Ab FortiOS 5.2) handelt es sich um eine Konfiguration, die zwischen zwei ISP's oder mehreren eine "Redundante Internet Connection" zur Verfügung stellt. Unter FortiOS 5.0.x wird eine "Redundante Internet Connection" (Dual ISP) über Distance, Priority sowie Policy Route konfiguriert. Für diese Art der Konfiguration -die nachwievor möglich ist- siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F

Der Vorteil eines "Virtual WAN Link" liegt in seiner Einfachheit! Um eine "Redundante Internet Connection" zu konfigurieren, muss nur ein "Virtuellen Link" der zB 2 Interface's beinhaltet (2 unterschiedliche ISP) erstellt/konfiguriert werden. Die Konfiguration des "Virtual WAN Link" beinhaltet grundsätzlich die gleiche Konfiguration wie die herkömliche die unter FortiOS 5.0 durchgeführt wurde. Um einen "Virtual WAN Link" zu konfigurieren gehe folgendermassen vor:

       NOTE Die Voraussetzung dieser Konfiguration ist die folgende:
            
            - Korrekt konfigurierte Interface's (zB WAN1 und WAN2) betreffend ISP's dh. über PPPoE, DHCP und/oder Static!
            - Keine existierenden "statische Routen" betreffend ISP Interface's (zB WAN1 und WAN2)!
            - Kein existierenden "Firewall Policies" betreffend ISP Interface's!
       System > Network > Interfaces and select Create New > Virtual WAN
       
       Fortinet-1279.jpg
       
       NOTE Die Position "Measure Link Quality" hat folgende Bedeutung:
            
            Latency-based = Verbindungsprobleme basiert auf Laufzeit  
            Jitter-based  = Verbindungsprobleme basierend auf Uebertragungszeit (Schwankungen)
            
            "Measure Link Quality" überwacht nicht die physische Verbindung selber sondern die Protokolle resp. die Services.
            Dies bedeutet wird ein Link überlastet und die "Laufzeit" (Latency-based) verschlechtert sich wird ein Failover
            den zweiten Link durchgeführt!
       Definition WAN Interface's (ISP Interface's)
       
       Als nächster Schritt muss unter "Interface Members" die ISP's  die im "Virtual WAN Link" für die "Redundante
       Internet Connection" benutzt werden hinzugefügt sowie konfiguriert werden:
       
       Fortinet-1280.jpg
       
       NOTE Für das "WAN Load Balancing" können vers. Konfigurationspunkte gewählt werden! Geht man davon aus, dass
            2 unterschiedliche ISP's existieren mit unterschiedlichen Public IP's, sollte "Source IP based" gewählt werden
            denn diese Konfigurationsart kann später über "Policies" herangezogen werden um zu definieren welcher Art des 
            Traffic's über welches Interface's gesendet werden soll. Wählt man "Source IP based" stehen verschiedene 
            Konfigurationspunkte "Spillover Threshold, Weight sowie Volume Ratio" unter "Add Interface Member" nicht zur 
            Verfügung da diese Konfigurationspunkte nur für eine "Dynamischen Konfiguration" wie "Weighted Round Robin, 
            Spill-over, und Measured Volume based" benutzt werden können. Wenn ein Interface hinzugefügt wird so kann 
            folgende Konfiguration durchgeführt werden:
            
            Fortinet-1281.jpg
            
            Ueber die Position "Gateway IP" wird der "Default Gateway" des ISP's definiert für das entsprechende Interface. 
            Der "Health Check" kommt der Funktion "Dead Gateway Detection" gleich die unter ForitOS 5.0 ebenfalls für eine 
            "Dual ISP" Konfiguration benötigt wird. Weitere Informationen dazu siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2: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
            
            Diese Konfiguration ist nicht zu verwechseln mit dem Konfigurationspunkt "Measure Link Quality" der die Qualität
            der Protokolle resp. Services überwacht. Füge alle ISP's mit deren Interface's hinzu! sowie speichere den "Virtual 
            WAN Link". 
            Konfiguration Default Gateway für "Virtual WAN Link"
            
            Die Voraussetzungen dieser Konfiguration ist, dass für die ISP Interface's keine "Statischen Routen" existieren
            da das Routing durch den "Virtual WAN Link" übernommen wird. Um den Default Gateway anhand einer Statischen Route
            zu konfigurieren führe folgendes durch:
            
            NOTE Wenn für die "Statische Route" das Interface "virtual-wan-link" nicht ausgewählt werden kann, wurde 
                 unter dem "Virtual WAN Link" die Position "Measure Link Quality" nicht aktiviert wurde!
            
            System > Network > Routing > Create New
            
            Fortinet-1282.jpg
            Konfiguration/Definition der Service's für den "Virtual WAN Link"
            
            Nun muss definiert werden welcher Traffic über welchen Link gesendet werden soll. Nachfolgendes Beispiel zeigt
            die Konfiguration von "WAN2" für alle Source sowie Destination sowie für Protokoll TCP Port 80 (HTTP). Dies 
            bedeutet sämtliche Source und für sämtliche Destination betreffend HTTP Port 80 werden über "WAN2" gesendet. Ist
            dieser Link nicht mehr aktiv und/oder HTTP Port 80 hat schlechte Performance wird ein "failover" auf "WAN1" 
            durchgeführt:
            
            System > Network > Interfaces > [Markiere "virutal-wan-link" > Edit > Services > Create New
            
            Fortinet-1283.jpg
            
            NOTE Wenn mehrere Einträge unter "Services" erstellt werden gilt "top down first match wins".
            Konfiguration einer Firewall Policy für den "Virtual WAN Link"
            
            Damit der Traffice erlaubt wird der im "Virtual WAN Link" unter Service definiert wird muss eine Firewall Policy
            erstellt werden. In unserem Beispiel für HTTP Port 80 für alle Source und Destination:
            
            Fortinet-1284.jpg
            
            NOTE Für die Firewall Policy muss NAT aktiviert werden. Per Standard ist diese auf "Use Destination Interface
                 Address" gesetzt. Sofern das Feature benutzt wird kann ebenfalls "Central NAT Table" benutzt werden!

Wenn die Konfguration eines "Virtual WAN Link" über Kommandozeile durchgeführt werden soll so führe folgendes aus:

       Konfiguration für "Virtual WAN Link"
       # config system virtual-wan-link
       # set status [enable | disable]
       # set load-balance-mode [source-ip-based | weight-based | usage-based | source-dest-ip-based | measured-volume-based]
       # set load-balance-quality-mode [latency-based | jitter-based]
       # config members
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set interface [Gebe ein entsprechendes Interface an zB wan1]
       # set gateway [Gebe die IPv4 Adresse an des Default Gateway für das definierte Interface]
       # set weight [Integer 1-255; Standard 0]
       # set priority [Integer; Standard 0]
       # set spillover-threshold [Integer in kbit/s (0-16776000; Standard 0]
       # set detect-server [IPv4 Adresse für Dead Gateway Detection Server]
       # detect-protocol [ping | http | tcp-echo | udp-echo]
       # detect-interval [Integer 5-3600; Standard 5]
       # detect-timeout [Integer 1-255; Standard 1]
       # detect-failtime [Integer 1-10; Standard 5]
       # detect-recoverytime [Integer 1-10; Standard 5]
       # next
       # edit [Gebe einen entsprechenden Integer an zB 2]
       # set interface [Gebe ein entsprechendes Interface an zB wan2]
       # set gateway [Gebe die IPv4 Adresse an des Default Gateway für das definierte Interface]
       # set weight [Integer 1-255; Standard 0]
       # set priority [Integer; Standard 0]
       # set spillover-threshold [Integer in kbit/s (0-16776000; Standard 0]
       # set detect-server [IPv4 Adresse für Dead Gateway Detection Server]
       # detect-protocol [ping | http | tcp-echo | udp-echo]
       # detect-interval [Integer 5-3600; Standard 5]
       # detect-timeout [Integer 1-255; Standard 1]
       # detect-failtime [Integer 1-10; Standard 5]
       # detect-recoverytime [Integer 1-10; Standard 5]
       # next
       # end
       # config service
       # edit [Gebe einen entsprechenden Namen an zB http]
       # set mode [ manual | auto]
       # set member 1
       # set tos 0x00
       # set tos mask 0x00
       # set protocol [Gebe das entsprechende Protokoll an zB 6]
       # set start-port [Definiere den Start Port zB 80]
       # set end-port [Definiere den End Port zB 80]
       # set dst [IPv4 IP Range oder all]
       # set src [IPv4 IP Range oder all]
       # next
       # end
       # end
       
       Konfiguration Default Gateway für "Virtual WAN Link"
       # config router static
       # edit 1
       # set dst 0.0.0.0 0.0.0.0
       # set distance 10
       # set virtual-wan-link enable
       # end

Kann ich auf einer FortiGate anhand eines Interface's eine "Port Security" konfigurieren?

Wenn von "Port Security" gesprochen wird ist dieser Ausdruck vielfälltig. In den Grundzügen geht es darum eine MAC Adresse auf eine IP und/oder eine IP auf eine MAC Adresse zu binden. Danach auf einem Interface zu konfigurieren ob diese IP resp. MAC Adresse "auf" das Interface verbinden darf oder "durch" das Interface. Natürlich kann dies eine Firewall auch mit deren Bordmittlen dh. eine MAC Adresse auf eine IP zu binden kann über DHCP Server konfiguriert werden anhand einer "reservation". Ob diese IP (nicht MAC) danach "auf" das Interface zugreifen darf oder "durch" das Interface (Firewall) kann selbstverständlich über die Firewall Policy/Rule anhand Source und Destination definiert werden. Diese Konfiguration wird auf Layer 4 duchgeführt (Application). Möchte man jedoch die Security auf Layer 2 durchführen kann "Port Security" benutzt werden dh. die Workstation resp. der Client wird auf Layer 2 bereits abgelehnt resp. zugelassen und somit kommt Layer 4 erst später oder überhautp nicht zum Zuge. Aus diesem Grund wenn mit "Port Security" gearbeitet wird im Layer 2 und eine IP auf eine MAC Adresse gebunden wird und/oder eine MAC Adresse auf eine IP muss diese Funktion im Layer 4 deaktiviert werden dh. es darf/sollte kein DHCP Sever aktiv sein in diesem Segment. Wenn diese Voraussetzung gegeben ist, kann auf einer FortiGate eine "Port Security" folgendermassen konfiguriert werden:

       Eine IP Adresse auf MAC und/oder MAC Adresse auf IP (ipmacbinding table) binden:
       
       # config firewall ipmacbinding table
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set ip [Gebe die entsprechende IPv4 Adresse an zB 192.168.1.100]
       # set mac [Gebe die entsprechende MAC Adresse (Für 192.168.1.100) an in HEX dh. 00:00:00:00:00:00] 
       # set name [Gebe "Optional" einen entsprechenden Namen ein]
       # set status [enable | disable]
       # end
       
       NOTE Wenn ein DHCP Server auf der FortiGate konfiguriert wird so werden die IP's resp. die "reservation"
            automatisch in die "ipmacbinding table" hinzugefügt!
       Konfiguriere Einstellungen für "ipmacbinding table" (ipmacbinding setting):
       
       # config firewall ipmacbinding setting
       # set bindthroughfw [enable | disable]
       # set bindtofw [enable | disable]
       # set undefinedhost [allow | block]
       # end
       
       NOTE Die "setting's" können nur für die gesamte "ipmacbinding table" gesetzt werden und nicht auf die einzelnen
            Einträge!

Wie kann ich die MAC Adresse von einem bestimmten Interface auf der FortiGate herausfinden?

Mit dem folgendem Kommando kann die MAC Adresse des gewünschten Interfaces herausgefunden werden:

       # get hardware nic [interface Name zB dmz] | grep HWaddr

Nachfolgend ein Beispiel anhand des Interfaces "dmz":

       # get hardware nic dmz | grep HWaddr
       Current_HWaddr   08:5b:0e:d9:18:21
       Permanent_HWaddr 08:5b:0e:d9:18:21

IPSEC VPN

Was sind die Grundlagen eines IPSec Tunnels sei es Main Mode oder Aggressive Mode?

Wenn ein IPSec Tunnel sei es im Main Mode und/oder Aggressive Mode konfiguriert und später event. anhand eines Troubleshooting untersucht werden muss, ist es Wichtig zu wissen wie ein IPSec Tunnel funktioniert um festzustellen in welchem Schritt des Aufbaus ein IPSec fehlschlägt. Grundsätzlich wird ein IPSec Tunnel in 4 Schritten aufgebaut:

       1. Ein IPSec Tunnel wird dann aufgebaut wenn lokal Traffic initiert wird um als Destination die Remote Seite zu erreichen und 
          dadurch ein IPSec Tunnel dazu aufgebaut werden muss um diesen Traffic duch den IPSec Tunnel (encrypted und encapsulated) 
          auf die Remote Seite senden zu können.
       
       2. Phase-1: In der Phase-1 wird eine einzelne IKE SA ausgetauscht (Security Association)
       
       3. Phase-2: In der Phase-2 werden zwei IKE SA ausgetauscht (Security Association) und zwar je eine für jede Traffic Richtung (in/out)
       
       4. Traffic wird über den etablierten IPSec Tunnel gesendet (in/out)

Somit in einem Troubleshooting ist es Wichtig zu wissen welcher Schritt konnte nicht durchgeführt werden um das Problem einzugrenzen. Bedeutet wiederum: Ist Phase-1 abgeschlossen ist das Pre-Shared Secret nicht das Problem denn dieser Schritt wurde bereits abgeschlossen. Desweiteren ist es Wichtig zu wissen wie ein Main Mode IPSec funktioniert und ein Aggressive Mode IPSec. Nachfolgend eine Aufstellung betreffend Main/Aggresive Mode:

       Main Mode Komunikation
       
       Für die etablierung des Main Mode werden 6 Packete für die Komunikation benutzt:
       
       Fortinet-1422.jpg
       
       1. Der Client initiert Traffic und der IPSec Tunnel benützt eine oder mehrere Sicherheitsrichtlinien.
       2. Der Responder selektiert seine Sicherheitsrichtlinien die er benützen will und antwortet.
       3. Der Client der den Traffic initiert hat sendet seinen Key.
       4. Der Responder antwortet ebenfalls mit seinem Key.
       5. Der Client sendet Final seine Peer ID und den hash payload.
       6. Der Responder antwortet ebenfalls mit der Peer ID und dem hash payload.
       
       NOTE Im Gegensatz zum Aggressive Mode sendet der Initiator seine Peer ID nicht zu Beginn somit kann die FortiGate die IPSec
            Verbindung nicht mit dieser Information identifizieren. Als Identifikation wird die Source IP benutzt. Unter normalen
            Umständen stellt dies kein Problem dar jedoch wenn mehrer Dial-Up Verbindung benutzt werden kann dies Probleme verursachen.
            Weitere Informationen über diese Problematik findet man unter folgenden Artikel:
            
            FortiClient:FAQ#Kann_ich_mehrer_Client2Site_IPSec_VPN_.28Dial-Up.29_auf_.22einer.22_FortiGate_konfigurieren_sei_es_f.C3.BCr_FortiClient.2C_iOS_und_Android.3F


       Aggressive Mode Komunikation
       
       Für die etablierung des Main Mode werden 3 Packete für die Komunikation benutzt:
       
       Fortinet-1423.jpg
       
       1. Der Client initiert Traffic und der IPSec Tunnel benützt eine oder mehrer Sicherheitsrichtlinien und der Key sowie Peer ID (Local ID) werden gesendet.
       2. Der Responder antwortet mit den gleichen Informtionen plus sendet dieser den hash.
       3. Der Client sendet dem Responder den hash payload.
       
       NOTE Die "Peer ID" zur Identifizierung der VPN Verbindung wird in der Phase-1 als "Local ID" konfiguriert im Gegensatz
            zum Main Mode dh. im Main Mode benutzt die FortiGate die Source IP um die IPSec Verbindung zu identifizieren denn die
            Peer ID wird im Main Mode zu einem späteren Zeitpunkt übermittelt. Aus diesem Grund - wenn mehrere Dial-UP - IPSec
            Verbindungen konfiguriert werden ist Aggressive Mode zu bevorzugen und für die Identifizierung der verschiedenen 
            Verbindungen ist die Peer ID in der Phase-1 zu konfigurieren (Local ID).

Desweiteren ist auf einer FortiGate für "Eingehende" IPSec Verbindung folgendes zu berücksichtigen:

       Für alle Eingehenden IPSec Verbindungen selektiert eine FortiGate die erste konfigurierte 
       IPSec Verbindung in "Alphabetischer" Reihenfolge nach folgenden Kriterien:
       
       1. Local Gateway
       2. Mode (Main Mode oder Aggressive Mode)
       3. Peer ID (Local ID) sofern Aggressive Mode
       4. Authentication Methode (Pre-Shared Key or PKI)
       5. Zertifikats Informationen sofern PKI
       
       NOTE Der "Pre-Shared Key" ist kein Selektierungs Kriterium. Wie schon vorgängig erwähnt wenn mehrer Dial-Up IPSec Verbindungen
            konfiguriert werden und da "Pre-Shared Key" kein Selektierungs Kriterium ist sollte Aggressive Mode mit Peer ID (Local ID)
            benutzt werden. Weiter Informationen betreffend diesem Thema siehe auch:
            
            FortiClient:FAQ#Kann_ich_mehrer_Client2Site_IPSec_VPN_.28Dial-Up.29_auf_.22einer.22_FortiGate_konfigurieren_sei_es_f.C3.BCr_FortiClient.2C_iOS_und_Android.3F

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

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

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

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

       Datei:Fortigate-IPSEC-Debugging.pdf

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

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

       NOTE Das relativ Schwierige bei einem Debug für IPSec ist den Output dieses Debug's korrekt zu intepretieren.
            Der nachfolgende Artikel enhält ein Dokument von Fortinet das die verschienen Output's resp. Fehlermeldungen
            aufzeigt. Dieses Dokument soll helfen die Meldungen in der Phase-1 und/oder 2 korrekt zu intepretieren und
            Fehler zu beseitigen:
            
            FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
            
            Desweitern sollte dem Initial Traffic dh. IKE 500 sowie ESP Aufmerksamkeit geschenkt werden dh. wenn der
            initiale Traffic nicht funktioniert sprich die Gateways nicht miteinander komunizieren können kann kein
            IPSec etabliert werden. Um den initial Traffic zu Sniffen kann "diagnose sniffer packet" benutzt werden.
            Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Sniffe_Packete_f.C3.BCr_IPSec_betreffend_IKE_sowie_ESP_Traffic_.28NAT_.2F_NAT-T.29.3F
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application ike -l
       
       NOTE Die gebräuchlichste Art den "ike" Debug durchzuführen ist mit der Angabe "-1" was wiederum bedeutet: Maximaler
            "debug level". Ebenso wird des öfteren "debug level" "63" benutzt um die Phase-1 zu überprüfen im Main/Aggresive
            Mode. Nichts desto trotz stehen zusätzlich folgende "debug level" für "ike" zur Verfügung:
                         
              1 Nur die Wichtigsten Error Meldungen werden angezeigt
              2 Zeige nur Konfigurations Aenderungen
              4 Zeige nur Verbindungsversuche
              8 Zeige nur Phase-1 sowie Phase-2 Komunikations Meldungen
             16 Zeige nur NAT-T Meldungen (Nat-Traversal)
             32 Zeige nur DPD Meldungen an
             64 Zeige nur Encryption/Decryption Key's an
            128 Zeige nur den Encryption Traffic payload
       
       # diagnose vpn ike log-filter [Log Filter zB Phase1 Name "name"]
       
       NOTE Als "log-filter" stehen verschiedene Möglichkeiten zur Verfügung. Dies bedeutet: Ist auf einer Fortigate mehr
            als ein IPSec VPN konfiguriert ist es Sinnvoll nur den Output eines VPN's anzuzeigen anstelle allen VPN's. Der
            folgende Befehl listet die verschiedenen Möglichkeiten des Filters auf:
            
            # diagnose vpn ike log-filter list
            
            	vd: any
            	name: any
            	interface: any
                IPv4 source: any
            	IPv4 dest: any
            	IPv6 source: any
            	IPv6 dest: any
            	source port: any
            	dest port: any
            	autoconf type: any
            	autoconf status: any
        
            Nachfolgender Befehl listet alle Möglichkeiten mit deren Kurzbeschreibung auf:
        
            # diagnose vpn ike log-filter ?
            
            clear        Erase the current filter.
            dst-addr4    IPv4 destination address range to filter by.
            dst-addr6    IPv6 destination address range to filter by.
            dst-port     Destination port range to filter by.
            interface    Interface that IKE connection is negotiated over.
            list         Display the current filter.
            name         Phase1 name to filter by.
            negate       Negate the specified filter parameter.
            src-addr4    IPv4 source address range to filter by.
            src-addr6    IPv6 source address range to filter by.
            src-port     Source port range to filter by.
            vd           Index of virtual domain. -1 matches all.
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       NOTE Es kann zu Situationen kommen in dem der Output des laufenden Debug Mode verhindert einen Befehl in der
            Console einzugeben. Wenn dies der Fall ist, kopiere den Befehl einfach in die Console gefolgt durch 
            "Enter"!
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info
       
       Setze den IKE "log-filter" zurück und kontrolliere diesen:
       
       # diagnose vpn ike log-filter clear
       # diagnose vpn ike log-filter list

Das Debug Kommando "diagnose debug application ike -1" zeigt Detailiert Informationen auf betreffend Kommunikation in der Phase-1/2. Zusätzlich zu diesem Kommando stehen für IPSec VPN's zusätzliche Kommandos zur Verfügung:

       # get vpn ipsec state tunnel
       
       NOTE Dieses Kommando zeigt die Anzahl VPN's auf einer FortiGate im Gesamten. Zusammen mit nachfolgenden Befehlen kann ein
            Gesamtüberblick erreicht werden der IPSec VPN Konfiguration auf einer FortiGate im Gesamten:
            
            # get vpn ipsec tunnel summary
            # get ipsec tunnel list
            
            Wenn für die einzelnen "aktiven" IPSec Tunnels Detailinformationen angezeigt werden sollen kann nachfolgender Befehl
            benutzt werden:
            
            # get vpn ipsec tunnel detail

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

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

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

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

       # diagnose vpn tunnel down [Name Phase-2]
       # diagnose vpn tunnel up [Name Phase-2]
       
       NOTE Das Kommando "diagnose vpn tunel" steht im Zusammenhang mit der Phase-2 und beeinflusst nicht die Phase-1.
            Zusätzlich zu "down/up" stehen folgende Optionen zur Verfügung:
            
            # diagnose vpn tunnel ?
            down         Shut down tunnel
            up           Activate tunnel
            list         List all tunnel
            dialup-list  Lit dialup tunnel
            reset        Flush tunnel SAs and reset NT-T and DPD configuration
            flush        Flush tunnel SAs
            delinbsa     Remove tunnel sa
            deloutbsa    Remove tunnel sa
            dumpsa       Dump all sa
            Stat         Tunnel statistic info

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

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

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

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

       NOTE Unter FortiOS 5.2 wird diesem Umstand "visuell" über Web Mgmt. Interface Rechnung getragen wenn ein
            Dialup VPN konfiguriert wird. Wenn der Name eine bestimmte Länge überschreitet wird ein entsprechender
            Hinweis angezeigt und die Zahl möglicher Gleichzeitiger Verbindungen!
            
            Fortinet-1209.jpg

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

Wenn eine IPSec Verbindung Konfiguriert wurde und nachträglich an dieser Konfiguration Aenderungen durchführt (event. auf beiden Seiten) kann es vorkommen, dass die neuen Informationen nicht übernommen/aktiv werden. Oft wird als letzte Alternative ein Neustart des Gerätes durchgeführtt. Nach einem Neustart werden die neuen Informatione sofort aktiv. Die Vorgehensweise einen Device neu zu starten ist zwar eine Möglichkeit aber nicht in jedem Fall machbar da event. mehrere IPSec Tunnel auf dem Device konfguriert wurden und durch dieses Vorgehen ein Unterbruch in den IPSec VPN Verbindungen stattfindet. Speziell wenn grundlegende Konfigurationsänderungen durchgeführt wurden in der IPSec Konfiguration, sei es betreffend Subnets oder in der Phase-1/2, kann folgendermassen vorgegangen werden um ein IPSec von grundauf neu zu Initieren (inkl. SA Informationen; Security Association):

       "Erneuerung der Routing Table"
       
       # execute router restart
       "Erneuerung der SA (Security Associations ) für ALLE VDom's"
       
       # diagnose debug application ike 2 
       # diagnose debug enable 
       # diagnose vpn ike restart 
       
       oder
       
       # diagnose vpn ike gateway flush [name Phase 1]
       
       NOTE Wenn ein "diagnose vpn ike restart" durchgeführt wird so wird der IKE Deamon der FortiGate neu gestartet. Dies bedeutet:
            Sämtliche konfigurierten IPSec VPN's auf der FortiGate erfahren einen Neustart und somit wird ein Unterbruch stattfinden
            auf sämtlichen IPSec Verbindung die auf der FortiGate konfiguriet wurden. Wenn dies nicht möglich ist, kann ein "diagnose 
            vpn ike gateway flush [name Phase 1]" durchgeführt werden. Zusätzlich steht der Befehl "diagnose vpn tunnel" zur Verfügung
            um ein IPSec VPN neu zu starten etc. jedoch steht dieses Kommando nur im Zusammenhang mit der Phase-2 und beeinflusst somit
            nicht die Phase-1 sprich die SA der Phase-1 kann mit diesem Befehl nicht erneuert werden. Mehr Informationen zum Kommando
            "diagnose vpn tunnel" siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_einen_IPSec_VPN_Tunnel_Manuell_Stoppen_und_Starten.3F
       Danach sollte das Debug wieder abgeschaltet werden:
       
       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info

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

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

Folgende Symptome treten auf:

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

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

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

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

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

       C:\> ping 10.2.2.2 

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

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

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

Wie kann ich für ein IPSec VPN den Status der Security Association (SA) abfragen?

Die "Security Association" ist das Herzstück eines IPSec VPN's dh. diese wird erstellt zu Beginn eines IPSec VPN Aufbaus in der Phase-1 sowie diese wird nach gesetzer Keylifetime erneuert. Aus nachfolgenden Kommando können mehrere Wichtige Informationen gezogen werden betreffend Phase-1 SA:

       # diagnose vpn ike gateway list
       vd: root/0
       version: 1
       interface: port1 2
       addr: 10.200.1.1:500 -> 10.200.3.1:500
       created: 8683s ago
       IKE SA: created 1/2 established 1/1 time 10/10/10 ms
       IPSec SA: created 1/3 established 1/3 time 10/10/10 ms
       
         id/spi: 2 a08fc739780e405b/cbb5f7ea30af294d
         direction: responder
         status: established 8660-8660s ago = 10ms
         proposal: des-md5
         key: b85e222c41ee9909
         lifetime/rekey 86400/77469
         DPD sent/recv: 000005d2/0000005b0

In diesem Output sieht man verschiedenen Informationen wie zB:

       version:                - Welche Version von IKE wird benutzt
       interface:              - Für das VPN wird welches Interface benutzt
       created:                - Wann wurde die Phase-1 erstellt
       direction:              - Welcher Gateway/IP hat das VPN initiert
       proposal:               - Welche Proposal werden benutzt für Phase-1
       lifetime:               - Welche lifetime wird benutzt
       DPD sent/recv:          - Letzet DPD sent/recv

Das Gleiche kann für die Phase-2 SA durchgeführt werden dh.:

       # diagnose vpn tunnel list
       
       name=Remote ver=1 serial=1 10.200.1.1:0->10.200.3.1:0
       lgwy=static tun=intf mode=auto bound if=2
       proxyid_num=2 child num=0 refcnt=7 ilast=0 olast=0
       stat: rxp=0 txp=0 rxb=0 txb=0
       dpd: mode=active on=1 idle=5000ms retry=3 count=0 seqno=1490
       natt: mode=none draft=0 interval=0 remote_port=0
       proxyid=Remote proto=0 sa0 ref=1 serial=1
         src:0:10.0.1.0/255.255.255.0:0
         dst:0:10.0.2.0/255.255.255.0:0
       SA: ref=3 options=000000e type=00 soft=0 mtu=1446
       expire=39766 replaywin=2048 seqno=1
         life: type=01 bytes=0/0 timeout=43152/43200
         dec: spi=bee75e37 esp=des key=8 af138cd415c7e900
              ah=md5 key=16 47090e94d4fa026b652af1fea8d4d228
         enc: spi=352f0146 esp=des key=8 faff7973e50093f0
              ah=md5 key=16 97dff98d0aa7df779db5a7fib116905ff
         npu_flag=00 npu_rgwy=10.200.3.1 npu_lgwy=10.200.1.1
       npu selid=1
         dec:pkts/bytes=0/0, enc:pkts/bytes=0/0

In diesem Output sind auch Wichtige Information die herausgelesen werden könnnen wie zB:

       name=Remote ver=1 serial=1 10.200.1.1:0->10.200.3.1:0                - IP's der Gateways
       natt: mode=none                                                      - Wird NAT-T (Nat Traversal) benutzt oder nicht. "silent" indiziert es wird NAT-T benutzt
       dpd: mode=active on=1 idle=5000ms retry=3 count=0                    - Die Position "count=0" indiziert ob DPD Fehler aufgetreten sind.
       dec:                                                                 - Indiziert die SPI dh. Austausch der Encryption sowie Authentication und zeigt den "key" 
                                                                              für den Traffic in beide Richtungen
       dec:pkts/bytes=0/0, enc:pkts/bytes=0/0                               - Stellt den Traffic counter dar für das IPSec VPN

Wenn man nun diese "SA" eines VPN von Grundauf erneuern möchte muss das IPSec VPN neu gestartet werden. Nachträglich kann wiederum mit den hier gezeigten Kommandos die Informationen kontrolliert werden. Wie ein IPSec VPN zur Erneuerung der SA neu gestartet wird siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Wann sollte ich den "Quick MOde Selector" benutzen, was muss ich berücksichtigen und welche Funktion hat dieser?

Wenn zwischen FortiGate's ein Site2Site VPN aufgebaut werden soll und/oder zwischen Interoperability Devices (Fremdprodukte) stellt sich die Frage ob die Netze/Subnet's in der Phase2 unter "Quick Mode" Selektor definiert werden sollen. In der Phase2 von IKE wird der "Quick Mode" verwendet (Schutz durch die IKE SA). Die gesamte Kommunikation in dieser Phase2 erfolgt verschlüsselt. Wie in der Phase1 wird zunächst ein Vorschlag (Proposal) gemacht und zusammen mit einem "Hashwert" und dem "Nonce" übertragen. Später werden die Schlüssel neu berechnet, und es fließen keinerlei Informationen aus den zuvor generierten SA's (Security Association) ein. Dies stellt sicher, dass niemand von den zuvor generierten Schlüsseln auf die neuen schließen kann (Perfect Forward Secrecy). Dies wird erreicht, indem ein zusätzlicher Diffie-Hellman-Austausch stattfindet. Die Geheimnisse zur Schlüsselbildung werden verworfen, sobald der Austausch abgeschlossen ist. Nun wenn man das liest fällt einem folgender Satz auf:

       "In der Phase2 von IKE wird der "Quick Mode" verwendet...."

Dies ist "Die" relevante Aussage dh. durch die Konfiguration eines VPN's kann nicht gewählt werden ob der "Quick Mode Selector" benutzt werden soll oder nicht, denn dieser wird in der Phase2 immer benutzt! Die Frage ist nur "Wie" wird der "Quick Mode Selector" benutzt dh. folgende Varianten sind möglich:

       -> In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor definiert
       -> In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor als "wildcard" definiert dh. "0.0.0.0/0"

Aus diesen zwei Varianten fragt man sich "wo" die Vor- und Nachteile der Varianten sind? Nachfolgend die zwei Varianten mit dessen Vor- und Nachteile:

       In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor definiert
       
       Werden die Netze/Subnet's in der Phase2 definiert so werden diese zwischen dem Remote Gateway ausgetauscht und müssen 
       gegenüber dem Gateway 100% übereinstimmen in der Source und Destination. Dies bedeutet die Source als Netz/Subnet muss
       auf dem Remote Gateway 100% betreffend Subnetting übereinstimmen mit dessen Definition der Destination. Das gleiche gilt
       für die Destination muss auf dem Remote Gateway mit dessen Source 100% übereinstimmen. Werden falsche oder unterschiedliche
       Netze/Subnet's definiert wird die betreffend Phase2 verworfen. Wenn mehrer Netze/Subnet's in der gleichen Phase2 konfiguriert
       werden müssen ist das nicht auf jedem Interoperability Device möglich. Ist dies nicht möglich können "mehrere" Phase2 dafür
       zur Phase1 definiert werden. Jede Phase2 beinhaltet dann die einzelne Definition der einzelnen Netze/Subnet's. Für einige
       Interoperability Devices können in der Phase2 unter "Quick Mode Selector" Gruppen definiert werden. Diese Gruppen beinhalten
       die einzelnen Netze/Subnet's (Unter FortiOS 5.2.1 möglich). Dies wird wiederum nicht für alle Interoperability Device's 
       unterstützt (zB Cisco ASA).
       In der Phase2 werden die Netze/Subnet's unter Quick Mode Selektor als "wildcard" definiert dh. "0.0.0.0/0"
       
       Wird in der Phase2 unter dem "Quick Mode Selector" "Wildcards" definiert dh. "0.0.0.0/0" sind potentiell "alle" Netze
       erlaubt dh. im Austausch in der Phase2 mit dem Remote Gateway und ebenfalls durch dessen Konfiguration im "Quick Mode
       Selector" durch "wildcards" wird potentiell vereinbart, dass alle Netze/Subnet's akzeptiert werden! Dies kommt jedoch
       nur Zustande, wenn der Remote Gateway ebenfalls im "Quick Mode Selektor" die Konfiguration der "wildcards" benutzt. Nicht
       alle Interoperability Devices unterstützen dies. Wie schon erwähnt -durch die "wildcard" Konfiguration "0.0.0.0/0"- ist
       jedes Netz/Subnet in der Phase2 erlaubt. Somit fällt die Problematik von mehreren Netzen/Subnet's weg und die Definiton
       einer Phase2 reicht für jede Konfiguration aus. Die Zugriffe werden nun gesteuert über "statische" Routen sowie über 
       entsprechende Firewall Policy Rules. In dieser Konfiguration anhand der "wildcards" ist es nicht ratsam in der Firewall
       Policy Rule "all" zur Definition der Destination resp. Source zu benutzen da durch die "wildcards" potentiell sämtlicher
       Traffic erlaubt ist.
       Fazit
       
       Die Konfiguration für den "Quick Mode Selector" durch "wildcards" ist einfacher und Transparenter auch für spätere Erweiterungen
       da die Phase2 nur einmal konfiguriert werden muss. Sämtliche Konfiguration in einem späteren zeitpunkt werden über "statische
       Routen" sowie "Firewall Policy Rules" gesteuert. Aus diesem Grund sollten Konfigurationen in einem Site2Site VPN in der zwischen
       FortiGate's ein IPSec etabliert werden soll im "Quick Mode Selector" die Konfiguration von "wildcards" benutzt werden. Für 
       Interoperability Device's (Fremdprodukten) sollte dies Konfiguration in Betracht gezogen werden. Ist dies nicht möglich müssen
       die Netze/Subnets im "Quick Mode Selector" definiert werden. Wenn mehrere Netze/Subnet's für Interoperability Devices definiert
       werden müssen und "wildcard" ist nicht möglich können diese im "Quick Mode Selector" als Gruppen definiert werden die diese 
       verschiedenen Netze/Subnets beinhalten. Ist dies nicht möglich da der Interoperability Device dies nicht unterstützt können die
       einzelnen Netze/Subnets einzel anhand verschiedenen Phase2 zur Phase1 hinzugefügt werden.

Aus den vorhergehnder Erklärung ergiebt sich folgede Fragestellung, auch dann wenn nur FortiGate Devices involviert sind:

       • Welche Netze/Subnets werden benützt um ein Site2Site VPN aufzubauen (Wenn gleiche Netze/Subnet's benützt werden = Ovelapping Encryption Domain)?
       
       • Wenn gleiche Netze/Subnets benutzt werden muss ein NAT (Network Address Translation) konfiguriert werden. Welche Netze/Subnets werden dazu benützt?
       
       • Können beide Seiten für die Phase2 "wildcard" (0.0.0.0/0) im "Quick Mode" Selector benutzen?
       
       • Welche Einstellungen sollen benutzt werden für die Phase1/2 die da sind:
       
               Network
               Interface based VPN (kein Policy based VPN)
               IP Version: 4
               Remote Gateway IP: ? (Statische Public IP / DDNS Name)
               Mode Config: None
               NAT Traversal: Activate
               NAT Traversal Keepalive Frequency: 10
               DPD (Dead Peer Detection): Activate
       
               Authentication
               Method: PSK (Preshared Key sollte über SMS und/oder Teleon ausgetauscht werden) 
               IKE: Version 1
               Mode: Main-Mode (Für Site2Site VPN nur in Ausnahmefällen "Aggressive Mode" benutzen)
       
               Phase1 Proposal
               Encryption: AES256
               Authentication: MD5
               Fallback Encryption: AES256
               Fallback Authentication: SHA1
               DH Group (Diffie-Hellmann Group): 5
               Key Lifetime (seconds): 86400
               Local ID: None
               XAUTH: None
       
               Phase2 Proposal
               Encryption: AES256
               Authentication: MD5
               Fallback Encryption: AES256
               Fallback Authentication: SHA1
               Enable Replay Detection: Activate
               PFS (Perfect Forward Secret): Activate
               DH Group (Diffie-Hellmann Group): 5
               Autokey Keep Alive: Activate
               Auto-negotiate: Activate
               Key Lifetime (seconds): 43200
       
               Quick Mode Selector Local Address: 0.0.0.0/0
               Quick Mode Selector Remote Address: 0.0.0.0/0
       
       • Beide Seiten des Site2Site VPN's müssen sich über die Angaben resp. Konfiguration einigen!
       
       • Konfiguriere Phase1/2 anhand der ausgehandelten Angaben!
       
       • Konfiguriere für Remote Address (Netz/Subnet) "Statische Routen" (als Interface wird Phase1 Name benutzt)
       
       • Konfiguriere Firewall Policy Rule Netze/Subnet (nicht "all") für Incoming und/oder Outgoing Traffic (als Interface wird Phase1 benutzt)
       
         NOTE Sobald beide Seiten das VPN ordnungsgemäss konfiguriert haben und sich auf das PSK (Preshared Key) geeinigt haben kann
              das VPN getestet werden. Dabei ist es Hilfreich einen Server freizugeben im entsprechenden Netz (Firewall Policy Rule)
              der über ICMP erreichbar ist (vorgängig testen). Für einen Test sollte nich das interne Interface der Firewall benutzt
              werden sondern die effektive Destination (Routing!). Dabei sollte bei Problem folgendes berücksichtigt werden:
              
              Wie sieht der "Output" für ein IPSec VPN im Debugging Mode aus?
              Wie kann ich für ein IPSec VPN für Phase-1 und/oder 2 ein Debugging ausführen?
              
              Desweiteren wenn ein Site2site VPN verändert wird dh. für Routing und/oder zB für neue Netz/Subnet's sollte die Erneuerung
              des Routing (Routing Tabelle) sowie die Erneuerung der SA (Security Association) berücksichtigt werden:
              
              Wie kann ich ein IPSec VPN neu Initieren (Starten) damit von Grundauf neue Informationen (SA) aktiv werden?

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

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

       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-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F
       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Nachfolgend einige Informationen betreffend Fremdanbietern (Interoperability Device):

       IPSEC MICROSOFT AZURE <--> FORTIGATE:
       
       Datei:IPsec-VPN-FGT-Microsoft-Azure.pdf
       
       Fortinet Unterstützt AZURE betreffend FortiOS Site2Site VPN ab folgenden Versionen:
       
       Ab 5.2.7 oder höher
       Ab 5.4.x oder höher
       
       Wenn FortiOS eingesetzt werden zB 5.2.6 oder tiefer kommt es nach einiger Zeit in der Phase2 zu Problemen (random failures).
       Ebenfalls wird über folgenden Link aufgelistet betreffend AZURE welche Devices/OS für AZURE unterstützt werden:
       
       https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-about-vpn-devices
       https://azure.microsoft.com/en-us/documentation/articles/vpn-gateway-about-vpn-devices/
       IPSEC CISCO ASA <--> FORTIGATE:
       
       Datei:Configuring-IPsec-VPN-with-a-FortiGate-and-a-Cisco-ASA.pdf
       IPSEC ASTARO/SOPHOS V8 <--> FORTIGATE:
       
       http://www.sophos.com/de-de/support/knowledgebase/116130.aspx
       
       NOTE Unter Astaro/Sophos im Zusammenhang mit Fortigate muss die Encryption "3DES" benutzt werden ansonsten kommt 
            es zu Problemen (Error INVALID-MESSAGE-ID)! Der Grund liegt in der Implementierung von "AES" seitens Sophos. Dies
            gilt für FortiOS 4.x sowie 5.x basierend auf Astaro 8.x:
       
        Astaro/Sophos Konfiguration 8.x
       
       Fortinet-777.jpg
       
        Fortigate Konfiguration 4.x / 5.x
       
       Fortinet-778.jpg
       IPSEC SOPHOS V9 <--> FORTIGATE:
       
       NOTE Unter Sophos Version 9.x hat sich die Limitierung betreffend "3DES" geändert dh. folgende Konfiguration wurde getestet
            und läuft einwandfrei:
       
       Sophos Konfiguration 9.x
       
       Fortinet-1342.jpg
       
       Fortinet-1343.jpg
       
       Fortinet-1344.jpg
       
       Fortigate Konfiguration 5.x
       
       Fortinet-1340.jpg
       
       Fortinet-1341.jpg

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

Die beiden offiziellen Apps von Fortinet für IPhone und/oder Android unterstützen in der 5.0 Version ausschliesslich das Browsen dh. wenn man verbunden ist mit dem APP kann der aufgebaute VPN Tunnel nur für das Browsen benutzt werden deshalb wird dieser Client auch "SSL proxy VPN connection agent" genannt. Neu unter FortiOS 5.2 unterstützt - im Gegensatz zu IOS - Android ebenfalls eine IPSec Verbindung. Will man eine klassische IPSec Verbindung anhand eines IOS Gerätes durchführen so ist das mit dem Cisco Client (Unity Client) möglich sowie mit der eingebauten VPN Funktion eines IPhones. Nachfolgende Links geben Auskunft wie so eine Verbindung zu konfigurieren ist auf Android:

       FortiGate-5.0-5.2:FAQ#Gibt_es_f.C3.BCr_IOS_und_Android_einen_SSL_VPN_Client.3F
       
       NOTE Für die Konfiguration eines IOS Devices anhand des "build-in" Cisco Client's siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Gibt_es_eine_M.C3.B6glichkeit_mit_einem_IPhone.2FIPad_.C3.BCber_IPSec_eine_Verbindung_aufzubauen_zu_einer_Fortigate.3F

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

Ab FortiOS 5.0.2 ist es möglich den "build-in" Cisco VPN Client anhand des "iPhone Configuration Utility" für Windows und/oder MAC zu konfigurieren anhand eines Profiles (.mobileconfig) und dieses wiederum auf der FortiGate unter "Endpoint Profile" einzulesen damit dieses Profile den IPhone/IPad Devices (min. IOS V5.1.1) zugewiesen wird. Dies geschieht über das "FortiClient" App. Folgendes Dokument beschreibt diesen Vorgang sowie dessen Konfiguration:

       Datei:Mobile-configuration-profiles-technical-note.pdf      (Mobile Configuration Profiles for iOS Devices Technical Note)
       
       NOTE Wenn die IPSec Konfiguration durchgeführt wird speziell mit dem Cisco Client muss Split Tunneling 
            deaktiviert werden ansonsten kommt es zu Problemen! Das Tool das im vorhergehenden Dokument erwähnt ist
            um die VPN Konfiguration unter Windows als File .mobileconfig vorzukonfigurieren wird durch Apple unter
            Windows "nicht" mehr zur Verfügung gestellt. Nachfolgend wird dieses Tool unter Windows hier zur Verfügung
            gestellt jedoch ohne Gewähr:
            
            Datei:IPhoneConfigUtilitySetup 3.6.2.zip       Windows 7 32bit/64bit

Damit diese Konfiguration anhand .mobileconfig durchgeführt werden kann muss die SSL-VPN Konfiguration (Web Portal) auf der FortiGate durchgeführt werden. Wie ein SSl-VPN auf einer FortiGate konfiguriert wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.2_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Desweiteren stellt sich immer wieder die Frage "wie ein Zertifikat für iOS auf einer FortiGate zu erstellen ist sowie auf dem iOS Device zu installieren ist". Folgender Artikel gibt Auskunft über diese Thematik:

       FortiGate-5.0-5.2:FAQ#Wie_installiere_ich_f.C3.BCr_FortiClient_f.C3.BCr_iOS_.28Apple.29_ein_Zertifikat_auf_den_entsprechenden_Device.3F

Nachfolgend einige Links mit zusätzlichen Informationen:

       Support Notes für IPhone und IPad:
       http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD30893&languageId=
       
       Cisco Client (Unity Client):
       http://kb.fortinet.com/kb/documentLink.do?popup=true&externalID=FD33376&languageId=
       
       IPhone IPsec VPN Setup:
       Datei:FortiGate-iPhone VPN Setup-Guide v1.0 English 2010210.pdf
       
       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD31619

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Statischer Route Eintrag = Firewall Policy Destination

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

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

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

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

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

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

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

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

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

Unter FortiOS 5.2 wurde die Art und Weise wie ein VPN konfiguriert wird grundlegend modifiziert. Dies bedeutet: Unter FortiOS 5.2 stehen sogenannte "Template's" (Vorlagen) zur Verfügung zB:

       Dialup - FortiClient (Windows, Mac, OS, Androis)
       Site to Site - FortiGate
       Dialup - iOS (Native)
       Dialup - Android (Native L2TP/IPSec)
       Dialup - Cisco Firewall
       Site to Site - Cisco
       
       NOTE Alle diese "Template's" haben eines Gemeinsam denn diese "Template's" erstellen/konfigurieren
            im Hintrgrund automatisch die Konfiguration inkl. Firewall Policy und event. Routing. Diese
            "Template's" heranzuziehen um eine Konfiguration zu erstellen ist Sinnvoll bei Dialup Verbindungen
            wie FortiClient, iOS, Android jedoch nicht für klassische IPSec Site2Site Verbindungen. Für 
            Site2Site Verbindungen sind diese "Template's" zu wenig Transparent in der Konfiguration. Egal
            Ob diese "Template's" benutzt werden oder nicht sollte immer im Auge behalten werden, dass für
            eine VPN Verbindung folgende Aspekte zu berücksichtigen sind:
            
            • Nach der Erstellung des IPSec VPN's kontrolliere Phase-1 und/oder 2!                     
            • Kontrolliere ob die entsprechenden Routing Einträge für das IPSec erstellt wurden!
            • Kontrolliere ob eine entsprechende Firewall Policy Rule erstellt wurde!
              
              Folgende Kommandos auf der CLI können benützt werden um die Kontrolle durchzuführen:
              
              # config vpn ipsec [phase1-interface | phase2-interface]
              # config router static
              # config firewall policy
            

Wir empfehlen für eine Site2Site IPSec VPN Konfiguration diese ohne die Hilfe der "Template's" durchzuführen. Gemäss unserem Beispiel nachfolgend die Schritte für die Konfiguration auf der "Forti-I":

       Konfiguration Phase-1/2 IPSec VPN
       
       VPN > IPSec > Tunnels > Create New
       
       Fortinet-1185.jpg
       
       Fortinet-1186.jpg
       
       Fortinet-1187.jpg
       Fortinet-1188.jpg
       Fortinet-1189.jpg
       Fortinet-1190.jpg
       
       NOTE Die Position "Phase-2 Selectors" stellt die Funktion des "Quick-Mode Selectors" dar und ist unter normalen
            Umständen nicht konfiguriert werden!
       Erstellen der nötigen Adress Obejkte für Forti-I
       
       VPN > IPSec > Tunnels > Create New
       
       Fortinet-1191.jpg
       
       Fortinet-1192.jpg
       
       Fortinet-1193.jpg
       Konfigurieren des Routing für Destination Forti-II
       
       System > Network > Routing > Create New
       
       Fortinet-1194.jpg
       
       Fortinet-1195.jpg
       Erstellen der Firewall Policy für Forti-I Incoming/Outgoing
       
       Policy > Policy > IPv4 > Create New
       
       Fortinet-1196.jpg
       
       Incoming
       Fortinet-1197.jpg
       
       Fortinet-1196.jpg
       
       Outgoing
       Fortinet-1198.jpg

Die Konfiguration auf "Forti-I" ist abgeschlossen. Nun muss auf der "Forti-II" exakt die gleiche Phase-1/2 konfiguriert werden sowie das Routing und Firewall Policy im umgekehrten Sinne. Wenn das IPSec anhand eines Debugging Mode für Phase-1/2 verfiziert werden soll siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F

Wenn Traffic für den IPSec Tunnel verifiziert werden soll kann anhand der Sniffer Funktion diese durchgeführt werden:

       FortiGate-5.0-5.2:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F

Wenn nach der Grundkonfiguration Modifikationen des IPSec VPN durchgeführt wurden sei es im Routing und/oder Phase-1/2 ist es Sinnvoll das VPN komplett runterzufahren um es erneut von Grundauf neu zu starten. Nachfolgender Artikel zeigt wie dies korrek durchgeführt wird:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

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

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

       config vpn ipsec phase1-interface
       NOTE Wenn unter FortiOS 5.2 ein IPSec VPN erstellt wird "ohne" Template so steht der Konfigurationspunkt
            "Enable IPSec Interface Mode" wieder in der Phase-1 zur Verfügung!

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

       System > Config > Features > Show More > Policy-based IPsec VPN
       
       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
       
       NOTE Durch die Aktivierung der Position NAT wird die Funktion des Source NAT aktiviert. Inerhalb
            dieser Position wird Central NAT Table aktiviert. Aus diesem Grund wird diese Central NAT
            Table benutzt um das Source NAT durchzuführen.

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

       Incoming Forti-II --> Forti-I
       **********************************
       
       Source                     Destination
       192.168.100.0/24           10.10.10.0/24 (vip)
       
       NOTE Auf der Fortigate innerhalb einer Firewall Policy wird exakt diese Rule für das IPSec VPN konfiguriert. 
            In dieser Firewall Policy wird "Destination NAT" 1:1 NAT konfiguriert dh. anhand eines VIP Objektes auf dem 
            Destination Interface "Forti-II"!
       
       Erstellen des Destination NAT Objekts (VIP)
       
       FortiOS 5.0
       Firewall Objects > Virtual IP > Virtual IPs > Create New
       
       FortiOS 5.2
       Policy & Objects > Objects > Virtual IPs > Create New
       
       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-5.0-5.2:FAQ#Wie_kann_ich_ein_IPSec_VPN_neu_Initieren_.28Starten.29_damit_von_Grundauf_neue_Informationen_.28SA.29_aktiv_werden.3F

Wie konfiguriere/erlaube ich für einen IPSec VPN Tunnel ein "netbios forward"?

"Netbios" Anfragen werden auf einer Fortigate per Standard nicht über andere IP Range's/Segmente/Interface's weitergeleitet sondern geblockt. Wenn jedoch zB eine "Active Directory" Replizierung benutzt wird in einem IPSec VPN Tunnel muss "netbios foward" erlaubt werden ansonsten funktioniert die "Active Directory" Replizierung nicht. Die Konfiguration "netbios forward" in einem IPSec VPN Tunnel zu erlauben ist identisch wie die Konfiguration "netbios forward" über verschieden Interface's zu erlauben. Die Konfiguration die durchgeführt werden muss anhand "netbios-forward" ist basierend auf den Interface's. Wie das auf einem Interface konfiguriert wird zeigt nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Eine_.22Active_Directory.22_Replizierung_funktioniert_nicht_.C3.BCber_ein_VPN_Tunnel_.28netbios_forward.29.3F

Wie überprüft man ob eine IPSec VPN Verbindung die Hardware Acceleration benutzt (encrypt/decrypt)?

Wenn eine IPSec VPN Verbindung konfiguriert wird, steht die Frage im Raum "ob die Verbindung Beschleunigt wird" resp. decrypt/encrypt (Offloding) benutzt wird? Ob eine Beschleunigung resp. die Hardware Acceleration benutzt wird oder nicht hängt vom verwendeten Mode ab (Interface/Policy Based), eingesetzen ASIC sowie FortiOS Version dh. somti spielt der Remote Peer (Interoperability Device) auch eine Rolle. Um festzustellen ob die Hardware Beschleunigung (ASIC) oder die Software benutzt wird, kann folgender Befehl abgesetzt werden:

       NOTE Je nach FortiGate Device gestaltet sich die Darstellung anderst dh. neuere Versionen des CP Prozessors oder 
            zusätzliche NP Prozessoren. Wichtig dabei ist das die entsprechenden Einträge nicht unter "Software" erscheinen
            da dies bestätigen würde das "keine" Beschleunigung über die Hardware stattfindet (Offloading):
       
       # diagnose vpn ipsec status  
       All ipsec crypto devices in use:  
       CP6          
       null:   0       0          
       des:    0       0          
       3des:   0       0          
       aes:    11342694        118453159          
       null:   0       0         
       md5:    0       0          
       sha1:   11342694        118453159          
       sha256: 0       0          
       sha384: 0       0          
       sha512: 0       0  
       
       SOFTWARE:          
       null:   0       0          
       des:    0       0          
       3des:   0       0          
       aes:    0       0          
       null:   0       0          
       md5:    0       0          
       sha1:   0       0          
       sha256: 0       0          
       sha384: 0       0          
       sha512: 0       0

Aus diesem Output geht hervor das der "Content Prozessor" dh. CP eine Beschleunigung durchführt für das IPSec VPN. Daraus resultiert die Frage wieso der CP resp. "Content Prozessor" dies durchführt und nicht der NP resp. "Network Prozessor". Auf einer FortiGate ist der CP grundsätzlich zuständig im UTM Bereich eine Beschleuningung durchzuführen. Zusätzlich übernimmt jedoch auf einer FortiGate der CP die Beschleuningung des IPSec VPN's. Dies wird jedoch nur zur Beginn eine IPSec VPN durchgeführt dh für den Aufbau und zur Unterstützung für die Performance. Ausgehend von FortiOS 5.0 sowie bis FortiOS 5.2.2 muss dies explizit konfiguriert werden was wiederum bedeutet:

       Für NP2 und NP4 bis FortiOS 5.2.2
       
       # config system npu
       # set dec-offload-antireplay enable
       # set enc-offload-antireplay enable
       # set offload-ipsec-host enable
       # end
       
       NOTE Für NP6, NP4lite sowie ab FortiOS 5.2.3 ist dies nicht mehr nötig und wird automatisch durchgführt!

Somit um die nötige Performance im IPSec VPN Bereich zu erreichen sollte auf sämtliche Software basierende IPSec VPN's verzichtet werden. Dazu gehören zB:

       -> Policy Based VPN's
       -> L2TP VPN's

Wenn man die Beschleunigung für IPSec VPN in den Session Table überprüfen möchte kann das entsprechende Kommando dazu benutzt werden um die Session Table aufzulisten. Weitere Informationen dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_momentanen_einzelnen_Sessions_auf_einer_FortiGate_auflisten.3F

Dabei ist von Wichtigkeit die "npu_flag" Informationen korrekt zu intepretieren was wiederum folgendes bedeutet:

       Solange kein Traffic nach dem Aufbau der Phase-2 durch den IPSec VPN Tunnel gesendet wird steht das Flag "npu_flag" auf "00".
       Dies bedeutet wiederum die SA wird nicht zum NPU gesendet. Wenn aus kompatibilitätsgründen der Traffic nicht Beschleunigt 
       werden kann bleibt dieses Flag "npu_flag" auf "00". Wenn Traffic initiert wird für Outbound und das erste Packet Beschleunigt
       werden kann für Outbound so wechselt das "npu_flag" auf "01". Wenn Traffic für Inbound die FortiGate erreich so wird das erste
       Packet mit dem "npu_flag" mit "02" versehen resp. damit zum NPU gesendet sofern dieses Beschleunigt werden kann. Wenn beide
       Richtungen Beschleunigt werden können resp. beide SA bereits für Inbound/Outbound zum NPU gesendet wurde wechselt das "npu_flag"
       auf "03".

Auf was muss ich achten wenn ein IPSec VPN konfiguriert wurde und der IPSec Tunnel immer aktiv bleiben soll?

Wenn ein IPSec VPN konfiguriert wird so wird per Standard Phase-1/2 nur dann abgearbeitet wenn Traffic transportiert werden soll. Dies bedeutet: die Phase-1/2 wird initiert wenn Traffic produziert wird zwischen den Peer's. Wenn der Tunnel nicht oft genutzt wird zB einmal im Tag wird Traffic übermittelt für eine kurze Zeit, ist die Standard Konfiguration ausreichend. Wird der Tunnel oft genutzt ist es besser den IPSec Tunnel "immer" aktiv zu halten da ansonsten Phase-1/2 bei jedem Traffic neu Initiert wird. Wenn der IPSec Tunnel "immer" aktiv ist, werden mehr Resourcen auf der Fortigate alloziertt um den IPSec Tunnel aktiv zu halten. Soll der IPSec Tunnel zwischen den Peer's immer aktiv bleiben müssen zwei Optionen aktiviert werden:

       FortiOS 5.0
       VPN > IPsec > [Wähle die Phase2 des entsprechenden VPN] > Advanced
       
       FortiOS 5.2
       VPN > IPsec > Tunnels > [Wähle die Phase2 des entsprechenden VPN] > Edit Phase 2 > Advanced 
       
       Autokey Keep Alive
       Auto-negotiate

Diese zwei Optionen stehen über Web Mgmt. Interface in der Phase-2 für FortiOS 5.0 / 5.2 unter Advanced zu verfügung und müssen aktiviert werden. Unter FortiOS 4 steht über das Web Mgmt. Interface nur die Option "Auto-Negotiate" zur Verfügung und "Autokey Keep Alive" steht nur über Kommandozeile zur Verfügung und zwar über folgende Position:

       # config vpn ipsec phase2-interface
       # edit [Name der Phase2]
       # set auto-negotiate enable
       # set keepalive enable
       # end
       
       NOTE Wird ein Policy Based VPN benutzt muss folgender Befehl benutzt werden:
            
            # config vpn ipsec phase2

Diese Optionen stehen zum Teil ebenfalls auf Interoperability Devices (Fremdprodukte) zur Verfügung und müssen auf diesen Devices auch aktiviert werden! Weitee Informationen wie der DPD Mechanismus funktioniert siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_funktioniert_DPD_.28Dead_Peer_Detection.29_und_in_welchem_Zusammenhang_steht_DPD_mit_der_Option_.22keepalive.22.3F

Nachdem die Konfiguration durchgeführt wurde sollte der VPN Tunnel neu gestartet werden:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_einen_IPSEC_VPN_Tunnel_Manuell_Stoppen_und_Starten.3F

Wie funktioniert DPD (Dead Peer Detection) und in welchem Zusammenhang steht DPD mit der Option "keepalive"?

Eine FortiGate stellt im IPSec Bereich ein Mechanismus zur Verfügung der sich DPD nennt dh. "Dead Peer Detection". Dieser Mechanismus stellt bei Aktivierung sicher, dass ein IPSec Tunnel permanent etabliert bleibt/ist. DPD wird durch die folgende Option aktiviert/deaktiviert:

       # config vpn ipsec phase2-interface
       # edit [Name der Phase2]
       # set keepalive [enable | disable]
       # end

Wenn kein Datenverkehr stattfindet zwischen beiden Endpunkten (Peer's) dh. die Verbindung "Idle" ist, wird durch DPD gewährleistet das der IPSec Tunnel etabliert bleibt (alive). Ebenfalls werden sogenannte "dead IKE peers" durch DPD gelöscht (clean-up) da diese nicht mehr erreicht werden können (Dead Peer Detection). Dies bedeutet: Dieser Mechanismus im "IKE Verfahren" stellt fest ob ein "Peer" noch "up and running" ist sprich erreichbar ist (alive). Da es sich um ein einfaches Verfahren handelt, minimiert dies den Traffic zwischen den verschiednen "Peer's" um festzustellen ob diese noch erreichbar sind. Im diesen Verfahren wird kurz gesagt folgendes durchgeführt:

       Die IPSec Devices senden einen DPD "R_U-THERE" nur dann, wenn vor dem letzten DPD Interval Daten durch den IPSec Tunnel gesendet wurden und
       dieser Traffic nicht beantwortet wurde (returning traffic). Wenn der Traffic "bi-directionaler" Natur ist, wird durch den DPD Meachanismus
       "nie" ein Packet gesendet dh. ein DPD "R_U-THERE" auch dann wenn DPD explizit aktiviert ist! Dies entspricht keinem Fehlverhalten sondern
       folgt dem RFC 3706 von IPSEC dh.:
       
       https://tools.ietf.org/html/draft-ietf-ipsec-dpd-04
       
       Siehe: DPD Protocol
       
       DPD befasst sich mit der Unzulänglichkeiten des IKE Keepalives- und Heartbeat-Systeme durch die Einführung einer vernünftiger Logik innerhalb 
       des Nachrichtenaustauschs. Im Wesentlichen: "Keepalives" und "Heartbeats" tauschen "HELLO's" unter normalen Umständen in regelmässigen Abständen
       aus. Im Gegensatz zu einer IPSec Verbindung "mit" aktivierten DPD, ist jeder "Peer" DPD Zustand weitgehend unabhängig von dem anderen. Einem 
       "Peer" steht es somit frei den Nachweis zu erbringen ob dieser noch "up and running" ist sprich "alive". Dies bedeutet: es existieren keine 
       vorgeschriebenen Intervalle für diesen Mechanismus. Diese "asynchrone" Eigenschaft des DPD Mechanismus (Austausch) ermöglicht es möglichst wenig 
       Traffic resp. minimierte Nachrichten zu senden um somit eine höhere Skalierbarkeit zu erreichen.
       
       Dabei ist zu beachten "Wann" die Entscheidung getroffen wird ein DPD zu senden denn diese Entscheidung ist spezifizierter Natur:
       
       https://tools.ietf.org/html/draft-ietf-ipsec-dpd-04#section-6.4
       
       Siehe: DPD Protocol > Impetus for DPD Exchange
       
       Anstelle das DPD auf einem spezifizierten Zeitintervall basiert, kann der Austausch auf die Frage DPD "R_U-THERE" jederzeit erfolgen. Aus diesem 
       Grund sollte ein "IKE Peer" nur dann diese Anfragen DPD "R_U-THERE" stellen, wenn es Sinn ergiebt (kein "return traffic). Somit ist ein DPD Anfrage 
       zwischen den "Peer's" solange ein Datenaustausch stattfindet (inkl. bi-directional) unnötig und sollte nicht initiert werden.
       
       Ein "Peer" muss den den Zustand einer bestimmten DPD Austausches zwischen speichern. Das bedeutet: sobald eine "R-U-THERE" Abfrage von einem "Peer" 
       gesendet wird so wird innerhalb eines bestimmten implementierten Zeitintervalls ein "ACK" als Antwort erwartet. Nach einem bestimmten definierten  
       Zeitintervall sollte eine erneut Anfrage anhand "R-U-THERE" durchgeführt werden, wenn es nicht gelingt einen "ACK" als Antwort zu erhalten. Nach 
       einer bestimmten Anzahl von erneuten Anfragen - die nicht durch "ACK" beantwortet werden - sollte der "Peer" als "unreachable" deklariert werden 
       und somit die IPSec Verbdindung resp. die IKE SA (IKE Security Association) gelöscht werden.
       
       https://tools.ietf.org/html/draft-ietf-ipsec-dpd-04#section-6.4
       
       Siehe: DPD Protocol > Implementation Suggestion
       
       Ob ein "Peer" "up and running" (alive) ist wäre demnach nur dann fragllich, wenn "kein Datenverkehr" ausgestauscht wird. Eine mögliche Implementierung 
       wäre ein bestimmtes Monitoring um festzustellen ob Daten ausgestauscht wird. Dies würde jedoch wiederum zusätzlichen Traffic verursachen. Um festzustellen
       ob ein "Peer" "up and running" (alive) ist wäre demnach nur dann "Wichtig" wenn der Datenverkehr ausgehend (Outbound) ist. Somit macht ein DPD Nachrichten 
       Austausch durch die Anfrage DPD "R_U-THERE" nur dann Sinn wenn für eine bestimmte Zeitspanne der Outbound Traffic "idle" ist und Outbound Traffic gesendet
       werden soll. Somit kann auch ein DPD Austausch stattfinden, wenn zware Outbound Traffic stattfindet, jedoch auf diesen Traffic keine Antwort erhalten wird
       (Inbound IPSec Packete). somit ist der DPD Austausch von Nachrichten dh. "R-U-THERE" und "R-U-THERE-ACK" als Nachweis zu sehen für ein "up and running" 
       einer IPSec Verbindung.
       
       NOTE Berücksichtige das ein DPD kein bestimmten Zeitintervall vorschreibt!. Diese "idle period" (Ruhezeit) die auch als "worry metric" verstanden wird 
            ist eine Implementierungsfrage des Produktes/Herstellers und nicht eine Frage der Definition eines ausgehandelten Wertes!

Wie kann ich ein IPSec Site2Site VPN im Interface Mode komplett auf Kommandozeile konfigurieren?

Ausgehend davon, dass ein Site2Site VPN basierend im Interface Mode zwischen zwei "FortiGate" Device konfiguriert werden soll und zwar auf Kommandozeile (Ohne Wizard und/oder Web Mgmt. Interface) ist folgendes durchzuführen/zu konfigurieren:

       NOTE Die hier gezeigten Kommandos basieren auf FortiOS 5.2. Das Grundprinzip kann jedoch ebenfalls auf FortiOS 5.0 
            übertragen werden. 
       Konfiguriere eine Phase1 für das Site2Site VPN Interface Mode
       
       # config vpn ipsec phase1-interface 
       # edit [Gebe einen entsprechenden Namen ein für Phase1 zB "site2site-ph1"]
       # set type static 
       # set interface [Gebe das entsprechende Interface an der Public IP zB "wan1"] 
       # set ip-version 4 
       # set ike-version 1 
       # set local-gw [Gebe spezifische IPv4 Adresse an sofern gewünscht (wenn nicht "wan1" IP) ansonsten "0.0.0.0"]
       # set nattraversal enable 
       # set keylife 86400
       # set authmethod psk 
       # set mode main 
       # set peertype any 
       # set mode-cfg disable 
       # set proposal aes256-sha1 aes256-md5 
       # set localid [Gebe sofern gewünscht eine Local ID an zB Name Phase1 "site2site"] 
       # set localid-type auto 
       # set negotiate-timeout 30
       # set fragmentation enable 
       # set dpd enable 
       # set forticlient-enforcement disable 
       # set comments [Gebe einen entsprechenden Comment ein sofern gewünscht zB "IPSec Phase1 site2site"]
       # set npu-offload enable 
       # set dhgrp 5 
       # set wizard-type custom 
       # set xauthtype disable 
       # set mesh-selector-type disable 
       # set remote-gw [Gebe die entsprechende IPv4 Adresse an des Remote GW zB "212.59.153.125"]
       # unset monitor  
       # set add-gw-route disable 
       # set psksecret [Gebe ein Preshared Key an für Phase1 zB "only4also!"]
       # set keepalive 10
       # set auto-negotiate enable 
       # set dpd-retrycount 3
       # set dpd-retryinterval 5
       # end
       Konfiguriere eine Phase2 für das Site2Site VPN Interface Mode
       
       # config vpn ipsec phase2-interface 
       # edit [Gebe einen entsprechenden Namen ein für Phase2 zB "site2site-ph2"]
       # set phase1name [Gebe den entsprechenden Namen ein der Phase1 zB "site2site-ph1"] 
       # set proposal aes256-sha1 aes256-md5 
       # set pfs enable 
       # set dhgrp 5 
       # set replay enable 
       # set keepalive enable 
       # set auto-negotiate enable 
       # set keylife-type seconds 
       # set encapsulation tunnel-mode 
       # set comments [Gebe einen entsprechenden Comment ein sofern gewünscht zB "IPSec Phase2 site2site"]         : 
       # set protocol 0
       # set src-addr-type subnet 
       # set src-port 0
       # set dst-addr-type subnet 
       # set dst-port 0
       # set keylifeseconds 43200
       # set src-subnet 0.0.0.0 0.0.0.0
       # set dst-subnet 0.0.0.0 0.0.0.0
       # end
       
       NOTE In der Phase2 werden die "Quick Mode Selector" (src-subnet/dst-subnet) auf 0.0.0.0 gesetzt dh. potentiell ist in der Phase2
            sämtlicher Traffic erlaubt. Weitere Informationen zum "Quick Mode Selector" findet man im nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wann_sollte_ich_den_.22Quick_MOde_Selector.22_benutzen.2C_was_muss_ich_ber.C3.BCcksichtigen_und_welche_Funktion_hat_dieser.3F
       Konfiguriere ein statisches Routing damit der entsprechende Traffic in den Site2site VPN Tunnel gesendet wird
       
       Variante 1: Nur ein bestimmtes Netz/Netze soll durch den Site2Site VPN Tunnel gesendet werden (NOT "Route all Traffic through Gateway")
       
       # config router static
       # edit [Gebe einen entsprechenden Integer an zB "2"]
       # set device [Gebe das entsprechende Phase1 Interface an zB "site2site-ph1"]
       # set dst [Gebe das Remote Network an zB "10.10.10.0/24]
       # set comment [Gebe einen entsprechenden Kommentar ein zB "Route IPSec site2site-ph1"]
       # end
       
       NOTE Wenn ein weiteres Netz konfiguriert werden soll muss einfach ein weiterer statischer Eintrag erstellt werden!
       Variante 2: Sämtlicher Traffic soll durch den Site2Site VPN Tunnel gesendet werden ("Route all Traffic through Gateway")
       
       # config router static
       # edit [Gebe einen entsprechenden Integer an zB "2"]
       # set device [Gebe das entsprechende Phase1 Interface an zB "site2site-ph1"]
       # set dst 0.0.0.0 0.0.0.0
       # set comment [Gebe einen entsprechenden Kommentar ein zB "Route All IPSec site2site-ph1"]
       # end
       
       NOTE Diese Konfiguration dh. dass sämtlicher Traffic durch den Site2Site VPN Tunnel geroutet wird muss gut überlegt sein und
            der "Hub"(Star Topology Spoke/Hub) muss die entsprechende Bandbreite zB betreffend Internet bereitstellen da der "Spoke"
            Gateway über den "Hub" das Internet erreicht.

Wenn diese Konfiguration abgeschlossen ist kann nun der Hub und/oder Spoke konfiguriert werden dh. die Phase1 sowie Phase2 werden exact genau gleich Konfiguriert mit der Ausnahme des Konfigurationspunktes des "set remote-gw" IP. Es kann Grundsätzlich der gleiche Name der Phase1/2 auf beiden Devices resp. Hub/Spoke benutzt werden jedoch empfohlen wird dies nicht da das Troubleshooting schwieriger wird um Hub/Spoke zu unterscheiden. Bei dem Konfigurationspunkt "set localid" muss auf beiden Seiten die gleiche ID benutzt werden sofern diese überhaupt konfiguriert/benutzt wird. Wie schon erwähnt erlaubt diese Konfiguration durch die Definition im "Quick Mode Selector" 0.0.0.0 potentiell sämtlicher Traffic. Durch die entsprechende Konfiguration der statischen Routen werden jedoch die entsprechenden Netze in den Site2Site VPN Tunnel gesendet. Als letzen Schritt müssen nun die entsprechenden Firewall Policy definiert werden durch Source sowie Destination unter Benutzung der Phase1 Interfaces auf dem entsprechenden Device (Hub/Spoke). Dabei ist es "Wichtig" nicht mit Destinationen/Source "all" zu arbeiten sondern die Netze korrekt zu definieren in Destination und Source. Dabei sollte folgender Grundregel gefolgt werden. Firewall Policy = Routing und Routing = Firewall Policy. Dies bedeutet: Wenn im Routing ein Netz zB 192.168.0.0/24 auf das IPsec Phase1 geroutet wird so muss in der Firewall Policy dieses Netz als Destination für das Remote Netzwerk konfiguriert werden. Wie die Phase1 und 2 im Debug Modes zu Troubleshooten sind geben nachfolgende Artikel Auskunft:

       FortiGate-5.0-5.2:FAQ#Wie_sieht_der_.22Output.22_f.C3.BCr_ein_IPSec_VPN_im_Debugging_Mode_aus.3F
       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_IPSec_VPN_f.C3.BCr_Phase-1_und.2Foder_2_ein_Debugging_ausf.C3.BChren.3F

FortiClient

Wo finde ich Informationen über den FortiClient und wie ein Client2Site IPSec VPN zu konfigurieren ist?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiClient:FAQ

L2TP

Gibt es eine Dokumentation die zeigt wie man ein L2TP IPSec auf einer Fortigate/Windows 7 konfiguriert?

Folgende Dokumente geben Auskunft über die nötige Konfiguration einer L2TP IPSec Konfiguration auf einer Fortigate sowie einem Windows 7 Client/Workstation:

       Datei:Technical Note+ L2TP Windows7 IPSEC.pdf
       Datei:Configuring-a-FortiGate-unit-as-an-L2TP-IPsec-server.pdf
       
       NOTE Das Dokument betreffend der Konfiguration eines Windows 7 Client/Workstaton stammt aus dem folgenden
            Knowledge Base Artikel:
            
            http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33431&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=50115989&stateId=0 0 50117406

Eine "L2TP" Verbindung ist basierend auf "Policy Based VPN". Dieses Feature muss - damit die entsprechende Firewall Policy - über Web Mgmt. Interface konfiguriert werden kann über folgende Position aktiviert werden:

       # config system global
       # set gui-policy-based-ipsec enable
       # end

Wenn man die "L2TP" Verbindung über Kommandozeile konfigurieren möchte müsste folgendes ausgeführt werden:

       # config vpn l2tp
       # set eip [IPv4 Start IP des Ranges für IP Pool]
       # set sip [IPv4 End IP des Ranges für IP Pool]
       # set status enable
       # set usrgrp [Name der entsprechenden User Gruppe für L2TP]
       # end
       
       # config vpn ipsec phase1
       # edit [Name der Phase1 des Policy Based VPN]
       # set type dynamic
       # set interface [Name des Interfaces auf dem verbunden wird zB "wan1"]
       # set dhgrp 1 2 5 14
       # set proposal 3des-sha1 aes128-sha1
       # set localid [Name der LocalID zB Name der Phase1"
       # set dpd disable
       # set psksecret [Preshared Secret]
       # next
       # end
       
       # config vpn ipsec phase2
       # edit [Name der Phase1 des Policy Based VPN]
       # set phase1name [Name der Phase1 des Policy Based VPN]
       # set proposal 3des-sha1 aes128-sha1
       # set pfs disable
       # set keylife-type both
       # set encapsulation transport-mode
       # set l2tp enable
       # set keylifeseconds 3600
       # set keylifekbs 250000
       # next
       # end

Wird L2TPv3 IPSec auf einer Fortigate unterstützt/supported?

L2TPv3 wird auf einer FortiGate "nicht" unterstützt und ist eine Weiterentwicklung von L2TP, das eine Alternative zum MPLS Protokoll zur Verkapselung von verschiedenen Protokollen auf der Ebene 2 des OSI-Modells darstellt. Es arbeitet wie L2TPv2 über UDP oder andere PSNs (Packet Switched Networks), aber kann auch direkt IP nutzen. Außerdem können auch andere Protokolle der Sicherungsschicht als PPP getunnelt werden. Die Spezifikation ist in RFC-3931 definiert. L2TPv3 kann als eine abgespeckte Version von MPLS angesehen werden. Ein nicht eingebautes Feature stellt z.B. das Traffic Engineering dar. Weitere Informationen findet man unter folgendem Link:

       https://de.wikipedia.org/wiki/Layer_2_Tunneling_Protocol#L2TP_Version_3

Wie kann ich ein Debugging für eine L2TP IPSec Verbindung auf einer FortiGate ausführen?

Wenn für eine "L2TP" Verbindung resp. Phase1 und 2 eine Debugging Mode ausgeführt werden soll muss folgendes durchgeführt werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application l2tp -1 
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable 
       NOTE Wenn der Deamon für "L2TP" neu gestartet werdensoll da eine Modifikatione in der Konfiguration
            durchgeführt wurde kann folgendes ausgeführt werden:
            
            # diagnose test application l2tpcd 99

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

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

Nachfolgend ein Beispiel einer erfolgreichen "L2TP" Verbindung anhand des Debugging für "l2tp" sowie "ike":

       VERBINDUNG STARTEN
       
       # diagnose debug reset
       
       # diagnose debug application l2tp -1
       # diagnose debug enable
       
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Identity Protection id=3bd31e3b4c673fb4/0000000000000000 len=384
       ike 0: in 3BD31E3B4C673FB400000000000000000110020000000000000001800D0000D40000000100000001000000C801010005030000280101000080010007800E0100800200028004001480030001800B0001000000400007080030000280201000080010007800E0080800200028004001380030001800B0001000C000400007080030000280301000080010007800E0100800200028004000E80030001800B0001000000400007080030000240401000080010005800200028004000E80030001800B0001000C000400007080000000240501000080010005800200028004000280030001800B0001000C0004000070800D0000181E2B516905991C7D7C96FCBFB587E461000000080D0000144A131C81070358455C5728F20E95452F0D00001490CB80913EBB696E086381B5EC427B1F0D0000144048B7D56EBCE88525E7DE7F00D6C2D30D000014FB1DE3CDF341B7EA16B7E5BE0855F1200D00001426244D38EDDB61B3172A36E3D0CFB81900000014E3A5966A76379FE707228231E5CE8652
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: responder: main mode get 1st message...
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID MS NT5 ISAKMPOAKLEY 1E2B516905991C7D7C96FCBFB587E46100000008
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID RFC 3947 4A131C81070358455C5728F20E95452F
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID draft-ietf-ipsec-nat-t-ike-02\n 90CB80913EBB696E086381B5EC427B1F
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID FRAGMENTATION 4048B7D56EBCE88525E7DE7F00D6C2D3
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID unknown (16): FB1DE3CDF341B7EA16B7E5BE0855F120
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID unknown (16): 26244D38EDDB61B3172A36E3D0CFB819
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: VID unknown (16): E3A5966A76379FE707228231E5CE8652
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: negotiation result
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: proposal id = 1:
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:   protocol id = ISAKMP:
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:      trans_id = KEY_IKE.
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:      encapsulation = IKE/none
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:         type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:         type=OAKLEY_HASH_ALG, val=SHA.
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:         type=AUTH_METHOD, val=PRESHARED_KEY.
       ike 0:3bd31e3b4c673fb4/0000000000000000:13:         type=OAKLEY_GROUP, val=2048.
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: ISAKMP SA lifetime=28800
       ike 0:3bd31e3b4c673fb4/0000000000000000:13: SA proposal chosen, matched gateway ipsec-l2tp
       ike 0:ipsec-l2tp:13: selected NAT-T version: RFC 3947
       ike 0:ipsec-l2tp:13: cookie 3bd31e3b4c673fb4/6d049cce9a23138a
       ike 0:ipsec-l2tp:13: out 3BD31E3B4C673FB46D049CCE9A23138A0110020000000000000000A40D00003800000001000000010000002C01010001000000240401000080010005800200028004000E80030001800B0001000C0004000070800D0000144A131C81070358455C5728F20E95452F0D000014AFCAD71368A1F1C96B8696FC775701000D0000148299031757A36082C6A621DE00050124000000144048B7D56EBCE88525E7DE7F00D6C2D3
       ike 0:ipsec-l2tp:13: sent IKE msg (ident_r1send): 193.193.135.66:500->193.193.135.67:500, len=164, id=3bd31e3b4c673fb4/6d049cce9a23138a
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Identity Protection id=3bd31e3b4c673fb4/6d049cce9a23138a len=388
       ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A0410020000000000000001840A00010437C4B027AF9F64B86B474DD68F8CDCB55B6054AD2BC62B232EED3178776F11BDDE3A5504E34FA05266B6F957725CFAB67EC8C3D0C45ECCAAAF1C735E42AC3D5878290323F7E602CCB760CE09F68CDA5F0C541F5C373126E4E0AAD2E29D00A3C92391AE0809504E883D68D9B57070D5C9D2000762934EA79473EA88E3B5BA722AC4F0004E6337E8F79CDBC0FBDCA0D02C91F8E29B8037C6856B8C4E84B6C9438692344AB46F6EB0858070FE3B68E126F3E6315269A76921D11460BB1EE0EA10EE4FD058B0E01DB3F8893071C5299BCE7425AA27E417FD0FA821B8EBA727BB2FA3524391630D64EFA0123EE336C978037D901EC2019F623DB881AD2BD7006B6782140000341FFDAB9C35462A582B3ECBC1DD8BEAE250C7469F509CB0AA9A446E2DC2814350F4C3322A2A3E67F68235D0CED120D0D8140000187EA7844D04FABC1D8FD254A28D4F00E72218511000000018A7C95E50A591EFEB864404BDAFF514FE7FE62851
       ike 0:ipsec-l2tp:13: responder:main mode get 2nd message...
       ike 0:ipsec-l2tp:13: NAT not detected 
       ike 0:ipsec-l2tp:13: out 3BD31E3B4C673FB46D049CCE9A23138A0410020000000000000001640A000104020D3831C433A61449E89ADC6839CCA74E0D650117189F912BD1AE6BA225CE8F1C8C50786DD85111F7B1FC3334C5BF6C502396949B5461824D440111C38CB160E2B2264B359E03612AFCF5B09482DB9210025D7B45B298D6A4DF9263B788844F0065CE66B943C1C4D9BC9B41AA5BBB20449BAB03AF8A322DE6EBFD02D77F7920A6C6C1245C713E2DC8F91036CBE0DB8DC567F3329FAD8FEBDD9C0B85935779E1ACDC9631032BD66DA780A32AEEC1904003CBBC05B2013F4D27B10CF32E9F8E5FCD774384ED00F3FC2201C552606DF6D0E88F6D645F3ABA8DDDEA41B535E63CB16150BFDDB438516E8B707BC8094BC813C68B8BDEA2CA6CC9FE5F5C1A6920600C14000014764821B32E0D83B4D7B82BEA3246D8B914000018A7C95E50A591EFEB864404BDAFF514FE7FE62851000000187EA7844D04FABC1D8FD254A28D4F00E722185110
       ike 0:ipsec-l2tp:13: sent IKE msg (ident_r2send): 193.193.135.66:500->193.193.135.67:500, len=356, id=3bd31e3b4c673fb4/6d049cce9a23138a
       ike 0:ipsec-l2tp:13: ISAKMP SA 3bd31e3b4c673fb4/6d049cce9a23138a key 24:9573946379AAC144B11098E29A3CFBBE477437AA288B4BD1
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Identity Protection id=3bd31e3b4c673fb4/6d049cce9a23138a len=68
       ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A0510020100000000000000445AC59A20DF5B43DEFBA2E1BA4BEDD20583ABF72F94416546411A9926820A5974D4A5BEACDCAA1F25
       ike 0:ipsec-l2tp:13: responder: main mode get 3rd message...
       ike 0:ipsec-l2tp:13: dec 3BD31E3B4C673FB46D049CCE9A23138A0510020100000000000000440800000C01000000C1C187430000001845C9FB9F09E42AF4E1BE1AD73D32421566BB977800000000
       ike 0:ipsec-l2tp:13: PSK authentication succeeded
       ike 0:ipsec-l2tp:13: authentication OK
       ike 0:ipsec-l2tp:13: enc 3BD31E3B4C673FB46D049CCE9A23138A051002010000000000000046080000120200000069707365632D6C32747000000018B0F445E77B4277AD162C7835D6F4CE9A3536139C
       ike 0:ipsec-l2tp:13: out 3BD31E3B4C673FB46D049CCE9A23138A05100201000000000000004C21B4D86F53FAEBD7E2F7480469ACF3055333D64FED11E4B6F0C803D4A5AA490B304E0A0556E4418973F37F2DAE29852E
       ike 0:ipsec-l2tp:13: sent IKE msg (ident_r3send): 193.193.135.66:500->193.193.135.67:500, len=76, id=3bd31e3b4c673fb4/6d049cce9a23138a
       ike 0:ipsec-l2tp:13: established IKE SA 3bd31e3b4c673fb4/6d049cce9a23138a
       ike 0:ipsec-l2tp: adding new dynamic tunnel for 193.193.135.67:500
       ike 0:ipsec-l2tp_0: added new dynamic tunnel for 193.193.135.67:500
       ike 0:ipsec-l2tp_0:13: no pending Quick-Mode negotiations
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Quick id=3bd31e3b4c673fb4/6d049cce9a23138a:00000001 len=308
       ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000001343CC4ECDBF4BD68977AB494C9D038A9D1172FA1B228EF3DD766F1F5F192A541792443E698AA8709904CA642F31E469F64B46FD6D9F99A77214BF11290300AAD38702B1594AD36C1896D9D123D502560E2C1188D6A4EBAAE85ED98260DD2C406C72F7E854E23BDA04B35A447D534CD84DE1A2C0B738AF078281022C69DA5ABD49A16F0F9BC1C059FFB29F5476521E54B4BF04693B49D5AC8F0370990FEBF3FD26DBF9527DCBFCD75818F536C71B580F29772ADA3848FBA076BB6F1578998CDB02DFDBD8146B9D34D78CD9267926993C76673450378A88791E0B7A25824E2D565306167DBBE102CCB816C72450BD219D1BB9361A877C3A34FFC583E0BAD821AA1EB744C9F2E489560C3C82366D27D7A1AE43E60D001464D1230
       ike 0:ipsec-l2tp_0:13:4: responder received first quick-mode message
       ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000001340100001811FDC78DFE2364F375B9602EB4ED71DB3C4391940A0000AC0000000100000001020000380103040118A94F220000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D090020000340203040118A94F2200000028010300008004000280050002800100010002000400000E1080010002000200040003D090000000340303040118A94F2200000028010200008004000280050002800100010002000400000E1080010002000200040003D0900500003490AE6EE410F0B8A0F89CA4D38F6AD04222E24A23DD195F9251CE65F801C33B36E0FB6E9DE5E252D333EF4799B4045CDA0500000C011106A5C1C187430000000C011106A5C1C187420000000000000000
       ike 0:ipsec-l2tp_0:13:4: peer proposal is: peer:17:193.193.135.67-193.193.135.67:1701, me:17:193.193.135.66-193.193.135.66:1701
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: trying
       ike 0:ipsec-l2tp_0:13:4: trancreate_new_tunnel()-91: Allocated new Tunnel id=9, total count = 1 
       handle_control_packet()-551: 
       check_control_hdr()-173: check_control_hdr: control, peer_call_id = 0, Ns = 0, Nr = 0
       check_control_hdr()-185: Updated control rec seqno. Value is now 1
       __avp_protocol_version()-233: peer is using version 8, revision 128.
       __avp_framing_caps()-248: supported peer framing:  
       __avp_bearer_caps()-264: supported peer bearers:
       __avp_firmware_rev()-279: peer's firmware version 2048
       _avp_hostname()-295: Peer's hostname is 'SatellitePro770'
       __avp_vendor()-310: peer's vendor 'Microsoft'
       __avp_assigned_tunnel()-339: peer's tunnel 5
       avp_receive_window_size()-359: peer's RWS 8.
       run_ctrl_state_machine()-91: run_ctrl_state_machine: message type is (1).  Tunnel is 5, call is 0.
       run_ctrl_state_machine()-97: ** run_ctrl_state_machine - SCCRQ **
       run_ctrl_state_machine()-108: Rule 193.193.135.67 to 193.193.135.67avp_put_hostname()-84: Sent the host name = 193.1 
       run_ctrlavp_handler()-72monitor_ctrl_pkt_xmit()-94: 
       monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
       monitor_ctrl_pkt_xmit()-94: 
       monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
       sport mode, override with 17:193.193.135.66-193.193.135.66:1701 -> 17:193.193.135.67-193.193.135.67:0
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: matched phase2
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: dynamic client
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: my proposal:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: proposal id = 1:        
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:   protocol id = IPSEC_ESP:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      trans_id = ESP_3DES
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      trans_id = ESP_AES (key_len = 128)
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: incoming proposal:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: proposal id = 1:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:   protocol id = IPSEC_ESP:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      trans_id = ESP_AES (key_len = 128)
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: negotiation result
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: proposal id = 1:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:   protocol id = IPSEC_ESP:
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      trans_id = ESP_AES (key_len = 128)
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: using transport mode.
       ike 0:ipsec-l2tp_0:13: enc 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000000A4010000185624D8349FF1B2CF42B23112A0F59C05444C30310A00004400000001000000010000003801030401658C806F0000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D09005000014D456FBE1630773A0B30A30E4358DFBAD0500000C011106A5C1C187430000000C011106A5C1C18742
       ike 0:ipsec-l2tp_0:13: out 3BD31E3B4C673FB46D049CCE9A23138A0810200100000001000000AC2E3A6CF7C38C9C6A35518A7AAC801CC9D13D630A238309E0B4A5B278A296B15A5892FAC8D7CFBBF4CD13B627156111FE9ED171396D5CE64A0E01F88A497DECFD6D7C14B1EC09305BD919228EB6C9BDB02D384DA32D7C33BF19E00ACAA81B72D47F4020415DF10B9991DA114857605B874604C10DE75BBA9A0B9AC6BA20E43A13840892F249EAB7ED4C1121C7A99B3B00
       ike 0:ipsec-l2tp_0:13: sent IKE msg (quick_r1send): 193.193.135.66:500->193.193.135.67:500, len=172, id=3bd31e3b4c673fb4/6d049cce9a23138a:00000001
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Quick id=3bd31e3b4c673fb4/6d049cce9a23138a:00000001 len=60
       ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A08102001000000010000003CA771E1353C0D69A77799E0B70C8A0D72D4C9E6454706A61EF7B450B883DA644F
       ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A08102001000000010000003C00000018A89375EB213244A17A91AE6937F082FCF6DB40AF0000000000000000
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: replay protection enabled
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: SA life soft seconds=3585.
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: SA life hard seconds=3600.
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: set sa life soft/hard kbytes=249488/250000.
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: IPsec SA selectors #src=1 #dst=1
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: src 0 7 17:193.193.135.66-193.193.135.66:1701
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: dst 0 7 17:193.193.135.67-193.193.135.67:0
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: add dynamic IPsec SA selectors
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: tunnel 1 of VDOM limit 0/0
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: add IPsec SA: SPIs=658c806f/18a94f22
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: IPsec SA dec spi 658c806f key 16:FF99BC6BB64447317EB945EE89621FD8 auth 20:742DFE688B8A95D9C4415264AE9DC7D93FF9BFA8
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: IPsec SA enc spi 18a94f22 key 16:00418CCFAA5F33B2636F969A43FFE559 auth 20:9ACEC891E841C6B8E258847655C8B79F1131E200
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: transport mode encapsulation is enabled
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: added IPsec SA: SPIs=658c806f/18a94f22
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: sending SNMP tunnel UP trap
       ike 0: unknown SPI 658c806f 5 193.193.135.67:0->193.193.135.66
       ike 0: found ipsec-l2tp_0 193.193.135.66 5 -> 193.193.135.67:500
       ike 0:ipsec-l2tp_0:13:ipsec-l2tp:4: ignoring invalid SPI 658c806f, IPsec SA just negotiated
       ike 0: IP 198.18.4.129 (30) is down
       ike shrank heap by 122880 bytes
       
       send_hello()-33: L2TP: send Hello for tunnel 5 
       schedule_event()-94: 
       schedule_event()-100: Message due 1237048, now = 1236948
       start_hello_timer()-59: L2TP: starting Hello timer for tunnel 5, next in 60 seconds.
       schedule_event()-94: 
       schedule_event()-100: Message due 1242948, now = 1236948
       handle_control_packet()-551: 
       handle_control_packet()-580: L2TP received control ZLB.
       monitor_ctrl_pkt_xmit()-94: 
       monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
       
       send_hello()-33: L2TP: send Hello for tunnel 5 
       schedule_event()-94: 
       schedule_event()-100: Message due 1237048, now = 1236948
       start_hello_timer()-59: L2TP: starting Hello timer for tunnel 5, next in 60 seconds.
       schedule_event()-94: 
       schedule_event()-100: Message due 1242948, now = 1236948
       handle_control_packet()-551: 
       handle_control_packet()-580: L2TP received control ZLB.
       monitor_ctrl_pkt_xmit()-94: 
       monitor_ctrl_pkt_xmit()-116: L2TP: Peer ack'ed control packet.
       
       VERBINDUNG BEENDEN
       ike 0: IP 198.18.4.129 (30) is down
       handle_control_packet()-551: 
       check_control_hdr()-173: check_control_hdr: control, peer_call_id = 1, Ns = 4, Nr = 3
       check_control_hdr()-185: Updated control rec seqno. Value is now 5
       __avp_assigned_call()-381: close call id 1
       run_ctrl_state_machine()-91: run_ctrl_state_machine: message type is (14).  Tunnel is 5, call is 1.
       run_ctrl_state_machine()-333: ** run_ctrl_state_machine - CDN **
       run_ctrl_state_machine()-374: Connection closed to 193.193.135.67, serial 0 ()
       handle_network_packet()-274: Sending a ZLB to acknowledge last message
       send_zlb()-73: ** send_zlb **
       l2tp_handle_calls()-312: closing The master call
       close_call()-410: ** close_call **
       close_call()-425: Closing call 10
       free_call()-211: ** free_call **
       l2tp_vdbind_msg_handler()-87: del_vdbind message:vd=root 0 devindex=30 ppp1
       handle_control_packet()-551: 
       check_control_hdr()-173: check_control_hdr: control, peer_call_id = 1, Ns = 5, Nr = 3
       check_control_hdr()-185: Updated control rec seqno. Value is now 6
       __avp_assigned_tunnel()-339: peer's tunnel 5
       avp_result_code()-581: peer closing for reason 6, error = 0 ()
       run_ctrl_state_machine()-91: run_ctrl_state_machine: message type is (4).  Tunnel is 5, call is 1.
       run_ctrl_state_machine()-187: ** run_ctrl_state_machine - StopCCN **
       run_ctrl_state_machine()-218: Connection closed to 193.193.135.67, port 1701 (), Local: 9, Remote: 5
       handle_network_packet()-274: Sending a ZLB to acknowledge last message
       send_zlb()-73: ** send_zlb **
       l2tp_handle_calls()-299: closing down tunnel 9
       close_tunnel()-446: ** close_tunnel **
       close_tunnel()-459: Closing and destroying tunnel 9
       L2TPD 26: 461:Client 193.193.135.67 control connection (id 9) finished
       close_calls_for_tunnel()-100: 
       free_call()-211: ** free_call **
       free_tunnel()-117: Done close_calls_for_tunnel 
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Informational id=3bd31e3b4c673fb4/6d049cce9a23138a:f43a1269 len=76
       ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A08100501F43A12690000004C9336FA63AEE33FC452C3458BDA9635882FA5C562512FE20B1817986F23B33AE3C36D1B1AE1A2CA73BD85EAA48BC3768D
       ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A08100501F43A12690000004C0C000018368BC53A5E50D742437F395AAB12C5C560F21A8100000010000000010304000118A94F220000000000000000
       ike 0:ipsec-l2tp_0:13: recv IPsec SA delete, spi count 1
       ike 0:ipsec-l2tp_0: deleting IPsec SA with SPI 18a94f22
       ike 0:ipsec-l2tp_0:ipsec-l2tp: deleted IPsec SA with SPI 18a94f22, SA count: 0
       ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap for ipsec-l2tp
       ike 0:ipsec-l2tp_0:ipsec-l2tp: delete
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Informational id=3bd31e3b4c673fb4/6d049cce9a23138a:022bd834 len=84
       ike 0: in 3BD31E3B4C673FB46D049CCE9A23138A08100501022BD8340000005462DFFDD9EE8B3C5509C70B15F49A89D81B9617500F11FE2949C7D7D2462DFD7E73CDC9703621AFF3D60DED96A67FC2FFCF37B68D5DEB850B
       ike 0:ipsec-l2tp_0:13: dec 3BD31E3B4C673FB46D049CCE9A23138A08100501022BD834000000540C000018CD2CC02F0F240B28E8BD4492D683D6E28604E2F10000001C00000001011000013BD31E3B4C673FB46D049CCEA23138A00000000
       ike 0:ipsec-l2tp_0:13: recv ISAKMP SA delete 3bd31e3b4c673fb4/6d049cce9a23138a
       ike 0:ipsec-l2tp_0: deleting
       ike 0:ipsec-l2tp_0: flushing 
       ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap
       ike 0:ipsec-l2tp_0: flushed 
       ike 0:ipsec-l2tp_0: delete dynamic
       ike 0:ipsec-l2tp_0: deleted
       
       # diagnose debug disable
       # diagnose debug reset
       VERBINDUNG STARTEN
       
       # diagnose debug reset
       # diagnose debug application ike -1
       # diagnose debug enable
       
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Identity Protection id=622d112386920eab/0000000000000000 len=384
       ike 0: in 622D112386920EAB00000000000000000110020000000000000001800D0000D40000000100000001000000C801010005030000280101000080010007800E0100800200028004001480030001800B0001000C000400007080030000280201000080010007800E0080800200028004001380030001800B0001000C000400007080030000280301000080010007800E0100800200028004000E80030001800B0001000C000400007080030000240401000080010005800200028004000E80030001800B0001000C000400007080000000240501000080010005800200028004000280030001800B0001000C0004000070800D0000181E2B516905991C7D7C96FCBFB587E461000000080D0000144A131C81070358455C5728F20E95452F0D00001490CB80913EBB696E086381B5EC427B1F0D0000144048B7D56EBCE88525E7DE7F00D6C2D30D000014FB1DE3CDF341B7EA16B7E5BE0855F1200D00001426244D38EDDB61B3172A36E3D0CFB81900000014E3A5966A76379FE707228231E5CE8652
       ike 0:622d112386920eab/0000000000000000:12: responder: main mode get 1st message...
       ike 0:622d112386920eab/0000000000000000:12: VID MS NT5 ISAKMPOAKLEY 1E2B516905991C7D7C96FCBFB587E46100000008
       ike 0:622d112386920eab/0000000000000000:12: VID RFC 3947 4A131C81070358455C5728F20E95452F
       ike 0:622d112386920eab/0000000000000000:12: VID draft-ietf-ipsec-nat-t-ike-02\n 90CB80913EBB696E086381B5EC427B1F
       ike 0:622d112386920eab/0000000000000000:12: VID FRAGMENTATION 4048B7D56EBCE88525E7DE7F00D6C2D3
       ike 0:622d112386920eab/0000000000000000:12: VID unknown (16): FB1DE3CDF341B7EA16B7E5BE0855F120
       ike 0:622d112386920eab/0000000000000000:12: VID unknown (16): 26244D38EDDB61B3172A36E3D0CFB819
       ike 0:622d112386920eab/0000000000000000:12: VID unknown (16): E3A5966A76379FE707228231E5CE8652
       ike 0:622d112386920eab/0000000000000000:12: negotiation result
       ike 0:622d112386920eab/0000000000000000:12: proposal id = 1:
       ike 0:622d112386920eab/0000000000000000:12:   protocol id = ISAKMP:
       ike 0:622d112386920eab/0000000000000000:12:      trans_id = KEY_IKE.
       ike 0:622d112386920eab/0000000000000000:12:      encapsulation = IKE/none
       ike 0:622d112386920eab/0000000000000000:12:         type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.
       ike 0:622d112386920eab/0000000000000000:12:         type=OAKLEY_HASH_ALG, val=SHA.
       ike 0:622d112386920eab/0000000000000000:12:         type=AUTH_METHOD, val=PRESHARED_KEY.
       ike 0:622d112386920eab/0000000000000000:12:         type=OAKLEY_GROUP, val=2048.
       ike 0:622d112386920eab/0000000000000000:12: ISAKMP SA lifetime=28800
       ike 0:622d112386920eab/0000000000000000:12: SA proposal chosen, matched gateway ipsec-l2tp
       ike 0:ipsec-l2tp:12: selected NAT-T version: RFC 3947
       ike 0:ipsec-l2tp:12: cookie 622d112386920eab/82890a11b0e6719a
       ike 0:ipsec-l2tp:12: out 622D112386920EAB82890A11B0E6719A0110020000000000000000A40D00003800000001000000010000002C01010001000000240401000080010005800200028004000E80030001800B0001000C0004000070800D0000144A131C81070358455C5728F20E95452F0D000014AFCAD71368A1F1C96B8696FC775701000D0000148299031757A36082C6A621DE00050124000000144048B7D56EBCE88525E7DE7F00D6C2D3
       ike 0:ipsec-l2tp:12: sent IKE msg (ident_r1send): 193.193.135.66:500->193.193.135.67:500, len=164, id=622d112386920eab/82890a11b0e6719a
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Identity Protection id=622d112386920eab/82890a11b0e6719a len=388
       ike 0: in 622D112386920EAB82890A11B0E6719A0410020000000000000001840A00010400D2D361DFD71F79B84F457F482771727C31DF91846DE9A316369439E230769914E717897ABA5FCD637E50858C2C1C942438CB46425F0E2866CBDF5A5B83E3496ACA886EBB0315370474571D0848668BB31D52731630671BB0C67209FA02A9755B8BEC743F7A5224E87CA02E7F7AB0CF4A4499FABE449C7627F6B48B0ABCD7D870BF7831BB74AFB9318C516F89A0EE990CBAD996FB1B4CF99C9FA0085C1EF6C658B943F2459A6FB0DEF73070AC0D1F94CE2869021292410976942D38A5359D7D77A302DEE5236E1386558DEEDBFC0382CD59121D04AE63C83C98896D0780FE653F67AF7342FD62B0D8996D52DDD3AC9388FFC0F879152AE3B230B78B2A24356A14000034595D169F928B002D58CC3AF8860BC094A326A273113256D128690F5CE9351C32DA9C32F7D92AB125F4F2637D098D6861140000186D227FBE6C5B82736CD3B473F3B9BC67A93A833300000018A00F6ED1DF05508A27D3B1D79C71D707AEE56A6B
       ike 0:ipsec-l2tp:12: responder:main mode get 2nd message...
       ike 0:ipsec-l2tp:12: NAT not detected 
       ike 0:ipsec-l2tp:12: out 622D112386920EAB82890A11B0E6719A0410020000000000000001640A0001040BAF8E272033202823B8E9EB29F6EC26D28C6741616289DEA59301AE4204C31E3D28CA98AB064CBF8A9082C77B660AA845CDEF3891472A4921BCFE1A5D030ACAED376B5A93A1B5148A0FA60349BF3E221DC6F4C6C93935030AD7905756EA6B29E3998F511D49CA66D443C5B785956F5D2AEE09FACCA3E87F48561E49DB3842C2030EFAEA6028229DCFBBE66B8B46B7470AFB7D1A9BB1AB8E3155A71139058CFF9B6A2A47C4983E41CFD6891AD12E3D231B61A8C036397A3837ECABEB3320D2A1A32290E1F07C5819835107E57337336835372B647E3E2F6F0DCBB07354147305AC11D78EC93DEFBB6B6AF1695F3CB211643AC1B4B40E90FE7D7B396477ACC88F140000141A96B745FD3004E4FA1F3B7774688A8214000018A00F6ED1DF05508A27D3B1D79C71D707AEE56A6B000000186D227FBE6C5B82736CD3B473F3B9BC67A93A8333
       ike 0:ipsec-l2tp:12: sent IKE msg (ident_r2send): 193.193.135.66:500->193.193.135.67:500, len=356, id=622d112386920eab/82890a11b0e6719a
       ike 0:ipsec-l2tp:12: ISAKMP SA 622d112386920eab/82890a11b0e6719a key 24:8BB676EDAF67D6B1507AA56F79E8C76FAFBFCBC615BB6C57
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Identity Protection id=622d112386920eab/82890a11b0e6719a len=68
       ike 0: in 622D112386920EAB82890A11B0E6719A051002010000000000000044CAE9716F333EF834B2C25392998B0BDF8117E7B4709D683C8586B6A167C2A637AE34BE5206F01D42
       ike 0:ipsec-l2tp:12: responder: main mode get 3rd message...
       ike 0:ipsec-l2tp:12: dec 622D112386920EAB82890A11B0E6719A0510020100000000000000440800000C01000000C1C1874300000018849275683995E0DAC92CFC23558FF836F6002A6E00000000
       ike 0:ipsec-l2tp:12: PSK authentication succeeded
       ike 0:ipsec-l2tp:12: authentication OK
       ike 0:ipsec-l2tp:12: enc 622D112386920EAB82890A11B0E6719A051002010000000000000046080000120200000069707365632D6C32747000000018358811170A2C3B8E0FA0BCDBA685C073C45B5C0E
       ike 0:ipsec-l2tp:12: out 622D112386920EAB82890A11B0E6719A05100201000000000000004C0B7C17447CF0E75452F13BE3B9DCB9602316AD0C23CDF55F2EBB96CDA0D75C95F5705AD7BB23C2E053B18D80BFE8BFF9
       ike 0:ipsec-l2tp:12: sent IKE msg (ident_r3send): 193.193.135.66:500->193.193.135.67:500, len=76, id=622d112386920eab/82890a11b0e6719a
       ike 0:ipsec-l2tp:12: established IKE SA 622d112386920eab/82890a11b0e6719a
       ike 0:ipsec-l2tp: adding new dynamic tunnel for 193.193.135.67:500
       ike 0:ipsec-l2tp_0: added new dynamic tunnel for 193.193.135.67:500
       ike 0:ipsec-l2tp_0:12: no pending Quick-Mode negotiations
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Quick id=622d112386920eab/82890a11b0e6719a:00000001 len=308
       ike 0: in 622D112386920EAB82890A11B0E6719A08102001000000010000013484FC3439E9C63DF19AE6EBB5B1A37180C3801539091C8E571B1EE1CD1E384EBA8ABE01AB78F2D537829D9FA5A553FBDEBCE35C51988E5C6214803A02881EE01F86C01F9823414C05C5546F1DCF15AA7E0FE7E68D9D8DA23EA3339F7FEF7B9050C6A487826E1987D91C5783EB4BEDC0760372693C4194B7C91212C016340694321C6CD8207FE0C9A8A95169E31BBAE1869DCD924223449C469760BD76FC536A995ABDBCAD6AA5E8ADD76BB61B40BCC6D66356CD1A169E5D663E37D78ACAD9BFD98A409589F9E374F668A073830E52FC846806AF811E09C1C97671EBCC346606127C6D024A1247032EB7FDAEC47AC8531093AD12EF8969010D54B247E8AD7567194DAD08C2B724663CBB949A822453CC1FC8F1AC01AE46A1CA
       ike 0:ipsec-l2tp_0:12:3: responder received first quick-mode message
       ike 0:ipsec-l2tp_0:12: dec 622D112386920EAB82890A11B0E6719A08102001000000010000013401000018839626BA24EFE558DB5D3DEE30F99C2B3DAE54A40A0000AC0000000100000001020000380103040179247F5D0000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D090020000340203040179247F5D00000028010300008004000280050002800100010002000400000E1080010002000200040003D090000000340303040179247F5D00000028010200008004000280050002800100010002000400000E1080010002000200040003D090050000347E0F9F3465181420B56D51A1BF311AC839DAF8A3F2190C8F9F6713B0AA61E961D0E59C4732DF0B855D2527BDF9C8F25A0500000C011106A5C1C187430000000C011106A5C1C187420000000000000000
       ike 0:ipsec-l2tp_0:12:3: peer proposal is: peer:17:193.193.135.67-193.193.135.67:1701, me:17:193.193.135.66-193.193.135.66:1701
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: trying
       ike 0:ipsec-l2tp_0:12:3: transport mode, override with 17:193.193.135.66-193.193.135.66:1701 -> 17:193.193.135.67-193.193.135.67:0
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: matched phase2
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: dynamic client
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: my proposal:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: proposal id = 1:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:   protocol id = IPSEC_ESP:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      trans_id = ESP_3DES
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      trans_id = ESP_AES (key_len = 128)
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: incoming proposal:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: proposal id = 1:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:   protocol id = IPSEC_ESP:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      trans_id = ESP_AES (key_len = 128)
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: negotiation result
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: proposal id = 1:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:   protocol id = IPSEC_ESP:
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      trans_id = ESP_AES (key_len = 128)
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:      encapsulation = ENCAPSULATION_MODE_TRANSPORT
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3:         type = AUTH_ALG, val=SHA1
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: using transport mode.
       ike 0:ipsec-l2tp_0:12: enc 622D112386920EAB82890A11B0E6719A0810200100000001000000A40100001821EE756AD2264F00CE6BA1632CEA93F8BE5777B10A00004400000001000000010000003801030401658C806E0000002C010C0000800400028006008080050002800100010002000400000E1080010002000200040003D090050000145B6484AE7D210E1E62B20D9ADDE1D05D0500000C011106A5C1C187430000000C011106A5C1C18742
       ike 0:ipsec-l2tp_0:12: out 622D112386920EAB82890A11B0E6719A0810200100000001000000AC1B887C353B84B1FB5F65213F04F06EF1248E0D6CD1BE1BF02AA75B0FCC62DD5290794B80F063251AB3973AF200900AFFBE11F8343222B6F568074C6A97D3C8BC4C5E3F4CAF114C41EC48B28E0E4B11CE5CD4E993436826828C367026007004D207FC41AB2499B7EEB0C5AFB503AC63AE1623A29B6C274EF3E3A5544C5CC0822948791073A99038356FB79B73B7A2B5
       ike 0:ipsec-l2tp_0:12: sent IKE msg (quick_r1send): 193.193.135.66:500->193.193.135.67:500, len=172, id=622d112386920eab/82890a11b0e6719a:00000001
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Quick id=622d112386920eab/82890a11b0e6719a:00000001 len=60
       ike 0: in 622D112386920EAB82890A11B0E6719A08102001000000010000003CA487CA0980EAE54B3F4579661F3CCDEF664F9CB147AEC486899B4399C1302E0A
       ike 0:ipsec-l2tp_0:12: dec 622D112386920EAB82890A11B0E6719A08102001000000010000003C0000001885D917E15AD341C16CE50A837320FFE2E871DAE20000000000000000
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: replay protection enabled
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: SA life soft seconds=3585.
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: SA life hard seconds=3600.
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: set sa life soft/hard kbytes=249488/250000.
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: IPsec SA selectors #src=1 #dst=1
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: src 0 7 17:193.193.135.66-193.193.135.66:1701
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: dst 0 7 17:193.193.135.67-193.193.135.67:0
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: add dynamic IPsec SA selectors
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: tunnel 1 of VDOM limit 0/0
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: add IPsec SA: SPIs=658c806e/79247f5d
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: IPsec SA dec spi 658c806e key 16:2C3E30B183B935DB335E74AD5235B39F auth 20:8F0480B09EDD77D0043CE088253819CA96505506
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: IPsec SA enc spi 79247f5d key 16:DF6DEFD6172238920E0FA7253CA488BA auth 20:5F024605CEA91B199E7454AA5CC753E126F30E2F
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: transport mode encapsulation is enabled
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: added IPsec SA: SPIs=658c806e/79247f5d
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: sending SNMP tunnel UP trap
       ike 0: unknown SPI 658c806e 5 193.193.135.67:0->193.193.135.66
       ike 0: found ipsec-l2tp_0 193.193.135.66 5 -> 193.193.135.67:500
       ike 0:ipsec-l2tp_0:12:ipsec-l2tp:3: ignoring invalid SPI 658c806e, IPsec SA just negotiated
       ike 0: IP 198.18.4.129 (29) is down
       ike shrank heap by 122880 bytes
       
       VERBINDUNG BBENDEN
       ike 0: IP 198.18.4.129 (27) is down
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Informational id=139f97ee253792aa/fb41cf2ac6ea413a:f02e4234 len=76
       ike 0: in 139F97EE253792AAFB41CF2AC6EA413A08100501F02E42340000004C0181DD9CA0EFB7237D82CB4A64EA5521A81B0680A8BC4A1B296616D9BDDF403403C183C4815A3F40A1EEFC869A60167B
       ike 0:ipsec-l2tp_0:10: dec 139F97EE253792AAFB41CF2AC6EA413A08100501F02E42340000004C0C000018769ABD37E279BD4D0E10C79C78F0F660021369C5000000100000000103040001E06C12220000000000000000
       ike 0:ipsec-l2tp_0:10: recv IPsec SA delete, spi count 1
       ike 0:ipsec-l2tp_0: deleting IPsec SA with SPI e06c1222
       ike 0:ipsec-l2tp_0:ipsec-l2tp: deleted IPsec SA with SPI e06c1222, SA count: 0
       ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap for ipsec-l2tp
       ike 0:ipsec-l2tp_0:ipsec-l2tp: delete
       ike 0: comes 193.193.135.67:500->193.193.135.66:500,ifindex=5....
       ike 0: IKEv1 exchange=Informational id=139f97ee253792aa/fb41cf2ac6ea413a:29cadd72 len=84
       ike 0: in 139F97EE253792AAFB41CF2AC6EA413A0810050129CADD7200000054E57C377F515B71A3AA4C25BC781BC12A6FD34F4252399BB6D2A97619311FD64B2F4003BD78DE2848971B42BE23294DF4B3823E120D68B439
       ike 0:ipsec-l2tp_0:10: dec 139F97EE253792AAFB41CF2AC6EA413A0810050129CADD72000000540C000018F44257616ED28299EB82CDBD53F4F56CF036E2DC0000001C0000000101100001139F97EE253792AAFB41CF2AC6EA413A00000000
       ike 0:ipsec-l2tp_0:10: recv ISAKMP SA delete 139f97ee253792aa/fb41cf2ac6ea413a
       ike 0:ipsec-l2tp_0: deleting
       ike 0:ipsec-l2tp_0: flushing 
       ike 0:ipsec-l2tp_0: sending SNMP tunnel DOWN trap
       ike 0:ipsec-l2tp_0: flushed 
       ike 0:ipsec-l2tp_0: delete dynamic
       ike 0:ipsec-l2tp_0: deleted
       ike shrank heap by 122880 bytes
       
       # diagnose debug disable
       # diagnose debug reset

Wie kann ich auf Windows 7 eine L2TP IPSec Verbindung konfigurieren?

Wenn auf Windows 7 ein "L2TP" Verbindung konfiguriert werden soll muss zu aller Erst kontrolliert werden ob folgende zwei Services aktiviert sind:

       IPSec Richtlinien Agent (IPsec Policy Agent)
       IKE- und AuthIP IPsec-Schlüsselerstellungsmethode (IKE and AuthIP IPsec Keying Modules)

Diese werden benötigt für den "L2TP" Service auf Windows 7. Danach muss folgendes ausgeführt werden:

       Start > Systemsteuerung > Netzwer und Internet > Netzwerk- und Freigabecener > Neue Verbindung oder neues Netzwerk einrichten
       
       Fortinet-1326.jpg
       Fortinet-1327.jpg
       Fortinet-1328.jpg
       Fortinet-1329.jpg
       Fortinet-1330.jpg
       Fortinet-1331.jpg
       Start > Systemsteuerung > Netzwer und Internet > Netzwerk- und Freigabecener > Adaptereinstellungen ändern > [Adapter markeren und rechte Maustaste > Eigenschaften]
       
       Fortinet-1332.jpg
       Fortinet-1333.jpg
       Fortinet-1334.jpg
       Fortinet-1335.jpg
       
       NOTE Wenn bei der Authentifizierung "PAP" gewählt wird so wird die Authentifizierung "clear-text" übertragen. Wenn die 
            Authentifizierung "verschlüsselt" durchgeführt werden soll, so sollte "CHAP" gewählt werden. Wenn hohe Datenvolumen
            übertragen werden in einer L2TP Verbindungen (zB RDP) und im Zusammenhang mit der Authentifizierung auf dem Client 
            "MS-CHAP v2" aktiviert wurde, kann es zu unerwartenden Unterbrüchen kommen. In so einem Fall, bei Benutzung von "MS-CHAP v2",
            sollte dieser Punkt auf dem Client deaktiviert werden. Um diesem Umstand zu umgehen empfehlen wir "CHAP" zu wählen sofern
            eine Verschlüsselung für die Authentifizierung gewünscht ist ansonsten kann "PAP" benutzt werden.
       Fortinet-1336.jpg
       Fortinet-1337.jpg
       Fortinet-1338.jpg
       NOTE Die folgende Position "xxxxx" steht im Zusammenhang mit der "Split Tunneling" Funktion. Wenn "Split Tunneling"
            aktiviert werden soll muss die folgende Position "deaktiviert" werden. Weitere Informationen dazu siehe Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_Windows_7_f.C3.BCr_eine_L2TP_IPSec_Verbindung_ein_.22splitt_tunneling.22_konfigurieren.3F
       
       Fortinet-1339.jpg

Wie kann ich auf Windows 7 für eine L2TP IPSec Verbindung ein "splitt tunneling" konfigurieren?

Wenn auf Windows 7 für "L2TP" ein "Split Tunneling" konfiguriert werden soll muss die folgende Position deaktiviert werden:

       Start > Systemsteuerung > Netzwer und Internet > Netzwerk- und Freigabecener > Adaptereinstellungen ändern > [Adapter markeren und rechte Maustaste > Eigenschaften]
       
       Register "Netzwerk" > Internet Protokoll 4 > Eigenschaften > Erweitert > [Aktivierte die nachfolgende Position]
       
       Fortinet-1339.jpg
       
       NOTE Weitere Informationen um was es sich bei der "Split Tunneling" Funktion handelt siehe nachfolgenden Link:
            
            FortiClient:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Split_Tunneling.22.3F

L2TP IPSec Implementierung/Fehlermeldung Windows 7 "Security layer encountered a processing error during initial negotiations"?

Wenn eine L2TP IPSec Implementierung durchgführt wird und anhand eines Windows 7 Client/Workstation versucht wird zu zugreifen, kommt es zu einer Fehlermeldung auf dem Windows 7 Client/Workstation:

       security layer encountered a processing error during initial negotiations

Der Grund dafür ist die IPSec Phase-2 dh. der Windows 7 Client/Workstation überprüft in der Phase-2 die "lifetime proposal" und wenn diese nicht übereinstimmt wird diese Fehlemeldung ausgegeben! Auf der Seite von Windows 7 ist diese "lifetime proposal" folgendermassen konfiguriert:

       3600s/250000kbps

Um die Konfiguration auf der Fortigate anzupassen führe folgendes durch:

       # config vpn ipsec phase2
       # edit "[Name der Phase 2]"
       # set keylife-type both
       # set keylifekbs 250000
       # set keylifeseconds 3600
       # next
       # end

SSL-VPN

Gibt es für SSL-VPN eine Limitation betreffend "Concurrent Sessions"?

Nein so eine Limitierung betreffend Concurrent Sessions gibt es nicht. Dies bedeutet die "Concurrent Sessions" hängen von den zur Verfügung stehenden System Resourcen ab! Ein Anhaltspunkt betreffend der SSL-VPN Limitierung pro Device bietet das Datasheet des Devices. Diese findet man unter folgenden Artikel:

       Fortinet:ProduktInfo#FortiGate
       
       NOTE In den Datasheets unter "Specifications" findet man zwei Positionen die den Anhaltspunkt
            liefert:
            
            SSL-VPN Throughput
            Concurrent SSL-VPN Users (Recommended Max)

Wie kann ich den Access Port für die SSL-VPN Funktion konfigurieren?

Die SSL-VPN Funktion läuft per Standard unter FortiOS 5.0 auf Port TCP 10443. Unter FortiOS 5.2 läuft dieser Port per Standard auf Port TCP 443. Dieser kann über WebGui und/oder CLI geändert werden. Ueber WebGui kann dies folgendermassen durchgeführt werden:

       FortiOS 5.0
       VPN > SSL > Config > Login Port
       
       FortiOS 5.2
       VPN > SSL > Settings > Listen on Port

Wenn der SSL-VPN Port gesetzt wird, ist zu berücksichtigen, dass dieser nicht bereits anderweitig genutzt wird. Dies bedeutet: Unter FortiOS 5.0 ist der Admin Port für das Management der FortiGate per Standard auf Port TCP 443 gesetzt und wie schon erwähnt der Port für die SSL-VPN Funktion auf TCP 10443. Nun wenn der SSL-VPN Port auf TCP 443 verschoben werden will muss zuerst der Admin Port verschoben werden:

       Admin Port FortiOS 5.0 / 5.2
       # config system global
       # set admin-port [Setze die entsprechende Port Nummer]
       # end
       SSL-VPN Port FortiOS 5.0
       # config system global
       # set sslvpn-sport 10443
       # end
       
       SSL-VPN Port FortiOS 5.2
       # config vpn ssl settings
       # set port [Setze die entsprechende Port Nummer]
       # end
       
       NOTE Unter FortiOS 5.0 wird kein Hinweis über das Web Mgmt. Interface angezeigt wenn der Port bereits
            belegt ist. Ebenfalls konnte die Konfiguration unter FortiOS 5.0 ohne "Warnung" durchgeführt
            werden. Unter FortiOS 5.2 wurde diesem Umstand Rechnung getragen und neu wird seitens Admin Port
            und/oder SSL-VPN Port ein Hinweis angezeigt wenn der Port bereits belegt ist!
            
            Fortinet-1130.jpg
            
            Fortinet-1131.jpg

Welche Vorraussetzungen gelten wenn ich für das SSL-VPN und/oder den Adminstrative Access den gleiche Port vewenden möchte?

Nun wenn eine Public IP auf dem externen Interface exisitert und die FortiGate von extern über den Administrativen Port erreichbar sein soll läuft dieser per Standard auf Port HTTPS 443. Nun möchte man die SSL-VPN Funktion ebenfalls auf diesen Port HTTPS 443 setze ist das technisch gesehen nicht möglich da eine IP und ein Port nur "einmalig" für einen Service vergeben werden kann. Auch wenn nun auf dem externen Interface eine zweite Public IP zB als "secondary" vergeben wird ändert dies nichts an der Situatuion denn der Administrative Access und der SSL-VPN Access stellen zwei System Services die sich "ein" Port nicht teilen können. Also muss konsequent für jeden System Service ein anderer Port vergeben werden zB für Adminstrative Access HTTPS 443 und für SSL-VPN HTTPS 10443. Möchte man dies dennoch bewerkstelligen gilt folgende Grundvorraussetzung damit dies ermöglicht werden kann:

       Zwei Public IP's die zum "externen" Interface der FortiGate geroutet werden. Die einte IP wird als "main" IP auf dem 
       Interface konfiguriert und die zweite IP als "secondary" unter der "main" IP!
       NOTE In dem nachfolgenden Beispiel wird nur gezeigt "wie" die Konfiguration betreffend HTTPS 443 für das SSL-VPN Portal durchzuführen ist.
            Dies bedeutet das Beispiel geht davon aus, dass der Service des SSL-VPN mit allen Komponenten bereits existiert. Siehe auch Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.2_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Wenn die Grundvorraussetzungen gegeben sind, kann die Konfiguration im nachfolgenden Dokument durchgeführt werden. Dabei wird ein "Workaround" angewendet anhand eines "loopback" Interfaces. Auf diesem "loopback" Interface wird ein VIP (Destination NAT) Objekt konfiguriert, dass den Port HTTPS 443 von Extern auf HTTPS 10443 Intern (Port Forward) durchführt da das SSL-VPN nicht auf HTTPS 443 konfiguriert werden kann da es sich um "System Services" handelt und für diese nicht den "gleichen Port" vergeben werden kann:

       Datei:Using-Port-443-for-MGMT-Access-and-SSL-VPN.pdf

Wie kann ich ein SSL-VPN auf einer FortiGate per Kommandozeile (CLI) konfigurieren?

Ausgehend vom nachfolgenden Artikel kann ein SSL-VPN sei es im Tunnel und/oder Web Mode per Mgmt. Web Interface eingerichtet werden:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Es kann jedoch durchaus Sinn ergeben die ganze Konfiguration per Kommandozeile (CLI) durchzuführen. Bei folgendem Beispiel wird ein Tunnel Mode sowie ein Web Portal Mode konfiguriert und zwar in dem Sinne, dass diese seperate gehalten werden. Diese Separierung ist für mehr Transparenz zu empfehlen:

       Konfiguration VPN-SSL Settings FortiOS 5.0
       # config vpn ssl settings
       # set sslvpn-enable enable
       # set dns-server1 [IPv 4 Adresse]
       # set dns-server2 [IPv 4 Adresse]
       # set idle-timeout [Setze das Timeout in Sekunden für das SSL VPN zB "1800"; Standard 0]
       # set tunnel-ip-pools [Definiere das Address Objekt für IPv4 Pool Adressen]
       # set route-source-interface disable
       # set port [Definiere den SSL-VPN TCP Access Port zB 10443]
       # set port-precedence  enable [Bei gleicher Port Belegung SSL-VPN hat höhere Presendence als HTTPS]
       # set auto-tunnel-policy disable
       # set auto-tunnel-static-route disable
       # set source-interface disable
       # end
       
       NOTE Ab FortiOS 5.0 gibt es die Optionen "auto-tunnel-policy und static". Diese zwei Optionen sind per 
            Standard aktiviert und ermöglichen eine Konfiguration OHNE eine Route sowie einer Policy. Aus diesem 
            Grund empfehlen wir diese Optionen zu deaktivieren. Unter FortiOS 5.2 gibt es nur noch die Option 
            "auto-tunnel-static". Weitere detaillierte Informationen findet man im folgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F
       Konfiguration VPN-SSL Settings FortiOS 5.2
       # config vpn ssl settings
       # set dns-server1 [IPv 4 Adresse]
       # set dns-server2 [IPv 4 Adresse]
       # set idle-timeout [Setze das Timeout in Sekunden für das SSL VPN zB "1800"; Standard 0]
       # set tunnel-ip-pools [Definiere das Address Objekt für IPv4 Pool Adressen]
       # set route-source-interface disable
       # set port [Definiere den SSL-VPN TCP Access Port zB 10443]
       # set port-precedence  enable [Bei gleicher Port Belegung SSL-VPN hat höhere Presendence als HTTPS]
       # set auto-tunnel-static-route disable
       # set source-interface disable
       # set source-adddress [Definiere ein entsprechendes Address Objekt oder "all"]
       # set default-portal [Namen des entsprechenden Portals zB "web-acces-only"]
       # config authentication-rule
       # edit [Gebe einen entsprechenden Integer an]
       # set users [Gebe einen entsprechenden User's an]
       # set groups [Gebe eine entsprechende Gruppe an]
       # set portal [Gebe ein entsprechendes Portal an]
       # end
       # end
       
       NOTE Wenn "authentication-rule" nicht konfiguriert wird so gilt folgendes: Per Standard benützen alle
            User das Portal das über die Option "default-portal" definiert wird. Wenn andere Portale als das
            "default-portal" benützt werden sollen müssen diese unter "authentication-rule" definiert werden!
       FortiOS 5.0 WebPortal Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "web-acces-only"]
       # set allow-access [Setze Global welche Funktionen erlaubt sind zB "web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward"]
       # set heading [Gebe den Header an der "im" WebPortal angezeigt wird zB "Welcome to VPN-SSL Portal"]
       # set page-layout [Setze das Layout dh. für Zweispaltig "double-column"]
       # set allow-user-bookmark enable
       # set mac-addr-check disable
       # set auto-prompt-mobile-user-download disable 
       # set limit-user-logins enable 
       # set host-check none 
       # set virtual-desktop disable 
       # set os-check disable 
       # set cache-cleaner disable 
       # config widget
       # edit 1
       # set name "Session Information"
       # set type info
       # set column one
       # set collapse disable
       # next
       # edit 2
       # set name "Connection Tool"
       # set type tool 
       # set column two
       # set collapse disable
       # set allow-apps [Gebe an WAS erlaubt ist im Connection Tool zB "web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward"]
       # next
       # edit 3
       # set name Bookmarks 
       # set type bookmark 
       # set column one 
       # set collapse disable 
       # set allow-apps web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward
       # config bookmarks
       # edit TerminalServerRDPNative
       # set apptyp rdpnative
       # set description "TerminalServerRDPNative"
       # set host [IPv 4 Adresse]
       # set full-screen-mode disable
       # set screen-height 900
       # set screen-width 1600
       # next
       # edit TerminalServerRDP
       # set apptyp rdp
       # set description "TerminalServerRDP"
       # set host [IPv 4 Adresse]
       # set full-screen-mode disable
       # set screen-height 900
       # set screen-width 1600
       # set keyboard-layout de-ch
       # end
       # next
       # edit 5
       # set name "Login History"
       # set type history
       # set column one
       # set collapse disable
       # set display-limit 5
       # next
       # end
       # end
       FortiOS 5.2 WebPortal Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "web-acces-only"]
       # set web-mode enable
       # set tunnel-mode disable
       # set heading [Gebe den Header an der "im" WebPortal angezeigt wird zB "Welcome to VPN-SSL Portal"]
       # set page-layout [Setze das Layout dh. für Zweispaltig "double-column"]
       # set user-bookmark enable
       # set mac-addr-check disable
       # set display-connection-tools enable
       # set display-forticlient-download disable
       # set display-history enable
       # set display-history-limit 10
       # set auto-prompt-mobile-user-download disable 
       # set limit-user-logins enable 
       # set host-check none
       # set virtual-desktop disable 
       # set os-check disable 
       # set cache-cleaner disable
       # set display-status enable 
       # config bookmark-group
       # edit [Name der Kategorie zB URL]
       # config bookmarks
       # edit [Name des Bookmark's]
       # set description [Beschreibung des Bookmark's]
       # set url "http://www.beispiel.ch"
       # end
       # config bookmark-group
       # edit [Name der Kategorie zB RDP]
       # config bookmarks
       # edit [Name des Bookmark's zB RDP]
       # set description [Beschreibung des Bookmark's]
       # set apptype [Application zB rdp; Zur Auswahl stehen citrix, ftp, portforward, rdp, rdpnative, smb, ssh, telnet, vnc, web]
       # set description [Beschreibung]
       # set host [IPv4 Adresse oder FQDN]
       # set screen-height 900
       # set screen-width 1600
       # set keyboard-layout [Keyboard Layout Code zB de-ch]
       # set logon-user [Optional Username]
       # set logon-password [Optional Passwort]
       # end
       # end
       # config bookmark-group
       # edit [Name der Kategorie zB SSH]
       # config bookmarks
       # edit [Name des Bookmark's zB SSH]
       # set description [Beschreibung des Bookmark's]
       # set apptype [Application zB ssh; Zur Auswahl stehen citrix, ftp, portforward, rdp, rdpnative, smb, ssh, telnet, vnc, web]
       # set description [Beschreibung]
       # set host [IPv4 Adresse oder FQDN]
       # end
       # end
       # end
       FortiOS 5.0 / 5.2 TunnelMode Only
       
       Um den TunnelMode erfolgreich zu konfigurieren benötigen wir zwei Objekte dh. eines stellt das
       LAN dar und das Andere den IPv4 IP Pool Range der dem User über DHCP bei der Verbindung zugeordnet
       wird:
       
       Address Objekt FortiOS 5.0 / 5.2
       # config firewall address
       # edit [Name des IPv 4 IP Pool zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set type iprange
       # set visibility enable
       # set start-ip [198.18.1.1]
       # set end-ip [198.18.1.127]
       # next
       # edit [Name des IPv 4 LAN IP Range zB "net-ip-pool-ssl-vpn-198.18.0.0-24"]
       # set type iprange
       # set visibility enable
       # set start-ip [198.18.0.1]
       # set end-ip [198.18.0.254]
       # end
       # end
       FortiOS 5.0 TunnelMode Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "tunnel-acces-only"]
       # set mac-addr-check disable
       # set auto-prompt-mobile-user-download disable 
       # set limit-user-logins enable 
       # set host-check none 
       # set virtual-desktop disable 
       # set os-check disable 
       # set cache-cleaner disable 
       # config widget
       # edit 4
       # set name Tunnel Mode 
       # set type tunnel 
       # set column two 
       # set collapse disable 
       # set split-tunneling enable 
       # set dns-server1 [IPv4 Adresse]
       # set dns-server2 [IPv4 Adresse]
       # set ip-mode range 
       # set ip-pools  [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
       # set save-password [enable | disable]
       # set keep-alive disable [enable | disable] 
       # set auto-connect [enable | disable]
       # next
       # end
       # end
       FortiOS 5.2 TunnelMode Only
       # config vpn ssl web portal
       # edit [Name des Profile zB "tunnel-acces-only"]
       # set tunnel-mode enable
       # set web-mode disable
       # set cache-cleaner disable
       # set host-check none
       # set limit-user-logins enable
       # set mac-addr-check disable 
       # set os-check disable
       # set virtual-desktop disable
       # set ip-mode range 
       # set auto-connect disable 
       # set keep-alive disable 
       # set save-password disable 
       # set ip-pools 
       # set ip-pools [Bestehendes Objekt für die IP Pool IP Range zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set split-tunneling-routing-address [Bestehendes Objekt das die LAN Adresse darstellt zB "net-lan-198.18.0.0-24"]
       # set dns-server1 [IPv4 Adresse]
       # set dns-server2 [IPv4 Adresse]
       # end

Als Letzteres muss der entsprechende IP Pool als statische Route eingetragen werden auf dem "ssl-root" Interface dh.:

       FortiOS 5.0 / 5.2 Routing
       # config router static
       # edit [Integer zB "2"]
       # set comment "SSL-VPN IP-Pool Route]
       # set device "ssl.root"
       # set distance 10
       # set dst [IPv4 IP-Pool Network Range zB "198.18.1.0/25]
       # set priority 0
       # end
       # end

Technisch gesehen ist der WebPortal und/oder TunnelMode bereit für den Gebrauch jedoch benötigen wir nun noch die entsprechenden Rules die den Gebrauch erlauben:

       FortiOS 5.0 Policy
       # config firewall policy
       # edit [Gebe einen Integer für die Policy zB "1"
       # set comments "VPN TunnelMode Access"
       # set srcintf "ssl.root"
       # set dstintf [Setze die Destination die erlaubt ist im TunnelMode zB "internal1"]
       # set srcaddr [Setze die Source resp. das Objekt das die IPv 4 IP Pool Netowrk Range darstellt zB "net-ip-pool-ssl-vpn-198.18.1.0-25"]
       # set dstaddr [Setze die Destination resp. das Objekt das die IPv 4 LAN Network Range darstellt zB "net-lan-198.18.0.0-24"]
       # set action accept
       # set schedule "galways"
       # set service [Setze die Service die erlaubt sind zB "ALL"]
       # set logtraffic all
       # next
       
       # edit [Gebe einen Integer für die Policy zB "2"
       # set comments "VPN Portal Access"
       # set srcintf [Setze das entsprechende Source Interface resp. Interne zB "wan1"]
       # set dstintf [Setze das entsprechende Destination Interface zB "internal1"]
       # set srcaddr [Setze das entsprechende Objekt das die Source darstellt zB "all"]
       # set dstaddr [Setze das entsprechende Objekt das die Destination darstellt zB "net-192.168.1.0-24"]
       # set action ssl-vpn
       # set identity-based enable
       # config identity-based-policy
       # edit [Gebe einen entsprechenden Integer ein zB "1"]
       # set schedule "always"
       # set logtraffic all
       # set groups [Gebe die entsprechende Gruppe an für die Authentifizierung zB "FortiGroup"]
       # set service [Setze den entsprechenden Service der erlaubt ist zB "ALL"]
       # set sslvpn-portal [Gebe das entsprechende WebPortal Profil an zB "web-access-only"]
       # next
       # end
       # next
       FortiOS 5.2 Policy
       # config firewall policy
       # set comments "VPN TunnelMode Access"
       # set srcintf [Setze das entsprechende Source Interface resp. Interne zB "ssl.root"]
       # set dstintf [Setze das entsprechende Destination Interface zB "internal1"]
       # set srcaddr [Setze das entsprechende Objekt das die Source darstellt zB "all"]
       # set dstaddr [Setze das entsprechende Objekt das die Destination darstellt zB "net-192.168.1.0-24"]
       # set action accept
       # set schedule "always"
       # set service "ALL" 
       # set logtraffic all
       # set groups [Setze einen entsprechende Gruppe] 
       # set users [Setze einen entsprechende User] 
       # set devices [Setze einen entsprechenden Device] 
       # end
       
       NOTE Wenn User und/oder Gruppen definiert werden die nicht das unter "config vpn ssl settings" definierte
            "default-portal" benützen, muss dies unter "config vpn ssl settings" unter "config authentication-rule"
            definiert werden!

Nun kann getestet werden. Wenn es zu Problemen kommt kann mit folgenden Befehl ein Debug ausgeführt werden:

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

Führe nun eine Zugriff über Portal oder TunnelMode durch und achte auf den Output! Nach der Benutzung des Debug sollte dieser wieder zurückgestellt und deaktiviert werden:

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

Wie konfiguriere ich unter FortiOS 5.0 ein SSL-VPN Portal/Tunnel auf einer Fortigate?

Nachfolgende Dokumentation gibt Auskunft wie ein SSL-VPN unter FortiOS 5.0 -sei es im Portal und/oder Tunnel Mode- aufgebaut wird. In unserem Beispiel gehen wir davon aus, dass eine Fortigate über folgende Konstellation verfügt (Factory Defaults):

       NOTE Eine 40C unterstützt nur noch 1 VPN Portal dh. weitere VPN Portale können nicht erfasst werden. Versucht 
            man dies über CLI mit folgendem Befehl erscheint folgendes, was wiederum bestätigt, dass nur ein SSL-VPN Portal
            möglich ist:
            
            # config vpn ssl web portal
            # edit new
            
            Too many entries in all tables of .vpn.ssl.web.portal in vdom root: 1 / vdom-max = 1
                         ____________                  _________________________
       193.193.135.66/29|            | 192.168.1.99   |                         |
       ----- WAN 1 -----|  Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
                        |____________|                |_________________________|
       

Als Erstes erfassen wir einen User sowie eine Gruppe. Der neu erfasste User wird Mitglied dieser neuen Gruppe:

       User & Device > User > User Definition
       
       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-5.0-5.2:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_einen_lokalen_User_Two-Faktor_Authentication_anhand_ODA.3F
       User & Device > User > User Groups
       
       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 "Split Tunneling" kommt eine wichtige Funktion zu dh. Diese Konfiguration steuert welche Packet auf dem Client/
            Workstation durch den SSL-VPN Tunnel gesendet werden. Weitere Informationen dazu siehe nachfolgender Artikel:
            
            FortiClient:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Split_Tunneling.22.3F

Nach der Konfiguration kann anhand der Position "View Portal" überprüft werden wie das SSL-VPN Portal nach einem erfolgreichen einloggen aussieht:

       Fortinet-102.jpg
       
       NOTE Möchte man das Aussehen modifizieren zB die verschiedenen Positionen Zweispaltig anzeigen so muss
            dies über Kommandozeile durchgeführt werden. Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F 
       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-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F

Als letzen Schritt benötigen wir eine entsprechnenden Firewall Policy die den Traffic resp. die SSL-VPN Funktion erlaubt. Der nächste Schritt zeigt die Firewall Policy Rule für das WebPortal. Diese wird über eine "Identity Based Policy" erstellt:

       Policy > Policy > Policy > Create New
       
       Datei:Fortinet-112.jpg
       
       NOTE Es darf/sollte für die Destination Adressen nicht "ALL" und/oder "ANY" definiert werden denn wird dies durchgeführt erscheint
            eine Fehlermeldung "Destination address of Split Tunneling policy is invalid" sobald das Split Tunneling aktiviert wird!
       
       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-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F

Die Konfiguration der SSL-VPN Funktion ist nun abgeschlossen. Um diese zu testen kann folgendes durchgeführt werden:

       Teste WebPortal Zugriff https://[Public IP WAN Adresse]:[SSL-VPN Port]
       
       NOTE Unter FortiOS 5.0 sobald die VPN Funktion aktiviert ist und die Option "sslvpn-enable" Option unter der
            global Konfiguration nicht auf "disabled" (deaktiviert) gesetzt ist, kann das WebPortal auf jedem Interface
            der FortiGate erreicht werden. Möchte man dies verhindern und das WebPortal soll "nur" über "wan1" Interface
            erreichbar sein siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F
       Teste Tunnel Mode Zugriff über SSL-VPN Client
       
       Der dazu benötigte Client kann über https://support.fortinet.com  runtergeladen werden. Der Download befindet sich
       im entsprechenden Verzeichnis (SSL-VPN) des Image (Firmware) Downloads einer FortiGate. Desweiteren kann dieser 
       Tunnel Mode ebenfalls mit dem FortiClient getestet werden (IPSec-Only). Weitere Informationen dazu siehe nachfolgenden
       Artikel:
       
       FortiClient:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F

Um den Debug Modus auf der Console SSL-VPN Funktion auszuführen führe folgendes aus:

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

Wie konfiguriere ich unter FortiOS 5.2 ein SSL-VPN Portal/Tunnel auf einer Fortigate?

Unter FortiOS 5.2 wird ein SSL-VPN Portal/Tunnel anderst konfiguriert als unter FortiOS 5.0. Die Konfiguration ist im Hintrgrund mehr oder weniger dieselbe jedoch wird der Tunnel Mode und der Portal Mode völlig unterschiedlich gehandhabt. Wir gehen von folgenden Beispiel aus:

                         ____________                  _________________________
      193.193.135.66/29|            | 192.168.1.99   |                         |
      ----- WAN 1 -----|  Fortigate |------ LAN -----| LAN Env. 192.168.1.0/24 |
                       |____________|                |_________________________|
      

Um den Tunnel und/oder Portal Mode korrekt zu konfigurieren benötigt man einige Adress Objekte sowie einen User/Gruppe wie:

       Adress Objekt des internen LAN        net-lan-192.168.0.0-24
       Adress Objekt des IP-Pool's           net-ip-pool-10.10.0.0-24
       User                                  user-1 (Mitglied in gr-ssl-vpn-tunnel / gr-ssl-vpn-portal
       Gruppe                                gr-ssl-vpn-tunnel
       Gruppe                                gr-ssl-vpn-portal

Um diese zu erstellen wähle folgendes:

       Policy & Objects > Objects > Addresses
       
       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:
            
            FortiClient:FAQ#Wie_kann_ich_ein_FortiClient_Endpoint_Security_Software_Package_mit_VPN_.28IPSec.2FSSL-VPN.29_only_erstellen.3F
       Tunnel Mode Only Profile
       
       VPN > SSL > Portals
       
       Fortinet-1148.jpg
       Fortinet-1149.jpg
       
       NOTE Weitere Informationen zur Funktion "Split Tunneling" siehe nachfolgender Artikel: 
            
            FortiClient:FAQ#Was_bedeutet_im_Client2Site_VPN_Bereich_der_Konfigurationspunkt_.22Split_Tunneling.22.3F
            
            Viele der einzelnen Funktionen eines SSL-VPN Portal's sind nur über Kommandozeile konfigurierbar. 
            Nachfolgender Artikel zeigt wie ein SSL-VPN über die Kommandozeile konfiguriert wird:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_SSL-VPN_auf_einer_FortiGate_per_Kommandozeile_.28CLI.29_konfigurieren.3F
       VPN > SSL > Settings
       
       Fortinet-1150.jpg
       
       NOTE Unter FortiOS 5.0 wurde die SSL-VPN Funktion auf "allen" Interface's zur Verfügung gestellt. Um dies zu verhindern
            musst unter FortiOS 5.0 eine "Local-In" Policy implementiert werden. Dies ist unter FortiOS 5.2 nicht mehr nötig da über
            "Listen on Interface" die Interface's auf denen die SSL-VPN Funktion zur Verfügung gestellt wird über diese Position
            konfiguriert werden kann. Desweiteren, wenn auf der Position "Listen on Port" ein Konflikt besteht da dieser Port bereits
            besetzt ist, wird ein entsprechender Hinweis eingeblendet. Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_den_Access_Port_f.C3.BCr_die_SSL-VPN_Funktion_konfigurieren.3F
       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". Dabei sollte die Funktion "Realm" miteinbezogen
            werden um zwischen den zwei Portalen zu unterscheiden!
       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-5.0-5.2:FAQ#Wieso_funktioniert_ab_FortiOS_5_mein_SSL-VPN_auch_ohne_die_IP_Pool_Route_und.2Foder_Policy_zu_implementieren.3F

Die Tunnel Mode Konfiguration ist nun abgeschlossen. Als Naechstes konfigurieren wir einen Portal Mode dh. Zugriff auf die SSL-VPN Funktion anhand des Browser auf ein SSL-VPN Portal das vers. Funktionen zur Verfügung stellen kann:

       Portal Mode Only Profile
       
       VPN > SSL > Portals
       
       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-5.0-5.2: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. Dies bedeutet: Wenn ein User in beiden Gruppen die vorkommt dh. für Tunnel und Web Mode kann die Evaluierung
            zwischen Tunnel und Web Mode nicht mehr durchgeführt werden da der User in beiden Gruppen vorkommt. Die Einzige unterscheidungs
            Möglichkeit liegt im "Realm". Dies bedeutet soll der Web Mode vom Tunnel Mode unterschieden werden kann ein Realm "Tunnel" 
            erstellt werden. Dieser wird dann dazu benutzt zwischen den Portalen sei es Web und/oder Tunnel zu unterscheiden! Das Feature 
            "realm" ist per Standard deaktiviert und wird über die folgende Position aktiviert:
            
            System > Config > Features > Show More > SSL-VPN Realms
            
            Nach Aktivierung des Features steht die Funktion "Realms" unter folgender Position zur Verfügung:
            
            VPN > SSL > Realms
       Fortinet-1160.jpg
       Fortinet-1161.jpg

Um ein Web Mode und Tunnel Mode inkl. den VPN Settings komplett über Kommandozeile zu konfigurieren kann folgendes durchgeführt werden:

       VPN SSL Settings Web Portal
       
       # config vpn ssl web portal
       # edit [Name des Web Portals zB "web-acces.local"]
       # set tunnel-mode disable 
       # set ipv6-tunnel-mode disable 
       # set web-mode enable 
       # set cache-cleaner disable 
       # set host-check none 
       # set limit-user-logins enable 
       # set mac-addr-check disable 
       # set os-check disable 
       # set virtual-desktop disable 
       # set auto-prompt-mobile-user-download disable 
       # set display-bookmark enable 
       # set user-bookmark enable 
       # set config bookmark-group
       # set edit "Intranet-Kategorie"
       # set config bookmarks
       # set edit "Intranet"
       # set set description "Intranet Site"
       # set set url "www.mydomain.intra"
       # set end
       # set display-connection-tools enable 
       # set display-forticlient-download disable 
       # set display-history enable 
       # set display-history-limit 10
       # set display-status enable 
       # set heading "Welcome to mydomain.ch" 
       # set page-layout double-column 
       # unset redir-url
       # set theme blue 
       # set custom-lang en 
       # end
       VPN SSL Settings Tunnel Mode
       
       # config vpn ssl web portal
       # edit [Name des Web Portals zB "tunnel-acces.local"]
       # set tunnel-mode  enable 
       # set ipv6-tunnel-mode disable 
       # set web-mode  disable 
       # set cache-cleaner disable 
       # set host-check none 
       # set limit-user-logins enable 
       # set mac-addr-check disable 
       # set os-check disable 
       # set virtual-desktop disable 
       # set ip-mode range 
       # set auto-connect disable 
       # set keep-alive enable 
       # set save-password enable 
       # set ip-pools [Adress Objekt für IP Pool SSL VPN zB "net-ip-pool-10.10.0.0-24"]
       # set split-tunneling enable 
       # set split-tunneling-routing-address [Adress Objekt für Destination LAN zB "net-lan-192.168.0.0-24"]
       # set dns-server1 [IPv4 Adresse für DNS Server]
       # set dns-server2 0.0.0.0
       # set wins-server1 0.0.0.0
       # set wins-server2 0.0.0.0
       # end
       VPN SSL Settings Realm
       
       # config vpn ssl web realm
       # edit [Name des Realms zB "tunnel"]
       # set max-concurrent-user 100
       # set login-page "<html>
          <head>
            <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
            <title>
              login
            </title>
            <meta http-equiv=\"Pragma\" content=\"no-cache\">
            <meta http-equiv=\"cache-control\" content=\"no-cache\">
            <meta http-equiv=\"cache-control\" content=\"must-revalidate\">
            <link href=\"/sslvpn/css/login.css\" rel=\"stylesheet\" type=\"text/css\">
            <script type=\"text/javascript\">
              if (top && top.location != window.location) top.location = top.location;
              if (window.opener && window.opener.top) {
                window.opener.top.location = window.opener.top.location;
                self.close();
              }
            </script>
          </head>
          <body class=\"main\">
            <center>
              <table width=\"100%\" height=\"100%\" align=\"center\" class=\"container\" valign=\"middle\" cellpadding=\"0\" cellspacing=\"0\">
                <tr valign=middle>
                  <td>
                    <form action=\"%%SSL_ACT%%\" method=\"%%SSL_METHOD%%\" name=\"f\" autocomplete=\"off\">
                      <table class=\"list\" cellpadding=10 cellspacing=0 align=center width=400 height=180>
                        <tr class=\"dark\">
                          <td colspan=2>
                            <b>
                              <br>
                              WARNING:
                              <br>
                              <p style=\"text-align:justify; margin-left:0px; margin-right:0px\">
                              You must have prior authorization to login to this system. All connections are logged and monitored. By login to this system you fully consent to all monitoring. Unauthorized login or use will be prosecuted to the full extent of the law. You have been warned!                              </p>
                              <br>
                            </b>
                          </td>
                        </tr>
                        %%SSL_LOGIN%%
                        <tr>
                          <td>
                          </td>
                          <td id=login>
                            <input type=button name=login_button id=login_button value=\"Login\" onClick=\"try_login()\" border=0>
                          </td>
                        </tr>
                      </table>
                      %%SSL_HIDDEN%%
                    </form>
                  </td>
                </tr>
              </table>
            </center>
          </body>
          <script>
            document.forms[0].username.focus();
          </script>
        </html>"
        # end 
       VPN SSL Settings
       
       # config vpn ssl settings
       # set reqclientcert disable 
       # set sslv2 disable 
       # set sslv3 enable 
       # set tlsv1-0 enable 
       # set tlsv1-1 enable 
       # set tlsv1-2 enable 
       # set ssl-big-buffer disable 
       # set ssl-insert-empty-fragment enable 
       # set ssl-client-renegotiation disable 
       # set force-two-factor-auth disable 
       # set servercert self-sign 
       # set algorithm default 
       # set idle-timeout 1800
       # set auth-timeout 28800
       # set auto-tunnel-static-route disable
       # set tunnel-ip-pools [Adress Objekt für IP Pool SSL VPN zB "net-ip-pool-10.10.0.0-24"]
       # set dns-server1 [IPv4 Adresse für DNS Server]
       # set dns-server2  0.0.0.0
       # set wins-server1 0.0.0.0
       # set wins-server2 0.0.0.0
       # set route-source-interface disable 
       # set url-obscuration disable 
       # set http-compression disable 
       # set http-only-cookie enable 
       # set port 10443
       # set port-precedence enable 
       # set auto-tunnel-static-route disable 
       # set source-interface [Interface ISP zB "wan1"]
       # set source-address [Adress Objekt oder "all"]
       # set source-address-negate disable 
       # unset source-address6
       # set default-portal "web-access.intra"
       # config authentication-rule
       # edit 1
       # set source-interface [Interface ISP zB "wan1"]
       # set source-address [Adress Objekt oder "all"]
       # set source-address-negate disable 
       # unset source-address6
       # set source-address6-negate disable 
       # set groups "gr-ssl-vpn-tunnel"
       # set portal "tunnel-acces.local"
       # set realm tunnel
       # set client-cert disable 
       # set cipher any 
       # set auth local
       # next
       # edit 2
       # set source-interface "wan1"
       # set source-address "all"
       # set source-address-negate disable 
       # unset source-address6
       # set source-address6-negate disable 
       # set users local
       # set groups "gr-ssl-vpn-portal"
       # set portal "web-acces.local"
       # unset realm
       # set client-cert disable 
       # set cipher any 
       # set auth local 
       # next
       # end
       # end
       Firewall Policy""
       
       Nachträglich muss für die Konfiguation eine Firewall Policy implementiert werden:
       
       Fortinet-1161.jpg

Wie kann ich ein SSL-VPN Portal betreffend Authentifizierung anhand der Source einschränken?

Unter FortiOS 5.0 kann ein SSL-VPN Portal anhand der definierten Source in der "Identity-Based Policy" eingeschränkt werden. Dazu folgendes Beispiel:

       Fortinet-380.jpg
       
       NOTE Soll die Source in diesem Beispiel eingeschränkt werden so muss unter "Remote Address" ein entsprechender IP Range definiert
            werden. Wenn ein zweites Portal konfiguriert wird mit einer anderen Einschränkung dh. IP Range so muss einfach eine zusätzliche
            "Identity Policy" erstellt werden mit der Einschränkung.

Unter FortiOS 5.2 gibt es diese "Identity Based Policy" nicht mehr und ein SSL-VPN Portal wird nicht mehr über die Reguläre Policy definiert resp. konfiguriert. Neu wird das SSL-VPN Portal über folgende Position konfiguriert:

       VPN > SSL > Settings
       
       Fortinet-1150.jpg

Die Authentication Rule resp. Portal Mapping wird im Abschnitt "Authentication/Portal Mapping" konfiguriert. In diesem Abschnitt wird das entsprechende "Web Portal" sowie die entsprechende "Gruppe" zueinander "gemappt". Möchte man nun eine Einschränkung anhand der Source Adressen durchführen kann dies anhand dieser Position auf Kommandozeile durchgeführt werden:

      Gruppe 1 "ssl-vpn-group-1" soll WebPortal benutzen "ssl-vpn-portal-1" und nur von der Source "net-ssl-vpn-group-1"
      Gruppe 2 "ssl-vpn-group-2" soll WebPortal benutzen "ssl-vpn-portal-2" und nur von der Source "net-ssl-vpn-group-2"

Der zuständige Befehl um die "Authentication/Portal Mapping" zu konfigurieren ist "config authentication rule". Durch diesen Befehl kann die Source anhand eines IP Ranges eingeschränkt werden. Dabei ist zu berücksichtigen, dass in der "Authentication/Portal Mapping" nach "top down first match winns" evaluiert wird.

      # config vpn ssl settings
      # set reqclientcert disable 
      # set sslv2 disable 
      # set sslv3 enable 
      # set tlsv1-0 enable 
      # set tlsv1-1 enable 
      # set tlsv1-2 enable 
      # set ssl-big-buffer disable 
      # set ssl-insert-empty-fragment enable 
      # set ssl-client-renegotiation disable 
      # set force-two-factor-auth disable 
      # set servercert self-sign 
      # set algorithm default 
      # set idle-timeout 1800
      # set auth-timeout 28800
      # set auto-tunnel-static-route disable
      # set tunnel-ip-pools "[Gebe den entsprechenden IP Range für IP Pool an für den Tunnel Mode]"
      # set dns-suffix mydomain1.local
      # set dns-server1 [IPv4 Adresse für den DNS Server]
      # set dns-server2 [IPv4 Adresse für den DNS Server]
      # set wins-server1 0.0.0.0
      # set wins-server2 0.0.0.0
      # set route-source-interface disable 
      # set url-obscuration disable 
      # set http-compression disable 
      # set http-only-cookie enable 
      # set port 10443
      # set port-precedence enable 
      # set auto-tunnel-static-route disable 
      # set source-interface "[Interface auf dem das SSL-VPN Portal zur Verfügug gestellt werden soll zB wan1]"
      # set source-address "all"
      # set source-address-negate disable 
      # set source-address6 "all"
      # set default-portal "[Name des Default SSL-VPN Portal"
      # config authentication-rule
      # edit 1
      # set source-interface [Interface ISP zB "wan1"]
      # set source-address [net-ssl-vpn-group-1]
      # set source-address-negate disable 
      # unset source-address6
      # set source-address6-negate disable 
      # set groups "ssl-vpn-group-1"
      # set portal "ssl-vpn-portal-1"
      # unset realm
      # set client-cert disable 
      # set cipher any 
      # set auth local
      # next
      # edit 2
      # set source-interface [Interface ISP zB "wan1"]
      # set source-address [net-ssl-vpn-group-2]
      # set source-address-negate disable 
      # unset source-address6
      # set source-address6-negate disable 
      # set groups "ssl-vpn-group-2"
      # set portal "ssl-vpn-portal-2"
      # unset realm
      # set client-cert disable 
      # set cipher any 
      # set auth local
      # next
      # end
      # end
      
      NOTE Das Default SSL-VPN Portal wird in dem Abschnitt "Authentication/Portal Mapping" als letzte Position eingefügt und somit das in 
           diesem Abschnitt "top down first match wins" gilt dieses SSL-VPN Portal für alles das nicht evauluiert werden kann. Zusätzlich zur 
           Einschränkung der Source Adresse kann ein "realm" gesetzt werden. Diese Funktion ist jedoch per Standard deaktiviert und kann 
           folgendermassen im Web Mgmt. Interface aktiviert werden:
           
           System > Config > Features > Show More > SSL-VPN Realms
           
           Nach Aktivierung des Features steht die Funktion "Realms" unter folgender Position zur Verfügung:
           
           VPN > SSL > Realms

Wie kann ich ein SSL-VPN Portal zu einem "realm", zu einer bestimmten Gruppe sowie zu einem bestimmten Interface zuweisen?

Diese Konfiguration ist unter FortiOS 5.0 nicht möglich und wird nur für FortiOS 5.2 unterstützt. Grundlage für diese Konfiguration ist folgendes Beispiel:

       Gruppe 1 "ssl-vpn-group-1" soll WebPortal benutzen "ssl-vpn-portal-1" und nur von der Source "net-ssl-vpn-group-1" sowie realm "group-1" auf interface "wan1"
       Gruppe 2 "ssl-vpn-group-2" soll WebPortal benutzen "ssl-vpn-portal-2" und nur von der Source "net-ssl-vpn-group-2" sowie realm "group-2" auf interface "wan2"

Somit müssen folgende Schritte durchgeführt werden um diese Konfiguration durchzuführen:

       Schritt 1:
       
       Konfiguriere die zwei benötigten Gruppen:
       
       # config user group
       # edit [Name der Gruppe "ssl-vpn-group-1"]
       # set member [Name des/der User]
       # end
       
       # config user group
       # edit [Name der Gruppe "ssl-vpn-group-2"]
       # set member [Name des/der User]
       # end
       Schritt 2:
       
       Konfiguriere die zwei benötigten SSL-VPN Portale:
       
       # config vpn ssl web portal
       # edit [Name des Web Portals zB "ssl-vpn-portal-1"]
       # set tunnel-mode disable 
       # set ipv6-tunnel-mode disable 
       # set web-mode enable 
       # set cache-cleaner disable 
       # set host-check none 
       # set limit-user-logins enable 
       # set mac-addr-check disable 
       # set os-check disable 
       # set virtual-desktop disable 
       # set auto-prompt-mobile-user-download disable 
       # set display-bookmark enable 
       # set user-bookmark enable 
       # set config bookmark-group
       # set edit "Intranet-Kategorie"
       # set config bookmarks
       # set edit "Intranet"
       # set set description "Intranet Site"
       # set set url "www.mydomain.intra"
       # set end
       # set display-connection-tools enable 
       # set display-forticlient-download disable 
       # set display-history enable 
       # set display-history-limit 10
       # set display-status enable 
       # set heading "Welcome to mydomain.ch" 
       # set page-layout double-column 
       # unset redir-url
       # set theme blue 
       # set custom-lang en 
       # end
       
       # config vpn ssl web portal
       # edit [Name des Web Portals zB "ssl-vpn-portal-2"]
       # set tunnel-mode disable 
       # set ipv6-tunnel-mode disable 
       # set web-mode enable 
       # set cache-cleaner disable 
       # set host-check none 
       # set limit-user-logins enable 
       # set mac-addr-check disable 
       # set os-check disable 
       # set virtual-desktop disable 
       # set auto-prompt-mobile-user-download disable 
       # set display-bookmark enable 
       # set user-bookmark enable 
       # set config bookmark-group
       # set edit "Intranet-Kategorie"
       # set config bookmarks
       # set edit "Intranet"
       # set set description "Intranet Site"
       # set set url "www.mydomain.intra"
       # set end
       # set display-connection-tools enable 
       # set display-forticlient-download disable 
       # set display-history enable 
       # set display-history-limit 10
       # set display-status enable 
       # set heading "Welcome to mydomain.ch" 
       # set page-layout double-column 
       # unset redir-url
       # set theme blue 
       # set custom-lang en 
       # end
       Schritt 3:
       
       Erstelle die nötigen 2 "realms"
       
       NOTE Die Funktion "realm" ist per Standard auf dem Web Mgmt. Interface ausgeblendet kann jedoch aktiviert werden:
            
            System > Config > Features > Show More > SSL-VPN Realms
            
            Nach Aktivierung des Features steht die Funktion "Realms" unter folgender Position zur Verfügung:
            
            VPN > SSL > Realms
       
       # config vpn ssl web realm
       # edit [Name des Realms zB "group-1"]
       # set max-concurrent-user 100
       # set login-page "<html>
          <head>
            <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
            <title>
              login
            </title>
            <meta http-equiv=\"Pragma\" content=\"no-cache\">
            <meta http-equiv=\"cache-control\" content=\"no-cache\">
            <meta http-equiv=\"cache-control\" content=\"must-revalidate\">
            <link href=\"/sslvpn/css/login.css\" rel=\"stylesheet\" type=\"text/css\">
            <script type=\"text/javascript\">
              if (top && top.location != window.location) top.location = top.location;
              if (window.opener && window.opener.top) {
                window.opener.top.location = window.opener.top.location;
                self.close();
              }
            </script>
           </head>
           <body class=\"main\">
            <center>
              <table width=\"100%\" height=\"100%\" align=\"center\" class=\"container\" valign=\"middle\" cellpadding=\"0\" cellspacing=\"0\">
                <tr valign=middle>
                  <td>
                    <form action=\"%%SSL_ACT%%\" method=\"%%SSL_METHOD%%\" name=\"f\" autocomplete=\"off\">
                      <table class=\"list\" cellpadding=10 cellspacing=0 align=center width=400 height=180>
                        <tr class=\"dark\">
                          <td colspan=2>
                            <b>
                              <br>
                              WARNING: REALM 1
                              <br>
                              <p style=\"text-align:justify; margin-left:0px; margin-right:0px\">
                              You must have prior authorization to login to this system. All connections are logged and monitored. By login to this system you fully consent to all monitoring. Unauthorized login or use will be prosecuted to the full extent of the law. You have been warned!                              </p>
                              <br>
                            </b>
                          </td>
                        </tr>
                        %%SSL_LOGIN%%
                        <tr>
                          <td>
                          </td>
                          <td id=login>
                            <input type=button name=login_button id=login_button value=\"Login\" onClick=\"try_login()\" border=0>
                          </td>
                        </tr>
                      </table>
                      %%SSL_HIDDEN%%
                    </form>
                  </td>
                </tr>
              </table>
            </center>
          </body>
          <script>
            document.forms[0].username.focus();
          </script>
         </html>"
               
       # end
        
       # config vpn ssl web realm
       # edit [Name des Realms zB "group-2"]
       # set max-concurrent-user 100
       # set login-page "<html>
          <head>
            <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
            <title>
              login
            </title>
            <meta http-equiv=\"Pragma\" content=\"no-cache\">
            <meta http-equiv=\"cache-control\" content=\"no-cache\">
            <meta http-equiv=\"cache-control\" content=\"must-revalidate\">
            <link href=\"/sslvpn/css/login.css\" rel=\"stylesheet\" type=\"text/css\">
            <script type=\"text/javascript\">
              if (top && top.location != window.location) top.location = top.location;
              if (window.opener && window.opener.top) {
                window.opener.top.location = window.opener.top.location;
                self.close();
              }
            </script>
           </head>
           <body class=\"main\">
            <center>
              <table width=\"100%\" height=\"100%\" align=\"center\" class=\"container\" valign=\"middle\" cellpadding=\"0\" cellspacing=\"0\">
                <tr valign=middle>
                  <td>
                    <form action=\"%%SSL_ACT%%\" method=\"%%SSL_METHOD%%\" name=\"f\" autocomplete=\"off\">
                      <table class=\"list\" cellpadding=10 cellspacing=0 align=center width=400 height=180>
                        <tr class=\"dark\">
                          <td colspan=2>
                            <b>
                              <br>
                              WARNING: REALM 2
                              <br>
                              <p style=\"text-align:justify; margin-left:0px; margin-right:0px\">
                              You must have prior authorization to login to this system. All connections are logged and monitored. By login to this system you fully consent to all monitoring. Unauthorized login or use will be prosecuted to the full extent of the law. You have been warned!                              </p>
                              <br>
                            </b>
                          </td>
                        </tr>
                        %%SSL_LOGIN%%
                        <tr>
                          <td>
                          </td>
                          <td id=login>
                            <input type=button name=login_button id=login_button value=\"Login\" onClick=\"try_login()\" border=0>
                          </td>
                        </tr>
                      </table>
                      %%SSL_HIDDEN%%
                    </form>
                  </td>
                </tr>
              </table>
            </center>
          </body>
          <script>
            document.forms[0].username.focus();
          </script>
         </html>" 
       # end 
       Schritt 4:
        
       Konfiguriere die IP-Pool Adressen für die jeweilige Gruppe:
        
       # config firewall address
       # edit [Name des IP-Pools zB "net-ssl-vpn-group-1"]
       # set type ipmask
       # set subnet [IP Range IP Pool für "net-ssl-vpn-group-1" zB "192.18.1.0/24"]
       # end
       
       # config firewall address
       # edit [Name des IP-Pools zB "net-ssl-vpn-group-2"]
       # set type ipmask
       # set subnet [IP Range IP Pool für "net-ssl-vpn-group-2" zB "192.18.2.0/24"]
       # end
       Schritt 5:
       
       Konfiguriere die SSL-VPN Settings:
       
       # config vpn ssl settings
       # set reqclientcert disable 
       # set sslv2 disable 
       # set sslv3 enable 
       # set tlsv1-0 enable 
       # set tlsv1-1 enable 
       # set tlsv1-2 enable 
       # set ssl-big-buffer disable 
       # set ssl-insert-empty-fragment enable 
       # set ssl-client-renegotiation disable 
       # set force-two-factor-auth disable 
       # set servercert self-sign 
       # set algorithm default 
       # set idle-timeout 1800
       # set auth-timeout 28800
       # set auto-tunnel-static-route disable
       # set tunnel-ip-pools "[Gebe den entsprechenden IP Range für IP Pool an für den Tunnel Mode oder "unset"]"
       # set dns-suffix mydomain1.local
       # set dns-server1 [IPv4 Adresse für den DNS Server]
       # set dns-server2 [IPv4 Adresse für den DNS Server]
       # set wins-server1 0.0.0.0
       # set wins-server2 0.0.0.0
       # set route-source-interface disable 
       # set url-obscuration disable 
       # set http-compression disable 
       # set http-only-cookie enable 
       # set port 10443
       # set port-precedence enable 
       # set auto-tunnel-static-route disable 
       # set source-interface "[Interface auf dem das SSL-VPN Portal zur Verfügug gestellt werden soll zB "wan1" "wan2"]"
       # set source-address "all"
       # set source-address-negate disable 
       # set source-address6 "all"
       # set default-portal "[Name des Default SSL-VPN Portal]"
       # config authentication-rule
       # edit 1
       # set source-interface [Interface ISP zB "wan1"]
       # set source-address [net-ssl-vpn-group-1]
       # set source-address-negate disable 
       # unset source-address6
       # set source-address6-negate disable 
       # set groups "ssl-vpn-group-1"
       # set portal "ssl-vpn-portal-1"
       # set realm "group-1"
       # set client-cert disable 
       # set cipher any 
       # set auth local
       # next
       # edit 2
       # set source-interface [Interface ISP zB "wan2"]
       # set source-address [net-ssl-vpn-group-2]
       # set source-address-negate disable 
       # unset source-address6
       # set source-address6-negate disable 
       # set groups "ssl-vpn-group-2"
       # set portal "ssl-vpn-portal-2"
       # set realm group-2
       # set client-cert disable 
       # set cipher any 
       # set auth local
       # next
       # end
       # end
       
       NOTE Der Abschnitt "authentication-rule" überschreibt die globalen Settings für "config vpn ssl settings"!
       Schritt 6:
       
       Jetzt muss eine entsprechende Firewall Policy konfiguriert werden mit folgender Konfiguration:
       
       Source Interface:     ssl.root
       Source Address:       net-ssl-vpn-group-1
                             net-ssl-vpn-group-2
       Source User(s):       net-ssl-vpn-group-1
                             net-ssl-vpn-group-2
       Outgoing Interface:   [Name des internen Interface zB "internal"]
       Destination Address:  [Subnet/Address Objekt des internen Interfaces]  
       Schedule:             always
       Service:              [Das/die entsprechende/n Service Objekte oder auch "ALL"]

Nun kann auf "wan1" verbunden werden anhand des "realms" und es wird das entsprechende SSL-VPN Portal "ssl-vpn-portal-1" zugewiesen sowie der entsprechende IP Pool "net-ssl-vpn-group-1". Ebenso muss mit einem User aus der Gruppe "net-ssl-vpn-group-1" ein Login durchgeführt werden. Das gleiche gilt Analog für "wan2" jedoch mit seperatem SSL-VPN Portal, IP-Pool sowie Gruppe.

Wieso funktioniert ab FortiOS 5 mein SSL-VPN auch ohne die IP Pool Route und/oder Policy zu implementieren?

Nun ab FortiOS 5.0 hat Fortinet zwei neue Optionen eingeführt dh. diese implementieren für SSL-VPN Funktion eine automatische Konfiguration in zwei Bereichen:

       --> Routen den IP Pool automatisch auf das ssl.root Interface
       --> Implementieren automatisch eine "Local In Policy" damit der Traffic von ssl.root auf Internal erlaubt wird (Gilt nicht für FortiOS 5.2)

Die zuständigen Optionen für die Automatisierung sind die folgenden:

       # config vpn ssl settings
       # set auto-tunnel-policy [enable | disable]
       # set auto-tunnel-static-route [enable | disable]
       # end
       
       NOTE Die Option "auto-tunnel-policy" steht für FortiOS 5.2 nicht mehr zur Verfügung!

Bedeutet somit folgendes:

       auto-tunnel-policy              (Automatische Policy "source=ssl.root to destination=internal")
       auto-tunnel-static-route        (Automatische Route für den definierten IP-Pool)

Das Unschöne an der ganzen Sache ist folgende:

       --> Ueber den Routing Monitor im Gui wird keine entsprechende Route angezeigt/gelistet!
       --> In der Local In Policy wird kein entsprechender Eintrag angzeigt/gelistet für die Policy!

Wir empfehlen diese beiden Optionen zu deaktivieren und wie bis anhin die Implementierung gemäss nachfolgenden Artikel durchzuführen. Der Grund liegt in der Transparenz sowie Granularität dh. mehrere Gruppen, IP Pools, restriktive Rules etc.:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Wie kann ich für das Active Directory (LDAP) eine Passwort Expyring/Renewal Nachricht für SSL-VPN konfigurieren?

Die Funktion des Active Directory Passwort Expyring/Renewal muss in der LDAP Konfiguration auf der Fortigate aktiviert werden (Per Standard deaktiviert). Für nähere Informationen siehe Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_eine_Active_Directory_.28LDAP.29_Anbindung_ein_Passwort_Expyring_Renewal_Nachricht_konfigurieren.3F

Kann ich für ein SSL-VPN Portal innerhalb der "bookmarks" eine VIP (NAT) Adresse konfigurieren?

Wenn man ein SSL-VPN Portal erstellt und den Usern die das SSL-VPN Portal benützen ein "bookmark" (Link zu einem Server) zur Verfügung stellen möchte zB für einen WebServer kann keine VIP (NAT) Adresse benützt werden. Dies ist für folgende FortiOS nicht möglich:

       FortiOS 4.x
       FortiOS 5.0
       FortiOS 5.2

Der Workaround ist relativ einfach dh. man definiert die real IP des Servers als "bookmark". Eine weitere Möglichkeit ist anstelle des Portal Modes den Tunnel Mode zu benutzen. Dabei ist jedoch folgendes zu beachten:

       Ab FortiOS 5.2.2 kann ein VIP (NAT) Objekt nur dann in einer Firewall Policy Rule selektiert werden wenn für die definierte "Tunnel Mode" 
       Gruppe der User nicht zusätzlich der "Portal Mode" definiert wurde. Somit, wenn einer Gruppe "nur" der "Tunnel Mode" zugewiesen wurde ohne 
       "Portal Mode" kann in der entsprechenden Firewall Policy Rule für die entsprechende Gruppe für "Tunnel Mode" ein VIP (NAT) Objekt benutzt 
       werden!

Wie kann ich unter FortiOS 5.2 innerhalb des SSL-VPN Portal für das "connection tool" die verschiedenen Services FTP, RDP konfigurieren?

Ausgehend von FortiOS 5.0 war es möglich innerhalb eines SSL-VPN Portals (nicht "Tunnel Mode") die Services wie FTP, RDP usw. für das "connection tool" zu definieren. Durch diese Konfiguration wurde definiert welche Services im "connection tool" für das entsprechene SSL-VPN Portal dem entsprechenden User zur Verfügung gestellt wird. Dies wurde folgendermassen durchgeführt:

       # config vpn ssl web portal
       # edit [Name des entsprechenden SSL-VPN Portal Mode]
       # set allow-access [Definiertr Global für die "bookmarks" die Services wie zB web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward]
       # set heading [Definiert einen Header zB "Welcome to mydomain.ch"]
       # set page-layout double-column 
       # set allow-user-bookmark [enable | disable]
       # set mac-addr-check [enable | disable]
       # set auto-prompt-mobile-user-download [enable | disable] 
       # set limit-user-logins [enable | disable] 
       # set host-check none 
       # set virtual-desktop [enable | disable] 
       # set os-check [enable | disable] 
       # set cache-cleaner [enable | disable] 
       # config widget
       # edit 1
       # set name "Session Information"
       # set type info
       # set column one
       # set collapse disable
       # next
       # edit 3
       # set name "Bookmarks"
       # set type bookmark 
       # set column one 
       # set collapse disable 
       # set allow-apps web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward
       # next
       # edit 4
       # set name "Connection Tool"
       # set type tool 
       # set column two
       # set collapse disable
       # set allow-apps [Definiert die erlaubten Services im "connection tool" wie zB web ftp smb telnet ssh vnc rdp ping citrix rdpnative portforward]
       # next
       # edit 5
       # set name "Login History"
       # set type history
       # set column one
       # set collapse disable
       # set display-limit 5
       # next
       # end
       # end

Nun diese Möglichkeit der Definition der Service die zur Verfügung stehen sollen im "connection tool" existiert unter FortiOS 5.2 nicht mehr. Dabei stellt sich die Frage wie denn dies zu Konfigurieren ist? Die Lösung ist denkbar einfach dh. die Konfiguration der Services für das "connection tool" wird innerhalb des Firewall Policy Rule durchgeführt für die entsprechende SSL-VPN Portal Mode Firewall Policy Rule. Dies bedeutet: Für den Service innerhalb der Firewall Policy Rule für SSL-VPN Portal Mode wird der entsprechende Service definiert wie zB FTP, RDP, SMP usw. Eine Definition über "config vpn ssl web portal" steht unter FortiOS 5.2 nicht mehr zur Verfügung.

Wie kann ich ein Timeout für SSL-VPN Verbindungen konfigurieren?

Es kann anhand nachfolgenden Kommandos ein Timeout für SSL-VPN Verbindungen resp. User konfiguriert werden. Dies bedeutet: Wenn ein User länger verbunden ist sprich "idle" als dieses Timeout wird er durch das System automatisch (forced) ausgeloggt. Um die Konfiguration durchzuführen führe folgendes unter der CLI durch:

       # config vpn ssl settings
       # set auth-timeout [Sekunden zB 18000]
       # end
       
       NOTE Mögliche Werte für das Timeout sind "0" bis "259 200" Sekunden (3 Tage). Wenn das Timeout auf "0" gesetzt wird
            so wird das Timeout komplett deaktiviert!

Diese Konfiguration sollte nicht verwechselt werden mit dem "idle-timeout". Dies bedeutet das "idle-timeout" stellt den Wert dar für das Timeout wenn der Client das Portal nicht benutzt und somit in das "idle-timeout" läuft. Um dieses "idle-timeout" unter der CLI zu setzen benütze folgendes Kommando:

       # config vpn ssl settings
       # set idle-timeout [Sekunden zB 300]
       # end
       
       NOTE Mögliche Werte für das Timeout sind "0" bis "259 200" Sekunden (3 Tage). Wenn das Timeout auf "0" gesetzt wird
            so wird das Timeout komplett deaktiviert! Es ist empfehlenswert das "idle-timeout" möglichst tief zu halten. Per Standard
            ist dieses auf 300 Sekunden (5 Minuten) gesetzt!

Gibt es für IOS und Android einen SSL VPN Client?

Die beiden offiziellen Apps von Fortinet für IPhone und Android unterstützen in der 5.0 Version ausschliesslich das Browsen dh. wenn man verbunden ist mit dem APP kann der aufgebaute VPN Tunnel nur für das Browsen benutzt werden deshalb wird dieser Client auch "SSL proxy VPN connection agent" genannt. Neu unter FortiOS 5.2 unterstützt - im Gegensatz zu IOS - Android ebenfalls eine IPSec Verbindung (siehe 5.2 User Guide). Will man eine klassische IPSec Verbindung anhand eines IOS Gerätes durchführen so ist das mit dem Cisco Client (Unity Client) möglich sowie mit der eingebauten VPN Funktion eines IPhones. Nachfolgende Links geben Auskunft wie so eine Verbindung zu konfigurieren ist:

      NOTE Für die Konfiguration eines IOS Devices anhand des "build-in" Cisco Client's siehe nachfolgenden Artikel:
           
           FortiGate-5.0-5.2:FAQ#Gibt_es_eine_M.C3.B6glichkeit_mit_einem_IPhone.2FIPad_.C3.BCber_IPSec_eine_Verbindung_aufzubauen_zu_einer_Fortigate.3F
       Für Android:
       https://play.google.com/store/apps/details?id=com.fortinet.forticlient
       http://www.fortinet.com/resource_center/product_downloads.html
       
       FortiOS 5.0
       Datei:FortiClient-v5.0.1-Android-Release-Notes.pdf        
       Datei:FortiClient-v5.0.2-Android-Release-Notes.pdf
       Datei:FortiClient-v5.0.3-Android-Release-Notes.pdf
       
       Datei:Forticlient-android-user-guide.pdf
       Datei:Connecting-an-Android-to-a-FortiGate-with-SSL-VPN.pdf
       
       FortiOS 5.2
       Datei:FortiClient-v5.2.0-Android-Release-Notes.pdf
       Datei:FortiClient-v5.2.1-Android-Release-Notes.pdf
       Datei:FortiClient-v5.2.2-Android-Release-Notes.pdf
       Datei:FortiClient-v5.2.3-Android-Release-Notes.pdf
       Datei:FortiClient-v5.2.6-Android-Release-Notes.pdf
       
       Datei:FortiClient-vpn-v5.2.2-Android-Release-Notes.pdf
       Datei:FortiClient-vpn-v5.2.1-Android-Release-Notes.pdf
       Datei:FortiClient-vpn-v5.2.3-Android-Release-Notes.pdf
       Datei:FortiClient-vpn-v5.2.6-Android-Release-Notes.pdf
       
       Datei:Forticlient-android-user-guide-52.pdf
       Datei:Forticlient-android-user-guide-524.pdf 
       Datei:Forticlient-android-user-guide-526.pdf 
       Für IOS:
       http://itunes.apple.com/us/app/fortimobile-ssl-vpn/id345361028?mt=8
       http://www.fortinet.com/resource_center/product_downloads.html
       
       FortiOS 5.0
       Datei:FortiClient-v5.0-Patch-Release-1-iOS-Release-Notes.pdf        
       Datei:FortiClient-v5.0-Patch-Release-2-iOS-Release-Notes.pdf
       Datei:FortiClient-v5.0-Patch-Release-3-iOS-Release-Notes.pdf
       
       Datei:Forticlient-v5-ios-quickstart.pdf
       
       FortiOS 5.2
       Datei:Forticlient-v5.2.0-ios-release-notes.pdf
       
       Datei:Forticlient-ios-user-guide-52.pdf

Wie kann ich auf einer FortiGate das SSL-VPN Package unter FortiGuard "up-to-date" bringen?

Auf einer FortiGate unter nachfolgender Position wird ein SSL-VPN Package zur Verfügung gestellt. Dieses Package kann manuell auf den neusten Stand gebracht werden:

       System -> Settings -> FortiGuard -> Package Information SSL-VPN

Wenn man dieses Package "up-to-date" bringen möchte kann man von der Support Site von Fortinet das entsprechende Package runterladen:

       https://support.fortinet.com/Download/FirmwareImages.aspx

Im entsprechenden Verzeichnis dh. zB "/FortiGate/v5.00/5.2/5.2.4/VPN/SSLVPNTools/" kann das entsprechende Package runtergeladen werden sowie über die vorhergehende Position raufgeladen werden. Dabei ist zu beachten, das nur entweder ein 32bit oder ein 64bit Package raufgeladen werden kann. Das Packgage das raufgeladen wird, wird in das folgende Verzeichnis kopiert:

       # fnsysctl ls -l /var/log/package_cache/
       -rw-r--r--    1 0        0       Mon Jun  1 14:46:12 2015             1125 sslvpn_version.h
       -rw-r--r--    1 0        0       Mon Jun  1 14:46:11 2015          2906511 sslvpnclient.tar.gz

Das Package das Standard existiert ist ein 64bit Package. Das File "sslvpn_version.h" kann mit folgenden Befehl eingesehen werden:

       # fnsysctl more /var/log/package_cache/sslvpn_version.h

Wenn zB das Package "sslvpnclient64pkg_4.4.2317.tar.gz" raufgeladen wird so sieht man nach einer Kontrolle nicht den Namen dieses Package sondern wiederum:

       # fnsysctl ls -l /var/log/package_cache/
       -rw-r--r--    1 0        0       Thu Aug 13 15:49:12 2015             1125 sslvpn_version.h
       -rw-r--r--    1 0        0       Thu Aug 13 15:49:11 2015          2981238 sslvpnclient.tar.gz

Wenn das File "sslvpn_version.h" mit dem nachfolgenden Befehl kontrolliert wird, gibt dieses die neue Version aus:

       # fnsysctl more /var/log/package_cache/sslvpn_version.h
       
       --------------- output sslvpn_version.h --------------- 
       
       // version.h 
       //
       // This file should be generated or updated by the build script
       // 
       // All the project resource files should include this file rather than
       // hardcode the version number
       //
       #define SSLVPN_MAJOR_RELEASE_NUM        4 
       #define SSLVPN_MINOR_RELEASE_NUM        0 
       #define SSLVPN_BUILD_NUM                        2317 
       //
       #define SSLVPN_MAJOR_RELEASE            "4" 
       #define SSLVPN_MINOR_RELEASE            "0" 
       #define SSLVPN_BUILD                            "2317" 
       //
       #define SSLVPN_COMPANY_NAME_ID          "Fortinet"
       #define SSLVPN_COMPANY_NAME             "Fortinet Inc."
       #define SSLVPN_LEGAL_COPYRIGHT "2004 - 2014 Fortinet Inc. All rights reserved." 
       #define SSLVPN_LEGAL_COPYRIGHT_VALUE 2004 - 2014 Fortinet Inc. All rights reserved. 
       //
       #define SSLVPN_VERSION_2PARTS SSLVPN_MAJOR_RELEASE "." SSLVPN_MINOR_RELEASE  
       #define SSLVPN_VERSION_3PARTS SSLVPN_MAJOR_RELEASE "." SSLVPN_MINOR_RELEASE "." SSLVPN_BUILD
       #define SSLVPN_VERSION_4PARTS SSLVPN_MAJOR_RELEASE "." SSLVPN_MINOR_RELEASE "." SSLVPN_BUILD ".0"
       //
       #define SSLVPN_VERSION  SSLVPN_VERSION_3PARTS
       #define SSLVPN_TXT_VERSION SSLVPN_MAJOR_RELEASE"."\
                                                                  SSLVPN_MINOR_RELEASE"."\
                                                                  SSLVPN_BUILD
       
       --------------- output sslvpn_version.h --------------- 

Wenn ein Cluster betrieben wird und das entsprechende File über den Master raufgeladen wird so wird diese nicht automatisch zum Slave transferiert dh. es muss manuell auf dem Slave ebenfalls eingespielt werden.

Wie installiere ich für FortiClient für iOS (Apple) ein Zertifikat auf den entsprechenden Device?

Das nachfolgenden Dokument gibt Auskunft wie ein Zertifikat zu erstellen ist auf einer FortiGate und dieses auf einem iOS (Apple) Device installiert wird:

       Datei:Provision-certificates-to-ios-devices-technical-note.pdf

Desweiteren stehen und den Dokumentationen weitere Dokumente zur Verfügung:

       FortiGate-5.0-5.2:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F

Kann ich den SSL Traffic betreffend encryption/decryption optimieren und beschleunigen?

Dies ist unter Umständen möglich (Ab FortiOS 5.0.3)! Eine FortiGate führt per Standard die Encryption/Decryption (Entschlüsselung/Verschlüsselung) andhand der CP7 oder CP8 FortiASIC Prozessoren durch. Wenn die FortiGate einer hohen Belastung ausgesetzt ist dh. durch eine hohe Anzahl von SSL Traffic und die eingesetzte FortiGate über mehr als 4 CPU's verfügt, kann die SSL Encryption/Decryption Optimiert werden. Dies geschieht indem der FortiGate mitgeteilt wird "WIE" der SSL Traffic zum CPU gesendet werden soll sprich wieviele "worker" bereitgestellt werden. Bei "worker" handelt es sich effektiv um Prozessoren. Um festzustellen über wieviele CPU's die eingesetzte FortiGate verfügt benütze folgende Befehl:

       # get hardware cpu

Wenn die FortiGate über mehr als 4 CPU's verfügt können die entsprechenden "worker" (CPU) die für die SSL Verarbeitung benützt werden sollen konfiguriert werden:

       # config system global
       # set optimize-ssl [enable oder disable]
       # set ssl-worker-count [Anzahl der "worker" (CPU)]
       # end
       
       NOTE Wenn die Anzahl der "worker" (CPU) erhöht wird sollte das System zu Beginn übewacht
            werden um festzustellen ob die Anzahl der "worker" andere Funktionen auf dem System
            nicht beeinträchtigen!

Wie kann ich den SSL Traffic betreffend Security zB TLS 1.0, SSLv2 konfigurieren und absichern?

Wenn man mit einem SSL-VPN Portal resp. Tunnel Mode arbeitet sind die folgenden Einstellungen relevant um den SSL-VPN Traffic auf bestimmte Versionen von TLS und/oder SSL zu beeinflussen:

       sslv2               : disable 
       sslv3               : enable 
       tlsv1-0             : enable 
       tlsv1-1             : enable 
       tlsv1-2             : enable 
       algorithm           : default

Diese Einstellungen stellen den Standard dar. Wenn man eine Uebersicht erlangen möchte was dies genau bedeutet und welche "cipher" aktiv sind durch "algorithm" kann dies anhand eines Scripts überprüft werden. Erstelle auf einem Linux ein File "cipherscan" und fülle es mit dem Inhalt der Datei "Cipherscan.txt" ab:

       # mkdir /opt/scripts
       # vi /opt/scripts/cipherscan
       # chown root:root /opt/scripts/cipherscan
       # chmod 700 /opt/scripts/cipherscan
       Datei:Cipherscan.txt
     
       NOTE Weitere Scripte auf für Windows und Anweisung siehe Link https://github.com/jvehent/cipherscan. Eine
            andere Möglichkeit einen Scan durchzuführen ist folgender Link zu benutzen:
            
            https://www.ssllabs.com/ssltest/

Nun führe den Scan aus und berücksichtige das die IP sowie der Port der benutzt wird im Kommando Analog für das SSL-VPN Portal Zugriff benutzt wird sowie im Allgemeinen der Zugriff vom Linux Server erlaubt wird:

       # /opt/scripts/cipherscan 198.18.0.1:443     
       custom openssl not executable, falling back to system one from /bin/openssl
       ...............................
       Target: 198.18.0.1:443
       
       prio  ciphersuite                  protocols                    pfs                      curves
       1     ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2                      ECDH,prime256v1,256bits  prime256v1
       2     ECDHE-RSA-AES256-SHA384      TLSv1.2                      ECDH,prime256v1,256bits  prime256v1
       3     ECDHE-RSA-AES256-SHA         SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
       4     DHE-RSA-AES256-GCM-SHA384    TLSv1.2                      DH,1024bits              None
       5     DHE-RSA-AES256-SHA256        TLSv1.2                      DH,1024bits              None
       6     DHE-RSA-AES256-SHA           SSLv3,TLSv1,TLSv1.1,TLSv1.2  DH,1024bits              None
       7     DHE-RSA-CAMELLIA256-SHA      SSLv3,TLSv1,TLSv1.1,TLSv1.2  DH,1024bits              None
       8     AES256-GCM-SHA384            TLSv1.2                      None                     None
       9     AES256-SHA256                TLSv1.2                      None                     None
       10    AES256-SHA                   SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       11    CAMELLIA256-SHA              SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       12    ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2                      ECDH,prime256v1,256bits  prime256v1
       13    ECDHE-RSA-AES128-SHA256      TLSv1.2                      ECDH,prime256v1,256bits  prime256v1
       14    ECDHE-RSA-AES128-SHA         SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
       15    DHE-RSA-AES128-GCM-SHA256    TLSv1.2                      DH,1024bits              None
       16    DHE-RSA-AES128-SHA256        TLSv1.2                      DH,1024bits              None
       17    DHE-RSA-AES128-SHA           SSLv3,TLSv1,TLSv1.1,TLSv1.2  DH,1024bits              None
       18    DHE-RSA-CAMELLIA128-SHA      SSLv3,TLSv1,TLSv1.1,TLSv1.2  DH,1024bits              None
       19    AES128-GCM-SHA256            TLSv1.2                      None                     None
       20    AES128-SHA256                TLSv1.2                      None                     None
       21    AES128-SHA                   SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       22    CAMELLIA128-SHA              SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       23    DHE-RSA-SEED-SHA             SSLv3,TLSv1,TLSv1.1,TLSv1.2  DH,1024bits              None
       24    SEED-SHA                     SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       25    ECDHE-RSA-RC4-SHA            SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
       26    RC4-SHA                      SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       27    RC4-MD5                      SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
       28    ECDHE-RSA-DES-CBC3-SHA       SSLv3,TLSv1,TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
       29    EDH-RSA-DES-CBC3-SHA         SSLv3,TLSv1,TLSv1.1,TLSv1.2  DH,1024bits              None
       30    DES-CBC3-SHA                 SSLv3,TLSv1,TLSv1.1,TLSv1.2  None                     None
      
       Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
       TLS ticket lifetime hint: 300
       OCSP stapling: not supported
       Cipher ordering: server

Bei diesem "output" sieht man schön welche "cipher" erlaubt werden wie zB "RC4" das als unsicher gilt. Ebenso sieht man welche TLS und/oder SSL Versionen aktiviert und somit benutzt werden können. Die nachfolgenden Befehle deaktivieren verschiedene TLS und/oder SSL Versionen. Dabei ist jedoch zu berücksichtigen das die Kompatibilität sinkt dh. ältere Browser etc. können danach nicht mehr zugreifen weil diese zB TLSv1.2 "noch nicht" unterstützen. Deshalb ist zu bedenken wie weit man dies einschränken möchte. Die verschiedenen zur Verfügung stehenden "cipher" werden über die Option "algorithm" gesteuert dh. über "default, high und low". Um möglichst eine "high" Encryption Algorithmus zu erlauben sowie nur TLSv1.2 kann folgendes ausgeführt werden:

       # config vpn ssl settings 
       # set tlsv1-0 disable
       # set tlsv1-1 disable 
       # set sslv3 disable
       # set algorithm high 
       # end
       
       NOTE Diese Einstellungen sind nur zu benutzen in einem kontrollierten Umfeld dh. wie schon erwähnt sinkt die Kompatibilität
            betreffend Zugriff dh. ältere Browser oder Browser die KEINE TLSv1.2 unterstützen sowie die nachfolgenden "cipher" 
            können keine Verbindung mehr aufbauen!

Nach der Konfiguration der Optionen kann wiederum ein Test ausgeführt werden der zeigen soll was noch zur Verfügung steht:

       # /opt/scripts/cipherscan 198.18.0.1:443
       custom openssl not executable, falling back to system one from /bin/openssl
       ..........................
       Target: 198.18.0.1:443
       
       prio  ciphersuite                  protocols  pfs                     curves
       1     ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       2     ECDHE-RSA-AES256-SHA384      TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       3     ECDHE-RSA-AES256-SHA         TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       4     DHE-RSA-AES256-GCM-SHA384    TLSv1.2    DH,1024bits             None
       5     DHE-RSA-AES256-SHA256        TLSv1.2    DH,1024bits             None
       6     DHE-RSA-AES256-SHA           TLSv1.2    DH,1024bits             None
       7     DHE-RSA-CAMELLIA256-SHA      TLSv1.2    DH,1024bits             None
       8     AES256-GCM-SHA384            TLSv1.2    None                    None
       9     AES256-SHA256                TLSv1.2    None                    None
       10    AES256-SHA                   TLSv1.2    None                    None
       11    CAMELLIA256-SHA              TLSv1.2    None                    None
       12    ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       13    ECDHE-RSA-AES128-SHA256      TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       14    ECDHE-RSA-AES128-SHA         TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       15    DHE-RSA-AES128-GCM-SHA256    TLSv1.2    DH,1024bits             None
       16    DHE-RSA-AES128-SHA256        TLSv1.2    DH,1024bits             None
       17    DHE-RSA-AES128-SHA           TLSv1.2    DH,1024bits             None
       18    DHE-RSA-CAMELLIA128-SHA      TLSv1.2    DH,1024bits             None
       19    AES128-GCM-SHA256            TLSv1.2    None                    None
       20    AES128-SHA256                TLSv1.2    None                    None
       21    AES128-SHA                   TLSv1.2    None                    None
       22    CAMELLIA128-SHA              TLSv1.2    None                    None
       23    ECDHE-RSA-DES-CBC3-SHA       TLSv1.2    ECDH,secp384r1,384bits  secp384r1
       24    EDH-RSA-DES-CBC3-SHA         TLSv1.2    DH,1024bits             None
       25    DES-CBC3-SHA                 TLSv1.2    None                    None
       
       Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
       TLS ticket lifetime hint: 300
       OCSP stapling: not supported
       Cipher ordering: server
       
       NOTE Wie man sieht arbeitet "Diffie Hellmann" dh. DH mit 1024bit. Möchte man mit einer höheren Bit Anzahl arbeiten steht folgendes
            Kommando zur Verfügung:
            
            # config firewall ssl settings
            # set ssl-dh-bits [1024 | 1536 | 2048 | 768]
            # end
            
            Wenn man den VDOM Mode aktiviert hat steht dieser Parameter unter "config global" zur Verfügung!

Wie man sieht wird die Konfiguration "quotiert" dh. es steht nur noch TLSv1.2 zur Verfügung und die unsicheren "cipher" stehen nicht mehr zur Verfügung. Um zu bestätigen, dass die unsicheren "cipher" wie zB "RC4" nicht mehr zur Verfügung stehen kann anhand "openssl" das auf jedem Linux System vorhanden ist folgender Test mit dem Client Teil ausgeführt werden:

       # openssl s_client -connect 198.18.0.1:443 -cipher "RC4" 
       CONNECTED(00000003)
       140687385839520:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:744:
       ---
       no peer certificate available
       ---
       No client certificate CA names sent
       ---
       SSL handshake has read 7 bytes and written 73 bytes
       ---
       New, (NONE), Cipher is (NONE)
       Secure Renegotiation IS NOT supported
       Compression: NONE
       Expansion: NONE
       ---
       NOTE Eine andere Variante dh. alle "RC4" "ciphers" zu durchsuchen und festzustellen ob anhand diesen eine Verbindung
            zustande kommt wäre folgender Befehl der auf den meisten Linux Derivaten funktionieren sollte:
            
            #  for i in `openssl ciphers -v 'RC4' | awk '{print $1}'`; do echo -ne "$i\t" ;   echo |  openssl s_client -connect [FQDN des Hosts oder IPv4]:443 -cipher "$i" 2>&1 | grep New; done
            ECDHE-RSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            ECDHE-ECDSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            AECDH-RC4-SHA	New, (NONE), Cipher is (NONE)
            ADH-RC4-MD5	New, (NONE), Cipher is (NONE)
            ECDH-RSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            ECDH-ECDSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            RC4-SHA	New, (NONE), Cipher is (NONE)
            RC4-MD5	New, (NONE), Cipher is (NONE)

Wie man sieht die Verbindung kommt nicht zustande dh. "handshake failure". Die relevante Position ist "New, (NONE), Cipher is (NONE)". Wie gesagt "Security" technisch gesehen ist die Konfiguration korrekt jedoch die Kompatibilität leidet.

Welche IP wird benutzt für das SSL-VPN Portal und kann ich diese manipulieren?

Grundsätzlich hört ein SSL-VPN Portal auf "alle" IP's die auf dem Interface konfiguriert sind (FortiOS 5.0). Bedeutet: hätte man ein externes Interface mit einer "public IP" in einem Range zB 193.193.135.66/29 hört das SSL-VPN Portal auf die IP "193.193.135.66/29". Möchte man nun zB die IP "193.193.135.67/29" benutzen konfiguriert man diese IP als "Secondary IP" zusätzlich zur IP "193.193.135.66/29". Wenn die IP "193.193.135.66/29" jedoch nicht für den Zugang für das SSL-VPN Portal benutzt werden soll kann dies über eine manuelle "Local-In Policy" verhindert werden da diese vor der regulären Policy abgearbeitet wird. Das Gleiche gilt für alle anderen Interfaces dh. das SSL-VPN Portal ist unter FortiOS 5.0 per Standard auf allen Interface's erreichbar. Soll dies verhindert werden, kann dies über eine manuelle "Local-In Policy" verhindert/konfiguriert werden. Nähere Informationen zu der Erstellung einer "Local-In Policy" siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F

Wenn für den "interne" Request eine andere IP benutzt werden soll so kann dies mit einer entsprechenden NAT Rule/Implementierung gewährleistet werden. Nähere Informationen betreffend NAT Rule/Implementierung siehe Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_wird_ein_Source.2FDestination_NAT_auf_einer_Fortigate_implementiert.3F
       
       NOTE Unter der global SSL-VPN Konfiguration stehen desweiteren folgende Optionen zur Verfügung:
            
            # config vpn ssl settings
            # set route-source-interface [enable | disable]
            # set source-interface [enable | disable]
            # end

Wenn VDom's aktiviert wurden und eine zusätzlcihe VDom zur "root" VDom über einen "inter-vdom" Link verbunden ist so komuniziert der über's SSL-VPN Portal eingeloggt User über das Interface des "inter-vdom" Link's auf der "root" VDom Seite:

                         ______________________                                                                     _______________________
       193.193.135.66/29|                      | Interface-root-vdom                          interface-vdom1-vdom |                       |
       ----- WAN 1 -----|  Fortigate vdom-root |------------------------- inter-vdom-link -------------------------| Fortigate vdom-vdom1  |
                        |______________________|                                                                   |_______________________|
       
       NOTE Die Erklärung dazu ist das das "Interface-root-vdom" Interface als WAN Interface gilt für die
            VDom "vdom1"!

Kann ich für SSL-VPN ein "Custome Language File" erstellen/konfigurieren?

Auf einer FortiGate ist das Web Mgmt. Gui und andere Gui's auf Englisch. Unter der folgende Position können andere Sprachen gewählt werden:

       System > Admin > Settings > View Settings > Language > [English | French | Spanish | Portuguese | Japanese | Tradional Chinese | Simplified Chinese | Korean]

Andere Sprachen wie Deutsch stehen nicht zur Verfügung. Ab FortiOS 5.2 ist es jedoch möglich für folgende Funktion ein eigenes "Sprachefile" anzulegen (Custome Language File):

       • SSL VPN Portal
       • SSL VPN Personal Bookmarks
       • Guest Management Admin Accounts (Guest Access Provisioning)
       
       NOTE Weitere Informationen betreffend "Guest Access Provisioning" siehe nachfolgender Artikel:
            
            FortiAP:FAQ#Wie_implementiere_ich_ein_.22Wireless_Guest_Access_Provisioning.22.3F
            FortiAP:FAQ#Wie_implementiere_ich_ein_.22Wireless_Guest_Access_Provisioning.22_.28Guest_Management.29_ein_.22Custome_Language_File.22.3F

Wenn für das SSL-VPN Portal sowie User Settings ein eigenes "Sprachfile" erstellt werden soll muss folgendermassen vorgegangen werden:

       # config system global
       # set gui-custom-language enable
       # end
       
       Durch die Aktivierung von "gui-custom-language" wird ein zusätzlicher Menüpunkt auf dem Web. Mgmt. Interface auf der Fortiate 
       aktiviert:
       
       System > Config > Advanced > Language
       
       Fortinet-1285.jpg
       
       Unter der Position "Download Sample Language Template" kann eine Vorlage runtergeladen werden, die herangezogen werden kann um 
       das "Sprachfile" zu erstellen. Nachfolgend ein Beispiel dieses "Sample Language Template":
       
       Datei:Sample-language-template.txt
       
       Nachdem das "Sprachfile" modifiziert wurde kann es unter folgender Position wieder raufgeladen werden:
       
       System > Config > Advanced > Language > Create New
       
       Fortinet-1286.jpg
       
       Danach kann das entsprechende File raufgeladen werden:
       
       Fortinet-1287.jpg
       
       Damit das entsprechende File benutzt wird in der Funktion muss dies unter Kommandozeil und/oder über Web Mgmt. Interface 
       konfiguriert werden:
       
       VPN > SSL > Portals > [Wähle das entsprechende Portal] > Page Layout > [Wähle das entsprechende "Sprachfile"]
       
       Fortinet-1288.jpg
       
       # config vpn ssl web portal
       # edit [Wähle das entsprechende Portal]
       # set web-mode enable
       # set custom-lang [Wähle das entsprechende "Sprachfile"]
       # end
       # end
       
       Um das "Sprachfile" betreffend "SSL VPN Personal Bookmarks" basierend zu konfigurieren muss folgendes durchgeführt werden:
       
       # config vpn ssl web user-bookmark
       # edit [Wähle einen entsprechenden Namen]
       # set custom-lang  [Wähle das entsprechende "Sprachfile"]
       # end
       # end
       
       NOTE Die Funktion "SSL VPN Personal Bookmarks" ist eine Zusatzfunktion und wird per Standard nicht über das
            Web Mgmt. Interface angezeigt dh. dieses Feature kann über folgende Position aktiviert werden:
            
            System > Config > Feature > Show More > SSL-VPN Personal Bookmark Management

Wie kann ich für die SSL-VPN Funktion eine Statistik betreffend Memory, Verbindungen, Max User anzeigen lassen?

Eine SSL-VPN Statistik kann über Kommandozeile und über folgenden Befehl aufgelistet werden:

       # diagnose vpn ssl statistics 
       SSLVPN statistics (root):
       ------------------
       Memory unit:               1
       System total memory:       1928445952
       System free memory:        1473814528
       SSLVPN memory margin:      314572800
       SSLVPN state:              normal
       
       Max number of users:       0
       Max number of tunnels:     0
       Max number of connections: 0
       
       Current number of users:       0
       Current number of tunnels:     0
       Current number of connections: 0

Bei dieser Statistik ist folgendes zu berücksichtigen: Wenn der "SSLVPN state" von "normal" auf "busy" wechselt, geht/befindet sich der SSL-VPN Deamon im Conserve Mode. Oft ist der "busy" Status zurückzuführen auf zuwenig Memory, dass für den Deamon zur Verfügung steht. Wenn der SSL-VPN Deamon im Conserve Mode ist, heisst dies nicht das sich die FortiGate im Conserve Mode befindet. Die Ursache wieso der SSL-VPN Deamon sich im Conserve Mode befindet sollte untersucht werden, da dies geschieht/ausgeführt wird um nicht die ganze FortiGate zu beeinträchtigen. Somit ist der Conserve Mode des SSL-VPN Deamons nicht gleich Conserve Mode der FortiGate!

Wie kann ich den SSL-VPN Deamon bei Problemen neu starten?

Eine Variante den SSL-VPN Deamon bei und/oder nach Problemen neu zu starten, ist durch die PID (Process ID) und anhand des "kill" Befehls den Deamon zu zwingen einen Neustart auszuführen. Damit dies durchgeführt werden kann, muss zuerst die PID (Prozess ID) eruiert werden. Dies kann durch folgenden Befehl durchgeführt werden:

       # diagnose sys top 5 20
       NOTE Weitere Informationen dazu siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_rausfinden_was_ein_High_CPU_verursacht_und_was_kann_ich_dagegen_tun.3F

Eine andere Variante die Prozess ID (PID) zu eruieren ist über den folgenden Befehl:

       # fnsysctl ls -l /var/run/
       
       NOTE In diesem Verzeichnis befinden sich sämtliche Deamon Prozesse. Für SSL-VPN ist der folgende zuständig:
            
            sslvpnd.pid
            
            Um nun die PID des Files zu eruieren benütze folgenden Befehl:
            
            # fnsysctl more /var/run/sslvpnd.pid
            75

Wenn die Prozess ID (PID) eruiert wurde kann der Deamon mit folgenden Befehl neu gestartet werden:

       # diagnose sys kill [Kill Level/Sequenz 1 - 32 wobei 11 den Prozess stopp und neu startet] [PID des Prozesses zB. "75"]

Wie kann ich für ein SSL-VPN (Web Mode/Tunnel Mode) ein Registry Check konfigurieren (Host Check)?

Mit einem SSL-VPN Portal/Tunnel Mode ist es möglich einen sogenannten "Registry Check" (Host Check) auszuführen dh. wenn der User zB den Browser öffnet und auf das Web Portal (Web Mode) über FQDN und/oder IP zugreift sowie einloggt, wird im Hintergrund ein sogenannter "Host Check" ausgeführt. Soll ein Login in das SSL-VPN Web Portal nur dann ermöglicht werden, wenn ein bestimmter "Registry Eintrag" existiert, kann dies über die Funktion "Registry Check" durchgeführt/konfiguriert werden. Das Gleiche gilt für den SSL-VPN Tunnel Mode was wiederum bedeutet: Versucht sich ein User über SSL-VPN Tunnel Mode einzloggen, wird das Einloggen nur dann erlaubt wenn ein bestimmter "Registry Eintrag" existiert. Dies erlaubt zu unterscheiden, ob ein Zugriff über einen bestimmten Device erlaubt ist wie zB der Zugriff über einen Device im "Internet Café" soll verhindert werden und der Zugriff über einen "Geschäfts Laptop" soll erlaubt werden. Damit dieser "Registry Check" im SSL-VPN Web/Tunnel Mode durchgeführt werden kann, muss der SSL-VPN Client auf dem Device von dem auf den SSL-VPN Web/Tunnel Mode zugegriffen werden soll installiert werden dh. als:

       - FortiClient SSL-VPN
       - SSL-VPN Client ActiveX
       - SSL-VPN Client Java Mode

Da der FortiClient/SSL-VPN Client im SSL-VPN Web/Tunnel Mode "immer" als Administrator installiert werden muss, sind die Voraussetzungen gegeben um den entsprechenden "Host Check" auszuführen (Zugriff auf Registry). Um die Konfiguration durchzuführen für den "Web/Tunnel" Mode muss folgendes konfiguriert werden:

       Definition des entsprechenden Registry Checks
       
       # config vpn ssl web host-check-software
       # edit [Name für den Registry Check]
       # config check-item-list
       # edit [Gebe einen entsprechenden Integer an zB "1"]
       # set target [Gebe den entsprechenden Registry Key an zB "HKLM\\SOFTWARE\\Something\\Example"]
       # set type registry
       # next
       # end
       # next
       # end
       Angabe des entsprechenden Web Portal sowie Aktivierung des Registry Checks
       
       # config vpn ssl web portal
       # edit [Name des entsprechenden Web/Tunnel Mode]
       # set host-check custom
       # set host-check-policy [Name des Registry Check vergeben für "host-check-software"]
       # next
       # end

Wenn ein Client versucht eine Authentifizierung für den entsprechenden Mode SSL-VPN Web/Tunnel Mode auszuführen wird wenn der "Registry Eintrag" nicht existiert folgendes angzeigt:

       SSL-VPN Tunnel Mode
       
       Fortinet-1371.jpg
       SSL-VPN Web Mode
       
       Fortinet-1372.jpg
       
       NOTE Wird im Web Mode kein entsprechender SSL-VPN Client vorinstalliert so erscheint im Browser folgende Nachricht
            um auf diesen Umstand hinzuweisen:
       
            If you see the yellow warning bar that the hostcheck ActiveX control is not installed or need permission to run, please click on it 
            to install or run it. Alternatively, if you do not want to install or run the ActiveX control, the host checking function can be 
            performed by a Java applet.

Wie kann ich für ein SSL-VPN (Web Mode/Tunnel Mode) ein "Windows OS Check" konfigurieren (OS Check)?

Für ein SSL-VPN Web Mode/Tunnel Mode ist es möglich betreffend Windows Version einen sogenannten "OS Check" durchzuführen. Dies bedeutet: Greift der User mit einem Client zu, wird im Hintergrund überprüft ob der User ein bestimmtens OS installiert hat und über einen bestimmten Patch Level verfügt. Beim Patch Level wird angegeben über welchen Patch Level er im "minimum" verfügt. Ist der "OS Check" nicht erfolgreich wird der Zugriff resp. Login nicht erlaubt. Damit dieser "OS Check" im SSL-VPN Web/Tunnel Mode durchgeführt werden kann, muss der SSL-VPN Client auf dem Device von dem auf den SSL-VPN Web/Tunnel Mode zugegriffen werden soll installiert werden dh. als:

       - FortiClient SSL-VPN
       - SSL-VPN Client ActiveX
       - SSL-VPN Client Java Mode

Ein "Windows OS Check" wird folgendermassen konfiguriert:

       # config vpn ssl web portal
       # edit [Name des entsprechenden Portals im Web Mode/Tunnel Mode]
       # set os-check [enable | disable]
       # config os-check-list [windows-7 | windows-8 | windows-8.1 | windows-2000 | windows-vista | windows-xp]
       # set action [check-up-to-date | deny | allow]
       # set latest-patch-level [1 - 255]
       # set tolerance 1
       # end
       # end
       
       NOTE Wird die "action" auf "allow" gesetzt muss kein entsprechender Patch Level definiert werden da nur kontrolliert wird
            ob der Client über das definierte "OS" verfügt. Möchte man ein Patch Level überprüfen muss die Option "check-up-to-date"
            gesetzt werden! Wird "check-up-to-date" gesetzt wird mit dem entsprechenden "latest-patch-level" so steht die Definition
            "tolerance" im direkten Zusammenhang mit "latest-patch-level". Dies bedeutet die "tolerance" definiert -1 für die Definition
            "latest-patch-level". Die Option kann variert werden dh. möchte man zB "windows-7" im "latest-patch-level" mit einer 
            "tolerance 1" erlauben jedoch "windows-xp" nicht würde man folgendes konfigurieren:
            
            # config vpn ssl web portal
            # edit [Name des entsprechenden Portals im Web Mode/Tunnel Mode]
            # set os-check enable
            # config os-check-list windows-7
            # set action check-up-to-date
            # set latest-patch-level 2
            # set tolerance 1
            # end
            # config os-check-list windows-xp
            # set action deny
            # end
            # end

Grundsätzlich ist zu bedenken, dass die Informationen die im Hintergrund durch die FortiGate benutzt werden um das OS zu überprüfen statisch sind dh. wenn Microsoft einen Patch lanciert der diese Ueberprüfung des OS beeinflusst kann es zu Problemen kommen dh. FortiGate muss dann die neuen Informationen wieder in die Ueberprüfung einfliessen lassen. Aus diesem Grund sollte auch die Definition des Patch Levels nicht zu eng gesetzt werden und der OS Check für eine grössere Sicherheit event. mit dem "Host Check" kombiniert werden. Dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_ein_SSL-VPN_.28Web_Mode.2FTunnel_Mode.29_ein_Registry_Check_konfigurieren_.28Host_Check.29.3F

Wie starte/stoppe ich den FortiSSLVPNclient auf auf einer Workstation auf der Kommandozeile?

Wenn ein "FortiSSLVPNclient" auf einer Workstation installiert wird (nicht FortiClient Endpoint Security) kann dieser per Kommandozeile manipuliert werden. Dies bedeutet: Soll dieser zB per Kommandozeile anhand eines Scripts gestartet oder gestoppt werden kann folgender Befehl benutzt werden (Dos Box):

       > FortiSSLVPNclient.exe [connect | disconnect]

Es stehen ebenfalls für diese "FortiSSLVPNclient.exe" zusätzliche Optionen zur Verfügung:

       Fortinet-1596.jpg
       
       NOTE Wurde der FortiClient Endpoint Security installiert und man möchte verhindert das dieser automatisch startet
            siehe nachfolgenden Artikel:
            
            FortiClient:FAQ#Wie_kann_ich_verhindern_das_der_FortiClient_Endpoint_Security_auf_einer_Workstation_einen_automatischen_Start_ausf.C3.BChrt.3F

Welche Firewall Policy Rule muss konfiguriert werden wenn über ein VPN SSL (Web Mode) die Destinationen einer IPSec Verbindung erreicht werden will?

Ausgehend davon, dass wir ein SSL-VPN konfiguriert haben im "Web Mode" dh. nicht über ssl.root und anhand des FortiClients und über dieses SSL-VPN im Web Mode eine Destination über IPSec erreichen möchten muss bei der Firewall Policy Implementation folgendes implementiert/konfiguriert werden:

       NOTE Betreffend Konfiguration eines SSL-VPN im Web Mode siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.2_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F
       Das nachfolgende Beispiel basiert auf FortiOS 5.0.x dh. unter diesem Release wird ein SSL-VPN im "Web Mode" über eine
       sogenannte "Identity Based Policy" erstellt. Unter FortiOS 5.2.x gibt es diese Art dh. "Identity Based Policy nicht"
       mehr. Somit muss eine normale Rule implementiert werden die anhand der SSL-VPN Gruppe für die Authentifizierung den
       Traffic erlaubt. Unter FortiOS 5.2.x stehen betreffend "Web Mode" unter CLI zusätzliche Kommandos zur Verfügung anhand
       dieser die Source IP des "Web Mode" beeinflusst werden kann!
       
       Ordentliche Firewall Policy Rule für den VPN-SSL Zugang (Web Mode)
       # config firewall policy
       # edit [Integer zB "1"]
       # set srcintf [Interface des ISP zB "wan1"]
       # set dstintf [Interface der Destination die über SSL-VPN erreichbar sein sollen zB "internal"]
       # set srcaddr [Source Public IP Adressen IPv4 oder "all"] 
       # set dstaddr [Destination IP Adress Objekt für internal zB "net-lan-192.168.1.0-24"]
       # set action ssl-vpn
       # set comments [Kommentar zB "Allow Incoming SSL VPN Portal"]
       # set identity-based enable
       # config identity-based-policy
       # edit 1
       # set schedule "always"
       # set logtraffic all
       # set utm-status enable
       # set groups [Name User Gruppe für SSL-VPN]
       # set service [Definition der Service zB "ALL"]
       # set sslvpn-portal [Name des SSL-VPN Portals]
       # next
       # end
       # next
       
       Zusätzliche Firewall Policy Rule für den VPN-SSL Zugang zum IPSec (Web Mode)
       Im nachfolgenden Beispiel gehen wir davon aus, dass auf der FortiGate auf dem das SSL-VPN (Web Mode) konfiguriert
       wurde ein Site2Site VPN exisitiert (Interface Based) mit dem Namen "ipsec-vpn1". Das Destination Netzwerk im IPSec
       das erreicht werden soll ist der IP Rang 10.10.10.0/24. Ebenso wurde für das SSL-VPN ein "IP Pool" Objekt definiert
       mit dem IP Range 192.168.5.0/24.
       
       NOTE Grundvoraussetzung damit die Destination des IPSec erreicht werden kann ist ein routing Eintrag der den IP Range
            10.10.10.0/24 auf das IPSec Interface "ipsec-vpn1" sendet. Ebenfalls muss die Source IP des "IP Pool" Bereichs von der
            Remote Destination zurück geroutet werden damit das Packet von der Remote Seite wieder den Ausgangspunkt erreicht! Dies
            bedeutet die Remote Seite muss den IP Range für IP Pool 192.168.5.0/24 zurück Routen.
       
       # config firewall policy
       # edit [Integer zB "2"]
       # set srcintf [Interface der Source zB "wan1"]
       # set dstintf [Interface des IPSec Phase1 zB "ipsec-vpn1"]
       # set srcaddr [Source Public IPv4 Adresse Objekt oder "all"]
       # set dstaddr [Destination IP Adress Objekt für ipsec-vpn1 zB "net-lan-10.10.10.0-24"]
       # set action ssl-vpn
       # set comments [Kommentar zB "Allow Outgoing IPSec Reqeust for SSL-VPN Portal"]
       # set identity-based enable
       # config identity-based-policy
       # edit 1
       # set schedule "always"
       # set logtraffic all
       # set utm-status enable
       # set groups [Name User Gruppe für SSL-VPN]
       # set service [Definition der Service zB "ALL"]
       # set sslvpn-portal [Name des SSL-VPN Portals]
       # next
       # end
       # next
               
       # config firewall policy
       # edit [Integer zB "3"]
       # set srcintf [Interface der Source IPSec Phase1 zB "ipsec-vpn1"]
       # set dstintf [Interface der Destination zB "wan1"]
       # set srcaddr [Source IP Adress Objekt für ipsec-vpn1 zB "net-lan-10.10.10.0-24"]
       # set dstaddr [Destination IP Adress Objekt für IP Pool zB "net-ip-pool-192.168.5.0-24"]
       # set action "accept"
       # set comments [Kommentar zB "Allow Incoming IPSec Reqeust for SSL-VPN Portal"]
       # end

Certificate

Was für ein Standard Zertifikat (Default CA) ist auf einer FortiGate installiert?

In der Vergangenheit war auf jedem FortiGate Device das gleiche Standard Zertifikat (Default CA) installiert (FortiOS 5.0.x). Weitere Informationen dazu siehe nachfolgenden Link:

       https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-4948

Ab FortiOS 5.2 wird dieses Standard Zertifikat "für den Device" initialisiert (Device Spezifisch) sobald dieses durch eine Funktion benötigt wird wie zB "Deep Inspection, Zugriff über https auf Web Mgmt Interface". Für einige Funktionen wie zB High Availibility (HA) und Load Balancing wird nachwievor das Standard Zertifikat herangezogen für die Konfiguration. Dies kann jedoch per Konfiguration auf das "für den Device" initialisierte Zertifikat geändert werden.

       NOTE Bei einem Upgrade auf FortiOS 5.2 werden die vorhandenen Standard Zertifikat und dessen Konfiguration nicht verändert!

Wenn die Initialisierung eines Zertifikates "für den Device" manuell ausgeführt werden soll so kann folgendes durchgeführt werden:

       Das folgende Kommando generiert den "Public Key" basierend auf der CA (Certificate Authority):
       
       # execute vpn certificate local generate default-ssl-ca
       
       NOTE Weitere Informationen zu diesem Befehl siehe auch folgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_ein_Certificate_.22Regenerieren.22_um_ein_.22Device_Spezifisches.22_Certificate_zu_erhalten.3F
       Das folgende Kommando generiert den "Private Key" (Auch Server Key) basierend auf der CA (Certificate Authority):
       
       # execute vpn certificate local generate default-ssl-serv-key
       NOTE Wenn ein Zertifikat von einer FortiGate zu einer anderen FortiGate exportiert/importiert werden soll siehe nachfolgender
            Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_.22Local_Certificate.22_von_einer_FortiGate_exportieren_und_in_eine_andere_FortiGate_importieren.3F

Im Hintergrund wird anhand der Befehle folgendes ausgeführt:

        Public Key
        
        # execute vpn certificate local generate default-ssl-ca
        
        --------------- diagnose debug cli -1 --------------- 
        
        # config vpn certificate local
        # edit "Fortinet_CA_SSLProxy"
        # set password ENC 3XUrWIPNc/BA42RxIdqcY9GWrZUcHds2An+wxlrPVBof7yVMJkd5iVzRTRXbsdG8j/b2CZ/xVKV6Tc6t5Qxi3CjlSYotGk58lCcZ1BVAwnxFhu5G5bEBBuKPkWT1BmhmbNJX5m0qF6CAFDARCojarpeLaFyE7p7oZ6+6khGfD6rQKVLQo0MBzJIZoNkOuY4cuDC07w==
        # unset private-key
        # set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
        MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIE10eK8o+FwoCAggA
        MBQGCCqGSIb3DQMHBAijxt3zyI/ycASCBMgaGu4CjJxFC2creE81Y4qcycEixRfb
        MgvvPAk84mhJjAaV3OJNWZO8TPf+wA2Y7CZOlUS/oiXLFa385ij6xqAvyJlTG8Zu
        pGbo3Gxw79i/VthViMmxiuuh3RYmxFFHRzgDeKDySnm5+o/kMwhr6pdvQhLyOkPW
        IY6CIglgiYOUE9DkmT/PLQEAE7NTobT/N6indklWjnPcWf60UeXG5/eel1+kBdmA
        JPdY6R164Ih4TW5x5rCWlZY+xKH4VQk0uQJtjjeUt55Boo/x3lVPyx46Yhi/QWfk
        z5Zo2Gt7lGQUH6g5onhW6cTHmOqvSRpbEw+2oN03DakXOPRXQMd/iC7FbxBsBzqr
        X8W/PzISKX4GeBdAYkAdEMqFvezd+WG7jGSas5ckCSbiOIm3fx2PGso0SUPHyvnS
        6eeyfbv281/UBID5XYQ2vvbQ9JDEA7i0yR2Lk8GORjjbiZJdExQrnNyzc1dAESJj
        W9r5g55BFLuz1VuCZQo7rcqkb/0QLtkj3eYYl5biS1GdDjIt0wT9lKFiCQnSbu4i
        JqT8bMFMj69aUG4AJOCHmC+gfALT6FDoExW9sI/R42s3WZhVb53kAB8ClUb1IwWh
        xwA+UnnsrzvMXRl6uO30SKYnTNz6hG6KNgi/In2P7CjD/QZtIROJkpdk62dTqqDn
        qHMs8v/LszGnfOQsOs8X5YL4e/0VMx/xFr4r8itGlD7V/Oqv3G3afaQQj0CIUS13
        DQcCe+R0Op3PunVDy1EP+xzh4L0LUWT9cnQT5W/wUSUduMcAeXTGSMwvkU0Yj+n7
        ETUh1+GhMmMjYcOSZcawQyG2dXtRhzl5683jrJUbCTgK8ECWktK2YK1HYVZ3xtyv
        THon+8GS6Ks8Gl/WI9cMTSHY9Rtv1C8Mu/yXOG+dGA42hWE18fHmoz3JPl9ltpHy
        JHrCbUD4IgLSOgVdfhBm6pAVM+nZhrWSiplq7hEk+iTAZhVA1TPGeOtyfSOrBShV
        WUn68Rb92C81WT5a8PMMqoWRny8OFq15MaEIQyyAwQYTyurJu8exuxHMF0t3XM4T
        hLnqSJERjyjux+TyCzdTPNTRNsBMkbQwz6u0T3gAiAYEjaYaEWcXE7Vr+pqefU7j
        cJQHBMUxQBKpq6ErQmpKH6ONQFhdPRfqaAXpCM57GA796FaElGyi+GeQuzTTasVf
        wCpODSVKmsSJ9Opbvy1qTkGTc7q2epPPdWGW7/HHGpfH83Wx8qLnompZ+LbL0x6l
        FgnRiNY0l3nvMXobgQfXT11Qg+Z4ZN84VQDmlQNb/wabqFqKoHsqzJ4n63IUMMqI
        4TVZZ7v6i9xZt7N09E+1gex/+qXn+2c2+A4BXMbt2RgXB3qWQFg4SGqltQxd1g+8
        fXMUZdEYCsFGC4EtocScgN4fAKVs9Q8atpEXCHIRu8GEJxpuN9Bv795y/yZkTIbK
        uE3XD2XjYsmgI1DffnVbEi6CZDJY6ljdx7vIR1pmC19xE646aEGeSpt+P5i2us1f
        V4nkNxz6MoGk/MfA9iGOK0KOpzMgGWpn5bgGzgEFD9o7knfbRuJsFHizmx3jc76R
        dfTzOw83sIL5nUEf85FxNiaHyp+cOH3rdGgq9OZ8cxFYfp4ffBdjjOGYnALHhjhy
        -----END ENCRYPTED PRIVATE KEY-----"
        # unset certificate
        # set certificate "-----BEGIN CERTIFICATE-----
        MIID2jCCAsKgAwIBAgIEAdKqcjANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMC
        VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVN1bm55dmFsZTERMA8G
        A1UECgwIRm9ydGluZXQxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0eTEV
        MBMGA1UEAwwMRm9ydGlHYXRlIENBMSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGZv
        cnRpbmV0LmNvbTAeFw0xNDA4MTExNTA0MzJaFw0yNDA4MTExNTA0MzJaMIGlMQsw
        CQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAGA1UEBwwJU3Vubnl2
        YWxlMREwDwYDVQQKDAhGb3J0aW5ldDEeMBwGA1UECwwVQ2VydGlmaWNhdGUgQXV0
        aG9yaXR5MRUwEwYDVQQDDAxGb3J0aUdhdGUgQ0ExIzAhBgkqhkiG9w0BCQEWFHN1
        cHBvcnRAZm9ydGluZXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
        AQEAnPRyKu6hfz40NJF7FfZB+E/KCylUgqkqc5V4qyHQahq/Deyai/dvctF748NV
        +7ojuu2t33PoYokyz9L5C/FaBCTnQzYbJNCdgNZFUkzvafTcn8yk9KQYoptB1Lrl
        cix7NLf5xBztlvPhfwT8WCOXZKKhQ0wRC8iUrjkjBWMvMdxZio/2mcPGw2w8/r1q
        Dm6zLVUbr3DQSadmBFXtgFyZ7hZrA2SClRDr/uNg58c5Lds+p8rIA/2icpOGPlEt
        rAjAuXnkk1vHGNaZLN15XGCLnPDjHs6MQ1KRRn24NG/HS8boG4hsAQCO1zteG6kM
        ZwXxZYhbsE//MLJHVgrGxkkMiwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqG
        SIb3DQEBBQUAA4IBAQBcubmobonUjYBWUuKA8zNRH58JwOlYiEfm5b981OvfwiNY
        Vgu48ikq1hp+lzoETfE239ZDnWw4tClLrlnlVPuEQ7JTNl/TvvT6KjoyLCXDADRz
        51tJLHbLglXmNHE3BlPfMJV41Xg0lpeU3sXkhbGTsnFPBSmeEfFNwA4ylBQEVlT+
        BYEAK76vEd4seEs1+bkMCorZTWipMEb1i2uz9Jh/k1MN4KcfRwqOlfXP8PNXjcsS
        oKhXYJ0/FVXjX19xQKdzHyE9C6qAnyYuJiGgOR51FgRcYVjhaluYqZbfSqv4vW+N
        +6ZmD74gUohcntwE8tLpZpt7YrCLuzwz
        -----END CERTIFICATE-----"
        # unset ike-localid-type
        # end
        
        --------------- diagnose debug cli -1 --------------- 
        Private Key (Server Key)
        
        --------------- diagnose debug cli -1 --------------- 
        
        # execute vpn certificate local generate default-ssl-serv-key
        
        # config vpn certificate local
        # edit "Fortinet_SSLProxy"
        # set password ENC PtvSApK8tvLRVCM3VshEE/b9RZNswrjVxKtor0QfbMvAI74mGp5c1ib37WV6y4K0Y1r/tpOIQydoGAxruMpzYri5oQASMJf2kewHw5z5uEXcP1G3nywC1uL58Hf0iVJsZMzz8GMhtYiw5GsRYlsFB45g0KfgVBw5r/ktsCRTiOL0MgDhTz5ZgOLx0Ai6ttNRCLc8Mw==
        # unset private-key
        # set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
        MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIB0WErcyXLGICAggA
        MBQGCCqGSIb3DQMHBAjU9T3m5lo+YgSCBMhcwlABHfktvX5EZoknsLnwnYGBD0NL
        vDvgYgcc5Yo9jPGjVWR8YgRcfqXE7BBJ/zWtQvWOsMBsvWbmDgNInQzIxBZ/W9R7
        3wl+pEt/PFgXbiLwToFfH2WqD7IiYokn+zwR77cWOpyIsUP338fzPgFhhtDD1ub4
        67MAeRPeviuKynEsOLSP/jL+L1D4ktmssBV1CWrNxGmRIwby4ng4FpsOE8TbOjf6
        m+CMnQvEgiDo9t+eDZV0pohJovN2G8QszM9Yd79ZA5SE9GlgVBblpxrEX3nbWYeP
        FLmI5ipUdtLz2/npspfLLu8N8d2pJEbadnh5RhF3e5GdMoIkJR+LyvJDDnHyLPWR
        50dBgYLU3/G5/tzy/2zFdUjFQ0c2quYgytoo7x2LYKDaDmpniio0YGQChQ95xWwb
        ivof3YY/cEfyp12Yywv6marvRTEjLctiFggoX6YxDkCu429bL5OssU8WBp046vgR
        tehG9fgvFn3xqh/qNUo1PJ4fgGhCz+vssIvzuAX2qQBpq5/yULhoHeS8Vj8nJFm/
        tY0+VEBFMIHg/+wxzxEXniPIk5rnlA5muqnx0EQoY8gGUtez5BRW9ZVhtel+cQRN
        iyJWcbzWjn1If1npyJnYSaW5JpVvZmpYFbSY7puOfYPcGMksFJzA2v5VaYJBE243
        tE4im9KXtVHgml0zKc37Rq7hV2c6xq0GzriADnsPxbggTvdm4eqtau31ELvmbpiy
        T/GRCK8S48RlmTNXN42NIzXlezmFs7+i9OX92HsvI4VFhVU1a84b5vYDnvXjEa8d
        AII4FBHa9ASTr3iDZaF78g7X2Pa4q9Bq/9EC6RcTgK0dbGa7tj8dCbS7Jkwmf/Ns
        acwWIQ9yWahPwCzDes+CAmRpqoNUZI6DXpWU9SqkqSSBp0sYIa9oCZjO5yDtLnku
        mEkdI6T/OFdk7n89vmyDfVXFBVqgrSxhy4ngvueLaPeNDiIaMNz+EieSoQDDrcTD
        rc3RpeQAT76YMlJKCTaisqCc2KdejwUthw7XoOJeQKddveVs4raf23v0qH/vcc61
        66PoBgeaJyg7dla+mQN+6Yhq8/yBpBdz3Vb+Q3it63HLzkzWK861vK+kyEU+tGED
        g6v3FXDZtpWvSOynxgyEssCdyKHYE9g8f37BXDoiXnfLi/Qv//1DsVRCEuoj0Ck8
        7noCN1UUmM+PmXIjuu85dHOU8wjA7VNa96KsbZWuC9XvXrrGSYDXyWpyosJh9/ha
        iML+P9Yc8zkZW7dQ/Hi9CgwkqHtDEetv1WwhnIzeHenJwVJ0yW61LKHdMMNouEk4
        5g+QjqeLV0NULpHVsM5ia88aGNlv/3XRDrJiialLcI9EwhKCkc0LF2P+mBpFRZpn
        C6zfGD/Ak15TH3tptXgxu5loc3uXX5ZV7pzoiOgrKpz0k2XWFXPY4YSK3Awy9DCl
        LUOPzU/Q9iwpp9MIKdjMpsoGcX4PiCVnQbHfpuQaeMC2xiGZLO6MW0gXFXb6FpZR
        8F68bCkaoWWq5RNLSyIhvyStsuLeyNmLjGAyENO+Tm4URVv6oio375ddDbh2nSYj
        DMt71GMH5OPbRPgumOfR0rlWu+hfFskR2CHXUDcWs6Iz9uptxFY1MVmS9z2Ea4xo
        -----END ENCRYPTED PRIVATE KEY-----"
        # unset certificate
        # set certificate "-----BEGIN CERTIFICATE-----
        MIIDxzCCAq+gAwIBAgIEazUooTANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMC
        VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVN1bm55dmFsZTERMA8G
        A1UECgwIRm9ydGluZXQxEjAQBgNVBAsMCUZvcnRpR2F0ZTEZMBcGA1UEAwwQRm9y
        dGlHYXRlIFNlcnZlcjEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmb3J0aW5ldC5j
        b20wHhcNMTQwODExMTUwNzIwWhcNMjQwODExMTUwNzIwWjCBnTELMAkGA1UEBhMC
        VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVN1bm55dmFsZTERMA8G
        A1UECgwIRm9ydGluZXQxEjAQBgNVBAsMCUZvcnRpR2F0ZTEZMBcGA1UEAwwQRm9y
        dGlHYXRlIFNlcnZlcjEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmb3J0aW5ldC5j
        b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvrifnOIq20gB89y+y
        ZIA3xzHsdx4x3UsElXBgBpI3cDoVfYJ997WIr0+MLvik7XGHyQAwu92dH+l3U2Mj
        CK7dqkeAIspBx5btS+WTyafWqjF9uKLy3Dp9ukp1opWJ7uBx9jmY/uArPcFL9jAl
        HlbR5CepqGGxhp70cEmvrsDT/XYVjX+jvqDMUt8O7aqWmuXrraP41LI3xP2FXADG
        ZvqrszxgU2IVkA38pyj/tokccmBBVn6omPprqAUdlbS89WHBpaeH1ouH6qsW9PSe
        +ojYKCDDFUE/qnebvT0feeWaMrFDaTNHp2ckTXbhQb8al7uuQ4Yl1OmXRS/ONp4d
        idz7AgMBAAGjDTALMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADggEBACaPr9uc
        71GNMcV7CkbGqVnT/edZJ1zyYqW/0cUFO++yNUU8IkwUfCw9+VShHSj1qkJbDrHl
        wxfVpKXg80FFka0mZRGKAspMGvRwluuJWXI2OAuGLzgg8r6LhElvaRr/EYm8QhAI
        CJm8GVisdqr9W4yBEHr7MxgacLWSdVmCsWjXjMGzMWcl1Q0tvGaiJ4mlZQtyKEOr
        yYOe1T0O58tYANwPDN+ojrhR1R8WKuBdul7cnh2ZKHHFnTOGBCpY92ZMNZXHCTFP
        QapfB8TxrVTCewUiKyY4RK79mFAiysEZ9mnP4X5POSejpQS/Ro3oOKKWq+X6njqH
        IrqxQzTo=
        -----END CERTIFICATE-----"
        # unset ike-localid-type
        # end
        
        --------------- diagnose debug cli -1 ---------------

Wie kann ich auf einer FortiGate ein Certificate "Regenerieren" um ein "Device Spezifisches" Certificate zu erhalten?

Wie im nachfolgenden Artikel erklärt wird auf allen FortiGate betrieben mit FortiOS 5.0.x das gleiche Zertifikat benutzt (Per Standard):

       https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-4948

Mit FortiOS 5.2.x wurde dies geändert dh. unter FortiOS 5.2.x wird eine "Device Spezifisches Zertifikat" benutzt und wird dann initialisiert sobald eine spezifische Zertifikats Abhängige Funktion benutzt wird (zB https Zugriff auf das Web Mgmt. Interface):

       FortiGate-5.0-5.2:FAQ#Was_f.C3.BCr_ein_Standard_Zertifikat_.28Default_CA.29_ist_auf_einer_FortiGate_installiert.3F

Aus diesen Gründen -um ein Maschinenspezifisches Zertifikat zu erzwingen/generieren- wurde unter FortiOS 5.2.x ein neues Kommando zur Verfügung gestellt um dies "nach einem Upgrade" auszuführen. Das folgende Kommando sollte ausgeführt werden um anhand des Standard Zertifikats ein Maschinenspezfisches Zertifikat zu erhalten:

       # execute vpn certificate local generate default-ssl-ca

Nach dem ausführen des Befehls wird das "default-ssl-ca" Re-generiert dh. dies kann über folgende Befehl kontrolliert werden:

       # config vpn certificate local
       # edit Fortinet_CA_SSLProxy
       # get
       
       NOTE Achte beim Output auf das Datum sprich "Valid from" sowie auf den "Fingerprint" sowie "Serial Num" denn es handelt sich 
            nun um ein "Device Spezifisches" Zertifikat!

Wie kann ich ein Zertifikat umkonvertieren damit ich dieses in die Fortigate importieren kann?

Ueber folgende Seite lässt sich ein Zertifikat umkonvertieren damit es nachträglich mit dem richtigen Format in die Fortigate importiert werden kann:

       http://www.msxfaq.de/signcrypt/openssl.htm

Was ist zu beachten bei einem Import eines Zertifikates auf einer Fortigate?

Zertifikate werden von CA's ausgestellt (Certifcation Authority). Normalerweise werden diese Certificate als PKCS#12 Format ausgeliefert. Das Certifcate das man vom Certifcation Authority erhält beinhaltet den:

       public key (Oeffentliches Zertifikat)
       private key (Privates Zertifikat)

Nachfolgend einige Certificate Formate:

       Datei:Fortinet-46.jpg

Je nach Gebrauch müssen diese Certificates umkonvertiert werden um einen erfolgreichen Import zu ermöglichen. Folgender Artikel gibt Auskunft wie so eine Umkonvertierung zu bewerkstelligen ist:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_ein_Zertifikat_umkonvertieren_damit_ich_dieses_in_die_Fortigate_importieren_kann.3F

Um nun ein Certificate in eine Fortigate zu importieren führe folgendes durch:

       Muss ein Certificate Request durchgeführt werden kann dies direkt auf die Fortigate durchgeführt werden:
       
       System > Certificates > Local Certificates > Generate
       
       Dieses Certificate-Output wird dann benutzt um dieses auf einem CA (Certificate Authority) signieren zu 
       lassen (gegenzeichnen). Sobald das Certificate signiert ist kann dieses wiederum über folgende Position
       importiert werden:
       
       System > Certificates > Local Certificates > Import
       Wurde der Certificate-Request nicht auf der Fortigate erstellt (zB bei Wildcard Certificat *.mydomain.ch)
       kann dieses nicht auf der Fortigate importiert werden. Solch ein Import kann nur folgendermassen bewerkstelligt
       werden:
       
       --> PKCS#12 File/Cert
       --> getrenntes .crt und .key File/Cert
       
       Es ist bei solchen Imports auf Fortigate empfehlenswert die Variante der getrennten .crt und .key File/Cert zu
       wählen. Danach können beide Files dh. .crt und .key über folgende Position importiert werden:
       
       System > Certificates > Local Certificates > Import
       
       Sobald der Import durchgeführt wurde muss deklariert werden für WAS dieses Certificate verwendet werden
       soll. Dies wird über eine Drop-Down-Liste gewählt zB:
       
       IPSec
       SSL VPN
       etc.
       
       Eine Einstellung (v3.0/4.0) muss über Kommandozeile angegeben werden:
       
       # config system global
       # set admin-server-cert [cert-name]
       # end
       
       NOTE
       Ist das Zertifikat nicht direkt von der CA, sondern von einem Intermediate Device/CA (Device 
       das ein signiertes Certifcate besitzt von der CA) erstellt worden, wird dieses als NICHT 
       trusted angeschaut. Eine Variante solch ein Intermediate Certificate dennoch als Trusted zu
       verifizieren wäre:
       
       Import des Intermediate Zertifikat auf der Fortigate als „CA Certificate“
       
       Das Intermediate Certificate kann direkt von der CA herunter geladen werden oder es ist im .crt File 
       des eigenen Certificate enthalten. Die .crt-Datei kann einfach mit dem Wordpad geöffnet und der 
       entsprechende Abschnitt in ein eigenes .crt File gespeichert werden:
       
       Beispiel:
       
       --------------- certificate example ---------------
       
       Bag Attributes
       localKeyID: …
       friendlyName: ALSO Schweiz AG
       subject=/C=CH/O=ALSO Schweiz AG/CN=*.also.com/emailAddress=info@also.com
       issuer=/C=CH/O=SwissSign AG/CN=SwissSign Server Gold CA 2008 - G2
       -----BEGIN CERTIFICATE-----
       MII…
       …
       …xmQ=
       -----END CERTIFICATE-----
       
       
       Bag Attributes
       localKeyID: …
       subject=/C=CH/O=SwissSign AG/CN=SwissSign Server Gold CA 2008 - G2
       issuer=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
       -----BEGIN CERTIFICATE-----
       MII…
       
       …0qo=
       -----END CERTIFICATE-----
       Bag Attributes
       localKeyID: …
       subject=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
       issuer=/C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
       -----BEGIN CERTIFICATE-----
       MII…
       …
       …ZfJ
       -----END CERTIFICATE-----
       
       --------------- certificate example ---------------
       
       In diesem .crt File ist ein Zertifikat für CN=*.also.com zu sehen (erster Abschnitt). Dieses ist 
       signiert worden vom Intermediate   Certificate CN=SwissSign Server Gold CA 2008 - G2. Der 
       dazugehörige (im Beispiel Fett markiert) Abschnitt muss für unserem Fall in ein .crt File gespeichert 
       werden, welches dann als CA-Certificate in der Fortigate importiert werden kann. Im letzten 
       Abschnitt in diesem Beispiel ist das CA Certificate CN=SwissSign Server Gold CA 2008 - G2
       aufgeführt. Ist das Certificate aufgeführt als "Vertrauenswürdiges Certificate" so muss es nicht
       hinterlegt resp. importiert werden. Ist dies nicht der Fall muss in die CA auf der Fortigate
       importiert werden.
       ACHTUNG HINWEIS FUER FORTIMAIL
       Ist das Certificate signiert/gezeichnet worden von einem Intermediate Zertifikat muss folgendes berücksichtigt werden:
       
       Das Intermediate Zertifikat darf NICHT als CA Certificate eingelesen werden sofern das
       .crt File NICHT NUR das public Certificate selbst sondern die GESAMTE Certificate Informationen
       enthält (wie obiges Certifcate Beispiel). Ist dies der Fall gibt Fortimail die gesamten Informationen weiter!

Wie kann ich ein "Local Certificate" von einer FortiGate exportieren und in eine andere FortiGate importieren?

Wenn zB ein Hardware Upgrade betreffend einer FortiGate durchgeführt (zB FG-60D auf FG-100D) wird kann durch Manipulation des Backup Files ein Restore auf der neuen FortiGate durchgeführt werden. Durch den Restore anhand des Backup Files wird das "Local Certificate" ebenfalls Wiederhergestellt. Ist jedoch so ein Restore auf der neuen FortiGate nicht möglich muss das "Local Certificate" zuerst auf der alten FortiGate exportiert werden sowie auf der neun importiert. Nachfolgend die Schritt die dazu nötig sind:

       NOTE Die nachfolgenden Schritte beschreiben den Export des "Private Key". zu diesem Zweck gehen wir von 
            folgenden Beispiel aus:
            
            -----BEGIN RSA PRIVATE KEY-----
            Proc-Type: 4,ENCRYPTED
            DEK-Info: DES-EDE3-CBC,21F46CF768868B66
            
            Zw+r9xa1L6r79qbsLnpk7o8Dj99fsdfsdfdYRFvPUhzC0ORelfcPzwrvDoyRQJKJ
            QSfAIQ5lwaWsJoWw9e8O1nl8asdwesu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
            
            [trunkated]
            
            bsLnpk7o8Dj99fjsJywFdYRFvPUhzC0ORelfcPzwrvDoyRQJKJfsf9sfsdfsfsfs
            QSfAIQ5lwaWsJoWw9e8O1nl8o+EpYDu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
            -----END RSA PRIVATE KEY-----
            Alte FortiGate
            
            1. Führe ein Login durch über Serial Console, Telnet oder SSH.
            2. Gebe folgenden Befehl ein:
               
               # config vpn certificate local
               # show full
               
               Durch diesen Befehl werden all Zertifikate aufgelistet. Der "Private Key" wird in der Auflistung folgendermassen
               aufgeführt:
               
               set private-key "-----BEGIN RSA PRIVATE KEY-----
               Proc-Type: 4,ENCRYPTED
               DEK-Info: DES-EDE3-CBC,21F46CF768868B66
               
               Zw+r9xa1L6r79qbsLnpk7o8Dj99fsdfsdfdYRFvPUhzC0ORelfcPzwrvDoyRQJKJ
               QSfAIQ5lwaWsJoWw9e8O1nl8asdwesu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
               
               [trunkated]
               
               bsLnpk7o8Dj99fjsJywFdYRFvPUhzC0ORelfcPzwrvDoyRQJKJfsf9sfsdfsfsfs
               QSfAIQ5lwaWsJoWw9e8O1nl8o+EpYDu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
               -----END RSA PRIVATE KEY-----"
               
               Um den "Private Key" zu sichern muss folgendes in ein Text File (*.txt) gesichert werden (Achte darauf das die Zeichen " 
               nicht enthalten sind):
               
               -----BEGIN RSA PRIVATE KEY-----
               Proc-Type: 4,ENCRYPTED
               DEK-Info: DES-EDE3-CBC,21F46CF768868B66
               
               Zw+r9xa1L6r79qbsLnpk7o8Dj99fsdfsdfdYRFvPUhzC0ORelfcPzwrvDoyRQJKJ
               QSfAIQ5lwaWsJoWw9e8O1nl8asdwesu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
               
               [trunkated]
               
               bsLnpk7o8Dj99fjsJywFdYRFvPUhzC0ORelfcPzwrvDoyRQJKJfsf9sfsdfsfsfs
               QSfAIQ5lwaWsJoWw9e8O1nl8o+EpYDu4ui0u4LA2l7G6iJPyGy+QMZ2srA32p4iv
               -----END RSA PRIVATE KEY-----
            
            3. Nun muss für "dieses" Zertifikat ein Passwort gesetzt werden. Dies wird folgendermassen durchgeführt:
               
               # config vpn certificate local
               # get
               
               NOTE Durch "get" werden alle Einträge aufgelistet. Verifizieren den entsprechenden Eintrag und editiere
                    den entsprechenden Eintrag der unser Zertifikat darstellt:
                    
                    # edit [Name des entsprechenden Zertifikates]
                    # set password [Gebe ein entsprechenes Passwort an]
                    # end
            
            4. Gehe nun auf das Web Mgmt. Interface und führe folgendes durch:
               
               System > Certificates > Local Certificates
               
               NOTE Wird im Web Mgmt. Interfaces die Menüposition "Certificates" nicht angezeigt muss diese unter folgender 
                    Position aktiviert werden:
                    
                    System > Config > Features > Show More > Certificates
                    
                    Danach sollte ein Logout sowie ein erneutes Login durchgeführt werden!
               
                Markiere nun den Eintrag des entsprechenden Zertifikates und wähle "Download". Nun kann das Zertifikat als "*.cer"
                runtergeladen werden.
            Neue FortiGate
            
            1. Ueber das Web Mgmt. Interface auf den neuen FortiGate führe folgendes durch:
               
               System > Certificates > Local Certificates
               
               Wähle im Menü die Position "Import" und danach:
               
               Type                       Certificate
               Certificate file           [Gebe das *.cer File an]
               Key File                   [Gebe das *.txt File an]
               Password                   [Gebe das entsprechende Passwort an das gesetzt wurde]
               
               Nach dem Import kontrolliere ob das entsprechende Zertifikat unter der folgenden Position erscheint:
               
               System > Certificates > Local Certificates

Wir erstelle ich auf einer Fortigate einen Certificate Request und zeichne diesen im Microsoft root CA?

Wenn man eine Certificate, dass auf einer Fortigate erstellt wurde (Certificate Request) innerhalb eines Microsoft root CA (Certificate Authority) zeichnen möchte um diesen nachträglich auf der Fortigate zu importieren gehe folgendermassen vor:

       ACHTUNG Fortiate unterstützt folgende zwei Formate: "DER" und "Base-64"
       --> Um den Certificate Requests zu erstellen der nachträglich im "Microsoft Root CA" gegengezeichnet werden kann wähle:
           
           System > Certificate > Local Certificate > Generate
           
           Geben nun folgende Angaben an:
           
           Certificate Name:     [Name des Certificates]
           ID Type:              [Host IP / Domain Name (FQDN) / Email Adresse]
           
           Organization Unit:    [zB ALSO Schweiz AG]
           Organization :        [zB Informatik]
           Locality (City):      [zB Emmen]
           State/Province:       [zB Luzern]
           Country/Region:       [zB Schweiz]
           e-mail:               [zB info@also.com]
           
           Key Type              RSA
           Key Size              2048 Bit
           
           Enrollment Method     File Based

Wenn man nun den "OK" Button anklickt wird im Hintergrund der "Requet" erstellt. Sieht man sich die Liste unter folgender Position an so erkennt man das dieser Request auf "Pending" steht. Dies bedeutet, dass dieser Request noch nicht gegengezeichnet ist:

           System > Certificate > Local Certificate

Nun markiert man diese Zeile und geht oben auf die "Download" Position um den Request runterzuladen. Dabei ist wichtig den Download so runterzuladen damit er in einem File gespeichert wird (.csr). Dieses File -wenn man es sich ansieht (zB Wordpad)- sieht folgendermassen aus (es darf nicht gespeichert werden im Wordpad sonst kann das File unbrauchbar werden):

           Datei:Fortinet-219.jpg

Danach geht man auf die "Microsoft Certificat Authority" Konsole und führt folgendes aus:

           Datei:Fortinet-220.jpg
           Datei:Fortinet-221.jpg
           Datei:Fortinet-222.jpg
           Datei:Fortinet-223.jpg
           
           NOTE Dieses File das hier gespeichert wird MUSS auf der Fortigate unter den "Local Certificates" importiert werden,
                denn dieses Certificate stellt unser gezeichnetes Certificate dar!

Zurück auf der Fortigate führen wir den Import Vorgang durch:

           Datei:Fortinet-224.jpg
           Datei:Fortinet-225.jpg

Nun das Problem das noch besteht ist das der Fortigate Device momemtan kein Root Certificat hat vom "Microsoft root CA". Dieses muss zuerst aus dem "Certicate Authority" exportiert werden um nachträglich wiederum auf der Fortigate importiert werden. Führe folgendes durch:

           Datei:Fortinet-226.jpg
           Datei:Fortinet-227.jpg
           Datei:Fortinet-228.jpg
           Datei:Fortinet-229.jpg

Erstelle nun eine Verbindung zur Fortigate und importiere das soeben exportierte Certificate:

           Datei:Fortinet-230.jpg

Dieses "Microsoft root CA" muss nun nur noch in den Broswer auf jedem Client/Workstation importiert werden dh. als "Vertrausenwürdiges Stammzertifikat". Das Certificate ist nun importiert und steht vers. Funktionen zur Verfügung dh. zB kann eine Fortigate Anmeldung des Admin Users (über einen Brosser) über ein Certificate durchgeführt werden. Dafür muss folgender Befehl über CLI abgesetzt werden:

           # config system global
           # set admin-server-cert "Admin_Users"
           # end

Wenn dies durchgeführt wird muss bei der ersten Verbindung (Browser) das Certifcate (public key) importiert werden dh. in den Container "vertrauenswürdige Stammzertifikate".

Wie installiere ich für FortiClient für iOS (Apple) ein Zertifikat auf den entsprechenden Device?

Weitere Informationen siehe Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_installiere_ich_f.C3.BCr_FortiClient_f.C3.BCr_iOS_.28Apple.29_ein_Zertifikat_auf_den_entsprechenden_Device.3F

Was ist im Allgemeinen der Unterschied zwischen "SSL Certificate Inspection" und "Full SSL Inspection"?

Dieser Artikel beschreibt im Allgemeinen den technischen Unterschied zwischen "SSL Certificate Inspection" und "Full SSL Inspection". Dies bedeutet: der Artikel beschreibt nicht im technischen Sinne speziell die Funktion des WebFilters (URL Scan Only" sondern beschreibt im Allgemeinen die Funktion die für alle UTM/Security Profiles zu tragen kommen! Als Hintergrund Information folgendes: Transport Layer Security (TLS) und dessen Vorgänger sowie Secure Sockets Layer (SSL) sind kryptographische Protokolle, um eine sichere Komunikation im Internet zu gewährleisten. Diese kryptographische Protokolle benützen x.509 Zertifikate damit eine asymmetrische Kryptographie für die Authentifizierung ermöglicht wird. Dies bedeutet: Durch diese Authentifizierung wird die Gegenpartei durch einen symmetrischen Schlüssel Authentifiziert resp. erkannt. Dieser symmetrische Schlüssel wird dann verwendet, um Daten zwischen den Parteien zu verschlüsseln. Damit X.509 Zertifikaten angewendet werden können, sind Zertifizierungsstellen und eine öffentliche Schlüssel-Infrastruktur notwendig, um eine Ueberprüfung zwischen den Zertifikaten durchzuführen. Da ein Protokoll entweder mit oder ohne TLS (oder SSL) betrieben werden kann, ist es erforderlich, dass der Client dem Server dies übermittelt resp. eine TLS Verbindung initiert. Eine Möglichkeit des Client dies dem Server mitzuteilen ist ein spezifischer Port zu benützen (zB 443 https). Eine andere Möglichkeit wäre, wenn der Client dem Server dies übermittelt zB auf TLS zu wechseln. Dabei werden Protokoll spezifische Mechanismen benutzt wie zB für TLS den STARTTLS Befehl(SMTP). Durch diesen STARTTLS Befehl übermittelt im SMTP Protokoll der Client dem Server die Absicht auf TLS zu wechseln, um die Komunikation verschlüsselt (TLS) durchzuführen. Sobald dies geschieht, wird durch eine Stateful Verbindung im Zusammenhang mit eine Handshake Verfahren (siehe Punkt 6) und durch vereinbarte Parameter eine verschlüsselte Verbindung zwischen Server und Client etabliert.

       1. Der Client sendet dem Server seine SSL-Versionsnummer, Cipher Einstellungen, Session-spezifische Daten und andere Informationen, 
          die der Server benötigt um mit dem Client eine verschlüsselte Verbindung (SSL) zu etablieren.
       
       2. Der Server sendet dem Client ebenfalls seine SSL-Versionsnummer, Cipher Einstellungen, Session-spezifische Daten und andere Informationen,
          die der Server benötigt um mit dem Client eine verschlüsselte Verbindung (SSL) zu etablieren. Der Server sendet ebenfalls sein eigenes 
          Zertifikat zum Client. Werden durch den Client Server-Resourcen angefragt, die eine Authentifizierung des Client Voraussetzen, fordert 
          der Server ebenfalls für die Authentifizierung das Zertifikat des CLient an.
       
       3. Der Client verwendet die Informationen die vom Server gesendet wurden, um die Server-Authentifizierung durchzuführen zB im Fall eines 
          Web-Browsers wird eine Verbindung zu einem Web-Server etabliert. Der Browser prüft, ob der Name des empfangene Zertifikat gleich dem 
          Namen des Servers ist (Fully Qulified Domain Name), der Aussteller des Zerfikates eine annerkannte Zertifizierungsstelle ist (Trusted CA; 
          Certificate Authority), das Zerfikat noch gültig ist resp. nicht abgelaufen ist (Datum) und ob es nicht Wiederrufen (revoked) wurde 
          (siehe Punkt 7). Wenn der Server durch diese Informationen nicht Authentifiziert werden kann, wird der Benutzer von dem Problem gewarnt 
          und darüber informiert, dass eine verschlüsselte und authentifizierte Verbindung nicht hergestellt werden kann (Browser Meldung). Wenn 
          der Server erfolgreich authentifiziert wird, geht der Client zum nächsten Schritt.
       
       4. Mit allen bisher im Handshake erzeugten Daten zwischen Client und Server -abhängig von den Cipher Einstellungen-, sendet der Client 
          seinen erstellten "pre-master key" für die verschlüsselte Verbindung dem Server, der verschlüsselt wurde anhand des "public key" des 
          Servers (Zertifikat des Servers).
       
       5. Wenn der Server zum Client eine Authentifizierung Anfrage sendet (Optional im Handshake), signiert der Client Daten die Einzigartig sind 
          innerhalb des Handshake's und beiden bekannt sind dh. Client und Server. In so einem Fall sendet der Client zum Server beides dh. das 
          einzigartige signierte Datenpacket und sein eigenes Zertifikat sowie den erstellten und verschlüsselten "pre-master key".
       
       6. Wenn der Server eine Client-Authentifizierung angefordert hat, versucht der Server den Client anhand der übermittelten Daten zu Authentifizieren. 
          Wenn der Client nicht Authentifiziert  werden kann, endet die Sitzung. Wenn der Client erfolgreich authentifiziert wird, verwendet der Server 
          seinen "private key" um den "pre-master" key des Client zu entschlüsseln und führt einige Schritte durch um den "master key" zu generieren. 
          Diese Schritte führt der Client ebenfalls durch und benützt dabei den "pre-master" key.
       
       7. Beide dh. der Client und der Master benützen den "master key" um den "session key" zu erstellen/generieren. Dieser "session key" ist ein 
          "symmetrischer key" der benutzt wird um die Informationen in der SSL Session zu ver-/entschlüsseln sowie die Integrität zu überprüfen. 
       
       8. Der Client sendet eine Nachricht zum Server, dass dessen Informationen für zukünftige Uebermittlungen anhand des "session key" verschlüsselt 
          werden. Danach sendet der Client eine getrennte verschlüsselte Meldung, dass der Handshake abgeschlossen ist.
       
       9. Der Server sendet ebenfalls eine Nachricht an den Client, dass zukünftige Information Uebermittlungen anhand des "session key" verschlüsselt 
          werden. Danach sendet der Server ebenfalls einen getrennte verschlüsselte Meldung, dass der Handshake abgeschlossen ist.
       
      10. Der SSL Handshake ist nun abgeschlossen und die Session beginnt. Der Client/Server benützen nun beide den "session key" um die Daten bei der
          Uebertragen zu ent-/verschlüsseln sowie die Datenintegrität zu überprüfen.
          SSL Certificate Inspection:
          Wenn nun eine "SSL Certificat Inspection" auf einer FortiGate benützt wird so wird der SSL Handshake nicht beeinflusst jedoch liest die 
          FortiGate das SNI Feld des Zertifikates aus. Das SNI Feld ist ist eine TLS Erweiterung und beinhaltet die komplette URL die aufgerufen
          wird. Dies wird von den meisten modernen Browsern unterstützt sofern TLS benutzt wird. Wenn jedoch dies durch den Browser nicht unterstützt
          wird liest die FortiGate den "CN" (Common Name) des Zertifikates mit. Der "CN" Teil beinhaltet im normal Fall einen Teil der URL dh. zB 
          den FQDN (Fully Qualified Domain Name). Dieser "CN" wird herangenommen um das WebFiltering durchzuführen resp. die Kategorisierung. Dies 
          bedeutet: Durch eine "SSL Certificate Inspection" wird nur das SNI Feld ausgelsen oder der "CN" und die FortiGate ist nicht fähig in den 
          TLS/SSL Inhalt reinzuschauen und somit Daten und dessen Inhalt zu verifizieren/auszulesen (Keine Full SSL Inspection). 
          
          Full SSL Inspection:
          Wenn dies Art der Inspection verwendet wird, übernimmt die FortiGate den Part des Servers (Man of the middle) resp. simuliert den Server 
          selber. Den Client Part übernimmt ebenfalls die FortiGate selber nicht der Client resp. Workstation. In dieser Konstellation ist klar das 
          der SSL/TLS Handshake unterbrochen wird und die FortiGate ist erforderlich um ein Zertifikat zur Verfügung zu stellen, dass durch den Client 
          resp. durch die URL angefordert wird. Da die FortiGate zwischen den effektiven Client Server steht (man of the middle), muss der FortiGate 
          Device dieses Zertifikat zur Verfügung stellen, um einen korrekten Handshake durchzuführen. Dieses Zertifikat wird durch die FortiGate selber 
          signiert. Da die FortiGate kein anerkannte Zertifizierungsstellen erkennen kann (Trusted Certificate Authority), um dieses zu signieren, wird 
          eine Warnmeldung an den Client ausgegeben die besagt, dass der Unterzeichner des Zertifikates keiner anerkannten Zertifizierungs Stelle 
          entspricht. Bei Verwendung dieser Inspection fließt der Traffic von dem Server zur FortiGate verschlüsselt und von der FortiGate an den Client 
          ebenfalls verschlüsselt. Der einzige Teil in der Traffic unverschlüsselt ist, wäre auf der FortiGate selber. Dadurch wird es der FortiGate 
          ermöglicht in die Daten (Inspection) reinzuschauen und UTM/Security Profiles im Full SSL Inspection Mode (nicht nur WebFilter wie SSL 
          Certificate Inspection) anzuwenden wie Antivirus, WebFilter etc. Um dies zu ermöglichen muss das "SSL_Proxy_Inspection Zertifikat" auf der 
          Workstation/Client importiert werden als "Vertrauenswürdige Stammzertifikate" (Trusted Authority). Nur so kann verhindert werden, dass keine 
          entsprechende Zertifikatsmeldung auf der Workstation/Client erscheint sowie das Zertifikat als "Vertrauenswürdiges Stammzertifikat" erkannt 
          wird und somit keine Warnmeldung erscheint.
          Fazit
          Möchte man "alle" UTM/Security Profiles im Full SSL Inspection benutzen, muss ein entsprechendes Zertifikat auf dem Client als 
          "Vertrauenswürdiges Stammzertifikat" importiert werden. Dabei ist zu berücksichtigen, dass einige Browser nicht auf das auf dem 
          Betriebssystem zur Verfügung stehenden Repositories der "Vertrauenswürdigen Stammzertifikate" zurück greiffen sondern Ihre eigenen 
          Repositories benutzen.
          
          Wenn man "nur" WebFiltering im SSL benutzen möchte kann eine SSL Certificat Inspection durchgeführt werden was "kein" Zertifikat 
          auf der Workstation/Client benötigt. Alle anderen UTM/Security Profiles haben im SSL Certificat Inspection keine Auswirkungen resp. 
          können nicht genutzt werden da eine Full Inspection Möglichkeit fehlt.

Nachfolgenden Links geben weitere Informationen betreffend diesem Thema im Zusammenhamg mit Zerfifikaten sowie Inspectio Mode und URL Scan Only (Certicate Inspection):

       Allgemein:Zertifikate-SymmetrischeAsymmetrische
       
       FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
       FortiGate-5.0-5.2:FAQ#Wie_wird_das_.22Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.22_ohne_.22Deep_Inspection.22_konfiguriert.3F
       FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Gibt es eine Möglichkeit "Root CA" Zertifikate manuell aus dem Internet runterzuladen und auf eine FortiGate zu importieren?

Basierend auf FortiOS 5.0 sowie 5.2 kontrolliert eine FortiGate betreffend Zertifikate ausschliesslich den CN (Common Name) sowie das Datum eines Zertifikates. Die effektive Kontrolle der Zertifikate selber anhand der "Root CA" sowie wie diese zB im Internet Explorer anhand des Containers "Stammzertifikate" durchgeführt wird ist nicht möglich da eine FortiGate über keine Liste der "Root CA" verfügt. Da würde es "theoretischerweise" naheliegen diese Liste der "Root CA's" selber zu importieren. Dies ist "theoretischerweise" auch möglich ist jedoch ein manueller Vorgang und im effektiven Sinne nicht praktikable da diese Liste immer "up-to-date" gehalten werden müsste. Ebenso müsste die Liste für andere "CA's" ebenso unterhalten werden dh. bei zB Unternehmen die Ihre eigene "CA" propagieren. Aus diesem Grund ist die das importieren der "Root CA" auf einer FortiGate ein theoretischer Lösungsansatz jedoch aus unserer Sicht nicht praktikable da aus administrativer Sicht zu intensiv. Der nachfolgende Artikel beschreibt und zeigt wie die Liste der "Root CA" manuell aus dem Internet (Mozilla CA Tree) heruntergelade werden kann sowie diese in auf eine FortiGate importiert werden kann:

       Allgemein:Zertifikate-SymmetrischeAsymmetrische#Gibt_es_eine_M.C3.B6glichkeit_.22Root_CA.22_Zertifikate_manuell_aus_dem_Internet_runterzuladen.3F

User / Gruppen

Was ist die maximal Länger eines Passwortes für eine User Authentication?

Unter FortiOS 5.0 war die maximal Länge eines Passwortes für eine User Authentication in den verschiedenen Funktionen unterschiedlich. Ab FortiOS 5.2 wurde dies vereinheitlich dh. Jede Authentifizierung im Zusammenhang mit einem User ist die maximale Länge des Passwortes:

        128 Zeichen

Die Authentifizierung im Zusammenhang mit einem User ist so zu verstehen, dass zB für eine User Authentifizierung über LDAP ebenfalls unter FortiOS 5.2 die max. Länge von 128 Zeichen gilt!

Wie kann ich für die Authentication ein "debug" ausführen um ein Troubleshooting durchzuführen?

Wenn für diverse Funktionen auf einer FortiGate eine Authentifizierung konfiguriert wird und nachträglich bei Problemen ein "debug" ausgeführt werden soll, kann dies über den "FortiGate None-Blocking Auth Deamnon" durchgeführt werden. Diese wird folgendermassen ausgeführt:

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

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

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

Wie kann ich das das Passwort des User "admin" (Administrator) ändern?

Das "admin" Passwort kann innerhalb des "Dashboards" unter folgenden Position geändert:

       Datei:Fortinet-16.jpg

Das Passwort kann auch über die "Administratoren" Position geändert werden:

       Datei:Fortinet-17.jpg

Möchte man das Passwort des User's admin über Kommandozeile ändern muss folgendes durchgeführt werden:

       # config system admin
       # edit admin
       # set password [Setze ein neues Passwort]
       # next

Wie aktiviere ich für den User "admin" den Management Zugriff und was muss ich dabei berücksichtigen?

Der User "admin" der per Standard existiert ist eine Administrator der über ein Profile "super_admin" (Volle Rechte) verfügt. Dieser User "admin" kann grundsätzlich auch gelöscht werden und mit einem neuen Administrator ersetzt werden basierend auf dem Profile "super_admin". Dies wird jedoch nicht empfohlen. Die Profile für die Administratoren können anhand neu angelegter Profile unter folgender Position erstellt werden:

       System > Admin > Admin Profile > Create New

In einem Profile können vers. Funktionen im "Read Only, Read-Write sowie auf None" gesetzt werden und somit eingeschränkt werden. Weitere Einschränkungen in den einzelnen Funktionen die zur Verfügung stehen sind nicht möglich und stehen auch nicht auf Kommandozeile zur Verfügung. Wenn dies gewünscht wird muss ein FortiManager eingesetzt werden denn dieser ist Mandantenfähig. Ein zusätzlicher Administrator kann unter folgender Position erstellt werden und bei der Erstellung kann das entsprechende Profile dem Administrator hinzugefügt werden:

       System > Admin > Administrators

Um den Zugriff für die Administratoren auf die FortiGate sei es per HTTPS, PING, HTTP, SSH zu gewährleisten muss auf einem entsprechenden Interface der nötige Service aktiviert werden. Dazu wähle folgendes:

       System > Network > Interfaces > [Wähle das entsprechende Interface zB "internal"] > Administrative Access > [Aktiviere den entsprechenden Service]
       
       NOTE Dabei ist folgendes zu berücksichtigen: Im Hintergrund wird eine entsprechende "Local-In" Policy implementiert (Automatisch) die den Zugriff für 
            den entsprechenden Service "aus dem Segment" erlaubt. Dies bedeutet: Würde man HTTP auf dem Interface "internal" aktiviert würde folgende Rule
            Automatisch im Hintergrund implementiert werden:
            
            Source       [IP Range/Segment Interface oder "Trusted Host 1-3 ACL Administrator"]
            Destination  [IP des Interface]
            Service      [HTTP]
            User         [Administrator mit entsprechenden Rechte]
            Action       [Allow]

Diese Policy kann eingsehen werden unter folgenden Punkt:

       Policy / Policy Objects > Policy > Local In > Administrative Access
       
       NOTE Leider ist diese "Local In" Policy nicht sehr Transparent dh. es wird unter "Administrative Access" nicht detailliert angezeigt WAS 
            Implementiert wurde. Dies bedeutet die "Trusted Host 1-3" für Administratoren werden nicht abgebildet!

Wenn ein Administrator zB User "admin" mit "Trusted Host 1-3" versehen wird werden die aktivierten Services ebenfalls auf diese "Trusted Host 1-3" beschränkt. Dies bedeutet würde man auf Interface "wan1" HTTPS und PING aktivieren und den User "admin" beschränken auf eine bestimmte Public IP würde ein Login auf HTTPS sowie ein PING nur noch von dieser Source möglich sein. "Trusted Host 1-3" werden innerhalb eines Administrators und folgender Position definiert:

       System > Admin > Administrators > [Wähle den entsprechenden Administrator] > [Aktiviere "Restrict this Administrator Login from Trusted Hosts Only"] > [Definiere "Trusted Host" IP Range]

Wenn die Konfiguration auf Kommandozeile durchgeführt werden möchte ist folgendes durchzuführen:

       Aktivieren eines Service auf einem Interface
       # config system interface
       # edit [Name des Interfaces]
       # set allowaccess [http | https | ping | ssh | telnet]
       # end
       
       Hinzufügen von "Trusted Host" für einen Administrator
       # config system admin
       # edit [Name des Administrators zB "admin"]
       # set trusthost1 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost2 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost3 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost4 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost5 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost6 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost7 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost8 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost9 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # set trusthost10 [IPV4 Adresse mit Subnet Mask zB "192.168.1.0 255.255.255.0"]
       # end
       
       NOTE IM Web Mgmt. Interface sind die "trusthost" Einträge limitiert für FortiOS 5.0.x dh. auf 3. Ab FortiOS 5.2.x max 10 Einträge
            zur Verfügung. Auf Kommandozeile stehen für FortiOS 5.0.x sowie 5.2.x max. 10 Einträge zur Verfügung.

Wenn das Passwort des User's "admin" (Administrator) nicht mehr bekannt ist wo kann ich dieses zurücksetzen/neu setzen?

Als Grundvorraussetzung muss die Serien Nummer der Fortigate bekannt sein, denn diese wird benötigt um sich als User maintainer einzuloggen. Zugleich ist dieser Vorgang nur anhand einer Seriellen Verbindung möglich:

       -> Erstelle eine Serielle Console.
          
          8 bits 
          no parity 
          1 stop bit 
          9600 baud (the FortiGate-300 uses 115,000 baud) 
          Flow Control = None 
          
          NOTE Weitere Informationen betreffend RS-232 Console findet man im folgenden Artikel:
          
               FortiGate-5.0-5.2:FAQ#Was_f.C3.BCr_ein_Kabel_ben.C3.B6tige_ich_f.C3.BCr_den_Consolen_Anschluss_.28Seriell_RS232.29_einer_Fortinet.3F
          
       -> Schalte den Device aus und ein oder starte diesen neu.
       -> Sobald der Login erscheint gebe ein:
       
       User     = 	maintainer
       Password = 	bcpbFGT[Serien Nummer ohne Produktbezeichnung "FGT" dh. zB 60C4613015338]
       Welcome!
       
       # config system admin
       # edit admin
       # set password [Neues Passwort]
       
       NOTE Dieser Vorgang im Ganzen dh. das Einloggen anhand des Users "maintainer" steht nach dem ersten
            erscheinen des regulären "login's" 2 Minuten zur Verfügung (auf einigen Devices nur 14 Sekunden) dh. 
            wird innerhalb dieser 2 Minuten der User "maintainer" nicht benutzt für das Einloggen so deaktiviert 
            sich dieser Funktion dh. muss diese wiederum genutzt werden so muss erneut ein Neustart ausgeführt 
            werden! Dieser Vorgang dh. das Zurücksetzen des Superadmin Passwort ist für alle Geräte von Fortinet 
            durchzuführen. Für das Passwort des Users "maintainer gilt:
            
            bcpb[Fortinet Produkt Bezeichnung zB FortiGate "FGT" oder FortiWifi "FWF"][Serien Nummer ohne Produktbezeichnung]
       
       Möchten man die "Funktion" des "maintainer" deaktivieren dh. keine Möglichkeit geben diesen zu benutzen so kann
       dies folgendermassen durchgeführt werden:
       
       # config system global
       # set admin-maintainer disable
       # end
       
       Anstelle des "maintainer" -der nur benutzt werden kann über die lokale Consolen- kann auch der Consolen Port komplett
       deaktiviert werden. Nähere Informationen siehe Artikel:
       
       FortiGate-5.0-5.2:FAQ#Wie_setze_ich_eine_Fortigate_auf_.22Factory_Defaults.22.3F

Fortinet hat im Juli 2013 ein Dokument unter "SysAdmin's Notebook" released das diesen Vorgang ebenfalls beschreibt/zeigt:

       Datei:Resetting a lost admin password.pdf   (Resetting a lost admin password)

Kann ich das Timeout für ein Login komplett ausschalten?

Per Standard für eine FortiGate ein "Login Recording" durch dh. sobald ein Login durcheführt wird setzt ein Counter ein und zeichnet diesen Login auf. Sobald betreffend diesem Login ein "Timeout" erreicht wird so wird ein "Logout" durchgeführt. Unter FortiOS 5.0 ist das standard Verhalten einer FortiGate und kann -ausser ein Timeout zu setzen- nicht manipuliert werden. Unter FortiOS 5.2 kann das "Login Recording" komplett deaktiviert werden mit folgender globalen Option:

       # config system global
       # set login-timestamp disable
       # end

Um unter FortiOS 5.0 die verschiedenen "Timeout's" zu setzen siehe nachfolgende Links:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F
       FortiGate-5.0-5.2:FAQ#Welches_Timeout_gilt_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_und_wo_manipuliere_ich_Dieses.3F

Gibt es eine Möglichkeit nicht erfolgreiche Admin Login's aufzulisten?

Login's des Admin's werden im Hintergrund aufgezeichnet/geloggt. Ueber Gui sieht man diese Login's der Admins sei es erfolgreich oder nicht über die "Alert Message Console" dh.:

       System > Dashboard > Status > Alert Message Console

Neu ab FortiOS 5.2.1 steht ebenfalls in der CLI folgendes Kommando zur Verfügung das "nicht erfolgreiche" Login's der Admin's auflistet:

       # diagnose debug admin error-log 
       The recent admin user failed login details:
       error code      :       -102
       method          :       ssh
       login name      :       admin
       cmdb name       :       admin
       login vdom      :       root
       current vdom    :       root
       override vdom   :       null
       login profile   :       super_admin
       override profile:       null
       login time      :       2014-09-22 10:43:19

Welches Timeout gilt für den User "admin" (Administrator) und wo manipuliere ich Dieses?

Für den Administrator gilt 5 Minuten als Timeout. Dieses wird über folgenden Menüpunkt manipuliert:

       Datei:Fortinet-24.jpg
       
       NOTE Ueber die Kommandozeile wird die Konfiguration folgendermassen durchgeführt:
       
       # config system global
       # set admintimeout [Timeout Minutes]
       # end

Wenn das Timeout für den Administrator betreffend SSH angepasst werden soll siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_das_Timeout_f.C3.BCr_SSH.3F

Das Timeout kann unter FortiOS 5.2 auch komplett ausgeschaltet werden. Dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_das_Timeout_f.C3.BCr_ein_Login_komplett_ausschalten.3F

Wie konfiguriere ich für den User "admin" (Administrator) eine Public Key Authentication?

Logge dich als User "root" auf dem System ein auf dem der Zugriff auf die FortiGate erfolgen soll. In unserem Beispiel wäre dies ein CentOS basierendes System. Nach dem Einloggen wechsle in das Root Verzeichnis des User's "root". In unserem Beispiel wäre dies "/root":

       # cd /root
       # pwd
       /root

Die "Public Key Authentication" Informationen werden im User "root" Verzeichnis im Verzeichnis "/root/.ssh" abgelegt. Erstelle dieses Verzeichnis und vergebe die entsprechenden Rechte:

       # mkdir /root/.ssh
       # chmod 700 /root/.ssh
       # chown root:root /root/.ssh

Als nächsten Schritt erstellen wir für die Public Key Authentication eine "privat" sowie einen "public" Key. Diese sind voneinander abhängig dh. der "public" Key basiert auf dem "privat" Key:

       # which ssh-keygen
       /usr/bin/ssh-keygen
       
       # ssh-keygen -t rsa -f /root/.ssh/id_rsa 
       Generating public/private rsa key pair.
       Enter passphrase (empty for no passphrase): 
       Enter same passphrase again: 
       Your identification has been saved in /root/.ssh/id_rsa.
       Your public key has been saved in /root/.ssh/id_rsa.pub.
       The key fingerprint is:
       2b:cf:8d:7f:51:cb:5b:d4:77:13:d4:79:93:ab:da:63 root@mydomain.local.intra
       
       NOTE Gebe keine "passphrase" ein sondern einfach "Enter"!

Nach der erfolgreichen Generierung haben wir folgende Keys:

       # ls -la /root/.ssh/*
       -rw------- 1 root root 1675 Dec  9 13:07 /root/.ssh/id_rsa
       -rw-r--r-- 1 root root  408 Dec  9 13:07 /root/.ssh/id_rsa.pub

Das File "id_rsa" stellt den "privat" Key dar und MUSS umbedingt geschützt werden dh. vergebeentsprechende Rechte:

       # chmod 600 /root/.ssh/id_rsa

Der Public Key muss nun auf der FortiGate konfiguriert werden. Dies wird folgendermassen durchgeführt:

       # more /root/.ssh/id_rsa.pub
       ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsum+V+qTCDNAfjGCtgn/X771NZHveHJgHAfoi6JXjVpZ7Ojd7wQ/30jM7Ma8kwecbAdGV/MStq/lX2Z09qZ/Wkq3V0k+XctrNBOc5fR26vsMwZk5GeJuYLmhXD+agTNNDf1VfRhOKj7UcLoV45kKYBZwzkOFt1E0dODFcdOY+12LwVgAHGd5cPSR3tRXY07HEEnlob0fOSb6XuKZmpgBWhEfNbGBH2gI+bEJC9E9ZoqWYGF3Vi5RgvoeW8l9zSYwtj+zwG9VG0MN9SKJR6gAhqpSvSLsZEUkbNJ9zHocxMsIw4qZ+ATU9+QYhECJTfZmWWCuC1amyV+e1KljpiH9aQ== root@mydomain.local.intra
          
       NOTE der "ssh-rsa" Key ist "eine" Zeile dh. achte darauf wenn die Information für "key-value"
            im nächste Schritt auf der FortiGate konfiguriert wird!

Auf der FortiGate führe folgendes aus:

       # config system admin
       # edit admin
       # set ssh-public-key1 "[key-type] [key-value]"
       # end
          
       Für unseres Beispiel würde das folgendes bedeuten:
          
       # config system admin
       # edit admin
       # set ssh-public-key1 "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsum+V+qTCDNAfjGCtgn/X771NZHveHJgHAfoi6JXjVpZ7Ojd7wQ/30jM7Ma8kwecbAdGV/MStq/lX2Z09qZ/Wkq3V0k+XctrNBOc5fR26vsMwZk5GeJuYLmhXD+agTNNDf1VfRhOKj7UcLoV45kKYBZwzkOFt1E0dODFcdOY+12LwVgAHGd5cPSR3tRXY07HEEnlob0fOSb6XuKZmpgBWhEfNbGBH2gI+bEJC9E9ZoqWYGF3Vi5RgvoeW8l9zSYwtj+zwG9VG0MN9SKJR6gAhqpSvSLsZEUkbNJ9zHocxMsIw4qZ+ATU9+QYhECJTfZmWWCuC1amyV+e1KljpiH9aQ== root@mydomain.local.intra"
       # end

Nun ist alles bereit dh. vom Linux System aus kann nun ein Test durchgeführt werden:

       # ssh admin@mydomain.local.intra
       The authenticity of host 'mydomian.local.intra (mydomain.local.intra)' can't be established.
       RSA key fingerprint is 71:cb:81:d8:2d:e0:09:82:0a:c1:e9:28:10:05:ad:35.
       Are you sure you want to continue connecting (yes/no)? yes
       Warning: Permanently added 'mydomain.local.intra' (RSA) to the list of known hosts.
       #
          
       NOTE Die Frage nach dem spezifischen Host der unsere FortiGate erscheint 
            nur einmal zu Beginn der ersten Verbindung! Bei der zweiten Verbindung
            erscheint diese Frage nicht mehr. Der Host auf dem zugegriffen wird dh.
            unsere FortiGate wird mit dessen Hostnamen und/oder IP im folgenden File
            abgelegt:
               
       # cat /root/.ssh/known_hosts
       mydomain.local.intra ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDrSes+GhiRczY3D/X+AzEHp8X+esH017S4VeqFs4yaGh8rbyUb/iGIoeixqJkB3B1YxLlQ7jc5kgHXspoDl5XN2uoUjd65mBpXZ61/cezNZR+YFmCKCsozHsNjO+LZsvfgXmW03tdX6lL53MzGZdYrW7AOzI2SOJXE7kDANMh5xQ==
       NOTE Wechselt der Name resp. die IP des Hosts muss der entsprechende Eintrag im
            File "known_hosts" gelöscht werden ansonsten wird der Zugriff verweigert!

Zusätzlich zum SSH Zugriff kann SCP für den Admin auf der FortiGate aktiviert werden. Dazu siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_den_User_.22admin.22_.28Administrator.29_zus.C3.A4tzlich_zum_SSH_SCP_aktivieren.3F

Um den Zugang zu tesen benutze vom Linux System aus folgendes Kommando:

       # scp admin@mydomain.local.intra:sys_config /root/
       sys_config                                                                   100%  104KB  20.7KB/s   00:05    
       # ls -la /root/sys_config
       -rw-------  1 root root 106032 Dec  9 13:31 sys_config

Dieser Vorgang kann nun benutzt werden um auf dem Linux ein autom. Backup der FortiGate zu erstellen! Dies kann zB anhand eines "crontab" Eintrages konfiguriert werden:

       # crontab -e
       
       -------------- crontab -------------- 
      
       30 3 * * 0 scp admin@mydomain.local.intra:sys_config /root/$(date +%Y%m%d)-sys_config
       
       -------------- crontab --------------
       
       NOTE Der Cron Eintrag hat folgende Bedeutung und Aufbau:
       
       * * * * *	[Path to script or command]
       
       *                Minuten (0-59)
         *              Stunden (0-23)
           *            TagDesMonats (1-31)
             *          Monat des Jahres (1-12)
               *        TagDerWoche (0-6 with 0=Sunday)

Wie kann ich für den User "admin" (Administrator) zusätzlich zum SSH SCP aktivieren?

Die Funktion SSH wird über folgende Positon aktiviert:

       System > Network > Interfaces > [Wähle das entsprechende Interface] > Administrative Access > [Aktiviere SSH]

Diese Konfiguration umfasst auschliesslich SSH (per Standard auf Port 22) und nicht SCP. Möchte man SCP für den Administrator zusätzlich zu SSH freischalten führe auf der Kommandozeile folgendes durch:

       # config system global 
       # set admin-scp enable 
       # end

Wie setze ich für den User "admin" (Administrator) das Timeout für SSH?

Per Standard gilt für den Administrator bezüglich SSH Timeout 2 Minuten (120 seconds). Um dieses Timeout anzupassen benutze folgenden Befehl auf der Console:

       # config system global
       # set admin-ssh-grace-time [Angaben der Sekunden von 0 - 3600]
       # end

Wie kann ich für eine User "admin" (Administrator) für HTTPS eine bestimmte TLS Version zB 1.0 deaktivieren?

Ab FortiOS 5.2.2 gibt es unter den "config system global" eine Konfigurationsmöglichkeit um die benutzten TLS Versionen für den Web Mgmt. Zugriff über "https" zu definieren. Folgender Befehl steht zur Verfügung (Pers Standard ist TLS 1.1 sowie 1.2 aktiviert):

       # config system global
       # set admin-https-ssl-versions [sslv3 | tlsv1-0 | tlsv1-1 | tlsv1-2]
       # end

Die aktiven Version dh. TLS Versionen können einfach überprüft werden sowie die benutzen "DH" Parameter. Dafür kann ein kleines Script installiert werden das über einen Linux Server ausgeführt werden kann. Kopiere den Inhalt des Files "Cipherscan.txt" in ein File auf dem Linux Server dh. zB:

      # mkdir /opt/scripts
      # vi /opt/scripts/cipherscan
      # chown root:root /opt/scripts/cipherscan
      # chmod 700 /opt/scripts/cipherscan
      Datei:Cipherscan.txt
      
       NOTE Weitere Scripte auf für Windows und Anweisung siehe Link https://github.com/jvehent/cipherscan. Eine
            andere Möglichkeit einen Scan durchzuführen ist folgender Link zu benutzen:
            
            https://www.ssllabs.com/ssltest/

Danach kann auf dem Linux ein Scan durchgeführt werden auf den Mgmt. Port der FortiGate sprich zB auf das LAN Interface. Der Port auf dem LAN Interface resp. HTTPS muss aktiviert sein. Wenn der Mgmt. Port nicht über Standard HTTPS 443 konfiguriert wurde muss der Port dem Script durch folgendes Kommando mitgegeben werden:

      # /opt/scripts/cipherscan 198.18.0.1:8443
      custom openssl not executable, falling back to system one from /bin/openssl
      .................................
      Target: 198.18.0.1:8443
      
      prio  ciphersuite                  protocols        pfs                      curves
      1     ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2          ECDH,prime256v1,256bits  prime256v1
      2     ECDHE-RSA-AES256-SHA384      TLSv1.2          ECDH,prime256v1,256bits  prime256v1
      3     ECDHE-RSA-AES256-SHA         TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
      4     DHE-RSA-AES256-GCM-SHA384    TLSv1.2          DH,1024bits              None
      5     DHE-RSA-AES256-SHA256        TLSv1.2          DH,1024bits              None
      6     DHE-RSA-AES256-SHA           TLSv1.1,TLSv1.2  DH,1024bits              None
      7     DHE-RSA-CAMELLIA256-SHA      TLSv1.1,TLSv1.2  DH,1024bits              None
      8     AES256-GCM-SHA384            TLSv1.2          None                     None
      9     AES256-SHA256                TLSv1.2          None                     None
      10    AES256-SHA                   TLSv1.1,TLSv1.2  None                     None
      11    CAMELLIA256-SHA              TLSv1.1,TLSv1.2  None                     None
      12    ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2          ECDH,prime256v1,256bits  prime256v1
      13    ECDHE-RSA-AES128-SHA256      TLSv1.2          ECDH,prime256v1,256bits  prime256v1
      14    ECDHE-RSA-AES128-SHA         TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
      15    DHE-RSA-AES128-GCM-SHA256    TLSv1.2          DH,1024bits              None
      16    DHE-RSA-AES128-SHA256        TLSv1.2          DH,1024bits              None
      17    DHE-RSA-AES128-SHA           TLSv1.1,TLSv1.2  DH,1024bits              None
      18    ECDHE-RSA-DES-CBC3-SHA       TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
      19    DHE-RSA-SEED-SHA             TLSv1.1,TLSv1.2  DH,1024bits              None
      20    DHE-RSA-CAMELLIA128-SHA      TLSv1.1,TLSv1.2  DH,1024bits              None
      21    EDH-RSA-DES-CBC3-SHA         TLSv1.1,TLSv1.2  DH,1024bits              None
      22    AES128-GCM-SHA256            TLSv1.2          None                     None
      23    AES128-SHA256                TLSv1.2          None                     None
      24    AES128-SHA                   TLSv1.1,TLSv1.2  None                     None
      25    SEED-SHA                     TLSv1.1,TLSv1.2  None                     None
      26    CAMELLIA128-SHA              TLSv1.1,TLSv1.2  None                     None
      27    DES-CBC3-SHA                 TLSv1.1,TLSv1.2  None                     None
      28    ECDHE-RSA-RC4-SHA            TLSv1.1,TLSv1.2  ECDH,prime256v1,256bits  prime256v1
      29    RC4-SHA                      TLSv1.1,TLSv1.2  None                     None
      30    RC4-MD5                      TLSv1.1,TLSv1.2  None                     None
      31    EDH-RSA-DES-CBC-SHA          TLSv1.1,TLSv1.2  DH,1024bits              None
      32    DES-CBC-SHA                  TLSv1.1,TLSv1.2  None                     None
      
      Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
      TLS ticket lifetime hint: 300
      OCSP stapling: not supported
      Cipher ordering: client

Wie man vom "output" sieht sind die Version TLSv1.1 sowie 1.2 aktiv. Um nun die Version 1.1 zu deaktivieren führe folgendes aus:

       # config system global
       # set admin-https-ssl-versions tlsv1-2
       # end

Nun kann abermals ein Scan ausgeführt werden:

       # /opt/scripts/cipherscan 198.18.0.1:8443
       custom openssl not executable, falling back to system one from /bin/openssl
       .................................
       Target: 198.18.0.1:8443
       
       prio  ciphersuite                  protocols  pfs                      curves
       1     ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       2     ECDHE-RSA-AES256-SHA384      TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       3     ECDHE-RSA-AES256-SHA         TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       4     DHE-RSA-AES256-GCM-SHA384    TLSv1.2    DH,1024bits              None
       5     DHE-RSA-AES256-SHA256        TLSv1.2    DH,1024bits              None
       6     DHE-RSA-AES256-SHA           TLSv1.2    DH,1024bits              None
       7     DHE-RSA-CAMELLIA256-SHA      TLSv1.2    DH,1024bits              None
       8     AES256-GCM-SHA384            TLSv1.2    None                     None
       9     AES256-SHA256                TLSv1.2    None                     None
       10    AES256-SHA                   TLSv1.2    None                     None
       11    CAMELLIA256-SHA              TLSv1.2    None                     None
       12    ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       13    ECDHE-RSA-AES128-SHA256      TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       14    ECDHE-RSA-AES128-SHA         TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       15    DHE-RSA-AES128-GCM-SHA256    TLSv1.2    DH,1024bits              None
       16    DHE-RSA-AES128-SHA256        TLSv1.2    DH,1024bits              None
       17    DHE-RSA-AES128-SHA           TLSv1.2    DH,1024bits              None
       18    ECDHE-RSA-DES-CBC3-SHA       TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       19    DHE-RSA-SEED-SHA             TLSv1.2    DH,1024bits              None
       20    DHE-RSA-CAMELLIA128-SHA      TLSv1.2    DH,1024bits              None
       21    EDH-RSA-DES-CBC3-SHA         TLSv1.2    DH,1024bits              None
       22    AES128-GCM-SHA256            TLSv1.2    None                     None
       23    AES128-SHA256                TLSv1.2    None                     None
       24    AES128-SHA                   TLSv1.2    None                     None
       25    SEED-SHA                     TLSv1.2    None                     None
       26    CAMELLIA128-SHA              TLSv1.2    None                     None
       27    DES-CBC3-SHA                 TLSv1.2    None                     None
       28    ECDHE-RSA-RC4-SHA            TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       29    RC4-SHA                      TLSv1.2    None                     None
       30    RC4-MD5                      TLSv1.2    None                     None
       31    EDH-RSA-DES-CBC-SHA          TLSv1.2    DH,1024bits              None
       32    DES-CBC-SHA                  TLSv1.2    None                     None
       
       Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
       TLS ticket lifetime hint: 300
       OCSP stapling: not supported
       Cipher ordering: client

Wie man sieht ist "nur" noch die Version TLSv1.2 aktiv. Was in diesem "output" ebenfalls ersichtlich ist sind die "ciphers" die eigentlich nicht benutzt werden sollen. Wenn man auf einem Linux Server das Package "openssl" vorhanden ist (which openssl) kann anhand des Client Teil von OpenSSL ein Test ausgeführt werden um festzustellen ob eine entsprechende "cipher" akzeptiert würde. Im nachfolgenden Beispiel wird getestet ob die "cipher" DES möglich ist:

       # openssl s_client -connect 198.18.0.1:8443 -cipher "DES"
       CONNECTED(00000003)
       depth=1 C = US, ST = California, L = Sunnyvale, O = Fortinet, OU = Certificate Authority, CN = support, emailAddress = support@fortinet.com
       verify error:num=19:self signed certificate in certificate chain
       verify return:0
       ---
       Certificate chain
        0 s:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=FortiGate/CN=FG300C3913601712/emailAddress=support@fortinet.com
          i:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
        1 s:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
          i:/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
       ---
       Server certificate
       -----BEGIN CERTIFICATE-----
       MIIDRTCCAi2gAwIBAgIDC9W6MA0GCSqGSIb3DQEBBQUAMIGgMQswCQYDVQQGEwJV
       UzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMREwDwYD
       VQQKEwhGb3J0aW5ldDEeMBwGA1UECxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRAw
       DgYDVQQDEwdzdXBwb3J0MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGZvcnRpbmV0
       LmNvbTAeFw0xMzAzMDUwMjAyMzFaFw0zODAxMTkwMzE0MDdaMIGdMQswCQYDVQQG
       EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMREw
       DwYDVQQKEwhGb3J0aW5ldDESMBAGA1UECxMJRm9ydGlHYXRlMRkwFwYDVQQDExBG
       RzMwMEMzOTEzNjAxNzEyMSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGZvcnRpbmV0
       LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvbxgu84VKi3SL78ZpAdB
       5yaqOQfNf44KFwxFAqk94D8vjcNi0i0igSVdNZD80hRJUqbkVprgAaOPG4BvnadN
       2LIB0S1ajvjJfOctdfstpiVYRU2W3i5sjqkoRLyn1Vy0olZ3MVQMZUP0saPqQPnF
       vrBSwDJ/CJ31mMMyyIP+JncCAwEAAaMNMAswCQYDVR0TBAIwADANBgkqhkiG9w0B
       AQUFAAOCAQEANb9WMN1Tedd+qvQuYvtjCJm5XEgWuQNG3LfSsHFU7ZB2Sjybj39/
       cfzHZuFdUtib6QPO1AuOvWyXZwIK8bcx6eFxoq7Ox6rTJVgJkw9XxoUbC2s2Du/o
       CtfPNc5cJJ/Xjlmufr3mNUT+26kG1RG1E8+QViTsRzwT/L9+SIX4KDvqUaZI+gqj
       6VSgVD2EkUK2OtHS1CvtFsCbVpwBTmcKErjPcnUl1RyvWoBtMLDbHOc09r/joJoS
       ruKoDlXKinkPMDeuazIR3JFYj40V3+OXXlSoc1H1DuXKKyZsZXFp9gKfoQXAllkO
       qlBsAiyXAsieWQsQoiAyyAyNpp8zGgIKxA==
       -----END CERTIFICATE-----
       subject=/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=FortiGate/CN=FG300C3913601712/emailAddress=support@fortinet.com
       issuer=/C=US/ST=California/L=Sunnyvale/O=Fortinet/OU=Certificate Authority/CN=support/emailAddress=support@fortinet.com
       ---
       No client certificate CA names sent
       Server Temp Key: DH, 1024 bits
       ---
       SSL handshake has read 2394 bytes and written 271 bytes
       ---
       New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC-SHA
       Server public key is 1024 bit
       Secure Renegotiation IS supported
       Compression: NONE
       Expansion: NONE
       SSL-Session:
           Protocol  : TLSv1.2
           Cipher    : EDH-RSA-DES-CBC-SHA
           Session-ID: F4B05A8E17FE406186242860D92EC90B9FF09EE731FE2C9DC3CE3B0EB57D50DC
           Session-ID-ctx: 
           Master-Key: 36EDD661CE7E6688395FF8FF1F76349A1E7054F62EE4D55590A24BB1C15B6FDF9EC3B3B92A7ECF3731424F4F5D9C3626
           Key-Arg   : None
           Krb5 Principal: None
           PSK identity: None
           PSK identity hint: None
           Start Time: 1435042817
           Timeout   : 300 (sec)
           Verify return code: 19 (self signed certificate in certificate chain)
       ---

Dieser "output" bestätigt die Verbindung kommt zu stande und dies ist im "generellen" schlecht dh. Grundsätzlich sollten folgende "cipher" deaktiviert werden:

       aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA

Die FortiGate bietet die Möglichkeit diese mit folgenden Befehl zu deaktiveren:

       # config system global
       # set strong-crypto enable
       # end
       
       NOTE Das aktivieren von "strong-crypto" beeinflusst den Mgmt. Access für HTTPS/SSH!

Nun führen wir wiederum einen Test durch:

       # /opt/scripts/cipherscan 198.18.0.1:8443
       custom openssl not executable, falling back to system one from /bin/openssl
       ................
       Target: 198.18.0.1:8443
       
       prio  ciphersuite                  protocols  pfs                      curves
       1     ECDHE-RSA-AES256-GCM-SHA384  TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       2     ECDHE-RSA-AES256-SHA384      TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       3     ECDHE-RSA-AES256-SHA         TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       4     DHE-RSA-AES256-SHA256        TLSv1.2    DH,1024bits              None
       5     DHE-RSA-AES256-SHA           TLSv1.2    DH,1024bits              None
       6     AES256-SHA256                TLSv1.2    None                     None
       7     AES256-SHA                   TLSv1.2    None                     None
       8     ECDHE-RSA-AES128-GCM-SHA256  TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       9     ECDHE-RSA-AES128-SHA256      TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       10    ECDHE-RSA-AES128-SHA         TLSv1.2    ECDH,prime256v1,256bits  prime256v1
       11    DHE-RSA-AES128-GCM-SHA256    TLSv1.2    DH,1024bits              None
       12    DHE-RSA-AES128-SHA256        TLSv1.2    DH,1024bits              None
       13    DHE-RSA-AES128-SHA           TLSv1.2    DH,1024bits              None
       14    AES128-SHA256                TLSv1.2    None                     None
       15    AES128-SHA                   TLSv1.2    None                     None
       
       Certificate: UNTRUSTED, 1024 bit, sha1WithRSAEncryption signature
       TLS ticket lifetime hint: 300
       OCSP stapling: not supported
       Cipher ordering: client

Nun sieht das Ganze korrekt aus dh. nur die gewünschten "cipher" sind aktiv und dies kann wiederum getestet werden zB anhand "DES":

       # openssl s_client -connect 198.18.0.1:8443 -cipher "DES"
       CONNECTED(00000003)
       140357317728160:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:744:
       ---
       no peer certificate available
       ---
       No client certificate CA names sent
       ---
       SSL handshake has read 7 bytes and written 73 bytes
       ---
       New, (NONE), Cipher is (NONE)
       Secure Renegotiation IS NOT supported
       Compression: NONE
       Expansion: NONE
       NOTE Eine andere Variante dh. zB alle "RC4" "ciphers" zu durchsuchen und festzustellen ob anhand diesen eine Verbindung
            zustande kommt wäre folgender Befehl der auf den meisten Linux Derivaten funktionieren sollte:
            
            #  for i in `openssl ciphers -v 'RC4' | awk '{print $1}'`; do echo -ne "$i\t" ;   echo |  openssl s_client -connect [FQDN des Hosts oder IPv4]:443 -cipher "$i" 2>&1 | grep New; done
            ECDHE-RSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            ECDHE-ECDSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            AECDH-RC4-SHA	New, (NONE), Cipher is (NONE)
            ADH-RC4-MD5	New, (NONE), Cipher is (NONE)
            ECDH-RSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            ECDH-ECDSA-RC4-SHA	New, (NONE), Cipher is (NONE)
            RC4-SHA	New, (NONE), Cipher is (NONE)
            RC4-MD5	New, (NONE), Cipher is (NONE)

Wie man sieht kommt die Verbindung nicht zustande dh. dies indiziert die Position "hadshare failure" sowie "New, (NONE), Cipher is (NONE)"! Wenn Wert gelegt wird auf Sicherheit sollte auf jeder FortiGate folgende Einstellungen durchgeführt werden:

       # config system global
       # set strong-crypto enable
       # set admin-https-ssl-versions tlsv1-2
       # end

Beachte jedoch durch die höhere Security leidet die Kompatibilität dh. ältere Browser sind nicht mehr fähig zu verbinden da diese "noch" die "alten" Versionen resp. tlsv1-0/1 usw. unterstützen.

Wie kann ich ein "Passwort Lockout" des User's "admin" (Administrator) konfigurieren/verändern?

Wenn ein Administrator sich 3 X falsch anmeldet wird ein "Lockout" ausgeführt dh. für eine bestimmte Zeit kann der Administrator sich nicht mehr anmelden. Die Anzahl der Versuche sowie die Zeitspanne kann angepasst werden dh. führe folgendes auf der Console aus:

       # config system global
       # set admin-lockout-threshold [Anzahl Möglichkeiten; Standard Wert ist 3]
       # set admin-lockout-duration [Zeitspanne in Sekunden; Stanard Wert ist 60]
       # end

Wie kann ich einen "read-only" Administrator konfigurieren/erstellen?

Unter folgender Positionen kann für eine "Administrator" ein eigenes "Profil" erstellt werden zB "read-only" und dieses nachträglich einem "read-only" Administrator als Profil zugewiesen werden:

       Datei:Fortinet-18.jpg
       Datei:Fortinet-19.jpg
       Datei:Fortinet-20.jpg
       Datei:Fortinet-21.jpg
       Datei:Fortinet-22.jpg

Wie aktiviere ich für einen lokalen User Two-Faktor Authentication anhand ODA?

Wenn man einen User lokal erfasst geschieht dies normalerweise anhand eines Usernamens und Passwortes. Möchte man nun -um die Sicherheit zu erhöhen- diesen User mit einem ODA (On Demand Authentication) versehen zB SMS Token kann dies auf Kommandozeile konfiguriert werden. Ausgangslage zu diesem Beispiel ist, dass ein Lokaler User mit Username und Passwort unter der folgenden Position erfasst wird:

       User & Device > User Definition > Create New
       
       NOTE Ab FortiOS 5.0.3 steht nach "Create New" ein Setup Wizard zur Verfügung. Wähle in diesem "Local User"
            und vergebe einen Usernamen und Passwort. Definiere für SMS eine Mobiel Nummer sowie den SMS Server
            jedoch aktiviere Two-Factor Authentication nicht! Dies geschieht über Kommandozeile!

Um nun dem lokalen User zusätzlich zum Usernamen und Passwort beim Login ein SMS Token zu senden (ODA) führe für den entsprechenden User den wir erfasst haben folgende Konfiguration aus:

       NOTE Wenn ein SMS Server erfasst werden soll dh. "Custom" und nicht "FortiGuard" erfasse/konfiguriere diesen. Wie
            das geschieht siehe folgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_meinen_eigenen_SMS_Provider.2FServer.3F
       # config user local
       # edit [Wähle den entsprechenden User]
       # set two-factor [Wähle disable | fortitoken | email | sms]
       # set sms-server [Wähle fortiguard | custom]
       # set sms-custom-server [Wähle den entsprechenden "Custom" SMS Server sofern vorhanden]
       # set authtimeout [Setze das Timeout der Authentifizierung dh. "0 - 1440" wobei 0 = Global Konfiguration gilt]
       # set auth-concurrent-override [Sind mehrfache Login's erlaubt "enable | disable]
       # end
       
       NOTE Wenn für "authtimeout" 0 gewählt wird gilt die "Globale Konfiguration" diese wird folgendermassen
            definiert:
            
            # config system global
            # set two-factor-sms-expiry [Setze 30 bis 300 Sekunden; Standard ist 60 Sekunden gesetzt]
            # two-factor-email-expiry [Setze 30 bis 300 Sekunden; Standard ist 60 Sekunden gesetzt]
            # end

Der User kann nun zB für das SSL-VPN Portal konfiguriert werden. Wenn sich der User einloggt gibt er normal Usernamen und Passwort ein. Im Hintergrund werden die Informationen übermittelt und wenn der User auf SMS Two Factor Authentication gesetzt ist, wird ein SMS ausgelöst sofern Usernamen und Passwort korrekt verifiziert wurden. Dem User wird auf eine neue Seite weitergeleitet auf der er den ODA Token (On Demand Authentication) -der im über SMS zugesendet wird- eingegeben kann (Token Code:)!

       NOTE Die Seite des SMS Token Code Eingabe kann über die "Replacement Message Groups" modifiziert und angepasst
            werden!
            
            FortiGate-5.0-5.2:FAQ#Was_sind_.22Replacement_Message_Groups.22_und_wie_verwende_ich_diese.3F

Grundsätzlich kann die Funktion für jede Authentifizierung im Zusammenhang mit FortiGate benutzt werden inder ein User lokal definiert wird. Remote Authenentifizierungen innerhalb von Gruppen wie zB LDAP und/oder Radius können nicht zusätzlich mit einer Two Factor Authentification ausgestattet werden dazu benötigt man den FortiAuthenticator.

Wie kann ich für die User und Gruppen das Authentication Timeoute setzen?

Ein "Authentication Timeout" kann auf Globaler Ebene gesetzt werden dh. für ALLE User oder auf gruppen Ebene für eine bestimmte Gruppe:

       Global für ALLE User (exkl. "admin"):
       # config user setting
       # set auth-timeout [Anzahl Minuten; per Standard 5; Maximum 1440 minutes (24 Stunden)]
       # set auth-timeout-type [idle-timeout | hard-timeout | newsession]
       # end
       Auf Gruppen Ebene:
       # config user group
       # edit [Name der Gruppe]
       # set authtimeout [Anzahl Minuten; per Standard 0)
       # end
       
       NOTE Falls ein User Mitglied von mehreren User Gruppen ist, bei welchen jeweils ein gruppenspezifisches
            authtimeout konfiguriert wurde, gilt für den Benutzer das global definierte authtimeout (Default 5 Min.).
            Ab FortiOS 5.2 kann das "Login" Timeout komplett in den globalen Optionen deaktiviert werden. Dazu siehe
            nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Kann_ich_das_Timeout_f.C3.BCr_ein_Login_komplett_ausschalten.3F

Desweiteren ist zu berücksichtigen, dass es für bestimte Funktionen wie den Admin, Console etc. spezifische Timeouts gibt die man explizit setzen kann:

       # config system global
       # set admintimout [Globales "admin" Timeout; Möglicher Wert 480 Minuten (8 Stunden); Standard 5 Minuten]
       # set admin-console-timeout [Ueberschreibt "admintimeout" für Console; Standard 0 = Kein Timeout resp. "admintimeout gilt]
       # set admin-ssh-grace-time [Timout für SSH zwischen Verbindung und Authentication; Möglicher Wert 10 - 3600 Sekunden; Standard 120 Sekunden]
       # set remoteauthtimout 5
       # end

Wie kann ich für jeden User (inkl. "admin") und/oder User in Gruppen ein "multiple login" verhindern?

Per Standard erlaubt eine FortiGate "multiple" Login's der User, Gruppen sowie für den "admin" User von der gleichen sowie unterschiedlichen IP's/Subnet. Um dies zu verhindern kann für den "admin" folgende Option deaktiviert werden:

       # config system global
       # set admin-concurrent [enable | disable]
       # end
       
       NOTE Wenn diese Option deaktiviert wird dh. nur noch ein Login möglich ist sollte die Option des "admin" Timeouts
            berücksichtigt werden dh. wird die Option "admin-concurrent" deaktiviert und die Verbindung zur FortiGate wird
            unvorhergesehen unterbrochen kann in einigen Situationen nicht mehr eingeloggt werden solange das Timeout des
            "admin" noch besteht! Weitere Informationen betreffend des "admin" Timout siehe folgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F

Wenn ein "multiple login" für User/Gruppen verhindert werden soll so stehen folgende Optionen zur Verfügung:

       Global für ALLE User/Gruppen:
       # config system global
       # set policy-auth-concurrent [Multiple Logins Definition; Standard 0 = No Limit]
       # end

Sofern in „group“ und/oder „local“ override „enable“ gesetzt ist wird die Global Option überschrieben und gilt nicht mehr!

       Auf Gruppen Ebene (Ueberschreibt Globale Konfig):
       # config user group
       # edit [Name der Gruppe]
       # set auth-concurrent-override [enable | disable]
       # set auth-concurrent-value [Wenn "auth-concurrent-override" auf enable Definiton der Login's zB "1"]
       # end
       Auf User Ebene (Ueberschreibt Globale Konfig):
       # config user local
       # edit [Name des User's]
       # set auth-concurrent-override [enable | disable]
       # set auth-concurrent-value [Wenn "auth-concurrent-override" auf enable Definiton der Login's zB "1"]
       # end

Auch bei den User/Gruppen ist das Timout zu berücksichtigen. Dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F
       FortiGate-5.0-5.2:FAQ#Was_kann_ich_betreffend_.22User_Authentication.22_auf_globaler_User_Ebene_sowie_Grupen_Ebene_konfigurieren.3F

Was kann ich betreffend "User Authentication" auf globaler User Ebene sowie Grupen Ebene konfigurieren?

Betreffend Authentifizierung auf User Ebene sowie Gruppen Ebene sind verschiedenen Konfigurationen möglich. Eine davon wäre die Konfiguration des "Timeouts". Details siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_die_User_und_Gruppen_das_Authentication_Timeoute_setzen.3F

Zusätzlich zum "Timeout" kann folgendes gesetzt werden:

       Global für ALLE User:
       # config user setting
       # set auth-blackout-time [Setze die "blackout-time"; 0 - 3600 Sekunden möglich; Standard 0] 
       # set auth-http-basic [enable | disable] 
       # set auth-invalid-max [Anzahl möglicher Authentifizierung bevor User geblockt wird; Standard 5]   
       # set auth-lockout-duration [Lockout Zeit in Sekunden; Standard 0]
       # set auth-lockout-threshold [Lockout Threshold; Danach wird "lockout-duration" ausgeführt; Standard 3]
       # set auth-multi-group [enable | disable]
       # set auth-secure-http [enable | disable]
       # set auth-type [ftp | http | https | telnet]
       # set auth-timeout [Anzahl Minuten; per Standard 5; Maximum 1440 minutes (24 Stunden)]
       # set auth-timeout-type [idle-timeout | hard-timeout | newsession]
       # config auth-ports
       # end
       NOTE Diese Konfiguration unter "config user setting" sind Global. In den Gruppen der User können diese Optionen mit Ausnahme des "Timeout's"
            nicht differenziert gesetzt werden da diese Optionen nur unter "config user setting" vorhanden sind. Auch in den local User setting dh.
            "config user local" kann mit Ausnhame des Timeouts diese Konfiguration anhand dieser Optionen nicht local für den User gesetzt werden
            da diese Optionen nur unter "config user setting" dh. Global zur Verfügung stehen. Zu den oben angegeben Optionen folgende Erläuterungen:
            
            auth-blackout-time         Bei der Blackout Time handelt es sich um folgendes: Wenn eine Authentifizierung innerhalb von einer Minute 5 Mal 
                                       falsch durchgeführt wird so wir die Source IP des Authentifizierenden für die Blackout Time gesperrt! 
            
            auth-http-basic            Wenn aktiviert wird so wird anstelle der Login Seite des Fortinet OS das reguläre Pop-Up Fenster des Browsers 
                                       angzeigt um die Authentifizierung durchzuführen. 
            
            auth-multi-group           (Standard aktiviert) steuern ob ein User -sei es local oder ActiveDirectory in mehrer Gruppen vorkommt. Ist dies 
                                       nicht der Fall dh. jeder User nur in einer Gruppe kann diese Funktion deaktiviert werden. Die Funktione
            
            auth-secure-http           Wird diese Option aktiviert so wird ein Redirect ausgeführt auf den sicheren Port HTTPS (per Standard deaktiviert)
            
            auth-type                  Wenn der User eine Authentifizierung durchführen soll betreffend einer Firewall Policy können hier die verschiedene
                                       Protokolle die für diese Authentifizierung benutzt werden sollen aktiviert/deaktiviert werden. Per Standard sind alle
                                       Protokolle aktiviert/definiert.
            
            config auth-ports          Werden keine Standard Ports benutzt für "ftp | http | https | telnet" können diese "nicht" Standard Ports hier definiert
                                       werden.

Redirection

In einer Redirection zB für eine Authentifizierung wird auf der Fortigate die IP anstelle des FQDN benutzt?

Wenn zB in einer "Identiy Based Policy" zB für HTTPS Zugriff (User muss sich Authentifizieren um HTTPS aufzurufen) benutzt wird so wird sobald der User eine HTTPS Seite aufruft ein Redirect auf die Authentifizierungs Seite (ebenfalls ein HTTPS Port; Standard 1003) der Fortigate ausgelöst. Die Weiterleitung auf diese Authentifizierungs Seite geschieht IP basierend dh. im Link der Authentifizierungs Seite erscheint die interne IP der Fortigate. Wird mit Zertifikaten gearbeitet löst dies jedoch wieder eine Zertifikats Hinweis/Fehlermeldung aus da das Zertifikat Namens Basierend ist und nicht IP basierend. Die Lösung wäre den Redirect Namens basierend auszulösen und nicht IP basierend.

       NOTE Der Lösungsansatz den Redirect Namens basierend auszulösen und nicht IP basierend ist auch dann in Anwendung zu
            bringen wenn der User hinter einem NAT Device (zB Router) sitzt!

Für das bessere Verständnis nachfolgend ein kurzes Schema wie so ein Redirect ausgelöst wird (per Standard):

       | USER |  ----> network -----> | FortiGate | -- HTTPS Site/Resources
       
       1 -------->       User "matched" eine Firewall Rule/Policy für HTTPS in der "Identiy Based Policy" aktiviert ist
       2 <-------        Ein Redirect auf einen HTTPS Port (Standard 1003) und auf eine IP Adresse der Fortigate wird ausgelöst
       3 -------->       User führt Authentifizierung aus
       4 -------->       User Authentifiziert sich erfolgreich und wird zur gewünschten HTTPS Seite weitergeleitet

Nachfolgend wird über die Console aufgezeigt wie die Konfiguration durchzuführen ist damit ein FQDN (Fully Qualified Domain Name) benutzt wird anstelle der IP:

       ACHTUNG Der benutzte FQDN muss sauber "intern" aufgelöst werden können. Wird ein externes Zertifikat benutzt das extern mit einer
               Public IP auflöst muss anhand eines Split DNS Servers die nötigen Konfiguration durchgeführt werden damit "intern" der
               FQDN mit einer "internen" IP aufgelöst wird. Ist intern kein Splitt DNS Server vorhanden kann die Fortigate herangezogen
               werden um dies zu erreichen!
                     
                     FortiGate-5.0-5.2:FAQ#Kann_ich_auf_der_Fortigate_einen_Splitt_DNS_Server_einrichten.3F
       # config firewall policy
       # edit [Gebe die entsprechende Policy ID an inder die "Identiy Based Policy" für HTTPS Zugriff aktiviert wurde]
       # set auth-redirect-addr "[Gebe hier den Fully Qualified Domain Name an]"
       # next
       # end

Wenn es nötig wird eine spezielle IP Adresse zu definieren (zB NAT Device) dann kann auch eine IP definiert werden:

       # config firewall policy
       # edit <my_policy_ID>
       # set auth-redirect-addr "[Definiere hier die spezielle IP Adresse zB NAT IP Adresse]"
       # next
       # end

Wenn man den Standard Port 1003 verändern möchte dh. auf einen anderen Port dann benütze folgendes:

       # config system global
       # set auth-https-port [Setze hier den gewünschten HTTPS Port]
       # end

Möchte man HTTP für die Authentifizierung ebenfalls aktivieren (Per Standard deaktiviert) führe folgendes aus:

       # config user setting
       # set auth-secure-http enable
       # end

Authentication

Wie kann ich eine Two-Factor Authentication zB ODA implementieren?

ODA steht für "On Demand Authentication" was wiederum zu vestehen ist ist als "Auf Abruf". Diese Authentifizierungs Methode ist die Gleiche wie eine Token Authentifizierung jedoch wird bei ODA diese durch den User selber ausgelöst (On Demand). Für weitere Informationen siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_einen_lokalen_User_Two-Faktor_Authentication_anhand_ODA.3F

Wie kann ich Authentifizierte User auf der FortiGate Auflisten/Monitoren?

Wenn auf einer FortiGate eine Authentifizierung zB anhand Radius, LDAP, Lokal durchgeführt wird, können die authentifizierten User über GUI anhand des Monitors aufgelistet werden. Die entsprechende Position findet man unter:

       User & Device > Monitor > Firewall

Diese authentifizierten User können ebenfalls über CLI aufgelistet werden. Dazu steht für das Filtering ebenfalls ein entsprechende Funktion zur Verfügung:

       # diagnose firewall auth filter 
       Current filters used to list authenticated policies:
               Policy ID: any
               User: any
               Group: any
               Source(IPv4): any
               Source(IPv6): any
               Method: any

Um einen Filter zu setzen benutze die entsprechend zur Verfügung stehenden Filter:

       # diagnose firewall auth filter ?
       clear      Clear all filters.
       source     IPv4 source address.
       source6    IPv6 source address.
       policy     Policy ID.
       user       User name.
       group      Group name.
       method     method
       
       NOTE Um zB eine "source" zu setzen benütze:
            
            # diagnose firewall auth filter source 192.168.1.1
            
            Danach kann der Filter abermalls kontrolliert werden:
            
            # diagnose firewall auth filter 
                    Current filters used to list authenticated policies:
                            Policy ID: any
                            User: any
                            Group: any
                            Source(IPv4): 192.168.1.1
                            Source(IPv6): any
                            Method: any

Nun können die "authentifizierten" User anhand dieses gesetzten Filter aufgelistet werden:

       # diagnose firewall auth list

Um den Filter zurück zu setzen benütze:

       # diagnose firewall auth filter clear

Wenn es bei den aufgelisteteten User zu Problemen kommt betreffend Authentifizierung kann ebenfalls die betreffende Session des Users aufgelistet werden. Dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Welche_Informationen_werden_f.C3.BCr_eine_einzelne_Session_in_der_.22session.22_Liste_aufgef.C3.BChrt_und_was_bedeuten_diese.3F

Radius

Wie kann ich einen Radius Server Anbindung Troubleshooten?

Nun ein Radius Server wird auf der FortiGate über die folgenden Position konfiguriert resp. hinzugefügt:

       User & Device > Authentication > RADIUS Servers

Dabei werden Angaben wie der Name (FQDN) sowie die IP des Radius Server angegeben. Die Konfiguration des Radius Server geschieht auf der FortiGate anhand eines "Preshared Key" (Server Secret). Ebenso wird die FortiGate auf dem Radius Server als sogenannten "Radius Client" erfasst und zwar mit demselben "Preshared Key". Anhand dieser Einträge sowie des "Preshared Key" wird der Traffic über TCP 1812 (New Radius) sowie -sofern benutzt- für das Accounting TCP 1813 verschlüsselt und Authorisiert. Die Etablierung der Authentifizierung kann über die FortiGate - sofern diese als Radius Client auf dem Radius Server erfasst wurde - anhand des "Test" Button durchgeführt werden. Um die Komunikation zwischen dem Radius Client und Server zu überprüfen stehen folgende Diagnose Kommandos zur Verfügung:

       Teste einene entsprechenden User mit dessen Passwort:
       
       # diagnose test authserver radius [Server Name] [Schema] [Gebe einen entsprechenden User an] [Gebe das Passwort an des gewählten Users]
       
       NOTE Als "Schema" kann folgendes definiert werden:
            
            chap, pap, mschap, mschap2
       Kontrolliere den Traffic über den entsprechenden Port:
       
       # diagnose sniffer packet [Name des Interfaces zB "internal"] 'port 1812' 3
       
       NOTE Weiter Informationen betreffend "Sniffer" Kommando siehe nachfolgenden ARtikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_benutze_ich_das_Sniffer_Kommando_.22diagnose_sniffer_packet.22.3F

Muss der Radius Port von New Radius 1812 auf Old Radius 1645 gewechselt werden führe folgendes auf der Kommandozeile durch:

            # config system global
            # get | grep radius-port
            radius-port           :1812
            
            # set radius-port 1645
            # get | grep radius-port
            radius-port           :1645
            
            # end

Desweiteren ist es möglich die Kommunikation zwschen der FortiGate sowie dem Radius Server einzusehen anhand folgenden Debug Mode:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application authd –1
       
       NOTE Beim "authd" handelt es sich um den Deamon für sämtliche lokalen, remote sowie FSSO Authentifizierungen!
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere die Debug Funktion
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück
       
       # diagnose debug reset

Desweiteren steht für ein Debug betreffend Radius "fnbamd" zur Verfügung:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application fnbamd –1
       
       NOTE Beim "fnbadm" handelt es sich um den "Fortigate non-blocking auth deamon"!
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere die Debug Funktion
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück
       
       # diagnose debug reset

Kann ich für eine FortiGate über Radius mit LDAP Anbidung ein Single-Sign-On konfigurieren (RSSO)?

Ja dies ist möglich und wird im nachfolgenden Dokument von Fortinet anhand des FortiAuthenticator's Schritt für Schritt beschrieben:

       Datei:FortiGate-Solutions-RSSO-RADIUS-Single-Sign-On.pdf
       Datei:Fortios-rsso-with-win-server-2012-and-nps.pdf

Active Directory (LDAP)

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

Nun um ein ActiveDirectory für verschiedenen Authentifizierungen einzubinden gehe folgendermassen vor:

       User & Device > Authentication > LDAP Server > Create New
       
       Datei:Fortinet-719.jpg
       
       NOTE Für "Regular" (empfohlen) muss ein Active Directory User erstellt werden mit einem entsprechenden Passwort.
            Es wird empfohlen diesen User als Read/Only Administrator zu erfassen und diesem Rechte über das ganzen Tree resp.
            Active Directory zu vergeben. Natürlich ist es möglich eine regulären User zu erfassen (nicht Administrator)
            und diesem die entsprechenden Rechte im Active Directory zu vergeben! Sobald der entsprechende User mit dessen
            Passwort unter "Regular" konfiguriert wurde kann anhand des Button "Test" die Konfiguration getestet werden. Dieser
            Test beinhaltet nur den Access dh. es zeigt nicht ob durch das Active Directy ein "browsing" durchgeführt werden 
            kann. Möchte man dies Testen so benutze das gezeigte "icon" denn damit lässt sich das Active Directory effektiv
            öffnen:
            
            Fortinet-837.jpg
            
            Wenn die Verbindung zum Active Directory verschlüsselt durchgeführt werden soll (Port 689) so muss ein entsprechendes
            Certificat definiert werden denn diese Verbindung basiert auf einer SSL Verbindung! Es stehen LDAPS sowie STARTTLS zur
            Verfügung.

Sobald die Active Directory (LDAP) Konfiguration erfolgreich durchgeführt wurde kann nun eine Gruppe erstellt werden um dort das Active Directory einzubinden:

       User & Device > User > User Group
       
       Datei:Fortinet-720.jpg
       
       NOTE Nun im unteren Bereich anhand des "Add" Button kann der entsprechende Active Directory (LDAP) Server hinzugefügt werden.
            Die Position "Any" bedeutet, dass ein entsprechender User (Active Directory Username) über das "ganze" Active Directory 
            mit dessem Tree durchsucht wird. Wir der entsprechende User gefunden wird die Authentifizierung durchgführt. Die Position
            "Specify" gibt die Möglichkeit eine Gruppe zu definieren. Anhand dieser Definition wird wiederum der Tree des Active 
            Directory durchsucht um festzustellen ob der User der eine Authentifizierung durchführt Mitglied ist dieser Gruppe. Ist
            dies der Fall wird eine Authentifizierung durchgeführt. Der Gruppen Name der unter "Specify" angegeben wird muss "unique"
            sein dh. wenn mehrer Gruppen mit dem gleichen Name im Tree des Active Directory existieren gilt "Top Down first Match wins".
            Wenn mehrere Gruppen definiert werden soll so kann anhand des "Add" Button eine weitere Zeile mit einer weiteren Gruppen
            Definition hinzugefügt werden. Um eine LDAP Anbidung zu troubleshooten siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_.22Active_Directory.22_.28LDAP.29_Anbindung_debuggen.3F

Die Generellen Vorbereitungen für eine Active Directory Authentifizierung sind abgeschlossen nun kann diese Konfiguration für verschiedenen weitere Konfigurationen benutzt werden wie:

       FortiGate-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_einen_Webfilter_betreffend_.22Local_Category.22_eine_Authentifizierung_.28authenticate.29_.C3.BCber_Active_Directory_.28LDAP.29_konfigurieren.3F
       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_unter_FortiOS_5.0_ein_SSL-VPN_Portal.2FTunnel_auf_einer_Fortigate.3F

Nachfolgend einige wichtige Informationen betreffend einer Anbindung eines Active Directory's dh. welche Ueberlegungen durchgeführt werden sollten sowie welche Möglichkeiten zur Verfügung stehen:

       Bestimmung und Identifizierung folgender LDAP Komponenten:
       
       • User
       • User group
       • container (Shared folder)
       • Organization unit (ou)
       Die Komponenten besitzen folgende Active Directory Struktur:
       
       • root wird definiert als 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-5.0-5.2:FAQ#Wie_kann_ich_eine_.22Active_Directory.22_.28LDAP.29_Anbindung_debuggen.3F

Wie finde ich für eine Active Directory Anbindung (Regular) den entsprechenden User DN resp. Bind DN heraus?

Wenn ein Active Directory Anbindung auf einer FortiGate konfiguriert wird so kann das über das Web Mgmt. Interface durchgeführ werden unter folgender Position:

       User & Device > Authentication > LDAP Server

Um einen Active Directory Anbindung für die meist gebräuchliche Art dh. "Regular Bind" zu konfiguriren sind 3 Grundsätzliche Informationen unerlässlich:

       Administrator Username und dessen Passwort
       User DN  (Regular Bind, Bind Type User DN mit Passwort)
       Bind DN  (Distiguished Name)

Für den Administrator empfehlen wir - unter normalen Umständen - einen Administrator auf dem Active Directory zu erstellen mit "vollen" Rechten jedoch "read-only". Dieser Administrator wird benutzt um die Verbindung in das Active Directory zu ermöglichen. Um den entsprechenden "User DN" herauszufinden kann "auf" dem Active Directory Server in einer DOS Box folgendes eingegeben werden:

       NOTE Die Dos Box dh. "cmd" muss auf dem Active Directory Server als Administrator gestartet werden. Wird dies nicht explizit 
            durchgeführt wird "dsquery" nicht gefunden!
       > dsquery user -name [Name des Adminstrators]
       cn=Adminstrator,cn=users,dc=also,dc=com

Um den korrekten "Bind DN" herauszufinden kann "auf" dem Active Directory Server in einer DOS Box folgendes eingegeben werden:

       > dsquery user -samid Administrator
      cn=Adminstrator,cn=users,dc=also,dc=com

Somit kann für die Konfiguration folgendes benutzt werden:

       Name                     [Name des Active Directory Servers; empfohlen FQDN]
       Server IP/Name           [IPv4 Adresse des Active Directory Servers]
       Server Port              389
       Common Name Identifier   ["cn" für vollständiger Name | "sAMAccountName" für Login Name]
       Distiguished Name        [dc=also,dc=com]
       Bind Type                Regular
       User DN                  [1:1 Output von "dsquery user -samid Administrator" dh. cn=Adminstrator,cn=users,dc=also,dc=com]
       Password                 [Entsprechendes Passwort des Administrator Username]
       NOTE Wird für "Common Name Identifier" die Konfiguration "cn" benutzt muess die User mit dessen vollständigen Namen einloggen
            im Gegensatz zu "sAMAccountName" der den Login Name der User akzeptiert!

Wie kann ich für eine Active Directory (LDAP) Anbindung ein Passwort Expyring Renewal Nachricht konfigurieren?

Wenn zB ein SSL-VPN betreffend Authentifizierung über ein Active Directory konfiguriert wird ist zu berücksichtigen, dass wenn ein "Passwort Renewal" konfiguriert wurde im Active Directory, dies ebenfalls für die Active Directory Anbindung auf der FortiGate zu konfigurieren ist. Dies bedeutet führe folgendes durch in der CLI um die "Expyring" Warnung sowie das "Renewal" zu aktivieren:

      # config user ldap
      # edit [LDAP Server Name]
      # set password-expiry-warning [enable oder disable]
      # set password-renewal [enable oder disable]
      # end
      
      NOTE Wird diese Konfigurtion durchgeführt muss berücksichtigt werden, dass die LDAP Anbindung auf der
           FortiGate anhand eines Administrators durchgeführt wird der "Read/Write" Rechte besitzt, denn wenn
           die Funktion "password-renewal" aktiviert ist so muss ein Schreibprozess durch die LDAP Anbindung
           auf der FortiGate in das ActiveDirecory erfolgen! Ohne Read/Write Rechte des Administrators -der
           die Anbindung zum ActiveDirectory ermöglicht- kann dieser Schreibprozess nicht erfolgen. Im Grundsatz
           wird dies nicht empfohlen!

Kann ich einen WiFi Client/Workstation über einen Active Directory LDAP Server unter Benutzung von WPA/WPA2 Authentifizieren?

Ein direkte Anbindung eines "LDAP" Servers im Zusammenhang mit einer "WPA/WPA2 LDAP Authentifizierung" wird für WiFi Clients/Workstations unterstützt. Jedoch nicht jeder "LDAP" Server. Dies bedeutet: der benutzte "LDAP" Server muss erlauben, dass das Passwort des "WiFi Clients/Workstation" über "clear-text" gesendet wird resp. der benutzte "LDAP" Server muss "clear-text" Passwörter akzeptieren. Ein "Windows Active Directory" unterstützt diese Art dh. "clear-text" Uebermittlung nicht mehr (seit Windows 2000). Aus diesem Grund müssen "WiFi Clients/Workstations" für "WPA/WPA2 LDAP Authentifizierung" über einen OpenLDAP eingebunden werden da nur ein "OpenLDAP" ein "clear-text" Uebermittlung des Passwortes akzeptiert. Der Grund für diesen Umstand ist, das "WPA" und "WPA2" Sicherheits Protokolle verschiedene "Hash Schemas" verwenden die nicht "Windows Active Directory" Kompatibel sind. Das ist der Grund wieso eigentlich für "WPA/WPA2" LDAP die Anbindungen über "OpenLDAP" Server geschehen muss/sollte.

       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33251&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=33038401&stateId=0

Um das Problem zu umgehen - wenn "OpenLDAP" nicht in Frage kommt - ist die Authentifizierung über Radius durchzuführen in dem das "Windows Active Directory" Angebunden/Konfiguriert wurde. Dies bedeutet: Die "WiFi Clients/Workstation" senden für "WPA/WPA2 LDAP Authentifizierung" deren Passwörter über "clear-text" zum Radius Server. Dieser erstellt die nötigen "Hash Schemas" die durch "Windows Active Directories" verstanden werden und sendet die Authentifizierungs Informationen zum angebundenen/konfigurierten "Windows Active Directory". Somit kann die Authentifizierung für "WPA/WPA2 LDAP Authentifizierung" über ein "Windows Active Directory" durchgeführt werden. Als Radius Server kann ein "FortiAuthenticator" eingesetzt werden oder auch anderen Radius Server die eine "Windows Active Directory" Anbinung ermöglichen.

Wie kann ich die "Password Renewal" Funktion für ein "Active Directory" (LDAP) Anbindung aktivieren?

Wenn ein "Active Directory" (LDAP) Anbindung konfiguriert wird zB. im Zusammenhang mit FortiClient IPSec Verbindung oder SSL-VPN stellt sich die Frage - wenn auf einem Active Directory die "Password Renewal" Funktion aktiviert ist - wie die User das Passwort wechseln können für das "Active Directory" wenn diese nicht Vorort sind? Diese Situation ist dann zu berücksichtigen, wenn User nicht sehr oft Vorort sind im internen LAN und somit angewiesen sind das Passwort zB über FortiClient IPSec oder SSL-VPN zu wechseln. Für diese Konfiguration gelten zwingend folgende Voraussetzungen:

       Die Implementation für die "Password Renewal" Funktion ist zwingend beschränkt für "Microsoft Active Directory". Andere
       LADP Anbindungen wie zB OpenLDAP, Oracle usw. werden nicht unterstützt. Die Funktion des "Password Renewal" muss in der
       entsprechenden "Active Directory" Konfiguration auf der FortiGate mit folgenden Kommandos aktiviert werden:
       
       # config user ldap
       # edit [Name des entsprechenden Active Directory resp. "Microsoft Active Directory"]
       # set password-expiry-warning [disable | enable]
       # set password-renewal [disable | enable]
       # end
       Desweiteren ist zwingend, dass die entsprechende Konfiguration auf der FortiGate für das "Active Directory" resp. für den
       "Microsoft Active Directory" Server mit verschlüsselten Port durchgeführt werden muss dh. der Port muss von 389 auf 689
       gesetzt werden sprich LDAPS. Die "Password Renewal" Funktion wird nicht über "clear-text" Port unterstützt dh. 389. Für 
       die Konfiguration für LDAPS ist folgendes zu definieren ausgehend davon das ein bestehende Konfiguration besteht:
       
       # config user ldap
       # edit [Name des entsprechenden Active Directory resp. "Microsoft Active Directory"]
       # set secure ldaps
       # set ca-cert [Name des entsprechenden Zertifikats des "Microsoft Active Directory" Server]
       # end
       
       NOTE Das benutzte Zertifikat des "Microsoft Active Directory" Servers muss auf der FortiGate entsprechend Importiert werden!

Wenn diese zwei Voraussetzungen gegeben sind kann die "Password Renewal" Funktion im Zusammenhang mit FortiGate Funktionen benutzt werden.

Eine "Active Directory" Replizierung funktioniert nicht über ein VPN Tunnel (netbios forward)?

Wenn zwei FortiGate's verbunden werden über einen VPN Tunnel und über diesen eine "Active Directory" Replizierung durchgeführt wird so wird dieser Traffic geblockt. Der Grund dafür ist das der "netbios" Traffic "forward" nicht über ein Interface per Standard erlaubt ist. Um diesen Traffic dennoch zu erlauben muss auf dem entsprechenden Interface "netbios" erlaubt werden:

       # config system interface
       # edit [Name des Interface]
       # set netbios-forwarding enable
       # end
       
       NOTE Diese Konfiguration ist durchzuführen für eine NAT Firewall. Wird eine Transparent
            Firewall benutzt resp. muss "netbios forward" über eine Transparent Firewall konfiguriert
            werden muss folgendes Kommando abgesetzt werden:
            
            # config system interface
            # edit [Name des Interface]
            # set l2forward enable
            # end

Wie kann ich eine "Active Directory" (LDAP) Anbindung debuggen?

Um eine "LDAP" Anbindung zu testen kann ein entsprechender User mit dessen Passwort der im ActiveDirectory existiert herangezogen werden um einen entsprechenden Test auf der FortiGate durchzuführen:

       # diagnose test authsever ldap [Server Name] [Gebe einen entsprechenden User an] [Gebe das Passwort an des gewählten Users]

Desweiteren kann über "diagnose debug" Befehl folgendes ausgeführt werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application fnbamd –1
       
       NOTE Beim "fnbadm" handelt es sich um den "Fortigate non-blocking auth deamon"!
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere die Debug Funktion
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück
       
       # diagnose debug reset

Desweiteren steht für ein Debug "authd" zur Verfügung für alle lokalen, remote sowie FSSO Authentifizierungen:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug application authd –1
               
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       Deaktiviere die Debug Funktion
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück
       
       # diagnose debug reset

Eine weitere Möglichkeit LDAP Authentifizierungs Probleme zu verifizieren ist über das Sniffer Kommando eine entsprechende "error" Nachricht zu erhalten zB "user not found". Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate:Diagnose-Sniffer-Guide#Sniffe_Packet_f.C3.BCr_LDAP_Port_389_um_entsprechende_.22error.22_Nachrichten_zu_erhalten.3F

Wie kann ich eine "Active Directory" (LDAP) Anbindung testen?

Um eine Anbindung zu einem Active Directory auf "User" Basis zu testen kann folgender "diagnose test" Befehl ausgeführt werden:

       # diagnose test authserver ldap [Name Windows LDAP Server] [Username] [Passwort]
       authenticate '[Username]' against 'WindowsLDAP' succeeded!

FSSO (Fortinet Single-Sign-On)

Wie ist FSSO zu verstehen?

FSSO steht für "Fortinet Single-Sign-On" und steht im Zusammenhang mit "Directory Services". Es werden Windows Active Directory unterstützt sowie Novell eDirecotry. FSSO wird ebenfalls durch FSAE (Fortinet Server Authentication Extension) benutzt oder früher war FSSO auch bekannt als "Fortinet Server".

Was kann mit FSSO durchgeführt/angezeigt werden?

FSSO kann folgende Information verarbeiten:

       > Zeigt Login Events an
       > Zeigt Workstation Name, Domain und User an
       > Löst den Workstation Name zur korrespondierenden IP Adresse auf
       > Löst Gruppen auf zu dessen User Mitglieder sind
       > Sendet Login Informationen zum Fortigate Device
       > Erstellt Log Einträge auf dem Fortigate Device

Grundsätzlich gilt: Die FSSO Funktion überwacht welche User über Active Directory oder eDirecorry eingeloggt sind und leitet diese Information dem Fortigate Device weiter! Ist der User Mitglied einer Gruppe die in einer Policy definiert wurde, erhält der User Zugriff auf die Netzwerk Resource!

Es gibt zwei Arten wie FSSO arbeitet; welche sind das?

FSSO kann in zwei vers. Arten ausgeführt werden:

       Domain Controller Agent mode
       Polling mode

Wie funktioniert der "Controller Agent mode"?

Für den "Controller Agent mode" muss auf jedem Domain Controller der Domain Controller Agent installiert werden. Zusätzlich auf einem Windows Server der Wahl muss der Collector Agent installiert werden. Dieser "Collector Agent" erhält die Login Informationen übe den "Domain Controller Agent" und leitet diese dem Fortigate Device weiter. Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy.

       NOTE In dieser Konstellation gilt als Nachteil, dass auf jedem Domain Controller ein Agent 
            (Software) zu installieren ist. In grossen Umgebungen kann dies einigen Aufwand bringen. 
            Für die korrekte Uebermittlung der Informationen zum Collector Agent muss zwischen dem 
            Domain Controller und Collector Agent eine garantierte Bandbreite von 64 kb zur Verfügung 
            stehen.

Wie funktioniert der "Polling mode"?

Für den "Polling mode" muss auf dem Domain Controller kein "Domain Controller Agent" installiert werden. Es reicht den Collector Agent auf einem Server der Wahl zu installieren. Der "Collector Agent" weist den Domain Controller in kurzen (wenige Sekunden) Abständen an (polling) die Login Informationen der User zu übermitteln um diese sogleich dem Fortigate Device weiterzuleiten. Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy.

       NOTE Wenn der "Domain Controller" ausgelastet ist, kann es vorkommen das Login Informationen nicht 
            durch den "Collector Agent" verifiziert werden. Dies gilt als Nachteil wobei in grossen 
            Environemnts mit vielen Domain Controllern der Vorteil übewiegt nicht auf jedem Domain 
            Controller eine Software zu installieren da die Installation eines Collector Agents ausreicht!

Ueber welchen Port kommuniziert FSSO (Collector Agent) und der Fortigate Device?

FSSO (Collectory Agent) benutzt den Port 8256 für die Uebermittlung der Informationen zum Fortigate Device!

Kann NTLM im Zusammenhang mit FSSO benutzt werden?

Ja dies ist möglich. In so einer Konstellation initiert der Fortigate Device eine NTLM Komunikation (negotiation) mit dem Client Browser (Internet Explorer only; FireFox benötigt ein NTLM Plug-In). Der Fortigate Device übermittelt die NTML Package zum "Fortigate Collector" und dieser überprüft die Informationen über den "Domain Controller". Basierend auf der Gruppen Zugehörigkeit des Users und die definierte Policy (Gruppe wird definiert in der Policy) erhält der User Zugriff auf die definierte Resource in der Policy. Auf der entsprechenden Rule muss für die Identity Based Policy folgende Optionen gesetzt werden:

       # config firewall policy 
       # edit [Gebe den Integer an der entsprechenden Policy] 
       # set srcintf [Gebe das Source Interface an] 
       # set dstintf [Gebe das Destination Interface an] 
       # set srcaddr [Definiere die Source Adresse/n an]
       # set dstaddr [Definiere die Destination Adresse/n an]
       # set action accept 
       # set service "webproxy" 
       # set identity-based [enable]
       # set ip-based [enable]
       # set active-auth-method [ntlm]
       # set sso-auth-method [fsso]
       # edit [Gebe den Integer an einer neuen Identity Based Policy zB "1"] 
       # set schedule "always" 
       # set utm-status [enable]
       # set groups [Definiere eine Active Directory Gruppe] 
       # set webfilter-profile [Definiere einen entsprechenden WebFilter]
       # set profile-protocol-options [Definiere ein entsprechendes Profil] 
       # next
       # end

Wie kontrolliere ich ob der FSSO "Collector Agent" und die Fortigate zusammen kommunzieren?

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

Nach Gebrauch deaktivieren wieder den debug Modus!

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

Wie kann ich kontrolliere welche User moment eingeloggt sind über FSSO?

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug authd fsso list
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       NOTE Zusätzlich zu der Angaben "auth fsso list" kann "firewall auth list" benützt werden um die
            Authentifizierung an der Firewall anzuzeigen!

Desweiteren steht anstelle von "list" noch folgende Parameter zur Verfügung:

       clear logon      (Löscht alle Login Informationen)
       list             (Listes alle momentan Login auf)
       refresh-groups   (Erneure das Group Mapping)
       refresh-logons   (Re-Synchronisiere die Login Database)
       server status    (Zeige FSSO Server Verbindungen)
       summary          (Summary der momentanen Login's)

Um den Debug auszuschalten führe folgendes aus:

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

HA (High Availibility)

Gibt es für Cluster (Hardware und/oder Virtuell) Spezielle Konditionen bei Fortinet?

Nun Fortinet bietet seinen Resellern Spezielle Konditionen auf Hardware (keine speziellen Konditionen auf Virtuell Appliance sprich VMware) für einen Cluster! Dabei gelten folgenden Vorrausetzungen:

       *************************************************************************************************************************************
       * NOTE Diese Informationen sind ab 1. April 2015 "nicht mehr gültig" dh. bei spezielleren Projekten grösser 15'000 CHF hat man die  *
       *      Möglichkeit Anfragen über einen SPR (Special Price Request) bei Fortinet zu platzieren. Diese Aenderungen gelten für die     *
       *      Schweiz und Oesterreich dh. in allen anderen Ländern ist diese Aenderung dh. dass Fortinet keine Cluster Konditionen mehr    *
       *      bietet seit mehr als 2 Jahren aktiv.                                                                                         *
       *************************************************************************************************************************************
       -> Nur auf Hardware 100D oder grösser
       -> Hardware muss identisch sein dh. zB 2 X 100D
       -> FortiCare (min. 8 X 5) und FortiGuard (Bundle) muss bezogen werden für jeden Node (ab 1000C "Next Generation Firewall" FortiGuard Update Service möglich)
       -> Minimum Laufzeit für FortiCare (min. 8 X 5) und FortiGuard für jeden Node mind. 2 Jahre
       -> Darauffolgende Jahre FortiCare (min. 8 X 5) und FortiGuard keine speziellen Konditionen für 1 Jahr Renewal
       -> Darauffolgende Jahre FortiCare (min. 8 X 5) und FortiGuard spezielle Konditionen für 2 Jahr Renewal oder mehr

Folgende Konditionen gelten für Hardware und/oder Services:

       -> Hardware = 1ter Node 100% (Regulärer Partnerpreis)
                     2ter node 50% auf Regulärer Partnerpreis
          
          Bedeutet
          Listenpreis minus Partner Status Discount zB Bronze 25% = Regulärer Partnerpreis
          Regulärer Partnerpreis minus Cluster Discount 50% = Cluster Konditionen Hardware
       -> Service (FortiCare / FortiGuard (Bundle) ) = 1ter Node 100% (Regulärer Partnerpreis)
                                                       2ter node 30% auf Regulärer Partnerpreis
          
          Bedeutet
          Listenpreis minus Partner Status Discount zB Bronze 12.5% = Regulärer Partnerpreis
          Regulärer Partnerpreis minus Cluster Discount 30% = Cluster Konditionen Service

Folgende Dokumente geben detailliert Auskunft über das oben beschriebene:

       Datei:FORTINET ALPS High Availability Policy.pdf
       Datei:Fortinet HApolicy Discount-Matrix-Reseller.pdf

Kann ich mit unterschiedlichen FortiGate Hardware einen Cluster bauen?

Nun grundsätzlich Nein dh. das FGCP (FortiGate Cluster Protokoll) basiert auf der Hardware dh. mit unterschiedlicher FortiGate Hardware zB FG-60C mit FG-60D kann KEIN Cluster gebaut werden. Auch innerhalb der gleichen Devices gibt es vers. Revisionen sowie Hardware Generationen. Weitere Informationen betreffend Hardware Revisions/Generationen siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_verifiziere_ich_die_Hardware_Revision_eines_FortiGate_Devices.3F

Diese Ueberprüfung der gleichen Hardware Revisions/Generationen kann mit folgenden Befehl deaktiviert werden:

       # execute ha ignore-hardware-revision status
       The ignore mode is disabled

Im normal Fall wird Hardware für einen Cluster als Cluster Hardware bezogen dh. um in den Genuss der Cluster Konditionen zu kommen. Weitere Informationen siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Gibt_es_f.C3.BCr_Cluster_.28Hardware_und.2Foder_Virtuell.29_Spezielle_Konditionen_bei_Fortinet.3F

Dies bedeutet wird ein Hardware Device als Standalone bezogen, und erst später daraus ein Cluster gebaut, kommt man nicht in den Genuss der Cluster Konditionen. Ebenfalls kann diese Situation einige Probleme verursachen dh. wenn es sich beim zusätzlichen Node um eine andere Hardware Revision/Generation handelt, muss nachfolgender Befehl auf der Kommandozeile abgesetzt werden um die unterschiedlichen Revisionen/Generation innerhalb des FGCP zu ignorieren:

       # execute ha ignore-hardware-revision enable
       
       # execute ha ignore-hardware-revision status
       The ignore mode is enabled

Desweiteren darf sich die Hardware von beiden Nodes nicht unterscheiden dh. beiden müssen über die gleiche Anzahl/Art Interface verfügen. Ebenfalls müssen beiden Nodes über eine Disk in der gleichen Grösse verfügen. Ist dies zB nicht der Fall können die Disk zB unformatiert bleiben, sprich dadurch sind diese nicht mehr in Gebrauch und werden ignoriert.

       NOTE Es ist zu empfehlen gleiche Hardware in einem Cluster jedoch mit unterschiedlichen Revisions etc. zu verhindern,
            denn dies kann zu Problemen führen im Betrieb des Clusters. Wichtig ist auch, dass bei einem allfälligen RMA
            Austausch klar für den Device der auszutauschen ist, den Hinweis zu liefern, dass dieser in einem Cluster benützt
            wird (Serien Nummer). Somit ist gewährleistet, dass Fortinet als Austausch eine kompatiblen Device liefert. Ist/Wäre 
            dieser Device für einen Austausch nicht mehr lieferbar sendet Fortinet zwei Devices mit gleicher Revisions.

Ist es möglich ein FortiGate Cluster zu konfigurieren wenn DHCP/PPPoE auf den Interfaces benutzt wird (HA)?

Bis anhin war dies nicht möglich unter FortiOS 5.0. Dies bedeutet, war ein Interface -ob in Gebrauch oder nicht- als DHCP und/oder PPPoE definiert stand der Befehl "config system ha" nicht zur Verfügung. Neu ist unter FortiOS 5.2 ist dies möglich dh. für Active-Passive Cluster. Weitere Informationen wie ein Active-Passive Cluster konfiguriert wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F

Wie setze ich für Fortigate einen Cluster auf (HA)?

Wenn man einen Cluster (HA) für zwei Fortigate aufsetzen möchte dann ist folgendes dabei zu beachten:

       -> Gleiche Hardware Konfiguration (Kein Support für unterschiedliche Modelle in einem Cluster)
       -> Gleiche Konfiguration/Grösse für die Harddisk
       -> Gleiche Zusatz Karten sofern vorhanden (AMC / FMC)
       -> Gleicher mode Interface/Switch/Hub (Sofern Switch Interfaces vorhanden sind)
       -> Gleiche Softswitch Konfiguration
       -> Kein Interface im PPPoE oder DHCP Mode (HA Mode ist Deaktiviert resp. "config system ha" steht nicht zur Verfügung FortiOS 5.0)
       -> Gleiche Firmware auf beiden Devices
       -> Gleicher Operation Mode (Transparent oder NAT)
       -> Gleicher VDOM mode (aktiviert oder deaktiviert)
          NOTE Betreffend vers. FortiGate Modelle/Revisions in einem Cluster siehe nachfolgender 
               Artikel:
               
               FortiGate-5.0-5.2:FAQ#Kann_ich_mit_unterschiedlichen_FortiGate_Hardware_einen_Cluster_bauen.3F
               
               Unter FortiOS 5.2 ist es möglich im Gegensatz zu FortiOS 5.0 einen Active-Passive Cluster
               zu konfigurieren obwohl DHCP und/oder PPPoE benutzt wird!

In unserem Beispiel gehen wir von folgender Konstellation aus:

       NOTE Beide Fortigate's befinden sich in Factory Default Status dh. das Internal Interface ist mit der
            IP 192.168.1.99/24 versehen!
                                           __________
                                          |          |
                                          | INTERNET |
                                          |__________|
                                               |
                                        _______|______
                       ________________|              |________________
                      |                |  Red Switch  |                |
                      | WAN1           |______________|                | WAN1
                 _____|_____                                      _____|_____ 
                |           |                                    |           |
                |           |<---- DMZ Interface Heartbeat------>|           |
                |           |                                    |           |
                |  FORTI    |                                    |  FORTI    |
                |           |                                    |           |
                |           |<---- WAN2 Interface Heartbeat----->|           |
                |___________|                                    |___________|
                      |                 ______________                |
                      | INTERANL       |              |               | INTERNAL
                      |________________| Green Switch |_______________|
                                       |______________|
                                              |
                                         _____|____
                                        |          |
                                        |   LAN    |
                                        |__________|

Wenn diese Vorraussetzungen gegeben sind gehe folgendermassen vor:

       Starte den "Master" und logge dich ein auf dem Web Mgmt. Interface und setze den Hostname für den Master:
       
       System > Dashboard > Status > System Information > Host Name
       Nun gehe zur folgenden Position um den HA Modus zu aktivieren:
       
       System > Config > HA
       
       Mode        Active-Passive
       Device      Priority 128
       Group Name  FGT-HA
       Password    ********
       Enable Session Pick-up [aktiviert]
       
       NOTE Wenn "Enable Session Pick-up" nicht aktiviert wird so werden die aktiven Sessions des Master's nicht
            dem Slave Device mitgeteilt dh. bei einem "Failover" vom Master zum Slave kommt es zum Unterbruch da
            der Slave nicht weiss welche Sessions er übernehmen muss. Die zuständigen Interfaces für diese Session
            Uebermittlung sind die "Heartbeat" Interfaces. Ein "Heartbeat" Interface sollte exklusiv benutzt werden
            dh. NUR für die Uebermittlung der Sessions (100 Mbit). Der Wert der Priority dieses Interfaces sollte
            höher liegen als des zweiten Interfaces (zB 100). Es ist zu empfehlen ein zweites "Heartbeat" Interface
            zu definieren. Dieses muss nicht exkl. für "Heartbeat" resp. zur Session Uebermittlung benutzt werden.
            Wenn zB das "wan2" genutzt wird kann diess auf Priority "50" gesetzt werden. Da das "Heartbeat" das 
            exkl. zur Session Uebermittlung auf "100" steht wird nur dieses genutzt und über "wan2" da nur auf 
            "50" gesetzt keine Sessions Uebermittelt (Kein Traffic). Dieses "wan2" wird nur dann genutzt wenn das
            exkl. "Heartbeat" das auf "100" steht ausfällt. Für das "Heartbeat" Interface muss nicht zwingen eine 
            IP Konfig durchgeführt werden:
            
            FortiGate-5.0-5.2:FAQ#Welche_IP_Adressen_werden_in_einer_HA_Konfiguration_f.C3.BCr_ein_Heartbeat_Interface_vergeben.3F
            
            Wenn als zweites Interface für den "Heartbeat" ein reguläres Interface benutzt wird zB "Internal" sollte
            berücksichtigt werden, dass die Session Uebermittlung in "clear-text" erfolgt dh. Potentiell können die
            Sessions/Traffic mitgehört werden. Dies sollte man verhindern indem man den "Heartbeat" Traffiv verschlüsselt:
            
            FortiGate-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_den_Heartbeat_eine_Verschl.C3.BCsselung_und.2Foder_eine_Authentifizierung_aktivieren.3F
            
            Desweiteren hat Fortinet betreffend "Heartbeat" ein Dokument released das aufzeigt wie dieses Konfiguriert wird.
            In diesem Dokument wird gezeigt was bei einem "Heartbeat" zu berücksichtigen ist:
            
            Datei:FGSP Configuration Guide.pdf (FortiGate Session Life Support Protocol)
       
       dmz         Heartbeat Interface Enable (Priority 100)
       wan2        Heartbeat Interface Enable (Priority 50)
       
       NOTE Später muss der Slave ebenfalls im gleichen Sinne konfiguriert werden. Möchte man das der Master immer als Master
            aggiert (nach Failover wird der effektive Master Device wieder Master was normalerweise nicht geschieht da beide
            Device über die gleiche Priority verfügen) kann die Priority gegenüber dem Slave höher angesetzt werden! Dies gilt jedoch
            nur insofern, dass die Priority überschrieben wird von der Anzahl Monitored Inferfaces sowie dem "age" (uptime des Device).
            Nachfolgende Abbildung gibt Auskunft nach welchen Kritieren/Funktionen ein Primary zum Primary wird:
            
            Datei:Fortinet-336.jpg
            
            Das Kommando das eingegeben werden muss auf dem Device um die Device Priority über die Console anzupassen wäre:
            
            # config system ha
            # set priority [Priority]
            # end
            
            PLEASE NOTE Um zu gewährleisten, dass der Device mit der höheren Priority zum Primary wird kann die Option "override" 
                        benutzt werden. Diese Option ist per Standard "disabled" sofern es sich nicht um einen virtuellen Cluster 
                        handelt denn in so einem Fall ist "override" per Standard "enabled". Die Option "override" löst eine häufigere
                        "negotiation" aus für die Cluster Devices. Die Option "override" überschreibt wenn diese auf "enabled" steht 
                        die Funktion "age". Dies bedeutet wiederum das "priority" an erster Stelle steht "vor" der Funktion "age". 
                        Somit wird "age" nicht deaktiviert sondern "priority" greift zuerst "vor" der Funktion "age". Haben beide 
                        Devices die gleiche Priority und "override" steht auf "enabled" so greift das System zurück auf die Funktion
                        "age". Im Grundsatz wird empfohlen die Option "override" auf "disabled" zu belassen. Wenn diese dennoch auf
                        "enabled" gesetzt wird muss folgendes berücksichtigt werden um einen Konfigurations Verlust zu verhindern:
                        
                        - Devices in einem Cluster müssen beide einwandfrei Mitglieder des Clusters sein (get system ha status)
                        - Device Priority auf dem Primary Device MUSS höher sein als auf dem Slave Device
                        - Bei Austausch von Devices ist Vorsicht geboten um einen Konfigurationsverlust zu verhindern da der "master"
                          mit "override" aktiviert den "slave" überschreibt!
                        
                        Um "override" zu benutzen muss auf dem PRIMARY folgender Befehl abgesetzt werden:
                        
                        # config system ha
                        # set override enable
                        # end
       
       Wenn nun die Konfiguration mit Device Priority sowie mit der Funktion "override" belassen wird reagiert der Cluster nicht auf
       Ausfälle von Interfaces sondern nur auf den Ausfall eines Devices im Cluster. Um einen Interface Verlust abzudecken muss das
       betreffenden Interface für das Monitoring konfiguriert werden. Weitere Informationen siehe Artikel:
       
       NOTE Das Montitoring der Interface darf erst dann aktiviert werden wenn der Cluster vollumfänglich aktiv ist und alle Interfaces
            sauber angeschlossen und überprüft worden sind!
       
            FortiGate-5.0-5.2:FAQ#Wie_soll_die_Funktion_des_.22Port_Monitoring.22_der_Interface_in_einem_HA_Cluster_benutzt_werden.3F
       
       NOTE Es ist zu empfehlen 2 oder mehrere Interfaces als Heartbeat zu definieren. Wenn nur ein Hearbeat konfiguriert ist 
            und dieser unterbrochen wird, (Cluster sehen sich nicht mehr) aggiert jeder Device als Standalone (split-brain configuration)
            und es kommt es zum Netzwerkunterbruch! Aus diesem Grund sollten mind. 2 Interfaces als Hearbeat konfiguriert werden. Wenn
            mehr als 1 "Hartbeat" (exklusiv oder geshared) benutzt wird und über die gleiche Priorität verfügen, wird der Hartbeat Traffic
            über das Interface gesendet, dass über den kleineren "has map order value" verfügt. Wenn die Priorität unterschiedlich gesetzt
            ist wird der "Hartbeat" Traffic über das Interface gesendet mit der höheren Priorität und das Interface mit der "kleineren" wird
            als "fallback" benutzt!
       
       Bestätige die Konfiguration und es geschieht folgendes:
       
       Temporaer kann die Verbindung zur Fortigate verloren gehen da die Fortigate bei der Bestätigung die MAC Adresse der Interfaces 
       entfernt und eine virtuelle MAC Adresse für den Cluster erstellt. Möchte man den Unterbruchen so klein wie möglich halten die 
       ARP Table auf der Workstation über die man auf die Fortigae zugreift gelöscht werden (zB für Windows):
       
       arp -d *
       
       NOTE Weitere Befehle siehe im DOS Prompt "arp /?"!
       
       Nun muss der "Master" runtergefahren werden! Bevor dies geschieht, erstellen wir vom "Master" ein Backup:
       
       System > Dashbaoard > System Information > Backup
       
       Nun fahre nachdem erstellen des "Backup's" den Master über die CLI runter (ausschalten):
       
       # execute shutdown
       
       Starte den Slave (nicht am Netz)! Konfiguriere den Slave exact im gleichen Sinne wie der Master dh. Hardware-Technisch, Firmware 
       (nicht vergessen event. die Harddisk zu formatieren "execute formatlogdiks"). Oeffne das Backup File des Masters und ändere den 
       Hostname (Position):
       
       # config system global
       # set hostname [Gewünschter Hostname]
       
       Nachdem der Slave Hardware-Technisch sowie Firmware-Technisch exakt genau gleich aufgesetzt ist wie der Master, erstelle 
       auf die Slave Maschine eine Verbindung auf das Web Mgmt. Führe nun anhand des modifizierten Backup Files des Masters ein
       "Restore" durch unter:
       
       System > Dashbaoard > System Information > Backup
       
       NOTE Bei FortiOS 5 benötigt das File keine Modifikationen wenn es auf einem anderen/neuen Device wiederum als Restore 
            eingespielt wird. Bei FortiOS 4 benötigt man Modifikationen des Files ansonsten kann das File nicht auf einem anderen
            Device eingespielt werden. Folgender Artikel gibt Auskunft was bei FortiOS 4 durchzuführen ist:
            
            FortiGate-5.0-5.2:FAQ#Was_ist_bei_einem_Restore_zu_ber.C3.BCcksichtigen.3F
       
       Nachdem Neustart des Devices greife erneut auf das Web Mgmt. zu. Es gilt nun die IP resp. die Zugangsinformationen gemäss
       Restore resp. Backup File des Masters. Auf dem Web Mgmt. ändere die Priorität des Slave (Tiefere Priorität) dh. unter:
       
       System > Config > HA > [Rechts auf Edit]
       
       Nach dieser Konfiguration fahre ebenfalls den Slave runter und schalte diesen aus (über CLI oder Web Mgmt):
       
       # exec shutdown
       
       Nun verkable die beiden Devices gemäss Abbildung die zu Beginn dieses Artikel aufgezeigt wird. Bei den Heartbeat's können ebenfalls
       Crossover Kabel zum Zuge kommen oder "transparente" VLAN's! Sobald die Devices korrekt verkabelt wurden starten zuerst den:
       
       Master
       
       Sobald der Master "up" ist kontrolliere diesen über das WebMgmt. Danach starte den "Slave" Der Cluster Aufbau findet beim Start der 
       Devices statt und benötigt keine weitere Konfiguration. Wenn man auf der Console des "Slave's" das Ganze mitverfolgt fällt einem auf, 
       dass nachdem Start folgende Meldungen auf der Console erscheinen:
       
       [Hostname des Slaves] login: slave's external files are not in sync with master, sequence:0. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:1. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
       
       Dieser Zustand dh. "not in sync" bleibt solange bis der "erste" Sync durchgeführt wurded (ca. 2 - 3 Minuten). Danach erscheint eine Bestätigung
       des erfolgreichen "Sync":
       
       slave succeeded to sync external files with master
       
       Sobald der Cluster aktiv ist kann dieser wie eine Single Unit konfiguriert werden. Die einzelnen Device des Clusters können nicht mehr
       angesprochen werden sofern nicht je Device ein "Dediziertes Management Interface mit IP's" benutzt wird. Sobald der Cluster Aktiv ist wird
       diser nur noch mit den Cluster MAC Adressen und dazugehöriger IP angesprochen. Es wird für die einzelnen Nodes kein IP Adresse mehr benötigt.
       
       Als nächstes kann/können die benötigten Interfaces mit deren IP Adressen konfiguriert werden. Um auf die Fortigate zu verbinden öffnet einen
       Broswer und verbinde dich auf die Virtuelle Cluster Adresse und logge dich ein:
       
       https://192.168.1.99
       
       Wenn es Probleme gibt betreffend Verbindung so konfiguriee den Client mit einer IP aus dem gleichen Subnet dh. zB 192.168.1.1/24. Konfiguriere
       nun den Cluser betreffend IP Adressen, DNS Server, Routing etc. wie gewohnt.
       
       NOTE Nun kann nach Abschluss der Konfiguration und der korrekten Verkabelung das Monitoring der Interfaces eingeschaltet werden:
            
            System > Config > HA
            
            Weitere Informationen zu diesem Thema findet man im Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_soll_die_Funktion_des_.22Port_Monitoring.22_der_Interface_in_einem_HA_Cluster_benutzt_werden.3F
       
       ACHTUNG Sobald die Grundkonfiguration durchgeführt wurde betreffend IP Adressen, DNS sowie Routing teste den Cluster in seinen Funktionen
               dh. führe einen kontrollierten Failover durch sowie unkontrollierte Failovers (ausstecken eines Ethernet Kabels). Achte darauf ob 
               und welcher Device NACH dem Failover wiederum Master wird! Nach einem Failover wird durch Fortigate kein Failover auf den Ausgangs
               Device durchgeführt sofern die Priorität dieses Devices nicht höher liegt als die des Failover Devices (Master/Slave)!

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

Das manuelle Einspielen auf einem FortiGate Cluster einer neuen Firmware ist grundsätzlich der gleiche Vorgang wie auf einem Standalone Device. Das Besondere auf einem Cluster ist zu wissen WAS im Hintergrund geschieht damit im Fall der Fälle eingegriffen werden kann. Der nachfolgende Artikel erklärt wie so ein Firmware Update auf einem Cluster vor sich geht:

        FortiGate-5.0-5.2:FAQ#Wie_f.C3.BChre_ich_auf_einem_Cluster_ein_Firmware_Update_durch.3F

Kommando über CLI "set mode" für "config system ha" steht nicht mehr zur Verfügung?

Wenn man eine Fortigate in den HA/Cluster Mode setzen möchte so muss der "mode" für den Cluster gesetzt werden. Hat man zB eine Fortigate im "factory default" Status kann das Kommando "set mode" resp. "set mode ?" nicht abgesetzt werden. Der Grund dafür ist, dass die Fortigate im "factory default" status Interface's auf PPPoE oder DHCP gesetzt hat (FortiOS 5.0). Ist dies der Fall kann kein HA/Cluster konfiguriert werden da die Fortigate für PPPoE und DHCP kein HA/Cluster unterstützt. Setze alle Interfaces auf "static" und nachträglich steht das Kommando in der CLI "set mode" resp. "set mode ?" wieder zur Verfügung (Neustart wird nicht benötigt):

       NOTE Ab FortiOS 5.2 ist es möglich einen Cluster HA zu konfigurieren auch wenn auf einem Interface PPPoE und/oder DHCP
            konfiguriert wird. Weitere Informationen siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Ist_es_m.C3.B6glich_ein_FortiGate_Cluster_zu_konfigurieren_wenn_DHCP.2FPPPoE_auf_den_Interfaces_benutzt_wird_.28HA.29.3F
       # config system ha
       # set mode ?
       The system may run in HA a-a or HA a-p mode only when all interfaces are not using PPPoE/DHCP as an addressing mode
       
       NOTE Bei älteren Release's von FortiOS 5.0 steht das Kommando "set mode" nicht zur Verfügung solange
            Interfaces existieren die "nicht" auf Static gesetzt sind:
       
       # config system ha
       # mode | grep mode
       
       NOTE Um festzustellen "ob" solche Interfaces existieren kann folgender Befehl abgesetzt werden:
            
            # show system interface | grep -f mode
            
            Durch die Angabe "grep -f" wird der Context der Konfig "mode" angezeigt für "system interface"!
            Kontrolliere ob solche Interface's existieren resp. auf DHCP und/oder PPPoE gesetzt sind. Sofern
            dies der Fall ist wechsle diese betroffenen interfaces auf "set mode static":
            
            # config system interface
            # edit [Port Name zB wan1]
            # set mode static
            # end

Jetzt sollte der "set mode" wieder erscheinen resp. kann gesetzt werden:

       # config system ha
       # get | grep mode
       mode               : standalone
       
       # config system ha
       # set mode ?
       
       # config system ha
       # set mode a-p

Welche Sessions werden im Fall eines Failovers in einem HA Cluster übernommen?

Grundsätzlich werden in einem Cluster die Sessions des Masters (Session Table) über den/die Heartbeat Interface's Synchronisiert. Somit weiss der Slave (Standby in einem Active-Passive Konfiguration) welche Sessions übernommen werden müssen im Fall eines "Failovers". Dies gilt jedoch nicht für folgende Sessions oder Funktionen:

       - UTM Features (Speziell Antivirus und IPS)
       - Zertifikat Basierende Funktionen
       
       NOTE Eine Aussnahme stellt die 100D dar die über eine spezielle Funktion verfügt.
            Diese Funktion "frup-settings" kann über CLI aktiviert werden! Diese Funktion setzt
            jedoch vorraus, dass das zB ein "wan1" Interface übers Kreuz mit zwei Routern 
            verbunden ist. "frups" benützt virtuelle MAC Adressen sowie virtuelle IP's.
            Desweiteren ist zu beachten das die Funktion "frup" unter FortiOS 5.4 nicht
            mehr unterstützt wird!
            
            Fortinet-753.jpg

Fortinet hat zusätzlich unter "Supplementary Recipes" ein Dokument bereitgestellt, dass zeigt wie eine FRUP Konfiguration gemäss vorhergehenden Abbildung durchgeführt wird. Das Dokument findet man im nachfolgenden Artikel im Abschnitt "Cookbook Supplementary Recipes FortiOS 5.0":

       FortiGate-5.0-5.2:FAQ#Wo_findet_ich_die_Dokumente_wie_Datasheets.2C_Quick_Start_Guide.2C_User_Guide_etc._.3F

Kann ich die Differenz für das Cluster "age" anpassen oder verändern?

Die Funktion "age" basiert auf der "Uptime eines Devices" im Cluster dh. für die Kriterien die herangezogen werden ob ein Master/Primary zum Master/Primary wird ist die Funktion "age" an zweiter Stelle nach der Anzahl überwachter Interfaces (Interface Monitoring):

       Datei:Fortinet-336.jpg

Wenn man nun die Differenz die herangezogen wird für das "age" verändern möchte (Per Default gilt 300 Sekunden oder 5 Minute) zB bei einem Firmware Upgrade (Dauer des Upgrades) kann folgendes über die Console eingegeben werden:

       # config system ha
       # set ha-uptime-diff-margin [Dauer in Sekunden von 1 - 65535]
       # end

Um die Differenz eines Devices anzuzeigen benütze folgenden Befehl:

       # diagnose sys ha dump 1
       HA information.
       vcluster id=1, nventry=2, state=work,
       digest=fe.21.14.b3.e1.8d...
       ventry idx=0,id=1,FG50012205400050,prio=128,0,claimed=0,
       override=0,flag=1,time=0,mon=0.
       mondev=port5,50
       ventry idx=1,id=1,FG50012204400045,prio=128,0,claimed=0,
       override=0,flag=0,time=194,mon=0.
       NOTE Das Kommando "diagnose sys ha dump" existiert ab FortiOS 5.0.5 nicht mehr und wurde mit 
            folgenden Kommandos ersetzt:
            
            # diagnose sys ha dump-by [all-xdb | all-vcluster| rcache | all-group | memory | debug-zone | vdom | kernel | device | stat| sesync]
            
            Zusätzlich stehen noch folgende Kommandos zur Verfügung:
            
            # diagnose sys ha sesync-stats
            # diagnose sys ha extfile-sig

Der erste Eintrag betreffend der Zeile "ventry" zeigt den Device auf dem der Administrator momentan eingeloggt ist. Die zweite Zeile betreffend "ventry" zeigt den untergeordneten Device. Die Zeile "mondev" gibt an welche Interface überwacht werden. Auf dem Device auf dem der Administrator momentan eingeloggt ist zeigt betreffend "time" immer "0". Der untergordnete Device zeigt die Differenz zum Primary dh. in unserem Beispiele "194" (194 geteil durch 10 = 19.4 Sekunden). Wenn nun "age" als Standard auf "300" Sekunden steht hat dies KEINEN Einfluss als Kriterium ob der Device zum Primary wird oder nicht, denn solange die Differenz der Devices diese "300" Sekunden nicht übersteigt hat "age" keinen Einfluss.

Wenn nun aus vers. Gründen die "age" zurückgestellt werden soll (wenn zB der Primary über die Priorität gesteuert werden soll) auf ALLEN Devices, kann folgender Befehl ausgeführt werden:

       # diagnose sys ha reset-uptime
       
       NOTE  Dieses Kommando sollte mit bedacht angewendet werden denn die "age" Zeit wird intern zurückgestellt.
             Dies bedeutet kontrolliert man nachträglich mit dem Kommando "diagnose sys ha dump 1" die "age" oder
             über das Dashboard die Uptime sowie in der Cluster Member List wir die Zeit die der Device up-and-runnig
             ist wie gewohnt angezeigt. Dies bedeutet dieser Befehl setzt nicht die "Uptime" Global zurück sondern
             nur für die Funktion "age" im Clustering!

Wie soll die Funktion des "Port Monitoring" der Interface in einem HA Cluster benutzt werden?

Für die einzelnen Interfaces in einem HA Cluster kann das "Monitoring der Interface" eingeschaltet werden. Es ist folgendes zu berücksichtigen:

       • Bevor ein Monitoring konfiguriert/verändert werden soll muss der Cluster up and running sein 
       • Alle Interfaces müssen zum Cluster korrekt verbunden sein sowie keien RX/TX, Duplex Mismatch etc. verursachen 

Um ein "Interface Monitoring" zu aktivieren auf einem spezifischen Interface resp. Port benütze folgenden Befehl:

       # config system ha
       # set monitor [Spezifizieren den zu überwachenden Port zB port1]
       # end
       
       NOTE Wird in einem Cluster "kein" Interface/Port für das Monitoring konfiguriert handelt es
            sich bei solch einem Cluster um einen reinen "Device Failover only". Dies bedeutet "nur"
            der Ausfall eines Devices erzwingt einen Failover! Somit wird "nur" die Hardware eines
            Devices in einem Cluster überwacht jedoch nicth die einzelnen Interface's.


Desweiteren kann zusätzlich zum "Port Monitoring" auch die Verbindung selber übwacht werden. Nähere Informationen dazu siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_im_Cluster_Mode_zus.C3.A4tzlich_zum_.22Port_Monitoring.22_ein_.22Destination_Monitoring.22_.28DGD.29_konfigurieren.3F

Kann ich für den Heartbeat eine Verschlüsselung und/oder eine Authentifizierung aktivieren?

Grundsätzlich sollte "ein" dediziertes/seperates Interface benutzt werden für den "Heartbeat" resp. für die Synchronisation der "Session Table". Wenn ein zusätzliches "Heartbeat" zB über das WAN Interface benutzt wird -als Fallback- so ist es ratsam dieses zu Verschlüsseln und zu Authentifizieren. Wenn dies nicht geschieht ist es event. möglich, dass der Traffic über ein Sniffing mitgehört werden kann um zB falsche Cluster Status Informationen zu senden oder die Session Table abzuhören. Per Standard ist die Verschlüsselung sowie die Authentifizierung deaktiviert. Wenn diese aktiviert werden möchte führe folgendes aus:

       # config system ha
       # set authentication enable
       # set encryption enable
       # end
       
       NOTE Wenn die Verschlüsselung sowie die Authentifizierung aktiviert werden so sinkt die Performance auf den 
            Devices denn diese wird benötigt um die Packet zu Verschlüsseln etc. sowie zu Authentifizieren! Der Impact ist
            zwar nicht enorm dennoch muss dieser mitberücksichtigt werden! Für die Verschlüsselung/Authentifizierung wird in 
            einem Fortinet Cluster Verbund folgendes benutzt:
            
            AES-128 für die Verschlüsselung
            SHA1 für die Authentifizierung

Welche IP Adressen werden in einer HA Konfiguration für ein Heartbeat Interface vergeben?

Das FGCP (FortiGate Cluster Protokoll) vergibt "link-local IP4 Adressen" (RFC 3927) im Range 169.254.0.x für HA "Heartbeat Interfaces" sowie für "inter-VDOM Link". Wenn ein Cluster initial gestartet wird so wird dem Primary "Heartbeat Interface" die Adresse 169.254.0.1 zugewiesen und für den Slave eine IP aus folgendem Range 169.254.0.2 - 63. Für "inter-VDOM Link's" wird der Range 169.254.0.65 und höher benutzt. Um die vergebene IP Adresse für das Heartbeat in einem HA Cluster zu eruieren gebe folgendes Kommando über die Console ein:

       # get system ha status
       Model: 300
       Mode: a-p
       Group: 0
       Debug: 0
       ses_pickup: enable, ses_pickup_delay=disable
       Master:128 alsochlu-sg0e1   FG300C3913601712 1
       Slave : 96 alsochlu-sg0e2   FG300C3913602452 0
       number of vcluster: 1
       vcluster 1: work 169.254.0.2
       Master:0 FG300C3913601712
       Slave :1 FG300C3913602452

Die Auslastung auf einem Heartbeat Interface ist zu hoch und es kommt zu einem unkontrollierten Fail-Over?

Wenn in einem HA Cluster die Auslastung steigt -zB durch hohes Verkehrsaufkommen- wird der CPU stark beansprucht. In so einem Fall kann es vorkommen das die Heartbeat Packete -durch den Primary- nicht zur richtigen Zeit über das Heartbeat Interface -zum Slave- gesendet werden da der CPU anderweitig beschäftigt ist. In so einem Fall kann es zu einem unkontrollierten Fail-Over kommen da der Slave vom Primary keine oder verspätete und somit abgelaufene Packete bekommt und den Primary Part übernimmt. So eine Situation kann ebenfalls eintreffen wenn eine "syn flood attacke" gefahren wird der den Device komplett auslastet und somit wiederum die nötigen Heartbeat Packet nicht oder verspätet zum Slave gesendet werden. Wenn der Grund eines unkontrollierten Fail-Over die Auslastung regulärem Traffic ist so können die Intervall und/oder die Threshold der Packet angepasst werden um einen unkontrollierten Fail-Over zu verhindern. Dazu können über die Console folgende Kommandos abgesetzt werden:

       # config system ha
       # set hb-interval [Gebe den Interval in Sekunden an 1 - 20]
       # set hb-lost-threshold [Gebe den Thresold dh. wieviele Packete 1 - 60]
       # set helo-holddown [Gebe den Holddown in Sekunden an 5 - 300]
       # end
       hb-interval
       Der Heartbeat Interval gibt an "wielange" benötigt wird um die Heartbeat Packete zu senden.
       Per Standard gilt "2" (200 ms). Der Interval Range der konfiguriert werden kann ist 1 bis 20.
       Wenn der Heartbeat Interval zu tief ist wird die Bandbreite unnötig ausgelastet. Wenn der
       Heartbeat Interval zu gross gesetzt ist verliert der Cluster an "sensitivität" betreffend 
       Netzwerkveränderungen etc. Der Interval steht ebenfalls im Zusammenhang mit dem Threshold
       dh. wenn der Threshold auf 6 Packete konfiguriert ist und der Interval auf 2 so wird ein 
       Fail-Over ausgelöst wenn der Cluster innerhalb von 6 X 200 ms = 1200 ms (1.2 Sekunden) keine
       Packete mehr erhält. Somit stehen hier Konfigurations Möglichkeiten zur Verfügung um lange
       Strecken Rechnung zu tragen dh. wenn der Delay zur Uebermittlung von Packeten grösser wird.
       hb-lost-threshold
       Der Threshold gibt an wieviel Packete verloren gehen dürfen bevor ein Fail-Over ausgelöst wird.
       Per Standard gelten "6" Packete (möglich 1 - 60 Packete). Dies bedeutet, dass wenn der Slave
       6 Packete nicht bekommt davon ausgeht das der Primary nicht mehr korrekt funktioniert und zum
       Primary wird. Das Gleiche gilt für den Primary selbst dh. wenn er vom Slave die 6 Packet nicht
       bestätigt bekommt geht der Primary davon aus das der Slave nicht mehr ordnungsgemäss funktioniert.
       Im Generellen gilt: je kleiner der Threshold desto schneller wird ein Fail-Over durchgeführt.
       helo-holddown
       Der hello State hold-down ist die Dauer in Sekunden die der Cluster wartet bis dieser vom
       "hello-state" zum "work-state" wechselt. Nach einem Fail-Over oder beim starten des Clusters
       arbeitet der Cluster im "hello-state" dh. Heartbeat Packete werden im Cluster zu den Devices
       im Cluster gesendet damit jeder Device im Cluster sich austauschen kann. Sobald alle Devices
       im Cluster Verbund erreicht wurden geht der Status auf "work-state". Sehen sich die Devices
       im Cluster aus irgendwelchen Gründen nicht kann dies zu Unterbrüchen führen da der Cluster
       nicht vollständig ist. Ein Grund, dass sich die Devices nicht finden ist zB ein unterschiedlicher
       Standort mit weiten Strecken zwischen den Standorten dh. durch den Delay in der Komunikation
       kann der Status nicht von "hello-state" in den "work-state" gehen. In so einem Fall kann die
       Zeit die benötigt wird damit die Devices untereinander komunizieren können heraufgesetzt 
       werden. Per Standard gilt 20 (20 Sekunden). Die Zeitspanne die konfiguriert werden kann ist
       5 bis 300 Sekunden.

Eine weitere Möglichkeit wäre bei einem hohen Aufkommen von "Sessions" über das "Heartbeat" Interface zusätzliche Ports zu definieren um das "Heartbeat" Interface zu entlasten. Bei dieser Möglichkeit werden nicht zusätzliche "Heartbeat" Interface definiert sondern durch die Konfiguration der zusätzlichen Ports "zum" Heartbeat Interface wird die FortiGate angewiesen ein "Load Balancing" über diese definierten Ports durchzuführen. Dies bedeutet: Die "Session Table" wird grundsätzlich über das definierte "Heartbeat" Interface abgewickelt und die zusätzlich definierten Ports übernehmen die arbeit des "Heartbeat" Interface's in dessen Namen. Dies bedeutet ebenfalls, dass die definierten Ports die Synchronisation übernehmen. Was wiederum bedeutet, dass über das "Hearbeat" Interface solange die defnierten Ports erreichbar sind keine Uebermittlung mehr stattfindet. Sind diese definierten Ports nicht mehr erreichbar (available) übernimmt wiederum das "Heartbeat" Interface die Arbeit der Uebermittlung der "Session Table". Die definierten Ports müssen Netzwerktechnisch wie ein "Heartbeat" Interface innerhalb eines Cluster verbunden werden. Um in einem HA Cluster diese Ports zu konfigurieren führe folgendes durch:

       # config system ha
       # set session-sync-dev port10 port12
       # end
       
       NOTE Diese Konfiguration sollten nur dann durchgeführt werden wenn wirklich ein sehr "hohes" Aufkommen von "Sessions"
            zu erwarten ist oder stattfindet! Die Konfiguration der zusätzlichen Ports ist über Web Mgmt. Interface nicht ersichtlich.

Wie setzt sich die virtuelle MAC Adresse in einem HA Cluster zusammen und wie ändere ich diese?

Die virtuelle MAC Adresse in einem HA Cluster setzt sich wie folgt zusammen:

       00-09-0f-09-<group-id_hex>-<vcluster_integer><idx>

Die <group-id_hex> ist die HA Group ID des HA Clusters umgerechnet in Hexdecimal. Nachfolgende Tabelle zeigt auf wie die Group ID in Hexdecimal für die virtuelle MAC Adresse umgerechnet wird:

       Datei:Fortinet-334.jpg

Der <vcluster_integer> ist 0 für den virtuellen Cluster 1 und für den virtuellen Cluster 2 die 2. Wenn VDom nicht aktiviert sind setzt der HA Cluster die 1 und alle Interfaces befinden sich in der VDom "root". Wenn man die Formel anwendet für einen virtuellen Cluster oder einer virtuellen Domain (VDom) ändert sich die MAC Adress Formel nicht dh. man wendet diese an ob VDom existiert oder virtuelle Cluster angewendet wird.

Die Position <idx> in der Formle ist die Anzahl der Interfaces. Interfaces werden durchnummeriert von 0 bis x wobei x für die Nummer des Interfaces steht. Interfaces werden in "hash map" aufgelistet. Dies bedeutet das diese zuerst Alphabetisch geordnet werden und danach nach Index Nummer (Beispiel: base1 wird zuerst gelistet und danach port1).

       NOTE Nur die <idx> Position für die virtuelle MAC Adresse variert für jedes Interface. Die Position <vcluster_integer> 
            variert nur dann wenn VDom verwendet werden.

Nachfolgend einige Beispiele für virtuelle MAC Adressen und deren Umrechnung:

       Group ID 0 (Default) und VDom's sind nicht aktiviert
       
       •  port1 virtual MAC: 00-09-0f-09-00-00
       •  port10 virtual MAC: 00-09-0f-09-00-01
       •  port2 virtual MAC: 00-09-0f-09-00-02
       •  port3 virtual MAC: 00-09-0f-09-00-03
       •  port4 virtual MAC: 00-09-0f-09-00-04
       •  port5 virtual MAC: 00-09-0f-09-00-05
       •  port6 virtual MAC: 00-09-0f-09-00-06
       •  port7 virtual MAC: 00-09-0f-09-00-07
       •  port8 virtual MAC: 00-09-0f-09-00-08
       •  port9 virtual MAC: 00-09-0f-09-00-09
       •  port11 virtual MAC: 00-09-0f-09-00-0a
       •  port12 virtual MAC: 00-09-0f-09-00-0b
       Group ID 34 und VDom's sind nicht aktiviert
       
       •  port1 virtual MAC: 00-09-0f-09-22-00
       •  port10 virtual MAC: 00-09-0f-09-22-01
       •  port2 virtual MAC: 00-09-0f-09-22-02
       •  port3 virtual MAC: 00-09-0f-09-22-03
       •  port4 virtual MAC: 00-09-0f-09-22-04
       •  port5 virtual MAC: 00-09-0f-09-22-05
       •  port6 virtual MAC: 00-09-0f-09-22-06
       •  port7 virtual MAC: 00-09-0f-09-22-07
       •  port8 virtual MAC: 00-09-0f-09-22-08
       •  port9 virtual MAC: 00-09-0f-09-22-09
       •  port11 virtual MAC: 00-09-0f-09-22-0a
       •  port12 virtual MAC: 00-09-0f-09-22-0b

Um eine virtuelle MAC Adresse zu setzen führe folgendes auf der Console aus:

       # config system interface
       # edit port1
       # set macaddr [MAC Adresse]
       # end
       # end

Bevor man einen Cluster baut ist die MAC Adresse = Hardware Adresse:

       # get hardware nic internal
       
       MAC: 02:09:0f:78:18:c9
       Permanent_HWaddr: 02:09:0f:78:18:c9

Man sieht das die MAC Adresse = der Hardware Adresse ist. Konfiguriert man einen Cluster und setzt wiederum den Befehl ab zeigt sich folgendes Bild:

       # get hardware nic internal
       
       MAC: 00:09:0f:09:00:02
       Permanent_HWaddr: 02:09:0f:78:18:c9

Man sieht nach der HA Cluster Konfiguration sind die MAC Adresse und die Physische MAC Adresse unterschiedlich. Möchte man also die virtuelle MAC Adresse auf allen Interfaces wechseln um zB einen MAC Adressen Konflikt zu umgehen muss "nur" die Group ID geändert werden:

       # config system ha
       # set group-id <id_integer>
       # end

Kann ich anhand eines Befehls den HA Sync Prozess einsehen?

Folgender Befehl gibt die Möglichkeit den HA Sync Prozess einzusehen:

       # diagnose debug application hasync -1
       NOTE Ab FortiOS 5.2.1 kann der "hasync" Debug über Schalter "switch on/of" beeinflusst werden. Dies bedeutet:
            über folgenden Befehl können vorgängig die benötigten Schalter aktiviert oder deaktiviert werden. Dies
            kommt einer Filterfunktion für "diagnose debug application hasync" gleich. Es stehen folgende Schalter
            zur Verfügung: 
            
            # diagnose test application hasync [1-19,50-53]
            
            NOTE Die Schalter "[1-19,50-53]" haben folgende Bedeutung:
                 
                 1 Dump all states of debug switches.
                 2 Turn off all debug switches.
                 3 Toggle debug switch of hsync core.
                 4 Toggle debug switch of ha-diff.
                 5 Toggle debug switch of FIB.
                 6 Toggle debug switch of route6.
                 7 Toggle debug switch of BYOD.
                 8 Toggle debug switch of endpoint_compliance.
                 9 Toggle debug switch of NEB.
                 10 Toggle debug switch of zebos.
                 11 Toggle debug switch of haconf.
                 12 Toggle debug switch of proxy.
                 13 Toggle debug switch of time.
                 14 Toggle debug switch of snmp.
                 15 Toggle debug switch of gtp.
                 16 Toggle debug switch of auth.
                 17 Toggle debug switch of IPsec.
                 18 Toggle debug switch of fdb.
                 19 Toggle debug switch of arp.
                 50 Dump ha sync statistics.
                 51 Dump FIB information.
                 52 Dump extfile's signature.
                 53 Recalculate external files signature.

Was ist zu beachten wenn ich die Priorität eines Cluster Nodes anpasse/verändere?

Die Konfiguration der Priorität eines Devices in einem Cluster wird nicht innerhalb des Clusters synchronisiert da die Priorität auf den Device gebunden ist. Somit wenn die Priorität angepasst wird in einem Cluster muss dies auf dem jeweiligen Device durchgeführt werden:

       # config system ha
       # set priority [Nummerische Zahl]
       # end
       
       NOTE um in einem Cluster auf einen Node zu verbinden siehe folgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_Manage_ich_einen_Cluster_resp._wie_erlange_ich_Zugriff_auf_einen.2Fden_.22nicht.22_aktiven_Node.3F

Wie Manage ich einen Cluster resp. wie erlange ich Zugriff auf einen/den "nicht" aktiven Node?

Wenn man einen Cluster aufsetzt und nicht ein entsprechendes Interface unter der nachfolgenden Position konfiguriert, kann auf die einzelnen Nodes im Cluster nicht mehr zugegriffen werden:

       System > Config > HA > [Setze den Mode auf "Active-Passive" oder "Active-Active] > Reserve Management Port for Cluster Member

Diese Position bewirkt, dass das definierte Interface komplett aus dem Cluster Verbund genommen wird und unabhängig als reguläres Interfaces agiert. Bedeutet diese Interfaces können je Node mit einer normalen IP versehen werden. Somit kann anhand dieser Interface auf die Nodes im Cluster zugegriffen werden sowie die einzelnen Nodes zB über SNMP überwacht werden!

       NOTE Beachte dabei, dass immer auf den richtigen Node zugegriffen wird, wenn eine Konfiguration durchgeführt werden muss!
            Denn der "nicht" aktive Node wird vom "aktiven" Node alle 15 Minuten überschrieben. Dies bedeutet würde man eine
            Konfiguration "irrtümlicherweise" auf dem "Slave" durchführen und dies nicht bemerken, wird diese Konfiguration 
            durch den Master wiederum überschrieben da die Konfiguration nicht auf dem Master stattgefunden hat!

Diese Konfiguration eines seperaten definierten Interfaces pro Node in einem Cluster um die Nodes zu überwachen, managene sowie für das Troubleshooting ist "absolut" zu empfehlen. Ist dies aus irgendwelchen Gründen nicht möglich kann der Zugriff auf den "nicht aktive" Node nur über die Kommandozeile des Master erfolgen. Bedeutet dies wird folgendermassen ausgeführt:

           Erstelle eine Verbindung auf die Kommandozeile (CLI) des Masters. Verifiziere
           die "Device ID" des nicht aktiven Nodes im Clusterverbund:
           
           # execute ha manage ?
           <id>    please input peer box index.
           <0>     Subsidary unit [Serial Nummer des Devices[
           
           Wähle nun die entsprechende "id" des Devices resp. des nicht aktiven Nodes:
           
           # execute ha manage 0
           
           Nun wird in der Kommandozeile (CLI) der Prompt des nicht aktiven Nodes angezeigt!

Wie kann ich überprüfen ob ein Cluster "In-Synch" ist?

Folgender Befehl zeigt ob ein Cluster "In-Synch" ist dh. ist dies der Fall muss auf beiden Nodes die gleiche Checksum erscheinen:

       # diagnose sys ha showcsum

Weitere Befehle um den Status eines Clusters abzufragen siehe Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_den_Status_eines_HA_Cluster_abfragen.3F_2

Heartbeat "Ethertype Packete" werden durch den Switch verworfen wieso und was ist zu tun?

Normale IP Packete sind 802.3 Packete die über ein "Ethernet" Feld verfügen mit der Wert:

       0x0800

Andere Werte werden innerhalb des "Ethernet" Feldes als Level 2 Frames verstanden anstelle von IP Packeten. HA Heartbeat Packete von NAT/Route Mode (ha-eth-type) Cluster benutzen den "Ethernet" Type "0x8890". Diese Packete werden spezielle dazu benutzt die Mitglieder des Clusters und/oder anderen Cluster im Netz zu finden. HA Heartbeat Packet im Transparent Mode (hc-eth-type) benutzen den "Ethernet" Type "0x8891". HA Telnet Sessions (l2ep-eth-type) zwischen Cluster Devices over HA Heartbeat Links benützen den "Ethernet" Type "0x8893". Somit muss der Switch der für das Heartbeat benutzt wird diese "Ethernet" Types erlauben. Ist dies nicht der Fall da der Switch diese "Ethernet" Types bereits für interne Funktionen benützt muss der "Ethernet" Type modifiziert werden. Dies kann über Kommandozeile durchgeführt werden:

       # config system ha
       # set ha-eth-type [ha_ethertype_4-digit_hex]
       # set hc-eth-type [hc_ethertype_4-digit_ex]
       # set l2ep-eth-type [l2ep_ethertype_4-digit_hex]
       # end
       NOTE Bei Cisco N5K/Nexus Switches wird der "Ethernet" Type 0x8890 für interne Funktionen benützt. Wenn 
            dieser Switch solche "Ethernet" Type Packet erhält verwirft er diese (CRC errors) und dies verhindet
            die einwandfreie Komunikation zwischen den Nodes innerhalb eines Cluster. Lösung wäre der "Ethernet"
            Type auf einem freien Wert zu definieren zB "0x888".

Wie kann ich für einen HA Cluster den Gruppen Namen auf Kommandozeile konfigurieren?

Der Gruppen Name in einem Cluster ist dazu da um die dazugehörigkeit der Nodes in einem Cluster zu konfigurieren. Dazu gehören ebenfalls das Cluster Passwort sowie die Group ID. Andere Cluster im Netz dürfen nicht den gleichen Gruppen Namen benützen sondern müssen sich für eine eindeutige Identifikation unterscheiden. Um den Gruppen Namen in einem Cluster über CLI zu definieren führe folgendes aus:

       # config system ha
       # set group-name [Gruppen Namen]
       # end

Wie kann ich für einen HA Cluster den Gruppen ID auf Kommandozeile konfigurieren?

Die Group ID ist wie der Gruppen Namen und das Passwort dazu da einen Cluster Verbund zu identifizieren dh. andere Cluster im Netz dürfen nicht die gleiche Group ID, Passwort sowie Gruppen Namen benützen. Um die Group ID für einen Cluster über CLI zu konfigurieren benütze:

       # config system ha
       # set group-id [Group ID 0 - 255]
       # end

Wie kann ich für einen HA Cluster das Passwort der Gruppe auf Kommandozeile konfigurieren?

In einer Cluser Konfiguration wird zur einen Seite ein Gruppen Namen gesetzt und zum anderen ein Passwort. Dieses Passwort sowie der Gruppen Name muss für alle Node's im Cluster gesetzt werden dh. andere Cluster im gleichen Netz dürfen weder den gleichen Gruppen Namen noch über das gleiche Passwort verfügen. Um das Passwort zu setzen über CLI benutze folgendes Kommando:

       # config system ha
       # set password [Passwort max. Länge 19]
       # end

Wie kann ich über Kommandozeile den Status eines HA Cluster abfragen?

Folgender Befehl gibt eine kurze Auskunft über den Status eines HA Clusters:

       # get system ha status
       Model: 620
       Mode: a-a
       Group: 0
       Debug: 0
       ses_pickup: disable
       Master:128 620_ha_2 FG600B3908600825 0
       Slave :128 620_ha_1 FG600B3908600705 1
       number of vcluster: 1
       vcluster 1: work 169.254.0.1
       Master:0 FG600B3908600825
       Slave :1 FG600B3908600705

Folgender Befehl zeigt ob der Cluster "in synch" ist dh. die Checksum muss auf beiden Nodes gleich sein:

       # diagnose sys ha showcsum
       is_manage_master()=1, is_root_master()=1
       debugzone
       global: bc 3b 17 fe 44 b2 2d c7 1e d1 59 44 8b cd 64 a9 
       root: b9 c0 bf 46 f3 00 e6 fe d5 ed 2a 6c 79 38 01 c7 
       VDOM-1: a8 0b bf 2e cb d8 5d 26 43 a9 00 b9 e3 3b 9a a1 
       VDOM-2: 9b d1 63 60 79 9d 1c a3 7c 1e eb 7a c5 50 77 bc 
       VDOM-3: 43 da 8b 01 1f a3 7d 24 e1 0b 49 29 3a b1 90 29 
       all: 16 a0 79 8b 64 39 c0 37 40 ed c6 ee 77 62 16 7e 
       
       checksum
       global: bc 3b 17 fe 44 b2 2d c7 1e d1 59 44 8b cd 64 a9 
       root: b9 c0 bf 46 f3 00 e6 fe d5 ed 2a 6c 79 38 01 c7 
       VDOM-1: a8 0b bf 2e cb d8 5d 26 43 a9 00 b9 e3 3b 9a a1 
       VDOM-2: 9b d1 63 60 79 9d 1c a3 7c 1e eb 7a c5 50 77 bc 
       VDOM-3: 43 da 8b 01 1f a3 7d 24 e1 0b 49 29 3a b1 90 29 
       all: 16 a0 79 8b 64 39 c0 37 40 ed c6 ee 77 62 16 7e 

Betreffend Konfiguration etc. gibt es noch folgende Befehle die angewendet werden können um den Status inkl. Konfiguration eines HA abzufragen:

       # show full-configuration system ha
       config system ha
           set group-id 0
           set group-name "FGT-HA"
           set mode a-p
           set password ENC 
           set hbdev "port5" 20 "port6" 10
           set route-ttl 10
           set route-wait 0
           set route-hold 10
           set sync-config enable
           set encryption disable
           set authentication disable
           set hb-interval 2
           set hb-lost-threshold 6
           set helo-holddown 20
           set arps 5
           set arps-interval 8
           set session-pickup enable
           set link-failed-signal disable
           set uninterruptable-upgrade enable
           set vcluster2 disable
           set override enable
           set priority 254
           set monitor "port4" "port5" "port6"
           unset pingserver-monitor-interface
           set pingserver-failover-threshold 0
           set pingserver-flip-timeout 60
       end
       # diagnose sys ha status
       HA information
       Statistics
               traffic.local = s:2096712 p:2541238162 b:1972123729708
               traffic.total = s:9497465 p:2541238496 b:1972123977459
               activity.fdb = c:0 q:0
       
       Model=311, Mode=2 Group=0 Debug=0
       nvcluster=1, ses_pickup=1
       HA group member information: is_manage_master=1.
       FG311B1111111111, 0. Master:254 myfirewall1
       FG311B1111111112, 1. Slave:128 myfirewall2
       
       vcluster 1, state=work, master_ip=10.0.0.1, master_id=0:
       FG311B1111111111, 0. Master:254 myfirewall1(prio=0, rev=0)
       FG311B1111111112, 1. Slave:128 myfirewall2(prio=1, rev=1)

Wie kann ich einen FortiGate HA Cluster eine "Manuelle Synchronisation" ausführen/kontrollieren?

Wenn ein FortiGate HA Cluster überprüft werden soll so wird/kann folgendes Kommando auf jedem "Node" des Cluster dazu abgesetzt werden um zu überprüfen ob der HA Cluster in "Synchronisation" ist (in-sync):

       master # diagnose sys ha cluster-csum
       
       --------------- node-1 --------------- 
       is_manage_master()=0, is_root_master()=0
       debugzone
       global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
       root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
       all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
        
       checksum
       global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
       root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
       all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
       --------------- node-1 --------------- 
       slave # diagnose sys ha cluster-csum
       
       --------------- node-2 --------------- 
       is_manage_master()=1, is_root_master()=1
       debugzone
       global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
       root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
       all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
        
       checksum
       global: 89 f2 f0 0b e8 eb 0d ee f8 55 8b 47 27 7a 27 1e
       root: cf 85 55 fe a7 e5 7c 6f a6 88 e5 a9 ea 26 e6 92
       all: f4 62 b2 ce 81 9a c9 04 8f 67 07 ec a7 44 60 1f
       --------------- node-2 --------------- 
       NOTE Soll das Kommando auf einer FortiGate benutzt werden die mehrer VDOM's konfiguriert hat muss folgendes
            Kommando abgesetzt werden:
            # diagnose system ha showcsum <level> <vdom>
            
            Die möglichen "level" sind "01-04"! Dies ergiebt wiederum als Beispiel folgendes Kommando:
            
            # diagnose system ha showcsum 01 root

In unserem Beispiel wurde das Kommando auf jedem Node ausgeführt und die "checksum" ist auf beiden Node's gleich dh. der HA Cluster ist "in-sync". Ist dies nicht der Fall kann eine "Manuell Synchronisation" ausgeführt werden:

       master # execute ha synchronize start


Wurde die "Synchronisation" ausgeführt kann abermalls mit "diagnose sys ha cluster-csum" die "checksum" überprüft werden. Ist die "checksum" unterschiedlich muss eventuel ein Objekt neu "Kalkuliert" werden denn jede Position dieser "checksum" stellen Objekte der FortiGate Konfiguration dar. Um eine "Re-Kalkulierung" durchzuführen führe folgendes auf jedem Node aus:

       master # diagnose sys ha csum-recalculate
       slave # diagnose sys ha csum-recalculate

Danach kann wiederum eine "Manuelle Synchronisation" anhand "execute ha synchronize start" ausgeführt werden sowie muss wiederum auf jedem Node die "checksum" überprüft werden dh. anhand des Befehls "diagnose sys ha cluster-csum". Ist die "checksum" danach unterschiedlich kann eruiert werden "Welches Objekt" diesen Unterschied hervorruft. Dies bedeutet: Wie schon erwähnt stellen diese einzelnen "checksum" innerhalb des Kommandos "diagnose sys ha cluster-csum" einzelne Objekte der Konfiguration dar. Diese einzelnen Positionen können anhand folgendes Befehls eingesehen werden:

       master # diagnose sys ha showcsum 2
       accprofile.prof_admin: e6c12eee11f0793a0da0fcb864f0a522
       accprofile.webfilter-admin: f6f2be9a42fe61f0326ee56d6c3a8c06
       vap.fortinet4guest: selected-usergroups.gr-wifi-captive-local.intra: 237da722b1ac1bd9d7a5ab6c83ead6ea
       0edcb17a269eafa5890d746dba1c1380
       vap.fortinet4intern: ba17ba924e2cbd36f75e313b938cfcb2
       interface.dmz: b7c816698773650a428ed780eaf43663
       interface.fortinet4guest: f2c026f8dd449374d4216afa7b10d068
       interface.fortinet4intern: 96fd253d8d6e8e92b071f32567e23a47
       interface.internal1: 302ebffe4602fafdfbb7d6cafd44ca52
       interface.internal2: 54dcf24a0990698798297df3ac868ab6
       interface.internal3: 225e1a910c0745ff7113d411a92d4edb
       interface.internal4: 0d52b772ff93a73420aa22d975ee7cac
       interface.internal5: 7f9e66a49f626a251a904c5d3c13fde7
       interface.internal6: 9c420bdb806c33f558abcb6c2428e829
       interface.internal7: 9e62abe84d68395870d6f8c5c32e671d
       interface.ipsec-cisco: e768abdb46431c65a8fd6b25efb8e4c5
       interface.ipsec-fc: ac4f31e8ee548b1e45542eaca899b9e2
       interface.ipsec-ios: 607a0d3651451d1be408e0b1794a413a
       interface.modem: 42199dc9dfc27125d4498c0a74d85fd5
       interface.ssl.root: 3741086cbe973343bd0f624f23ee81d5
       interface.wan1: c7af1e6fbb378fd788a4ee1eabf29965
       interface.wan2: b1c8e61b1719b68539e09048a2d861cf
       admin.FMG-Admin-local: vdom.root: e88d11390bb3c55f75284028ee0c7bd7
       e078130dceee55940c5d43a469a3b69a
       admin.WebFilter-Admin-local: vdom.root: 5584a69e82404d24f11e2fcdd5db8baa
       ea050dfa9a23ccb7c1b84e6eb8259296
       admin.WiFi-Admin-local: vdom.root: 5c6cf9d1d0c112254716d3352e8f485d
       guest-usergroups.gr-wifi-captive-local.intra: 0bbd732c8a5225e7ad902539c99dc223
       efd19ec8e4c24d0502b7c242ad132212
       admin.admin: vdom.root: 1658041e980edb6ebf6336b748f5a4f6
       dashboard-tabs.1: f3ef99ffd22012e54e2f98b4d78e3a32
       dashboard-tabs.2: 49d7b151b650aa80725b3806d5cd48e0
       dashboard-tabs.3: fca4025c88b2ed28864ac361ec82e612
       dashboard-tabs.4: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.1: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.2: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.3: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.4: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.5: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.6: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.21: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.31: 96ab9f8d5da1f045f7f30ee600be509d
       dashboard.41: 96ab9f8d5da1f045f7f30ee600be509d
       cab9fdba23cedba3807d953f03e7f999
       storage.FLASH1: 2b5863acb8708ae8bc6b7db8f7a42664
       ddns.1: monitor-interface.wan1: bea6622a30a0d0c3a763b2654681694b
       bea6622a30a0d0c3a763b2654681694b
       replacemsg-image.logo_fguard_wf: a0b1569aca4c011c24ac7f71b0f64d05
       replacemsg-image.logo_fnet: fc9bc11e0b91daacfcef45bbfea09039
       replacemsg-image.logo_fw_auth: 0eb3bf0f8fc1a2861d9159ff76048ac7
       replacemsg-image.logo_v2_fguard_wf: 8081ff5484a4ab6a52e6c19a43db3c0c
       replacemsg-image.logo_v2_fnet: abaaae5c8cf8fd067715a6c717a6e1da
       mail.email-block: 215f70c3662a8ff70c4054eef899716e
       mail.email-dlp-ban: 1d28183b29e358018793b08bd25124c4
       mail.email-dlp-subject: 2f66423880dd8358dd1ba9f80e69ceeb
       mail.email-filesize: 95827a836428dc88ef6d5123ab725ba4
       mail.partial: 106ca8627465ff1bbc6c0275634e4073
       mail.smtp-block: 35d514772329e1b496d5f75f475d175a
       mail.smtp-filesize: e7141c57579943dc527fdee44e808832
       http.bannedword: aad5d9f4173a50c5c6feb89d486c57c3
       http.http-archive-block: c60cb7b8d02e5376092f0f1406dae69c
       http.http-block: 4839486226787ef5a68062ca615bf61f
       http.http-client-archive-block: cee9ba86151c7f3ec0d4c943557aaf20
       http.http-client-bannedword: 1abbc597e3ae31bceea29b989ded8491
       http.http-client-block: cf32f82860f35d3f597826b154cf0fea
       http.http-client-filesize: dba9dd30d113825d36f9007e2fa18631
       http.http-contenttypeblock: 25b90bd05db96f11454c114bc39fb52b
       http.http-dlp-ban: 07ef324d3aa1f37a45cfc00c4ac9c22b
       http.http-filesize: 03c1ed216b09eeb5a8a1d879ce6f3528
       http.http-post-block: ca741d301ae8268e6a0bb6952c1e6738
       http.https-invalid-cert-block: d009b717b9f83bda22ab9ca248d5321a
       http.infcache-block: d5afec4d6d02c3da29f33017fd6d9316
       http.switching-protocols-block: f1f10383086f133f3a34f72c880dc225
       http.url-block: ce3082f810da35079e1fdb77db909179
       http.urlfilter-err: 121b0079e8177d83fc565d85e232d214
       webproxy.auth-authorization-fail: 1e27f0aa24b4da6ae054372ec1e0e4c1
       webproxy.auth-challenge: 08d7c0209e3262f55112eaed8682b012
       webproxy.auth-login-fail: 57e88aecf0f70424efecfa55b4c657d6
       webproxy.deny: eaf4a33e901aa6a8f50c2e8f89409207
       webproxy.http-err: cb31aa748ea3ee6d8434d64f76e1118f
       webproxy.user-limit: 735ab20d5751b212788bbcf9a293a62e
       ftp.ftp-dl-archive-block: f6563b7432483299884cd9b847d74802
       ftp.ftp-dl-blocked: e47ed3508020c70d0edfe91fa8ae4cc5
       ftp.ftp-dl-dlp-ban: 835f625ed95a4841e38feb5cfd5f492c
       ftp.ftp-dl-filesize: ce6e771adb6df55f1fd110d185523167
       ftp.ftp-explicit-banner: fc0f30c41c1d5595e8858ede9f0930c2
       nntp.nntp-dl-blocked: bd5aff6faa2ca4263377a2063d5a6190
       nntp.nntp-dl-filesize: 00a9b573695e0fb3b399de40e3759a12
       nntp.nntp-dlp-ban: cdf8928fb4266d3fbacdd13ad614522f
       nntp.nntp-dlp-subject: 2939108716199734af3795cd735c78dd
       fortiguard-wf.ftgd-block: 69436e64aaaaa73402e3f6fe2c1c5491
       fortiguard-wf.ftgd-ovrd: f410194115b47fac24e8f5ec4cff5a48
       fortiguard-wf.ftgd-quota: 33353214bc24c18710ead5334e82b941
       fortiguard-wf.ftgd-warning: 07b28e0ffb1ba243c54e30ed9a050f0f
       fortiguard-wf.http-err: 2ac16407ecfc615bdc297400204ebf9c
       spam.ipblocklist: e9a0a3bb116c02269b59ccecff467d77
       spam.reversedns: b52e9929a298ef41b4e7460b30ad32c4
       spam.smtp-spam-ase: cd190fa14463135f6d1cec545c718896
       spam.smtp-spam-bannedword: 37eac5ec0099f90b44bac6eb97559327
       spam.smtp-spam-dnsbl: 092cfc6f3933b87db727513a0b5cb9cc
       spam.smtp-spam-emailblack: 08272682bf0e3b33657099e9f2bd477b
       spam.smtp-spam-feip: 75bce07b7e201beb788732f8d2b86e0e
       spam.smtp-spam-helo: e0cbe3142ec6b06469af0af8f94ecdbb
       spam.smtp-spam-mimeheader: 0f875724f74904ccef95e08e2643a739
       spam.submit: cde7381d8842f56de56d97cc98fbc886
       im.im-dlp: 1993cf162e3d48565ab40cb6f31aacb5
       im.im-dlp-ban: 790bf4ff27936e1f3a2b24f42989b96f
       im.im-file-xfer-block: 75270b801ee0f557be5aa478da96926d
       im.im-file-xfer-infected: d6d0a299f34e6ee92a812d5226687b97
       im.im-file-xfer-name: ce291ae8efcb5cc321d3e5eaa4e10f74
       im.im-file-xfer-size: cc555d2eab349eb2817df1ab094086a9
       im.im-long-chat-block: 78c3d8995a4c9c2d86c85d68ac7f24f3
       im.im-photo-share-block: a773777ecbb63c7e9f33c948ac04ac7c
       im.im-video-chat-block: 461f2b67932c4518cc41ac668f49d271
       im.im-voice-chat-block: d59e6c20aeb88a796fffbfeabdcc895c
       alertmail.alertmail-block: b2f4e0425097ef0857cf4acce641e4de
       alertmail.alertmail-crit-event: 206c14630f7101127d5f7987aef10095
       alertmail.alertmail-disk-full: 7d77b6b59bd54fe12235c4b6460039bb
       alertmail.alertmail-nids-event: ec40fe2bdecda9105e0ce4497d58e6bb
       alertmail.alertmail-virus: 17a10ca304354cd77591e6119ba9d689
       admin.post_admin-disclaimer-text: 5b9fa46ff007122aa6eeb5d33780f9fa
       admin.pre_admin-disclaimer-text: 588b1a8c4f2996cfa1b01ac4fd7b059c
       auth.auth-cert-passwd-page: 3ab646d6485ed6423592f5df8d55e82b
       auth.auth-challenge-page: d5bc10632bd2e9cf53f9408792ce7df8
       auth.auth-disclaimer-page-1: daca77388620229a9024c854b698275b
       auth.auth-disclaimer-page-2: 3ab48006284d6cfdec39cbeef07cf1f5
       auth.auth-disclaimer-page-3: 2e857f6c46674079bb92dd8c48520a8e
       auth.auth-email-failed-page: f056f7c0d08fb0f574d6b87fd2e7b097
       auth.auth-email-harvesting-page: f23be16befe3f27f86bf15b164b1f9c5
       auth.auth-email-token-page: 70f1aaba159818bc0db3cb1c8a745eba
       auth.auth-fortitoken-page: c473d24ec3f412b5588ad02785bbfaad
       auth.auth-guest-email-page: f871f75eed48f9b603c21344441d33a9
       auth.auth-guest-print-page: a3a6584ea87dd959fd9de6e0b9648910
       auth.auth-keepalive-page: 49f82155fd508f8bf682a8fdee3bc0e3
       auth.auth-login-failed-page: c4dfdf2bb4d6005dc0394cb85ba7f0e9
       auth.auth-login-page: 6ca9a45313cd0cd04fbb3a388421387f
       auth.auth-next-fortitoken-page: cd5293d456d287fa31500fd7e51f87fa
       auth.auth-password-page: ba9b34aa8483f63af8be1500a55d3f62
       auth.auth-portal-page: ce1c67dee85591385f76397aa974cb63
       auth.auth-reject-page: d1cef4e64560147613e42f6da551c8fe
       auth.auth-sms-token-page: 73d79a5c745fb5707a0a1ca366706152
       auth.auth-success-msg: 46625386e08fe57aff7e2ea89abdc346
       auth.auth-token-login-failed-page: 9f051e20eca9f037e6cf2e0bf6c04a4e
       auth.auth-token-login-page: 5f8d80a39b38dd93245b83bc1d9c120e
       captive-portal-dflt.cpa-disclaimer-page-1: 24b79b5f924ce0ec4a1608f933dc6230
       captive-portal-dflt.cpa-disclaimer-page-2: 047d091290f33bee8581ca7e20c96b10
       captive-portal-dflt.cpa-disclaimer-page-3: de7f93e046e199f6cf24fab5bd1f773e
       captive-portal-dflt.cpa-login-failed-page: 0d83b8a677a520dd898727615ed1fa7f
       captive-portal-dflt.cpa-login-page: 529bf84ce4e1f75b66470167b3042ba3
       captive-portal-dflt.cpa-reject-page: 9a60315063471c82f220af25302620b5
       sslvpn.sslvpn-limit: 41d883501e833dfe2a23d3d9dae13a7b
       sslvpn.sslvpn-login: 5bd84c065547ce06936c56d64572d94a
       ec.endpt-download-portal: dd2ff1e3bb81964b630ad1fc95261dcb
       ec.endpt-download-portal-aos: ce6fab68eb943137fb09b9164f892cf8
       ec.endpt-download-portal-ios: c5ba6f053fca28d69b1309af11f5424f
       ec.endpt-download-portal-mac: 7aa645f2de82b85d2463a0bcdfebb107
       ec.endpt-download-portal-other: 0d6695569919be015f26aa4ac017f280
       device-detection-portal.device-detection-failure: 33956ec31fb6cd51a6989b8a9d3569e5
       nac-quar.nac-quar-dlp: 029293d9f9abbe3057a7f5b4cd382552
       nac-quar.nac-quar-dos: 95ae75398b57991dc2cd63aaae5b9ffb
       nac-quar.nac-quar-ips: 3ec4f59ba62e2a369400c8cd46649777
       nac-quar.nac-quar-virus: 7d87c03bd6b7a7f2fe88c8c687f09d77
       traffic-quota.per-ip-shaper-block: eabc45be536adb930bc78e5bf069effc
       utm.dlp-html: 87ef0cbcb3cbcab70a51d6aff3baef7a
       utm.dlp-text: 76a3e1acb1a0af911b9375e866bf62bc
       utm.virus-html: 804de49134b9de8dc1bd51fd40615d5f
       utm.virus-text: 01e280340d7dc5a4e8330a0681ec0b2c
       device-category.all: db290eda5dc00d7757946b786a847ef2
       device-category.android-phone: 774be2d630cdbd86d85d652da35acaec
       device-category.android-tablet: f5fe456bb6b8feb29f0c2bac04719542
       device-category.blackberry-phone: bd98886e9ef03cee1eb5a842b5b16462
       device-category.blackberry-playbook: c36afa9e5e3f362b844da0e9299452ff
       device-category.collected-emails: 04797efde106db7aa8c8d1ffe2d73af9
       device-category.fortinet-device: 1c5d31d6defc163997885b2d46506aa4
       device-category.gaming-console: 1bf36a48b915fa2a0b0fc31a3ca0f665
       device-category.ip-phone: e803d00fea368ff7b0c67b38cdde1f68
       device-category.ipad: 8ab3079cec093a6898121492d41d6705
       device-category.iphone: d35841f5c22f46a74935c1be079879bb
       device-category.linux-pc: f66e74ef0d2490fdf0943d492f0a40dc
       device-category.mac: 6ddb5d6141e7b6643b366f577ea8b0cf
       device-category.media-streaming: 143b727dc8f623dcd69f4300a0cce39a
       device-category.other-network-device: c3276590b5c3e82208f7535caa15bbc7
       device-category.router-nat-device: f81423a950779f73e262d69e5d5d8ec9
       device-category.windows-pc: 3f3d3087919f1d1438cec42e0205ae40
       device-category.windows-phone: 9f4de14f15d1751ddf4f63d53109fe8e
       device-category.windows-tablet: 3b3f8459c77854dd83e2001be0f1356f
       service.ftp: 7eae36f56100443fea72c5ab76be7ef8
       service.ftps: d15f1668020cfcb980f95c16ac2af03c
       service.http: c0f9eec57d6906eb2a21782b736b9843
       service.https: d1de9fab1fb277e8b7a46aafab710961
       service.im: ed850151a7c86ace0b2d5bec2213616a
       service.imap: 7588123dbc53ddfbd60cd6cbc00b1190
       service.imaps: a132952e51bf10b4db59e8ef833cdcc2
       service.nntp: 6ce18bff5025d7d8c15d028cb1a1c3d6
       service.pop3: b2d30fb99a90653c147c68a0377ec88c
       service.pop3s: b5cf20208ac994c4da113cf347c5fa4a
       service.smtp: 4e03925a250839d71a1e8152e8e5a564
       service.smtps: 9b31e571ccbe3daf27090f0d73fce7b8
       storage.FLASH1: 9b31e571ccbe3daf27090f0d73fce7b8
       session-helper-1: dfedb7f1b41f4a293552710f56622ca8
       session-helper-2: bc635b8b106c498155455ad5ff9729b2
       session-helper-3: cbc209e98b2ce0b0d3fd64762148182a
       session-helper-4: db24d580f9422d39bb5ff28e01f690c7
       session-helper-5: 552826ed4886dd25fcd808d835cd0177
       session-helper-6: c947bacff9c3c986d060c9430b267dfb
       session-helper-7: a0f263e4b36cae603df8fa59a46163e7
       session-helper-8: c1ca8b0c5d0099ac3d805fb06378041b
       session-helper-9: 9fba0cb41a2716e859698324560c6930
       session-helper-10: ccceeb64feec514e9939ea0a10f83041
       session-helper-11: 5fda52bbdf945cfe3a1d0519fbdbf49e
       session-helper-12: 4fef3e9ae29223fbda89bedd107949a6
       session-helper-13: 672c0353e341a982ce022b2bbd2c8cdc
       session-helper-14: 26eb138059e2cf0cabf61b1b2b646b38
       session-helper-15: c2fea018351bea2856ad042b92a5320a
       session-helper-16: 41b2418b1c48ec90c75b8f296d1d52e8
       session-helper-17: 7f4ee1a14d0dc5269c5bdfa154be7f06
       session-helper-18: 89165aebbcbd8f531c8c15126b14fdf6
       session-helper-19: 24ec476747dd6dea3d522836559ed393
       interface.dmz: 293547b7c09961fcea1a00d502b5b005
       interface.fortinet4guest: ba51b5c8b5944a675df22987ae0c0953
       interface.fortinet4intern: a2ead6e9d77aed2c26f746a71e07cc30
       interface.internal1: 1ac06432534ae099140b40375ec5253d
       ntpserver.1: 8ec37555eba565a1166fc2a8c4365282
       ntpserver.2: 917e47ca71df43e638d3484363442631

Führe nun auf dem "slave" ebenfalls diesen Kommando aus und vergleiche jede Position resp. Objekt denn alle müssen "in-sync" sein:

       slave # diagnose sys ha showcsum 2

Wenn eine entsprechendes Objekt nicht "in-sync" ist kann dieses anhand folgendes Befehls näher angeschaut werden:

       # diagnose system ha showcsum <path.object>
       
       NOTE Dies bedeutet zB als Beispiel folgendes:
       
            # diagnose sys ha showcsum system.admin

Wir für ein Objekt ein Unterschied festgestellt muss dieser Unterschied anhand des Objektes auf der FortiGate Konfiguration eruiert werden. Zur Problemlösung macht es event. Sinn -sofern möglich- das entsprechende Objet zu löschen und neu zu erstellen (master/slave). Danach eine "Re-Kalkulierung" auszuführen sowie die "checksum" Kontrolle.

Kann ich für einen Cluster eine VDOM erstellen die ausschliesslich für das Management benutzt wird?

Auf der einen Seite gibt es in einem Cluster die Möglichkeit ein spezifisches Interface auf jedem Node zu konfigurieren (HA Reserved Management Interface) die für das Management der einzelnen Nodes zuständig sind. Diese Art der Konfiguration ermöglicht es die einzelnen Nodes zu überwachen (SNMP) und diese über das spezifische Interface zu Managen/Troubleshooten. Der Nachteil in dieser Konfiguration liegt im Logging Bereich dh. bei der Log Uebertragung auf einen Remote Log Server wie zB "Syslog". Nichts desto trotz ist dies die meist gewählte Implementierung und sollte auch unter normalen Umständen gewählt werden. Dazu wählt man in der HA Konfiguration ein dezidiertes Interface:

      System > Config > HA > Reserve Management Port for Cluster Member
      
      NOTE Beachte dabei das dieses Interface vom "Clustering" ausgenomme ist dh. durch das Konfigurieren
           einer IP für jeden Node auf dem spezifischen Interface das als "Reserve Management Port for
           Cluster Member" konfiguriert wurde kann über diese IP jeder Node einzeln angegangen werden. 
           Dies ermöglichkt auch -über dieses Interace- jeden Node einzeln über SNMP zu überwachen.

Wie oben beschrieben unter normalen Umständen sollte diese Art der Implementation eines Management Interface's konfiguriert werden. Möchte man jedoch mit einer "seperaten" VDOM dh. Mgmt. VDOM arbeiten und die Möglichkeit haben über diese VDOM den Cluster zu managen sowie Log's einzel für jeden Node zB zu einem Syslog zu senden kann eine "Management VDOM" implementiert werden. Dabei ist zu beachten, dass diese Management VDOM "nicht" im Clustering enthalten ist dh. diese wird nicht "synchronized" und ist komplett unabhängig vom Cluster. Alle Interfaces/Ports die innerhalb einer solchen "Management VDOM" zur Verfügung stehen können genutzt werden um den Cluster zu Administrieren. Dabei spielt es keine Rolle ob man die Interfaces/IP's benutzt des Slaves und/oder des Masterw da die "Management VDOM" nicht Bestandteil des "Clustering" ist. Aus diesem Grund werden ebenfalls die Logs unabhängig für jeden Node einzel mit dessen IP resp. die für die Management VDOM benutzt werden zB einem "Syslog" übermittelt. Gleichzeitig kann wie bei der "HA Reserved Management Interface" jeder einzelne Node des Clusters über diese IP's/Interfaces zB über SNMP überwacht werden. Um eine solche Konfiguration durchzuführen bedarf es FortiOS 5.0. Folgendes muss durchgeführt werden über die Console auf dem Cluster:

                                          __________
                                         |          |
                                         | INTERNET |
                                         |__________|
                                               |
                                        _______|______
                       ________________|              |________________
                      |                |  Red Switch  |                |
                      | WAN1           |______________|                | WAN1
                 _____|_____                                      _____|_____ 
                |           |                                    |           |
                |           |<---- PORT1 Interface Heartbeat---->|           |
                |           |                                    |           |
                |  FORTI    |                                    |  FORTI    |
                |____       |                                    |       ____|
                |    |      |                                    |      |    |
      MGMT VDOM |____|______|                                    |______|____| MGMT VDOM
                  |   |                 ______________                |    | 
            MGMT1 |   | INTERANL       |              |      INTERNAL |    | MGMT1
                  |   |________________| Green Switch |_______________|    |
                  |                    |______________|                    |
                  |                           |                            |
                  |                      _____|____                        |
                  |                     |          |                       |
                  |                     |   LAN    |                       |
                  |                     |__________|                       |
                  |                                                        |
                 _|_____________                              _____________|_
                |               |                            |               |                         
                | Mgmt. Switch  |                            | Mgmt. Switch  |
                |_______________|                            |_______________|
                        |                                            |
                        |                                            |
                        |                                            |
                        | Mgmt. Network                              | Mgmt. Network
                        |                                            |
       NOTE Dieses Beispiel geht davon aus das beide Devices "nicht" produktiv sind und nicht im 
            Netzwerk verbunden sind. Die Devices dh. der Master und der Slave werden Standalone
            Konfiguriert und erst zu einem späteren Zeitpunkt über das Heartbeat Interface
            verbunden! Dabei gelten die gleichen Vorraussetzungen für den Bau eines Cluster wie 
            im folgenden Artikel beschrieben:
            
            FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
       Master
       
       # config system global
       # set vdom-admin enable
       # end
       
       # config vdom
       # edit [Erstelle eine neue VDOM zB mit dem Namen "MGMT"]
       # end
       
       # config global
       # config system global
       # set management-vdom [Name der neu erstellten VDOM zB "MGMT"]
       # end
       
       NOTE Wenn das Kommando "management-vdom" benutzt wird kann die "root" 
            VDOM nicht angegeben werden in der Konfiguration!
       
       # config system ha
       # set mode [Setze den Mode Active/Passive dh. "a-p"]
       # set hbdev [Setze die Ports für den Heartbeat (Sync) sowie Priorität zB "port1 50"]
       # set standalone-mgmt-vdom enable
       # set priority [Setze einen Integer für Prority zB "200"]
       # set group-name [Gruppen Namen zB "FG-HA-SG0E0]
       # set group-id [Group ID zB "10"]
       # set password [Passwort max. Länge 19]
       # set override enable
       # end
       # end
       
       NOTE Die Option "override enable" wird benutzt damit der Master bei einem Failover
            nachträglich wiederum Master wird! Weitere Informationen zu dieser Option siehe
            nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_setze_ich_f.C3.BCr_Fortigate_einen_Cluster_auf_.28HA.29.3F
       
       # config vdom
       # edit [Gebe den Namen der erstellten Mgmt. VDOM an zB "MGMT"]
       # config system interface
       # edit [Wähle das Interface für die Mgmt. VDOM zB "mgmt1"]
       # set vdom [Füge das Interface der Mgmt. VDOM hinzu "MGMT"]
       # set ip [Vergebe die IPv4 Adresse mit deren Subnet zB "192.168.1.99/24]
       # end
       
       # config router static
       # edit 1
       # set device [Wähle das Interface für den Routing Eintrag zB "mgmt1"]
       # set gateway [Konfiguriere den Gateway als IPv4 Adresse zB "192.168.1.1"]
       # next
       # end
       SLAVE
       
       # config system ha
       # set mode [Setze den Mode Active/Passive dh. "a-p"]
       # set set hbdev [Setze die Ports für den Heartbeat (Sync) sowie Priorität zB "port1 50"]
       # set standalone-mgmt-vdom enable
       # set priority [Setze einen Integer für Prority zB "100"]
       # set group-name [Gruppen Namen zB "FG-HA-SG0E0]
       # set group-id [Group ID zB "10"]
       # set password [Passwort max. Länge 19]
       # end
       
       NOTE Beim "hbdev", "mode", "group-name", "group-id" sowie "password" müssen die gleichen Werte wie
            beim "Master" Device gesetzt werden!
       
       Nun führe einen "shutdown" durch für den Slave dh.:
       
       # execute shutdown
       
       Verbinde nun den Master mit dem Slave Device über das konfigurierte "Heartbeat" (hbdev) Interface.
       Danach starte den "Slave" Device erneut und kontrolliere über die Console auf dem Slave das folgende
       Meldung erscheint:
       
       slave's external files are not in sync with master, sequence:1. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:2. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:3. (type CERT_LOCAL)
       slave's external files are not in sync with master, sequence:4. (type CERT_LOCAL)
       slave succeeded to sync external files with master
       slave succeeded to sync external files with master
       
       Sobald der Slave Device in "sync" ist mit dem Master kann nun auf dem Slave Device das Interface für
       die Management VDOM -wie schon auf dem Master geschehen- durchgeführt werden:
       
       # config vdom
       # edit [Gebe den Namen der erstellten Mgmt. VDOM an zB "MGMT"]
       # config system interface
       # edit [Wähle das Interface für die Mgmt. VDOM zB "mgmt1"]
       # set vdom [Füge das Interface der Mgmt. VDOM hinzu "MGMT"]
       # set ip [Vergebe die IPv4 Adresse mit deren Subnet zB "192.168.1.100/24]
       # end
       
       # config router static
       # edit 1
       # set device [Wähle das Interface für den Routing Eintrag zB "mgmt1"]
       # set gateway [Konfiguriere den Gateway als IPv4 Adresse zB "192.168.1.1"]
       # next
       # end
       Nun kann zB ein "Syslog" Server konfiguriert werden:
       
       # config log syslogd setting
       # set status enable
       # set server "192.168.1.103"
       # end

Wenn man sich nun die Logs anschaut - die auf dem Syslog Server übermittelt werden - sieht man das diese "pro" Node mit unterschiedlichen IP's übermittelt werden da diese über jeden Node einzeln über die Management VDOM gesendet werden:

       Feb 17 16:06:44 192.168.1.99 date=2014-02-16 time=23:09:10 devname=FG3K9B3E13700260 devid=FG3K9B3E13700260 logid=0001000014 type=traffic subtype=local level=notice vd=MGMT srcip=
       192.168.1.103 srcport=137 srcintf="mgmt1" dstip=192.168.1.255 dstport=137 dstintf="MGMT" sessionid=865 status=deny policyid=0 dstcountry="Reserved" srccountry="Reserved" trandisp=noop 
       service=137/udp proto=17 app=137/udp duration=0 sentbyte=0 rcvdbyte=0
       Feb 17 16:06:44 192.168.1.100 date=2014-02-16 time=23:09:10 devname=FG3K9B3E10700346 devid=FG3K9B3E10700346 logid=0001000014 type=traffic subtype=local level=notice vd=MGMT srcip=
       192.168.1.103 srcport=137 srcintf="mgmt1" dstip=192.168.1.255 dstport=137 dstintf="MGMT" sessionid=704 status=deny policyid=0 dstcountry="Reserved" srccountry="Reserved" trandisp=noop 
       service=137/udp proto=17 app=137/udp duration=0 sentbyte=0 rcvdbyte=0

Weitere Informationen betreffend Einrichtung eines Syslog Servers siehe Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_Fortigate_die_Logs_zus.C3.A4tzlich_einem_Syslog_Server_senden.3F

Wie kann ich auf einer FortiGate im Cluster Mode zusätzlich zum "Port Monitoring" ein "Destination Monitoring" (DGD) konfigurieren?

In einem FortiGate Cluster wird "Port Monitoring" aktiviert um den Status (Link) der Interfaces zu übewachen. Wird dieser Link beeinträchtigt wird ein Failover ausgeführt. In einigen Konstellation kann es Wichtig sein nicht nur den Port resp. das Interface zu übewachen sondern die Verbindung selber. Dies kann zusätzlich zum FortiGate HA Cluster konfiguriert werden anhand der Funktion "Dead Gateway Detection" (Link Monitor). Damit dies durchgeführt werden kann muss zuerst die Funktion des "Dead Gateway Detection" im HA konfiguriert werden:

       # config system ha
       # set pingserver-monitor-interface [Definition der Interfaces für die Aktivierung der "Dead Gateway Detection" Funktion zB "port1" "port2"]
       # set pingserver-failover-threshold [Gewichtung des Failovers; Möglich 0 - 50, Standard 10]
       # set pingserver-flip-timeout [Flip-Timout in Minuten; Möglich 6 to 2147483647; Standard 6]
       # end
       
       NOTE Die Option "pingserver-failover-threshold" steht im direkten Zusammenhang mit "ha-priority" konfiguriert unter "config
            router gwdetect". Wird der Wert unter "pingserver-failover-threshold" auf 0 gesetzt wird ein Failover durchgeführt sobald
            ein Ping verloren geht. Unter "pingserver-flip-timeout" wird definiert, dass wenn auf allen Cluster Nodes die definierte
            Destination nicht erreichbar ist während des gesetzten Wertes ein Failover verhindert wird.

Nachdem die Funktion im HA durch "pingserver-monitor-interface" aktiviert wurde, kann diese unter "Dead Gateway Detection" (Link Monitor) konfiguriert werden:

       # config router gwdetect
       # edit 1
       # set failtime [Anzahl Fehlversuche bevor ein Failover ausgeführt wird; Möglich 1 - 5; Standard 5]
       # set ha-priority [Definiton der Gewichtung; Möglicher Wert 1 - 50; Standard 1]
       # set interface "port1"
       # set server [IPv4 Adresse des Servers resp. Pingserver]
       # next
       # edit 2
       # set failtime [Anzahl Fehlversuche bevor ein Failover ausgeführt wird; Möglich 1 - 5; Standard 5]
       # set ha-priority [Definiton der Gewichtung; Möglicher Wert 1 - 50; Standard 1]
       # set interface "port2"
       # set server [IPv4 Adresse des Servers resp. Pingserver]
       # next
       # end
       
       NOTE Die "ha-priority" kommt eine wichtige Funktion zu dh. der definierte Wert wird bei Verlust des Pings der HA Gewichtung hinzugefügt. Wenn
            unter "config system ha" die Option auf "pingserver-failover-threshol" 10 gesetzt wird und die "ha-priority" auf 5, wird dêr Wert 5 bei 
            jedem Ping Verlust addiert dh. gehen 2 Pings verloren (5+5) = 10 = Failover da der Wert für "pingserver-failover-threshold" erreicht ist!
            Die Option "ha-priority" wird nicht synchronisert in einem Cluster.

Wireless-Controller

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

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

       FortiAP:FAQ

Vdom

Was ist eine Vdom und was ist darunter zu verstehen sowie wie aktiviere ich diese?

VDom (Virtuell Domain) wurde durch Fortinet 2004 vorgestellt und ist seitdem her ein fester Bestandteil jeder FortiGate Firewall. VDom ist eine Virtualisierung einer Firewall Instanz im Gesamten dh. sämtliche Firewall Komponenten/Konfiguration wird separariert. Eingeloggte Administratoren sehen auf den Ihnen zugeteilter VDom Instanz nur deren Konfiguration. Interkomunikation zwischen VDom Instanzen sind über virtualisierte Interfaces (Inter-VDOM-Link) direkt möglich ohne physikalische zu benutzen. Jede FortiGate hat die Möglichkeit -ohne zusätzliche Lizensierung- 10 VDOM's zu benutzen. Bis zur FortiGate-1000 können diese VDOM's nicht erweitert werden. Für FortiGate 1000 und grösser können die VDOM Instanzen anhand 25er Package erweitert werden! Die VDOM Funktionalist auf einer FortiGate ist per Standard deaktiviert. Um diee Funktion zu aktivieren führe folgendes durch:

            # config system global
            # set vdom-admin enable
            # end
            You will be logged out for the operation to take effect
            Do you want to continue (y/n)y
       NOTE Duruch die Aktivierung der VDOM Funktion auf einer FortiGate wird die bestehende Instanz zur "root" VDOM. Diese 
            Instanz kann nicht unbenannt werden! Weitere Informationen betreffend Details, Informationen sowie Konfiguration 
            siehe nachfolgenden Artikel:
                         
            Datei:Fortigate-vdoms-50.pdf
            
            Desweiteren sollte betreffend CLI im Zusammenhang mit VDOM's folgender Artikel berücksichtigt werden:
            
            FortiGate-5.0-5.2:FAQ#Was_muss_in_der_CLI_.28Kommandozeile.29_betreffend_VDom.27s_beachtet_werden.3F

Was ist betreffend VDOM und verschiedenen Administratoren Rechte zu berücksichtigen?

Wenn ein FortiGate Device betrieben wird mit veschiedenen VDOM's so können für diese VDOM's verschiedene Administratoren erstellt werden sowie diese den einzelnen VDOM' zugewiesen werden. Diesen Administratoren kann anhand der entsprechenden Mgmt. Profiles Rechte zugewiesen werden. Diese Mgmt. Profiles steuern auf welche Funktionen diese Administratoren Zugriff erlangen (zB Read-Only). Weitere Informationen über diese Mgmt. Profiles siehe auch folgendender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_einen_.22read-only.22_Administrator_konfigurieren.2Ferstellen.3F

Wenn mehrer VDOM's existieren und einzelne Administratoren diesen VDOM's zugewiesen wurden, sollte darauf geachtet werden, dass diese zusätzlichen Adminstratoren im Gegensatz zum Super Administrator nicht über folgende Rechte verfügen:

       - Kein Zugriff auf die Kommandozeile (CLI) sei es per SSH, Telnet, Console und CLI Widget
       - Zugriff sollte nur erlaubt werden auf Web Mgmt. Interface ohne CLI Widget

Der Grund liegt im undokumentierten Befehl "fnsysctl". Weitere Informationen über "fnsysctl" siehe nachfolgender Artikel:

       FortiGate:fnsysctl

Anhand dieses Befehls kann "jeder" Administrator über die Kommandozeile (CLI) die Konfiguration jeder einzelnen VDOM sowie Globale Komponenten auslesen. Die "einzige" Möglichkeit dies zu verhindern ist der sogenannte "FIPS-CC Mode" in der eine FortiGate betrieben wird. Dabei handelt es sich um einen Standard resp. FIPS bedeutet "Federal Information Processing Standard". Siehe auch:

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

Per Standard ist "FIPS-CC Mode" auf jeder FortiGate "deaktivert" und dies kann anhand folgenden Befehls kontrolliert werden:

       # get system status | grep FIPS
       FIPS-CC mode: disable

Wenn dieser Mode aktiviert werden soll kann dies durch folgenden Befehl durchgeführt werden:

       # config system fips-cc
       # set status enable
       # end

Es ist jedoch absolut Ünabdingbar vorhergehend sich Ausgiebig zu informieren um was es sich beim "FIPS-CC Mode" handelt und welche Einschränkungen/Auswirkungen zu beachten sind. Dazu steht unter folgenden Link ein Dokument zur Verfügung das dies ausführlich beschreibt:

       Datei:Fips-cc-50.pdf
       Datei:FIPS-CC-Certification-History.pdf

Was muss in der CLI (Kommandozeile) betreffend VDom's beachtet werden?

Sobald auf der Kommandozeile (CLI = Command Line Interface) die VDOM Funktion aktiviert wird erweitert sich die hirarchische Struktur in der CLI um die einzelnen Konfigurationen der Firewall Instanzen abzubilden. Wie die VDOM Funktion aktiviert wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F

Nach dem die VDOM Funktion aktiviert ist verhätl sich die CLI folgendermassen:

       Global Editieren
       # config global
       # config sytem global
       VDOM Editieren
       # config vdom
       # edit [Vdom Name]

Müssen VDom Instanzen lizensiert werden und wie kann man diese Erweitern?

Jede Fortigate besitzt per Standard 10 VDom Instanzen (FortiGate bis 1000er Serie untersützten 10 VDom’s und sind nicht erweiterbar). Upgrade auf einer höhere Anzahl VDom's bei grösseren Devices als FortiGate 1000er Serie sind jederzeit möglich (25 Package)! Die Virtualisierte Version der FortiGate unterstützt in der Basis Version (VM-00) KEINE VDom's und kann nicht anhand VDOM Lizenzen mit VDom's versehen werden! Wieviel VDom's welche virtuelle Version der FortiGate unterstützt und ob diese Erweiterbar sind sieht man aus dem folgenden Dokument:

       Fortinet:ProduktInfo#FortiGate_VM

Wie Registriere/Aktiviere ich eine zusätzliche VDom Lizenz auf einer FortiGate?

Nachfolgender Artikel gibt Auskunft welche FortiGate (inkl. Virtualisierung) wieviele VDom's unterstützen:

       FortiGate-5.0-5.2:FAQ#M.C3.BCssen_VDom_Instanzen_lizensiert_werden_und_wie_kann_man_diese_Erweitern.3F

Wenn eine FortiGate sei es Physisch oder Virtualisiert mit zusätzlichen VDom's erweitert wird, muss folgendermassen vorgegangen werden:

       - Die zusätzlichen VDom Lizenzen werden anhand eines Lizenz Zertifikates geliefert!
         
       - Auf diesem Lizenz Zertifikat ist unter "VDOM License Number:" der entsprechende Lizenz Code aufgeführt!
         
       - Logge dich auf https://support.fortinet.com auf den Account ein indem die FortiGate mit dessen Serien Nummer registriert ist!
         
       - Wähle "Manage/View Products" klicke auf die entsprechende Serien Nummer der FortiGate auf der die VDom Lizenzerweiterung durchgeführt werden soll!
         
       - Wähle unter der entsprechenden Serien Nummer der FortiGate "Add VDOM License" und geben den auf dem Zertifikat aufgeführten "VDOM License Number:" ein!
         
       - Führe die Registration durch!
         
       - Nach der Registration wird ein entsprechender VDom Key unter "Add VDOM License" aufgeführt.
         
       - Nun muss der entsprechende "VDom Key" auf der FortiGate unter folgender Position eingespielt werden:
         
         Dashboard > Status > License Information > Virtual Domains
         
         NOTE Wenn ein Cluster Betrieben wird MUSS vorgängig ein Backup durchgeführt werden! Der "VDom Key"
              muss auf beiden Nodes des Clusters eingespielt werden! Das Einspielen der Lizenz führt zu einem 
              sofortigen Neustart der Fortigate ohne Warnung!
         
       - Nach dem Neustart kann die max. Anzahl der VDom's unter folgender Position verifiziert werden:
         
         System > Dashboard> License Information > Virtual Domains
         
         NOTE Diese Verifikation sollte auf Master und Slave durchgeführt werden!

Kann ich die zur Verfügung stehenden Resourcen wie Memory, CPU etc. auf einer FortiGate einer bestimmten VDOM zuweisen?

Nein dies ist so nicht möglich dh. eine feste Zuweisung von Resourcen wie zB RAM Bereich und/oder CPU usw. ist nicht möglich. Was konfiguriert werden kann ist die "Limitierung" von Resourcen. Damit wird gewährleistet, dass durch "Eine" VDOM/Instanz nicht alle Resourcen aufgebraucht werden und somit andere VDOM's beeinträchtigt werden. Nachfolgend die Konfigurationspunkte die für die Limitierung konfiguriert werden können (Stand FortiOS 5.0.4 / 5.2):

       Folgende Position zeigt die "Globalen Resourcen" die zur Verfügung stehen:
       
       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-5.0-5.2:FAQ#Kann_ich_die_.22management-vdom.22_Funktion_die_der_.22root.22_VDOM_zugewiesen_ist_einer_anderen_VDOM_zuweisen.3F

Ist das Routing für eine VDom "Global" oder per "VDom" zu verstehen?

Das Routing ist nicht "Global" implementiert sondern per "VDom". Dies bedeutet eine "VDom" ist wie eine seperate in sich geschlossene Routing Instanz und verfügt somit auch ihre eigenen Routing Table. Deshalb muss in jeder "VDom" seperat geroutet werden! Ein Routing Eintrag innerhalb einer VDom wird wie üblich erstellt:

       Datei:Fortinet-138.jpg
       
       NOTE Ein entsprechender Routing Eintrag kann ebenfalls über die Kommandozeile durchgeführt werden:
            
            # config vdom
            # edit [Name der entsprechenden VDom]
            # config router static
            # edit [Gebe einen Sequenz an zB "1"]
            # set dst [IPv4 Subnet]
            # set gateway [IPv4 Adresse]
            # end

Was muss ich berücksichtigen im Zusammenhang mit einer VDom und Layer 2?

Eine VDom im Transparent Modus reagiert eigentlich wie eine Bridge dh. die Interface's die für eine Transparent VDom benutzt werden sind nicht konfigurierbar mit einer IP. Die Aussage, dass eine Fortigate im Transparent Modus als "Bridge" agiert ist zwar im Grundsatz richgit dennoch wiederum nicht ganz richtig dh. richtig wäre "wie ein Switch". Der Grund liegt in den UTM Möglichkeiten im Transparent Modus denn diese benötigen einen Layier um eine Proxyfizierung durchzuführen und deshalb die Festellung "wie ein Switch". Auch im Layer 2 sind einige Umstände zu berücksichtigen damit Traffic von Layer 2 korrekt abgearbeitet wird. Fortinet hat in der "Knowledge Base" ein Dokument Released das diesem Umstand Rechnung trägt:

       Datei:Fortinet+Solutions+for+Transparent+Mode+(Layer-2)-v2.pdf

Können VDom's im HA (High Availability) betrieben werden?

VDOM’s sind Vollumfänglich HA-fähig (Cluster). In Active-Passive Mode laufen sämtliche VDOM’s per Standard jeweils auf der aktiven FortiGate. Der andere passive Device wird erst aktiv sobald die aktive FortiGate resp der primäre Device ausfällt. Dies ist das Standard Verhalten im Cluster (Active-Passive Modus). Es kann jedoch aus Resourcen Gründen (zB Performance) auf einer Active-Passive Installation VDom's auf den Passiven Device ausgelagert werden. Wenn dies durchgeführt wird bleibt der Cluster zwar Active-Passive aber die jeweiligen Nodes übernehmen betreffend den VDom's entweder den Activen Part und/oder den Passiven Part.

       Node Active          Node Passive
       Phyiscal-Node1       Physical-Node2
       vdom-1 (Active)      vdom-1 (Passive)
       vdom-2 (Passive)     vdom-2 (Active)

Wie kann ich eine neue VDom erzeugen/erstellen

Grundvoraussetzung um eine VDom auf einer FortiGate zu erstellen ist das die Funktion aktiviert ist. Nachfolgender Artikel gibt Auskunft wie dies durchgeführt wird:

       FortiGate-5.0-5.2:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F

Wenn die Funktion VDom aktiviert wird so wird automatisch anhand der vorhandene Konfiguation eine VDom mit dem Namen "root" erstellt (kann nicht umbenannt werden)! Möchte man zu dieser VDom eine zusätzliche VDOM erzeugen so kann dies im Mgmt. Web Interface über folgende Position durchgeführt werden:

       Global > VDOM > VDOM > Create New

Es muss ein entsprechender Name vergeben werden sowie der "Operation Mode" den die VDOM benutzen soll. Möchte man eine Transparent Vdom erstellen muss eine "Management IP/Netmask" konfiguriert werden. Diese "Management IP/Netmask" stellt ein entsprechendes Interface dar auf der FortiGate auf der die entsprechende IP konfiguriert ist. Da eine Transparent VDom über kein Routing verfügt (Bridge) muss für das "Management IP/Netmask" Interface ein Routing definiert werden. Dieses Routing beschränkt sich einzig und alleine auf diese "Management IP/Netmask" resp. auf das physisch konfigurierte Interface. Weitere Informationen betreffend Konfiguration einer Transparent VDom siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere.2Ferstelle_ich_eine_VDom_Instanz_im_Transparent_Mode.3F

Wie konfiguriere/erstelle ich eine VDom Instanz im Transparent Mode?

Wenn man eine Transparent VDom erstellen möchte kann auch ohne die VDom Funktion zu aktivieren die "root" VDom die als NAT definiert ist als "Transparent Mode" definiert werden. Wenn jedoch zusätzlich zur "root" VDom eine zusätzliche VDom im Transparent Mode erstellt werden soll muss zuerst die VDom Funktion aktiviert werden. Wie dies durchzuführen ist siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Was_ist_eine_Vdom_und_was_ist_darunter_zu_verstehen_sowie_wie_aktiviere_ich_diese.3F

Danach erstelle eine neue VDOM und konfiguriere diese für Transparent Modus:

       # config vdom
       # edit [Name der neuen VDom zB "vdom-2"]
       # config system settings
       # set opmode transparent
       # set manageip [IPv4 Adresse des Management Interfaces]
       # end
       
       # config router static
       # edit 1
       # set gateway [IPv4 Adresse des Gateway für "manageip"]
       # end
       
       # end
       
       NOTE Die Option "manageip" definiert die IP eines bestehenden und konfigurierten physischen Interfaces. Dieses
            wird benutzt um die Transparent Firewall zu verwalten da diese ja nicht zugänglich ist da eine Transparent
            Firewall über keine IP verfügt (Bridge). Aus diesem Grund muss für dieses Interface "manageip" eine Route
            gesetzt werden. Diese Route ist beschränkt auf die Konfiguration "manageip" resp. auf das physische Interface.
            Eine VDom im Transparent Modus reagiert eigentlich wie eine Bridge dh. die Interface's die für eine Transparent
            VDom benutzt werden sind nicht konfigurierbar mit einer IP. Die Aussage, dass eine Fortigate im Transparent 
            Modus als "Bridge" agiert ist nicht ganz richtig dh. richtig wäre "wie ein Switch". Der Grund liegt in den 
            UTM Möglichkeiten im Transparent Modus denn diese benötigen einen Layier um eine Proxyfizierung durchzuführen
            und deshalb die Festellung "wie ein Switch". Im nachfolgenden Dokumentation wird erklärt wie Interface's im
            Zusammenhang mit VDom's zu benützen sind:
            
            Hosting More as one FortiOS instance on a single FortiGate using VDOMS an VLANs"
            
            Im Zusammenhang mit Layer 2 und VDom's sind einige Umstände zu berücksichtigen dh. Fortinet hat in der "Knowledge
            Base" ein Dokument Released das diesem Umstand Rechnung trägt:
            
            Datei:Fortinet+Solutions+for+Transparent+Mode+(Layer-2)-v2.pdf

Was sind inter-VDom-Links (Interfaces) und wie werden diese erstellt?

Immer wieder ist von inter-VDom-Links resp Interface die Rede. Inter-VDom-Links sind "Virtuelle Interfaces" (Soft-Link), welche eine NAT/Routing-VDommit einer anderen NAT/Routing-VDomverbinden. Diese Inter-VDom-Links ersetzen "physische Kabel". Inter-VDom-Links sollten -sofern keine Transparent Mode VDom- immer mit einer IP Konfiguration versehen werden obwohl dies nicht ein "muss" ist. Empfohlen wird zwischen Zwei VDom NAT Firewall zB ein "Transfer Segment" zu konfigurieren und die entsprechenden IP Ranges/Subnets darüber zu Routen. Auch können mit inter-VDom-Links "meshed" Netzwerke zwischen verschiedenen VDom’s etabliert werden. Um Ringrouten (Loop) zu vermeiden, wird der TTL eines IP-Packets durch die Inter-VDom-Links auf 6 "hope" beschränkt. Das Packet kann also maximal 6x durch ein Inter-VDom-Link übertragen werden bevor es verworfen wird.

       NOTE Unter FortiOS 4 MR3 war es nicht möglich Inter-VDom-Links zu erstellen zwischen zwei VDom's in vers. Modi dh. Transparent
            und/oder NAT. Inter-VDom-Links waren unter FortiOS 4 MR3  nur möglich wenn beide VDom's im gleichen Mode liefen. Die einzige 
            Möglichkeit in solche einem Scenario unter FortiOS 4 MR3 war die "physischen Interfaces" mit einem RJ-45 zu verbinden. Unter 
            FortiOS 5.0 / 5.2 ist es nun möglich Inter-VDom-Links zu erstellen zwischen VDom's die in unterschiedlichen Modi konfiguriert
            sind. dh. NAT und Transparent Modus.

Ein Inter-Vdom-Link kann nur in der "Globalen" Instanz konfiguriert werden und so einer entsprechenden Instanz zur Verfügung gestellt werden. Ein Inter-VDom-Link wird folgendermassen erstellt:

       NOTE Es ist möglich unter bestimmten Vorraussetzungen eine Acceleration für einen Inter-VDom-Link zu konfigurieren.
            Um welche Vorraussetzung es sich handelt siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Kann_man_f.C3.BCr_einen_Inter-VDom-Link_eine_Interface_Acceleration_konfigurieren.3F
       System > Network > Interface
       
       Datei:Fortinet-135.jpg
       
       Datei:Fortinet-136.jpg
        
       Datei:Fortinet-137.jpg

In unserem Beispiel wurde die VDom "root" verbunden mit der VDom "root-2" anhand eines Transfernetzes 172.20.0.0/24! Wenn hinter der VDom "root-1" ein weiteres Netzwerk existieren würde müsste dieses auf der VDom "root" geroutet werden dh. auf den VDom Link! Da unsere VDom "root-1" mit einem inter-VDOM-Link versehen ist muss der Default Gateway der VDom "root-1" auf den Inter-VDom-Link von "root" zeigen dh. erstelle einen Routing Eintrag und berücksichtige folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Ist_das_Routing_f.C3.BCr_eine_VDom_.22Global.22_oder_per_.22VDom.22_zu_verstehen.3F
       Datei:Fortinet-138.jpg

Kann man für einen Inter-VDom-Link eine Interface Acceleration konfigurieren?

Unter FortiOS 4 M3 war dies nicht möglich. Neu mit FortiOS 5.0 / 5.2 ist dies nun möglich, jedoch nur wenn der Device über "NP4/NP6 Network Processor" verfügt (Kein SoC). Der Unterschied zwischen dem NP4 und/oder NP6 Prozessor liegen daher gehend, dass eine Acceleration für ein Inter-VDom-Link zwischen einer NAT und Transparent VDom nur mit einem NP6 Prozessor möglich ist jedoch nicht für NP4. Wenn ein Inter-VDom-Link mit Acceleration versehen wird (verlinkt) so erscheinen diese Links folgendermassen:

       npuX-vlink0
       npuX-vlink1
       
       NOTE "X" indiziert den Index des NP4/NP6 Prozessors! Ein Beispiel wäre:
       
            npu0-vlink0, npu0-vlink1  (Inter-VDOM Link ist verlinkt mit dem "Ersten" ("0") Prozessors des NP4/NP6 Prozessors)
            npu1-vlink0, npu1-vlink1  (Inter-VDOM Link ist verlinkt mit dem "Zweiten" ("1") Prozessors des NP4/NP6 Prozessors)

Um Inter-VDom-Link's aufzulisten um festzustellen ob diese Accelerated resp. verlinkt sind zum "NP4/NP6 Prozessor" gebe auf der Kommandozeile folgendes ein:

       # get hardware nic | grep npu

Folgendes Kommando auf der CLI zeigt auf welche Ports auf den "NP4/NP6 Prozessor" verlinkt sind:

       # diagnose npu [np4 | np6] list
       ID Model Slot Interface
       0 On-board port1 port2 port3 port4
       port5 port6 npu0-vlink0 npu0-vlink1|
       1 FMC-C20 FMC3 fmc3/1 fmc3/2 fmc3/3 fmc3/4
       fmc3/5 fmc3/6 fmc3/7 fmc3/8
       fmc3/9 fmc3/10 fmc3/11 fmc3/12
       fmc3/13 fmc3/14 fmc3/15 fmc3/16
       fmc3/17 fmc3/18 fmc3/19 fmc3/20
       npu1-vlink0 npu1-vlink1
       
       NOTE Weitere Informationen siehe Knowledge-Base Artikel:
       
       http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=FD33888&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=48363952&stateId=0 0 48365253

In Zusammenhang mit VDom's auf einer FortiGate über welche VDom läuft der Mgmt. Traffic?

Wenn ein Fortigate im Zusammenhang mit VDom benutzt wird und mehrer VDom Instanzen vorhanden sind ist zu berücksichtigen, dass der Mgmt. Traffic per Standard über die "root" VDom läuft. Als Mgmt. Traffic wird der "local-in/out" Traffic definiert. Dieser "local-in/out" Traffic wird definiert als zB:

       DNS
       NTP
       External Logging
       FortiGuard
       Alert Emails
       SNMP traps
       Quarantine

Wir die "root" VDom als Transparent VDom konfiguriert übernimmt der Mgmt. Traffic das Interface das in der Transparent VDom als "manageip" definiert wird. Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere.2Ferstelle_ich_eine_VDom_Instanz_im_Transparent_Mode.3F

Wenn auf einer Fortigate der Mgmt. Traffic "nicht" über die "root" VDom abgewickelt werden möchte kann die Aufgabe einer anderen VDom zugewiesen werden. Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_die_.22management-vdom.22_Funktion_die_der_.22root.22_VDOM_zugewiesen_ist_einer_anderen_VDOM_zuweisen.3F

Kann ein physisches Interface auf einer FortiGate mehreren VDom's zugewiesen werden?

Als Grundsatz gilt: Ein physisches Interface kann nur "einer" VDom zugewiesen werden. Wenn ein physisches Interface mehreren VDom's zugewiesen werden soll, muessen auf dem physischen Interface VLAN's konfiguriert werden und diese VLAN's den einzelnen VDom's zugewiesen werden. Nur so kann ein physisches Interface für mehrere VDom's benutzt werden. Nachfolgend ein Beispiel einer Konfiguration:

      # config system interface
      # edit [Name des VLAN's]
      new entry added
      # set interface port1
      # set vlanid [VLAN ID]
      # set ip [VLAN IP Adresse sowie Subnet Maske zB 10.100.1.10/24]
      # set vdom [Name der entsprechenden VDOM]
      # end

Kann ich für eine FortiGate eine VDOM erstellen die ausschliesslich für Management genutzt wird?

Um dies zu realisieren stehen vers. Möglichkeiten zu Verfügung. Grunsätzlich geht man jedoch von zwei Möglichkeiten aus dh. wird ein Cluster betrieben kann die HA Funktion "Reserve Management Port for Cluster Member" benützt weden oder anderseits kann in einem Cluster eine VDOM erstellt werden die ausschlisslich für Management Zwecke zur Verfügung steht. Beide Möglichkeiten stehen im Zusammenhang mit dem Clustering. Weitere detaillierte Informationen zu diesen zwei Möglichkeiten siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_f.C3.BCr_einen_Cluster_eine_VDOM_erstellen_die_ausschliesslich_f.C3.BCr_das_Management_benutzt_wird.3F

Ich möchte BGP Traffic über eine Transparent VDOM/Firewall erlauben jedoch wird dieser geblockt?

Wenn man eine Transparent Firewall (normalerweise eine VDOM) konfiguriert und auf jeder Seite der Interface's ein Router angeschlossen ist, die miteinander komunizieren und BGP Informationen austauschen (TCP 179), wird dieser Traffic durch die Transparent Firewall -sofern eine entsprechende Firewall Policy Rule existiert- abgearbeiet. Damit der Traffic sauber durchgeht muss folgendes kontrolliert werden:

       • Auf der Transparent Firewall muss eine Multicast Policy konfiguriert werden (Per Standard existiert diese dh. "all allow")
       
       • Es muss eine Firewall Policy konfiguriert werden die den BGP Traffic erlaubt zwischen den Interfaces (TCP-179)
       
       • Auf den Interface's muss folgendes konfiguriert werden (sofern mit mehreren Segmenten gearbeitet wird zB VLAN's):
       
         # config system interface
         # edit [Gebe das ensprechende Interface an zB wan1]
         # set l2forward enable
         # set forward-domain 10
         # end
         
         # config system interface
         # edit [Gebe das ensprechende Interface an zB internal1]
         # set l2forward enable
         # set forward-domain 10
         # end
         
         NOTE Durch die Konfiguration der Interface's in der gleichen "forward-domain" werden diese
              direkt verbunden! Dies bedeutet "Layer 2 broadcasts" werden beschränkt auf die gleiche Gruppe.
              Per Standard sind alle Interfaces in der Gruppe "0". Das Kommando "forward-domain" steht nur
              im Transparent Mode zur Verfügung. Wenn VLAN's im Transparent Mode benutzt werden muss/sollte
              jedes VLAN in eine seperate "forward-domain" da ansonsten ARP Packete dupliziert werden da
              für jedes VLAN im Transparent Mode die gleiche MAC Adresse benutzt wird. Somit kann/kommt es
              zu Kollisionnen! Desweiteren sollte die MTU kontrolliert werden dh. wenn die BGP Session kurz
              hochgefahren wird um nachträglich gleich wieder in den "closed" Status zu gehen muss die MTU
              Size auf den Router kontrolliert sowie event. die der Fortinet angepasst werden. Die MTU Size
              auf einer Fortigate anzupassen wird wiefolgt durcheführt:
              
              FortiGate-5.0-5.2:FAQ#Wie_passe_ich_auf_einem_Interface_die_MTU_Size_an.3F

Client Reputation/Threat Weight/Device Identification

Wie funktioniert "Client Reputation/Threat Weight" und/oder "Device Identification" sowie auf welchen Geräten steht diese Funktion zur Verfügung?

Eine "Client Reputation" (Ab FortiOS 5.0) sowie "Threat Weight" (Ab FortiOS 5.2) bedeutet, dass Clients überprüft werden anhand eines Scores wie deren Reputation (Ruf) aussieht. Dies wird anhand des Logs durchgeführt. Was wiederum bedeutet, dass die Reputation anhand der Logs und deren Events eine Auswertung durchführt um die Reputation jedes einzelnen Clients zu ermitteln. Die Ermittlung der Clients umfasst die folgenden Informationen:

       • MAC Adresse
       • IP  Adresse
       • Operating System
       • Hostname
       • Username
       • Zeit die vergangen ist seit ein Device das letzte Mal erkannt wurde und über welches Interface diese Erkennung stattgefunden hat.

Diese Client Informationen sind über folgende Position auf einer FortiGate ersichtlich:

       NOTE Unter FortiOS 5.2 wurde der Name betreffend "Client Reputation" gewechselt auf
            "Threat Weigt". Ebenfalls wurde die Menüpositon verschoben und ist neu ersichtlich
            unter:
            
            Log & Report > Log Config > Threat Weight
       User & Device > Device > Device Definition

Die Auswertung um die Reputation der Clients zu ermitteln umfasst folgende Funktionen:

       • Firewall Policy Block
       • Verbindungend Fehlgeschlagen
       • Intrusion Protection
       • Malware Detection
       • Web Aktivitäten
       • Application Protection
       • Geo Lokation
       
       NOTE Um die Reputation der Clients zu ermitteln werden die UTM Funktionen auf der FortiGate benützt! Dies bedeutet folgende UTM 
            Funktionen müssen folgendermassen konfiguriert sein:
            
            • UTM Security Profiles > Antivirus 
            Konfiguriere für DLP die Funktionen die notwendig sind!
            
            • UTM Security Profiles > Web Filter
            In den WebFilter Profilen müssen die entsprechenden Kategorien die nicht zugelassen sind auf "Block" sein sowie ALLE Kategorien 
            die erlaubt sind auf "Monitor". Kombinationen mit "Authenticate" sind natürlich ebenfalls möglich. Da die "Client Reputation" 
            über das Log ermittelt wird muss einfach gewährleistet sein, dass die Clients über den WebFilter anhand zB "Monitor" übewacht werden!
            
            • UTM Security Profiles > Application Control > Application Sensor
            Für die Funktion Application Controll gilt dasselbe wie für den WebFilter dh. auch hier analysiert die Client Reputation die 
            Logs was wiederum bedeutet, dass ALLE Applicationen entweder auf "Block" oder auf "Monitor" gesetzt werden ob "known" oder 
            "unknown". Nur so könnend die Clients überwacht werden (Log) und später durch die "Client Reputation" das Log ausgewertet werden.
             
            • UTM Security Profiles > Intrusion Protection > IPS Sensor
            Im IPS Sensor muss für die "Clients" ein Client Sensor konfiguriert werden dh. ein Sensor der ALLE Signaturen betreffend Client 
            "Monitored" und ins Log schreibt. Nur so ist gewährleistet das die "Client Reputation" die nötigen Auswertungen über das IPS Log 
            durchführen kann. Wenn Server etc. ebenfalsl in die "Client Reputation" einbezogen werden sollen muss ein entsprechender IPS 
            Sensor mit den nötigen Signaturen konfiguriert und über "Monitor" in das Log geschrieben werden.
            
            • UTM Security Profiles > Email Filter 
            Konfiguriere Email Filtering die Funktionen die notwendig sind!
            
            • UTM Security Profiles > Data Leak Prevention > Sensor 
            Konfiguriere für DLP die Funktionen die notwendig sind!

Die Funktion "Client Reputation" für FortiOS 5.0 sowie "Threat Weight" für FortiOS 5.2 stehen auf folgenden Devices zur Verfügung (Siehe Software Matrix "UTM"):

       FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

Um die "Client Reputation" zu aktivieren auf einem Device muss innerhalb der "Interface" Konfiguration unter "System > Network > Interface" die Position "Detect and Identify Devices" aktiviert werden. Dies bedeutet das die "Client Reputation/Threat Weight" im direkten Zusammenhang steht mit der Device Identifikation! Die "Client Reputation/Threat Weight" kann unter folgender Position aktiviert sowie konfiguriert werden:

       FortiOS 5.0
       User & Device > Client Reputation > Reputation Definition
       FortiOS 5.2
       Log & Report > Log Config > Threat Weight
       NOTE Sobald die "Client Reputation" aktiviert wird erscheint eine Hinweis/Warnmeldung, dass alle Policys und alle Funktionen
            auf Log gesetzt werden. Dieser Umstand gilt für FortiOS 5.0 jedoch nicht für FortiOS 5.2. Da die "Client Reputation/Threat Weight" 
            über Log Analyse durchgeführt wird und als Grundlage muss geloggt werden. Dies bedeutet die vers. zB Policys können nicht mehr 
            für das Logging deaktiviert werden da die entsprechende Position auf dem WebGui "invers" erscheint da geforced durch die 
            (gilt nur für FortiOS 5.0) "Client Reputation". Aus diesem Grund hier nochmals der Hinweis, dass "Client Reputation" sehr 
            Performance intensiv ist und nur auf den entsprechenden Devices und auch dort mit Vorsicht zu implementieren ist.

Was ist der Unterschied zwischen "Client Reputation" und "Threat Weight"?

Unter FortiOS 5.0 wurde "Client Reputation" Funktion neu implementiert. Details betreffend "Client Reputation" siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_funktioniert_.22Client_Reputation.2FThreat_Weight.22_und.2Foder_.22Device_Identification.22_sowie_auf_welchen_Ger.C3.A4ten_steht_diese_Funktion_zur_Verf.C3.BCgung.3F

Unter FortiOS 5.2 wurde "Client Reputation" umgetauft auf "Threat Weight" und die Menüposition verschoben:

       Log & Report > Log Config > Threat Weight

Der "offensichtliche" Hauptunterschied liegt darin, dass unter FortiOS 5.0 dh. für "Client Reputation" die Log's "geforced" aktiviert werden. Dies bedeutet sobald ich unter FortiOS 5.0 "Client Reputation" benutzen möchte, werden ALLE Logs aktiviert und diese können nicht mehr deaktiviert/manipuliert werden. Unter FortiOS 5.2 wird dies nicht durchgeführt und die Logs bleiben konfigurier/manipulierbar. Nicht nur die Menüposition wurde für FortiOS 5.2 verschoben sondern ebenfalls das Kommando in der CLI:

       # config log threat-weight
       # set blocked-connection [low | medium | high | critical | disable]
       # set failed-connection [low | medium | high | critical | disable]
       # set malware-detected [low | medium | high | critical | disable]
       # set max-rep-db-size [Maximum MBytes]
       # set url-block-detected [low | medium | high | critical | disable]
       # set window-size [Maximal Tage des Zeitfenster für die Daten 1 - 30]
       # config application
       # edit [Gebe einen entsprechenden Category ID an; benutze ? für weitere Infos]
       # set category [category_int>
       # set level [low | medium | high | critical | disable]
       # end
       # config geolocation
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set country [Gebe den entsprechenden Country Code an]
       # set level [low | medium | high | critical | disable]
       # end
       # config ips
       # set info-severity [low | medium | high | critical | disable]
       # set low-severity [low | medium | high | critical | disable]
       # set medium-severity [low | medium | high | critical | disable]
       # set high-severity [low | medium | high | critical | disable]
       # set critical-severity [low | medium | high | critical | disable]
       # end
       # config level
       # set low [1 bis 10]
       # set medium [5 bis 30]
       # set high [10 bis 50]
       # set critical [30 bis 100]
       # end
       # config web
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set group [Gebe eine Entsprechende Group Category ID an; benutze ? für weitere Infos]
       # set level [disable | low | medium | high | critical]
       # end
       # end

Wie kann ich über die Device Identification Funktion anhand einer Mac Adresse einen Device blocken (802.11x)?

Wenn über die Funktion der "Device Identification" ein spezifischer Device mit einer spezifischen MAC Adresse geblockt werden soll (802.11x) so kann dies folgendermassen konfiguriert werden:

       # config user device 
       # edit [Name für den entsprechenden Device zB "phone-1"
       # set mac [MAC Adresse des Device den man blocken möchte zB "01:12:13:14:15:16"]
       # next 
       # end 
       
       NOTE Diese Konfiguration kann ebenfalls über das Web Mgmt. Interface durchgeführt werden und zwar über folgende
            Position:
            
            User & device > Device > Device definition > Create new

Die nachfolgende Konfiguration ist nur über Kommandozeile möglich. Dies bedeutet. Als Erstes muss eine Liste zB. "black-list" erfasst werden und der vorgängig erfasste Device mit dessen MAC Adresse zu dieser "black-list" hinzugefügt werden:

       # config user device-access-list 
       # edit [Name der Liste zB "black-list "]
       # set default-action [accept | deny; Standard "accept"]
       # config device-list 
       # edit [Gebe einen entspechenden Integer an zB "1"]
       # set device [Name des entsprechenden Device das unter "config user device" definiert wurde zB "phone-1"] 
       # set action [Gebe die entsprechende Action ein dh. "deny | accept"] 
       # next 
       # end 
       # next 
       # end 
       
       NOTE Wenn eine "device-access-list" erstellt wird und alle Device erfasst werden die Zugriff erlangen sollen dh. "white-list"
            kann die "default-action" auf "deny" gesetzt werden. Wenn die Position "default-action" auf "deny" steht werden alle nicht
            definierten/bekannten Device's geblockt!            

Nun muss die "device-access-list" die erstellt wurde unter dem entsprechenden Device konfiguriert werden:

       # config system interface 
       # edit [Name des entsprechenden Devices zB "internal"]
       # set device-identification enable 
       # set device-access-list [Name der entsprechende "device-access-list" zB "black-list"]
       # next 
       # end

Wenn diese Konfiguration im Zusammenhang mit einer Forti Access Point genutzt werden soll gibt nachfolgender Artile Auskunft über diese Konfiguration:

       FortiAP:FAQ#Wie_und_soll_ich_.C3.BCberhaupt_f.C3.BCr_eine_SSID_einen_Mac_Filter_.28802.11x.29_Konfigurieren_f.C3.BCr_eine_Authentifizierung.3F

Wie kann ich im Log einer FortiGate die MAC Adressen von Device's anzeigen lassen?

Wenn im "Forward" Log auf einer FortiGate sowie im "Traffic" Log eines FortiAnalyzer die MAC Adresse der Devices in der Spalte "Source MAC" aufgelistet werden soll so muss auf dem entsprechenden Interface die "Identify and Detect Device" Funktion aktiviert werden. Dazu steht im Mgmt. Interface ein entsprechender Punkt zur Verfügung der aktiviert werden kann. Um die Funktion auf Kommandozeile zu aktivieren führe folgendes aus:

      # config system interface 
      # edit [Name des entsprechenden Devices zB "internal"]
      # set device-identification enable 
      # end

Danach steht die MAC Adresse in der Spalte "Source Mac" Adresse im Log sei es auf der FortiGate und/oder FortiAnalyzer zur Verfügung.

UTM Proxy Options / Protocol Options

Wie konfiguriere ich die UTM Proxy/Protocol Options manuell über Kommandozeile?

Bei kleineren Devices steht die Menüposition für die UTM Proxy/Protocol Options nicht mehr über Gui zur Verfügung. Diese müssen für diese Devices zB 40C über Kommandozeile konfiguriert werden. Dies wird folgendermassen durchgeführt:

       NOTE Unter FortiOS 5.2 existiert die Positione "extended-utm-log" nicht mehr!
            Um "streaming" von UTM auszuschliessen existiert unter FortiOS 5.2 folgende
            option die jedoch für FortiOS 5.0 nicht exisitert:
            
            streaming-content-bypass
            
            Wenn "streaming" von UTM ausgeschlossen werden soll muss unter FortiOS 5.0
            explizit eine "Content-Header" Konfiguration durchgeführt werden. Weitere
            Informationen findet man unter folgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_innerhalb_eines_WebFilters_einen_bestimmten_.22MIME.22_Type_.28zB_Audio.29_blockieren_.28Content-Header.29.3F
            
            Desweiteren wurde unter FortiOS 5.2 das Protokoll "im" komplett entfernt und
            steht für eine Konfiguration nicht mehr zur Verfügung.
       FortiOS 5.0
       # config firewall profile-protocol-options
       # edit [Wähle das entsprechende Profile]
       # get
       name                : default 
       comment             : all default services
       replacemsg-group    : 
       oversize-log            : disable
       switching-protocols-log : disable
       extended-utm-log        : disable 
       http:
           ports                    : 80    
           status                   : enable     
           inspect-all              : disable     
           options                  : no-content-summary     
           comfort-interval         : 10    
           comfort-amount           : 1    
           post-lang                :     
           fortinet-bar             : disable  
           streaming-content-bypass : enable   
           switching-protocols      : bypass     
           oversize-limit           : 10    
           retry-count              : 0    
       ftp:
           ports               : 21    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary splice     
           comfort-interval    : 10    
           comfort-amount      : 1    
           oversize-limit      : 10    
       imap:
           ports               : 143    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
       mapi:
           ports               : 135    
           status              : enable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
       pop3:
           ports               : 110    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
       smtp:
           ports               : 25    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary splice     
           oversize-limit      : 10    
           server-busy         : disable     
       nntp:
           ports               : 119    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary splice     
           oversize-limit      : 10    
       im:
           status              : enable     
           options             :     
           oversize-limit      : 10    
       dns:
           ports               : 53    
           status              : enable     
       mail-signature:
           status              : disable     
           signature           :  
       FortiOS 5.2
       # config firewall profile-protocol-options
       # edit [Wähle das entsprechende Profile]
       # get
       name                : default 
       comment             : all default services
       replacemsg-group    : 
       oversize-log        : disable 
       switching-protocols-log: disable 
       http:
           ports               : 80    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary     
           comfort-interval    : 10    
           comfort-amount      : 1    
           post-lang           :     
           fortinet-bar        : disable     
           streaming-content-bypass: enable     
           switching-protocols : bypass     
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : disable     
           block-page-status-code: 200    
           retry-count         : 0    
       ftp:
           ports               : 21    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary splice     
           comfort-interval    : 10    
           comfort-amount      : 1    
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : disable     
       imap:
           ports               : 143    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : disable     
       mapi:
           ports               : 135    
           status              : enable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : enable     
       pop3:
           ports               : 110    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary     
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : disable     
       smtp:
           ports               : 25    
           status              : enable     
           inspect-all         : disable     
           options             : fragmail no-content-summary splice     
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : disable     
           server-busy         : disable     
       nntp:
           ports               : 119    
           status              : enable     
           inspect-all         : disable     
           options             : no-content-summary splice     
           oversize-limit      : 10    
           uncompressed-oversize-limit: 10    
           uncompressed-nest-limit: 12    
           scan-bzip2          : disable     
       dns:
           ports               : 53    
           status              : enable     
       mail-signature:
           status              : disable     
           signature           : 

Nun kann das entsprechende UTM Proxy/Protocol Options in die entsprechende Firewall Policy Rule implementiert werden:

       # config firewall policy
       # edit [Wähle die entsprechende Policy ID]
       # set utm-status enable
       # set profile-protocol-options [Wähle das entsprechende Proxy/Protocol Option Profil]
       # end

Wie konfiguriere ich die UTM SSL Proxy/Protocol Options manuell über Kommandozeile?

Bei kleineren Devices steht die Menüposition für die UTM Proxy/Protocol Options nicht mehr über Gui zur Verfügung. Diese müssen für diese Devices zB 40C über Kommandozeile konfiguriert werden. Die SSL Proxy/Protocol Options werden benutzt in folgenden Situationen:

       • SSL Deep Inspection (Client Zertifikat muss auf dem Client/Workstation installiert werden)
       • URL Scan only (Es wird kein Client Zertifikat auf dem Client/Workstation benötigt jedoch "WebFilter Only")
       
       NOTE Betreffend "URL Scan only" Konfiguration siehe nachfolgende Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
            FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Die Konfiguration der SSL Proxy/Protocol Options auf der Kommandozeile erfolgt folgendermassen:

       NOTE Unter FortiOS 5.2 wurde die "Deep Inspection Engine" für eine bessere Performance
            modifiziert. Ebenfalls wurde der Name in der Kommandozeile umbenannt und ist neu zu finden
            unter:
            
            # config firewall ssl-ssh-profile
            
            Folgende Option wurde unter FortiOS 5.2 entfernt:
            
            extended-utm-log
            
            Folgende Option ist unter FortiOS 5.2 dazugekommen:
            
            # config ssl-exempt
            
            # config ssl
            # set inspect-all [disable | certification-inspection | deep-inspection]
            # end
            
            # config [https | ftps | impas | pop3s | smtps]
            # set status [disable | certification-inspection | deep-inspection]
            # end
            
            Somit kann durch "certification-inspection" über alles (inspect-all) oder 
            in den einzelnen Protokollen (zB https) gesettzt werden!
       # config firewall deep-inspection-options
       # edit [Wähle das entsprechende Profile]
       # get
       name                : default
       comment             : all default services
       ssl:
           inspect-all         : disable
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       https:
           ports               : 443
           status              : enable
           client-cert-request : bypass
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       ftps:
           ports               : 990
           status              : enable
           client-cert-request : bypass
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       imaps:
           ports               : 993
           status              : enable
           client-cert-request : inspect
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       pop3s:
           ports               : 995
           status              : enable
           client-cert-request : inspect
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       smtps:
           ports               : 465
           status              : enable
           client-cert-request : inspect
           unsupported-ssl     : bypass
           allow-invalid-server-cert: disable
           ssl-ca-list         : disable
       caname              : Fortinet_CA_SSLProxy
       certname            : Fortinet_SSLProxy
       ssl-server:
       extended-utm-log    : disable
       NOTE Zusätzlich steht in den SSL/SSH Protocol Options wie schon erwähnt "config ssl-exempt" zur Verfügung.
            Dies bedeutet: Soll innerhalb der "Deep Inspection" Konfiguration eine Seite von der "Deep Inspection"
            Funktion ausgenommen werden kann diese Seite unter "config ssl-exempt" konfiguriert werden:
            
            # config firewall ssl-ssh-profile
            # edit [Wähle das entsprechende Profile]
            # config ssl-exempt
            # edit [Wähle einen Integer zB 1]
            # set type [fortiguard-category | address | address6]
            # set fortiguard-category [sofern set type fortiguard-category]
            # set address [sofern set type address]
            # set address6 [sofern set type address6]
            # end
            
            Fortinet hat ein Dokument Released der diese neue Funktion umschreibt und erklärt wieso diese implementiert
            wurde:
            
            Datei:Preventing-security-certificate-warnings-52.pdf

Nun kann das entsprechende UTM SSL Proxy/Protocol Options in die entsprechende Firewall Policy Rule implementiert werden:

       # config firewall policy
       # edit [Wähle die entsprechende Policy ID]
       # set utm-status enable
       # set deep-inspection-options [Wähle das entsprechende SSL Proxy/Protocol Option Profil]
       # end

Wann muss ich die UTM SSL Proxy/Protocol Options in der Firewall Rule aktivierten und definieren?

Wenn ein UTM SSL Proxy/Protocol Option Profile konfiguriert wird so fragt sich wann diese in einer Firewall Rule zusammen mit einem UTM Feature konfiguriert werden muss. Diese Frage ist FortiOS 5.0 resp. 5.2 abhängig da unter FortiOS 5.2 die "Deep Inspection Options" modifiziert wurden. Nachfolgend eine Uebersicht:

       FortiOS 5.0
       Die SSL Proxy/Protocol Options werden dann definiert wenn:
       
       • SSL Deep Inspection (Client Zertifikat muss auf dem Client/Workstation installiert werden)
       • URL Scan only (Es wird kein Client Zertifikat auf dem Client/Workstation benötigt jedoch "WebFilter Only")
       
       NOTE Betreffend "URL Scan only" Konfiguration siehe nachfolgenden Artikle:
            
            FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
       FortiOS 5.2
       Die SSL Proxy/Protocol Options werden "automatisch" definiert wenn:
       
       • Ein Security Profile selektiert wird!
       
       Die SSL Proxy/Protocol Options müssen "manuell" definiert werden wenn:
       
       • "SSL Deep Inspection" benötigt wird

Grundsätzlich unterscheidet sich FortiOS 5.0 und/oder FortiOS 5.2 in den SSL Proxy/Protocol Options folgendermassen:

       FortiOS 5.0
       • SSL Proxy/Protocol Options Profile, All UTM Features (https-url-scan disabled) 
       • HTPPS URL Scan Only, WebFilter Only (https-url-scan enabled)
       FortiOS 5.2
       • Certificate Inspection ("certificate-inspection" Option in der CLI), Untersucht nur den SSL Handshake
       • Deep Inspection ("deep-inspection" Option in der CLI), Aktiviert Full Deep Inspection für SSL Traffic
       
       NOTE Diese Konfiguration kann für jedes Protokoll zB https, ftps seperate durchgeführt werden zB:
            
            # config firewall ssl-ssh-profile
            # edit [Gebe einen Namen ein für das Profile]
            # config https
            # set status [disable | certificate-inspection | deep-inspection]
            # end
            # config ftps
            # set status [disable | certificate-inspection | deep-inspection]
            # end
            
            Für FortiOS 5.2 existiert eine "vordefiniertes" Profile mit dem Namen "certificate-inspection".
            Dieses Profile ist basierend auf der Funktion "certificate-inspection" und wird als Default
            Profile benutzt im Hintergrund wenn ein UTM Feature benutzt wird. Dies ist auch der Grund
            wieso ein SSL Proxy/Protocol Option Profile nur dann in einer Firewall Rule zusammen mit einem
            UTM Feature definiert werden muss, wenn "Deep Inspection" benützt wird. Die neue Funktion
            "certificate-inspection" ersetzt die unter FortiOS 5.0 Option "https-url-scan"!

Wie aktiviere ich für die SSL Proxy Options auf einer FortiGate das Extended-UTM-Log?

Für die sogenannten "deep-inspection-options" kann auf einer FortiGate das "Extended-UTM-Log" aktiviert werden. Die Konfiguration wird folgendermassen durchgeführt:

       NOTE Unter FortiOS 5.2 gibt es diese Option "extended-utm-log" nicht mehr. Ebenfalls
            wurden die "deep-inspection-options" modifiziert. Weitere Informationen betreffend
            diesen Neuerungen FortiOS 5.2 findet man im nachfolgenden Artikeln:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config firewall deep-inspection-options
       # edit [Name des Profile] 
       # set extended-utm-log [enable | disable] 
       # set ssl-invalid-server-cert-log [enable | disable] 
       # set allow-invalid-server-cert [enable | disable] 
       # end
       
       NOTE Die Option "allow-invalid-server-cert" steht im Zusammenhang mit "extended-utm-log". Dies bedeutet
            wird "allow-invalid-server-cert" aktiviert muss "extended-utm-log" auf enabled stehen! Dies gilt nur für
            FortiOS 5.0 und nicht für FortiOS 5.2 da diese Option unter FortiOS 5.2 nicht existiert.

Wird unter FortiOS 5.0/5.2 betreffend "deep-inspection" für Transparent/Explizit Proxy die TLS 1.2 Verschlüsselung unterstützt?

TLS 1.2 wird grundsätzlich im Zusammenhang mit "deep-inspection" für Explizit/Transparent Proxy auf einer FortiGate ab FortiOS 5.2.1 unterstützt! Für SSL Offloading und andere Proxy Features wird jedoch TLS 1.2 nicht unterstützt. Ab FortiOS 5.2.8 wird TLS 1.2 in folgender Funktion unterstützt:

       • SSL offload (LoadBalancer VIP)

Ab FortiOS 5.4 wird TLS 1.2 in folgenden Funktionen unterstützt:

       • Transparent proxy-based SSL deep-inspection
       • Explicit-proxy-based SSL deep-inspection
       • SSL offload (LoadBalancer VIP)
       • Wan Opt SSL tunnels
       • SIP over SSL/TLS

DLP

Wie schalte ich für einen DLP Sensor auf einer FortiGate das Extended-UTM-Log ein?

Im normal Fall werden "DLP Events" im regulären Log geloggt (Traffic Log). Nun möchte man die Event's seperiert in einem Log loggen, kann dies durch das sogenannte Extended-UTM-Log (Nur für FortiOS 5.0) erreicht werden. Um dieses Extended-UTM-Log zu aktivieren führe folgendes durch:

       NOTE Das Kommando "extended-utm-log" steht für FortiOS 5.2 nicht mehr zur Verfügung.
            Weitere Informationen siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
            FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
       # config dlp sensor
       # edit [Gebe das entsprechende Profile an]
       # set extended-utm-log [enable | disable]
       # set dlp-log [enable | disable]
       # set nac-quar-log [enable | disable]
       # end

Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehen, kann das "UTM Monitoring" wiederum aktiviert werden. Weitere Informationen siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Kann die DLP Funktion im Zusammenhang mit verschlüsselten Verbindungen benutzt werden?

Ja dies ist möglich, sprich in Verbindung mit der DLP Funktion kann "Deep Inspection" benutzt werden mit folgenden Services:

       HTTPS
       FTPS
       
       SMTPS
       POP3S
       IMAPS
       
       NOTE Wenn man einen neuens Filter erstellt in der DLP (Data Leak Prevention) Funktion so kann man
            die entsprechenden Protokolle anwählen jedoch stehen nur die unverschlüsselten Protokolle zur
            Wahl wie zB SMTP. Wenn zB SMTP angewählt ist und es wird "Deep Inspection" im Zusammenhang mit
            DLP benutzt (anhand des SSL Proxy/Protocol Options) so wird automatisch SMTPS benutzt. Das 
            Beispiel für SMTP/SMTPS gilt auch für die anderen Protokoll wie oben aufgeführt. Wie/Wann eine
            "Deep Inspection" konfiguriert wird siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Wie kann ich verhindern das eine bestimmte Grösse von Files übermittelt werden?

Wenn man verhindern will, dass eine bestimmte Grösse von Files runtergeladen/raufgeladen wird zB will man alles verhindern das grösser ist als 20 MB (20480) so muss diese Konfiguration über einen "DLP Sensor" (Data Leak Prevention) durchgeführt werden. Innerhalb eines existierenden "DLP Sensor" wählt man folgendes:

       FortiOS 5.0 / 5.2
       
       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-5.0-5.2:FAQ#Kann_die_DLP_Funktion_im_Zusammenhang_mit_verschl.C3.BCsselten_Verbindungen_benutzt_werden.3F
       FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Wie erstelle ich ein autom. Fingerprinting und benutze dieses in einem DLP Profile?

Ein DLP Fingerprinting wird benutzt um Dokumente durch einen Hash zu schützen. Dies bedeutet: Anhand eines autom. Suchvorganges -und/oder manuellen Uploads- wird einem bestimmten Dokument zB einem Word Dokument ein Hash zugewiesen. Anhand dieses Hash's und des zuständingen DLP Profiles in einer Policy, wird das Dokument wieder erkannt und verhindert, dass dieses übermittelt wird. Um ein Hash automatisch auf einem Fileshare zu erzeugen konfiguriere folgendes:

       NOTE Unter FortiOS 5.2 steht das Fingerprinting für Devices 100D und kleiner nur noch den
            Devices 60C/D sowie 90D zur Verfügung. Auskunft darüber gibt die Software Matrix:
            
            FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       UTM Security Profiles > Data Leak Prevention > Document Fingerprinting
       
       - Danach wähle unter Document Sources > Create New
       
       Datei:Fortinet-637.jpg
       
       NOTE In diesem Beispiel wird ein Windows Share konfiguriert. In diesem Share soll nach einem Mountpoint 
            "export" gesucht werden und darin nach Files "*.txt". Werden diese gefunden sollen diese mit einem
            Sensitive Level "Private" (Hash) versehen werden. Der Scan kann auch per Schedule regelmässig aus-
            geführt werden. Unter Advanced sind einige zusätzliche Einstellungen möglich die je nach Bedarf
            aktiviert oder deaktivert werden können! Unter FortiOS 5.2 gibt es die "seperate" Menüpositon zur 
            Konfiguration des Fingerprintings nicht mehr und muss über CLI durchgeführt werden:
            
            # config dlp doc-source
            # set name [Gebe einen entsprechenden Namen ein für die Doc Source]
            # set server-type [samba]
            # set server [IPv4 Adresse des Servers]
            # set period [none | daily | weekly | monthly]
            # set vdom [mgmt | current]
            # set scan-subdirectories [enable | disable]
            # set remove-deleted [enable | disable]
            # set keep-modified [enable | disable]
            # set username [Gebe den entsprechenden Usernamen an]
            # set password [Gebe das entsprechende Passwort an]
            # set file-path [Setze den entsprechenden File Path]
            # set file-pattern [Setze einen entsprechenden File Pattern]
            # set sensitivity [Critical | Private | Warning]
            # end
            
            Damit den Hash zu speichern muss eine Datenbank zur Verfügung gestellt werden
            sowie ein Storage Device:
            
            # config dlp settings
            # set storage-device [Der zur Verfügung stehende Device zB Internal]
            # set size [Grösse in MB der Datenbank; Standard 16]
            # set db-mode [remove-modified-then-oldest | remove-oldest | stop-adding]
            # set cache-mem-percent [Zur Verfügung stehenden Cache von Memory 1-15; Standard 2]
            # set chunk-size [Setze den Chunksize; Standard 2800]
            # end

Nachdem das Fingerprinting durchgeführt wurde kann dieses in einem DLP Profil hinzugefügt werden! Erstelle ein neues DLP Profile und füge den Fingerprint hinzu:

       UTM Security Profiles > Data Leak Prevention > Sensor > Create New
       
       NOTE Unter FortiOS 5.2 gibt es die seperate Menüposition "Sensor" nicht mehr sondern
            die Menüposition "Data Leak Prevention" stellt die "Sensor" Position direkt dar!
       
       Datei:Fortinet-638.jpg
       - Vergebe einen Namen für das DLP Profile und wähle danach "Create New":
       
       Datei:Fortinet-639.jpg
       Datei:Fortinet-640.jpg
       
       NOTE Achte auf die verschiedenen Einstellungen dh. wie zB "Action" Block sowie die zu 
            ueberwachenden Services (Wähle nur diese die Zweckmässig und Angebracht sind)! 

Das DLP Profile ist nun konfiguriert und kann in einer entsprechenden Policy benutzt werden:

       Policy > Policy > Create New
       
       Datei:Fortinet-641.jpg

Wenn nun versucht wird ein dementsprechendes File des Shares in der konfigurierten Policy zu übermitteln, wird dieses je nach konfigurierter "Action" behandelt dh. in unserem Fall "Block". Diese "Action" ist ersichtlich -sofern das Log im DLP Profile akiviert ist- unter:

       Log & Report > UTM Security Log > Data Leak Prevention
       
       NOTE Diese Art des DLP ist sehr Performance Intensiv und sollte nur dann genutzt werden wenn der 
            Device auch dementsprechende über genügend Performance verfügt! Betreffend Log Konfiguration
            im Zusammenhang mit DLP siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_einen_DLP_Sensor_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F

Wie kann ich verhindern das bestimmte Files wie zB .exe runtergeladen werden?

Wenn man verhindern möchte, dass bestimmte Files zB über einen "Explicit Proxy" runtergeladen werden können so muss diese Konfiguration über DLP anhand eines entsprechenden Filters/Profiles durchgeführt werden. Die gleiche Konfiguration kann benutzt werden um das runterladen der bestimmten Files über einen "Transparent Proxy" zu verhindern. Als Erstes muss ein entsprechender "File Filter" erstellt werden:

       NOTE Diese Konfiguration ist unter FortiOS 5.2 nicht mehr nötig resp. die Menüposition
            "File Filter" steht nicht mehr zur Verfügung. Die entsprechende Konfiguration unter
            FortiOS 5.2 kann direkt innerhalb des Sensor's/Profile durchgeführt werden! Weitere 
            Details entnehme aus dem nachfolgenden Abschnitt für FortiOS 5.2!
       FortiOS 5.0
       
       UTM Profiles > Data Leak Prevention > File Filter
       
       Datei:Fortinet-264.jpg
       
       Datei:Fortinet-265.jpg
       
       Datei:Fortinet-266.jpg
       
       NOTE Es kann zwischen "File Name Pattern" und "File Type" gewählt werden! Der Unterschied liegt darin, dass der "File Name Pattern" 
            ausschliesslich "Namens" basierend ist dh. es wird im Header des Files nicht nachgeschaut ob es sich wirklich zB um ein .exe 
            handelt sondern wie erwähnt nur die angegebene Extension "Namens" basierend angeschaut. Somit wenn ein "File Name Pattern" *.exe 
            konfiguriert ist und man würde einem User so ein File auf dem Internet für das Runterladen bereitstellen, müsste man dieses damit es 
            runtergeladen werden kann einfach vorgehend umbenennen um das Runterladen zu ermöglichen. Möchte man dies verhindert so muss ein 
            "File Type" konfiguriert werden dh. in diesem Filter wird verifiziert -im Application Header des Files- um was es sich hier 
            für ein File handelt. Somit bringt das umbenennen des Files vor dem Runterladen nichts, denn auch durch das Umbenennen bleibt 
            der "Application Header" des Files bestehen und wird somit auch als bestimmter "File Type" erkannt.
       
       Datei:Fortinet-267.jpg
       
       Datei:Fortinet-268.jpg
       
       Datei:Fortinet-269.jpg
       
       Nun erstellen wir einen DLP Sensor und fügen unser File Pattern Filter diesem DLP Sensor hinzu:
       
       UTM Profiles > Data Leak Prevention > Sensor
       
       Datei:Fortinet-270.jpg
       
       Datei:Fortinet-271.jpg
       
       Datei:Fortinet-272.jpg
       
       Datei:Fortinet-273.jpg
       
       NOTE Unter FortiOS 5.0 wurde die Menüführung verändert dh. wenn man auf "Create New" geht steht einem ein Filter Menü zur Verfügung indem vers. 
            Varianten konfiguriert werden können. Ausgehend von dieser hier gezeigten Konfiguration kann der "File Filter" der vorgehend Konfiguriert
            wurde über die Menüpositionen "Files > File Type included in" ausgewählt werden. Welche Protokolle für den Filter kontrolliert werden sollen
            kann über die Position "Examine the following Services" gewählt werden. Unter FortiOS 5.0 wird die Definition der Services zB HTTP über
            folgende Konfiguration gesteuert "UTM Proxy Options"!
       
       Datei:Fortinet-274.jpg
       FortiOS 5.2
       
       Security Profiles > Data Leak Prevention > Create New
       
       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
            sowie wird für folgende Modelle ab FortiOS 5.2.4 per Standard aktiviert:
            
            300D/500D/1000D/1200D/1500D/3700D/3700DX/3810D/5001D            

Der Unterschied dieser zwei Datenbanken für IPS Signaturen liegt in der Grösse dh. regulär ca. 5700 IPS Signaturen und die erweiterte ca. 7700 IPS Signaturen. Folgendes Kommando kann benutzt werden um die Reguläre oder die Erweiterte Datenbank zu defnieren/aktivieren:

       # config ips global
       # set database [extended / regular]
       # end
       
       NOTE Wenn die Database auf "extended" konfiguriert wird sollte event. die Acceleration
            überprüft werden dh. dazu siehe folgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Kann_ich_IPS_Funktion_auf_einer_FortiGate_.C3.BCber_Hardware_beschleunigen.3F

Wie kann ich auf einer FortiGate die Packet Statistike für IPS anzeigen/auflisten?

Wenn man auf einer FortiGate IPS im Einsatz hat und die Statistik der Packet anzeigen/auflisten möchtek kann nachfolgender Befehl benutzt werden um dies durchzuführen:

       # diagnose ips packet status
       
       PACKET STATISTICS:
         total packets    60347021
         tcp packets      48904151
         udp packets      10835395
         icmp packets     607475
         other packets    16256
       
       PACKET ACTION STATISTICS:
         PASS                          3351862         0
         DROP                          87              0
         RESET                         0               0
         RESET_CLIENT                  0               0
         RESET_SERVER                  0               0
         DROP_SESSION                  66              0
         PASS_SESSION                  3585            0
         CLEAR_SESSION                 0               0
         EXEMPT                        0               0

Weitere Optionen resp. Daten für die IPS Engine/Monitor können über folgenden Befehl abgerufen werden:

       # diagnose test application ipsmonitor 
       
       IPS Engine Test Usage:
       
           1: Display IPS engine information
           2: Toggle IPS engine enable/disable status
           3: Display restart log
           4: Clear restart log
           5: Toggle bypass status
           6: Submit attack characteristics now
          10: IPS queue length
          11: Clear IPS queue length
          12: IPS L7 socket statistics
          13: IPS session list
          14: IPS NTurbo statistics
          15: IPSA statistics
          16: Display device identification cache
          17: Clear device identification cache
          96: Toggle IPS engines watchdog timer
          97: Start all IPS engines
          98: Stop all IPS engines
          99: Restart all IPS engines and monitor

Wie kann ich auf einer FortiGate den IPS Prozess/Service stoppen, neu starten oder einen "bypass" aktivieren?

Der IPS Service resp. die Funktion von IPS ist die Resourcenintensivste Funktion auf einer FortiGate. Speziell dann wenn diese Funktion nicht korrekt eingesetzt resp. konfiguriert wird. Wenn es mit dem IPS Service resp. Funktion zu Problemen kommt sollte der IPS Service/Prozess nicht regulär anhand "diagnose sys kill" neu gestartet werden. Wenn der IPS Prozess/Service eine sehr hohe Auslastung zeigt und vermutet wird das der Prozess/Service zB hängen geblieben ist kann versucht werden kurzfristig den "bypass" zu aktivieren dh. kurzfristig die "IPS inspection" zu deaktivieren. Dies kann ebenfalls benutzt werden, wenn durch die hohe Auslastung durch den IPS Prozess/Service, die verursacht wurde durch eine nicht korrekte IPS Konfiguration, eine weitere Konfiguration zur Fehlerkorrektur nicht möglich ist. Dies kann anhand folgendes Befehls durchgeführt werden:

       # diagnose test application  ipsmonitor 5
       bypass:     enable

Durch diesen Befehl wird die IPS Engine angewiesen keine "IPS inspection" mehr durchzuführen dh. der Prozess/Service der IPS Engine wird dadurch nicht gestoppt sondern die "IPS inspection" deaktiviert. Um den "bypass" zu deaktivieren geben wiederum folgender Befehl ein:

       # diagnose test application  ipsmonitor 5
       bypass:     disable

Wenn dennoch aus irgendwelchen Gründen der IPS Service/Prozess neu gestartet werden soll kann folgender Befehl benutzt werden:

       # diagnose test application ipsmonitor 99
       restarting ipsmonitor

Desweiteren steht für diesen Befehl "diagnose test application ipsmonitor" weitere Optionen zur Verfügung:

       # diagnose test application ipsmonitor 
       
       IPS Engine Test Usage:
       
           1: Display IPS engine information
           2: Toggle IPS engine enable/disable status
           3: Display restart log
           4: Clear restart log
           5: Toggle bypass status
           6: Submit attack characteristics now
          10: IPS queue length
          11: Clear IPS queue length
          12: IPS L7 socket statistics
          13: IPS session list
          14: IPS NTurbo statistics
          15: IPSA statistics
          16: Display device identification cache
          17: Clear device identification cache
          96: Toggle IPS engines watchdog timer
          97: Start all IPS engines
          98: Stop all IPS engines
          99: Restart all IPS engines and monitor

Wann sollte das "Packet Logging" für IPS eingeschaltet werden?

Das "Packet Logging" ist nicht zu verwechseln mit dem "Logging" an und für sich dh. "Packet Logging" ähnelt einem "tcpdump" und hat mit dem "Logging" an und für sich nichts zu tun. Diese Funktion sollte mit bedacht eingesetzt werden sowie dass "Packet Logging" sollte nur zu "Development" Zwecken eingeschaltet werden da es enorm Peformance Intensiv (CPU, RAM) ist. Diesie aus dem "Packet Logging" stammenden Informationen können später im zB "Wireshark" anylysiert werden um selber zB zu bestimmten Zwecke Signaturen zu erstellen! Die Position für das "Packet Logging" findet man in einem "IPS Filter" dh.:

       Datei:Fortinet-43.jpg

Kann eine Fortigate betreffend IPS als "Sniffer" eingesetzt werden?

Ja, dies ist möglich. Dazu benötigt man auf einem Switch einen Monitor/Mirror Port sowie die Fortigate muss auf einem bestimmten Port auf den Sniffer Modus gesetzt werden. Um den Sniffer Port zu konfigurieren/aktivieren muss folgender Befehl auf der CLI ausgeführt werden:

       # config system interface
       # edit [Name des Ports zB port3]
       # set ips-sniffer-mode enable
       # end

Wie sollte auf einer Fortigate ein "IPS Profil" aktiviert werden?

Um optimale Performance zu erreichen sollten vers. Profile für IPS (Sensor) erstellt werden dh. schränkt man die Möglichkeiten ein innnerhalb eines IPS Sensors senkt sich die Anzahl der zu überprüfenden Signaturen. Dies bedeutet erstelle Profile für spezielle Zwecke dh. Server und/oder Clients. Nachfolgend ein Beispiel wie so ein Profil erstellt wird:

       NOTE Wenn aus irgendwelchen Gründen die IPS zuviel Performance benötigt speziell im RAM Bereich kann folgender Befehl
            dazu benutzt werden um den Speicher für IPS zu begrenzen:
            
            # config ips global 
            # set algorithm low 
            # end 
            
       INFO Zusätzlich zur benützten IPS Engine kann die Buffer Size durch den Befehl "socket-size" gesetzt werden dh. 
            bei den meisten Devices ist die Standard Einstellung die korrekte und die Anzuwendende. Dies bedeutet diese
            Einstellung ist Device Art Abhängig!
            
            Für die IPS Engine sind grundsätzlich folgende Einstellungen möglich:
            
            engine-pick           Die IPS Engine selber entscheidet welche Methode die Beste ist.
            
            high                  Schnellste Methode jedoch benötigt mehr Memory. Sollte nur eingesetzt
                                  werden für FortiGate's mit mind. 1 GB Memory.
            
            low                   Langsamere Methode jedoch Memory Resource schonender. Dieser Mode sollte
                                  auf FortiGates eingesetzt werden die über 512 MB Memory verfügen oder weniger.
            
            super                 Dieser Mode sollte für FortiGate's gewählt werden die mehr als 4 GB Memory verfügen
       Datei:Fortinet-44.jpg
       Datei:Fortinet-45.jpg
       
       NOTE Ab FortiOS 5.0.4 stehet ein zusätzliche Menüpunkt innerhalb der IPS zur Verfügung dh. wenn man "Filter Based"
            aktiviert kann zwischen "Basic" und "Advanced" umgestellt werden. Es ist zu empfehlen wenn IPS benutzt wird
            "Filter Based > Advanced" zu wählen da einem diese Variante mehr Optionen bietet den Sensor für den bestimmten
            Zweck einzuschränken. Zusätzlich können unter den -durch "Advanced"- eingeblendeten Menüpunkte "Appliaction"
            und "Protocol" unter "Show more..." zusätzliche Positione eingeblendet werden. Dies gibt einem die Möglichkeite
            den Sensor so zu optimieren:
            
            Fortinet-809.jpg

Was bedeutet IPS "fail-open" und wie verhält es sich?

Nun IPS "fail-open" bedeutet, dass wenn ein IPS Profil/Sensor auf einer Policy aktiv ist und der IPS Service nicht mehr korrekt arbeitet das der Traffic/Verkehr komplett für diese Policy geblockt wird. Per Standard ist "fail-open" auf enabled gesetzt sprich wenn IPS nicht mehr korrekt funktioniert wird der Traffic dennoch durchgelassen. Wenn dies geschieht hat dies keine Auswirkungen auf die restlichen Profile wie Antivirus etc. Wenn der IPS Senso in einem High Security Umgebung eingesetzt wird so kann "fail-open" auf disabled gesetzt werden dh. wenn der IPS Service nicht mehr korrekt arbeitet wird sämtlicher Verkehr/Traffic für die betreffende Policy geblockt. Um "fail-open" auf disable zu setzen gebe auf der Console folgendes ein;

       # config ips global
       # set fail-open disable
       # end

Kann ich wenn der Traffic verschlüsselt ist (SSL) IPS aktivieren?

Die FortiOS V4.x war nicht fähig den verschlüsselten Traffic (SSL) aufzubrechen um eine IPS Ueberprüfung für den Traffic durchzuführen! Mit FortiOS 5.x ist dies nun möglich jedoch ist folgendes zu berücksichtigen:

       Verschlüsselter (SSL) Traffic kann für IPS sowie für Application Controll überprüft werden für folgende Protokolle:
       
       HTTPS, FTPS, IMAPS, POP3S sowie SMTPS

Dabei ist zu berücksichtigen das Application Control sowie IPS nur im "Flow-based" Proxy Mode benutzt werden können da für diese zwei Funktionen "Proxy-based" nicht zur Verfügung steht. Werden in einer Firewall Policy "Proxy-based" sowie "Flow-based" Mode konfiguriert, führt die FortiGate für diese Firewall Policy "Proxy-based" durch für alle Profiles die diesen Mode unterstützen. Dies bedeutet: Wird Antivirus im "Flow-based" Mode konfiguriert sowie WebFilter im "Proxy-based" führt die FortiGate für alle Funktionen inkl. Antivirus "Proxy-based" Mode durch. Dies gilt nicht für Application Control sowie IPS da diese zwei Funktionen nur den "Flow-based" Mode unterstützen. Der "Flow-based" Mode steht zusätzlich zum "Proxy-based" Mode für folgende Funktionen zur Verfügung:

       flow-AV, flow-Web Filering, flow-Antispam sowie flow-DLP

Der jeweilige Mode kann in diesen Funktionen im jeweiligen "Security Profile" konfiguriert werden!

Wie erfasse ich für RDP eine IPS Signature um den Zugriff zu schützen?

Nun wenn betreffend RDP auf einen Server zugegriffen werden möchte ist es ratsam diesen Zugriff zu schützen. Predistiniert dazu wäre eine RDP Signatur im IPS Bereich. Jedoch diese existiert so nicht von Hause aus. Soit muss eine manuell erfasste IPS Signatur für RDP konfiguriert werden. Dies kann über folgende Position geschehen:

       UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
       NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
            sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
            dieser Konfiguration siehe folgender Artikel: 
            
            FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:

       NOTE Die folgenden Signaturen sind für Windows (RDP.1), Linux (RDP.2) sowie Mobile (RDP.3).  
       Name:         RDP.1
       
       Signature:    F-SBID( --name "RDP.1"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|E0|"; --distance 5,packet; --within 1,packet; --pattern "mstshash="; --within 50; --pcre "/mstshash=\s*/sm"; --distance -12; --within 50; --rate 3,15; --track src_ip; ) 
       Name:         RDP.2
       
       Signature:    F-SBID( --name "RDP.2"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|03 00|"; --within 2,packet; --pattern "|e0 00 00 00 00|"; --distance 3; --within 20; --rate 3,15; --track src_ip; ) 
       Name:         RDP.3
       
       Signature:    F-SBID( --name "RDP.3"; --protocol tcp; --dst_port 3389; --flow from_client; --seq =,1,relative; --pattern "|84 11 3d 4f 2e 62 28 62 51 5d 6e ee f4 49 c2 7e fe 84 11 e6 61 e0 19 20 c9 e5 d3 39 3d f5 7e 24 46 49 84 11 15 be fa 6b 7d 35 09 44 8a c9 32 e7 1b 6e 65|"; --within 51,packet; --data_size 51; --rate 3,15; --track src_ip; )

Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:

       Datei:IPS-Signature-Syntax-Guide.pdf 

Wie kann ich eine IP ausschliessen innerhalb eines IPS Sensors resp. Profil (Exempt IP)?

Diese Funktion steht erst ab FortiOS 5.0.3 zur Verfügung. Natürlich waren solche Ausnahmen ebenfalls früher möglich über die Policy, jedoch nur indem man eine zusätzliche Rule implementierte für eine bestimmte Source und Destination. Auf dieser zusätzlichen Rule wurde dann der Sensor resp. das Profil nicht aktiviert. Neu ab FortiOS 5.0.3 kann diese Ausnahme einer Source und Destination direkt im Sensor konfiguriert werden. Vorraussetzung dafür ist, dass man spezifizierte Signaturen verwendet (Specify Signatures) und nicht Filter Basierend (Filter Based).

Nehmen wir an wir hätten einen Microsoft Exchange Server im DMZ. Dieser wird von aussen angegangen mit einem Inbound NAT. Bedeutet eine Rule wird implementiert WAN > DMZ. Auf dieser Rule implementiert man einen IPS Sensor der den Microsoft Exchange Server schützen soll vor Angriffen. Nehmen wir weiter an, dass immer der gleiche MX Relay Server Mail's übermittelt zu diesem Microsoft Exchange Server im DMZ. Dieer MX Relay Server steht unter unserer Kontrolle (trusted). In diesem Scenario macht es keinen Sinn den IPS Sensor auf den MX Relay Server anzuwenden. Genau hier können wir eine "Ausnahme" Implementieren. Da der IPS Sensor einer der Performance intensivsten Funktionen auf einer FortiGate ist kann dies die Performane erhöhen und Resourcen sparen da die Verbindung des MX Relay bei Mailübermittlungen nicht mehr durch den IPS Sensor überprüft wird. Die neue Funktion findet man unter dem IPS Sensor sobald "Specify Signature" angewählt sowie eine entsprechende Signature ausgewählt wird:

       Fortinet-786.jpg

Nun kann über "Create New" anhand der Source IP (In unserem Beispiel der MX Relay Server) und der Destination IP (In unserem Beispiel die internal IP des Microsoft Exchange Servers) die Ausnahme konfiguriert werden.

Wie kann ich eine "Brute Force" Attacke betreffend POP3 und/oder SMTP über eine IPS "Custome Signature" verhindern?

Eine "Brute Force" Attacke stellt einen Angriff dar in der "potentielle Lösungen" eine nach der Anderen durchprobiert wird (http://de.wikipedia.org/wiki/Brute-Force-Methode). Für Pop3 und/oder SMTP im Zusammenhang mit "unverschlüsselten" Protokollen dh. nicht POP3S und/oder SMTPS kann ein "potentieller Angreifer" zB eine "dictionary attacke" durchführen dh. er probiert ein Passwort nach dem Anderen durch. Um das zu verhindern kann zB eine "Custome Signature" erstellt werden die das verhindert. Die bessere Variante ist jedoch klar auf ein verschlüsseltes Protokoll zu wechseln. Wenn dennoch so eine manuelle "Custome Signatur" erstellt werden soll führe folgendes durch:

       UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
       NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
            sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
            dieser Konfiguration siehe folgender Artikel: 
            
            FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:

       Name:         POP3.Brute.Force
       
       Signature:    F-SBID( --name "POP3.Brute.Force"; --protocol "tcp"; --service POP3; --flow from_server,reversed; --pattern "-ERR [AUTH] Password supplied"; --rate 10,180; --track src_ip; ) 
       Name:         SMTP.Brute.Force
       
       Signature:    F-SBID( --name "SMTP.Brute.Force"; --pattern "AUTH LOGIN"; --service SMTP; --no_case; --context header; --rate 10,180; --track src_ip;)

In diesem Zusammenhang ist es Wichtig die Position "--rate" zu verstehen da diese Zuständig ist um die Aktion durchzuführen. Dies bedeutet folgendes:

       --rate <matches_int>,<time_int>;
       
       • <matches_int>  Ist die Anzahl (integer) der Uebereinstimmungen innerhalb einer Zeitspanne [time_int] in der die Signature anschlägt (matched)
       • <time_int>     Ist die Zeitspanne (seconds) die definiert wird in der die Signature Uebereinstimmung [matches_int] auftritt.
       
       NOTE Im oberen Beispiel wurde definiert "--rate 10,180". Dies wiederum bedeutet: Wenn ein "innerhalb" (time_int) 180 Sekunden 10 Mal (mateches_int)
            versucht wird zB einzuloggen "AUTH LOGIN" so "matched" die "Custome Signature" und es wird ein Log Eintrag erstellt. Wenn die "Custome Signature"
            Im IPS Profile auf Monitor steht wird ein Log Eintrag erstellt. Ist die "Custome Signature" auf "block" kann durch eine entsprechende "quarantine"
            Konfiguration die entsprechende Source IP (--track src-ip) für eine gewisse Zeit ausgeschlossen resp. blockiert werden!

Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:

       Datei:IPS-Signature-Syntax-Guide.pdf 

Kann ich IPS Funktion auf einer FortiGate über Hardware beschleunigen?

Ja dies ist möglich und zwar bei FortiGate's die über einen CPx oder NPx Prozessor verfügen. Wenn die Beschleunigung über diese Prozessoren aktiviert wird werden die IPS Pattern über diese CPx oder NPx Prozessoren verarbeitet und dadurch beschleunigt. Um festzustellen ob die zur Verfügung stehende FortiGate über diese Funktion resp. über diese CPx und/oder NPx Prozessoren verfügt kann mit folgenden Befehl verifiziert werden ob der "hardware-accel-mode" zur Verfügung steht:

       # config ips global
       # set hardware-accel-mode [ engine-pick | none | CP-only | NP-only | NP+CP ]
       # end
       
       NOTE Diese Option steht ab FortiOS 5.0.3 zur Verfügung! Ab FortiOS 5.0.6 wurde das
            Kommando ersetzt durch das Kommando np-accel-mode" sowie "cp-accel-mode" um mehr
            Granularität zu bieten. Ab FortiOS 5.0.10 wird für die FG-300D und/oder FG-500D dieses
            Kommando auf "none" gesetzt. Dies bedeutet diese zwei Device's unterstützen keinen 
            "np-accel-mode". Wird dieser Mode bei diesen Devices dennoch aktiviert beeinträchtigt
            dies im negativen Sinne die Performance:
            
            # config ips global
            # set np-accel-mode [none | basic]
            # set cp-accel-mode [none | basic | advanced]
            # end
            
            Dabei gilt "np" für Network Prozessor und "cp" Content Prozessor! Per Standard
            steht die Option auf "cn-accel-mode advanced"

Die einzelne Optionen haben folgende Bedeutung:

       • engine-pick         --> Die IPS Engine wählt den besten Mode
       • none                --> Hardware Beschleunigung ist deaktiviert
       • CP-Only             --> Hardware Beschleunigung aktiviert über CPx (Content) Prozessoren
       • NP-only             --> Hardware Beschleunigung aktiviert über NPx (Network) Prozessoren
       • NP+CP               --> Hardware Beschleunigung aktiviert über CPx (Content) und NPx (Network) Prozessoren
       
       NOTE Bei einer FortiGate 60C steht zB diese Option auf "engine-pick"!

Kann ich über eine IPS Signature eine bestimmte WebSite blockieren?

Grundsätzlich ist das möglich anhand einer Custom Signature! Es muss jedoch klar festgestellt werden, dass dies nur unter "nicht normalen" Umständen durchzuführen ist da dies klar nicht die Aufgabe einer IPS Funktion ist. Um eine WebSite zu blockieren steht auf einer FortiGate die WebFilter Funktion zur Verfügung. Weitere Informationen zur WebFilter Konfiguration siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F

Wenn es dennoch keinen anderen Weg gibt -wieso auch immer- kann eine "Custome Signature" manuell erstellt werden und zwar folgenermassen:

       UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
       
       NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
            sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
            dieser Konfiguration siehe folgender Artikel: 
            
            FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Vergebe der Signature einen Namen. Danach gebe unter Signature folgendes ein:

       Name:         RDP.1
       
       Signature:    F-SBID( --name "WEB SITE BLOCK"; --protocol tcp; --service HTTP; --flow from_client; --pattern "mydomain.ch"; --no_case; --context host; )

Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:

       Datei:IPS-Signature-Syntax-Guide.pdf 

Kann ich über eine IPS Signature für DNS Request ein Monitoring einschalten für Domain Namen?

Wenn man intern ein "Public DNS Server" betreibt und man bei Anfragen von extern herausfinden will -ohne den DNS Server zu konsultieren- welche Domains in den DNS Requests abgefragt werden, kann eine IPS Signature erstellt werden. Diese IPS Signture Monitored die DNS Request betreffend "Domain Name" und zeigt in den Logs den DNS Request auf:

      UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
      
      Name:         Domain-Monitor
      
      Signature:    F-SBID( --name Domain-Monitor; --protocol udp; --service dns; --log DNS_QUERY;)
      
      NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
           sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! Weitere Informationen betreffend
           dieser Konfiguration siehe folgender Artikel: 
           
           FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F
           
           Im Dezember 2014 hat Fortinet ein "Cookbook Supplementary" herausgegeben das diese Konfiguration beschreibt:
           
           Datei:Ips-logging-dns-domain-kookups.pdf

Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:

       Datei:IPS-Signature-Syntax-Guide.pdf 

Kann ich über eine IPS Signature Media Downloads für ITunes Monitoren und/oder Blocken?

Dies kann über eine entsprechende selbsterstellte IPS Signature konfiguriert werden dh. nachfolgende selbsterstellt Signaturen ermöglichen es ITunes zu Monitoren und/oder zu Blocken. folgendes ist durchzuführen:

      UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
      
      Name:         iTunes_Monitor
      
      Signature:    F-SBID( --name iTunes_Monitor; --protocol tcp; --flow from_client; --service http; --parsed_type http_get; --pattern "User-Agent: iTunes"; --context header; --no_case; --tag set,Tag.iTunes.client;)
      UTM Security Profiles > Intrusion Protection > IPS Signatures > Create New
      
      Name:         iTunes_Music_Block
      
      Signature:    F-SBID( --name iTunes_Music_Block; --protocol tcp; --flow from_server; --service http; --pattern "Content-Type: audio"; --context header; --no_case; --tag test,Tag.iTunes.client;)
      NOTE Sobald die Signature erfasst wurde kann diese wie bis anhin über ein IPS Profile eingebunden werden
           sowie das entsprechende Profil in der entsprechenden Policy verwendet werden! In diesem Beispiel wird die
           Signature auf iTunes_Monitor auf "montor" gesetzt und iTunes_Block auf "block". Weitere Auskunft wie das
           durchzuführen ist siehe nachfolgenden Artikel:
                       
           FortiGate-5.0-5.2:FAQ#Wie_sollte_auf_einer_Fortigate_ein_.22IPS_Profil.22_aktiviert_werden.3F

Diese Signaturen verhindern "nur" den Media Donwload jedoch nicht den Zugriff auf iTunes selber. In der "Application Control" sethen verschiedenen Signaturen zur Verfügung die Zugriffe auf "iTunes" verhindern jedoch nicht explizit den iTunes Media Download:

      iCloud - Block
      iTunes.Store - Block
      iTunes.Podcast - Block
      iTunes.filesharing - Block
      iTunes_Broadcast - Block
      iTunes.mDNS - Block
      iTunes.iMix - Pass
      iTunes - Pass
      iTunes-Mobile - Pass
      iTunes-Appl.Store. - Pass
      Apple.Support - Pass
      Apple.Ipad - Pass
      Apple.Iphone - Pass

Weitere Informationen wie die IPS Syntax zu benützen ist findet man im IPS Syntax Guide:

       Datei:IPS-Signature-Syntax-Guide.pdf

DDos

Wieso ist die DDos Sensor Menüposition im WebGui nicht mehr ersichtlich nach einem Upgrade?

Wenn man ein Upgrade durchführt 4.3 Patch 7 fällt einem auf, dass die Menüposition im Web Gui betreffend DDoS nicht mehr vorhanden ist. Dieser Menüpunkt steht für kleinere Geräten (FGT-20/40/50/60/80) nicht mehr über Web Gui zur Verfügung. Die Funktion selber steht jedoch nach wievor zur Verfügung und zwar auf der CLI:

       NOTE Die Menüposition steht für kleinere Devices ebenfalls für FortiOS 5.0 / 5.2 
            nicht mehr über Web Gui zur Verfügung!
       FortiOS 4 MR3
       Datei:Fortinet-327.jpg
       Datei:Fortinet-328.jpg
       FortiOS 5.0 / 5.2
       
       NOTE Unter FortiOS 5.0 / 5.2 wurde diese Funktion in der CLI verschoben in "config firewall DoS-policy":
       
       Datei:Fortinet-723.jpg
       Datei:Fortinet-724.jpg
       

Um ein DoS Sensor in der CLI unter FortiOS 5.0 / 5.2 zu konfigurieren siehe nachfolgendes Beispiel:

       # config firewall DoS-policy
       # edit [Definiere einen DoS Policy ID zB "1"]
       # set interface [Setze ein entsprechendes Interface zB "wan1"]
       # set srcaddr [Setze eine entsprechende Source IP Adresse zB "all"]
       # set dstaddr [Setze eine entsprechende Destination IP Adresse zB "all"]
       # set service [Setze einen entsprechenden Port zB "ALL"]
       # config anomaly
       # edit "tcp_syn_flood"
       # set status enable
       # set action block
       # set threshold 2000
       # next
       # edit "tcp_port_scan"
       # set status enable
       # set threshold 1000
       # next
       # edit "tcp_src_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "tcp_dst_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "udp_flood"
       # set status enable
       # set action block
       # set threshold 2000
       # next
       # edit "udp_scan"
       # set status enable
       # set threshold 2000
       # next
       # edit "udp_src_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "udp_dst_session"
       # set status enable
       # set threshold 5000
       # next
       # edit "icmp_flood"
       # set status enable
       # set action block
       # set threshold 250
       # next
       # edit "icmp_sweep"
       # set status enable
       # set threshold 100
       # next
       # edit "icmp_src_session"
       # set status enable
       # set threshold 300
       # next
       # edit "icmp_dst_session"
       # set status enable
       # set threshold 1000
       # next
       # edit "ip_src_session"
       # set threshold 5000
       # next
       # edit "ip_dst_session"
       # set threshold 5000
       # next
       # edit "sctp_flood"
       # set threshold 2000
       # next
       # edit "sctp_scan"
       # set threshold 1000
       # next
       # edit "sctp_src_session"
       # set threshold 5000
       # next
       # edit "sctp_dst_session"
       # set threshold 5000
       # next
       # end
       # next
       # end

Wie wird auf einer Fortigate ein "DoS" Sensor aktiviert/definiert?

In unserem Beispiel erstellen wir einen "DoS Sensor" der und vor "basic flood" schützt! Führe folgendes durch:

        NOTE Wenn die Menüposition betreffend DoS Sensor nicht ersichtlich ist siehe folgender Artikel:
             
             FortiGate-5.0-5.2:FAQ#Wieso_ist_die_DDos_Sensor_Men.C3.BCposition_im_WebGui_nicht_mehr_ersichtlich_nach_einem_Upgrade.3F
        UTM Profiles > Intrusion Protection > DoS Sensor

Editiere den per Standard existierende Sensor "blook_flood" Eintrag:

       Datei:Fortinet-155.jpg

In diesem vordefinierten Sensor sind drei spezifische Anomalien aktiviert dh. "tcp_syn_flood, udp_flood und icmp_flood". Um nun den "icmp_flood" anzupassen setze diesen auf "20" sowie aktiviere das Logging:

       Datei:Fortinet-156.jpg

Damit der "DoS Sensor" auch in Benützung ist, muss dieser in einer entsprechenden "DoS Policy" aktiviert werden. Führe folgendes durch:

       Policy > Policy > DoS Policy
       Datei:Fortinet-157.jpg
       Datei:Fortinet-158.jpg

In unserem Beispiel schützen wir das "internal" Inteface vor diesen Angriffen. Natürlich können Source und Destination je nach Zweck eingeschränkt werden. Um das Ganze zu testen kann innerhalb der Defintion der "Source" auf einem Windows basierenden Client anhand "fping" (http://fping.sourceforge.net) folgendes durchgeführt werden:

       fping [Destination IP] -c -t0 -w0

Das Kommando bewirkt das "fping" ICMP Packete abschickt ohne auf Antwort zu warten. Einige dieser Packete werden durch unseren definierten "icmp_flood" Sensor geblockt da die abgesetzen ICMP Packet die Definition (20 per second) übersteigt. Unter folgender Position können die Log's eingesehen sowie der Vorgang verifiziert werden:

       FortiOS 4 MR3
       
       Log&Report > Log & Archive Access > UTM Log
       FortiOS 5.0 / 5.2
       
       Log & Report > Traffic Log

Weitere Informationen betreffend Log Konfiguration unter FortiOS 5.0 / 5.2 findet man unter folgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Was muss berücksichtigt werden wenn ich meine internen Server/Clients schützen möchte vor DoS Attacken?

In erster Linie muss berücksichtigt werden, dass die DDoS Policy auf einer FortiGate "nicht" abgearbeitet wird innerhalb der Stateful Firewall Inspection/Policy sondern seperat. Dies bedeuet möchte man einen Server im internen Bereich schützen "vor" einer DDoS Attacke darf im Gegensatz zur "Stateful Firewall Inspection/Policy" Konfiguration nicht das VIP (Destination NAT) Objekt benutzt werden inneerhalb der definierten DDoS Policy sondern es muss ein adress Objekt benutzt werden mit das definiert wurde mit der Public IP des internen Servers. In einer Definition einer DDoS Policy würde das folgendes bedeuten:

       # config firewall DoS-policy
       # edit 1
       # set interface "wan1"
       # set srcaddr "all"
       # set dstaddr [Name des Adress Objektes mit der Public IP des internen Servers]
       # set service [Definiation des Service zB "any" oder spezifiziert "SMTP"]
       # config anomaly
       # edit [Name der Anomaly zB "tcp_src_session"]
       # set status enable
       # set action block
       # set quarantine attacker
       # set quarantine-expiry 10
       # set quarantine-log enable
       # set threshold 100
       # next
       # end
       # next
       # end
       
       NOTE Wenn solch eine Konfiguration durchgeführt wird ist es "fundamental" sich zu verinnerlichen wie ein Service funktioniert und wie dieser
            zu schützen ist. Dies bedeutet: Würde man im oberen Beispiel als Public IP des Servers die IP benutzen eine SMTP Servers zB MX Record
            und als "Anomaly" entweder "tcp_src_session" und/oder "tcp_dst_session" sowie einen "threshold" von 100 so wird dieser SMTP Server 
            betreffend möglichen Sessions auf dem Service "SMTP" limitiert. Bedeutet wiederum, dass dieser vor "Denial of Service" Attacken im
            Service SMTP geschützt würde.

Ein Schutz im entgegengesetzer Richtung ist natürlich ebenfalls möglich dh. wenn man zB ein Client Subnet Bereich schützen müchte damit event. "worm" Attacken die FortiGate nicht beeinträchtigen kann folgendes implementiert werden:

       # config firewall DoS-policy
       # edit 1
       # set interface "wan1"
       # set srcaddr [Definiation des Subnet der Client's anhand eines Objektes; benutze nicht "all"]
       # set dstaddr [Name des Adress Objektes mit der Public IP des internen Servers]
       # set service [Definition "any"]
       # config anomaly
       # edit "tcp_syn_flood"
       # set status enable
       # set action block
       # set threshold 2000
       # next
       # edit "tcp_dst_session"
       # set status enable
       # set action block
       # set threshold 5000
       # next
       # edit "ip_dst_session"
       # set status enable
       # set action block
       # set threshold 5000
       # next
       # edit "tcp_port_scan"
       # set status enable
       # set action block
       # set threshold 1000
       # next
       # end
       # next
       # end
       
       NOTE Die Anomaly Definition in diesem Beispiel verhindert, dass aus dem Client Subnet und/oder ein spezifizierter Client diese
            Vorgänge durchführt und somit die FortiGate und dessen Umgebung beeinträchtigt. Die "Standard Werte" sind als Beispiele 
            anzusehen und müssen je nach Umgebung angepasst werden jedoch können diese als "Start" benützt werden! Auch in diesem Fall sind
            die Auswirkungen zu berücksichtigen dh. ein Software wie zB Skype sucht sich anhand solcher Funktionen den Ausgang. Dies bedeutet:
            Wenn im im internen Bereich Skype eingesetzt wird und zB "tcp_src_*" definiert werden mit einem zu kleinen "threshold" kann diese
            Definition es Skype verunmöglichen - da durch die DDoS Policy dieser Vorgang geblockt wird - um mit dem Internet zu komunizieren.

Wie kann ich für eine "DDoS Policy" verschiedenen Informationen anzeigen lassen?

Wenn eine "DDoS Policy" konfiguriert wird, kann nachträglich mit folgenden Kommando vers. Informationen dieser DDoS Policy augezeigt werden:

       # diagnose ips anomaly [clear | config | filter | list | status]
       
       NOTE Die aufgeführten Optionen haben folgende Bedeutung:
       
       clear            Clear anomaly meters
       config           Liste die DOS-sensoren auf
       filter           Liste den "anomaly" Filter auf
       list             Liste die "anomaly" meters auf
       status           Liste den "anomaly" status auf

Nachfolgende einige Beispiele:

       # diagnose ips anomaly config
       DoS sensors in kernel vd 0:
       DoS id 1 proxy 0
         0 tcp_syn_flood status 1 log 1 nac 0 action 7 threshold 2000
         1 tcp_port_scan status 1 log 1 nac 0 action 0 threshold 1000
         2 tcp_src_session status 1 log 1 nac 0 action 0 threshold 5000
         3 tcp_dst_session status 1 log 1 nac 0 action 0 threshold 5000
         4 udp_flood status 1 log 1 nac 0 action 7 threshold 2000
         5 udp_scan status 1 log 1 nac 0 action 0 threshold 2000
         6 udp_src_session status 1 log 1 nac 0 action 0 threshold 5000
         7 udp_dst_session status 1 log 1 nac 0 action 0 threshold 5000
         8 icmp_flood status 1 log 1 nac 0 action 7 threshold 250
         9 icmp_sweep status 1 log 1 nac 0 action 0 threshold 100
         10 icmp_src_session status 1 log 1 nac 0 action 0 threshold 300
         11 icmp_dst_session status 1 log 1 nac 0 action 0 threshold 1000
         12 ip_src_session status 0 log 0 nac 0 action 0 threshold 5000
         13 ip_dst_session status 0 log 0 nac 0 action 0 threshold 5000
         14 sctp_flood status 0 log 0 nac 0 action 0 threshold 2000
         15 sctp_scan status 0 log 0 nac 0 action 0 threshold 1000
         16 sctp_src_session status 0 log 0 nac 0 action 0 threshold 5000
         17 sctp_dst_session status 0 log 0 nac 0 action 0 threshold 5000
       # diagnose ips anomaly status
       meter budget: 100000
       meter used: 8/8
       meter depth: 2
       # diagnose ips anomaly list
       list nids meter:
       id=udp_dst_session    ip=198.41.0.4 dos_id=1 exp=5998 pps=0 freq=0
       id=udp_flood          ip=198.41.0.4 dos_id=1 exp=998 pps=13 freq=13
       id=udp_src_session    ip=193.193.135.65 dos_id=1 exp=5998 pps=0 freq=0
       id=udp_scan           ip=193.193.135.65 dos_id=1 exp=998 pps=14 freq=14
       id=udp_flood          ip=193.193.135.66 dos_id=1 exp=998 pps=0 freq=3
       id=udp_dst_session    ip=192.228.79.201 dos_id=1 exp=5898 pps=0 freq=0
       id=udp_flood          ip=192.228.79.201 dos_id=1 exp=898 pps=0 freq=1
       id=udp_flood          ip=255.255.255.255 dos_id=1 exp=35 pps=0 freq=0
       
       NOTE Diese Liste zeigt nicht zwingen IP's resp. Sourcen von "Attacken" sondern Source IP's für die eine DDoS Policy
            matched. Die Position "exp=" gibt ein Wert an in Sekunden nachdem der Eintrag entfernt wird sofern die Source
            IP nicht mehr für eine DDoS Policy matched. Die Position "pps=" gibt an wieviele "Packet Pro Sekunde" von dieser
            Source IP gesendet wurden/werden.

Wenn die Liste für "diagnose ips anomaly" sehr lang ist kann anhand der Option "filter" ein entsprechender Filter gesetzt werden. Wenn nachträglich "diagnose ips anomaly list" ausgeführt wird so wird der gesetzte Filter benutzt:

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

Antivirus

Wo konfiguriere ich die Updates der Antivirus Pattern und was ist per Standard konfiguriert?

Die Antivirus Pattern (Database) einer FortiGate dh. Zeit und Intervall können über das Web Mgmt. Interface über folgende Position konfiguriert werden:

       System > Config > FortiGuard > AV & IPS Download Options

Per Standard gilt für FortiOS 5.0 die Einstellungen für ein "daily" Update dh. einmal pro Tag. Ab FortiOS 5.2.4 wurde diese Standard Einstellungen geändert auf alle "2 hours". In einem "normalen" Umfeld empfehlen wir ein Update Interval von 6 Stunden. Dies wird auf der Kommandozeile folgendermassen konfiguriert:

       # config system autoupdate schedule
       # set status enable 
       # set frequency every 
       # set time 06:00
       # end

Desweiteen empfehlen wir unter normalen Umständen die "push" Updates zu deaktivieren. Dies bedeutet: Auch wenn der Zeitintervall einer FortiGate auf alle "6 Stunden" steht und "push" aktiviert ist, benachrichtig FortiGuard bei einem neuen Update den FortiGate Device, dass neue Informationen resp. Updates vorhanden sind. Durch diese Benachrichtigung, bei aktivierten "push", wird der FortiGate Device angewiesen die neuen Informationena aus FortiGuard runterzuladen und so die Antivirus DB resp. Pattern Files auf den neuste Stand zu bringen. Es muss dabei berücksichtigt werden das bei einem Update die Antivirus Engine neu gestartet werden muss dh. kurzfristig entsteht durch das Update der Antivirus DB resp. Patterns eine hohe Auslastung auf dem Device die dadurch entsteht da die Antivirus Engine neu gestartet werden muss um die neuen Information der Antivirus DB einzulesen. Um "push" Updates zu deaktivieren kann folgendes auf der Kommandozeile ausgeführt werden:

       # config system autoupdate push-update 
       # set status disable
       # end

Wie setze/blocke ich die File Limite (maximum file size) für den Antivirus?

Wenn man eine Limite setzen möchte (empfehlenswert) betreffend "maximum file size" im Antivirus Bereich so muss dies über die Console definiert werden. Möchte man zB eine Limite setzen von 15 MB (unkomprimiert) so würde der Befehl folgendermassen lauten:

       ACHTUNG Die Grösse resp. die Limite die angegeben wird für die Files im Zusammenhang mit der Antivirus Funktion steht 
               direkt im Zusammenhang mit der Performance! Dies bedeutet wenn diese zu Gross gesetzt wird zB über 100 MB kann
               dies enorme Performance Einbussen nachsich ziehen! Wieso die Grösse im 10 - 15 MB Bereich liegen sollte zeigt
               nachfolgendes Dokument auf. Dieses gibt Auskunft in welchen File Grössen sich die meisten Anitmalware befinden:
               
               Datei:MalwareFileSize.pdf
       NOTE Unter FortiOS 5.2 existiert der Befehl "antivirus service" nicht mehr dh. alle Optionen wurden in die Protocol 
            Options verschoben resp. "firewall profile-protocol-options". Dies bedeutet: Unter FortiOS 5.2 muss die maximum
            File Size für Antivirus in den Protocol Options für die einzelnen Services konfiguriert werden. Dazu stehen die
            folgenden Optionen innerhalb der Protocol Options zur Verfügung:
            
            # config firewall profile-protocol-options
            # edit [Name des entsprechenden Profiles]
            # config [http | ftp | imap | mapi | pop3 | smtp | nntp ]
            # set uncompressed-oversize-limit 10    
            # set uncompressed-nest-limit 12
            # set block-page-status-code [Setzt den Return Code für HTTP; Standard 200]  
            # set scan-bzip2 [enable | disable]
            # end
            # end
            
            Weitere Informationen zu den unter FortiOS 5.2 "firewall profile-protocol-options" siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config antivirus service [ftp | ftps | http | https | im | imap | imaps | nntp | pop3 | pop3s | smtp | smtps]
       # set uncompsizelimit [Maximum File unkomprimiert für Antivirus Scanning; Standard 10]
       # set uncompnestlimit [Setzt die max. Tiefe des Achrives 1 - 100; Standard 12]
       # set block-page-status-code [Setzt den Return Code für HTTP; Standard 200]
       # scan-bzip2 [enable | disable]
       # end
       
       NOTE Die Option "uncompnestlimit" gilt für folgende Format:
            
            arj, bzip2, cab, gzip, lha, lzh, msc, rar, tar, zip (bzip2 Support ist per Standard deaktiviert)
            
            Wenn man den Befehl "uncompsizelimit" in Zusammenhang mit dem Wert "0" absetzt gilt dies 
            als "unlimited maxmimum file size". Dies ist nicht empfehlenswert dh. man sollte immer
            ein Maximum definieren! Das Maximum kann von Modell zu Modell varieren dh. um die gesetzte Grösse
            zu ermitteln benütze folgendne Befehl (Output Beispiel 60C):
            
            # config antivirus service http
            # set uncompsizelimit ?
            <value>   max unompressed size to scan (1-44MB or use 0 for unlimited)
            # end

Wird Antivirus im Zusammenhang mit verschlüsselten Protokollen benutzt wie https, imaps etc. muss "Deep Inspection" benutzt werden. Was dabei zu beachten ist siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Nun die Limite betreffend "Antivirus" ist zwar gesetzt jedoch ist folgendes zu berücksichtigen betreffend File Grösse:

       Die Angaben von "uncompsizelimit" gelten als max. Grösse für das Antivirus Scanning. Wird diese Grösse Ueberschritten
       erscheint im entsprechenden Log der Hinweis "oversize". Das File wird jedoch nicht "geblockt/gesperrt" sondern wird
       ohne Antivirus Scanning durchgelassen. Möchte man dies verhindern kann ein "oversize block" konfigurieren und zwar
       folgendermassen
       
       Policy > Policy > Protocol/Proxy Options
       
       Wähle die Position Oversized File/Email und den entsprechenden Wert:
       
       Datei:Fortinet-245.jpg
       
       NOTE Wenn die Konfiguration über die Kommandozeile durchgeführt werden soll muss folgendes durchgeführt werden:
            
            # config firewall profile-protocol-options
            # edit [Name des entsprechenden Profiles]
            # config [http | ftp | impa | mapi | pop3 | smtp | nntp]
            # set options [oversize | clientcomfort | servercomfort | no-content-summary | chunkedbypass]
            # set oversize-limit [Max. Grösse für Antivirus Scanning]
            # end
            # end
            
            Wenn die "oversize-limit" gesetzt wird so stellt dies die maximale Grösse dar für Antivirus Scanning. Wird
            unter "set opitons" NICHT "oversize" gesetzt wird das File NICHT geblockt! Somit möchte man zB für "http" 
            eine max. Antivirus Scanning Grösse von 10MB konfigurieren und alles was Grösser ist als 10MB blocken, 
            würde die vollständige Konfiguration folgendermassen aussehen: 
            
            # config antivirus service http
            # set uncompsizelimit 10
            # set uncompnestlimit 12
            # set block-page-status-code 200
            # scan-bzip2 disable
            # end
            
            # config firewall profile-protocol-options
            # edit [Name des entsprechenden Profiles]
            # config http
            # set options oversize no-content-summary
            # set oversize-limit 10
            # end
            # end

Diese Konfiguration ersetzt grunsätzlich nicht "das Maximum eines Files das über die FortiGate runtergeladen werden kann" sondern es steuern einzig und alleine ob ein File geblockt wird, wenn es die "Maximale Grösse von Antivirus Scan übersteigt". Möchte man eine Konfiguratin durchführen für "max. File Grösse betreffend Download/Upload" siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_verhindern_das_eine_bestimmte_Gr.C3.B6sse_von_Files_.C3.BCbermittelt_werden.3F

Kann ich die Antivirus Engine/Database manuell auf den neusten Stand bringen?

Was manuell auf den neusten Stand gebracht werden kann ist das reguläre "Antivirus Definiton File" (ETDB) der FortiGate (enthält ebenfalls Update der Engine). Im Zusammenhang mit dem FortiClient (Premium) kann dies anhand des VCM Files durchgeführt werden. Dies bedeutet ein VCM File ist das "Antivirus Definition File" das benötigt wird damit dem FortiClient (Premium/Endpoint Security) seine Antivirus Definition Files bekommt. Diese Definiton Files können auf der Fortigate dem FortiClient (Premium/Endpoint Security) zur Verfügung gestellt werden. Das Definition File findet man unter folgender URL:

       https://support.fortinet.com/Download/AvNidsDownload.aspx
       
       NOTE Damit man die Files runterladen kann muss man sich mit seinem Support Account zuerst anmelden.
            Danach muss der Verifizierungscode auf der Seite mit dem "confirm" Button bestätigt werden.
            Danach können die vers. Files wie zB VCM runtergeladen werden. Für einen Fortinet Device benötigt
            man das "ETDB" File.

Sobald das Definition File runtergeladen wurde kann dies über folgende Menüposition eingespielt werden:

       System > Config > FortiGuard > AV Definition / VCM Plugins / IPS Definition > ....via Mnaual Update ) [Update]

Was ist der Hauptunterschied in der Antivirus Funktion zwischen FortiOS 5.0 und 5.2?

Unter FortiOS 5.0.x wurde die Antivirus Funktion per Standard im "proxy-based" Modus verwendet (Default Profile). Der Grund war die Performance sowie die Antivirus Datenbank. Sprich unter FortiOS 5.0 konnte im "flow-based" Mode keine "extended" Antivirus Datenbank aus Performance Gründen genutzt werden. Dies bedeutet auch: Unter FortiOS 5.0.x waren im Hintergrund für "proxy-based" und "flow-based* zwei unterschiedliche "Engine's" im Einsatz.Unter FortiOS 5.2 wurde die Performance betreffend "flow-based" Antivirus massiv verbessert sowie viele der Features die unter "proxy-based" zur Verfügung stehen, können nun auch im "flow-based" benutzt werden. Der Grund dafür ist einfach: Unter FortiOS 5.2.x gibt es "nicht" mehr zwei Engines dh. für "proxy-based" und "flow-based" sondern die Antivirus Engine unter 5.2.x benützt die gleiche Engine und diese unterstützt "proxy-based" und/oder "flow-based". Unter FortiOS 5.0.x war es so, dass Archive nicht entpackt werden konnten und somit gescannt werden konnte da unter FortiOS 5.0 "flow-based" (seperate Antivirus Engine in FortiOS 5.0.x) das "ende" des Files nicht erkannt hat. Dies wurde unter FortiOS 5.2.x geändert und "flow-based" erkennt nun das "ende" eines Files und kann somit dieses -zB als Archive- entpacken und Scannen da für "proxy-based" und/oder "flow-based" die "gleiche" Antivirus Engine benutzt wird. Zusätzlich zu den genannten Neuerungen kann nun unter FortiOS 5.2.x und "flow-based" ebenfalls mit der "extended" Antivirus Datenbank benutzt werden, was unter FortiOS 5.0.x nicht möglich war (Performance Gründe). Aus diesen verschiedenen Verbesserungen sind die per Standard existierenden Profile's unter FortiOS 5.2 "flow-based" und nicht mehr "proxy-based". Neu unter FortiOS 5.2.x kann "flow-based" im Sniffer Mode benutzt werden.

       NOTE Weitere wichtige Informationen betreffend unterstützter Formate sowie Zusatzinformationen siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Welche_.22compressed.22_Formate_werden_f.C3.BCr_die_Antivirus_Engine_auf_einer_FortiGate_unterst.C3.BCtzt.3F

Welche "compressed" Formate werden für die Antivirus Engine auf einer FortiGate unterstützt?

Wenn es um die "Antivirus Engine" geht für eine FortiGate stellt sich zuerst die Frage "Welche" Version eingesetzt wird. Der Grund siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F

Nachfolgendes Dokument "official released" von Fortinet zeigt welche "compressed" Formate in der Antivirus Engine unterstützt werden und liefert "Wichtig" Zusatzinformationen:

       Datei:Fortios-scanning-of-archive-compressed-files.pdf

Nachfolgend ein Kurzüberblick über die unterstützten Formate (Auszug aus dem Dokument):

       Archive / Compression Formats
       • ZIP
       • ZIPX (BZIP2, INFLATE64, LZMA, LZMA2)
       • JAR
       • RAR
       • 7Z
       • BZIP2
       • CAB
       • TAR
       • GZIP
       • ARJ
       • LZH
       • MSC (Microsoft Compress)
       • SIS (Symbian Installer Package)
       • SISX (Symbian Installer Package for 9.x)
       • SWF
       • NSIS (Nullsoft Installer Package)
       • E32Image (Symbian 9.x, compressed with custom LZW algorithm)
       • XZ (starting with AV engine v4.3)
       • CPIO (starting with AV engine v4.3)
       • AutoIt (starting with AV engine 5.0)
       • TNEF ( starting with AV engine 5.1)
       
       Self Extracting Formats
       • SFX ZIP
       • SFX RAR
       • SFX LZH
       • SFX ARJ
       • SFX CAB
       • SFX 7Z
       
       Static Packers
       • UPX
       • ASPACK
       • PETITE
       • FSG
       
       Generic/Custom Packers
       • UPACK
       • Mew
       • PECompact
       • ASProtect
       • PecBundle
       • PEncrypt
       • ACProtect
       
       Document Formats
       • PDF
       • MS OFFICE
       • RTF
       • WORDML
       • MIME

Wie kann ich die "Extreme Virus Database" für die Antivirus Funktion aktivieren?

Nun die "Standard Datenbank" (normal) einer FortiGate für die Antivirus Funktion enthält Virendefinitions die "comment" sind dh. alte "legacy" Virendefinitionen sind nicht mehr enthalten. Diese "legacy" Virendefinitionen stellen im normal Fall keine Gefahr mehr da denn diese nützen Lücken und Security Vulnaribility aus für "alte" Betriebssystem und zB Browser. Dies bedeutet: Um die Grösse der Virendefinitionen-Datenbank klein zu halten werden sollte "legacy" Definitionen von der Datenbank entfernt da die Gefahr einer Infizierung minimal ist. Um in einem Umfeld mit hohen Ansprüchen dennoch die vollständige Datenbank (inkl. "legacy") zu benützen aktiviere diese vollständige Datenbank auf der CLI folgendermassen:

       # config antivirus settings
       # set default-db extrem
       # end
       
       NOTE Diese Funktion sollten nur dann genützt werden wenn die entsprechenden Resourcen auf
            einer FortiGate auch vorhanden sind! Es stehen grundsätzlich -ausser auf kleineren Geräten-
            folgende Optionen zur Verfügung:
            
            [extended | extreme | normal]
            
            Wenn die Antivirus Funktion unter FortiOS 5.0 im "flow-based" Mode betrieben wird, ist es 
            aus "Performance" Gründen nicht möglich die "extreme" Datenbank zu aktivieren. Da die Antivrus
            Funktion unter FortiOS 5.2 massive verbessert wurd ist dies nun möglich. Weitere Informationen
            finden man im folgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F

Nachdem die Konfiguration durchgeführt wurde sollte ein Update ausgeführt werden damit die vollständige Datenbank geladen wird. Dafür führe folgendes durch:

        # execute update-now

Nun sollte nach einiger Zeit die Datenbank vollständig auf den neusten Stand sein. Kontrolliere nach einiger Zeit das Datum des letzten Updates um dies zu verifizieren.

Wie kann ich die "grayware" Erkennung für Antivirus aktivieren?

"Grayware" ist die Funktion innerhalb der Antivirus Funktion die "adware" sowie zB "dialer" erkennen kann. Um die "Grayware" Erkennung einzuschalten führe auf der Console folgendes durch:

       # config antivirus settings
       # set grayware [enable oder disable]
       # end

Wie kann ich die Antivirus Database in den gewünschten Modus (extended, extreme, normal) setzen?

Die Antivirus Funktion mit Ihren Database Definition kann in 3 vers. Modi gesetzt werden. Diese wären:

      extended   — Beinhaltet "Wild Virus" sowie eine Umfanggreiche Definition der "Zoo Virus". 
                   "Zoo-Viruses" sind in den normalen Studien nicht mehr aufgeführt da sehr selten. 
                   Dies bedeutet diese Art zu wählen macht nur Sinn in einer "Security" Umgebung!
      extreme    — Beinhaltet "Wild Virus" sowie der "Zoo Virus". "Zoo-Viruses" sind in den normalen
                   Studien nicht mehr aufgeführt da sehr selten. Dies bedeutet diese Art zu wählen 
                   macht nur Sinn in einer "High Security" Umgebung! Der Unterschied zum "extended" 
                   Modus ist, dass in der "extrem" ALLE "Zoo Virus" enthalten sind.
      normal     — Beinhaltet die "Wild Virus" sowie die "üblichen Virus". Für eine "normale" Absicherung
                   resp. Abdeckung gegen Virus sollte diese Art benutzt werden.

Um den entsprechenden Modus zu setzen benütze:

       # config antivirus settings
       # set default-db [extended | extreme | normal]
       # end
       
       NOTE Unter FortiOS 5.2 wurden betreffend der Antivirus Funktion massive Verbesserungen
            durchgeführt. Weitere Informationen siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F

Was ist "flow-based" Scanning und welche Vor- und Nachteile sind in diesem Zusammenhang zu berücksichtigen?

"Flow-based" Scanning steht im Zusammenhang mit Antivirus, Web Filtering und DLP! Das "proxy" Scanning ist zwar schneller jedoch das "flow-based" Scanning ist Resourcenschonender. Beim "proxy-based" Scanning wird das zu überprüfende File auf dem Proxy Server zwischengespeichert (caching) um das File, wenn es als Ganzes gecached ist, zu überprüfen. Um diese Art dh. "proxy-based" durchzuführen -und weil die Files zuerst als Ganzes gecached werden müssen - wird mehr Memory alloziert dh. Resourcenintensiver. Beim "flow-based" Scanning wird das File als "flow" geprüft. Wie gesagt es wird nicht nicht das ganze File im Gesamten überprüft sonder ein Teil dh. eben nur ein "flow". Dadurch entstehen gewissen Nachteile wie zB ein ZIP File muss zuerst als Gesamtes zur Verfügung stehen (cached) um es zu entpacken und den Inhalt zu überprüfen. Bei einer "flow-based" Konfiguration ist dies nicht möglich da das File nie als Gesamtes zur Verfügung steht. "Flow-based" ist zwar Resourcenschonender jedoch muss folgendes berücksichtigt werden: Wenn Antivirus und DLP als "flow-based" konfiguriert sind jedoch Web Filtering nicht so ist diese Konstellation der Konfiguration NICHT Resourcenschonend da durch das Web Filtering Memory alloziert wird. Dies scheint im ersten Augenblick ein Nachteil zu sein jedoch ist dies nur die halbe Wahrheit denn wenn die Fortigate durch Memory Belastung oder Session Limits ausgelastet ist kann durch die "flow-based" Konfiguration ein Vorteil entstehen um den Device zu entlasten und um zu verhindern, dass eine Fortigate in den "conserve mode" schaltet (stoppen aller "proxy-based" basierenden Scans). Dieser "conserve mode" wird solange aufrecht gehalten bis wieder die nötigen Resourcen zur Verfügung stehen. Mit einer Kombination aus "proxy-based" Basierender Konfigurtion und "flow-based" kann diesem Umstand entgegengetreten werden. Die "flow-based" Konfiguration wird folgendermassen konfiguriert:

      NOTE Unter FortiOS 5.2 wurden betreffend der Antivirus Funktion massive Verbesserungen durchgeführt. Dies bedeutet die
           oben erwähnten Umstände stimmen für FortiOS 5.2 nicht mehr für die Antivirus Funktion im "flow-based" Mode. Dies 
           bedeutet: Es gibt praktisch keine Einschränkungen mehr. Weitere Informationen siehe nachfolgenden Artikel:
           
           FortiGate-5.0-5.2:FAQ#Was_ist_der_Hauptunterschied_in_der_Antivirus_Funktion_zwischen_FortiOS_5.0_und_5.2.3F
         Aktivieren von "flow-based" Antivirus Scanning
         
         UTM Profiles > AntiVirus > Virus Database
         
         --> Selektiere "Flow-based Virus Database"
         Aktivieren von flow-based Web Filtering
         
         UTM Profiles > Web Filter > [Wähle das entsprechende Profil]
         
         --> Selektiere unter "Inspection Mode" Flow-based
         
         ACHTUNG "flow-based" Scanning unterstützt KEIN "Web Content Filtering". Wenn der "Inspection Mode"
                 auf "flow-based" gesetzt wird so führt die Fortigate für "Content Filtering" proxy Scanning
                 durch und für Web Filtering "flow-based"!
         Aktivieren von "flow-based" DLP
         
         UTM Profiles > Data Leak Prevention > [Wähle das entsprechende Profil]
         
         --> Selektiere unter "Inspection Mode" Flow-based Detection
         
         ACHTUNG Wird unter DLP "Flow-based Detection" aktiviert so gibt es unter diesem Modus KEINE
                 "File Grössen Limitierung"!

Desweiteren ist zu berücksichtigen wenn in einer Firewall Policy Rule unter FortiOS 5.2 der Proxy Mode gemischt wird dh. "flow-based" und "proxy-based" und was in so einer Situation gilt. Weitere Informationen dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Welche_.22Security.22_Funktionen_unterst.C3.BCtzt_eine_FortiGate_im_.22flow-based.22_und.2Foder_.22proxy-based.22_Mode.3F

Kennt die Antivirus Funktion einer FortiGate die "Heuristic" und wie kann ich diese aktivieren?

Die Antivirus Funktion auf einer FortiGate kennt die sogenannt "Heuristic". Diese kann aktiviert werden ist jedoch per Standard deaktiviert. Um die "Heuristic" Funktion zu aktivieren benütze folgenden Befehl in der CLI:

       # config antivirus heuristic
       # set mode [ pass | block | disable]
       # end
       
       NOTE Die Values "pass" sowie "block" bedeuten folgendes:
            
            pass  - Enable heuristics but detected files are passed
            block - Enable heuristics and detected files are blocked

Was bedeutet unter FortiOS 5.2 der Konfigurationspunkt "emulator" in einem Service für ein Antivirus Profile?

Im Antivirus Profile für die verschiedenen Service wie zB http, smtp, pop3 usw. existiert eine Option "emulator". Diese Option hat nur Auswirkungen wenn ein Antivirus Profile im Proxy Mode benutzt wird dh. diese Option ist nicht unterstützt für Flow Mode:

       # config antivirus heuristic
       # config [Gebe den entsprechenden Service an zB http | ftp | imap | pop3 | smtp | mapi | nttp]
       # set emulator [enable | disable]
       # end
       # end

Diese Option emuliert den Scan basierend auf Win32 und soll dadurch den Durchsatz erhöhen und wird speziell für "malware dedection" benutzt. Es kann jedoch zu Problemen kommen wenn ein File durch die Antivirus Funktion resp. Scan für Malware untersucht wird und in der AV Database keine entsprechende Definition enthalten ist. Dadurch bindet der Scan Prozess überdurschnittlich viele Resourcen und zeigt in machen Fällen eine vorübergehende sehr hohe CPU Auslastung. Ebenso kann es vorkommen das die Session für den Scan nicht korrekt beendet wird (crash). Wenn dies geschieht, markiert die Funktion "emulator" das File mit dem "suspicious flag". Ein Hinweid darauf geben die Informationen für "Suspicious Files" die im Widget unter "Advance Threat Protection Statistics" aufgeführt sind da diese Win32 Emulation Scan enthalten:

       Dashboard > Status > [Wähle Widget] > [Aktiviere "Advance Threat Protection Statistics"]
       
       Fortinet-2155.jpg

Werden somit zwischenzeitliche "crash" festgestellt oder hohe CPU Last sollte diese Option vorübergehend deaktiviert werden um zu verifizieren ob diese zwischenzeitliche hohe Resourcenbindung für diese Option "emulator" benutzt wird.

Wie schalte ich für Antivirus auf einer FortiGate das Extended-UTM-Log ein?

Im normal Fall werden Antivirus Events im regulären Log geloggt (Traffic Log). Nun möchte man die Event's seperiert in einem Log loggen, kann dies durch das sogenannte "Extended-UTM-Log" (Nur für FortiOS 5.0) erreicht werden. Um dieses "Extended-UTM-Log" zu aktivieren führe folgendes durch:

       # config antivirus profile
       # edit [Gebe das entsprechende Profile an]
       # set extended-utm-log [enable | disable]
       # set av-block-log [enable | disable]
       # set av-virus-log [enable | disable]
       # end
       
       NOTE Durch "av-virus-log" wird jeder Scan Vorgang betreffend Antivirus für ein File das gescannt werden
            soll geloggt. Durch "av-block-log" wird ein Log Eintrag erstellt wenn ein Virus Scann Positiv 
            abgeschlossen wurde! Die beiden Befehle "av-block-log" sowie "av-virus-log" stehen unter FortiOS 4.3.x
            sowie unter FortiOS 5.0 / 5.2 zur Verfügung jedoch das "Extended-UTM-Log" steht nur unter FortiOS 5 zur
            Verfügung! Weitere Informationen betreffend "Extended-UTM-Log" im Zusammenhang mit FortiOS 5.2 siehe 
            nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F

Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehn kann unter folgenden Punkt das "UTM Monitoring" aktiviert werden:

       System > Admin > Settings > UTM Monitors

Wenn dieser Punkt aktiviert wird erscheint der entsprechende Menüpunkt unter:

       UTM Security Profiles > Monitor

Diese Monitore können nur mit Daten abgefüllt werden wenn die "Extended-UTM-Log's" zur Verfügung stehen. Weitere Informationen betreffend "UTM Monitoring" siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Kann ich betreffend AV Definitions, IPS Definitions oder IPS Engine ein Downgrade durchführen?

Grundsätzlich ist dies möglich und wird folgendermassen durchgeführt (FortiOS 4 MR3 sowie 5.0 / 5.2):

       # diagnose autoupdate downgrade [enable | disable]

Ueber den Support Bereich auf der Fortinet Seite müssen nun die AV Definition, IPS Definition/Engine manuell runtergeladen werden um ein Downgrade manuell über das Web Gui der FortiGate einspielen zu können:

       https://support.fortinet.com/Download/AvNidsDownload.aspx

Um die AV Definition's, IPS Definition etc. manuell über das Web Gui der FortiGate einspielen zu können wähle folgende Position:

       System > Config > FortiGuard > AV Definitions / IP Definitons ...via Manual Update) [Update]

Nachdem manuellen installieren der nötigen Files deaktiviere das "autoupdate downgrade":

       # diagnose autoupdate downgrade disable

Mit folgenden Kommando kann die Version verifiziert werden:

       # diagnose autoupdate versions

Wenn vorübergehend verhindert werden soll das ein Autoupdate wiederum auf eine neue Version durchgeführt werden soll kann das "autoupdate" deaktiviert werden:

       # config system autoupdate schedule
       # set status disable
       # end

Wo finde ich auf der Fortinet Support Seite mehr Informationen betreffend einem bestimmten Virus?

Die Antivirus Definition DB von Fortinet resp. FortiGuard beinhaltet unzählig Virus Signaturen und deren Variationen. Um festzustellen ob eine bestimmte Virus Signature in der Antivirus Definition DB enthalten ist oder dessen Variationen gebe auf der folgende Seite den Namen des Virus ein:

       FortiGuard http://www.fortiguard.com/encyclopedia/ 

Danach kann auf den entsprechenden Eintrag ein Mausklick ausgeführt werden und die Beschreibung über den angewählten Eintrag erscheint sowie Zusatzinformationen etc.

Wie kann ich ein nicht "bekannten" Virus zu Fortinet übermitteln, damit die Information in die nächsten AV Definitions aufgenommen werden kann?

Wenn ein nicht bekannter Virus zu Fortinet übermittelt werden soll, kann folgender Link dazu benutzt werden die Information resp. das File das den "allfälligen" Virus enthält zu Fortinet zu übermitteln:

       http://www.fortiguard.com/antivirus/virus_scanner.html

Möchte man das File einfach mit der neusten zur Verfügung stehenden Antivirus Signature überprüfen gehe auf "Browse". Gebe das entsprechende File an und bestätige mit "Scan". Möchte man das File übermitteln und Feedback erhalten von Fortinet kann im unteren Bereich zusätzlich eine Nachricht definiert werden mit Name, E-Mail Adresse, Subject (zB New Virus found) sowie einer Kurznachricht (zB File delivered includes new Virus which is not recognized by Fortinet Scanner). Nach Angabe des Files (unter Browse) und Eingabe der Informationen benützt man "Scan and Send Message".

       Fortinet-838.jpg

Eine andere Möglichkeit wäre die neue Funktion der "Sandbox" unter FortiOS 5.0 / 5.2 zu benützen dh. weitere Informationen siehe Artikel:

       FortiSandbox:FAQ

Was bedeutet im Antivirus Profile die Funktion "Inspect Suspicious Files with FortiGuard Sandbox"?

Informationen zur Funktion FortiSandbox siehe nachfolgenden Artikel:

       FortiSandbox:FAQ

Kann ich über den "MIME" Header eine bestimmte Applikation vom Antivirus Scanning ausschliessen?

Ja dies ist möglich und wird nicht direkt über die Antivirus Funktion sondern über den WebFilter "Content-Header" konfiguriert (FortiOS 5.0). Weitere Informationen wie vorgegangen muss um diese Konfiguration durchzuführen siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_innerhalb_eines_WebFilters_einen_bestimmten_.22MIME.22_Type_.28zB_Audio.29_blockieren_.28Content-Header.29.3F
       NOTE Um zB Audio/Video von einem Antivirus Scanning auszunehmen muss dies unter FortiOS 5.0 über die
            "Content Header" Funktion konfiguriert werden. Unter FortiOS 5.2 kann dies über die "Protocol
            Options" durchgeführt werden da dort eine neue Funktion zur Verfügung steht:
            
            # config firewall profile-protocol-options
            # edit [Namen des entsprechenden Profiles
            # set streaming-content-bypass enable
            # end
            
            Diese Option "streaming-content-bypass" ist per Standard aktiviert!

Wie kann ich eine bestimmte Site/Domain vom Antivirus Scanning ausschliessen?

Wenn man eine bestimmte Domaine/Site vom Antivirus Scanning ausschliessen möchte kann dies anhand der Antivirus Funktion nur über eine entsprechende Fireall Policy Rule durchgeführt werden. Dies bedeutet: Würde man folgende Firewall Policy Rule implementieren:

       Sequenz  Source Interface        Source IP           Destination Interface        Destination IP        Action           Security Profiles
       
       1        internal                all                 wan1                         all                   allow            Antivirus Profile 
                                                                                                                                WebFilter Profile
                                                                                                                                Protocol Options

So würde die FortiGate angewiesen alle Sites die im WebFilter als Allow gesetzt sind zu zulassen. Jedoch kann die Seite durch eine andere UTM Funktion wie Antivirus geblockt werden. Um nun zB Hersteller Updates vom Antivirus Scanning auszuschliessen kann oberhalb der bestehenden Rule (Top Down First Match Wins) eine Firewall Policy Rule implementieren werden anhand des FQDN ohne Antivirus Profile:

       Sequenz  Source Interface        Source IP           Destination Interface        Destination IP        Action           Security Profiles
       
       1        internal                all                 wan1                         gr-microsoft.com      allow            None
       
       2        internal                all                 wan1                         all                   allow            Antivirus Profile 
                                                                                                                                WebFilter Profile
                                                                                                                                Protocol Options
       
       NOTE Durch dieses Konstrukt/Definition in der Firewall Policy wird die FortiGate klar angewiesen für die einzelnen IP's/
            Subnets/Sites/Services das zu tun betreffend Security Profiles was Sinn macht und somit wird durch diese Konfiguration
            ebenfalls die FortiGate betreffend Performance entlastet. 

Da wie schon erwähnt in der Firewall Policy "Top Down First Match Wins" gilt wird greift die Sequenz "1" bei einem FQDN (Fully Qulified Domain Name) vor der Sequenz 2 und da auf der Sequenz "1" kein Security Profile implementiert ist wird auch keine Antivirus für den FQDN ausgeführt. Dies ist eine einfach Art FQDN's und/oder auch IP Ranges/Subnets von einer UTM Action auszuschliessen. Es besteht jedoch noch eine andere einfache Variante dies durchzuführen die jedoch in der Firewall Policy in dem Sinne nicht so abgebildet wird dh. diese ist nicht über die Firewall Policy Rule ersichtlich. Um diese Variante anzuwenden muss im WebFilter unter "Web Site Filter" eine FQDN als "exempt" erfasst werden. Nähere Informationen dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_.C3.BCber_einen_WebFilter_eine_Site.2FDomaine_vom_UTM_Security_Profiles_Action_wie_Antivirus.2C_DLP_usw._ausschliessen.3F

Was bedeutet im Antivirus Profile "Block Connections to Botnet Servers" und kann ich diese Funktion Testen?

Im Antivirus Profile sei es im "Proxy und/oder Flow" Mode kann die Position "Block Connections to Botnet Servers" aktiviert werden. Wenn diese Position aktiviert wird, erkennt und blockt die FortiGate Anfragen zu Botnet Servern. Um was es sich genau handelt bei Botnet Servern kann im folgenden Artikel nachgelesen werden:

       Fortinet:ProduktInfo#Fortinet_Anatomy_of_a_Botnet
       
       NOTE Wenn die genannte Position über CLI konfiguriert werden soll so muss folgendes ausgeführt werden:
            
            # config antivirus profile
            # edit [Name des entsprechenden Profiles]
            # set block-botnet-connections [enable | disable]
            
            Für FortiOS 5.2 existiert das Kommando "block-botnet-connections" nicht mehr und wurde ersetzt mit:
            
            # set scan-botnet-connections [monitor | block | disable]

Wenn diese Position aktiviert wird, fragt man sich ob dies auch getestet werden kann? Dies ist möglich dh. man kann Anfragen vom Internen Netz zu bestimmten Botnet Server/IP durchführen und über die FortiGate kontrollieren ob diese Anfragen geblockt wurden. Folgender Link gibt Auskunft über die momentanen bekannten Botnet Server/IP:

       https://zeustracker.abuse.ch/blocklist.php
       
       NOTE Man muss berücksichtigen, dass diese Server/IP immerwährend einem Wandel unterzogen sind dh. Server und deren
            IP's werden oft gewechselt. Speziell folgender Link zeigt die aktuelle IP Liste der Server:
            
            https://zeustracker.abuse.ch/blocklist.php?download=ipblocklist
            
            Um somit die Funktion zu testen muss von "Internal" ein Request zu einer der IP's durchgeführt werden. Dieser
            Request muss bei aktivierter Funktion "Block Connections to Botnet Servers" im entsprechenden Antivirus Profile
            sowie dessen Benutzung in der entsprechenden Firewall Policy geblockt werden. Bei einem Test sollte deshalb darauf
            geachtet werden "welche" Firewall Policy (Policy ID) genutzt wird und ob in dieser Firewall Policy das Antivirus
            Profile konfiguriert ist.

Kann ich das Antivirus Scanning (scanunitd) im Memory anschauen und/oder manipulieren?

Der zuständige Prozess für das Antivirus Scanning ist der Deamon "scanunitd". Dieser ist unter folgnden Kommando ersichtlich sofern dieser in Gebrauch ist:

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

Ebenfalls kann der Memorybereich eingesehen werden:

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

Wenn dieser Deamon untersucht werden soll dh. mit debug Methode steht folgendes zur Verfügung:

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

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

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

Unter "config system global" ist es möglich die Anzahl der "scanunit's" zu definieren. Die Voraussetzung dafür ist das es sich um eine FortiGate Modell handelt mit mehreren CPU's. Bei dieser Einstellung -die unter normalen Umständen nicht manipuliert werden sollte- ist vorsicht geboten. Der entsprechende Befehl wäre:

      # config system global
      # set scanunit-count [Anzahl der "scanunits"; Standard basierend auf dem Modell/Device]
      # end

Ab FortiOS 5.2.2 wurde ein neues API (Application Program Interface) implementiert das Statistiken zur Verfügung stellt für die "scanunit" resp. den Deamon "scanunitd". Diees API zeigt die Memory Statistik sowie anhand dieses Kommndos können Filter Optionen gesetzt werden um bestimmten Informationen aufzulisten. Folgende Befehle stehen zur Verfügung:

       # diagnose sys scanunit stats ?
       list     List all statistics.
       all      List all statistics.
       clear    Clear all statistics.

       # diagnose sys scanunit filter ?
       list      Display the current filter.
       clear     Clear the current filter.
       negate    Negate the specified filter parameter.
       vd        Index of virtual domain. -1 matches all.
       worker    Index of worker. -1 matches all.

       # diagnose sys scanunit log filter ?
       list      Display the current filter.
       clear     Clear the current filter.
       negate    Negate the specified filter parameter.
       vd        Index of virtual domain. -1 matches all.
       worker    Index of worker. -1 matches all.

       # diagnose sys scanunit restart

Proxy Explicit

Wie konfiguriere ich einen Explicit Proxy Server inkl. Antivirus für HTTP/HTTPS?

Eine Fortigate kann als Proxy Server agieren und unterstützt den "Transparent Proxy" sowie einen "Explicit Proxy". Unter normalen Umständen wird ein Transparent Proxy bevorzugt da ausser auf der Firewall keine Konfiguration auf dem Client/Workstation durchgeführt werden muss. Wenn jedoch ein "Explicit Proxy" implementiert werden soll kann dies gemäss nachfolgenden Beispiel auf der FortiGate konfiguriert werden. Gehen wir davon aus das wir ein LAN Environmen haben mit dem IP Range 192.168.1.0/24 sowie das LAN Interface der Fortigate ist konfiguriert mit der IP 192.168.1.1. Um nun solch einen Proxy Server zu konfigurieren gehe folgendermassen vor:

       System > Network > Explicit Proxy
       NOTE Ab FortiOS 5.0 / 5.2 ist die Menüpositon "Explicit Proxy" grundsätzlich nicht 
            vorhanden und muss als Feature über folgende Menü Position aktiviert werden:
            
            System > Config > Features > Explicit Proxy
            
            Nachdem das Feature aktiviert wurde muss kurz ausgeloggt sowie erneut eingeloggt
            werden!

Als Erstes aktivieren wir den "Explicit Proxy" auf dem Interface auf dem er als Service zur Verfügung gestellt werden soll:

       System > Network > Interface
       
       Datei:Fortinet-232.jpg
       
       Datei:Fortinet-233.jpg
       
       NOTE Unter FortiOS 5.0 / 5.2 wurde diese Position "Explicit Proxy" in den unteren
            Teil der Seite verchoben!

Nun konfigurieren wir den "Explicit Proxy" Zugriff mit dessen Port etc. Wähle dazu:

       System > Network > Explicit Proxy
       
       Datei:Fortinet-234.jpg
       
       NOTE Wenn unter "Default Firewall Policy Action" Deny gewählt wird muss für den "Explicit Proxy" für den Proxy selber die 
            entsprechenden Rules implementiert werden. Dies bedeutet der Proxy selber hat nur mit "Accept" das Recht mit "sämtlichen" 
            Ports und Protokollen die Anfragen in das Internet abszusetzen. Mit "Deny" muss jeder Port resp. jedes Protokoll freigegeben
            werden. Die Option "FTP" unter dem Abschnitt "Explicit Web Proxy Options" stellt das FTP  Protokoll dar das "encapsulated" 
            über HTTP läuft (Browser basierend) dh. auch genannt "ftp over http". Wenn ein effektiver *FTP Proxy* konfiguriert werden 
            möchte muss dieser im  Abschnitt "Explicit FTP Proxy Options" definiert werden. Weitere Infos im nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_FTP.3F 

Nun definieren wir die entsprechende "Firewall Policy Rule" die benutzt wird um dem Proxy die nötigen Rechte verleit die nötigen Seiten aufzurufen. Führe folgendes aus:

       NOTE Die Firewall Policy Rule die benutzt wird damit der User Zugriff erlangt auf den "Explicit Proxy" muss nicht implementiert 
            werden da sobald man einen "Explicit Proxy" definiert auf  einem Interface eine sogenannte "Local In" Policy erstellt wird. 
            Diese "Local In" Policy steuert einzig und alleine den Zugriff auf den Proxy Port. Diese "Local In" Policy ist ersichtlich 
            unter:
            
            Policy & Objects > Policy > Local In > [Abschnitt Other]
            
            Diese Menüposition ist nur ersichtlich sofern das Feature unter folgender Position aktiviert
            ist:
            
            System > Config > Feature > Show More > Local In Policy
       Policy & Objects > Policy > Create New
       
       NOTE Unter FortiOS 5.0 ist eine "Explicit Proxy Policy" in der "normalen" Policy zu erstellen.  Unter FortiOS 5.2 wurde die 
            "Explicit Proxy Policy in ein seperates Menü unter "Policy & Objects" ausgelagert! Da dies eine spezielle Menüposition 
            ist, die "nur" für den "Explicit Proxy benützt wird muss/kann dort die effektive Konfiguration auf IP/User/Gruppen 
            basierend  durchgeführt werden. Aus disem Grund steht in dieser "seperaten" Policy als Action auch die Position 
            "AUTHENTICATE" zur Verfügung. Sobald diese angewählt wird öffnet sich ein zusätzlicher Abschnitt indem über "Configure
            Authentication Rules" der Zugriff resp. die Authentifizierung konfiguriert werden kann:
            
            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-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
            FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Das Antivirus Profile sowie das dazugehörige "Proxy Option" (Protocol Option) und/oder "SSL Inspectio" (Deep Inspection"ist nun erstellt. Es muss nun nur noch in der entsprechenden Firewall Policy Rule für den Proxy die Funktion Antivirus hinzugefügt werden:

       Policy & Objects > Policy > [Wähle die entsprechende Policy]
       
       Datei:Fortinet-239.jpg
       Datei:Fortinet-240.jpg
       
       NOTE Wie schon erwähnt muss zum Antivirus Profile das entsprechende Profile entweder für "unverschlüsselte" Protokolle 
            zB http und/oder für "verschlüsselte" Protokolle zB  https in der entsprechenden "Firewall Policy Rule" hinzugefügt 
            werden!

Nun kann wiederum ein Test durchgeführt werden dh. gehe auf folgende Seite und lade ein "eicar" File runter (Antivirus Test File):

       http://www.eicar.com

Gehe "oben Rechts" auf Download. Danach links im Menü auf "Download". Teste die Antivirus Implementierung anhand der "eicar" HTTP und/oder HTTPS Files! Fortinet hat aus dem "Cookbook" ein "Supplementary" Released, indem erklärt wird wie ein "Explict Proxy" konfiguriert wird. Es lohnt sich auch hier einen Blick reinzuwerfen. Das Dokument ist FortiOS 5.0 basierend:

       Datei:Setting-up-an-explicit-proxy-for-users-on-a-private-network.pdf

Wie konfiguriere ich einen Explicit Proxy Server inkl. Antivirus für FTP?

Eine Fortigate kann als "FTP Proxy" Server agieren dh. in unserem Beispiel gehen wir davon aus das wir ein LAN Environmen haben mit dem IP Range 192.168.1.0/24 sowie das LAN Interface der Fortigate ist konfiguriert mit der IP 192.168.1.1. Um nun solch einen "FTP Proxy" Server zu konfigurieren gehe folgendermassen vor: Bevor man auf dem Interface den "FTP Proxy" aktivieren kann, muss die Funktion selber aktiviert werden denn der "FTP Proxy" ist per Standard deaktiviert und somit erscheint die Menüposition unter den Interfaces um den "FTP Proxy" zu aktivieren nicht. Führe folgendes durch:

       NOTE Die Menüpositon des "Explicit Proxy" wird nicht per Standard angezeigt dh. um dieses Menü 
            anzuzeigen führe folgendes aus:
            
            System > Config > Feature > Explicit Proxy
            
            Danach logge kurz aus und führe ein erneutes Login durch. Nun erscheint die entsprechende
            Menüposition.
       
       System > Network > Explicit Proxy > Explicit FTP Proxy Options
       
       Datei:Fortinet-249.jpg
       

Die "FTP Proxy" Service Funktion wurde aktivieren und kann nun auf einem entsprechenden Interface aktiviert werden:

       System > Network > Interface
       
       Datei:Fortinet-250.jpg
       
       Datei:Fortinet-251.jpg

Nun kann eine entsprechende Firewall Policy erstellt werden. Diese ist analog für einen HTTP/HTTPS Proxy. Weitee Informationen siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F

Nach der Implementierung der entsprechenden Firewall Policy Rule sollte die Implementation getestet werden. Wenn man einen "maneullen Test" durchführen möchte muss zuerst auf den "FTP Proxy" verbunden werden. Danach muss "Auf dem FTP Proxy" die effektive Verbindung abgesetzt werden anhand des Kommandos [USER@DESTINATION]. Dies bedeutet zB unter Windows folgendes:

       C:\Users\User>ftp 192.168.1.1
       Verbindung mit 192.168.1.1 wurde hergestellt.
       220 Welcome to Fortigate FTP proxy
       Benutzer (192.168.1.1:(none)): [Username FTP Server]@[FTP Server FQDN/IPv4 Adresse]
       331 Password required for [Username FTP Server]
       Kennwort:
       230 User [Username FTP Server ] logged in
       ftp> bye
       221 Goodbye.

Dies bedeutet wenn man zB eine Software benutzt wie zB "Total Commander" so muss die entsprechende "Verbindungsmethode" gewählt werden. Diese wäre wie das obige Beispiel zeigt:

       Sende Kommando USER Benutzer@Maschinenname

Weitere Informationen wie ein Antivirus Profile konfiguriert wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F

Wo kann ich das SSL Zertifikate für die Clients runterladen?

Wenn der "Explicit Proxy" für HTTPS (Deep Inspection) durchführen soll um HTTPS aufzubrechen, muss das folgende Zertifikat runtergeladen und auf den Clients im Browser als "vertrauenswürdiges Stammzertifikat" importiert werden. Dies muss für zB für IE und Firefox seperat geschehen. Das Zertifikat für einen Import in den Browser findet man auf einer Fortigate an folgenden Punkt:

       System > Local Certificate > Fortinet_CA_SSLProxy

Weitere Informationen über "Deep Inspection" findet man im nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F

Welche URL muss im Browser konfiguriert werden um das PAC File zu definieren?

Folgende URL muss zB im Internet Explorere (gilt auch für andere Browser) konfiguriert werden um die Location des PAC Files zu definieren:

       Inernetoptionen > Verbindungen > LAN Einstellungen
       
       Automatisches Konfigurationsscript verwenden: http:\\[Interface Name oder IP auf dem der Explicit Proxy aktiviert wurde]:[Proxy Port zB 8080]/proxy.pac

Kann ich für die Fortigate ein sogenanntes "Proxy Chaining" (forward server) konfigurieren?

Nun unter einem Proxy Chaining versteht man, dass die Anfrage an den Proxy weitergeleitet werden an einen anderen Zentralen Proxy. Im normal Fall wird auf dem Proxy der die Anfrage weiterleitet KEINE Ueberprüfungen durchgeführt da ansonsten das Reporting, Troubleshooting etc. unnötig komplex wird. Es kann jedoch durchaus auf solchen Proxy's Ueberprüfungen durchgeführt werden wenn zB zu wenig Bandbreite zum effektiven Proxy zur Verfügung steht.

Um ein Proxy Chaining zu konfigurieren muss grundsätzlich ein "Explicit Proxy" auf der Fortigate eingerichtet werden mit dessen Globalen Optionen! Zu diesem Zweck siehe:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_Explicit_Proxy_Server_inkl._Antivirus_f.C3.BCr_HTTP.2FHTTPS.3F

Desweiteren um das "Proxy Chaining" zu konfigurieren benutze folgendes:

       # config web-proxy forward-server
       # edit [Server Name für Konfig]
       # set ip [Server IP (ipv4)]
       # set addr-type [fqdn | ip]
       # set port [Port des Proxy zu dem der Request weitergeleitet wird]
       # set healthcheck [enable | disable]
       # set comment [Möglichkeit eines Kommentars]
       # set server-down-option [block | pass]
       # set

Wie schon erwähnt, wenn für das "Proxy Chaining" weitere Global Konfiguration benötigt wird so müssen die Globalen Optionen herangezogen werden:

       # config web-proxy global
       # set tunnel-non-http [enable | disable]
       # set unknown-http-version [reject | tunnel | best-effort]
       # forward-server-affinity-timeout [Timeout 6 - 60; Standard 30]
       # set forward-proxy-auth [disable | enable]
       # set max-message-length [kBytes]
       # set max-request-length [kBytes]
       # set proxy-fqdn [fqdn]
       # set strict-web-check [disable | enable]
       # end

Wie kann ich für einen "Explicit Proxy" eine Site und/oder URL vom Cache (cache-exemption) ausschliessen?

Wenn eine "Explicit Proxy" benutzt wird werden die Anfragen der User für eine bestimmte Zeit auf der FortiGate in den "Cache" geschrieben. Wenn eine weitere Anfrage innerhalb dieser Zeit den "Explicit Proxy" erreicht wird die Anfrage aus dem Cache beantwortet sofern auf der Seite resp. URL kein Meta-Tag hinterlegt ist im Sinne von:

       <meta http-equiv="cache-control" content="no-cache">
       <meta http-equiv="Cache-Control" content="no-store"> 
       <meta http-equiv="pragma" content="no-cache">

Grundsätzlich sollten/muss sich die Proxy Funktion an diesen Anweisungen halten und die bestimmte Seite resp. URL wird nicht in den Cache geschrieben. Wenn jedoch diese Anweisung auf der Seite resp. URL fehlt kann ein "no cache" auch auf der FortiGate innerhalb der "Explicit Proxy" Funktion erzwungen werden. Dies wird auf der CLI folgendermassen durchgeführt:

       # config web-proxy url-match
       # edit [Name des URL Pattern zB also.ch]
       # set status [enable | disable]
       # set cache-exemption [enable | disable]
       # set url-pattern [URL Pattern zB "www.also.ch"]
       # end

Die Konfiguration kann ebenfalls über Web Mgmt. Interface durchgeführt werden unter folgender Position:

       System > Network > Explicit Proxy > URL Match List
       
       Fortinet-1352.jpg
       Fortinet-1353.jpg

Proxy SSL-Offload

Wie kann ich für ActiveSync/OWA ein SSL-Offloading konfigurieren und was ist dabei zu beachten?

Wenn auf einer FortiGate eine Konfiguration abgebildet werden soll, die einer Konfigurtion eines TMG für ActiveSync/OWA gleichkommt kann dies anhand eines "SSL-Offloading" durchgeführt werden. Dies bedeutet: Im Grundsatz ist dies die gleiche Konfiguration wie für einen "Explizit Proxy" dh. "man of the middle" mit "deep inspection" (Zertifikat auf dem Client). Im Gegensatz zu einem "Explizit Proxy" für Outgoing wird ein "SSL-Offloading" anhand eines Virtual Servers konfiguriert (vs) für Incoming konfiguriert sowie. Ebenso benutzt man auf dem Client das entsprechende Public Zertifikat, das dem "Virtual Server" ermöglich ein "deep inspection" (SSL-Offloading) durchzuführen. Dies ermöglicht dem "Virtual Server" über das "SSL-Offloading" eine "deep inspection" durchzuführen. Um den Traffic für "ActiveSync/OWA" zu schützen können die entsprechenden Signaturen für IPS sowie Application Control angewendet werden um nicht erwünschten Traffic auf der FortiGate zu blocken und nur den entsprechenden Traffic zum Exchange ActiveSync/OWA zu zulassen. Die dabei benützen Signaturen im ActiveSync Bereich sind die folgenden:

       Application Control Profile
       ***************************
       Für OWA folgende Signaturen:                 Outlook.WebAccess, SSL, HTTPS.BROWSERS     
       Für ActiveSync folgende Signaturen:          Activesync, SSL
       
       NOTE Je nach Bedürfnisse kann anstelle von SSL die Signature SSLv2 dazugenommen werden! Im nachfolgenden Dokument wird
            Schritt für Schritt gezeigt wie diese Konfiguration durchzuführen ist. Ab May 2015 funktioniert diese Konfiguration
            wie im Dokument abgebildet anhand der Signaturen "Activesync, SSL" für IOS devices nicht mehr. Der Grund ist in der
            Signature "SSL/SSLv2" zu suchen. Dies bedeutet: die "SSL/SSLv2" Signature wurde im May 2015 so modifiziert das Teile
            davon in eine neue Signture verschoben wurde um "HTTP Browsers Sessions über SSL/SSLv2" gerecht zu werden. Die neue
            Signature in dem diese nicht mehr vorhandenen Definiton von "SSL/SSLv2" verschoben wurde trägt den folgenden Namen:
            
            HTTPS.BROWSERS      (erhältlich ab "Attack Defininition" 6.648)
            
            Diese Signature definiert die folgende Packet Strucktur:
            
            "HTTP sessions with packet structure like GET/POST /xxxx/yyyy/ HTTP/1.1 User-Agent: xxxxx Host: xxxx ...... over SSL"
            
            Neu definiert die "SSL/SSLv2" Signature die folgende Packet Strucktur:
            
            "Any non HTTP session, e.g. a proprietary protocol, over SSL"
            
            Wenn die Signature "HTTPS.BROWSERS" zum bestehenden "Application Profile" hinzugefügt werden möchte (speziell unter
            FortiOS 5.0), muss darauf geachtet werden, dass im entsprechenden Profile "Alle" Kategorieren aktiviert sind da sich
            die Signature "HTTPS.BROWSER" unter der Kategorie "Web.Others" befindet die per Standard nicht aktiviert ist. Somit
            bevor man die Signature unter "Specific Application" sucht ALLE Kategorien aktivieren!
       IPS
       ***
       Für OWA folgende Signaturen:                 IIS MS_Exchange
       
       NOTE Um die Signature für "IIS MS_Exchange" zu konfigurieren benützt gemäss nachfolgenden Dokument die Kommandline
            denn Server basierende Signaturen können nur über Kommandozeile konfiguriert/gewählt werden!

Fortinet hat für die Konfiguration ein Dokument released das Schritt für Schritt zeigt wie diese Konfiguration durchzuführen ist:

       Datei:How to configure TMG features on FGT.pdf

Desweiteren ist zu beachten das ein "SSL-Offloading" dem Device einiges abverlangt betreffend Performance da ein "SSL-Offloading" für jedes Packet durchgeführt wird dh. aufbrechen des Traffic (encrypt) damit ein "deep inspection" durchgführt werden kann. Nicht alle Devices bringen diese Performance mit. Devices bis FG-60D sind für so eine Konfiguration nicht empfohlen oder bringen gar nicht die entsprechenden Features/Konfigurationsmöglichkeiten mit diese Konfiguration durchzuführen. Auf diesem Umstand wird im nachfolgenden Dokument darauf hingewiesen:

       Datei:Wihtepaper TMG features on FGT.pdf

Wenn es zu Problemen kommt sprich um die Signaturen auf den neusten Stand zu bringen können folgende Kommandos benützt werden:

       # execute update-ips
       
       NOTE Dies bringt speziell die IPS Signaturen Datenbank auf den neusten Stand aus dessen die Application Controll Signaturen
            gespiesen werden. Dies benötigt einige Minuten. Nach einem erfolgreichen Update kann über folgendes Kommando die Versionen
            überprüft werden:
            
            # get system auto-update versions

Wenn es bei der Implementation des "SSL-Offloading" Konfiguration zu Problemen kommt kann ein Troubleshooting basierend auf dem "vs" (virtuelle server) durchgeführt werden. Um ebenfalls den Flow resp. die Policy Implementation zu überprüfen führe folgendes durch:

       # diagnose debug reset 
       # diagnose debug disable 
       # diagnose debug flow show console enable 
       # diagnose debug flow show function-name enable 
       # diagnose debug application vs -1 
       # diagnose debug flow filter sadd [Public IPv4 Adresse der Source reps. Test Client]
       # diagnose debug flow filter dadd [Public IPv4 Adresse der Destination benutzt auf dem Virtuelle Server]
       # diagnose debug flow trace start 1000 
       # diagnose debug enable
       
       NOTE Der Output zeigt den Traffic des Test Client mit seiner Public IPv4 Adresse und der Public IPv4 Adresse die benutzt wurde
            in der Konfiguration des Virtuellen Servers (SSL-Offloading Konfiguration). Um zu sehen ob die entsprechende Firewall Policy
            greift muss über das Web Gui die entsprechende Policy ID herangezogen werden. Nach einem erfolgreichen "debug" muss der 
            Vorgang deaktiviert werden sowie die Filter zurückgesetzt werden:
            
            # diagnose debug disable
            # diagnose debug reset
            # diagnose debug flow filter clear 
            
            Wenn es weiterhin zu Problemen kommt muss auf jedenfall der Output des hier gezeigten "debug" Vorgangs für ein Ticket bei Fortinet
            Support mitgeliefert werden!

Desweiteren ist zu beachten wie hier in diesem Artikel beschrieben, dass wenn Signaturen durch Fortinet geändert werden keine Ankündigung gibt durch Fortinet. Ebenfalls werden über FortiGuard zwar die Daten (Datum) einer Aenderung in der Signatur abgebildet jedoch innerhalb der Signaturen Versionen wird nicht auf Aenderung hingewiesen oder wieso eine Aenderung durchgeführt wird.

Proxy SSH

Was ist ein SSH Proxy (Deep Inspection) und wie funktioniert Dieser?

Ab FortiOS 5.0 / 5.2 und für gewisse FortiGate Modelle (Siehe SoftwareMatrix) steht neu ein SSH Proxy zur Verfügung. Dies bedeutet: Dieser SSH Proxy ist zu vergleichen mit einem "HTTPS Explicit Proxy". Wie bei einem "Explicit Proxy" wird ein sogenannte "Deep Inspection" durchgeführt. Dabei fängt der SSH Proxy auf der FortiGate den "key exchange" (Key Austausch) zwischen Client und Server ab(Man of the middle). So kann der SSH Proxy den Traffic entschlüsseln und in die Session schauen um dort die nötige Security Policy gemäss dem konfigurierten SSH Profile durchzuführen. Danach wird der Traffic wiederum gemäss "key exchange" verschlüsselt und zum Empfänger weitergeleitet. Im SSH Profile können folgende Komponenten gelogt oder geblockt werden:

       • SSH remote execution
       • Port forwarding
       • SSH remote shell
       • x11 server forwarding 

Nachfolgend eine schematische Uebersicht wie ein SSH Proxy arbeitet:

       Fortinet-787.jpg

Nachfolgend weitere Links die auf Deep Inspection sowie Zertifikate eingehen:

       FortiGate-5.0-5.2:FAQ#Was_ist_im_Allgemeinen_der_Unterschied_zwischen_.22SSL_Certificate_Inspection.22_und_.22Full_SSL_Inspection.22.3F
       [[Allgemein:Zertifikate-SymmetrischeAsymmetrische]

Wie kann ich einen SSH Proxy konfigurieren (Deep Inspection)?

Um einen SSH Proxy zu konfigurieren muss zuerst ein entsprechendes "SSH Proxy Profil" erstellt werden:

       Policy > Policy > SSL/SSH Inspection 

Erstelle nun unter "Create New" ein neues Profile. Unter "SSH Inspection Options" aktiviere "SSH Deep Scan":

       NOTE Diese Menüposition steht nicht für jedes Gerät zur Verfügung. Ob ein Device 
            diese Funktion eines SSH Proxy unterstützt entnehme der Software Matrix:
            
            FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       Fortine-788.jpg

Bei der Definition des Ports können zusätzliche Ports konfiguriert werden zB für den zusätzliche Port 10022 gebe folgendes an:

       22, 10022

Danach konfiguriere die entsprechenden Position dh. Block und/oder Log. Möchte man das Ganze über Kommandozeile konfigurieren führe folgendes aus:

       NOTE Unter FortiOS 5.2 wurden die "deep-inspection-options" umbenannt auf "firewall ssl-ssh-profile".
            Ebenfalls wurden die "Deep Inspection" Funktion verbessert und verändert. Weitere Informationen
            siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config firewall deep-inspection-options
       # edit [Name des entsprechenden Profils]
       # config ssh
       # set port [Gebe den/die entsprechenden Ports an zB "22 10022"]
       # set inspect-all [enable oder disable]
       # set options [Erlaube nicht gültige Zertifikate dh. "allow-invalid-server-cert | ssl-ca-list"]
       # set oversize-limit [Gebe die entsprechende Size an]
       # set block [Setze die zur Verfügung stehenden Optionen auf Block die da sind "exe | port-forward | ssh-shell | x11-filter"]
       # end

Nachfolgend weitere Links die auf Deep Inspection sowie Zertifikate eingehen:

       FortiGate-5.0-5.2:FAQ#Was_ist_im_Allgemeinen_der_Unterschied_zwischen_.22SSL_Certificate_Inspection.22_und_.22Full_SSL_Inspection.22.3F
       [[Allgemein:Zertifikate-SymmetrischeAsymmetrische]

URL WebFilter

Hat die gesetzte Zeitzone auf einer FortiGate einen Einfluss auf den URL WebFilter?

Die Setzung der Zeitzone auf einer FortiGate ist eine wichtige Funktion dh. diese bestimmt welche URL WebFilter Datenbank in FortiGuard (Cloud Service) zugewisen wird! Wenn zB die falsche Zeitzone gesetzt wird wie US (Per Standard auf einer FortiGate gesetzt) wird auch die WebFilter Datenbank für US als Referenz herangezogen. Die Zeitzone kann über das Web Mgmt. Interface unter folgender Position gesetzt werden:

       System > Dashboard > Status > System Information > System Time > [Change]

Wenn die Zeitzone über Kommandozeile verändert werden möchte siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_Zeitzone_einer_FortiGate.3F

Wie kann ich auf einer FortiGate den Cache des URL WebFilter löschen sowie anzeigen/auflisten?

Wenn auf einer FortiGate ein URL WebFilter konfiguriert wird so werden die einzelnen Anfragen an FortiGuard für eine bestimmte Zeit in den Cache geschrieben. Die Dauer dh. wie lange eine Anfrage im Cache verbleibt wird folgendermassen konfiguriert:

       # config system fortiguard
       # set webfilter-cache [enable | disable]
       # set webfilter-cache-ttl [Dauer in Sekunden wie lange eine Anfrage im Cache verbleit; "Standard Wert 3600"; Möglicher Wert 300 bis 86400]
       # set webfilter-timeout [Timeout einer URL WebFilter Abfrage; Standard 15 Sekunden; Möglicher Wert 1 - 30 Sekunden]
       # end

Um den Cache Inhalt des URL WebFilters aufzulisten kann folgender Befehl benutzt werden:

       # diagnose test application urlfilter 3
       
       Saving to file [/tmp/urcCache.txt]
       
       Cache Contents:
       -=-=-=-=-=-=-=-
       Cache Mode:   TTL
       Cache DB Ver: 17.33301
       
       Domain  |IP       DB Ver T URL
       34000000|34000000 17.33299 P Bhttp://www.ecall.ch/
       34000000|34000000 17.33296 P Chttps://apctrl1.fortinet.com/
       34000000|34000000 17.33295 P Chttps://logctrl1.fortinet.com/
       34000000|00000000 17.33292 P Bhttp://ocsp2.globalsign.com/
       34000000|00000000 17.33292 P Bhttp://ocsp.globalsign.com/
       29000000|29000000 17.33282 E Bhttp://yahoo.com/
       29000000|00000000 17.32731 E Dhttps://cse.google.com/
       NOTE Die Spalte "Domain" sowie "IP" gibt die FortiGuard Category wieder in "hexdecimalen" Wert!

Um die Statistik eines URL WebFilters inkl. Cache aufzulisten benutze folgenden Befehl:

       NOTE Analog zum nachfolgenden Befehl kann ebenfalls folgendes Kommando benützt werden das den gleichen
            output liefert:
            
            # diagnose webfilter fortiguard statistics list
       # get webfilter ftgd-statistics 
       
       Rating Statistics:
       =====================
       DNS failures                     :          4
       DNS lookups                      :          9
       Data send failures               :          0
       Data read failures               :          0
       Wrong package type               :          0
       Hash table miss                  :          1
       Unknown server                   :          0
       Incorrect CRC                    :          0
       Proxy request failures           :          0
       Request timeout                  :         26
       Total requests                   :      23908
       Requests to FortiGuard servers   :       2535
       Server errored responses         :          0
       Relayed rating                   :          0
       Invalid profile                  :          0
       
       Allowed                          :          0
       Blocked                          :          1
       Logged                           :      23903
       Blocked Errors                   :          0
       Allowed Errors                   :          5
       Monitors                         :      23902
       Authenticates                    :          0
       Warnings:                        :          0
       Ovrd request timeout             :          0
       Ovrd send failures               :          0
       Ovrd read failures               :          0
       Ovrd errored responses           :          0
       
       Cache Statistics:
       =====================
       Maximum memory                   :   42284892
       Memory usage                     :      44832
       
       Nodes                            :          1
         Leaves                         :          0
         Prefix nodes                   :          0
         Exact nodes                    :          0
       
       Requests                         :          1
       Misses                           :          1
       Hits                             :          0
         Prefix hits                    :          0
         Exact hits                     :          0
       
       No cache directives              :          0
       Add after prefix                 :          0
       Invalid DB put                   :          0
       DB updates                       :          2
       
       Percent full                     :          0%
         Branches                       :        100%
         Leaves                         :          0%
           Prefix nodes                 :          0%
           Exact nodes                  :          0%
       
       Miss rate                        :        100%
       Hit rate                         :          0%
         Prefix hits                    :          0%
         Exact hits                     :          0%

Wenn der Cache des URL WebFilter manuell gelöscht werden soll kann dies mit folgenden Befehl durchgeführt werden:

       # diagnose test application urlfilter 2

Um den URL WebFilter Service neu zu starten kann folgender Befehl benützt werden:

       # diagnose test application urlfilter 99
       Restarting urlfilter deamon
       
       NOTE Wird der URL WebFilter Service neu gestartet wird der Cache Inhalt betreffend URL WebFilter gelöscht!

Wie/Was wird beim FortiGate URL WebFilter genau abgearbeitet (Flow)?

Nachfolgend eine Uebersicht was beim URL WebFilter einer FortiGate genau abgearbeitet wird (Flow):

       NOTE Im nachfolgenden Artikel ist beschrieben "Was" für Informationen in der Abfrage betreffend URL Webfilter
            Datenbank an Fortinet resp. zum Service FortiGuard übermittelt wird:
            
            FortiGate-5.0-5.2:FAQ#Was_wird_bei_der_URL_WebFilter_abfrage_in_die_FortiClouad_.28FortiGuard.29_mitgegeben_und_abgefragt.3F
       Fortinet-1067.jpg

Wie kann ich für eine Seite/URL ein Debug betreffend URL Filter ausführen?

Wenn eine FortiGate eingesetzt wird im Zusammenhang mit dem URL Filter und eine Seite/URL wird nicht korrekt angzeigt kann es sein, dass diese Seite resp. der Inhalt (Embeded Content) von anderen Seiten benützt. Wenn nun diese "anderen" Seiten im WebFilter geblockt werden kommt des dazu das die effektive Seite nicht mehr korrekt angzeigt wird. Um festzustellen "was" der Grund ist das die Seite nicht korrekt angzeigt wird kann für den WebFilter folgender "debug" ausgeführt werden:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       Setze einen neuen Debug Filter:
       
       # diagnose debug urlfilter src-addr [IP Adresse des Client von dem der Test ausgeführt wird]
       # diagnose debug application urlfilter -1
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable

Nachfolgend ein Beispiel eines Outputs (Auschnitt) des obigen "debug" Filters anhand Source Adresse 198.18.0.21 sowie auf die Seite "www.also.com":

       --------------- output debug urlfilter -1 ---------------
       
       # msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23940, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23941, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/en/6000/index.jsp"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23945, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/print.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23943, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/html5boilerplate/main.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23944, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/screen.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23942, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/html5boilerplate/normalize.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23947, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/dev_also_com.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23946, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/6000/dev_also_com_2.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23951, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/html5boilerplate_1/modernizr-262min.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=fonts.googleapis.com:80, id=23948, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/css?family=PT+Sans+Narrow|Raleway:400,500,600,700,800|Dancing+Script|Sanchez"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23950, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/css/1010_ctv/magnific-popup.css"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23952, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/js/jquery-core/1.11.2/jquery-1.11.2.min.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23953, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/js/jquery-core/2.1.3/jquery-2.1.3.min.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23954, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/jquery/jquerywaypointsmin.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23955, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/jquery/jquerytouchSwipemin.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23956, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/bootstrap/bootstrap.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23957, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/plugins.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23958, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/6000_1/metronome.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       msg="received a request /tmp/.proxyworker000_0_0.url.socket, addr_len=38: d=www.also.com:80, id=23959, vfname='root', vfid=0, profile='VDOM-root-default', type=0, client=198.18.0.21, url_source=1, url="/ec/cms2/media/js_1/knockout/knockoutmin.js"
       Not running keyword search.  It is not a supported search site site
       Checking urlfilter list 1
       Stop quota EP 198.18.0.21, cat 0
       Url filter exempt action (7f)
       
       --------------- output debug urlfilter -1 ---------------

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

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

Gibt es eine Möglichkeit den Status des WebFilters abzufragen?

Ja, diese Möglichkeit existiert dh. mit folgenden Kommando kann der Status abgefragt werden sowie verifiziert werden "welche" FortiGuard Server benutzt werden:

      # get webfilter status
      
      NOTE Die WebFilter Funktion auf einer FortiGate ist die "einzige" Funktion die eine Lizensierung betreffend
           FortiGuard erzwingt dh. wenn kein FortiGuard existiert und ein WebFilter konfiguriert ist, werden alle
           Anfragen geblockt. Wenn der Status in so einer Situation mit dem Kommando "webfilter status" abgefragt
           wird erscheint:
           
           # get webfilter status
           Locale          : english
           
           The service is not enabled.

Wenn es zu Problemen kommt mit dem WebFilter dh. mit der Verbindung zu den FortiGuard Servern siehe nachfolgenden Artikel für weitere Informationen:

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

Wird der URL WebFilter lokal als Datenbank gespeichert oder Online abgefragt?

Die Datenbank die für den URL WebFilter benötigt wird ist nur Online zugänglich dh. über direkte Abfragen zum FortiGuard Service (FortiCloud). Weitere Informationen "wie" diese Abfrage genau abläuft siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie.2FWas_wird_beim_FortiGate_URL_WebFilter_genau_abgearbeitet_.28Flow.29.3F
       NOTE Die Abfragen betreffend WebFilter werden in einene "Cache" geschrieben (Standard 1800 Sekunden). Es
            besteht die Möglichkeiten die Konfiguration des WebFilter sei es ttl, port etc. zu spezifizieren.
            Nachfolgender Artikel gibt Auskunft über diese Konfiguration:
            
            FortiGate-5.0-5.2:FAQ#Kann_ich_die_Konfiguration_betreffend_WebFilter_Abfragen_f.C3.BCr_FortiGuard_.28FortiCloud.29_manipulieren_.28ttl.2C_cache.2C_port.29.3F

Dies bedeutet jede Anfrage wird Online abgefragt und somit steht die WebFilter Datenbank auf einer FortiGate nicht Offline zur Verfügung. Wenn eine FortiGate aus Sicherheitsgründen über "keinen" Internet Access verfügt, gibt es die Möglichkeit einen FortiManager einzusetzen und die FortiGate so zu konfigurieren, dass dieses Ihre Abfragen direkt zum FortiManager sendet. Der FortiManager selber stellt die WebFilter Datenbank lokal diesen Devices zur Verfügung. Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiManager-5.0-5.2:FAQ#FNDN_.28Fortinet_Distribution_Network.29

Kann ich die Konfiguration betreffend WebFilter Abfragen für FortiGuard (FortiCloud) manipulieren (ttl, cache, port)?

Die WebFilter Abfragen werden Online in den FortiGuard Service (FortiCloud) gesendet. Nachfolgender Artikel gibt Auskunft "was" genau durchgeführt wird und "welche" Informationen in den FortiGuard Service gesendet wird:

       FortiGate-5.0-5.2:FAQ#Wie.2FWas_wird_beim_FortiGate_URL_WebFilter_genau_abgearbeitet_.28Flow.29.3F
       FortiGate-5.0-5.2:FAQ#Was_wird_bei_der_URL_WebFilter_abfrage_in_die_FortiClouad_.28FortiGuard.29_mitgegeben_und_abgefragt.3F

Wenn man diese Konfiguration betreffend zB port, ttl, cache verändern möchte steht über die Kommandozeile folgende Optionen zur Verfügung:

       # config webfilter fortiguard 
       # set cache-mode [ db-ver | ttl; Standard ttl]
       # set cache-prefix-match  [enable | disable]
       # set cache-mem-percent [Prozent vom Memory 1 - 15; Standard 2]
       # set ovrd-auth-port-http [Spezifiziert den auth Port HTTP; Standard 8008]
       # set ovrd-auth-port-https [Spezifiziert den auth Port HTTPS; Standard 8010]
       # set ovrd-auth-port-warning [Spezifiziert den warning Port; Standard 8020]
       # set ovrd-auth-https  [enable | disable]
       # set warn-auth-https  [enable | disable]
       # set close-ports  [enable | disable]
       # set request-packet-size-limit [Grösse des Packetes für Fragmentation; Standard 0]
       # set ovrd-auth-hostname [Setze den Hostname der in FortiGuard übermittelt wird]
       # set ovrd-auth-cert [Definiert Zertifikat für HTTPS; Standard "Fortinet_Firmware"] 
       # end
       
       NOTE Wird der "cache-mode" auf "ttl" gesetzt gilt folgendes: Die entsprechende Abfrage betreffend einer
            Rule wird gelöscht nach Ablauf des Wertes "ttl" das unter FortiGuard gesetzt wird:
            
            # config system fortiguard 
            # set webfilter-cache-ttl 3600
            # end
            
            Wird der "cache-mode" auf "db-ver" gesetzt wird eine Datenbank angelegt in der Grösse von vom
            Wert "cache-mem-percent". Die Abfragen betreffend WebFilter verbleiben in der Datenbank bis
            die WebFilter Datenbank in FortiGuard geändert wird oder der Eintrag über FortiGuard verändert
            wird (force).

Was wird bei der URL WebFilter abfrage in die FortiClouad (FortiGuard) mitgegeben und abgefragt?

Bei der Abfrage wird "nur" der Domain Name abgefragt. Dies bedeutet über Port 53 oder Port 8888 wird in Clear-Text jedoch "verschleiert" (obfuscated) folgendes übertragen:

       • FortiGate Serien Nummer
       • FortiGate Source IP Adresse 
       • Website Komplette URL, inkl. Schema, Hostname und Pfad
       
       NOTE Ob eine FortiGate über Port "53" oder Port "8888" ein Abfrage durchführt kann folgendermassen
            konfiguriert werden:
            
            # config system fortiguard
            # set port [ 53 | 8888]
            # end
            
            Desweiteren kann die Abfrage selber des WebFilters in die FortiGuard definiert werden. Nachfolgender
            Artikel gibt Auskunft über diese Konfiguration:
            
            FortiGate-5.0-5.2:FAQ#Kann_ich_die_Konfiguration_betreffend_WebFilter_Abfragen_f.C3.BCr_FortiGuard_.28FortiCloud.29_manipulieren_.28ttl.2C_cache.2C_port.29.3F

Ausser den oben aufgelisteten Informationen werden keine zusätzlichen Informationen übertragen. Es obliegt dem Applikations Entwickler "sensitive" Informationen "nicht" in der URL mitzugeben!

Traffic betreffend URL WebFilter wird blockiert obwohl FortiGuard und/oder URL WebFilter lizensiert ist?

Wenn URL WebFilter regulär lizensiert ist über FortiGuard und/oder einzel Lizenz kann es vorkommen, dass der Traffic durch den WebFilter -obwohl erlaubt- blockiert wird! Dieser Umstand "kann" im Zusammenhang stehen mit der Erreichbarkeit des Service dh. in folgenden Situation wird der Traffic blockiert wenn nicht eine entsprechende Konfiguration durchgeführt wurde:

       -> FortiGuard Service ist ausgelaufen und der neue anhängende Service Vertrag noch nicht aktiviert!
       -> FortiGuard Service ist vorübergehend nicht erreichbar!
       -> FortiGaurd Service Verifizierung durch die FortiGate steht auf "Unreachable" oder "nicht korrektes Datum"
       -> FortiGate Sysem DNS Server sind nicht korrekt konfiguriert oder antworten nicht!
          
          NOTE In diesem Zusammenhang wird empfohlen folgender Artikel einzusehen:
               
               Fortinet:FortiCare-FortiGuard#Die_Registrierung_FortiCare.2FFortiGuard_ist_auf_der_Fortigate_nicht_ersichtlich.2C_was_kann_ich_tun.3F

Wenn es zu Störungen kommt im Service von Fortinet in FortiGuard (FortiCloud) wird per Standard alle Anfragen -da unbeantwortet- geblockt. Es wird empfohlen folgende Position zu aktivieren um diesem Umstand entgegenzutreten:

       UTM Security Profiles > Web Filter > Profile > [Wähle das entsprechende Profile] > Advanced Filter > Allow Websites When a Rating Error Occurs
       
       NOTE Wird dieser Konfigurationspunkt aktiviert und eine Anfrage wird in dem FortiGuard
            Service mit einem "error" beantwortet zB weil der Service Momentan nicht erreichbar
            ist, wird die URL erlaubt. Ist diese Position nicht aktiviert werden sämtliche URL's
            geblockt.

Wie kann ich über URL WebFilter den Zugriff auf "Anonymous Proxy" verhindern?

Dies kann im entsprechenden WebFilter Profile über die folgende Kategorie durchgeführt werden

       Security Profiles > WebFilter > [Wähle das entsprechende Profile] > [Aktiviere FotriGuard Categories]
       
       Potentially Liable > Proxy Avoidance > [Rechte Maustaste > Block]
       
       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-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
            
            Das Security Log basiert auf der Option "extended-utm-log". Diese Option existiert für FortiOS 5.2
            nicht mehr. Weitere Informationen dazu siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F

Wie kann ich betreffend URL Filtering eine Website (URL) bei Fortinet Re-Kategorisieren lassen?

Wenn in einer entsprechenden Firewall Policy ein WebFilter aktiviert ist und ein User eine Site/URL aufruft wird diese Site/URL über FortiGuard überprüft. Handelt es sich um eine Site/URL die nicht Kategorisiert ist fällt diese innerhalb der FortiGate Kategorien unter "Unrated". Wenn nun diese Site/URL Kategorisiert werden möchte in FortiGuard oder eine Site/URL Re-Kategorisiert werden soll wähle folgenden Link:

       http://www.fortiguard.com/static/webfiltering.html

Wähle dort den den folgenden Menüpunkt und gebe dort die gewünschte Site/URL ein mit deren FQDN:

       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-5.0-5.2:FAQ#Wie_kann_ich_betreffend_URL_Filtering_eine_Website_.28URL.29_bei_Fortinet_Re-Kategorisieren_lassen.3F

Wie kann ich den Zugriff über die URL WebFilter Funktion auf "Streaming Medias" verhindern?

Dies kann über die folgende "Web Filter" Kategorie konfiguriert werden:

       Bandwidth Consuming > Streaming Media and Download
                             Internet Radio and TV
       Fortinet-1126.jpg

Wie kann ich im Zusammenhang mit dem URL WebFiltering ein "whitelisting" und/oder "blacklisting" konfigurieren?

Wenn man ein WebFilter konfiguriert so ist es empfehlenswert ein sogenanntes "whitelisting/blacklisting" zu konfigurieren. Dies bedeutet lokale Kategorien zu benutzen (whitelisting/blacklisting) um Seiten in der FortiGuard Kategorie "lokal" neu zu Kategoriesieren. Ist zB eine Site wie www.also.ch in der FortiGuard Kategorie "Business" und die Kategorie "Business" ist geblockt, kann anstelle der ganze Kategorie auf "Allow" zu setzen, nur die entsprechende Seite in die lokale Kategorie "whitelisting" verschoben werden (Override). Dadurch bleibt die Kategorie "Business" geblock ausser die Seite www.also.ch die sich in der erlaubten Kategorie "whitelisting" befindet. Im Standard WebFilter existieren bereits zwei "lokale" Kategorien dh. "custom1/2".

       UTM Security Profiles > Web Filter > Profile > [Wähle ein entsprechendes Profile] > [Aktiviere "FortiGuard Categories" > Local Categories
       Datei:Fortinet-620.jpg

Diese zwei bestehenden Kategorien können unbenannt oder gelöscht werden:

       # config webfiler ftgd-local-cat
       # delete custom1
       # delete custom2
       # end
       
       NOTE Die Kategorien unter "Local Categories" können nur gelöscht werden wenn diese keine URL's enthalten
            sowie der WebFilter im Gesamten nicht in Benutzung ist! Es ist nicht möglich die Kategorien über das
            WebInterface zu löschen dh. dies ist nur über CLI durchführbar.
       
       Um die Kategorien umzubenennen führe folgendes durch:
       
       # config webfiler ftgd-local-cat
       # rename custome1 to whitelist
       # rename custome2 to blacklist
       # end
       
       Um neue Kategorien zu erstellen führe folgendes auf der CLI durch:
       
       # config webfiler ftgd-local-cat
       # edit whitelist
       # next
       # edit blacklist
       # end

Sobald die Kategorien erstellt wurden können diese mit der entsprechenden Aktion versehen werden wie zB Allow oder Block etc.:

       whitelist > Allow oder Monitoring
       blacklist > Block
       Datei:Fortinet-623.jpg
       
       NOTE Wenn innerhalb des WebFiltes eine Site/URL zB nicht Kategorisiert ist oder man die Seite/URL bei Fortinet
            Re-Kategorisieren lassen will, kann dies über die FortiGuard Seite als Anfrage abgesetzt werden. Weitere
            Informationen zu diesem Vorgang siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_betreffend_URL_Filtering_eine_Website_.28URL.29_bei_Fortinet_Re-Kategorisieren_lassen.3F

Wenn nun eine Seite im WebFilter existiert man diese jedoch "lokal" Re-Kategorisieren will muss ein "Override" konfiguriert werden. Wähle dazu:

       FortiOS 5.0
       UTM Security Profiles > Web Filter > Rating Overrides
       
       FortiOS 5.2
       Security Profiles > Advanced > Web Rating Overrides
       
       Datei:Fortinet-621.jpg
       Datei:Fortinet-622.jpg
       
       NOTE Ueber das "Lookup Rating" kann die Standard Kategorisierung der URL abgefragt werden! Dies
            dient ebenfalls als Anhaltspunkt in welcher Kategorie sich die URL innerhalb des URL 
            WebFilters befindet!

Kann ich für einen Webfilter betreffend "Local Category" eine Authentifizierung (authenticate) über Active Directory (LDAP) konfigurieren?

Ja, dies ist möglich! Als Basis für die Konfiguration eine "lokale" Kategorie erstellt analog "whitelisting/blacklisting" zB mit dem Namen "authenticate". Dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F

Danach wird ein Active Directory (LDAP) auf der FortiGate konfiguriert und eingebunden. Dieses Active Directory (LDAP) wird benutzt in einer Gruppe die benutzt wird für die "lokale" Kategorie "authenticate". Wie ein Active Directory (LDAP) konfiguriert wird sowie die genannte Gruppe siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_binde_ich_ein_Active_Directory_.28LDAP.29_f.C3.BCr_eine_Authentifizierung_ein.3F

Wenn die "lokale" Kategorie erstellt wurde sowie die Gruppe die auf das Active Directory (LDAP) verweist öffne den entsprechenden WebFilter und führe folgendes durch:

       UTM Security Profiles > WebFilter > [Wähle das entsprechende Profile] > FortiGuard Categories
       
       Datei:Fortinet-721.jpg
       
       NOTE Sobald die entsprechende "Local Category" auf "Authenticate" gesetzt wird erscheint ein entsprechendes
            Pop-Up indem die entsprechende Gruppe mit der Active Directory Einbindung konfiguriert werden kann. 
            Ebenso kann ein "Warning Interval" definiert werden der dem User in Erinnuerung ruft, dass er diese 
            Seite über eine "Authentifizierung anschaut:
            
            Fortinet-722.jpg

Wie funktioniert betreffend WebFilter der "DNS Inspection Mode"?

Die WebFilter Funktion für eine FortiGate kann unter FortiOS 5.0 / 5.2 betreffend "Inspection Mode" in 3 verschiedene Modi gesetzt werden:

       Proxy Mode
       Flow Mode
       DNS Mode

Neu unter FortiOS 5.0 / 5.2 ist der "DNS Inspection Mode". Wenn dieser aktiviert ist muss folgende Voraussetzungen gegeben sein:

       Als DNS Server unter nachfolgender Position muessen die "FortiGuard" Server definiert werden:
       
       System > Network > DNS > DNS Settings > Use FortiGuard Servers

Wenn dies gegeben ist werden die DNS Anfragen auf der FortiGate "Transparent" abgefangen und über die FortiGuard DNS Server aufgelöst sowie dessen Ratings abgefragt. Der Vorteil dieses Modi ist, dass ebenfalls für SSL (HTTPS) der WebFilter genutzt werden kann ohne ein Zertifikat auf dem Client einzuspielen (SSL Deep Inspection) da die WebFilter Funktion rein auf DNS Abfragen und deren Ratings basiert (CN = Common Name). Der Nachteil dieser Funktion liegt im "delay" dh. die Abfragen an die FortiGuard Server benötigen Ihre Zeit. Dennoch ist dieser Mode eine gute Alternative "ohne" Zertifikate auf den Clients SSL (HTTPS) basierende Seiten über den WebFilter zu kontrollieren.

       NOTE Wenn dieser Mode getester werde möchte, muss der Device über die entsprechende Subscription sowie ordnungsgemäss
            registriert sein (ersichtlich im Dashboard). Nur dann ist man berrechtigt die "FortiGuard DNS Server" zu benutzen. Die 
            Clients selber müssen nicht mit den "FortiGuard DNS Server konfiguriert" werden. Wenn Tests durchgeführt werden auf den
            Clients sollte der "DNS Cache" vorgängig gelöscht werden anhand des folgenden Kommandos:
            
            "ipconfig /flushdns"!

Ein weiterer Nachteil liegt in der eingeschränkten Funktion dh. wenn dieser "DNS Mode" benützt wird stehen folgende Funktionen nicht zur Verfügung:

       • Quotas
       • WebFilter Kategorien die auf "Warning oder Authenticate" gesetzt sind
       • Safe Search
       • URL only scanning für HTTPS
       • Advanced Filter Optionen wie:
                                        - web content filtering
                                        - web resume download blocking
                                        - blocking invalid URLs
                                        - HTTP post action options
                                        - Java applet filtering
                                        - ActiveX filtering
                                        - cookie filtering
                                        - image rating
                                        - allowing websites when a rating error occurs
                                        - blocking HTTP redirects by rating

Fortinet hat im Juli 2013 sogenannte "Supplementary Recipes" Dokumente released was einem Teilbereich des "Cookbook's" entspricht. Dazu gehört ebenfalls ein Dokument das zeigt wie man diesen "DNS Inspection" Mode konfiguriert:

       Datei:FortiGuard DNS web filtering.pdf

Wie schalte ich für WebFilter auf einer FortiGate das Extended-UTM-Log ein?

Per Standard werden WebFilter Events im regulären Log geloggt dh. Traffic Log. Nun möchte man die Events separiert in einem Log loggen kann dies durch das sogenannte "Extended-UTM-Log" erreicht werden. Im WebFilter Profile selber stehen verschiedene Log Optionen neben dem "Extended-UTM-Log" zur Verfügung. Um das "Extended-UTM-Log" zu aktivieren und die vers. Funktionen führe folgendes durch:

      NOTE Die Option "extended-utm-log" steht unter FortiOS 5.2 nicht mehr zur Verfügung.
           Weitere Informationen siehe nachfolgenden Artikel:
           
           FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
      # config webfilter profile
      # edit [Gebe das entsprechende Profile an]
      # config web
      # log-search [enable | disable]
      # end
      # set extended-utm-log [enable | disable]
      # set log-all-url [enable | disable]
      # set web-content-log [enable | disable]
      # set web-filter-command-block-log [enable | disable]
      # set web-filter-cookie-log [enable | disable]
      # set web-filter-applet-log [enable | disable]
      # set web-filter-jscript-log [enable | disable]
      # set web-filter-js-log [enable | disable]
      # set web-filter-vbs-log [enable | disable]
      # set web-filter-unknown-log [enable | disable]
      # set web-filter-referer-log [enable | disable]
      # set web-filter-cookie-removal-log [enable | disable]
      # set web-url-log [enable | disable]
      # set web-invalid-domain-log [enable | disable]
      # set web-ftgd-err-log [enable | disable]
      # set web-ftgd-quota-usage [enable | disable]
      # end
      
      NOTE Es ist zu verifizieren "was" alles aktiviert werden sollte. Um ein Grundlogging für WebFilter
           zu aktivieren sollten folgende Optionen aktiviert werden:
           
                  # set extended-utm-log enable
                  # set log-all-url enable
                  # set web-url-log enable
                  # set web-ftgd-err-log enable

Sobald das "Extended-UTM-Log" aktiviert wurde kann -sofern gewünscht- das UMT Monitoring aktiviert werden:

       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Wie bedeutet der Konfigurationspunkt "Web Overrides" innerhalb der Web Filter Funktion?

Nun diese Funktion steht neu ab FortiOS 5.0.4 / 5.2 zur Verfügung und bedeutet nichts anderes, als das man einen bestehenden WebFilter anhand eines definierten Users, Gruppe oder Source IP und anhand eines "neuen" WebFilter -für eine bestimmte Zeit- überschreiben (Override) kann. Dies bedeutet: Es kann eine Zeitliche Expiration konfiguriert werden dh. um den Override zeitlich zu limitieren. Dadurch können zeitliche Ausnahmen auf User, Gruppe oder Source IP konfiguriert werden. In der Firewall Policy wird nicht das WebFilter Profil für den "Override" benutzt sondern das Orginale (Beispiel: webfilter-http.local.intra). Wenn wie im unteren Beispiel gezeigt ein "Override" existiert für die IP "192.168.1.2" und in der Firewall Policy Rule das Orginal Profile (webfilter-http.local.intra) konfiguriert wurde, wird nicht dieses angewendet sondern das definierte Profile unter der Positon "New Profile" sofern der "Override" Zeitlich noch gültig ist dh. in unserem Beispiel "webfilter-http-override.local.intra":

       NOTE Unter FortiOS 5.2 wurde die Positon des "Override's" verschoben und ist nun neu unter
            folgender Position zu finden:
            
            Security Profiles > Advanced > Web Profile Overrides
       Fortinet-806.jpg

Wie funktioniert der HTTPS scan innerhalb des WebFilter wenn "Deep Inspection" nicht aktiviert ist (Scan Encrypted Connections / HTTPS URL Scan Only)?

Grundsätzlich gilt auf einer FortiGate, wenn "Deep Inspection (Deep Scan)" aktiviert ist (Aufbrechen der SSL Verbindung), dass auf dem Client das entsprechende FortiGate Zertifikat installiert werden muss (Grundvoraussetzung). Diese Art eine SSL Verbindung aufzubrechen ist auch bekannt als "man of the middle". Dies bedeutet wiederum, dass wenn "kein" entsprechendes Zertifikat der FortiGate auf dem Client installiert ist, "Deep Inspection" nicht benutzt werden kann und somit SSL Verbindungen nicht aufgebrochen werden können (Gilt für ALLE UTM Features). Eine Alternative ist die im WebFilter aufgeführt Option "Scan Encrypted Connections". Wenn diese Option "nicht" aktiviert ist -und über CLI die Option "set options https-url-scan enabled" im WeFilter Profile aktiviert ist- wird im Hintergrund folgendes durchgeführt:

          NOTE Unter FortiOS 5.2 existiert die Option innerhalb des WebFilters "Scan Ecrypted Connections" sowie
               in der CLI "https-url-scan" nicht mehr. Dies bedeutet unter FortiOS 5.2 wird die Art und Weise 
               welche Variante benutzt wird dh. "Deep Inspection" oder "HTTPS URL Scan Only" nicht im WebFilter
               Konfiguriert sondern über ein entsprechendes "SSL Protocol Options". Unter FortiOS 5.2 wird ein
               "SSL Protocol Option" unterschieden zwischen "Certificate Inspection" und "Deep Inspection".
               Weitere Informationen dazu siehe nachfolgenden Artikel:
               
               FortiGate-5.0-5.2:FAQ#Wann_muss_ich_die_UTM_SSL_Proxy.2FProtocol_Options_in_der_Firewall_Rule_aktivierten_und_definieren.3F
       1. Im "TLS Handshake" der Verbindung wird der Hostname des Server Namens innerhalb der "Client Hello" 
          Message herausgefiltert (CN = Common Name). Weitere techische Informationen zu diesem Vorgang siehe
          nachfolgenden Link:
          
          FortiGate-5.0-5.2:FAQ#Was_ist_im_Allgemeinen_der_Unterschied_zwischen_.22SSL_Certificate_Inspection.22_und_.22Full_SSL_Inspection.22.3F 
       
       2. Wenn ein gültiger Hostname innerhalb Position 1. herausgefiltert werden kann, ist dieser Hostname 
          Basis für die Abfrage für die FortiGuard WebFilter Kategorien.
       
       3. Wenn kein gültiger Hostname herausgefiltert werden kann innerhalb Position 1. wird ein CN (Common Name)
          basierende Ueberprüfung durchgeführt dh. es wird der CN Name des Zertifikats benützt für die Abfrage
          für die FortiGuard Webfilter Kategorie.
       
          NOTE Bis FortiOS 5.0.2 wurde innerhalb der im WebFilter zur Verfügung stehenden Funktion (HTTPS Scan only)
               ausschliesslich Punkt 3. durchgeführt. Ab FortiOS 5.0.3 wurde die Erweiterung unter Punkt 1. und 2. 
               implementiert.
       
       4. Wenn die Option "block-invalid-hostname" innerhalb  des WebFilters aktiviert ist und Punkt 3. trifft zu so
          wird die Seite geblockt und ein entsprechender Log Eintrag wird erstellt.
       
       5. Desweitere ist zur berücksichtigen: Dem Client wird das orginal Zertifikat des Servers -sofern die Seite 
          über die WebFilter Kategorie erlaubt ist- auf dem Client angezeigt. Wenn die Seite über WebFilter Kategorie
          nicht erlaubt ist, wird das Zertifikat in der "blocked" Nachricht, die FortiGate in so einem Fall ausgiebt,
          angezeigt. Dies ist ebenso technisch gesehen ein Beweis das kein "deep scan" ausgeführt wird, denn ansonsten
          würde das FortiGate Zertifikat dem Client präsentiert und nicht das original Zertifikat (man in the middle).
          Diese "block" Nachricht ist effektiv eine "Replacement Message". Möchte man diese deaktivieren so ist folgendes
          Kommando auszuführen:
          
          # config webfilter profile
          # edit [Name des entsprechenden Profiles]
          # set https-replacemsg disable
          # end
          # end
          
          Wenn diese "https-replacemsg" deaktiviert wird so wird dem User ein zB "Self-sign" Zertikat zur Bestätigung 
          angezeigt und der User kann dies Bestätigen.

Wie das "HTTPS URL Scan Only" ("Scan Encrypted Connections" ist deaktiviert) konfiguriert wird zeigt folgender Artikel;

       FortiGate-5.0-5.2:FAQ#Wie_wird_das_.22Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.22_ohne_.22Deep_Inspection.22_konfiguriert.3F

Wie wird das "Scan Encrypted Connections / HTTPS URL Scan Only" ohne "Deep Inspection" konfiguriert?

Fortinet hat ein Dokument Released für FortiOS 5.0, dass erklärt wie das "HTTPS UTL Scan Only" (Option "Scan Encrypted Connections" ist deaktiviert) konfiguriert wird. Dieses ist kurz und einfach gestaltet und zeigt das Wesentliche:

       NOTE Unter FortiOS 5.2 exisitert die Option "https-url-scan" nicht mehr. Die Funktion "HTTPS URL Scan
            Only" wird unter FortiOS 5.2 über die "SSL Protocol Options" konfiguriert als "certificat-inspection"
            Weitere Auskunft über die Funktionsweise von "HTTPS URL Scan Only" für FortiOS 5.0 sowie FortiOS 5.2
            zeigt nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_funktioniert_der_HTTPS_scan_innerhalb_des_WebFilter_wenn_.22Deep_Inspection.22_nicht_aktiviert_ist_.28Scan_Encrypted_Connections_.2F_HTTPS_URL_Scan_Only.29.3F
       FortiOS 5.0 Only
       Datei:FortiOS.HTTPS.Webfiltering.without.SSL.Deep.Scan.pdf

Wie kann ich innerhalb eines WebFilters einen bestimmten "MIME" Type (zB Audio) blockieren (Content-Header)?

Ein WebFilter ist von Hause aus auf einer FortiGate Domainen/URL basierend dh. die FortiGate merkt von sich aus nicht ob zB ein Audio Streaming und/oder Video Streaming durchgeführt wird. Die FortiGate überprüft die Domaine/URL und lässt diese zu oder blockiert diese. Ebenfalls kann die FortiGate zB betreffend Antivirus Scanning nicht diese Streams ignorieren, denn von sich aus erkennt die FortiGate nicht, dass es sich um einen Audio resp. Video Stream handelt und versucht diesen zu scannen. Dies resultiert in einer höheren Auslastung im Memory (data buffering) obwohl dieses Antivirus Scanning nichts bringt. Aus diesem Grund ist es/kann es Sinnvoll sein "MIME" basirend der FortiGate diese Aufgaben klar mitzuteilen resp. zB Audio und/oder Video Stream's vom Scanning auszuschliessen. Nachfolgendes Beispiel zeigt wie über die Funktion "Content-Header" innerhalb eines WebFilters "Audio und/oder Video Streams geblockt" werden können sowie "Antivirus Scanning deaktiviert wird für Audio und/oder Video Streams":

           NOTE Unter FortiOS 5.2 steht die "MIME" Konfiguration wie gewohnt zur Verfügung und kann
                so -wie nachfolgende erklärt- konfiguriert werden. Neu unter FortiOS 5.2 ist das in 
                den "Protocol Opton's" eine neue Option zur Verfügung steht "streaming-content-bypass"
                die Audio und/oder Video ausschliesst.
                
                FortiGate-5.0-5.2:FAQ#Kann_ich_.C3.BCber_den_.22MIME.22_Header_eine_bestimmte_Applikation_vom_Antivirus_Scanning_ausschliessen.3F

Um zu unterschieden "um was es sich handelt" kann der "MIME" Header (Multipurpose Internet Mail Extensions) analysiert werden um einen "Content-Header" zu konfigurieren der wieder zuständig ist diese "MIME" Header zu erkennen und eine bestimmte Aufgabe zB Deaktivierung von Antivirus Scanning (exempt), zu konfigurieren. Nachfolgendes Beispiel zeigt auf wie zB Audio vom Antivirus Scanning ausgenommen wird sowie über WebFilter Video blockiert wird. Als Basis dazu muss der Stream mit WireShark selber im Sniffer Modus analysiert werden um den "MIME" Type herauszufinden. Eine andere Möglichkeit ist die "Capture" Funktion auf der FortiGate zu nuzen. Die "Capture" Funktion sowie die Möglichkeit Filter zu setzen findet man auf einer FortiGate unter folgender Position:

       System > Network > Packet Capture
       
       NOTE Unter FortiOS 5.2 steht die "Capture" Funktion für kleinere Geräte nicht mehr zu Verfügung.
            Diese Einschränkung steht im Zusammenhang mit dem Umstand, dass bei kleinen Geräten unter 
            FortiOS 5.2 das Disk Logging deaktiviert wurde. Weitere Informationen siehe nachfolgenden Link:
            
            FortiGate-5.0-5.2:FAQ#Packet_Capture

Dieses "Capture" File kann in WireShark eingelesen und analysiert werden dh. man sieht darin den enthaltenen "MIME" Header des Streams und/oder Files. Nachfolgend ein Beispiel basierend auf YouTube. In diesem Beispiel sieht man den "Content-Type" der den "MIME" Header darstellt:

       Hypertext Transfer Protocol
       HTTP/1.0 200 OK\r\n
       Request Version: HTTP/1.0
       Response Code: 200
       Server: DCLK-AdSvr\r\n
       Content-Type: video/x-ms-asf\r\n
       X-Google-Inred-Content-Type: video/x-ms-asf\r\n
       Content-Length: 410\r\n
       Content-Encoding: gzip\r\n
       
       Hypertext Transfer Protocol
       HTTP/1.1 200 OK\r\n
       Request Version: HTTP/1.1
       Response Code: 200
       Last-Modified: Mon, 14 Sep 2009 00:40:51 GMT\r\n
       Content-Type: video/x-flv\r\n
       Content-Length: 200994\r\n
       Connection: close\r\n
       Content-Disposition: attachment; filename="video.flv"\r\n
       Expires: Thu, 29 Oct 2009 09:06:24 GMT\r\n
       Cache-Control: public,max-age=3600\r\n
       Date: Thu, 29 Oct 2009 08:06:24 GMT\r\n
       Server: gvs 1.0\r\n

Als nächstes muss im WebFilter ein "Content-Header" konfiguriert werden. Dazu wird "Regular Expression" (RegEx) benutzt um verschiedenen "Content-Type's" in der gleichen Kategorie abzudecken dh. unser "Content-Type" in unserem Beispiel wäre:

       Content-Type: video/x-ms-asf\r\n
       Content-Type: video/x-flv\r\n

Natürlich kann genau dieser "Content-Type" als zB "video/x-ms-asf\r\n" abgedeckt werden da wir jedoch "alle" Video's abdecken möchten benutzen wir anhand "Regular Expression" folgendes:

       Folgendes ist im "Content-Type" enthalten:
       
               video/x-flv\r\n
               video/x-ms-asf\r\n
       
       Wir möchten alle Videos abdecken dh. alles was "nach" Video kommt soll über RegEx abgedeckt werden. Die 
       im "Content-Type" enthaltenen Endungen dh. zB .ms, .asf sollen ebenfalls abgedeckt werden. Somit ergiebt
       sich folgendes:
       
               video\\/.*
       
       NOTE Das Zeichen "/" stellt im RegEx ein Sonderzeichen dar und muss "escaped" werden dh. es muss speziell
            markiert werden als Sonderzeichen. Dies wird mit der Kombination "\\" durchgeführt und bedeutet nichts
            anders als "Achtung jetzt kommt ein Sonderzeichen"!
       
       Möchte man im "Content-Type" ebenfalls "audio" abdecken wäre dies:
       
               audio\\/.*

Daraus resultierend ergiebt sich folgendes Kommando für den "Content Header" im WebFilter:

       # config webfilter content-header
       # edit [Gebe einen Integer an zB "1"]
       # set comment [Setze einen Kommentar zB "block video exempt audio"]
       # config entries
       # edit "video\\/.*"
       # set action block
       # next
       # edit "audio\\/.*"
       # set action exempt
       # next
       # end
       # set name [Setze einen Namen für den "Content-Header" zB "block-video-exempt-audio"]
       # next
       # end
       
       NOTE Unter der Position "action" kann folgendes konfiguriert werden und hat folgende Bedeutung:
            
            allow  — Erlauben des zutreffenden Content's.
            block  — Blocken des zutreffenden Content's.
            exempt — Ausschliessen des zutreffenden Content's.
            
            Zusätzlich zu der Option "action" kann ebenfalls die Kategorie mit folgenden Befehl gesetzt werden:
            
            # set category [Gebe die entsprechende Kategorie an; Gebe "?" an um die Kategorien aufzulisten]

Der "Content-Header" ist konfiguriert. Jetzt muss dieser einem entsprechenden "WebFilter Profile" hinzugefügt werden:

       FortiOS 5.0 / 5.2
       # config webfilter profile
       # edit [Wähle den Namen des entsprechenden WebFilter Profiles]
       # config web
       # set content-header-list 1
       # end
       # next
       # end
       FortiOS 4 MR3
       # config webfilter profile
       # edit [Wähle den Namen des entsprechenden WebFilter Profiles]
       # config http
       # set options contenttype-check
       # end
       # config web
       # set content-header-list 1
       # end
       # next
       # end

Wie kann ich innerhalb eines WebFilters einzelne Sites/Kategorien vom "Deep Inspection" ausschliessen?

Wenn auf einer FortiGate das Ordnungsgemässe "Deep Inspection" konfiguriert ist dh. auf dem Client/Workstation wird das Zertifikat der FortiGate importiert stellt sich die Frage "wie" man innerhalb eines WebFilter's der "Deep Inspection" benutzt HTTPS Seiten von dieser Funktion ausschliesst. Dieser Ausschluss kann über eine eigenen "lokale" Kategorie durchgeführt werden. Wie man so eine "lokale" Kategorie erstellt zB "exempt-ssl" siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_im_Zusammenhang_mit_dem_URL_WebFiltering_ein_.22whitelisting.22_und.2Foder_.22blacklisting.22_konfigurieren.3F

Ausgehend davon das durch obenen Artikel eine eigene Kategorie unter "Local Categories" erstellt wurde zB "exempt-ssl" und diese als "allow" konfiguriert wurde kann nun folgendes durchgeführt werden:

       NOTE Unter FortiOS 5.2 steht die Option "exempt-ssl" für "config ftgd-wf" nicht mehr zur Verfügung.
            Der Grund dafür ist, dass diese Funktion direkt in den "SSL Protocol Options" konfiguriert
            werden kann. Weitere Informationen siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_die_UTM_SSL_Proxy.2FProtocol_Options_manuell_.C3.BCber_Kommandozeile.3F
       # config webfilter profile 
       # edit [Name des entsprechenden Profiles] 
       # config ftgd-wf 
       # set exempt-ssl [ID der entsprechenden Kategorie]
       # end 
       # end
       
       NOTE Wenn mehrer Kategorien angegeben werden sollen führe diese nacheinander
            auf mit einem Leerschlag dazwischen dh. zB:
            
            143 120 20
            
            Es können ebenfalls reguläre resp. standard Kategorien des WebFilters komplett
            mit deren ID angegeben werden und somit ausgeschlossen werden von der Funktion
            der "SSL-Inspection". Ebenso steht die Option "all" zur Verfügung!
            

Um die ID der entsprechenden "Local Category" rauszufinden benütze folgenden Befehl:

       # config webfiler ftgd-local-cat
       # edit [Gebe den Namen der entsprechenden Local Category an zB "exempt-ssl"]
       # get
       desc                : exempt-ssl
       id                  : 143
       # end

Was bedeutet innerhalb eines WebFilter Profiles die Position "YouTube Education Filter" und wie benutze ich diesen?

Kurz umschrieben bedeutet diese Position folgendes: "YouTube Education Filter" eine Möglichkeit für ein Unternehmen (speziell für Schulen) einen Account auf YouTube anzulegen und dort anhand des "YouTube Accounts" zu definieren "welche" YouTube Videos freigegeben sind. Zugeschnitten ist diese Funktion resp. die Art "YouTube Videos zu Filtern" auf Schulen kann jedoch auch von Enterprise Unternehmen genutzt werden. Um auf YouTube einen "Education Account" anzulegen folge nachfolgenden Link:

       http://www.youtube.com/schools

Wenn man einen "Education Account" anlegt wird diese mit einem "YouTube Edu Filter" Passwort verknüpft. Dieses "Passwort" wird dann benutzt um im entsprechenden WebFilter Profile unter folgender Position den "YouTube Education Filter" zu konfigurieren:

       UTM Security Profiles > WebFilter > Profile > [Wähle das entsprechende Profile] > YouTube Education Filter

Wenn man die Konfiguration in der CLI durchführen möchte wäre dies die folgenden Kommandos:

       # config webfilter profile
       # edit [Wähle das entsprechende Profile]
       # config web
       # set safe-search header
       # set youtube-edu-filter-id [Setze das entsprechende Passwort für den "YouTube Education Filter"]
       # end
       # end
       
       NOTE Um zu verhindern, dass dieser YouTube Education Filter umgangen wird zB mit https muss bei der 
            Implementierung einigen Umständen rechnung getragen werden. Im nachfolgenden Dokument von Fortinet wird
            dieser Umstand beschrieben:
            
            Datei:Setting-up-YouTube-for-Education-Fortigate.pdf
            Datei:How-YouTube-for-Schools-Works-YouTube-Help.pdf

Kann ich über einen URL Filter anhand eines "referrer's" eine Seite erlauben und/oder blockieren?

Ein "referrer" auch "Verweis" ist die Information die zum Zielserver übermittelt wird wenn von einer Internetseite ein Link aufgerufen wird der auf eine andere Seite verweist. Dies bedeutet:

       Angenommen, die Webseite http://www.also.ch enthält einen Link auf http://fortinet.also.ch/wiki/FortiGate-5.0-5.2:FAQ.
       Wenn der Benutzer diesen Link in seinem Webbrowser auswählt (anklickt), dann wird vom Browser eine Verbindung 
       zu dem Webserver aufgebaut, der unter dem Namen fortinet.also.ch erreichbar ist, und die gewünschte Seite 
       anfordert. In diesem Beispiel sendet der Webbrowser folgende Anforderung in der Syntax des Hypertext Transfer 
       Protocols (RFC 2616 Hypertext Transfer Protocol HTTP/1.1):
       
       GET /wiki/FortiGate-5.0-5.2:FAQ HTTP/1.1
       Host: fortinet.also.ch
       Referer: http://www.also.ch

Unter FortiOS 5.2 wurde die Funktion des "referrer's" zum URL Filter Funktion hinzugefügt dh. anhand diesem kann innerhalb des URL Filter eine Seite blockiert und/oder erlaubt werden. Um die Konfiguration in der Kommandline durchzuführen führe folgendes aus:

       # config webfilter urlfilter
       # edit [Gebe eine entsprechende ID an zB 1]
       # config entries
       # edit 1
       # set url [Gebe eine entsprechende URL im Zusammenhang mit der Option "type"]
       # set referrer-host <url>
       # set type [simple | regex | wildcard]
       # set action [block | allow | monitor | exempt]
       # set status [enable | disable]
       # end
       # end

Die Konfiguration kann ebenfalls unter Web Mgmt. Interface durchgeführt werden jedoch muss der "referrer" als Funktion innerhalb des URL Filters aktiviert werden:

       # config system global
       # set gui-webfilter-advanced enable
       # end

Danach steht die "referrer" Funktion innerhalb des URL Filter's zur Verfügung:

       Security Profiles > Web Filter > Static URL Filter
       
       Fortinet-1290.jpg

Kann ich über einen WebFilter eine Site/Domaine vom UTM Security Profiles Action wie Antivirus, DLP usw. ausschliessen?

Ja dies ist möglich und kann über den "URL Filter" als Action "exempt" konfiguriert werden. Ausgehender von folgender Firewall Policy Rule gilt folgendes:

       Sequenz  Source Interface        Source IP           Destination Interface        Destination IP        Action           Security Profiles
       
       1        internal                all                 wan1                         all                   allow            Antivirus Profile 
                                                                                                                                WebFilter Profile
                                                                                                                                Protocol Options

Durch diese Firewall Policy Rule und deren Security Profiles wird in erster Linie der WebFilter als Erstes kontrolliert dh. ob die aufgerufene Site für "Allow" (resp. Monitor) zugelassen ist. Ist dies der Fall, kommen andere Security Profiles zum Zuge wie zB Antivirus, DLP usw. Dies bedeutet: Obwohl eine Site im WebFilter "Allow" erlaubt ist, kann diese durch die Antivirus Funktion geblockt werden. Möchte man zB Sites vom Antivirus Scanning oder von Security Profile Aktionen ausschliessen, kann anhand eines URL Filter's und der Aktion "exempt" dies konfiguriert werden: Wähle dazu folgendes:

       Security Profiles > Web Filter > Static URL Filter
       
       Fortinet-1290.jpg

Unter URL kann nun die entsprechende Site/Domain hinzugefügt werden. Als Beispiel: Möchte man zB sämtliche Apple Site/Domain's vom Antivirus ausschliessen gibt man unter URL folgendes ein:

       apple.com

Der Type kann bei diesem Beispiel auf "Simple" gesetzt werden und die Action auf "Exempt". Wenn die Action auf "Exempt" gesetzt wird kann anhand "set exempt" unter Kommandozeile folgende Optionen gesetzt werden:

       activex-java-cookie     ActiveX, Java, and cookie filtering.
       all                     Exempt from all.
       av                      Antivirus filtering.
       dlp                     DLP scanning.
       filepattern             File pattern matching.
       fortiguard              FortiGuard web filtering.
       pass                    Pass single connection from all.
       range-block             Exempt range block feature.
       web-content             Web filter content matching.
       
       NOTE Wird die Action auf "Exempt" gesetzt gilt als Standard für "set exempt" folgende Optionen:
            
            set exempt av web-content activex-java-cookie dlp fortiguard range-block all
            
            Dies bedeutet es werden sämtliche Security Profiles resp. UTM Funktionen definiert und sind
            somit ausgeschlossen resp. werden nicht durchgeführt! Somit kann durch diese Funktion eine
            Site/Domain komplett vom Antivirus Scanning durch "set exempt av" ausgeschlossen werden. Wenn
            dies durchgeführt wird werden sämtliche "nicht unter set exempt" definierten Security Profiles
            resp. UTM Funktionen durchgeführt.

Auf der Kommandozeile kann dies folgendermassen konfiguriert werden:

       # config webfilter urlfilter
       # edit [Integer für Web Filter Profile zB 1]
       # config entries
       # edit [Gebe einen entsprechenden Integer an zB 1]
       # set url [Gebe die entsprechende URL an zB apple.com]
       # set type [simple | regex | wildcard]
       # set action [exempt | block | allow | monitor]
       # set exempt [Setze die entsprechenden ausgeschlossenen Option sofern "action exempt" gesetzt ist; av | web-content | activex-java-cookie | dlp | fortiguard | range-block all]
       # set status [enable | disable]
       # unset referrer-host
       # end
       # end
       
       NOTE Wird innerhalb "exempt" zB "av" gesetzt wird Antivirus ausgeschlossen für diese Site. Dies ist jedoch über
            Web Mgmt. Interface nicht ersichtlich, sondern dort ist nur "Exempt" ersichtlich! Aus diesem Grund ist diese
            Konfiguration innerhalb einer Firewall Policy Rule nicht Transparent und Ersichtlich. Eine andere Möglichkeite 
            eine Site/Domaine von einem Security Profile resp. UTM Funktion auszuschliessen ist eine entsprechende Firewall 
            Policy Rule zu konfigurieren. Weitere Informationen dazu siehe nachfolgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_bestimmte_Site.2FDomain_vom_Antivirus_Scanning_ausschliessen.3F

Kann ich innerhalb eines WebFilters für zB Images und Java über FortiGuard ein Rating durchführen?

Unter FortiOS 5.0 war es nicht möglich zB Javascript und Images über FortiGuard ein Rating auszuführen dh. unter FortiOS 5.2 ist es nun möglich ein Rating auszuführen betreffend den Links die im Zusammenhang stehen für die einzelnen Funktionen wie zB Images und Java. Diese Funktion ist nur über Kommandozeile verfübar und wird folgendermassen konfiguriert:

       # config webfilter profile
       # edit [Name des entsprechenden Profiles]
       # config ftgd-wf
       # set rate-javascript-urls [enable | disable]
       # set rate-css-urls [enable | disable]
       # set rate-crl-urls [enable | disable]
       # set rate-image-urls [enable | disable]
       # end
       # end
       # end

Spamfilter

Wie schalte ich für eine Spamfilter auf einer FortiGate das Extended-UTM-Log ein?

Im normal Fall werden Spamfilter Events im regulären Log geloggt. Nun möchte man die Event seperiert in einem Log loggen kann dies durch das sogenannte "Extended-UTM-Log" (Nur für FortiOS 5.0) erreicht werden. Um dieses "Extended-UTM-Log" zu aktivieren führe folgendes durch:

      # config spamfilter profile
      # edit [Gebe das entsprechende Profile an]
      # set extended-utm-log [enable | disable]
      # end
      
      NOTE Die Option "extended-utm-log" steht für FortiOS 5.2 nicht mehr zur Verfügung.
           Weitere Informationen siehe nachfolgenden Artikel:
           
           FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F

Sobald diese "Extended-UTM-Log's" wieder zur Verfügung stehen kann das "UTM Monitoring" aktiviert werden. Wie dies durchgeführt wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Was wird im Allgemeinen im EMail/Spamfilter per Standard abgearbeitet?

Wenn ein E-Mail Filter auf einer FortiGate mit seinen aktivierten Optionen in einer Firewall Policy benutzt wird so wird bei unverschlüsselten SMTP oder verschlüsselten SMTPS Traffic -sofern der Device dies unterstützt- folgendes innerhalb des Spamfilters per STandard in folgender Reihenfolge abgearbeitet:

       1. IP address black/white list (BWL) check on last hop IP (hdrip)
       
       2. DNSBL & ORDBL check on last hop IP, FortiGuard Antispam IP check on last hop IP, HELO DNS lookup
       
       3. MIME headers check, E-mail address BWL check
       
       4. Banned word check on email subject
       
       5. IP address BWL check (for IPs extracted from “Received” headers)
       
       6. Banned word check on email body
       
       7. Return email DNS check, FortiGuard Antispam email checksum check, FortiGuard Antispam URL check, DNSBL & ORDBL check on public IP extracted from header.

Für IMAP, POP3 und POP3S gilt folgendes:

       1. MIME headers check, E-mail address BWL check
       
       2. Banned word check on email subject
       
       3. IP BWL check
       
       4. Banned word check on email body
       
       5. Return email DNS check, FortiGuard Antispam email checksum check, FortiGuard Antispam URL check, DNSBL & ORDBL check.

Wie konfiguriere ich einen DNSBL Server für den Emailfilter?

Zusätzlich zu den Standard Funktionen des Email Filters können DNSBL Server konfiguriert werden wie zB ein Server von "Spamhaus Project" (ZEN Server zen.spamhaus.org IP Blacklisting Lookup). Um so einen DNSBL Server zu konfigurieren gebe auf der CLI folgendes ein:

       # config spamfilter dnsbl
       # edit [Gebe einen Integer an zB "1"]
       # set name [Gebe einen Namen ein zB "spamhaus"
       # set comment [Gebe einen entsprechenden Kommentar ein]
       # config entries
       # edit [Gebe einen Integer an für den Server zB "1"]
       # set action [reject | spam]
       # set server [Gebe den FQDN des DNSBL Servers an zB "zen.spamhaus.org"]
       # set status [enable | disable]
       # end
       
       NOTE Weitere informationen betreffend zur verfügung stehende DNSBL Server findet man nachfolgend:
            
            zen.spamhaus.org               http://www.spamhaus.org
            bl.spamcop.net                 http://www.spamcop.net
            dnsbl.sorbs.net                http://www.sorbs.net
            dnsbl.ahbl.org                 http://www.ahbl.org

Welche IP's werden im Header eines EMail durch den Spamfilter überprüft?

Nun im Header eines EMails wird der Weg der Nachricht mit der IP aufgezeigt. Die Abfolge wird vom Abschnitt "Subject" von Unten nach Oben gelesen dh. von Unten nach Oben wird der "Weg der Nachricht" augezeigt mit den IP's sowie FQDN die auf dem Weg der Uebermittlung benutzt wurden. Nun bei der Spamfilter Ueberprüfung auf einer FortiGate wird per Standard der letzte Hop betreffend seiner IP überprüft dh. ob diese in einer Spamliste geführt wird oder nicht. Ist dies der Fall, wird das Mail markiert als SPAM und zugestellt. In gewissen Situation macht es Sinn nicht nur den letzten Hop zu überprüfen sondern alle IP's die benutzt wurden für die Nachrichten Uebermittlung. Möchte man diese Option aktivieren kann dies über die Option "hdrip" durchgeführt werden. Diese Option ist per Standard deaktiviert (hdrip disable) dh. es wird nur wie bereits erwähnt der letzte Hop überprüft. Um diese Option zu aktivieren führe auf der Kommandozeile folgendes aus:

       # config spamfilter profile
       # edit [Wähle das entsprechende Profil]		
       # config smtp		
       # set hdrip enable
       # end
       # end
       
       NOTE Die Option "hdrip" kann nur gesetzt werden wenn im entsprechenden "Email Filter" über Gui die Spam 
            Detection "Enable Spam Detection and Filtering" aktiviert ist. Ueber Kommandozeile wird die Spam Detection
            folgendermassen aktiviert:
            
            # config spamfilter profile
            # edit [Wähle das entsprechende Profil]		
            # set spam-filtering enable
            # end

Wenn es bei der Ueberprüfung über die Option hdrip (AntiSpam Whitelisting/Blacklisting) zu einem False Positive kommt, kann dieser nicht überschrieben werden durch eine Manuelle Konfiguration. In so einem Fall kann Fortinet kontaktiert werden! Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_IP_die_im_FortiGuard_Service_als_.22Blacklist.22_gef.C3.BChrt_wird_entfernen_lassen.3F

Wie kann ich eine IP die im FortiGuard Service als "Blacklist" geführt wird entfernen lassen?

Eine IP im Zusammenhang mit SMTP kann über folgenden Link überprüft werden ob diese im FortiGuard Service als "Blacklist" geführt wird dh. eine schlechte Reputation hat:

       http://www.fortiguard.com/static/antispam.html
       
       NOTE Das entsprechende Feld befindet sich ganz am Ende der Seite! Um diese Seite
            zu erreichen benötigt man einen "Support Account".

Wenn die besagte IP die zur Ueberprüfung auf dieser Seite als "Blacklist" bestätigt wurde und es sich um ein False Positive handelt oder das Problem betreffend dieser IP gelöst wurde kann ein entsprechender Antrag an folgende Email Adresse gesendet werden:

       removespam@fortinet.com

Bei der Uebermittlung sollten die entsprechende Information mitgegeben werden (Email in Englisch) dh. ein Antrag nur mit der Information die besagte IP zu entfernen ist Nutzlos dh. zu Empfehlen ist eine kurz Uebersicht über das Problem zu geben und die entsprechenden Eingriffe um zukünftig das Problem zu verhindern. Werden die Informationen entsprechend durchgegeben werden so wird die entsprechende IP innerhalb 24 Stunden entfernt.

Wie kann ich den ASE (Antispam Engine) auf einer FortiGate deaktivieren?

Der ASE resp. die Antispam Engine kann über folgenden Befehl deaktiviert werden:

       # config system fortiguard 
       # set antispam-force-off [enable | disable] 
       # end

Dieser Befehl deaktiviert den ASE komplett auf der FortiGate!

Traffic Shaper

Wo finde ich eine Beschreibung des Traffic Shapings auf einer Fortigate?

Folgende Dokument4 geben in den verschiedenen Versionen Auskunft resp. einen guten Ueberblick über das "Traffic Shaping" auf einer Fortigate:

       Datei:Fortigate-traffic-shaping-40-mr3.pdf
       Datei:Fortigate-traffic-shaping-50.pdf
       Datei:Fortigate-traffic-shaping-52.pdf

Wie kann ich für eine bestimmte Applikation garantierte Bandbreite zur Verfügung stellen?

Um einer Applikation eine garantierte Bandbreite zur Verfügung zu stellen muss auf der Fortigate eine "Traffic Shaper" Konfiguration durchgeführt werden. Die Grundlage so einer Konfiguration ist die Definition der Bandbreite der Applikation dh. die Bandbreite muss definiert werden für:

       - Maximum Bandwidth
       - Guaranteed Bandwidth
       - Traffic Priority
       
       NOTE Die momentane Bandbreite die benützt wird auf einem Interface wird vom FortiOS jede (1) Sekunde überprüft!

Diese Bandbreite wird unter "Firewall Objects > Traffic Shaper > Shared" für jeden Zweck/Applikation definiert. Nachträglich wird diese Definition in den Firewall Policy/Rule konfiguriert. Im nachfolgenden Beispiel nehme wir an wir hätten einen WebServer im DMZ und User im internal LAN. Da dem WebServer -für die internal User- eine wichtige Funktion zukommt, soll die Bandbreite für diesen WebServer garantiert werden. Anderer Traffic in die DMZ soll ebenfalls seine Bandbreite bekommen. Wir gehen von einem 1 GB Netzwerk aus und definieren folgende Bandbreite für den WebServer:

       -> Maximum Bandwidth       16776000              entspricht 1000 MBit/s oder 1 GB
       -> Guaranteed Bandwidth    204800                entspricht 200 MBit/s
       -> Traffic Priority        High

Un folgende Bandbreite für den restlichen Traffic im DMZ:

       -> Guaranteed Bandwidth    102400                entspricht 100 MBit/s
       -> Traffic Priority        Medium

Dies bedeutet wir möchten unserem WebServer permanente 200 MBit/s garantieren. Für den restlichen Traffic garantieren wir 100 MBit/s. Die Frage ist wieso nicht mehr garantiert wird für den restlichen Traffic da ja noch 800 Mbit übrig sind nach Abzug der 200 MBit/s für den WebServer? Nun da die internen User -um zum DMZ zu gelangen- das interne Interface benützen sollte nicht mehr für den restlichen DMZ Traffic zugewiesen werden da ansonsten kein Traffic Volumen mehr übrig bleibt für das interne Interface für andere Destinationen wie WAN. Für die Umrechnung und die korrekte Definition benutze nachfolgende Tabelle:

       Umrechnungstabelle: KBit/s - KB/s
       
       Datei:Fortinet-181.jpg

Wie schon erwähnt muss für die Definition unter Firewall Objects die entsprechenden Definitionen der Bandbreite durchgeführt werden:

       NOTE Unter FortiOS 5.2 wurde die Menüposition des Traffic Shapers verändert dh. 
            
            Poicy & Objects > Objects > Traffic Shapers
       Firewall Objects > Traffic Shaper > Shared
       
       Datei:Fortinet-182.jpg
       Datei:Fortinet-183.jpg
       Datei:Fortinet-182.jpg
       Datei:Fortinet-184.jpg

Nun kann die Policy/Rule erstellt werden in der die Bandbreite definiert wird:

       Policy > Policy > Policy
       
       Datei:Fortinet-185.jpg
       Datei:Fortinet-186.jpg
       
       NOTE Die IP 192.168.2.1 stellt die IP des WebServers dar! Somit wird dieser IP unser Profil "WebServer-DMZ" 
            betreffend Bandbreite zugewiesen!

Erfasse nun eine Policy/Rule für den restlichen Traffic im DMZ!

       Datei:Fortinet-187.jpg

Es ergiebt sich folgende Situation nach dem erstellen der Policy/Rule:

       Datei:Fortinet-188.jpg
       
       NOTE Achte darauf das die Reihenfolge der Policy/Rule korrekt ist dh. da die Rule des WebServers zuerst zieht greift
            die Definitioon der Bandbreite. Wäre die zweite Policy/Rule an erster Stelle und da die Destination auf "any" steht,
            würde diese Rule auch für den WebServer ziehen (First Match wins)!

Nach einem Test kann die Konfiguration im Monitor unter folgender Position kontrolliert werden:

       Policy & Objects > Monitor > Traffic Shaper Monitor

In den Logs kann dies ebenfalls kontrolliert werden dh. ob die Definition greift. Ist dies der Fall sieht man unter den Details im Log die Position Sent Shaper Name. Als Name erscheint auf dieser Position der Name des Profiles resp. der Definition also in unserem Fall "WebServer-DMZ" oder "DMZ".


Was ist der Unterschied zwischen "Shared Traffic Shaper" und "Per-IP Shaper"?

Der Unterschied zwischen "Shared Traffic Shaper" und "Per-IP Shaper" ist der Folgende:

       Shared Traffic Shaper      Ein "Shared Traffic Shaper" wird auf sämtlichen aggregierten Traffic angewendet der den Traffic Shaper benützt. 
                                  Dieser kann definiert werden "per-policy" oder über die ganze "policy".
       Per-IP Shaper              Ein "Per-IP Shaper" wird angewandt auf den aggregierten Traffic betreffend definierten/konfigurierten Source IP
       Fortinet-1421.jpg

Wie stelle ich auf einer FortiGate fest ob Packete für einen "Shared Shaper" verworfen werden?

Wenn ein "Shared Shaper" eingesetzt wird (nicht für Per-IP Shaper) so stehen zwei Kommandos auf einer FortiGate zur Verfügung um festzustellen ob der "Shared Shaper" Packete verwirft:

       # diagnoe firewall shaper traffic-shaper list
       
       name guarantee-100kbps
       maximum-bandwith 131072 KB/sec
       guaranteed-bandwith 12 KB/sec
       current-bandwith 0 B/sec
       priority 2
       tos off
       packets dropped 160
       
       name high-priority
       maximum-bandwith 131072 KB/sec
       guaranteed-bandwith 0 KB/sec
       current-bandwith 0 B/sec
       priority 2
       tos off
       packets dropped 0
       # diagnose firewall shaper traffic-shaper stats
       
       shapers 5 ipv4 ipv6 0 drops 160

Wie stelle ich auf einer FortiGate fest ob Packete für einen "Per-IP Shaper" verworfen werden?

Wenn ein "Per-IP Shaper" eingesetzt wird (nicht für Shared Shaper) so stehen folgende Kommandos auf einer FortiGate zur Verfügung um festzustellen ob der "Per-IP Shaper" Packete verwirft:

       # diagnoe firewall shaper per-ip-shaper list
       
       name Max50KPerIP
       maximum-bandwith 6250 KB/sec
       maximum-concurrent-session 20
       tos ff/ff
       packets dropped 121
       # diagnose firewall shaper per-ip-shaper stats
       
       memory allocated 1 packet dropped: 121

Wie kann ich die Bandbreite auf einem Interface definieren für Inbound/Outbound?

Wenn man auf einem Interface die Bandbreite betreffend Inbound/Outbound limitieren möchte kann dies über folgenden Befehl durchgeführt werden:

       # config system interface
       # edit [Name des Interface zB "wan1"]
       # set inbandwidth [Definiton in "Kbit/sec" zB 1 Mbit "1024"; Standard 0 dh. "unlimited"]
       # set outbandwidth [Definiton in "Kbit/sec" zB 1 Mbit "1024"; Standard 0 dh. "unlimited"]
       # end

Die Inbound/Outbound Limite kann auf mehreren Interfaces gleichzeitig gesetzt werden und überschreibt ein Traffic Shaping in erster Priorität dh. dieser Wert wird "vor" der Traffic Shaping benutzt. Dies bedeutet: Ist auf einem Interface zB für Inbound/Outbound "1024" gesetzt (1 Mbit) so steht für die weitere Traffic Shaping Definition nur noch "1 Mbit" zur Verfügung. Die Limitierung betreffend Inbound/Outbound ist keine Voraussetzung für die Traffic Shaping Definition. Accelerated Traffic für NP2/4 sowie SP3 werden nicht beinflusst dh. "offloading" wird nachwievor durchgeführt!

Wie kann ich für eine bestimmten Zweck (zB Citrix) den Traffic Markieren damit zB Router den Traffic Priorisieren/Kategorisieren?

Wenn man zB über einen Provider einen bestimmten Traffic übermittlet und dieser Provider verschiedene Kategorieren zur Verfügung stellt um diesen Traffic zu Priorisieren muss der Traffic "markiert" werden. Dies wird über ToS oder DSCP durchgeführt. ToS wird in RFC 791 definiert und erweitert durch RFC 1349. DSCP ist die Ablösung von ToS und wird im RFC 2474 definiert. Folgende Seite gibt einen guten Ueberblick:

       http://bogpeople.com/networking/dscp.shtml
       
       http://en.wikipedia.org/wiki/Differentiated_Services_Code_Point#Classification_and_marking

Wenn nun ein Provider zB "AF41" verlangt wäre dies "Precedence 4" was wiederum "Class Selector 4" entspricht:

       Datei:Fortinet-324.jpg

Dies bedeutet wiederum:

       Class Selector 4 = 100xxx 
       AF41             = xxx010
       
       Ergiebt          = 100010 (oder Dezimal 34)

Anhand dieser Informationen erstellt man unter folgenden Punkt für den "Traffic Shaper" den entsprechenden Eintrag:

       Firewall Objects > Traffic Shaper > Shared
       
       Datei:Fortinet-325.jpg
       
       NOTE Möchte man diese Konfiguration per Kommandozeile ausführen führt man folgendes durch:
            
            # config firewall shaper traffic-shaper
            # edit [Name für das Profile zB "Citrix-CS4-AF41"]
            # set priority high
            # set per-policy disable
            # set diffserv enable
            # unset diffservcode
            # set diffservcode 100010
            # end
            
            Beachte bitte ebenfalls ob das entsprechende Profile "per-policy" aktiviert oder deaktiviert wird. Dies bedeutet:
            Wird "per-policy" aktiviert so wird der Traffic nur auf einer bestimmten Policy markiert indem das Profile hinzugefügt
            wurde. Wird "per-policy" deaktiviert so wird jeder Traffic markiert. Je nachdem um was es sich für einen Service handelt
            macht es Sinn das Profile Global zu benutzen "per-policy disable"!

Diesen Eintrag "Citrix-CS4-AF41" kann nun in der entsprechendne Policy unter "Traffic Shaping" als "Shared Traffic Shaper" definiert werden sowie nachträglich getestet werden.

       NOTE Folgender Link gibt Auskunft wie DSCP über eine FortiGate durchgeführt wird sowie wie sich DSCP über ein VPN zu implementieren ist:
       
            http://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&externalId=13587&sliceId=1&docTypeID=DT_KCARTICLE_1_1&dialogID=38530996&stateId=0%200%2038532675

Wenn der Traffic durch die FortiGate nicht markiert wird jedoch der Inbound/Outbound Traffic anhand einer Markierung in einer Firewall Policy priorisiert werden möchte, muss dies per Kommandozeile in der entsprechenden Firewall Policy konfiguriert werden anhand folgender Optionen:

       # config firewall policy
       # edit [Gebe die ID an der entsprechender Firewall Policy für die Priorisierung resp. Traffic]
       # diffserv-forward [enable | disable]
       # diffservercode-forward [In unserem Beispiel 100010]
       # diffserv-reverse [enable | disable]
       # diffservcode-rev [In unserem Beispiel 100010]
       # end
       
       NOTE Die Optionen die hier gesetzt werden in Zusammenhang mit "DSCP" haben folgende Bedeutung:
            
            diffserv-forward (Priorisiert den "forward" Traffic basierend auf Option "diffservercode-forward")
            diffserv-reverse (Priorisiert den "reverse" Traffic basierend auf Option "diffservcode-rev")
            
            Der "diffservercode-forward/reverse" definiert wie in diesem Artikel beschrieben den 
            entsprechenden Code

VoIP

Muss ich den SIP Session Helper unter FortiOS 5 löschen und wann wird SIP ALG benutzt?

In allen vorgängigen FortiOS Versionen wurde der SIP Session Helper betreffend SIP Session's als Standard genutzt. Unter FortiOS 5.0 wurde neu der SIP ALG (SIP Application Layer Gateway) eingeführt und nichts desto trotz wurde unter FortiOS 5.0 per Standard der SIP Session Helper genutzt und nicht der SIP ALG. Nachfolgender Artikel zeigt in einer kurzen Uebersicht um "was" es sich beim SIP ALG handelt:

       FortiGate-5.0-5.2:FAQ#Was_ist_ein_SIP_ALG_.28Application_Layer_Gateway.29_und_wieso_soll_ich_diesen_benutzen.3F

Aus diesem Grund musste man unter FortiOS 5.0 den SIP Session Helper löschen um den SIP ALG resp. nicht beide SIP Session Helper und SIP ALG zu nutzen. Weitere Informationen wie der SIP Session Helper gelöscht wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Was_ist_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F

Neu ab FortiOS 5.2 ist der SIP Session Helper kein Standard mehr sondern der SIP ALG. Somit muss unter FortiOS 5.2 der SIP Session Helper nicht mehr gelöscht werden da dieser nicht genutzt wird da SIP ALG per Standard genutzt wird. Wenn man "nicht" den SIP ALG per Standard benutzen möchte unter FortiOS 5.2 resp. man selber bestimmen will "was" der Standard sein soll betreffend SIP Traffic kann dies unter FortiOS 5.2 neu definiert werden anhand folgenden Kommandos:

       # config system settings
       # set default-voip-alg-mode [proxy-based | kernel-helper-based]
       # end
       
       NOTE Die Optionen "proxy-based" und/oder "kernel-helper-based" haben folgende Bedeutung:
            
            proxy-based          = SIP ALG (SIP ALG läuft im User Space)
            kernel-helper-based  = SIP Session Helper (SIP Helper läuft im Kernel Mode)
            
            Bei der Konfiguration betreffend dieser Option ist folgendes zu berücksichtigen:
            
            Obwohl "default-voip-alg-mode" auf "kernel-helper-based" gesetzt ist dh. SIP Session Helper, wird
            der Traffic über den SIP ALG abgewickelt wenn der Traffic eine Firewall Policy Rule matched die ein
            VoIP Profile konfiguriert hat. Explizit wird der SIP Session Helper nur benutzt wenn in der entsprechenden
            Firewall Policy Rule "kein" VoIP Profile benutzt wird. Dieser Umstand gilt nur für FortiOS 5.2!

Nichts desto trotz um sicher zu gehen in einer SIP Implementation, dass weder der "SIP Session Helper" noch der "ALG" benutzt wird, sollte folgendes durchgeführt werden:

       Setze den "SIP Session Helper" als Standard dh. unter FortiOS 5.2 ist der "ALG" der Standard. Da der "SIP Session Helper" als Standard
       gesetzt wird mit "kernel-helper-based" wird wiederum die Ausgangslage unter FortiOS 5.0 erreicht:
       
       # config system settings
       # set default-voip-alg-mode kernel-helper-based
       # end
       
       Lösche den "SIP Session Helper" gemäss folgenden Artikel:
       
       FortiGate-5.0-5.2:FAQ#Was_ist_zu_beachten_wenn_SIP_.28VoIP.29_.C3.BCber_eine_Fortigate_implementiert_wird.3F
       
       Da der "SIP Session Helper" als Standard gesetzt wird und dieser nachträglich gelöscht wird, greift für "SIP" weder der "Session Helper" 
       noch der "ALG" sofern kein "SIP Profile" auf der entsprechenden Firewall Policy Rule konfiguriert wird! Somit wird gewährleistet, dass
       der "SIP" Traffic weder durch den "SIP Session Helper" noch "ALG" beeinflusst wird.

Ausgehend davon das SIP (VoIP) nicht benutzt wird resp. die Konfiguration zur Nichtbenutzung korrekt durchgeführt wurde, kann mit nachfolgenden Befehlen dies bestätigt werden dh. Die nachfolgenden Befehle können durchgeführt werden um festzustellen ob der "Session Helper" und/oder der "ALG" für SIP (VoIP) benutzt werden. Wurde die Konfiguration korrekt durchgeführt, bestätigen diese Kommandos das SIP (VoIP) nicht über den "Session Helper" noch über den "ALG" verarbeitet werden da die "counter" im Output für diese Kommandos auf Null stehen. Damit diese Ueberprüfung korrekt durchgeführt werden kann, muss dementsprechend SIP (VoIP) Traffic durchgeführt werden:

       SIP Session Helper
       
       # diagnose sys sip status
       dialogs: max=131072, used=0
       mappings: used=0
       dialog hash by ID: size=8192, used=0, depth=0
       dialog hash by RTP: size=8192, used=0, depth=0
       mapping hash: size=8192, used=0, depth=0
       count0: 0
       count1: 0
       count2: 0
       count3: 0
       count4: 0
       SIP ALG
       
       # diagnose sys sip-proxy stats
       sip stats
       
       vdom name: root
       ---------------------------
            active-sessions: 0
            calls-attempted: 0
            calls-established: 0
            calls-failed: 0
       
            calls-active: 0
            registers-active: 0
                     |     received  |     blocked   |  unknown form |  long headers
            req-type |    req    resp|    req    resp|    req    resp|    req    resp
            UNKNOWN         0       0       0       0       0       0       0       0
            ACK             0       0       0       0       0       0       0       0
            BYE             0       0       0       0       0       0       0       0
            CANCEL          0       0       0       0       0       0       0       0
            INFO            0       0       0       0       0       0       0       0
            INVITE          0       0       0       0       0       0       0       0
            MESSAGE         0       0       0       0       0       0       0       0
            NOTIFY          0       0       0       0       0       0       0       0
            OPTIONS         0       0       0       0       0       0       0       0
            PRACK           0       0       0       0       0       0       0       0
            PUBLISH         0       0       0       0       0       0       0       0
            REFER           0       0       0       0       0       0       0       0
            REGISTER        0       0       0       0       0       0       0       0
            SUBSCRIBE       0       0       0       0       0       0       0       0
            UPDATE          0       0       0       0       0       0       0       0
            PING            0       0       0       0       0       0       0       0
            YAHOOREF        0       0       0       0       0       0       0       0

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

Früher wurde der SIP Traffic über einen "SIP Session Helper" abgehandelt. Dieser sollte unter FortiOS 5.0 gelöscht werden. Jedoch unter FortiOS 5.2 sollte dies verifiziert werden. Weitere Informationen siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Muss_ich_den_SIP_Session_Helper_unter_FortiOS_5_l.C3.B6schen_und_wann_wird_SIP_ALG_benutzt.3F

Um den SIP Session Helper zu löschen führe folgendes aus:

       # show system session-helper
         edit 12 (1)
         set name sip
         set port 5060
         set protocol 17
         next
       
       NOTE Dieser Befehl listet sämtliche "session-helper" auf. Suche den Eintrag für das "sip" Protokoll und dessen
            ID. In unserem Beispiel wäre dies die ID "12"!

Nun löschen den "SIP Session Helper" (sip) anhand der ID:

       # config system session-helper
       # delete 12
       # end

Kontrolliere ob der entsprechende SIP "session-helper" (sip) gelöscht wurde:

       # config system session-helper | grep 12
       NOTE Möchte man den "Application Layer Gateway" (ALG) ebenfalls vollständig deaktivieren führe folgendes aus:
       
       # config system settings
       # set sip-helper disable
       # set sip-nat-trace disable
       # end

Führe einen Neustart des Gerätes durch:

      # execute reboot

Als nächsten Schritt muss ein VoIP Profile basierend auf dem "Application Layer Gateway" (ALG) hinzugefügt werden. Weitere Informationen um "was" es sich beim SIP ALG handelt siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Was_ist_ein_SIP_ALG_.28Application_Layer_Gateway.29_und_wieso_soll_ich_diesen_benutzen.3F

Ein VoIP Profile wird über folgende Position konfiguriert:

       Security Profiles > VoIP
       
       NOTE Diese Menüposition ist per Standard nicht im WebGui ersichtlich und kann unter folgender
            Position als Feature aktiviert werden:
            
            System > Config > Features > Show More > VoIP

Das per Standard bestehende Profile "default" kann herangenommen werden um die entsprechende Konfiguration zu vervollständigen oder es wird ein neus Profile erstellt:

       Datei:Fortinet-277.jpg
       
       NOTE Die Positionen "REGISTER" und "INVITE" geben an wieviele Requests per Second und Policy über SIP akzeptiert werden wobei
            "REGISTER" der Wert der Verbindungen darstellt die benützt werden um Geräte am Controller anzumelden. Der Wert "INVITE"
            stellt den effektiven Call dar. Dies bedeutet wenn der Wert 100 gesetzt wird so können sich über die entsprechende Policy
            nicht mehr als 100 Devices am Controller registrieren (REGISTER). Wenn "INVITE" auf 100 gesetzt wird können sich über die
            entsprechende Policy nicht mehr als 100 Anrufe (INVITE) durchgeführt werden. Die Position "SCCP" ist ein proprietäres CISCO Protokoll.

Als Letzteres muss nun nur noch das entsprechende Profile VoIP in die entsprechende Firewall Policy Rule in der SIP Traffic benützt wird, eingebunden werden:

       Datei:Fortinet-278.jpg

Was ist ein SIP ALG (Application Layer Gateway) und wieso soll ich diesen benutzen?

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

       Datei:Fortinet-715.jpg

Der SIP ALG unterstützt folgende Funktionen:

       • Alle Features implementiert im "Session Helper" sowie NAT, SIP und RTP Pinholes (Real Time Protocoll Pinholes)
       • Zusätzlich im Gegensatz zum Session Helper kann auf dem SIP ALG folgendes durchgeführt werden:
         
         - Aktivieren/Deaktivieren von RTP Pinholing
         - SIP Register Pinholing
         - SIP Contact Pinholing
         
         NOTE Wenn der RTP Stream "nicht" über die FortiGate abgehandelt wird kann das "RTP Pinholing" deaktiviert
              werden um die Performance zu erhöhen:
              
              # config voip profile
              # edit [Name des VoIP Profiles]
              # config sip 
              # rtp disable
              # end
         
       • SIP TCP und UDP Support
       • SIP Message Order Ueberprüfung
       • Konfigurierbare Header Line Length Maximum 
       • Message Fragment Assembly (TCP) 
       • Wenn SIP Nachrichten Fragmentiert sind (vers. Packete) fügt der SIP ALG diese wieder zusammen und schickt diese als Ganzes weiter.
       • L4 Protocol Translation 
       • Message Flood Protection 
       • DoS Protection für "flooding INVITE, REGISTER" und andere Methoden
       • SIP message Type Filtering 
       • SIP Statistik und Logging 
       • SIP über IPv6
       • SIP über SSL/TLS
       • Deep SIP Message Syntax Checking (SIP Header Inspection oder SIP Fuzzing Protection
       • Hosted NAT Traversal 
       • SIP High Availability (HA). 
       • Geographical Redundancy (HA)
       • SIP Per Request Method Message Rate Limitation (Schützt SIP Server vor SIP Ueberlastung und DoS Attacken)
       • RTP Bypass (RTP Pinholing)
       • SIP NAT
       • IP Topology Hiding

VoIP ist komplizierter als eine normale TCP/UDP-basierte Anwendung. Aufgrund der Komplexität der Signalisierung und der Protokolle bei VoIP sowie der Inkonsistenzen, die sich ergeben, wenn eine Firewall die Quelladress- und Quellportdaten mit NAT ändert, ist es schwierig für VoIP, eine Firewall ungehindert zu überwinden. VoIP verwendet zwei verschiedene Protokolle: eines für die Signalisierung (zwischen dem Client und dem VoIP-Server) und eines für die Medien (zwischen den Clients). Die Port/IP-Adresspaare, die von den Medienprotokollen (RTP/RTCP) für jede Sitzung verwendet werden, werden von den Signalisierungsprotokollen dynamisch verhandelt. Firewalls müssen diese Informationen dynamisch mitverfolgen und warten und zum entsprechenden Zeitpunkt ausgewählte Ports für die Sitzungen auf sichere Weise öffnen und wieder schließen. Mehrere Medienports werden über die Signalisierungssitzung dynamisch verhandelt; die Verhandlungen über die Medienports sind in der Nutzlast der Signalisierungsprotokolle enthalten (IP-Adress- und Portinformationen). Firewalls müssen für jedes Paket eine Deep Inspection durchführen, um diese Informationen zu erhalten und die Sitzungen dynamisch zu warten; dies erfordert zusätzliche Verarbeitungskapazitäten der Firewall.

Die Quell- und Ziel-IP-Adressen sind in die VoIP-Signalisierungspakete eingebettet. Eine Firewall mit NAT-Unterstützung übersetzt IP-Adressen und -Ports auf IP-Header-Ebene für Pakete. Vollsymmetrische NAT-Firewalls passen ihre NAT-Bindungen häufig neu an und können so zufällig die Pinholes schließen, über die eingehende Pakete in das zu schützende Netzwerk gelangen. In diesem Fall kann der Dienstanbieter keine eingehenden Anrufe an den Kunden weiterleiten. Für die erfolgreiche Unterstützung von VoIP muss eine NAT-Firewall eine Deep Packet Inspection durchführen und eingebettete IP-Adress- und Portinformationen bei der Weiterleitung über die Firewall transformieren können. Genau hier setzt der SIP ALG an und übernimmt diese Arbeit in verschiedenen Bereichen dh. Analysiert SIP und SDP Informationen, passt die Packete an (zB für NAT), schützt das Protokoll auf DoS sowie IPS Ebene usw. Bei einigen VoIP Implementierungen die von Hersteller zu Hersteller verschieden sein können kann es zu Problemen kommen dh. zB weil über SIP Befehle gesendet werden die durch den SIP ALG nicht erkannt werden. Diese Befehle -da nicht erkannt- werden als "unknown" eingestuft sowie geblockt. Um zB dies zu verhindern kann die SIP Funktion deaktiviert werden:

       NOTE Security Technisch gesehen ist das enorm Problematisch da zB ohne SIP ALG die Befehle/Kommandos
            innerhalb des SIP Protokolls nicht mehr kontrolliert werden und somit man Angriffen ausgeliefert
            ist! Diesem Umstand ist Rechnung zu tragen!
              
            # config voip profile
            # edit [Name des VoIP Profiles]
            # config sip 
            # set block-unknown disable
            # end

Bei einigen VoIP Herstellern muss das NAT deaktiviert werden (Kein Incoming Audio). Dies wird folgendermassen durchgeführt:

       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set nat-trace disable
       # end

Desweiteren verlangen einige Implementationen, dass die "orginal IP und Port" Informationen der SIP Kontakt Anfrage beibehalten werden dh. diese gehen bei einem NAT (Network Address Translation) verloren. Dies bedeutet eine SIP Kontakt Anfrage sieht orginal folgendermassen aus:

       Contact: <sip:0150302438@172.20.120.110:5060>;

Nun wenn das Packet durch die FortiGate abgearbeitet wird und NAT angewendet wird so sieht das Packet folgendermassen aus:

       Contact: <sip:0150302438@10.10.10.21:33608>;

In diesem Beispiel sieht man, dass die Informationen durch das NAT der FortiGate verändert wurden dh. die IP wurde durch das NAT verändert sowie der Port. Durch die Funktion "enable register-contact-trace" wird durch das VoIP Profile die FortiGate angewiesen diese Informationen NICHT zu verändern dh. die "orginal IP sowie dessen Port" werden mitgegeben. Es wird folgendes angewandt:

       Contact: <sip:0150302438@[nated-ip]:[nated-port];o=[original-ip]:[original-port]>;

Somit wird die SIP Kontakt Anfrage in unserem Beispiel folgendermassen durch die Funktion "enable register-contact-trace" abgearbeitet:

       Contact: <sip:0150302438@10.10.10.21:33608;o=172.20.120.110:5060>;

Um die Funktion einzuschalten dh. "register-contact-trace" führe folgendes durch:

       NOTE Dieser Befehl steht nur unter FortiOS 5.0 / 5.2 zur Verfügung!
       
       # config voip profile
       # edit [Name des VoIP Profiles]
       # config sip 
       # set register-contact-trace enable
       # end

Wie schalte ich für Voip auf einer FortiGate das Extended-UTM-Log ein?

Innerhalb des Voip Profiles kann das UTM Log File für SIP und/oder SCCP aktiviert werden. Dies kann folgendermassen durchgeführt werden:

       NOTE Unter FortiOS 5.2 exestiert die Option "extended-utm-log" nicht mehr. Weitere Informationen
            siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
            FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F
       # config voip profile
       # edit [Name des Profile] 
       # set extended-utm-log [enable | disable]
       # config sip
       # set status [enable | disable]
       # set log-violations [enable | disable]
       # set log-call-summary [enable | disable]
       # end
       # config sccp
       # set status [enable | disable]
       # set log-call-summary [enable | disable]
       # set log-violations [enable | disable]
       # end
       # end

Application Control

Wie muss Application Control Service Lizensiert werden?

Die Application Control Service wird über die IPS Lizensierung lizensiert dh. die Signaturen DB der IPS enthält die Informationen der Application Control. Grundsätzlich funktioniert IPS und Application Control auch ohne Lizenz jedoch werden die DB der IPS und/oder Appliaction Control nicht auf den neusten Stand gebraucht.

Wie aktiviere ich für eine bestimmte Applikation/Anwendung die "Application Control"?

Wenn man eine bestimmte Applikation/Anwendung kontrollieren will zB ein Adobe Dokument nimmt man die Funktion "Application Control" zur Hilfe dh. man erstellt ein bestimmtes Profil für die gewünschte Applikation/Anwendung und bestimmt wie mit dieser Applikation/Anwendung verfahren werden soll. Um dies zu konfigurieren gehe folgendermassen vor:

       FortiOS 5.0
       
       UTM Profiles/Security Profiles > Application Control > Application Sensor > Create New
       
       Datei:Fortinet-33.jpg
       
       Erstelle nun unter "Create New" einen neuen Filter für die bestimmte Application/Anwendung zB Adobe:
       
       Datei:Fortinet-34.jpg
       
       NOTE Ab FortiOS 5.0.4 stehen neue Menüpunkte innerhalb des Sensors von Application Control zur Verfügung.
            Unter "Filter Based" steht neu die Menüposition "Risk" zur Verfügung. Ebenfalls unter "Filter Based"
            kann man nun zwischen "Basic" und "Advanced" wählen wobei die Position "Advanced" neu ist. Diese
            Menüposition "Advanced" ermöglicht eine weitere Einschränkung resp. Auswahl zwischen "Vendor" und
            Protokollen. Dies bedeutet eine Applikation kann zB geblockt werden auf "Vendor" und/oder "Protokollen"
            Innerhalb der neuen Menüpositionen kann unter "Show more..." die Anzeige erweitert werden. Dadurch wird
            die Konfiguration "Granularer" und "Transparenter":
            
            Fortinet-810.jpg
       
       Es kann auch anstelle eines Filters die Application selber als Basis genommen werden zB You-Tube:
       
       Datei:Fortinet-35.jpg
       
       Nachdem Abspeichern ergiebt sich folgende Situation:
       
       Datei:Fortinet-36.jpg
       FortiOS 5.2
       
       Unter FortiOS 5.2 wurde ein "5-Point-Risk Rating" eingeführt dh. jede Signature wird innerhalb dieses Ratings
       geführt. Diese Ratings werden ebenfalls im "FortiView Applications" abgebildet sofern ein entsprechendes Profile
       in einer Firewall Policy benutzt wird:
       
       Fortinet-1309.jpg
               
       Security Profiles > Application Control > Create New
       
       Fortinet-1299.jpg
       
       Unter FortiOS 5.2 im Gegensatz zu FortiOS 5.0 wird die Application Control in einem Fenster konfiguriert:
       
       Fortinet-1300.jpg
       
       Die einzelnen Kategorieren wie "Botnet, Special etc." können einzel auf eine neuen Status gesetzt werden dh.
       zB "Monitor, Block usw.":
       
       Fortinet-1301.jpg
       
       NOTE Möchte man in dieser Kategorie einen vollständigen Ueberblick erhalten wählt man die Position
            "View Signatures". Diese Positon gibt keine Uberblick über "alle" zur Verfügung stehenden Signaturen
            sondern nur die der angewählten "Categories". Möchte man einen gesamt Ueberblick erhalten über "alle"
            zur Verfügung stehenden Kategorien kann dies anhand "View Application Signatures" durchgeführt werden
            jedoch diese Position steht erst dann zur Verfügung, wenn ein Application Sensor abgespeichert wurde:
            
            Fortinet-1308.jpg
       
       Wenn anstelle einer Kategorie eine spezifische Application wie zB Microsoft Application hinzugefügt werden 
       möchte muss dies über "Application Overrides" durchgeführt werden dh.:
       
       Fortinet-1302.jpg
       
       Danach steht einem die Liste der Applicationen resp. Signaturen zur Verfügung und anhand eines Filters kann
       die entsprechende Application Signature gefiltert werden:
       
       Fortinet-1303.jpg
       
       Wenn durch den Filter die entsprechende Application Signature/n gefunden wurden können diese markiert und 
       anhand "Use Selected Signature" übernommen werden:
       
       Fortinet-1304.jpg
       
       NOTE In diesem Konfigurations Schritt ist es nicht möglich eine spezifische Signature betreffend deren Standard
            Action wie "Block, Allow, Monitor usw." zu überschreiben resp. zu ändern!
       
       Nach der Uebernahme werden die entsprechenden Signaturen unter "Application Overrides" aufgelistet:
       
       Fortinet-1305.jpg
       
       Um eine Standard "Action" einer Signature zu ändern steht unter Action die entsprechenden Positionen zur Verfügung:
       
       Fortinet-1306.jpg
       
       Innerhalb des Application Sensor stehen folgende zusätzliche Optionen zur Verfügung:
       
       Fortinet-1307.jpg
       
       NOTE Die Optionen haben folgende Bedeutung:
            
            Deep Inspection of Cloud Application
            Diese neue Option steht nur unter FortiOS 5.2 zur Verfügung und erlaubt es Informationen betreffend "Cloud 
            Application" zu loggen dh. User Logins, File Transfer, Video Name (Name unter Application Details ersichtlich
            dh. zB Youtube und Vimeo). Damit die User Logis sowie File Transfer im Log abgebildet werden wurden im Log 
            selber folgende Felder hinzugefügt: Cloud User, Cloud Action, File Name sowie File Size. Um das Feature auf
            der Kommandozeile zu aktivieren muss folgendes durchgeführt werden:
            
            # config application list
            # edit [Name des entsprechenden Profiles]
            # set deep-app-inspection [enable | disable]
            # end
            # end
            
            Allow and Log DNS Traffic
            Weitere Informationen siehe Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_gew.C3.A4hrleisten_das_.22basic_traffic.22_wie_DNS.2C_icmp_usw._.C3.BCber_Application_Control_nicht_geblockt_wird.3F
            
            Replacement Messages for HTTP-based Applicaton
            Wenn diese Option aktiviert wird so wird über HTTP eine entsprechende Seite angezeigt wenn eine spezfische
            geblockt wird. Um diese Option in der Kommandozeile zu aktivieren führe folgendes durch:
            
            # config application list
            # edit [Name des entsprechenden Profiles]
            # set app-replacemsg [enable | disable]
            # end
            # end

Der entsprechende Sensor ist nun erstellt jedoch fehlt noch die korrekte Aktivierung in der Policy. Dies bedeutet in der entsprechenden Policy/Rule muss nun der entsprechende Application Sensor aktiviert werden. Editiere zu diesem Zweck die entsprechende Rule und aktiviere UTM/Security Profiles. Danach erscheinen die vers. UTM/Security Features und unter "Enable Application Control" kann der entsprechende Application Sensor angegeben werden! Um zu kontrollieren "ob" der Sensor anspricht aktiviere in der Policy/Rule "Log Allowed Traffic" und führe einen entsprechenden Test durch!

Wie finde ich heraus welche Applikation am meisten Bandbreite benützt?

Um herauszufinden/zu analysieren welche Applikation am meisten Bandbreite benützt im Netz führe folgendes durch:

       NOTE Unter FortiOS 5.2 wurde die Konfiguration des Application Sensors modifiziert. Weitere Information
            dazu siehe Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_eine_bestimmte_Applikation.2FAnwendung_die_.22Application_Control.22.3F
       Policy > Policy > Policy
       
       --> Wähle "Column Settings". Verschiebe von der linken Spalte die Position "Count" zur rechten Spalte

Nun ist über die Spalte "Count" in den Policy's ersichtlich welche Policy/Applikation am meisten Bandbreite benützt. Um dies zu "Monitoren" führe folgendes durch:

       --> Erstelle folgendes Profil unter "Application Control":
       
       UTM Profiles > Application Control > Application Sensor
       
       Datei:Fortinet-258.jpg
       Datei:Fortinet-259.jpg
       Datei:Fortinet-260.jpg
       Datei:Fortinet-261.jpg
       Datei:Fortinet-262.jpg
       
       --> Speichere das Profile mit "Apply"
       NOTE Unter FortiOS 5 sieht das Application Sensor Gui ein wenig anderst aus:
            
            Fortinet-842.jpg

Nun das Profil/Sensor ist erstellt und muss nun nur noch in den entsprechenden Policy's die eine hohe Bandbreite haben (Count) aktiviert werden:

       Policy > Policy > Policy
       
       Datei:Fortinet-263.jpg

Alle diese Policy's indenen das Application Profile aktiviert wurden werden im Hintergrund nun überwacht. Diese Uebewachung ist unter folgender Position ersichtlich:

       UTM Profiles > Monitor > Application Monitor
       
       NOTE Weitere Informationen betreffend UTM Monitor unter FortiOS 5.2 siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F

Kann ich wenn der Traffic verschlüsselt ist Application Control aktivieren?

Wenn Application Control benutzt wird so wird im Hintergrund die Datenbank des IPS bedient. Beide Funktionen sind reine "Flow-based" Proxy Funktionen und "Proxy-based" steht nicht zur Verfügung. Desweiteren ist zu berücksichten, dass wenn eine Firewall Policy konfiguriert wird in der "Proxy-based" (zB Antivirus) sowie "Flow-based" (Application Control) benutzt wird, führt die FortiGate für alle Funktionen "Proxy-based" durch sofern dies durch die Funktion unterstützt wird. Ausgenommen davon sind davon IPS sowie Application Control da in diesen Funktionen der "Proxy-based" Mode nicht zur Verfügung steht. Nähere Informationen findet man über folgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_wenn_der_Traffic_verschl.C3.BCsselt_ist_.28SSL.29_IPS_aktivieren.3F

Desweiteren steht unter FortiOS 5.2 innerhalb eines Application Sensor die Funtion "Deep Inspection" für Cloud Application zur Verfügung. Weitere Informatioen wie ein Application Control Sensor unter FortiOS 5.2 konfiguriert wird siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_eine_bestimmte_Applikation.2FAnwendung_die_.22Application_Control.22.3F

Wie kann ich gewährleisten das "basic traffic" wie DNS, icmp usw. über Application Control nicht geblockt wird?

Ab FortiOS 5.0.5 wurde eine neue Funktion implementiert die genau dies gewährleistet dh. Wenn zB ein Application Filter eingesetzt wird der "Network Traffic" blocken soll muss gewährleistet werden das "basic traffic" nicht irrtümlicherweise geblockt wird. Ebenfalls kann die neue Funktion dazu benutzt werden "basic traffic" zu deklarieren der nie über "Application Control" geblockt werden soll. Die Konfiguration wird folgendermassen durchgeführt:

       # config application list
       # edit [Wähle das entsprechende Profile]
       # set options allow-dns allow-icmp allow-http allow-ssl
       # end
       
       NOTE Der einzige Traffic der per Standard aktiviert ist, ist der DNS Traffic! Dazu steht im Application Sensor
            folgende Position zur Verfügung die ebenfalls sofern gewünscht deaktiviert werden kann:
            
            Fortinet-966.jpg

Wie aktiviere ich für Application Control auf einer FortiGate das Extended-UTM-Log?

Innerhalb der Application Controll kann das Extended-UTM-Log aktiviert werden. Dieses wird jedoch nur dann als Extended-UTM-Log File angezeigt, wenn die Logs dem FortiAnalyzer gesendet werden. Um das Extended-UTM-Log File für Application Control zu aktivieren führe folgendes aus:

       # config application list
       # edit [Name des Profile] 
       # set extended-utm-log [enable | disable] 
       # set log [enable | disable]
       # set other-application-log [enable | disable] 
       # set unknown-application-log [enable | disable] 
       # end

NTP / Time / Date

Wie überprüfe/setze ich das Datum und die Zeit einer FortiGate?

       # execute time
       current time is: 05:01:35
       last ntp sync: never
       # execute date
       current date is: 2012-04-03

Um die Zeit resp das Datum anzupassen führe folgndes aus:

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

Wie konfiguriere ich die Zeitzone einer FortiGate?

       # config system global
       # set timezone ?
       
       NOTE Durch "?" werden alle verfügbaren Zeitzonen aufgelistet. Danach kann der richtige Code (Zahl) 
            benutzt werden um die Zeitzone zu setzen!
       
       # set timezone 26
       # end

Wie aktiviere ich den NTP Zeitsynchronisierung auf einer FortiGate?

folgender Befehl wird benttzt für die Aktivierung der NTP Zeitsynchronisierung :

       NOTE Das folgende Beispiel zeigt eine Konfig die ein NTP Server konfiguriert und zwar "ch.pool.ntp.org" (360 Sekunden) 
            sowie auf dem "internal" Interface einen NTP Service bereitstellt für dieses Segment!
       # config system ntp
       # set ntpsync enable
       # set type custom
       # set syncinterval 360
       # set server-mode enable
       # set interface "internal"
       # config ntpserver
       # edit 1
       # set server "ch.pool.ntp.org"
       # next
       # end
       # end
       NOTE Damit die NPT Synchronisation dh. über FortiGuard zur Verfügung steht muss diese Funktion lizensiert werden. 
            Nachfolgender Artikel gibt Auskunft was zu lizensieren ist:
            
            Fortinet:FortiCare-FortiGuard#Wenn_ich_.22nur.22_DDNS_.28Dynamic_DNS.29.2C_GeoIP.2C_NTP_und_DNS_Service_von_FortiGuard_benutze_was_muss_ich_im_Minimum_lizensieren.3F

Logging

Ich sehe in den Logs die Nachricht "The system has entered conserve mode" was bedeuted dies?

Nun wenn in den Logs die Nachricht "The system has entered conserve mode" erscheint ist der Device überlastet (Traffic) oder etwas hat den Device überlastet (Services). Diese Nachricht erscheint in den Logs dann wenn der Device seine Arbeit aus Resourcen Gründen nicht mehr durchführen kann. Wenn dies geschieht, sollte erruiert werden WAS den Device zur Ueberlastung bringt. Dabei können folgenden Ueberlegungen hilfreich sein:

       --> Ist das Datenaufkommen (Traffic) für den Device zu hoch?
       --> Wird zuviel geloggt (Devices ohne Disk's loggen 10% des Memory Bereichs danach wird wieder überschrieben)
       --> Sind zuviele Services aktiviert wie IPS, Application Control, AntiVirus usw?
       --> Sollte vorübergehend eingesetzte UTM Features auf Flow-Based umkonfiguriert werden?

Wenn das Datenaufkommen oder das Logging keine Probleme darstellt so sollte betreffend UTM Services (zB IPS) einer nach dem Anderen deaktiviert werden um zu sehen welcher Service für die Ueberlastung zuständig ist. Dabei kann ebenfalls folgendes Hilfreich sein:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Prozesse_anzeigen_lassen.3F
       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Memory_Benutzung_anzeigen_lassen.3F

Gibt es auf dem FortiOS ein "Crash Log" das Informationen enthält nach einem Crash?

Nun wenn unter Linux/Unix ein Crash/Absturz passiert, dann "dumped" das Betriebssystem - sofern konfiguriert - die Information in ein File (core)! Der gleiche Vorgang resp. ähnlich wird auch auf einer FortiGate durchgeführt dh. das File in dem die Informationen geschrieben werden ist das "crash" Log. Dieses kann auf der CLI angeschaut werden um bei der Analyse des Crash's wertvolle Infomationen zu liefern. Um das "crash" Log File anzuschauen führe auf der CLI folgendes aus:

       # diagnose debug crashlog read

Um das "Crash Log file zuückzusetzen benütze folgenden Befehl:

       # diagnose debug crashlog clear

Im "crash" Log sind Informationen enthalten über die "termination" resp. das benutzte Signal. Wird zB im "crash" Log folgendes angezeigt handelt es sich effektive um das Signal "11" resp. Signal "11" wird als "Invalid memory refrence" definiert:

      application sslvpnd
      *** signal 11 (Segmentation fault)

Die meist benutzten resp. aufgeführten "termination" Signale sind die Folgenden:

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

Grundsätzlich werden diese "termination" Signal ebenfalls benutzt um einen Prozess zu beenden resp. neu zu starten (Kill Level). Dies ist jedoch nur dann durchzuführen wenn die Auswirkung 100% klar ist. Ein Prozess kann zB mit einem "termination" Signal 9 neu gestartet werden da der Level 9 ein Prozess unweigerlich beendet und diesen neu startet. Wird dies beim einem Prozess angewandt zB "cmdbsvr" so wird/kann die Konfiguration korrumpiert werden da dieser Prozess für die Konstistenz der Konfiguration sorgt (Legt die nötigen Konfiguration Revisions an). Um ein "termination" Signal anzuwenden führe folgendes aus:

       # diagnose sys kill [Prozess ID] [Termination Signal]

Grundsätzlich bedeutet es nicht wenn im "crash" Log ein Eintrag existiert das auf der FortiGate ein Problem exisitert. Wenn ein "issue" eintrat zB Unterbruch im IPSec Bereich und im "crash" Log ein Hinweis gefunden wird betreffend IKE Deamon ist der Zusammenhang wahrscheinlich. Dies bedeutet: Wenn ein "issue" auftritt ist ein kurzer Blick in das "crash" Log Sinnvoll.

Welche verschiedenen Felder enthält ein Log auf einer FortiGate und kann ich diese reduzieren (brief-traffic-format)?

Ausgehende von der FortiOS Version 5.2.x enthält ein Log auf einer FortiGate folgende Felder:

       srcname
       srcuuid
       dstuuid
       poluuid
       user
       group
       appid
       appcat
       apprisk
       app (except local traffic)
       vpn
       vpntype
       shapersentname
       shaperdropsentbyte
       shaperrcvdname
       shaperdroprcvdbyte
       shaperperipname
       shaperperipdropbyte
       devtype
       osname
       osversion
       unauthuser
       unauthusersource
       collectedemail
       mastersrcmac
       srcmac
       msg 

Nachfolgende Dokumente geben detaillierte Auskunft über jedes Log und deren Felder etc.:

       Datei:FortiGate-Log-Message-Reference-50.pdf
       Datei:FortiGate-Log-Message-Reference-52.pdf

Wenn nun das Traffic Volument über diese Felder reduziert werden soll kann folgender Befehl ausgeführt werden:

       # config log setting 
       # set brief-traffic-format enable
       # end

Wenn "brief-traffic-format" aktiviert wird so werden folgenden Felder ignoriert und nicht mehr in den Logs aufgeführt:

       user
       group
       appid
       appcat
       
       NOTE Berücksichtige, dass wenn diese Option aktiviert wird kein Report mehr ausgeführt werden könne die basierend
            auf "user" und/oder "group" da keine Daten mehr vorhanden sind resp. diese Felder nicht mehr vorhanden sind.

Wie ändere ich im WebGui die "Log Location"?

Um die "Log Location" im WebGui zu ändern führe folgendes durch:

       Log & Report > Log Config > Log Settings > GUI Preferences > Display Logs From > [Wähle die entsprechende Position zB Disk]
       Fortinet-1369.jpg

Sobald die "Log Location" gesetzt ist kann dies innerhalb eines Logs kontrolliert werden:

       Fortinet-1368.jpg
       Datei:Fortinet-119.jpg
       
       NOTE Steht die Disk unter FortiOS 5.2 nicht zur Verfügung gibt nachfolgender Artikel Auskunft was zu 
            berücksichtigen ist unter FortiOS 5.2:
            
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Um die "Log Location" in der CLI zu ändern führen folgendes durch:

       FortiOS 4 MR3
       # config log gui
       # set log-device [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
       # end
       
       NOTE Die Option "forticloud" steht ab der V4.3 Patch 12 zur Verfügung!
       FortiOS 5.0
       # config log setting
       # set gui-location [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
       # end
       FortiOS 5.2
       # config log gui-display
       # set location [Gebe an forticloud | memory | disk | fortianalyzer | syslogd]
       # set resolve-hosts [enable | disable]
       # set resolve-apps [enable | disable]
       # set fortiview-unscanned-apps [enable | disable]
       # set fortiview-local-traffic [enable | disable]
       # end
       
       NOTE Ab FortiOS 5.2.2 stehen die Optionen "set fortiview-unscanned-apps" sowie "fortiview-local-traffic" zur Verfügung.
            Diese Optionen stehen im Zusammenhang mit FortiView. Weitere Informationen siehe:
            
            FortiGate-5.0-5.2:FAQ#In_FortiView_werden_.22unknown_app.22_sowie_.22local_traffic.22_angzeigt_und.2Foder_nicht_angezeigt.3F

Wie schalte ich auf einer FortiGate das Logging auf der Disk ein?

Erste Voraussetzung damit auf der Disk die Logs abgelegt werde ist eine einwandfreie formatierte Disk auf der FortiGate. Berücksichtige dabei, dass nicht alle FortiGate's über eine Disk, sei es Flash oder HD, verfügen. Um eine Disk einwandfrei zu formatieren führe folgendes aus:

       NOTE Wird FortiOS 5.2 eingesetzt und beim Device handelt es sich um ein FortiGate 100D und kleiner, verfügt dieser Device event.
            über eine Disk jedoch diese kann für das Logging nicht eingesetzt werden. Wieso dem so ist kann beschreibt der nachfolgende Artikel:
            
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
       # execute formatlogdisk
       Log disk is /dev/sdb4
       Formatting this storage will erase all data on it, including
         Logs, quarantine files;
         WanOpt caches;
       and requires the unit to reboot.
       Do you want to continue (y/n)
       
       NOTE Wenn die Disk bereits in Gebrauch war, wird dort die SQL DB, Logs, Reportings usw. abgelegt. Formatiert man die
            Disk gehen diese Informationen unwiederruflich verloren dh. bei einem Neustart wird die SQL DB von Grundauf neu
            angelegt! Dieser Vorgang kann ebenfalls dann genutzt werden, wenn die SQL DB Korrupt ist jedoch mit dem Umstand,
            dass ALLE Daten verloren gehen!

Nachdem Formatieren und Neustart kann die Disk mit folgenden Befehl überprüft werden:

       # execute disk list

Nun kann das Logging auf der Disk eingeschaltet werden:

       # config log disk setting
       # set status enable
       # end
       
       NOTE Mit dem Befehl "show log disk setting" können die verschiedenen Konfigurations Möglichkeiten abgefragt werden für 
            "log disk setting"! Die Konfiguration sowie die Formatierung ist ebenfalls über WebGui möglich dh. unter folgender Position:
            
            System > Config > Advanced
            
            Dort kann ebenfalls -sowie unter der CLI- verschiedenen Quotas betreffend den Logs gesetzt werden!
            
            Unter FortiOS 5.2 ist weiter zu berücksichtigen das es zur Konfiguration des Device Disk ebenfalls eine Filter Konfiguration
            existiert. Dabei ist zu beachten, dass die "severity" auf "informatione" steht damit des gesamte Traffic geloggt wird:
            
            # config log disk filter 
            # set severity information 
            # set forward-traffic enable 
            # set local-traffic enable 
            # set multicast-traffic enable 
            # set sniffer-traffic enable 
            # set anomaly enable 
            # set netscan-discovery enable 
            # set netscan-vulnerability enable 
            # set voip enable 
            # set dlp-archive enable
            # end

Wie schalte ich auf einer FortiGate das Logging im Memory ein?

Folgendes Kommando in der CLI wird benützt um das Logging im Memory zu aktivieren:

       NOTE Dieser Befehl steht ab FortiOS 5.0 sowie 5.2 nicht mehr bei allen Devices zur Verfügung dh. die 
            Software Matrix gibt Auskunft ob die Funktion des "Memory Logging" beim entsprechenden Device 
            noch zur Verfügung steht:
            
             FortiOS Software Matrix
       FortiOS 5.0
       # config log memory setting 
       # set status enable
       # set diskfull overwrite
       # set ips-archive enable
       # end
       FortiOS 5.2
       # config log memory setting 
       # set status enable
       # set diskfull overwrite
       # end
       
       NOTE Wenn unter FortiOS 5.2 das "memory" Logging eingeschaltet wird muss berücksichtigt werden, dass im zuständigen
            Filter für das "memory" Logging die "severity warning" gesetzt ist. Dies bedeutet es wird nicht der gesamte
            Traffic geloggt sondern nur "warning's". Wir empfehlen die "severity" für ein gesamtes Logging auf "information"
            zu setzen:
            
            # config log memory filter 
            # set severity information 
            # set forward-traffic enable 
            # set local-traffic enable 
            # set multicast-traffic enable 
            # set sniffer-traffic enable 
            # set anomaly enable 
            # set netscan-discovery enable 
            # set netscan-vulnerability enable 
            # set voip enable 
            # set dlp-archive enable
            # end

Wenn das Logging im Memory aktiviert wird so werden 10% des zur Verfügung stehenden Memory's benutzt für das Logging. Ist dieser Bereich aufgebraucht wird der Bereich erneut überschrieben dh. durch die Funktion "set diskfull overwrite". Wird ein Neustart des Device's durchgeführt -und Memory Logging ist aktiviert- so wird durch den Neustart das Memory gelöscht und somit auch sämtliche Logs die vorhanden waren. Zusätzlich kann für das Memory Logging eine Warning (5.0 / 5.2) sowie die Grösse konfiguriert werden:

       # config log memory global-setting
       # set full-final-warning-threshold [Setze den thresold 3 - 100; Standard 95]
       # set full-first-warning-threshold [Setze den thresold 1 - 98; Standard 75]
       # set full-second-warning-threshold  [Setze den thresold 2 - 90; Standard 99]
       # set max-size [Setze den maximum Buffer in Bytes; Standard 65536]
       # end

Wenn ein Disk Logging aktiviert ist sollte darauf geachtet werden nicht zusätzlich im Memory zu loggen. Informationen betreffend Disk Logging siehe Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_auf_der_Disk_ein.3F

Wie kann ich eine Verbindung/Logging zum FortiAnalyzer konfigurieren?

       # config log fortianalyzer setting
       # set status enable
       # set ips-archive enable
       # set server [IPv4 Adresse des FortiAnalyzers]
       # set enc-algorithm default
       # set localid [Lokale ID zB Name der Firewall]
       # set conn-timeout [Timeout für die Verbindung; Standard 10]
       # set monitor-keepalive-period [Standard 5]
       # set monitor-failure-retry-period [Standard 5]
       # set source-ip [Source IP der Firewall; Standard 0.0.0.0]
       # set upload-option realtime
       # set reliable enable
       # end
       NOTE Diese Konfiguration "realtime" bedeutet, dass die Logs "real-time" zum FortiAnalyzer gesendet wird.
            Wird unter "upload-option" nicht "realtime" sondern "store-and-upload" gesetzt werden die Disk auf der
            Disk zwischengespeichert und dann zu einem gesetzten Zeitpunkt zum FortiAnalyzer hochgeladen (upload-interval).
            Die Option "store-and-upload" kann jedoch nur konfiguriert werden für Devices die über eine Disk verfügen
            sowie auf Disk das "Logging" aktivieren können. Unter FortiOS 5.2 wurde das "Logging" auf Disk für Devices
            kleiner als FortiGate 100D deaktiviert und somit kann diese Option für diese Devices nicht gesetzt werden.
            Weitere Informationen betreffend FortiOS 5.2 und Logging findet man im nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
           
            Desweiteren sollte unter FortiOS 5.2 für den FortiAnalyzer dessen Filter kontrolliert werden. Dies bedeutet:
            Der Filter wird über eine "severity" gesteuert. Für ein gesamtes Logging muss diese auf "information" gesetzt
            werden
           
            # config log fortianalyzer filter
            # set severity information 
            # set forward-traffic enable 
            # set local-traffic enable 
            # set multicast-traffic enable 
            # set sniffer-traffic enable 
            # set anomaly enable 
            # set netscan-discovery enable 
            # set netscan-vulnerability enable 
            # set voip enable 
            # set dlp-archive enable
            # end

Gibt es für die Fortigate betreffend FortiOS ein Dokument betreffend Log Referenzen?

Nachfolgendes Dokument gibt Aufschluss über die Log Referenz einer Fortigate dh. es zeigt die Log Nachrichten und mit deren Codes und wie diese Interpretiert werden:

       FortiOS 4
       Datei:FortiGate Log Message Reference.pdf
       FortiOS 5.0
       Datei:FortiGate-Log-Message-Reference-50.pdf
       FortiOS 5.2
       Datei:FortiGate-Log-Message-Reference-52.pdf

Kann man bei einem Fortigate Device das Logging optimieren?

Startend mit MR3 Patch 7 wurde das Logging und Reporting auf Fortigate Devices optimiert. Um basierend auf diesem Patch Level eine weitere Optimierung zu erzielen sieh folgendes Dokument:

       Datei:FortiOS-v4+0-MR3-Logging-Optimization.pdf

Das Kommando "diagnose log test" kann nicht unter FortiOS 5.0.2 ausgeführt werden?

Dieser Befehl testet die Log Funktionen dh. wird dieser Befehl auf der Kommandozeile ausgeführt, wird für jedes existierende Log ein Log Eintrag erstellt. Dies bedeutet anhand dieses Befehls kann die Log Funktion zB für Syslog, FortiAnalyzer etc. getestet werden.

        NOTE "diagnose log test" steht aber FortiOS 5.0.2 nicht mehr zur Verfügung. Ein ähnlicher oder gleichfertiges
             Kommando ist in Planung (Fortinet Mantis #0194888)! Dies sollte für den Release 5.0.4 der Fall sein dh.
             neuste Informationen bestätigen, dass das Kommando "diagnose log test" wiederum implementiert wird. Mit dem
             Release 5.0.4 wurde der Befehl "diagnose log test" wiederum eingeführt (unverändert wie in der Vergangenheit)!

Wie kann ich auf einer Fortigate die Logs zusätzlich einem Syslog Server senden?

Ausgehend davon, dass wir einen "syslog" Server haben basierend auf CentOS 5.0 / 5.2 ist folgendermassen vorzugehen damit die Fortigate die Logs diesem Syslog Server sendet:

       FortiGate Konfiguration
       # config log syslogd setting
       # set status enable
       # set server [FQDN Syslog Server]
       # set reliable [Aktiviere TCP-514 Verbindung; Per Standard deaktiviert resp. UDP-514]
       # set port [Standard 514]
       # set csv [enable | disable]
       # set facility [Per Standard local0]
       # set source-ip [Source IP der FortiGate; Standard 0.0.0.0]
       # end
       
       Unter FortiOS 5.2 steht für den Syslog der Filter auf "warning" dh. für ein gesamtes Logging muss dieser auf
       "severity" information gesetzt werden. Ebenfalls steht unter FortiOS 5.2 für Syslog die "facility" auf "local7"
       was wiederum "warning" entspricht. Diese Position sollte kontrolliert werden un für ein gesamtes Logging auf
       "local0" gesetzt werden. Um auf der FortiGate einen Syslog Server Filter zu setzen siehe nachfolgenden 
       Artikel:
       
       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_nur_bestimmte_Informationen_betreffend_Logging_zu_einem_Syslog_Server_senden.3F
       Syslog Server Konfiguration CentOS 5.X
       - Als Erstes muss auf dem CentOS der "syslog" Server so konfiguriert werden damit er von einem 
         Remote Server "syslog" Nachrichten überhaupt annimmt. Führe folgendes durch:
         
         # vi /etc/sysconfig/syslogd
         
         --------------- /etc/sysconfig/syslogd ---------------
         
         # Options to syslogd
         # -m 0 disables 'MARK' messages.
         # -r enables logging from remote machines
         # -x disables DNS lookups on messages recieved with -r
         # See syslogd(8) for more details
         SYSLOGD_OPTIONS="-m 0 -r"
         # Options to klogd
         # -2 prints all kernel oops messages twice; once for klogd to decode, and
         #    once for processing with 'ksymoops'
         # -x disables all klogd processing of oops messages entirely
         # See klogd(8) for more details
         KLOGD_OPTIONS="-x"
         #
         SYSLOG_UMASK=077
         # set this to a umask value to use for all log files as in umask(1).
         # By default, all permissions are removed for "group" and "other".
         
         --------------- /etc/sysconfig/syslogd ---------------
         
         NOTE Aktiviere unter "SYSLOGD-OPTIONS" den Schalter -r denn dieser ist zuständig damit überhaupt
              Remote Server Syslog Nachrichten entgegengenommen werden!
         
         - Nun legen wir ein neues Log an und konfigurieren im "syslog" Server WELCHE Nachrichten entgegengenommen
           werden sollen. Zu diesem Zweck definieren wir eine "Facility" dh. "local0.*. Diese Facility definieren 
           wird später ebenfalls auf der Fortigate. Durch die Differenzierung über die Facility können vers. Fortigate's
           diesem "syslog" Server Nachrichten senden und somit die vers. Log's unterschieden werden:
         
         # vi /etc/syslog.conf
         
         --------------- /etc/syslog.conf ---------------
         
         # Log all kernel messages to the console.
         # Logging much else clutters up the screen.
         kern.*                                                  /dev/console
         
         # Log anything (except mail) of level info or higher.
         # Don't log private authentication messages!
         auth.info;authpriv.info;cron.info;daemon.info;ftp.info;kern.info;lpr.info;mark.info;news.info;security.info;syslog.info;user.info;uucp.info;mail.none;authpriv.none;cron.none                /var/log/messages
         
         # The authpriv file has restricted access.
         authpriv.*                                              /var/log/secure
         
         # Log all the mail messages in one place.
         mail.*                                                  /var/log/maillog
         
         # Log cron stuff
         cron.*                                                  /var/log/cron
         
         # Everybody gets emergency messages
         *.emerg                                                 *
         
         # Save news errors of level crit and higher in a special file.
         uucp,news.crit                                          /var/log/spooler
         
         # Save boot messages also to boot.log
         local7.*                                                /var/log/boot.log
         
         # Save Fortigate log messages to fortigate.log
         local0.*                                                /var/log/fortigate.log
         
         #*.*                                                    @loghost
         
         --------------- /etc/syslog.conf ---------------
         
         NOTE Beachte dabei, dass die Leerschläge/Zwischenräume "gezwungenermassen" (Fileformat) Tabulatoren
              sein müssen! Um das Format zu überprüfen kann folgender Befehl abgesetzt werden:
              
              # m4 -D LOGHOST /etc/syslog.conf
        
         - Nun legen wir das entsprechende Log an und versehen es mit den nötigen Rechten. Danach kann der "syslog" 
           Service neu gestartetn werden um die Konfiguration zu aktivieren:
         
         # touch /var/log/fortigate.log
         # chmod 644 /var/log/fortigate.log
         # chown root:root /var/log/fortigate.log
         
         # service syslog stop
         # service syslog start
         
         - Um das Log in Echtzeit anzuschauen führe folgenden Befehl aus (um abzubrechen benütze Ctrl + C):
         
         # tail -f /var/log/fortigate.log
         
         - Als Nächstes müssen wir die Fortigate anweisen die Logs diesem konfigurierten "syslog" Server zu senden dh. 
           führe folgendes durch:
         
         Log&Report > Log Config > Log Setting
         
         --> Aktiviere die Position "Syslog"
         --> Definiere die "syslog" Server IP oder den FQDN
         --> Definiere den Port 514
         --> Setze den "Minimum log level" auf Information
         --> Setze die "Facility" auf die Definition die wir im File "syslog.conf definiert haben dh. local0
         --> Aktiviere die Position "Enable CSV Format"
         --> Bestätige die Konfiguration
         
         NOTE Für die Uebermittlung der Log Nachrichten zum "syslog" Server benötigen wir KEINE Policy da der Traffic
              von der Fortigate selber initiert wird. In bestimmten Konstellation kann des vorkommen, dass die "syslog"
              Nachrichten mit der falschen Source IP dem "syslog" Server gesendet werden dh. um diese Source IP zu 
              manipulieren siehe folgender Artikel:
        
              FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Source_IP_setzen_f.C3.BCr_Fortigate_eigene_initierte_Mgmt._Service_.28SNMP_.2C_Syslog_.2C_FortiAnalyzer_.2C_Alert_Email_.2C_FortiManager.29.3F
         
         - Nun sollten die Nachrichten auf dem "syslog" Server gesendet werden und diese sollten im Log "fortigate.log" 
           ersichtlich sein. Um dies zu testen resp. Test Nachrichten zu generieren kann folgender Befehl benützt werden:
         
         # diagnose log test
         
         NOTE Weitere Informationen zum Kommando "diagnose log test" siehe folgender Artikel:
              
              FortiGate-5.0-5.2:FAQ#Das_Kommando_.22diagnose_log_test.22_kann_nicht_unter_FortiOS_5.0.2_ausgef.C3.BChrt_werden.3F
         
         - Kommt es dabei zu Problem und es muss verifiziert werden "ob" die Fortigate diese "syslog" Nachrichten überhaupt
           sendet benütze folgenden Befehl:
         
         # tcpdump -nnp -i eth0 ip dst [Syslog Server IP] and port 514
         
         - Um das Log "/var/log/fortigate.log" Täglich zu rotieren erstelle das File "/etc/logrotate.d/fortigate":
           
         # vi /etc/logrotate.d/fortigate
         
         --------------- /etc/logrotate.d/fortigate ---------------
         
         /var/log/fortigate.log {
               rotate 30
               daily
               sharedscripts
               postrotate
               nomail
                       /usr/bin/killall -HUP syslogd
               endscript
         }
         
         --------------- /etc/logrotate.d/fortigate ---------------

Die Konfiguration kann getestet werden mit folgenden Befehl:

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

Wie kann ich nur bestimmte Informationen betreffend Logging zu einem Syslog Server senden?

Nun wenn ein Syslog Server konfiguriert wird so werden per Standard alle Events zum Syslog Server gesendet. Sollen nur bestimmt Informationen zum Syslog Server gesendet werden so kann der "syslogd filter" benutzt werden um zu bestimmen "welche" Informationen gesendet werden sollen:

       NOTE Diese Konfigurations Möglichkeit gilt für FortiOS 5.0 / 5.2!
       # config log syslogd filter
       # get
       severity                 : information
       forward traffic          : enable
       local-traffic            : enable
       multicast-traffic        : enable
       sniffer-traffic          : enable
       anomaly                  : enable
       netscan-discovery        : enable
       netscan-vulnerability    : enable
       voip                     : enable

Für FortiOS 4 MR3 gilt für die Konfiguration eines Filter folgendes:

       # config log syslogd filter
       # get
       app-ctrl            : enable
       attack              : enable
       dlp                 : enable
       email               : enable
       forward-traffic     : enable
       invalid-packet      : enable
       local-traffic       : enable
       netscan             : enable
       severity            : information
       traffic             : enable
       virus               : enable
       voip                : enable
       web                 : enable
       analytics           : enable
       anomaly             : enable
       app-ctrl-all        : enable
       blocked             : enable
       discovery           : enable
       dlp-all             : enable
       dlp-docsource       : enable
       email-log-google    : enable
       email-log-imap      : enable
       email-log-msn       : enable
       email-log-pop3      : enable
       email-log-smtp      : enable
       email-log-yahoo     : enable
       ftgd-wf-block       : enable
       ftgd-wf-errors      : enable
       infected            : enable
       multicast-traffic   : enable
       oversized           : enable
       scanerror           : enable
       signature           : enable
       suspicious          : enable
       switching-protocols : enable
       url-filter          : disable
       vulnerability       : enable
       web-content         : enable
       web-filter-activex  : enable
       web-filter-applet   : enable
       web-filter-command-block: enable
       web-filter-cookie   : enable
       web-filter-ftgd-quota: enable
       web-filter-ftgd-quota-counting: enable
       web-filter-ftgd-quota-expired: enable
       web-filter-script-other: enable

Um ein Filter zu aktivieren resp. deaktivieren benutze:

       # set [Filter Name] [enable oder disable]

Wie kann ich für bestimmte Log Devices wie Disk, Memory usw. Log Filter setzen?

Unter FortiOS 5.0 / 5.2 steht ein Eventfilter zur Verfügung um Grundsätzlich bestimmte Logs wie System, Wireless etc. zu aktiveren/deaktivieren (per Standard alle aktiviert):

       # config log eventfilter
       # set event enable
       # set system enable
       # set vpn enable
       # set user enable
       # set routr enable
       # set wireless-activity enable
       # set wan-opt enable
       # end

Eine weitere Möglichkeit ist auf den "Log Devices" einen Filter zu setzen für bestimmte Log Einträge bedeutet:

       # config log [disk, memory, fortianalyzer, syslogd] filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end
       
       NOTE Unter FortiOS 5.2 sind diese Filter auf allen Devices auf "warning" gesetzt dh. es findet nur ein Logging
            statt wenn eine Warnung ausgegeben werden soll. Für ein gesamtes Logging muss die "severity" auf "information"
            gesetzt werden!

Kann ich den Memory Bedarf im Zusammenhang mit dem Logging optimieren?

Nun der Memory Bedarf steht im direkten Zusammenhang mit dem Logging dh. wenn viel geloggt wird (Hoher I/O resp. Input/Output) und die SQL Database wächst steigt der Memory Bedarf. Dies kann in dem Sinne optimiert werden indem man die maximale Grösse der SQL Datenbank begrenzt. Die minimale Grösse beträgt 512 MB sowie die maximal Grösse 65536 MB. Die Standard Grösse die Konfiguriert ist beträgt 1024 MB für FortiOS 4.3 sowie 100 MB für FortiOS 5.0/5.2. Um die Grösse anzupassen benütze folgenden Befehl:

       FortiOS 4.3.x:
       # config system global
       # set max-sql-log-size [Angabe der Grösse dh. "1 - 65536"; Default 1024]
       # end
       FortiOS 5.0:
       # config log disk setting
       # set sql-max-size [Angabe der Grösse dh. "1 - 65536"; Default 100]
       # end
       
       NOTE Unter FortiOS 5.2 existiert die Option "sql-max-size" nicht mehr!

Eine weitere Möglichkeit das Memory zu optimieren ist die zur Verfügung stehenden SQL Filter anzupassen dh. WAS in die SQL Database geloggt werden soll und was nicht:

       # config log disk setting
       # config sql-logging
       # set app-ctrl
       # set attack disable
       # set dlp disable
       # set netscan disable
       # set spam disable
       # set traffic disable
       # set virus disable
       # set webfilter disable
       # end
       
       NOTE Ab FortiOS 5.2 existiert die Option "config sql-logging" nicht mehr!

Kann ich die SQL Datenbank für das Logging neu Initialisieren?

Das Logging einer FortiGate geschieht in einer SQL Database. Wenn es aus irgendwelchen Gründen nötig wird diese neu zu initialisieren kann folgender Befehl dazu ausgeführt werden:

       # execute log recreate-sqldb
       This will recreate the SQL log database.
       All local logs recoreded with SQL logging will be deleted!
       Do you want to continue? (y/n) y
       SQL log database is being recreated in the background
       
       NOTE Diese Kommando existiert unter FortiOS 5.2 nicht mehr!

Kann man die Logs die das System selber produziert deaktivieren?

Das System selber produziert Logs wenn zB der NTP Server kontaktiert werden oder zB FortiGuard! Dieser Traffic läuft über die sogenannten "Local-In Policy". Dies bedeutet es existieren System bedingte Loca-In Policy und/oder Manuelle. Möchte man diese aktivieren und/oder deaktivieren steht folgende Konfiguration zur Verfügung um dies zu gewährleisten:

       NOTE Ab 5.2 steht die erwähnte Funktion für 100D und kleiner nicht mehr über 
            Gui zur Verfügung sondern nur noch über CLI:
            
            Log & Report > Log Config > Log Settings > Local Traffic Logging
            
            Möchte man die Funktion auf Kommandozeile manipulieren so benütze folgende Befehle:
            
            FortiOS 5.0
            # config log setting
            # fwpolicy-implicit-log [enable oder disable]
            # fwpolicy6-implicit-log [enable oder disable]
            # set local-in-allow [enable oder disable]
            # set local-in-deny [enable oder disable]
            # set local-out [enable oder disable]
            # end
            
            FortiOS 5.2
            # config log setting
            # fwpolicy-implicit-log [enable oder disable]
            # fwpolicy6-implicit-log [enable oder disable]
            # set local-in-allow [enable oder disable]
            # set local-in-deny-unicast [enable oder disable]
            # set local-in-deny-broadcast [enable oder disable]
            # set local-out [enable oder disable]
            # end
            NOTE Zusätzlich zu den explizit "local-in" Optionen steht bei jedem Log Device der Filter zur Verfügung der 
                 betreffend "local-traffic" ebenfalls konfiguriert werden kann. Dazu siehe nachfolgenden Artikel:
                 
                 FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_bestimmte_Log_Devices_wie_Disk.2C_Memory_usw._Log_Filter_setzen.3F

Weitere Informationen zur Thematik Local-In Policy siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Was_sind_.22Local_In_Policy.27s.22_und_wie_kann_ich_diese_manipulieren.3F]]

Wie konfiguriere ich auf einer FortiGate eine Log-Rotation?

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

       NOTE Unter FortiOS 5.2 steht für kleinere Devices 100D die Disk nicht mehr zur Verfügung für das Logging. Aus 
            diesem Grund kann für diese Devices kein Log Rotation mehr konfiguriert werden. Weitere Informationen 
            betreffend FortiOS 5.2 und Logging im Zusammenhang mit Disk siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F
       # config log disk setting
       # set roll-schedule [daily oder weekly]
       # set roll-time [ Gebe die Zeit an im Format hh:mm]
       
       # get
       status              : enable 
       ips-archive         : enable 
       log-quota           : 1024
       dlp-archive-quota   : 500
       report-quota        : 50
       upload              : disable 
       upload-format       : compact 
       drive-standby-time  : 0
       full-first-warning-threshold: 75
       full-second-warning-threshold: 90
       full-final-warning-threshold: 95
       max-log-file-size   : 100
       storage             : (null)
       roll-schedule       : daily 
       roll-time           : 00:00
       diskfull            : overwrite
       # end

Wie kann ich automatisiert die Log Files auf einen FTP Server/FortiAnalyzer spielen?

Wenn die Log Files auf einer Fortigate automatisiert auf einen FTP Server gespielt werden sollen muss zuerst eine Log-Rotation eingerichtet werden. Dazu führe folgendes aus:

       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_eine_Log-Rotation.3F
       NOTE Unter FortiOS 5.2 steht für kleinere Devices 100D die Disk nicht mehr zur Verfügung für das Logging. Aus 
            diesem Grund kann für diese Devices kein Log Rotation mehr konfiguriert werden. Weitere Informationen 
            betreffend FortiOS 5.2 und Logging im Zusammenhang mit Disk siehe nachfolgenden Artikel:
           
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Danach steht folgendes zur Verfügung für die Konfiguration:

       # set upload [Aktiviere oder Deaktiviere einen Upload der File anhand "enable oder disable"]
       # set upload-delete-files [Aktiviere oder Deaktiviere die Löschung der Logs lokal auf der Fortigate "nach" dem Upload anhand "enable oder disable"]
       # set upload-destination [Gebe das Ziel an für den Upload dh. "rortianalyzer oder "ftp-server"]
       # set upload-format [Gebe an ob die Log Files beim Upload Komprimiert werden sollen anhand "compact oder text"]
       # set upload-ssl-conn [Gebe an sofern ein FortiAnalyzer für den Upload benutzt wird wie Verschlüsselt werden soll dh. "default | high | low | disable"]
       # set uploaddir [Gebe das Upload Verzeichnis an in der Form zB /Log-Archiv/ ]
       # set uploadip [Wenn ein FTP Server benutzt wird für den Upload gebe die IP Adresse des FTP Server an]
       # set uploaduser [Wenn ein FTP Server benutzt wird für den Upload gebe den Usernamen des FTP Server an]
       # set uploadpass [Wenn ein FTP Server benutzt wird für den Upload gebe das Passwort des FTP Server an]
       # set uploadport [Wenn ein FTP Server benutzt wird für den Upload gebe den benutzten Port des FTP Server an]
       # set uploadsched [Aktiviere oder Deaktiviere den Upload zu einer bestimmten Zeit dh. anhand "disable | enable"]
       
       NOTE Wenn "uploadsched" deaktiviert ist wird per Standard der Upload "nach" dem rotieren den Log Files ausgeführt!
       
       # set uploadtime [Gebe hier eine spezifische Upload Zeit an in Form hh:mm sofern "uploadsched" auf enabled steht]
       # set uploadtype [Gebe an "welche" File berücksichtigt werden sollen für den Upload dh. "attack event im spamfilter traffic virus voip webfilter"]
       # set uploadzip [Gebe an ob die Log Files "nach" dem Upload anhand ZIP Komprimiert werden sollen dh "disable | enable"]
       
       NOTE Mit der Option "source-ip" kann die Source IP angegeben werden mit der die FortiGate Ihren Request zum FTP Server absetzt!

Daraus ergiebt sich zB folgendes Scenario:

       # config log disk setting
       # set upload enable
       # set upload-delete-files disable
       # set upload-destination ftp-server
       # set uploaddir /log-archive/
       # set uploadip 193.193.135.65
       # set uploaduser local.intra
       # set uploadpass only4also
       # set uploadport 21
       # set uploadsched disable
       # set uploadtype traffic event virus webfilter IPS spamfilter dlp-archive anomaly voip dlp app-ctrl netscan
       # set uploadzip enable
       
       # get
       status              : enable 
       ips-archive         : enable 
       log-quota           : 1024
       dlp-archive-quota   : 500
       report-quota        : 50
       upload              : enable 
       upload-destination  : ftp-server 
       uploadport          : 21
       source-ip           : 0.0.0.0
       uploadpass          : *
       uploaddir           : /log-archive/ 
       uploadtype          : traffic event virus webfilter attack spamfilter dlp-archive dlp app-ctrl 
       uploadzip           : enable 
       upload-format       : compact 
       uploadsched         : disable 
       uploadtime          : 0
       drive-standby-time  : 0
       upload-delete-files : disable 
       full-first-warning-threshold: 75
       full-second-warning-threshold: 90
       full-final-warning-threshold: 95
       max-log-file-size   : 100
       storage             : (null)
       roll-schedule       : daily 
       roll-time           : 00:00
       diskfull            : overwrite 
       uploadip            : 193.193.135.65
       uploaduser          : local.intra 
       # end

Nach der Uebertragung werden die Files in folgender Form abgelegt (Beispiel Traffic Log):

       tlog.FGT60C3G12013754.root.20120927000000.gz
       NOTE Wurden die Logs von der FortiGate auf einen zB FTP Server wegkopiert können diese nicht mehr für eine
            Analyze zurück auf die FortiGate kopiert werden. Ebenfalls können die Logs nicht auf einen FortiAnalyzer
            Zwecks Analyse kopiert werden sofern der Device resp. die FortiGate nicht im FortiAnalyzer konfiguriert
            wurde. Auch wenn der Device resp. die FortiGate auf dem FortiAnalyzer konfiguriert wurde müssen Zwecks
            Analyse die Logs auf dem FortiAnalyzer importiert werden! Wenn Logs lokal nachträglich analysiert werden
            sollen kann ein Tool wie "Splunk" zur Hilfe genommen werden (http://www.splunk.com).

Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird das Logging bei kleineren Devices (100D und kleiner) deaktiviert?

Bei kleineren Devcies wie zB 40C, 60C/D kann das Logging durchaus ein Problem darstellen dh. betreffend Performance und betreffend beanspruchung des Devices. Dies bedeutet wenn ein kleineren Device relativ stark belastet wird und alles geloggt wird kann es nach längeren Zeit zu Problemen mit der Disk (flash-disk) kommen (zB Block NAND error). Aus diesem Grund sollte nur das geloggt werden was wirklich Sinn macht! Ab FortiOS 4.3 Patch 12 sowie FortiOS 5.0.2 wird aus diesem Grund das "local disk" Logging komplett deaktiviert dh. es wird durch den Patch folgender Befehl abgesetzt:

       # config log disk setting
       # set status disable
       # end
       
       NOTE Untr FortiOS 5.2 wurde das Logging für FortiGate 100D auf Disk komplett deaktiviert. Weitere
            Informationen siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Ein entsprechenden Hinweis sieht man in den "Release Notes":

       Datei:FortiOS-v4.0-MR3-Patch-Release-12-Release-Notes.pdf
       Datei:FortiOS-v5.0-Patch-Release-2-Release-Notes.pdf

Dort wird ebenfalls daraufhingewiesen, dass bei allen aufgeführten Devices nach dem Upgrade ein entsprechender Hinweis eingeblendet wird sei es über Gui oder über CLI (ausgenommen bei Geräten der 80C Reihe):

       GUI:
       Datei:Fortinet-698.jpg
       CLI:
       For optimal performance of your FortiGate unit, disk logging has been disabled during upgrade. It is recommended 
       to enable logging to FortiCloud on this unit to utilize the extended logging & reporting capabilities.

Dies bedeutet: Fortinet empfiehlt den Kunden das Logging für "FortiCloud" zu aktivieren. Weitere Informationen siehe Artikel:

       FortiCloud:FAQ

Ebenfalls kann im Gui "neu" der Log Devices für FortiCloud (set log-device forticloud) gesetzt werden:

       FortiGate-5.0-5.2:FAQ#Wie_.C3.A4ndere_ich_im_WebGui_die_.22Log_Location.22.3F

Wenn weiterhin auf der Disk geloggt werden soll so muss diese Funktion wieder aktiviert werden:

       # config log disk setting
       # set status enable
       Enabling disk logging on this FortiGate unit will impact overall performance and reduce the lifetime of the unit. Fortinet recommends logging to FortiCloud.
       # end
       
       NOTE Wurde innerhalb der Konfiguration "config log disk setting" zusätzliche Konfigurationen durchgeführt wie zB eine
            Log-Rotation so sind diese Informationen nach eine Upgrade verloren da diese durch die Deaktivierung gelöscht werden.
            Sind die Informationen nicht mehr vorhanden können diese im Backup des Konfig File verifiziert werden!

Ab FortiOS 5.2 wird das Logging auf Disk (FortiGate 100D und kleiner) deaktiviert und Disk steht nicht mehr zur Verfügung?

Unter FortiOS 5.2 wurden betreffend Logging mehrere Modifikationen durchgeführt. Dies betrifft "nicht nur" das Format sondern für das "effektive" Logging selber! Dies bedeutet das "flash-based" Logging (Disk) wurde komplett deaktiviert für folgende Modelle:

       NOTE Bei einem Upgrade von FortiOS 5.0.6/7 auf FortiOS 5.2 erscheint auf der Console folgende Meldung:
            
            For optimal performance of your FortiGate unit,
            disk logging and reporting features have been disabled during upgrade.
            It is recommended to enable logging to FortiCloud on this unit
            to utilize the logging & reporting capabilities.
            
            Diese Meldung indiziert das ein Logging auf Disk für diese Modelle nicht zur Verfügung steht. Im
            Grundsatz bedeutet dies folgendes: Alle Modelle kleiner als FG-100D (Ausnahme siehe unten) mit
            Ausnahme der FG-80D sowie FG/FWF-90D Series kann kein Logging auf Disk mehr konfiguriert werden!
       • FG-100D (P09340-04 or earlier)
       • FG-20C
       • FG-20C_ADSL_A
       • FG-200B/200B_POE (Without FSM)
       • FG-300C_Gen1 (P09616-04 or earlier)
       • FG-40C
       • FG-60C
       • FG-60C-POE
       • FG-60C-SFP
       • FG-70D
       • FG-60D
       • FG-80C/80CM (P05403-05, P05446-05)
       • FW-20C
       • FW-40C
       • FW-20C_ADSL_A
       • FW-60CX_A
       • FW-60C
       • FW-60CM (P08962-04 or later)
       • FW-60CX_ADSL-A
       • FW-60D
       • FW-60D-POE
       • FW-80CM (P05405-06 or later)
       
       NOTE Um für die Devices die "System Part Number" zu erruieren dh. zB "P09340-04" kann
            folgender Befehl auf der CLI ausgeführt werden:
              
            # get system status | grep Part-Number

Somit wenn in der Version 5.0.x und tiefer für untere Modelle ein "flash-based" Logging konfiguriert wurde, muss diese Konfiguration modifiziert werden dh. es stehen folgende Logging Device's zur Verfügung:

       Memory Logging
       FortiAnalyzer
       FortiCloud
       Syslog
       
       NOTE Weitere Informationen betreffend Logging auf Memory -sowie "was" konfiguriert werden kann für das Logging- siehe folgender Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_im_Memory_ein.3F
            
            FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Weitere Informationen auf welchem Device welche Log Methode zur Verfügung steht siehe nachfolgenden Artikel:

        FortiOS 5.2 Software Matrix

Wird bei solchen Device's die Disk anhand folgenden Befehls überprüft erscheint folgendes:

       # get system status | grep Log
       Log hard disk: not available

Dies bedeutete in früheren Versionen, dass man die Disk -sofern überhaupt vorhanden- formatieren musste. Dies ist nachwievor möglich anhand folgenden Befehls:

       # execute formatlogdisk
       
       NOTE Wird dies durchgeführt, dann wird die Disk zwar formatiert und ein Neustart ausgeführt jedoch 
            erscheint eine Fehlermeldung:
            
            The system is going down Now!
            Error while writing disk.chk 2(No such file or directory)

Was bedeuten die neuen Logging Options in der Security Policy ab FortiOS 5.02?

Bis anhin konnte in der Policy das Logging entweder aktiviert oder deaktivert werden. Ab FortiOS 5.02 / 5.2 hat man die Möglichkeit verschiedenen Logging Options im Web Gui zu wählen. Nachfolgend eine Beschreibung was diese Optionen im Logging beinhalten sowie die entsprechenden Befehle auf der Kommandozeile:

       • No Log         -> Es werden keine Traffic Logs geschrieben für diese Security Policy.
                           
                           # config firewall policy
                           # edit [Gebe die entsprechende Policy ID an]
                           # set logtraffic disable
                           # end
       • Log UTM        -> Es werden nur Traffic Logs geschrieben für diese Security Policy sowie 
                           für diese UTM Funktionen die aktiviert sind wie zB AntiVirus, WebFilter, 
                           Application Control.
                           
                           # config firewall policy
                           # edit [Gebe die entsprechende Policy ID an]
                           # set logtraffic utm
                           # end
       • Log all        -> Es werden alle Traffic Logs geschrieben für diese Security Policy sei es 
                           Traffic Log sowie UTM Funktionen die aktiviert sind. Wenn diese Option 
                           aktiviert ist kann ein "Capture Packet" durchgeführt werden.
                           
                           # config firewall policy
                           # edit [Gebe die entsprechende Policy ID an]
                           # set logtraffic all
                           # end

Wie kann ich alle Logs zurücksetzen resp. löschen?

Folgender Befehl löscht "alle" Logs unwiederuflich:

       # execute log delete-all
       
       NOTE Verfügt der Device über keine Harddisk und es wird im Memory geloggt, werden
            ebenfalls diese Logs im Memory durch diesen Befehl gelöscht.

Nach Eingabe des Kommandos muss bestätigt werden damit die Logs zurückgesetzt resp. gelöscht werden. Alle Logs gehen unwiederruflich verloren.

Wie kann ich bestimmte Logs in einer bestimmten Kategorie auf CLI auflisten?

       # execute log list [Angabe der entsprechenden Kategorie]
       
       NOTE Kategorien sind: traffic, event, virus, webfilter, attack, spam, content, im, voip, dlp, and app-ctrl.

Wie aktiviere ich auf einer FortiGate das "Extended-UTM-Log"?

Das "Extended-UTM-Log" steht ab FortiOS 5.0 zur Verfügung und loggt Events in den vers. spezifizierten Kategorieren wie Antivirus, IPS usw. in spezielle sperate Logs. Nachfolgende Artikel geben Auskunft wie das Log in den vers. Kategorieren aktiviert wird:¨

       NOTE Ab FortiOS 5.2 existiert das Kommando "extended-utm-log" nicht mehr! Dies bedeutet: Diese
            Konfiguration anhand "extended-utm-log" muss nicht mehr durchgeführt werden sondern ist 
            per Standard das normale Log Verhalten unter FortiOS 5.2. Dies wiederum bedeutet FortiOS 5.2
            loggt per Standard in "seperate" (wie extended-utm-log enabled) Log Files.
       FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_einen_DLP_Sensor_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_Antivirus_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_WebFilter_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_eine_Spamfilter_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_f.C3.BCr_Voip_auf_einer_FortiGate_das_Extended-UTM-Log_ein.3F
       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_die_SSL_Proxy_Options_auf_einer_FortiGate_das_Extended-UTM-Log.3F
       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_f.C3.BCr_Application_Control_auf_einer_FortiGate_das_Extended-UTM-Log.3F

Desweiteren -betreffend Log Konfiguration- empfehlen wir folgenden Artikel einzusehen:

       FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wie kann ich verhindern das ein Usernamen in den Log's angezeigt wird?

Ab FortiOS 5.0.5 / 5.2 ist es möglich "usernamen" in den Logs mit einem "anonymous" zu versehen dh. anstelle des Usernamens wird "anonymous" angezeigt. Dazu muss folgendes durchgeführt werden:

       # config log setting
       # set user-anonymize enable
       # end

Kann ich betreffend Logging die Kapazität auf einer FortiGate erhöhen?

Für das Logging ist der Prozess "miglogd" zuständig. Dazu siehe auch folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Prozess_.22miglogd.22_zeigt_permanente_99.25_Auslastung_und.2Foder_FortiGate_reagiert_sehr_langsam.3F

Wenn der Prozess "miglogd" eine hohe Auslastung zeigt kann das durchaus auch von einem hohen Aufkommen der Logs herstammen jedoch muss nicht dh. der Umstand weshalb "miglod" eine hohe Auslastung zeigt muss genau eruiert werden. Wenn ein hohes Aufkommen der Logs zuständig ist für die hohe Auslastung von "miglogd" können die Deamons die für "miglogd" zur Verfügung stehen erhöt werden. Per Standard stehen 8 Deamons zur Verfügung. Um die Deamons für "miglogd" zur erhöhen was wiederum eine höhere Speicherauslastung zur Folge hat muss folgendes durchgeführt werden (ab FortiOS 5.0.6 / 5.2):

       # config system global
       # set miglogd-children [Anzahl Deamons 0 - 15; Standard Wert 8] 
       # end
       
       NOTE Wenn die Anzahl der Deamons verändert wird gehen keine Logs verloren! Für FortiOS 5.2
            gilt der Standard Wert "0"! Um festzustellen wieso die Anzahl zu vergrössern ist siehe 
            nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_detaillierte_Informationen_.C3.BCber_den_Log_Deamon_.28miglogd.29_anzeigen_lassen.3F

Wie sieht/führe ich eine vollständige Log Konfiguration auf einer FortiGate aus?

Nachfolgendes Beispiel zeig wie man auf einer FortiGate ALLE Logs aktiviert/deaktiviert (inkl. UTM-Log's) sowie diese einem FortiAnalyzer übermittelt:

       NOTE Wenn über einen FortiAnalyzer geloggt wird kann durchaus jedes Log eingeschaltet werden. Wird jedoch
            auf die Disk geloggt ist es "NICHT ZU EMPFEHLEN" alle Logs zu aktivieren da das exsessive Logging
            auf der Disk einen event. Crash auf der Disk auslösen kann! Desweiteren sollte darauf geachtet werden,
            das nur auf einen Device geloggt wird dh. zwei Device Log zu aktivieren kann Sinn machen ist jedoch
            eher unüblich. Dies bedeutet auf die lokale Disk und auf den FortiAnalyzer zu loggen macht keinen Sinn,
            denn wenn FortiAnalyzer aktiviert wird und das "gui" ebenfalls auf FortiAnalyzer gesetzt ist, werden 
            dort dh. im Gui die Logs die zum FortiAnalyzer übermittelt werden ebenfalls angezeigt!
       Aktiviere/Deaktiviere für DLP UTM-Log/Log 
       
       # config dlp sensor 
       # edit [Name des Profiles]  
       # set extended-utm-log [enable | disable] 
       # set dlp-log [enable | disable] 
       # set nac-quar-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für Antivirus UTM-Log/Log
       
       # config antivirus profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set av-block-log [enable | disable] 
       # set av-virus-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für VoiP UTM-Log/Log
       
       # config voip profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # config sip 
       # set status [enable | disable] 
       # set log-violations [enable | disable] 
       # set log-call-summary [enable | disable] 
       # end 
       # config sccp 
       # set status [enable | disable] 
       # set log-call-summary [enable | disable] 
       # set log-violations [enable | disable] 
       # end 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für Application UTM-Log/Log
       
       # config application list 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set log [enable | disable] 
       # set other-application-log [enable | disable] 
       # set unknown-application-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" und/oder "log" nicht mehr!
       Aktiviere/Deaktiviere für Deep-Inspection, SSL-SSL-Profile UTM-Log/Log
       
       # config firewall deep-inspection-options 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set ssl-invalid-server-cert-log [enable | disable] 
       # set allow-invalid-server-cert [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert "deep-inspection-options" nicht mehr und wurde verschoben in
            "ssl-ssh-profile". Die Option "extended-utm-log" existiert nicht mehr:
       
       # config firewall ssl-ssh-profile
       # edit [Name des Profiles] 
       # set ssl-invalid-server-cert-log [enable | disable] 
       # end
       Aktiviere/Deaktiviere für Protocol Options UTM-Log/Log
       
       # config firewall profile-protocol-options 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # set oversize-log [enable | disable] 
       # set switching-protocols-log [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für WebFilter UTM-Log/Log 
       
       # config webfilter profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # config web
       # set log-search [enable | disable] 
       # end
       # set log-all-url [enable | disable] 
       # set web-content-log [enable | disable] 
       # set web-filter-command-block-log [enable | disable] 
       # set web-filter-cookie-log [enable | disable] 
       # set web-filter-applet-log [enable | disable] 
       # set web-filter-jscript-log [enable | disable] 
       # set web-filter-js-log [enable | disable] 
       # set web-filter-vbs-log [enable | disable] 
       # set web-filter-unknown-log [enable | disable] 
       # set web-filter-referer-log [enable | disable] 
       # set web-filter-cookie-removal-log [enable | disable] 
       # set web-url-log [enable | disable] 
       # set web-invalid-domain-log [enable | disable] 
       # set web-ftgd-err-log [enable | disable] 
       # set web-ftgd-quota-usage [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr!
       Aktiviere/Deaktiviere für WebFilter [Minimal] UTM-Log/Log  
       
       # config webfilter profile 
       # edit [Name des Profiles] 
       # set extended-utm-log enable 
       # config web
       # set log-search [enable | disable] 
       # end
       # set log-all-url enable 
       # set web-url-log enable 
       # set web-ftgd-err-log enable 
       # end
       Aktiviere/Deaktiviere für Spamfilter UTM-Log/Log  
       
       # config spamfilter profile 
       # edit [Name des Profiles] 
       # set extended-utm-log [enable | disable] 
       # config imap
       # set log enable
       # end
       # config pop3
       # set log enable
       # end
       # config smtp
       # set log enable
       # end
       # config mapi
       # set log enable
       # end
       # config msn-hotmail
       # set log enable
       # end
       # config yahoo-mail
       # set log enable
       # end
       # config gmail
       # end
       # end
       
       NOTE Ab FortiOS 5.2 existiert die Option "extended-utm-log" nicht mehr! Neu dazugekommen
            ist die Option:
            
            # config spam-log [enable | disable]
       Aktiviere/Deaktiviere Global Settings Log   
       
       # config log setting 
       # set brief-traffic-format [enable | disable] 
       # set daemon-log [enable | disable] 
       # set neighbor-event [enable | disable] 
       # set fwpolicy-implicit-log [enable | disable] 
       # set fwpolicy6-implicit-log [enable | disable]
       # set gui-location [fortianalyzer] 
       # set log-invliad-packet [enable | disable]
       # set local-in-allow [enable | disable] 
       # set local-in-deny [enable | disable] 
       # set local-out [enable | disable] 
       # set resolve-apps [enable | disable] 
       # set resolve-hosts [enable | disable] 
       # set resolve-ip [enable | disable] 
       # set user-anonymize [enable | disable] 
       # set log-user-in-upper [enable | disable] 
       # end 
       
       NOTE Ab FortiOS 5.2 existiert die folgenden Option nicht mehr:
            
            gui-location
            local-in-deny
            resolve-apps
            resolve-hosts
            
            Neu dazugekommen sind folgende Optionen:
            
            # set resolve-port [enable | disable] 
            # set local-in-deny-unicast [enable | disable]
            # set local-in-deny-broadcast [enable | disable]
            # set daemon-log [enable | disable] 
            # set neighbor-event [enable | disable] 
            # set brief-traffic-format [enable | disable] 
       Aktiviere/Deaktiviere Gui Location FortiOS 5.2 Only  
       
       # config log gui-display
       # set location [Gebe an fortiguard | memory | disk | fortianalyzer | syslogd]
       # set resolve-hosts [enable | disable]
       # set resolve-apps [enable | disable]
       # set fortiview-unscanned-apps [enable | disable]
       # set fortiview-local-traffic [enable | disable]
       # end
       
       NOTE Ab FortiOS 5.2.2 stehen die Optionen "set fortiview-unscanned-apps" sowie "fortiview-local-traffic" zur Verfügung.
            Diese Optionen stehen im Zusammenhang mit FortiView. Weitere Informationen siehe:
            
            FortiGate-5.0-5.2:FAQ#In_FortiView_werden_.22unknown_app.22_sowie_.22local_traffic.22_angzeigt_und.2Foder_nicht_angezeigt.3F
       Aktiviere/Deaktiviere Gui Monitor  
       
       # config system global
       # set gui-utm-monitors enable
       # end
       
       NOTE Weitere Informationen zur Funktion "gui-utm-monitors" siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_die_.22UTM_Monitor.22_Funktion.3F
       Aktiviere/Deaktiviere Global Settings (Empfehlung] Log    
       
       FortiOS 5.0
       # config log setting 
       # set fwpolicy-implicit-log enable 
       # set gui-location [fortianalyzer] 
       # set local-in-allow disable 
       # set local-in-deny disable 
       # set local-out disable 
       # set resolve-apps enable 
       # set resolve-hosts enable 
       # set resolve-ip enable 
       # set user-anonymize disable 
       # end 
       
       FortiOS 5.2
       # config log setting 
       # set fwpolicy-implicit-log enable 
       # set local-in-allow disable 
       # set local-in-deny-unicast disable
       # set local-in-deny-broadcast disable
       # set local-out disable 
       # set resolve-ip enable 
       # set resolve-port enable 
       # set user-anonymize disable 
       # set daemon-log enable 
       # set neighbor-event disable 
       # set brief-traffic-format disable 
       # end 
       Aktiviere/Deaktivieren Network Visibility
       
       # config system network-visibility 
       # destination-visibility [enable | disable]
       # source-location [enable | disable]
       # destination-hostname-visibility [enable | disable]
       # hostname-ttl [Definiere TTL Standard 86400]
       # hostname-limit [Definiere Anzahl Hostname Limit Standard 5000]
       # destination-location [enable | disable]
       # end
       
       Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_beeinflusst_das_Kommando_.22config_system_network-visibility.22_die_Logs_und_die_enthaltenen_Informationen.3F
       Aktiviere/Deaktiviere Eventfilter Log    
       
       # config log eventfilter 
       # set event [enable | disable] 
       # set router [enable | disable]
       # set system [enable | disable]
       # set user [enable | disable]
       # set vpn [enable | disable]
       # set wan-opt [enable | disable]
       # set wireless-activity [enable | disable]
       # end
       
       Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_kann_ich_f.C3.BCr_bestimmte_Log_Devices_wie_Disk.2C_Memory_usw._Log_Filter_setzen.3F
       Aktiviere/Deaktiviere Logging Devices "fortianalyzer"
       
       # config log fortianalyzer setting 
       # set status enable 
       # set ips-archive enable 
       # set server [FortiAnalyzer IP] 
       # set enc-algorithm default 
       # set localid [set a local ID for Device like Serial Nr.] 
       # set psksecret [Password for Preshared Key] 
       # set conn-timeout 10 
       # set monitor-keepalive-period 5 
       # set monitor-failure-retry-period 5 
       # set source-ip 0.0.0.0 
       # set upload-option realtime 
       # set reliabl enable 
       # end
       
       # config log fortianalyzer filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end
       
       Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_Verbindung.2FLogging_zum_FortiAnalyzer_konfigurieren.3F
       Aktiviere/Deaktiviere Logging Devices "memory"
       
       # config log memory setting 
       # set status [enable | disable]
       # set diskfull overwrite 
       # end 
       
       # config log memory filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end
       
       Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_im_Memory_ein.3F
       Aktiviere/Deaktiviere Logging Devices "disk"
       
       # config log disk setting 
       # set status [enable | disable]
       # set diskfull overwrite 
       # end 
       
       # config log disk filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end
       
       Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_schalte_ich_auf_einer_FortiGate_das_Logging_auf_der_Disk_ein.3F
       Aktiviere/Deaktiviere Logging Devices "syslogd"
       
       # config log syslogd setting 
       # set status [enable | disable]
       # set server [IPv4 Adresse; FQDN Syslog Server]
       # set facility local0
       # end 
       
       # config log syslogd filter
       # severity information
       # fortward-traffic enable
       # local-traffic enable
       # multicast-traffic enable
       # sniffer-traffic enable
       # anomaly enable
       # netscandiscovery enable
       # netscan-vulnerability enable
       # voip enable
       # dlp-archive enable
       # end
       
       Weitere Informationen dazu FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_Fortigate_die_Logs_zus.C3.A4tzlich_einem_Syslog_Server_senden.3F
       Aktiviere/Deaktiviere Logging Devices "fortiguard"
       
       # config log fortiguard setting 
       # set status [enable | disable]
       # end
       
       Weitere Informationen dazu FortiCloud:FAQ

Kann ich auf einer FortiGate betreffend Log einen "Eigene Log Nachricht" erstellen?

Wenn logging aktiviert wurde auf einer FortiGate und dieses Log zB zu einem FortiAnalyzer übermittelt wird kann dort über das Event Management die Logs überwacht werden. Wenn ein entsprechender Eintrag erscheint kann ein Event ausgelöst werden. Natürlich kann dies über die bestehenden Standard Log Informationen gefiltert werden und so der Event ausgelöst werden. Wenn jedoch dies schwierig ist und man ein "Key-Word" benötigt steht man vor dem Problem "wie kommt das Key-Word in das Log". Dies kann auf einer FortiGate über die Funktion "custom-log-fields" bewerkstelligt werden. Als Erstes muss die entsprechende Policy ID eruiert werden in dem das "Key-Word" (custom-log-fields) konfiguriert resp. erscheinen soll:

       # show firewall policy

Danach kann ein entsprechendes "custom-log-fields" erstellt werden:

       # config log custom-field
       # edit id [Gebe einen entsprechenden Integer an zB "1"]
       # set name [Vergebe das entsprechende "Key-Word"]
       # set value [Gebe die entsprechende Policy-ID]
       # end
       
       NOTE Als "name" sind nur "Alphanummerische" zeichen erlaubt. Die Gesamtlänge darf
            16 Zeichen nicht übersteigen!

Bestehen verschiedene "custom-log-fields" und sollen diese in einer "Firewall Policy" kombiniert werden ist dies möglich und muss in der "Firewall Policy" selber definiert werden:

       # config firewall policy
       # edit [Gebe die entsprechende Policy-ID an]
       # set custom-log-fields [Gebe den entsprechenden Integer an des "custom-field"; mehrere "custom-field" werden getrennt durch einen Leerschlag]
       # end
       
       NOTE Achte beim Test darauf das die entsprechende "Firewall Policy" für das Log aktiviert ist:
            
       # config firewall policy
       # edit [Gebe die entsprechende Policy-ID an]
       # set logtraffic all
       # end

Wie aktiviere ich auf einer FortiGate die "UTM Monitor" Funktion?

Unter FortiOS 4 MR3 wurden - per Standard - unter den UTM Profiles/Security Profiles die "UTM Monitor" angezeigt! Unter FortiOS 5.0 / 5.2 sind diese - per Standard - deaktiviert und stehen im direkten Zusammenhang mit den "Extended UTM Logs"! Möchte man die "UTM Monitor" wieder aktivieren müssen die "Extended UTM Log's" vorgängig korrekt konfiguriert resp. aktiviert werden. Wie dies durchgeführt wird siehe nachfolgenden Artikel:

       NOTE Unter FortiOS 5.2 existiert die Konfiguration in den vers. Profiles betreffend UTM Logs nicht
            mehr (extended-utm-log) und ist per Standart aktiviert!
       FortiGate-5.0-5.2:FAQ#Wie_aktiviere_ich_auf_einer_FortiGate_das_.22Extended-UTM-Log.22.3F
       
       NOTE Um einen vollständigen Ueberblick zu erhalten betreffend Logging siehe auch nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wenn die Aktivierung resp. die Konfiguration der "Extended UTM Logs" durchgeführt wurde kann die "UTM Monitor" Funktion aktiviert werden:

       # config system global
       # set gui-utm-monitors enable
       # end

Danach sind diese über das Web Gui ersichtlich und basieren auf den "Extended UTM Logs":

       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

Wie kann ich detaillierte Informationen über den Log Deamon (miglogd) anzeigen lassen?

Für das Logging auf einer FortiGate ist der Logging Deamon verantwortlich dh. "miglogd". Wenn zB der "miglogd" betreffend der Log Kapazität ausgelastet ist kann dieser anhand der "children" erhöht werden. Dazu siehe folgender Artikel:

       FortiGate-5.0-5.2:FAQ#Kann_ich_betreffend_Logging_die_Kapazit.C3.A4t_auf_einer_FortiGate_erh.C3.B6hen.3F

Wenn der "miglogd" zB aus unbestimmten Gründen eine nahezu 100% Auslastung zeigt kann dieser neu gestartet werden. Dazu siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Prozess_.22miglogd.22_zeigt_permanente_99.25_Auslastung_und.2Foder_FortiGate_reagiert_sehr_langsam.3F

Aus den vorgehenden Beispielen ergiebt sich jedoch die Frage: Wie kann ich herausfinden resp. Informationen auflisten des "miglogd" um heraus zu finden wieso der "miglogd" zB eine 99% Auslastung zeigt! Dazu kann folgender Befehl mit dessen Optionen benützt werden:

        # diagnose test application miglogd -1
        1. Show global log setting
        2. Show vdom log setting
        3. Show log buffer sz
        4. Show active log devices
        5. Show MAX file descriptor number
        6. Dump statistics
        9. Delete all policy sniffer files
        10. Show cid cache
        11. Show utm traffic cache
        15. Show miglog ID
        16. Show log disk usage
        17. Show traffic history monitor state
        18. Show network interface cache
        19. Show application cache
        20. Show forticloud log state
        21. Show memory log statistics
        22. Show memory traffic logs
        23. Show memory event logs
        
        101. Vdom-root show log setting
        102. Vdom-root show application custom cache
        103. Vdom-root show application list cache
        104. Vdom-root Show utm traffic cache
        105. Vdom-root Show reputation traffic cache

Nachfolgend einige Beispiele welche Informationen enthalten sind:

        # diagnose test application miglogd 1
        miglogd 0:
        
        have_disk=2, vdom-admin=0
        icsa_comp=0, confsync=0
        mgmt=root
        
        Global memory setting:
                maxsize=65536, full_first_warning=75, full_second_warning=90
                full_final_warning=95
        
        syslog:
        
        fortilog:
        
        fds: status=0
        
        webtrends: status=0
        # diagnose test application miglogd 3
        miglogd 0:
        
        fgtdev_buf_sz = 524288.
        # diagnose test application miglogd 4
        miglogd 0:
        
        Number of active log devices: 1
                alertmail
        # diagnose test application miglogd 16
        miglogd 0:
        
        VDOM log disk usage:
          root: 0B/4935M
        # diagnose test application miglogd 21
        miglogd 0:
        
        traffic:  capacity = 65536,  used = 0
        event:  capacity = 65536,  used = 0
        virus:  capacity = 65536,  used = 0
        webfilter:  capacity = 65536,  used = 0
        ips:  capacity = 65536,  used = 0
        spam:  capacity = 65536,  used = 0
        contentlog:  capacity = 65536,  used = 0
        anomaly:  capacity = 65536,  used = 0
        voip:  capacity = 65536,  used = 0
        dlp:  capacity = 65536,  used = 0
        app-ctrl:  capacity = 65536,  used = 0
        netscan:  capacity = 65536,  used = 0

Gibt es für das Logging eine Performance Statistik und kann ich diese manipulieren/konfigurieren?

Ab FortiOS 5.2.2 kann man die Performance Statistik (perf-stats) betreffend Logging des FortiAnalyzers und/oder Syslog konfiguriren betreffend Interval. In den Global Options kann man den Interval der Performance Logging Statistik definieren mit folgenden Befehl:

       # config system global
       # set sys-perf-log-interval [Interval in Minuten 1 - 15, 0 Deaktiviert; Standard 5]
       # end

Ist es möglich die lokalen Logs einer FortiGate auf einen USB Stick zu kopieren?

Ab FortiOS 5.2.2 steht ein regulärer Befehl zur Verfügung um dies durchzuführen. Damit dies durchgeführt werden kann muss ein entsprechender USB Stick angeschlossen und formatiert werden. Dies geschieht am Besten über die FortiGate. Nachfolgender Link gibt Auskunft wie eine Formatierung eines USB Sticks über die FortiGate durchgeführt wird:

       FortiGate-5.0-5.2:FAQ#Was_ist_bei_einem_Anschluss_eines_USB_Sticks_an_eine_Fortigate_zu_ber.C3.BCcksichtigen.3F

Sobald der USB Stick angschlossen und korrekt Formatiert wurde kann anhand des folgenden Befehls die lokalen Logs der FortiGate auf den USB Stick kopiert werden:

       # execute backup disk alllogs usb
       
       NOTE Es muss berücksichtigt werden das bei kleinen Device's ab 5.2 nicht mehr auf die lokale Disk geloggt
            werden kann somit können -da in Memory geloggt wird- die Logs nicht kopiert werden! Weitere Informationen
            dazu findet man im folgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Ab_FortiOS_5.2_wird_das_Logging_auf_Disk_.28FortiGate_100D_und_kleiner.29_deaktiviert_und_Disk_steht_nicht_mehr_zur_Verf.C3.BCgung.3F

Dieser Befehl kopiert alle vorhandenen Logs auf den USB Stick. Möchte man nur bestimmte Logs dh. Traffic Log, Event Log usw. kopieren kann folgender Befehl benutzt werden:

       # execute backup disk log usb [traffic | event | ips | virus | webfilter | spam | dlp | voip | appctrl | anomaly | netscan]

Die Log's werden beim kopieren nicht manipuliert sondern 1:1 auf den USB Stick übernommen.

Wie beeinflusst das Kommando "config system network-visibility" die Logs und die enthaltenen Informationen?

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

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

Im WebGui für eine FortiGate 20C, 30D, 60C, 60D, 70D und 80C sind für FortiCloud keine Logs ersichtlich was ist zu tun?

Wenn auf einer FortiGate das Logging für FortiCloud mit nachfolgenden Befehlen aktiviert wird, kann es vorkommen das in einem späteren Zeitpunkt die Logs über das Web Mgmt. Interface - obwohl das Gui korrekt gesetzt wurde - nicht mehr ersichtlich sind:

      # config log fortiguard setting 
      # set status [enable | disable]
      # end
      FortiOS 5.0
      # config log setting 
      # set gui-location fortiguard 
      # end 
      FortiOS 5.2
      # config log gui-display
      # set location fortiguard
      # end

Der Grund, dass die Logs über Web Mgmt. Interface nicht mehr ersichtlich sind liegt im Memory Bereich. Dies bedeutet: Die genannten Devices 20C, 30D, 60C, 60D, 70D sowie 80C kommen mit einer bestimmten grösse an Memory zB 30D 512MB. Wenn Logs generiert werden so werden diese in das Memory geschrieben (Buffer). Dieser Buffer ist zuständig das die Logs im Web Mgmt. Interface angezeigt werden. Die Grösse dh. wieviele Zeilen im Mgmt. Interface angezeigt werden wird über folgendes Kommando definiert:

      # config system global 
      # set gui-lines-per-page [Standard 50] 
      # end

Verfügt ein Device nur über relativ wenig Memory (Beispiel 30D 512MB) sowie ist der Device relativ hoch belastet steht für den "Buffer" (50 gui-lines-per-page) kein Memory Bereich mehr zur Verfügung. Die Lösung ist die "gui-lines-per-page" herunter zu setzen auf zB 20:

      # config system global 
      # set gui-lines-per-page 20 
      # end

Danach werden die Logs wieder im Mgmt. Interface angezeigt. Dieses Symptome das die Logs nicht mehr im Memory mit Standard Wert 50 angezeigt werden können indiziert jedoch das der Device betreffend Memory an seine Grenze angelangt ist und sollte "eventuell" durch Optimierungen oder durch einen grösseren Device ersetzt werden.

SNMP

Gibt es für die Fortigate ein MIB File und wo kann ich dieses runterladen?

       NOTE Unter FortiOS 5.0 / 5.2 wird das MIB dh. inkl. Core MIB direkt auf der FortiGate unter folgender Position zur
            Verfügung gestellt:
            
            Datei:Fortinet-618.jpg

Durch Fortinet wird für die Fortigate ein MIB File für SNMP zur Verfügung gestellt. Dieses kann unter dem Support Account runtergeladen werden:

       https://support.fortinet.com

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

       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

Was muss beachtet werden wenn eine FortiGate Cluster über das Mgmt. Interface anhand "snmp poll" überwacht werden soll?

Wenn eine FortiGate im Cluster Mode betrieben wird ist es zu empfehlen jedem Node im Cluster ein Port (Interface) als Mgmt. Interface zu definieren. Dies wird in der HA Konfiguration über Web Mgmt. Interface durchgeführt in dem für die Position "Reserve Management Port for Cluster Member" der entsprechende Port definiert wird. Dies gewährleistet bei Problemen Zugriff auf jeden Node ohne Einfluss auf den Cluster Modus oder momentaner Status. Desweiteren kann über dieses definierten Port (Reserve Management Port for Cluster Member) die Ueberwachung jedes Nodes unabhängig durchgeführt werden. Dabei ist zu beachten das "snmp" auf dem entsprechenden definiert Port aktiviert wird. Damit das "snmp poll" über das entsprechend definierte Interface funktioniert muss die Option "ha-direct" aktiviert werden. Dies bedeutet: Wenn über eine entsprechende "snmp" Software folgende OID über ein "snmp poll" durchgeführt wird auf das dedizierte Mgmt. Interface kann jeder Noder einzeln überwacht werden:

       OID .1.3.6.1.4.1.12356.101.3.2.1.1.4.1 
       Name : fgVdEntHaState
       Values : Master oder Backup

Damit das "snmp poll" funktionert ergiebt sich folgende Konfiguration die durchzuführen ist:

       Definiere "Reserve Management Port for Cluster Member" für den Node
       # config system ha
       # set ha-mgmt-status enable
       # set ha-mgmt-interface [Definiere den entsprechenden Port zB "mgmt1"]
       # set ha-mgmt-interface-gateway [Setze den Default Gateway für den Port zB "mgmt1" zB "10.10.10.254"]
       # end
       
       NOTE Wenn ein Port resp. Interface als "Reserve Management Port for Cluster Member" resp. als dezidiertes
            Mgmt. Interface definiert wird so wird dieses Interface aus der Routing Table entfernt. Dies bedeutet:
            dies ist der Grund wieso der Gateway (Routing) für dieses Interface definiert werden muss. Ein Interface
            das als dediziertes Mgmt. Interface definiert wird kann mit einer IP sowie Subnet versehen werden die
            zB für ein vorhandenes Interface ein Overlapping darstellt. Dies kann jedoch erst nachträglich nach 
            der Definition im "config system ha" durchgeführt werden. Da dieses definierte Mgmt. Interface resp.
            Port aus der Routing Table entfernt wird stellt dieses dezidierte Interface eine seperate Routing 
            Instanz dar. Aus diesem Grund zeigt der Device eine erhöhte Auslastung die jedoch unter normalen
            Umständen nicht von Belang ist.
       Definiere eine entsprechende IP für den entsprechenden Mgmt. Port
       # config system interface
       # edit [Editiere den entsprechenden Port zB "mgmt1]
       # set ip 10.10.10.1/24
       # set allowacce https ssh snmp ping]
       # end
       Aktiviere in der entsprechende SNMP Comunity "ha-direct"
       # config system snmp community
       # edit 1
       # config hosts
       # edit 1
       # set ha-direct enable
       # set ip 10.10.10.0 255.255.255.0
       # next
       # next
       # end

Switch-Mode

Wie setze ich für den "Internen Switch" den Interface Speed?

Um den Interface "speed" bei vielen Fortigate Modelle auf dem "Internal Switch" zu setzen führe folgendes aus:

      # config system global
      # set internal-switch-speed [1000full | 100full | 100half | 10full | 10half | auto]
      # end
      NOTE Desweiteren sollte betreffend Einstellungen und/oder Duplex Mismatch folgender Artikel
           berücksichtigt werden:
           
           FortiGate-5.0-5.2:FAQ#Wie_stelle_ich_fest.2Fkontrolliere_ich_ob_auf_irgendwelchen_Interfaces_ein_Error_existiert_.28duplex_mismatch.29.3F

Kann ich die den "Internen Switch" (Switch-Mode) bei einer Fortigate "Separieren" (Interface-Mode)?

Ja, man kann bei einigen Modellen den "Internal Switch" separieren dh. so das jeder einzelne Port über seine eigenen MAC Adresse verfügt sowie konfiguriert werden kann. Ob bei einem Modell dies möglich ist zeigt das "Software Matrix" Dokument Position "Switch/Interface Mode":

       FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F
       
       NOTE Dabei ist folgendes zu berücksichtigen: Wenn der Device über einen "Switch Controller" verfügt, 
            was ebenfalls in der "Software Matrix" ersichtlich ist, verfügen diese Device's effektive über
            einen Hardware technischen "Switch Controller". Bei diesen Geräten kann der "Internal Switch"
            ebenfalls aufgebrochen werden jedoch nicht über die Kommandozeile und nicht anhand des Kommandos
            "internal-swtich-mode". Denn dieses Kommando steht für diese Geräte nicht zur Verfügung. Wie
            der "Internal Switch" Mode bei diesen Devices in einzelne Ports separiert wird zeigt der folgende
            Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wieso_kann_ich_auf_einer_FortiGate_mit_.22Hardware_Switch.22_.28zB_60D.2F100D.2F140D.2F240D.29_den_Internal_Switch_nicht_in_einzelne_Ports_aufbrechen.3F

Um die Ports betreffend dem "Internal Swtich" zu separieren geben auf der Console folgendes ein:

       # config sys global
       # set internal-switch-mode interface
       # end
       changing switch mode will reboot the system!
       Do you want to continue? (y/n)y
       ACHTUNG Wenn man dieses Kommando absetzt so kann eine Fehlermeldunge erscheinen:
       
       Interface internal is in use
       attribute set operator error, -23, discard the setting
       Command fail. Return code -23
       
       Der Grund dafür ist, dass das Internal LAN Interface in Benutzung ist. Dies bedeutet es wird genutzt in einer Policy/Rule
       oder für eine andere Funktion. Um das zu verifizieren loggt man sich auf dem WebMgmt. Gui an und verifiziert dies über
       
       System > Status > Interface
       
       Auf der Zeile des Internal LAN Interfaces sind die Refrence für das Interfaces gelistet (ganz Rechts). Klickt man auf
       die Refrence (Ref) so sieht man wo das Interface in Benützung ist. Geht man von einem Factory Default aus so ist das
       Interface benutzt in der Policy/Rule und im DHCP Server. Deshalb kann diese nicht in den "Switch-Mode" gesetzt werden
       sowie die genannte Fehlermeldung erscheint. Wenn man diese Policy/Rule über die Console löschen möchte führe folgendes 
       durch:
       
       # config firewall policy
       
       Verifiziere welche Policy/Rule es betrifft (in unserem Fall Policy/Rule "1"):
       
       # show
       config firewall policy
           edit 1
               set srcintf "internal"
               set dstintf "wan1"
                   set srcaddr "all"
                   set dstaddr "all"
               set action accept
               set schedule "always"
                   set service "ANY"
               set nat enable
           next
       end
       
       Lösche nun die Policy/Rule "1":
       
       # del 1
       
       Verifiziere ob die Policy/Rule gelöscht wurde:
       
       # show
       config firewall policy
       end
       # end
       
       Lösche nun den DHCP Server:
       
       # config system dhcp server
       
       Verifiziere die momentane Konfiguration:
       
       # show
       config system dhcp server
           edit 1
               set default-gateway 192.168.1.99
               set dns-service default
               set interface "internal"
                   config ip-range
                       edit 1
                           set end-ip 192.168.1.210
                           set start-ip 192.168.1.110
                       next
                   end
               set netmask 255.255.255.0
           next
       end
               
       Lösche den DHCP Server "1":
       
       # del 1
       # show
       # end
       
       Nun kann der Befehl des "Switch-Mode" abermalls ausgeführt werden:
       
       # config sys global
       # set internal-switch-mode interface
       # end
       changing switch mode will reboot the system!
       Do you want to continue? (y/n)y

Wenn nach dem Neustart kein Interface mehr konfiguriert ist/wäre und dies über die Console bewerkstelligt werden müsste kann folgendes durchgeführt werden:

      # config system interface
      # edit [Name des Ports zB internal1]
      # set ip [zB 192.168.1.99/24]
      # set alias [Name des Alias zB internal]
      # end

Um den Mgmt. Web Zugriff wieder zu gewährleisten führe folgendes durch:

      # config system interface
      # edit [Name des Ports zB internal1]
      # set allow [zB http https ping ssh telnet]
      # end

Falls wiederum ein DHCP Server konfiguriert werden soll führe folgendes durch:

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

Wie kann ich auf einer FortiGate anhand Interfaces einen Software-Switch (oder auch Hub) erstellen?

Ein "Software-Switch" ist ein Software basierende Funktion eines "Hardware-Switches" die wie ein Switch aggiert! Sobald ein "Software-Switch" erstellt wird, werden die Interfaces zusammengefasst unter einer "MAC Adresse" und aggieren somit wie ein einzelnes Interface. Traffic zwischen den Interfaces, die Mitglieder sind im Software-Switches, ist erlaubt und kann auch anhand einer Policy nicht verhindert werden. Es ist zu berücksichtigen, dass "Software-Switches" resp. deren Interfaces unter HA nicht überwacht (Monitor) oder als "Heartbeat" Interface benutzt werden können. Ein "Software-Switch" kann übers Web Mgmt. Interface konfiguriert werden dh. über:

       System > Network > Interface > Create New > Interface

Vergebe danach für den Software-Switch einen Namen sowie wähle unter "Type" den Eintrag "Software Switch".

       NOTE Um die gewünschten Interfaces auswählen zu können dürfen diese nicht "in Gebrauch" sein dh.
            zB in einer "Firewall Policy". Dies bedeutet ist dies der Fall müssen die entsprechenden Einträge
            resp. Abhängigkeiten eruieirt und die entsprechenden Einträge gelöscht werden, um nnachträglich 
            die gewünschten Interfaces zum Software Switch hinzu zufügen.

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

       # config system switch-interface
       # edit [Name des Software Switches]
       # set member [Gebe die entpsrechenden Interfaces an zB "port1 port2"]
       # set span [Aktiviere oder Deaktiviere das Port Spanning anhand enable | disable]
       # set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
       # set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]]
       # set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]]
       # set type [Setze den Mode für den Software Switch dh. hub | switch | hardware-switch]
       # set vdom [Vergebe den VDom Name inder der Software Switch benutzt wird]
       # end

Kann ich auf einer FortiGate für den "Software Switch" und/oder virtuellen "Hardware Switch" eine SPAN Port (Port Mirroring) konfigurieren?

Wenn auf einer FortiGate ein "Port Mirroring" konfiguriert werden soll so ist dies für einen "Software Switch" möglich. Diese Funktion des "Port Mirroring" wird auf einem FortiGate Device SPAN benannt. Die SPAN Funktion oder eben "Port Mirroring" sendet "Jedes Packet" vom definierten "span-source-port" zum "span-dest-port". Wenn nun nachträglich auf dem "span-dest-port" ein Sniffer konfiguriert wird (ips-sniffer-mode enable) kann der Traffic analysiert werden. Die Konfiguration der SPAN Funktion ist über folgenden Menüpunkt möglich:

       System > Network > Interfaces

Ueber die Kommandozeile wird die SPAN Funktion resp. das "Port Mirroring" folgendermassen konfiguriert:

       FortiOS 5.0 / 5.2 "Software Switch"
       # config system switch-interface
       # edit [Name des Software Switches]
       # set member [Gebe die entpsrechenden Interfaces an zB "port1"]
       # set span [Aktiviere oder Deaktiviere das Port Spanning anhand enable | disable]
       # set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
       # set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]]
       # set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]]
       # set type [Setze den Mode für den Software Switch dh. hub | switch | hardware-switch]
       # set vdom [Vergebe den VDom Name inder der Software Switch benutzt wird]
       # end
       
       NOTE FortiOS 5.0 unterstützt die SPAN Konfigurtion für einen "Hardware-Switch" nicht. Ab 
            FortiOS 5.2 wird dies unterstützt für die Devices mit einem integrierten Hardware Switch
            wie die FG-100D, FG-140D und FG-200/240D. Konfiguriert wird dies über folgendes Kommando:
       
       # config system virtual-switch
       # edit [Name des "virtual-switch"]
       # set span enable
       # set span-source-port [Definiere den Source Spanning Port sofern "set span" aktiviert ist]
       # set span-dest-port [Definiere den Destination Spanning Port sofern "set span" aktiviert ist]
       # set span-direction [Definiere die Spanning Richtung anhand "rx | tx | both" sofern "set span" aktiviert ist]
       # end
       # end
       
       NOTE Folgendes Dokument gibt Auskunft ob der Device über einen "Hardware-Switch" (Switch Controller) verfügt:
            
             FortiOS 5.2 Software Matrix

Nachdem die SPAN Funktion konfiguriert wurde kann wie schon erwähnt zB ein Sniffer Interface konfiguriert werden. Dies wird folgendermassen durchgeführt:

       # config system interface
       # edit [Name des Interfaces]
       # set ips-sniffer-mode enable
       # end

Weitere Informationen wie ein Sniffer konfiguriert wird zB für eine POC etc. siehe nachfolgendes Dokument:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_eine_Fortigate_mit_einem_Sniffer_Port_konfigurieren.3F

Was ist ein virtueller "Hardware Switch" und was ist der Unterschied zu einem Software Switch?

In früheren Versionen des FortiOS 4 MR3 kennt man den sogenannte "Software Switch" dh. man gruppiert bestimmte Interfaces zusammen zu einem "logischen" Software Switch. Innerhalb dieses Software Switches benützen alle Interfaces die (gleiche) IP die für den Software Switch selber gesetzt wurde sowie dessen Subnet. Innerhalb eines Software Switches wird der Traffic von Port zu Port ungehindert übermittelt dh. eine Implementierung einer Policy oder sonstigen UTM Features ist nicht möglich. Wie der Name selbst erklärt handelt es sich hier um einen "Software basierenden Switch" dh. der FortiGate CPU muss diesen Traffic -da Software Basierend- zwischen den Ports abarbeiten. Dies bedeutet Performance Verlust und Beeinträchtigung wenn viel Traffic zwischen den Ports verarbeitet wird. Wie so ein "Software Switch" konfiguriert ist siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_anhand_Interfaces_einen_Software-Switch_.28oder_auch_Hub.29_erstellen.3F

Für FortiOS 5.0 / 5.2 für die Modelle 100D, 600C, 1000C, and 1240B steht nun eine neue Funktion zur Verfügung dh. ein virtuellen "Hardware Switch". Wie beim "Software Switch" können vers. Ports in einem virtuellen "Hardware Switch" gruppiert werden. Der Traffic zwischen den verschiedenen Ports in einem virtuellen "Hardware Switch" wird durch den virtuellen "Hardware Switch" selber verarbeitet und dadurch entsteht keine Belastung/Beeinträchtigung des FortiGate CPU's im Gegensatz zu einem Software Switch. Dadurch erhöht sich die Performance durch den Einsatz eines virtuellen "Hardware Switch" anstelle eines "Software Switch". Weitere Informationen wie man einen virtuellen "Hardware Switch" konfiguriert siehe folgender Artikel:

       NOTE Ab FortiOS 5.2.2 steht die Funktion den Modellen 30D, 60 sowie 90D zur Verfügung!
       FortiGate-5.0-5.2:FAQ#Wie_konfiguriere_ich_einen_virtuellen_.22Hardware_Switch.22.3F

Wie konfiguriere ich einen virtuellen "Hardware Switch"?

Um einen "virtuellen Hardware Switch" zu konfigurieren benütze folgenden Befehl:

       NOTE Ab FortiOS 5.2.2 steht diese Funktion neu den Modellen 30D, 60 sowie 90D zur Verfügung!
       # config system virtual-switch
       # edit virt-sw-1
       # set physical-switch sw0
       # config port
       # edit 1
       # set port p1
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # next
       # edit 2
       # set port p2
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # next
       # edit 3
       # set port p3
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # next
       # edit 4
       # set port p4
       # set speed [1000full | 100full | 100half | 10full | 10half | auto]
       # set duplex [up | down]
       # end
       # end
       
       NOTE Ein "virtuellen Hardware Switch" wird nur durch bestimmte Modelle Unterstützt. Die Konfiguration
            eines "virtuellen Hardware Switche's" kann für die bestimmten unterstützen Modelle ebenfalls über WebGui
            durchgeführt werden unter folgender Position:
            
            System > Network > Interface > Create New > Interface > Type > Hardware Switch
            
            Weitere Informationen und Erklärungen finden man unter folgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Was_ist_ein_virtueller_.22Hardware_Switch.22_und_was_ist_der_Unterschied_zu_einem_Software_Switch.3F

Wie kann ich STP (Spanning Tree Protocoll) auf einer FortiGate konfigurieren?

Das Spanning Tree Protocol (STP, deutsch: Spannbaum-Protokoll http://de.wikipedia.org/wiki/Spanning_Tree_Protocol) ist ein vitaler Teil von Switch-Infrastrukturen. Netzwerke können mit einer Vielzahl von Switches als Koppelungselement aufgebaut werden. Allerdings muss die LAN-Technologie sicherstellen, dass zwischen zwei Rechnern jeweils nur ein Datenpfad existiert, um Pakete eindeutig weiterleiten zu können.

Die Vermeidung von Effekten wie Broadcast-Storms wird nur erreicht, wenn ein Algorithmus existiert, der die Schleifenfreiheit der Topologie sicherstellt. Dies bedeutet, dass ein Switch in einen Zustand versetzt wird, in dem er keine Pakete weiterleitet. Der Spanning-Tree Algorithmus sorgt nun dafür, dass es keine unerwünscht kreisenden Pakete gibt. Er identifiziert Mehrfachwege, indem er Topologien mit redundanten Wegen durch eine logische Blockierung bestimmter Pfade in eine Baumtopologie überführt, die keine Schleifen besitzen. Die inaktiven Switches werden in einen Standby-Modus geschaltet. Bei Ausfall der primären Verbindung können diese sofort aktiviert werden und erzeugen auf diese Weise ein hohes Maß an Fehlertoleranz. STP wird auf einer FortiGate "nur" auf dem "Internen Switch" untersützt und nur unter FortiOS 5.0 / 5.2. STP steht für "Software Switches" nicht zur Verfügung. FortiOS 5.0 / 5.2 untersützen "RSTP" (Rapid Spanning Tree 802.1D). Dies wird erreicht anhand einer einzelnen Instanz (instance 0) für MSTP (Multiple Spanning Tree Protocol 802.1Q). MSTP ist rückwärts Kompatible zu RSTP udn STP. primarily supports Rapid Spanning Tree (RSTP). This is achieved via a single instance (instance 0) of Multiple Spanning Tree Protocol (MSTP). Wenn auf dem "Internen Switch" auf einer FortiGate STP aktiviert werden soll kann folgender Befehl benutzt werden um STP zu definieren:

      # config system stp
      # set config-revision [Angabe eines Integer]
      # set forward-delay [In Sekunden "4 bis 30"]
      # set hello-time [In Sekunden "1 bis 10"]
      # set max-age [In Sekunden "6 bis 40"]
      # set max-hops [Angage max. Hop 1 bis 40]
      # set region-name [Angabe des Namen]
      # set status [enable | disable]
      # set switch-priority [Setze die Priorität 0, 4096, 8192, 12288, 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, 61440]
      # end

Wenn die FortiGate selber auf dem Internen Switch "kein" STP durchführt, kann auf den einzelnen Interfaces -um STP zu erlauben und Loop's zu verhindern- durch folgende Befehle STP zugelassen werden:

      # set stpforward [enable | disable]

Wenn STP konfiguriert wurde und nachträglich kontrolliert werden soll kann anhand nachfolgenden Befehls dies durchgeführt werden:

       # diagnose sys stp status
       
       STP Status Information        
       
         Switch Priority            32768
         Switch MAC Address         00090f4be8fe
         Root Priority              32768
         Root MAC Address           00090f4be8fe
         Root Pathcost              0
         This bridge IS the root
       
         Regional Root Priority     32768
         Regional Root MAC Address  00090f4be8fe
         Regional Root Path Cost    0
         Remaining Hops             20
         This bridge IS the regional root
       
         Port        Speed   Cost       Priority   Role         State       Edge
         __________  ______  _________  _________  ___________  __________  ____
         internal1   10M     2000000    0          DISABLED     DISCARDING  YES
         internal2   10M     2000000    0          DISABLED     DISCARDING  YES
         internal3   10M     2000000    0          DISABLED     DISCARDING  YES
         internal4   10M     2000000    0          DISABLED     DISCARDING  YES
         internal5   10M     2000000    0          DISABLED     DISCARDING  YES

Wieso kann ich auf einer FortiGate mit "Hardware Switch" (zB 60D/100D/140D/240D) den Internal Switch nicht in einzelne Ports aufbrechen?

Nun einige FortiGate Devices wie die 100D(Generation 3)140D/200D/240D kommen mit integrierten "Hardware Switches" dh. diese Geräte beinhalten einen "Switch Controller" und zwar Hardware basierend (nicht Software und/oder Virtuelle). Die Geräte kommen zB bei einer 240D mit bis zu 40 Ports. Wenn man die Geräte näher anschaut und man versucht die Ports des "Internal Switch's" über Kommandozeile anhand "set internal-switch-mode interface" aufzubrechen (übliche Vorgehensweise) scheitert man!? Der Grund ist, das dieser "Hardware Switche" nicht wie üblich aufgebrochen werden kann. Dies bestätigt auch ein kurzer Blick auf die Kommandozeile, denn die zuständige Option "internal-switch-mode" ist bereits auf "interface" gesetzt (auch zu sehen über "get system status")! Möchte man diese Ports des "Hardware Switch" aufbrechen kann dies über das Web Gui durchgeführt werden. Dies bedeutet man wählt "lan" und danach können die Ports einzeln aus dem "Internen Hardware Switch" entfernt werden:

       NOTE Bei einer FortiGate-60D Revision "P14482-03-02" die ca. ab 1. Januar 2015 ausgeliefert wurden, wurde
            ebenfalls ein Hardware Switch integriert. Die Vorgehensweise die Interface's aufzubrechen dh. Analog 100D
            ist dieselbe!
       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-5.0-5.2:FAQ#Wie_kann_ich_die_letzten_zwei_Ports_.28port1.2Fport2.29_auf_einer_60D.2F100D.28Generation_3.29140D.2F240D_als_einzelne_Ports_aufbrechen.3F

Wie kann ich die letzten zwei Ports (port1/port2) auf einer 60D/100D(Generation 3)140D/240D als einzelne Ports aufbrechen?

Auf einer FortiGate 100D (Generation 3) sowie einer 140D und 240D lassen sich die einzelnen Ports des "Internal Switche"'s nicht über das Kommando "internal-switch-mode" aufbrechen. Diese Geräte besitzen einen Hardware basierenden "Switch Controller". Aus diesem Grund muss der "Internal Switch" gemäss folgenden Artikel aufgebrochen werden:

       NOTE Bei einer FortiGate-60D Revision "P14482-03-02" die ca. ab 1. Januar 2015 ausgeliefert wurden, wurde
            ebenfalls ein Hardware Switch integriert. Die Vorgehensweise die Interface's aufzubrechen dh. Analog 100D
            ist dieselbe!
       FortiGate-5.0-5.2:FAQ#Wieso_kann_ich_auf_einer_FortiGate_mit_.22Hardware_Switch.22_.28zB_60D.2F100D.2F140D.2F240D.29_den_Internal_Switch_nicht_in_einzelne_Ports_aufbrechen.3F

Führt man dies durch bemerkt man, dass die letzten zwei Ports (zB bei einer 100D port1/2) obwohl keine Policy Referenz sowie DHCP Referenz auf diesen Ports vorhanden ist, diese nicht aufgebrochen werden können. Um die letzten zwei Ports aufzubrechen muss im Hintergrund der "Virtuelle Switch" gelöscht werden. Dies wird auf der Kommandozeile durchgeführt:

       # config system virtual-switch
       # get
       == [ lan ]
       name: lan    
       # del lan
       # get
       # end

Wurden auf dem "Virtuellen Switch" bereits Konfigurtionen durchgeführt zB DHCP Server und/oder Policy muss diese Referenz zuerst entfernt werden. Die Konfigurierten IP's auf diesen Ports bei der Auflösung des "Virtuellen Switches" gehen vollständig verloren. Für die Auflösung muss kein Neustart der Firewall durchgeführt werden!

Replacement Messages

Wo finde ich die "Replacement Messages" auf einer FortiGate?

Die "Replacement Messages" findet man auf einer FortiGate unter folgender Position:

      System > Config > Replacement Messages
      
      Fortinet-1389.jpg

Um die "erweiterte" Funktion der "Replacement Messages" zu aktivieren dh. Gruppen basierende "Replacement Messages Groups" muss auf der Kommandozeile folgendes aktviert werden:

       # config system global
       # set gui-replacement-message-groups enable
       # end

Danach findet man das entsprechende Menü unter folgender Position:

       System > Config > Replacement Messages Groups

Weitere Iformationene wie man "Replacement Messages Groups" verwendet siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Was_sind_.22Replacement_Message_Groups.22_und_wie_verwende_ich_diese.3F

Wie finde ich für die Replacement Messages heraus welche Variablen ich benutzen kann?

Wenn man mit "Replacement Messages" arbeitet sowie mit "Replacement Messages Groups" und man diese abändern möchte stellt sich die Frage "welche" Variablen (zB für eine Policy ID wir "%%POLICY%%" benutzt) man in der entsprechenden "Replacement Message" benutzen kann. Die "Replacement Messages" findet man unter folgender Position:

       System > Config > Replacement Messages
       
       Fortinet-1389.jpg
       
       NOTE Es wird unterschieden zwischen einer "Simple View" (Nur die Grundsätzclichsten Replacement Messages werden angzeigt)
            und einer "Extended View" (Alle Replacement Messages werden angezeigt). Möchte man die "Replacement Messages Groups"
            aktivieren so muss dies über die Kommandozeile durchgeführt werden dh.:
            
            # config system global
            # set gui-replacement-message-groups enable
            # end
            
            Danach findet man das entsprechende Menü unter folgender Position:
            
            System > Config > Replacement Messages Groups

Wenn man nun eine entsprechende "Replacement Message" anwählt in unserem Beispiel zB über die "Extended View" das "SSL-VPN Login" und man auf einer bestimmten Position eine "Variable" einfügen möchte so führt man folgendes durch:

       1. Wähle die entsprechende "Replacement Message" an resp. markiere diese.
       2. Im unteren Teil des Fenster wird rechts das "SSL-VPN Login" Fenster angezeigt und links der dazugehörige "HTML Source Code".
       3. Nun gehe im "HTML Source Code" auf die entsprechende Position in der eine entsprechende Variable eingefügt werden soll.
       3. Nun um herauszufinden "welche" Variablen eingeführt werdne könnne gebe ein "%%" danach öffnet sich ein zusatz Fenster indem
          alle "Variablen" mit einer Kurzbeschreibung aufgelistet sind. Wähle eine entsprechende Variable!
       
         Fortinet-1390.jpg

Um die entsprechende Konfiguration abzuspeichern muss auf der "rechten" Seite die Position "Save" ausgeführt werden.

Wie kann ich für Mgmt. Access einen eigenen Login-Banner konfigurieren?

Wenn man sich per SSH/HTTPS auf eine FortiGate einloggt so wird per Standard sei es "vor" dem Login oder "nach" dem Login keine Meldung angezeigt! Möchte man nun das ein sogenannter "Login-Banner" angzeigt wird kann dies über die "Replacement Messages" konfiguriert werden. Dabei muss unterschieden werden zwischen "pre-login-banner" und "post-login-banner". Dies bedeutet: wird nur "pre-login-banner" aktiviert so wird "vor" dem Login eine entsprechende Nachricht angzeigt. Setzte man "post-login-banner" so wird eine entsprechende Nachricht "nach" dem Login angezeigt. In unserem Beispiel aktivieren wir den "post-login-banner" und deaktivieren den "pre-login-banner" sowie aktivieren "login-timestamp". Dies bedeutet: Ein Login wird wie herkömmlich mit Username und Passwort durchgeführt ohne entsprechende Meldung "vor" dem Login. Nach erfolgten Login wird die Zeit des Letzten erfolgreichen/nicht erfolgreichen Login angzeigt sowie ein Nachricht die den User warnt, dass alles auf der FortiGate geloggt wird. Diese Meldung muss "Akzeptiert" werden und danch wird über HTTPS entweder die FortiGate angezeigt oder unter SSH den CLI Prompt. Führ die Konfiguration führe folgendes durch:

       # config system global
       # set pre-login-banner disable
       # set post-login-banner enable
       # set login-timestamp enable
       # end
       
       NOTE Die Option "login-timestamp" ist insofern Wichtig da diese den "timestamp" (Zeit des Login) anzeigt!

Wenn diese Optionen unter "config system global" gesetzt werden und man würde nachträglich ein Login auf HTTPS, SSH usw. durchführen wird der Standard Banner angezeigt:

       Fortinet-1408.jpg

Um nun diese Nachricht resp. Banner zu modifizieren etc. kann die entsprechenden "Replacement Message" konfiguriert werden. Dies kann über Kommandozeile sowie über Web Mgmt. durchgeführt werden. Ueber Web Mgmt. Access findet man die entsprechende Position unter folgenden Punkt:

       Fortinet-1409.jpg

Um zB den "post-login-banner" zu modifizieren gehe folgendermassen vor:

       Lösche den gesamten Inhalt der "Post-login Disclaimer Message
       
       Fortinet-1410.jpg
       Im Rechten Feld füge den entsprechenden Text hinzu 
       
       Fortinet-1411.jpg
       
       NOTE Um "Tags" hinzu zu fügen führe einen Rechts-Klick im Rechte Feld aus und wähle "Insert Tag".

Nun kann die entsprechende Konfiguration über zB SSH und/oder HTTPS getestet werden:

       #
       # WARNING:      You must have prior authorization to access this system.
       #               All connections are logged and monitored. By connecting
       #               to this system you fully consent to all monitoring.
       #               Unauthorized access or use will be prosecuted to the
       #               full extent of the law. You have been warned!
       #
       
       Last Failed Login: Wed Aug 12 18:50:19 2015
       Last Successful Login: Tue Sep  1 21:44:59 2015
        
       (Press 'a' to accept): a
       
       [Hostname oder Serial Nummer] # 

Um den "Post-login Disclaimer Message" über die Kommandozeile zu konfigurieren führe folgendes aus:

       # config system replacemsg admin "post_admin-disclaimer-text"
       #set buffer "#
       # WARNING:      You must have prior authorization to access this system.
       #               All connections are logged and monitored. By connecting
       #               to this system you fully consent to all monitoring.
       #               Unauthorized access or use will be prosecuted to the
       #               full extent of the law. You have been warned!
       #
       
       %%LAST_FAILED_LOGIN%%
       %%LAST_SUCCESSFUL_LOGIN%%"
       # end

Was sind "Replacement Message Groups" und wie verwende ich diese?

"Replacement Message's" stellen die verschiedenen Informationen/Nachrichten dar, die eine FortiGate in verschiedenen Situationen ausgiebt/anzeigt. Wenn zB eine Authentifizierung durchgeführt wird so wird dem User eine "Login Page" vom Device zur Verfügung gestellt um Username und Passwort eingeben zu können. Solche eine "Login Page" stellt eine "Replacement Message" dar in der Kategorie (Group Type) "Authentication. Diese Seiten können benutzerspezifisch Angepasst werden (HTML Code) über die "Replacement Message's":

       System > Config > Replacement Message
       
       NOTE Auf der Seite "Replacement Message" kann oben Rechts zwischen "Simple View" und/oder 
            "Extended View" umgeschaltet werden! Wenn "Extended View" angewählt wird stehen zusätzliche
            "Replacement Message's" zur Verfügung!

Wenn man eine Seite unter der vorhergehenden Position abändert, gelten diese Aenderungen "Global" dh. wenn man unter "Authentication" die "Log Page" ändert gilt diese Aenderung für jede "Login Page" für die Funktion "Authentication" auf der gesamten FortiGate! Dies ist nicht immer gewünscht dh. idealer wäre es die "Login Page" für einen bestimmten Zweck zu ändern, jedoch die "globale" Login Page unverändert zu lassen. Dies kann über die Funktion "Replacement Message Groups" bewerkstelligt werden dh. man erstellt eine Gruppe, definierte diese in der Funktion dh. zB "Authentication" und darin befinden sich nachträglich alle Seiten wie "Login Page". Diese können in dieser Gruppe abgeändert werden. Nach der Aenderung weisst man diese Gruppe der entsprechenden Funktion zB der Policy (zB FortiOS 5.0 Identity Based Policy) hinzu. So können für verschiedene Policy's und Funktionen verschiedenen Seiten zur Verfügung gestellt werden ohne die globalen Seiten abzuändern. Damit man eine "Replacement Message Group" erstellen kann muss zuerst diese Funktion aktiviert werden:

       System > Admin > Settings > Replacement Message Groups
       
       NOTE Ab FortiOS 5.0.3 / 5.2 steht dieser Menüpunkt noch unter "System > Admin > Settings" noch unter "System > Config > Features" 
            zur Verfügung und muss über Kommandozeile aktiviert werden. Der Befehl um den entsprechenden Menüpunkt einzublenden lautet:
            
            # config system global
            # set gui-replacement-message-groups enable
            # end
            
            Nach erneuten Einloggen auf dem WebGui sollte nun der entsprechende Menüpunkt erscheinen:
            
            System > Config > Replacement Message Groups

Wird unter den "Replacement Message Groups" eine neue Gruppe anhand "Create New" erfasst, werden die entsprechenden "Replacement Message's" Seiten in folgenden Kategoriern (Group Type) eingeteilt:

       UTM
       Authentication
       Endpoint Control
       Captive Portal

Nun kann innerhalb dieses Menüs eine neue "Replacement Message Groups" erstellt werden anhand von "Create New":

      Fortinet-752.jpg
      
      NOTE Vergebe einen Namen sowie den "Group Type" der die Funktion darstellt wie zB "Authentication"!

Nun kann man innerhalb dieser erstellten Gruppe anhand eines "WYSIWYG" (What You See Is What You Get) die Seiten abgeändert werden inkl. Logos etc. Sind die Modifikationen abgeschlossen muss nun die entsprechende "Replacement Message Group" der entsprechenden Funktion zB Policy zugewisen werden. Für eine "Identity Based Policy" wird das folgendermassen durchgeführt:

       NOTE Unter FortiOS 5.2 existieren keine "Identity Based Policy" mehr sondern sind in der "regulären"
            Firewall anhand von Gruppen/Usern sowie Devices integriert. Die Funktion unter FortiOS 5.2 ist 
            jedoch identisch.
       # config firewall policy
       # edit [Gebe die entsprechende Policy ID an]
       # set replacemsg-override-group [Gebe den Namen an der "Replacement Message Group"]
       # end
       
       NOTE Die Aenderung ist über Mgmt. WebInterface in der entsprechenden Policy nicht ersichtlich dh. unter der 
            Position "Customize Authentication Messages" wird zwar die korrekte und gesetzte "Replacement Message
            Group" gesetzt jedoch sieht man nicht den Namen der gesetzten Gruppe. Diese ist nur über CLI erruirbar
            oder über "System > Config > Replacement Message Group" dh. über die "Ref." (Referenzen) Position! Dies
            gilt für FortiOS 5.0 sowie FortiOS 5.2!

Reporting

Kann ich die Standard Reports und Grafiken (Datasets and Charts) aus den Logs der Fortigate modifizieren?

Wenn man davon ausgeht, dass man einen POC (Prof of Concept) durchführt und zu diesem Zweck die Firewall mit einem "Sniffer Port" an einen Mirror Port (Span Port) eines Switche' verbunden hat, möchte man nachträglich möglichst durch die Auswertung der Log's übersichtliche Reports erstellen. Ob ein Device "local" überhaupt Report's erstellen kann zeigt die "Software Matrix" für das jeweilige FortiOS:

       FortiGate-5.0-5.2:FAQ#Welche_Ger.C3.A4te.2FDevices_werden_vom_neuen_FortiOS_5_unterst.C3.BCtzt_und_welche_neuen_Features_umfasst_FortiOS_5.3F

Die Standard Reports die "local" auf den Devices zur Verfügung gestellt werden sind nicht sehr ausführlich und für einen POC nicht Zweckmässig. Um das zu ändern, kann man seine eigenen Reports erstellen. Das heisst, die Reports die auf einer Fortigate zur Verfügung gestellt werden (findet man unter "Log & Report) sind eigentlich nichts anderes als SQL Abfragen aus der Datenbank in der die Log Informationen gespeichert werden. Somit müssen für aussagekräftigere Reports einfach spezifische SQL Abfragen konfiguriert werden. Um dies zu konfigurieren führe folgendes über die Console durch:

       Datei:Fortinet Proof of Concept Partner LR.pdf
       
       NOTE Dieses POC Dokument ist zu benutzen mit V4.0 MR3 Patch 6 oder tiefer denn im Patch 7 oder höher wurden für die
            Geräte bis 100D der SQL Befehlsatz entfernt! Wenn mit FortiOS 5 gearbeitet wird ist zu empfehlen die Logs auf 
            den FortiAnalyzer 5.0.4 zu spielen da dort die Reporting Möglichkeiten vielseitig sind und diese Version 
            betreffend Report "SOC Compliant" ist!
       Key Applications Crossing the Network
       
       # config report dataset
       # edit "appctrl.Appl.List.all.info"
       # set query "select app, app_cat, service, sum(sent+rcvd) as bytes, count(src) as sessions from traffic_log where timestamp between ###start_time### and ###end_time### and (app is not null and !=\'N/A\') group by app_cat order by app_cat"
       # next
       # end
       # config report chart
       # edit "appctrl.Appl.List.all.info"
       # set type table
       # set period last24h
       # set comments "All Application List usage"
       # set dataset "appctrl.Appl.List.all.info"
       # set category traffic
       # next
       # end
       Applications Running Over HTTP
       
       # config report dataset
       # edit "traffic.Http.Appl.List"
       # set query "select app, sum(sent+rcvd) as bytes, count(src) as sessions from traffic_log where timestamp between ###start_time### and ###end_time### and (app is not null and app =\'N/A\' and service=\'HTTP\') group by app
       # order by app"
       # next
       # end
       # config report chart
       # edit "traffic.Http.Appl.List"
       # set type table
       # set period last24h
       # set comments "Application That use HTTP"
       # set dataset "traffic.Http.Appl.List"
       # set category traffic
       # next
       # end
       Top Web Sites Visited By Network Users
       
       # config report dataset
       # edit "wf.Top.Url.Categories"
       # set query "select cat_desc, count(*) as totalnum from webfilter_log where timestamp between ###start_time###and ###end_time### and (cat_desc is not null or cat_desc!=\'N/A\') group by cat_desc order by totalnum desc"
       # next
       # end
       # config report chart
       # edit "wf.Top.Url.Categories"
       # set type table
       # set period last24h
       # set comments "Top URL Category in Use"
       # set dataset "wf.Top.Url.Categories"
       # set category webfilter
       # next
       # end
       Top Threat Vectors Crossing the Network
       
       # config report dataset
       # edit "ips.Top.Threats"
       # set query "select severity, attack_name, msg, count(*) as totalnum from attack_log where timestamp between###start_time### and ###end_time### group by severity order by totalnum desc"
       # next
       # end
       # config report chart
       # edit "ips.Top.Threats"
       # set type table
       # set period last24h
       # set comments "Top Threats Traversing the Network"
       # set dataset "ips.Top.Threats"
       # set category attack
       # next
       # end

Um nun das Layout der Reports (Aussehen etc.) zu verbessern kann folgendes über die Console eingegeben werden (Kopiere den Inhalt des nachfolgenden Dokumentes in die Console):

       Datei:Layout cfg.rtf

Dashboard/Widgets

Kann ich die Widget's die auf dem Dashboard angezeigt werden manipulieren?

Unter dem folgenden Menüpunkt werden sogenannten Widget's angezeigt dh. Informationen in Kurzübersicht über das System und dessen Status:

       Dashbaord > Status

Die Widget's selber dh. die Informationen können - teilweise - manipuliert werden. Ebenfalls können die einzelnen Widgets ein- oder ausgeblendet werden. Die Positonen für die Manipulationen befindet sich unter:

       Datei:Fortinet-15.jpg

Ebenfalls kann über das "Dashboard" verschiedenste Konfigurationen wie Datum, Zeit, Registrierung konfiguriert werden. Möchte man zusätzlich zum Menüeintrag "Status" einen eigenen Eintrag erstellen wählt man:

       System > Dashboard > Status > Dashboard > [Im Menü wähle: Add Dashboard] > [Gebe einen entsprechenden Namen an]

Wie kann ich das Standard Dashboard mit seinen Widget's wiederherstellen?

Wenn man das Standard Dashboard "Status" auf einer Fortigate wiederherstellen möchte führe über Web Mgmt. Interface folgendes aus:

       System > Dashboard > Status > Dashboard > [Im Menü wähle: Reset Dashboards]

Wenn dies aus irgendwelchen Gründen nicht möglich ist kann dies auch über die Kommandozeile durchgeführt werden:

       FortiOS 5.0
       
       # config system admin
       # edit "admin"
       # config dashboard-tabs
       # edit 1
       # set name "Status"
       # next
       # edit 2
       # set name "Usage"
       # next
       # end
       
       # config dashboard
       # edit 1
       # set tab-id 1
       # set column 1
       # next
       
       # edit 2
       # set widget-type licinfo
       # set tab-id 1
       # set column 1
       # next
       
       # edit 3
       # set widget-type sysres
       # set tab-id 1
       # set column 1
       # next
       
       # edit 4
       # set widget-type jsconsole
       # set tab-id 1
       # set column 1
       # next
       
       # edit 5
       # set widget-type sysop
       # set tab-id 1
       # set column 2
       # next
       
       # edit 6
       # set widget-type alert
       # set tab-id 1
       # set column 2
       # next
       
       # edit 7
       # set widget-type sessions
       # set tab-id 1
       # set column 2
       # next
       
       # edit 8
       # set widget-type pol-usage
       # set tab-id 1
       # set column 2
       # next
       
       # edit 9
       # set widget-type per-ip-usage
       # set tab-id 2
       # set column 1
       # next
       
       # edit 10
       # set widget-type tr-history
       # set tab-id 2
       # set column 1
       # next
       
       # edit 11
       # set widget-type statistics
       # set tab-id 2
       # set column 2
       # next
       # end
       # next
       # end
       FortiOS 5.2
       
       # config system admin
       # edit "admin"
       # config dashboard-tabs
       # edit 1
       # set name "Status"
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 1
       # set tab-id 1
       # set column 1
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 2
       # set widget-type licinfo
       # set tab-id 1
       # set column 1
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 3
       # set widget-type jsconsole
       # set tab-id 1
       # set column 1
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 4
       # set widget-type sysres
       # set tab-id 1
       # set column 2
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 5
       # set widget-type gui-features
       # set tab-id 1
       # set column 2
       # end
       # end
       
       # config system admin
       # edit "admin"
       # config dashboard
       # edit 6
       # set widget-type alert
       # set tab-id 1
       # set column 2
       # set top-n 10
       # end
       # end

Ich kann über WebMgmt. das "Traffic-History" Widget nicht mehr einem Dashboad hinzufügen?

Bis FortiOS 4 MR3 Patch 12 sowie FortiOS 5.0.2 gab es im Web Mgmt. Interface innerhalb der zur Verfügung stehenden "Widget's" das Widget "Traffic-History". Diese existiert nicht mehr! Dieses Widget "Traffic History" zeigte für ein bestimmtes Interface den Traffic über eine History an. Dieses Widget kannn jedoch nach wie vor über die Kommandozeile konfiguriert werden. Führe folgendes aus:

       FortiOS 5.0 / 5.2
       # config system admin 
       # edit admin 
       # config dashboard 
       # edit 66 
       # set widget-type tr-history 
       # set tab-id 1 
       # set column 1 
       # set interface [Definition des Interfaces zB "wan1"]
       # next 
       # end 
       # next 
       # end

Nachträglich ist das "Traffic-History" Widget über das Standard Dashboard ersichtlich und kann ebenfalls über das Web Mgmt. Interface modifiziert werden!

FortiManager

Wo finde ich Informationen wie eine FortiGate in einen FortiManager eingebunden wird?

Grundsätzlich ist folgender Befehl zuständig, dass eine FortiGate in das Zentrale Mgmt. eines FortiManager's eingebunden wird:

       # config system central-management 
       # get
       mode                : normal 
       type                : fortimanager 
       schedule-config-restore: enable 
       schedule-script-restore: enable 
       allow-push-configuration: enable 
       allow-pushd-firmware: enable 
       allow-remote-firmware-upgrade: enable 
       allow-monitor       : enable 
       serial-number       : 
       fmg                 : 
       fmg-source-ip       : 0.0.0.0
       fmg-source-ip6      : ::
       vdom                : root 
       server-list:
       include-default-servers: enable 
       enc-algorithm       : default 
       
       NOTE Es empfiehlt sich über den nachfolgenden Link betreffend FortiManager zu informieren da es 
            verschiedenen Möglichkeiten gibt einen Device in den FortiManager einzubinden. Speziell die
            Option "set fmg [IPv4 oder FQDN des FortiManagers]" ist zu berücksichtigen resp. zu benutzen
            auch wenn die Device Einbindung "vom" FortiManager "zur" FortiGate durchgeführt wird! Weitere
            detailierte Informationen über den FortiManager findet man unter folgenden Link:
            
            FortiManager-5.0-5.2:FAQ

Wie werden die Logs eines FortiGate Device's zum FortiManager übermittelt (verschlüsselt/unverschlüsselt)?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiManager-5.0-5.2:FAQ#Wie_werden_die_Logs_eines_FortiGate_Device.27s_zum_FortiManager_.C3.BCbermittelt_.28verschl.C3.BCsselt.2Funverschl.C3.BCsselt.29.3F

FortiAnalyzer

Wo finde ich Informationen wie eine FortiGate in einen FortiAnalyzer eingebunden wird?

Für die Einbindung eines FortiGate Devices auf einen FortiAnalyzer ist folgender Befehl zuständig:

       # config log fortianalyzer setting
       # set status enable
       # get
       # status              : enable 
       # ips-archive         : enable 
       # server              : 0.0.0.0
       # enc-algorithm       : default 
       # localid             : 
       # conn-timeout        : 10
       # monitor-keepalive-period: 5
       # monitor-failure-retry-period: 5
       # source-ip           : 0.0.0.0
       # upload-option       : realtime 
       # reliable            : disable 
       
       NOTE Für die Einbindung muss minimal mit der Option "set server" die IPv4 Adresse des FortiAnalyzer
            konfiguriert werden. Danach werden die Log's des Device's über Port TCP 514 verschlüsselt anhand
            SSL übermittelt. Es ist zu empfehlen sich über nachfolgender Artikel betreffend FortiAnalyzer zu
            informieren:
            
            FortiAnalyzer-5.0-5.2:FAQ
            
            Desweiteren ist zu berücksichtigen, dass die Log Qualität sprich "was" übermittelt wird seitens dem
            FortiGate Device zu konfigurieren ist. Weitere Informationen betreffend der Konfiguration der Logs
            eines FortiGate Device's siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_sieht.2Ff.C3.BChre_ich_eine_vollst.C3.A4ndige_Log_Konfiguration_auf_einer_FortiGate_aus.3F

Wie werden die Logs eines FortiGate Device's zum FortiAnalyzer übermittelt (verschlüsselt/unverschlüsselt)?

Weitere Informationen zu diesem Thema siehe nachfolgender Artikel:

       FortiAnalyzer-5.0-5.2:FAQ#Wie_werden_die_Logs_eines_FortiGate_Device.27s_zum_FortiAnalyzer_.C3.BCbermittelt_.28verschl.C3.BCsselt.2Funverschl.C3.BCsselt.29.3F

IPv6

Wie sieht die Unterstützung für IPv6 aus im Zusammenhang mit Fortigate?

Folgende Dokumente giben Auskunft über die IPv6 Unterstützung im Zusammenhang mit Fortigate:

       Datei:Inside IPv6 1.0.pdf
       
       Datei:IPV6 BrochureV3 LR.pdf

Kann ich für IPv6 ein Source NAT konfigurieren?

Ein Source NAT für IPv6 kann ab FortiOS 5 GA Release eingerichtet werden. Dies muss über die Console konfiguriert werden:

       # config firewall ippool6
       # edit [ipool6 Name]
       # set name [Name des ipool6]
       # set endip [IPv6 Adresse]
       # set startip [IPv6 Adresse]
       # next
       # end

Um dies in der entsprechende Policy zu konfigurieren dh. dort wo das Source NAT benötigt wird führe folgendes aus:

       # config firewall policy6
       # edit [ID der entsprechenden Policy]
       # set nat [setze "enable oder disable"]
       # set ippool [setze "enable oder disable"]
       # set poolname [Name des ipool6]
       # next
       # end

Kann ich für IPv6 ein Destination NAT konfigurieren?

Für ein Destination NAT für IPv6 muss zuerst ein VIP-IPv6 erstellt werden das nachträglich in die entsprechende Policy eingefügt wird. Dies wird über die CLI folgendermassen konfiguriert:

       # config firewall vip6
       # edit [Name des vip6 Objekt]
       # set name [Name des vip6 Objekt]
       # set id [Optional Integere ID]
       # set comment [Setze eine event. Beschreibung]
       # set type [Setze "static-nat]
       # set src-filter [Gebe die IPv6 Adresse oder Range an]
       # set extip [Gebe die IPv6 Adresse oder den IPv6 start sowie end Range an]
       # set mappedip [Gebe die IPv6 Adresse oder den IPv6 start sowie end Range an]
       # set arp-reply [Gebe an ob auf ARP geantwortet werden soll "enable oder disable"]
       # set color [Gebe eine event. Farbe an die im Gui angezeigt werden soll "0-255"]
       # next
       # end

Wenn die VIP IPv6 in eine Gruppe eingefügt werden soll erstelle diese und füge die VIP IPv6 hinzu:

       # config firewall vipgrp6
       # edit [Name des vip6 Gruppen Objekt]
       # set name [Name des vip6 Gruppen Objekt]
       # set member [Name des vip6 Objekt]
       # next
       # end

Danach kann das entsprechende Objekt in die Policy eingefügt werden:

       # config firewall policy6
       # edit [ID der entsprechenden Policy]
       # set dstaddr [Name des vip6 Objekt sei es das Objekt oder die Gruppe]
       # next
       # end

Modem

Welche 3G USB Modem's (Compatibility) kann ich für eine FortiGate benutzen?

Ein FortiGate Device kann mit einem 3G USB Modem ausgerüstet werden dh. als Failover, Dial-In oder als alleiniger Internet Access resp. als Failover Device. Fortinet Selber bietet für Ihre Devices keine solchen 3G USB Modems an dh. es muss auf Fremdprodukte zurückgegriffen werden. Dabei besteht die Schwierigkeit -bei Provider- Produkte wie zB Swisscom den effektiv verwendeten Chip zu verfizieren und auch dieser wird bei grossen Providern immer wieder gewechselt. Betreffend Kompatibilitätsliste bietet die FortiGate ein Anhaltspunkt über die zu konfigurierenden 3G USB Modem Geräte auf der FortiGate selber. Auf der FortiGate ist jedoch der Menüpunkt für die 3G USB Modem's per Standard nicht ersichtlich. Um diesen Menüpunkt einzuschalten führe folgendes aus:

       NOTE Wenn die FortiGate auf der die Funktion aktiviert wurde über einen FortiGuard Service verfügt kann
            über den "Update Now" Menüpunkt unter "Configure Modem" die Liste der Unterstützten Geräte über FortiGuard
            auf den neusten Stand gebracht werden:
            
            Datei:Fgt-modem-matrix.pdf
            
            Möchte man ein Update der Liste über Kommandozeile erzwingen führe folgendes aus:
            
            # execute update-modem
            Updating Modem List. Done.
       # config sys modem
       # set status enable
       # end

Nun kann man über folgenden Menüpunkt die Liste der 3G USB Modem Geräte einsehen:

       System > Network > Modem > Configure Modem
       
       NOTE Egal für was man sich entscheidet dh. für ein unterstütztes und aufgelistet Gerät eines Hersteller und/oder
            eines verfizierten Gerätes des Providers mit dem entsprechenden Chip, es sollte auf jedenfalls ausgiebig 
            getestet werden um die Funktion einwandfrei zu verfizieren!

Unter diesem Menüpunkt werden folgende Geräte aufgelistet:

       Supported (v1.014) FortiOS 5.0 Base
       
       Vendor           Model
       
       AirPrime	5220
       Alcatel	        HSPA Data Card
       Audiovox         PC5740
       Cmotech	        CNU680
       Dell	        5500
       Emobile	        D11LC
       Emobile	        ST Mobile
       Huawei	        E126
       Huawei	        E169
       Huawei	        E1692
       Huawei	        E173
       Huawei	        E180/E220/E3735
       Huawei	        E220/E3735
       Huawei	        E392/E397/E398
       Huawei	        E398
       Huawei	        E600/E169
       Huawei	        K3715
       Huawei	        K3765
       Huawei	        K3770
       Huawei	        K3806
       Huawei	        K4505
       Huawei	        K4511
       Kyocera	        KPC650/Passport
       LG	        L-02C
       LG	        L-03D
       Maxon	        USB3-8521
       MobiData         MBD-200HU
       Novatel	        ExpressCard34 Qualcomm 3G CDMA
       Novatel	        MC990D
       Novatel	        Merlin EX720
       Novatel	        Merlin S620
       Novatel	        Merlin S720
       Novatel	        Merlin X950D
       Novatel	        Merlin XU870
       Novatel	        Ovation MC950D
       Novatel	        Ovation MC998D
       Novatel	        Ovation U720
       Novatel	        Ovation U727
       Novatel	        U760
       Novatel	        U998
       Option	        GI1505
       Option	        GI332
       Option	        N.V. Globetrotter Fusion Quad Lite
       Option	        N.V. Globetrotter HSDPA Modem
       Option	        iCON 225 HSDPA
       Pantech	        PX-500
       Pantech	        UM190
       Quanta	        MU-Q101
       Sierra	        250U
       Sierra	        597
       Sierra	        598U
       Sierra	        AC312U/AC503/USB306/USB308
       Sierra	        AC313U
       Sierra	        AC501/880E
       Sierra	        AirCard 580
       Sierra	        AirCard 595
       Sierra	        AirCard 595U
       Sierra	        AirCard 875
       Sierra	        C885
       Sierra	        EM5625
       Sierra	        MC5720
       Sierra	        UC881
       Sprint	        U300
       ZTE	        AC2736
       ZTE	        MF190
       ZTE	        MF637
       ZTE	        MF668
       ZTE	        MF683
       ZTE	        MF691
       ZTE	        MF821
       ZTE	        MY39
       Supported (v1.031) FortiOS 5.2 Base'
       
       Vendor           Model
       
       AirPrime        5220
       Alcatel         HSPA Data Card
       Alcatel         x230M
       AnyDATA         ADY510L
       Audiovox        PC5740
       Cmotech         CNU680
       D-Link          DWM-156
       Dell            5500
       Emobile         D11LC
       Emobile         ST Mobile
       Franklin        S600C
       Huawei          E126
       Huawei          E169
       Huawei          E1692
       Huawei          E173
       Huawei          E180/E220/E3735
       Huawei          E220/E3735
       Huawei          E353
       Huawei          E372
       Huawei          E392
       Huawei          E392/E397/E398
       Huawei          E398
       Huawei          E600/E169
       Huawei          K3715
       Huawei          K3765
       Huawei          K3770
       Huawei          K3773
       Huawei          K3773/E3131
       Huawei          K3806
       Huawei          K4201
       Huawei          K4505
       Huawei          K4511
       Kyocera         KPC650/Passport
       LG              L-02C
       LG              L-03D
       Maxon           USB3-8521
       MobiData        MBD-200HU
       Novatel         ExpressCard34 Qualcomm 3G CDMA
       Novatel         MC679
       Novatel         MC990D
       Novatel         Merlin EX720
       Novatel         Merlin S620
       Novatel         Merlin S720
       Novatel         Merlin X950D
       Novatel         Merlin XU870
       Novatel         Ovation MC950D
       Novatel         Ovation MC998D
       Novatel         Ovation U720
       Novatel         Ovation U727
       Novatel         U760
       Novatel         U998
       Option          GI1505
       Option          GI332
       Option          N.V. Globetrotter Fusion Quad Lite
       Option          N.V. Globetrotter HSDPA Modem
       Option          iCON 225 HSDPA
       Pantech         PX-500
       Pantech         UM190
       Pantech         UML290
       Quanta          MU-Q101
       Sierra          250U
       Sierra          597
       Sierra          598U
       Sierra          AC312U/AC503/USB306/USB308
       Sierra          AC313U
       Sierra          AC320U
       Sierra          AC330U
       Sierra          AC340U
       Sierra          AC501/880E
       Sierra          AirCard 580
       Sierra          AirCard 595
       Sierra          AirCard 595U
       Sierra          AirCard 875
       Sierra          C885
       Sierra          EM5625
       Sierra          MC5720
       Sierra          MC5728
       Sierra          UC881
       Sprint          U300
       ZTE             AC2736
       ZTE             MF190
       ZTE             MF190U
       ZTE             MF637
       ZTE             MF668
       ZTE             MF680
       ZTE             MF683
       ZTE             MF691
       ZTE             MF821
       ZTE             MY39

Es besteht ebenfalls die Möglichkeit unter "Configure Modem" selber ein "3G USB Modem" zu konfigurieren. Dazu benötigt man folgende Informationen:

       Vendor
       Model
       Vendor ID (Hex)
       Product ID (Hex)
       Init String

Um ein USB Modem (Custom) zu konfigurieren benötigt das FortiOS die entsprechende USB ID. Um diese Werte erhauszufinden kann folgendes Kommando abgesetzt werden:

       # fnsysctl cat /proc/bus/usb/devices
       
       NOTE Weiter Informationen zum Kommando "fnsysctl" siehe nachfolgenden Artikel:
            
            FortiGate:fnsysctl

Nach diesem Befehl wird eine Liste ausgegeben mit allen USB Devices verbunden mit dem Device zB:

       T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
       B:  Alloc=  0/800 us ( 0%), #Int=  1, #Iso=  0
       D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS= 8 #Cfgs=  1
       P:  Vendor=0000 ProdID=0000 Rev= 2.04
       S:  Manufacturer=Linux 2.4.37 ehci_hcd
       S:  Product=Fortinet USB EHCI host controller 1
       S:  SerialNumber=AHB BUS
       C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
       I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
       E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=256ms

Das vorhegende Beispiel zeigt die Informtionen des "USB EHCI Host Controller" und nicht eines USB Modems. Wenn ein USB Modem verbunden ist so werden folgende Werte angezeigt die für die Konfiguration eines USB Modems (Custome) wichtig sind:

       P:  Vendor=0f3d ProdID=68aa Rev= 0.06
       S:  Manufacturer=Sierra Wireless, Incorporated
       S:  Product=AirCard 320U

Diese Informationen werden nun herangezogen um ein USB Modem (Custome) über nachfolgenden Befehl zu konfiguriert:

       # config system 3g-modem custom
       # edit 1
       # set vendor "Sierrawireless"
       # set model "320U"
       # set vendor-id 0f3d
       # set product-id 68aa
       # next
       # end

Das was nun fehlt ist der korrekte "Init String" String. Diese Information kann durch den Hersteller zur Verügung gestellt werden. Ein 3G USB Modem, angeschlossen an eine FortiGate, ist "nicht" Hot-Swap dh. das 3G USB Modem muss beim Start der FortiGate angeschlossen sein um dieses durch die FortiGate einwandfrei zu erkennen. Auch nach einer einwandfreier Erkennung darf dieses nicht aus- und wieder eingesteckt werden dh. das Funktioneren eines 3G USB Modems unter einer FortiGate wird nur gewährleistet, wenn das 3G USB Modem beim Start einer FortiGate am Device angeschlossen ist. Ueber die Kommandozeile können etliche Optione zusätzlich konfiguriert werden:

       # config system modem
       # set account-relation [equal | fallback]
       # set altmode [enable | disable]
       # set authtype1 [pap chap mschap mschapv2]
       # set authtype2 [pap chap mschap mschapv2]
       # set authtype3 [pap chap mschap mschapv2]
       # set auto-dial [enable | disable]
       # set connect_timeout [Definiere das Timeout in Sekunden 30 - 255; Standard 90]
       # set dial-on-demand [enable | disable]
       # set distance [Definiere die Routing "distance"; Standard 10]
       # set extra-init1, extra-init2, extra-init3 [Init String des Modem]
       # set holddown-timer [Nur zu benutzen für Fallback 1 - 60 Sekunden; Standard 60]
       # set idle-timer [Nur bei "mode standalone"; Setzt Idel; Standard 5 Minuten]
       # set interface [Gebe ein Interface Name an der das Modem representiert]
       # set lockdown-lac [Erlaubt nur LAC "local area code"; Standard null]
       # set mode [redudant | standalone]
       # set modem-dev1, modem-dev2, modem-dev3 [internal | pcmciawireless]
       # set network-init [Setzt den "Network Operation" AT command zB "AT+COPS=<mode>,[<format>,<oper>[,<AcT>]]"; Standard 0 = Auto / 1 = Manuell]
       # set passwd1, passwd2, passwd3 [Passwort]
       # set peer_modem1 [actiontec | ascendTNT | generic]
       # set peer_modem2 [actiontec | ascendTNT | generic]
       # set peer_modem3 [actiontec | ascendTNT | generic]
       # set phone1 [Telefon Nummer dial-up Konto]
       # set phone2 [Telefon Nummer dial-up Konto]]
       # set phone3 [Telefon Nummer dial-up Konto]]
       # set pin-init [Setze AT Kommando für PIN]
       # set ppp-echo-request1 [disable | enable]
       # set ppp-echo-request2 [disable | enable]
       # set ppp-echo-request3 [enable | disable]
       # set priority <integer> [enable | disable]
       # set redial [Maximaler Wählvorgang 1-10; Standard null]
       # set status [enable | disable]
       # set username1 [Username dial-up Konto]
       # set username2 [Username dial-up Konto]
       # set username3 [Username dial-up Konto]
       # set wireless-port [TTY Port für 3G Modems; Standard 0 = Default]
       # end

Mit folgenden Kommandos kann nachträglich die korrekte Einbindung getestet werden:

       # diagnose sys modem detect
       modem is attached.
       dialtone is detected.
       # diagnose sys modem external-modem
       External modem vendor: Huawei
       External modem model : E1692
       # diagnose sys modem history
       # diagnose debug application modemd -1
       # diagnose debug enable

Gibt es zum 3G USB Modem Alternativen die ich auf einer FortiGate benutzen kann?

Wenn ein 3G USB Modem auf einer FortiGate benutzt werden soll ist das Erste das man überprüfen muss die Kompatibilität dh. welches 3G USB Modem ist kompatibel und "sollte" funktionieren. Dazu siehe nachfolgenden Artikel:

       FortiGate-5.0-5.2:FAQ#Welche_3G_USB_Modem.27s_.28Compatibility.29_kann_ich_f.C3.BCr_eine_FortiGate_benutzen.3F

Auch wenn ein 3G USB Modem auf der Kompatibilitätsliste erscheint resp. gelistet ist, hat man noch keine Gewährleistung das dieses mit einer FortiGate einwandfrei funktioniert. Der Grund ist, dass die 3G USB Modem Provider dh. der ISP oft die Firmware modifiziert und so die Kompatibilität -obwohl das 3G USB Modem aufgelistet ist in der Kompatibilitätslist der FortiGate- nicht mehr gewährleistet ist. Dieser Umstand ist im folgenden Artikel beschrieben:

       FortiGate-5.0-5.2:FAQ#Orginal_Modem_der_Swisscom_.22Huawei_E3276.22_funktioniert_nicht_auf_einer_FortiGate.3F

Eine Alternative bietet der Hersteller "Bintec" dh.:

       Fortinet-1406.jpg
       
       NOTE Der Device kann bei "Altron" bezogen werden! Der hier abgebildete Preis stellt den 
            Endkunden Richtpreis dar!

Dieser Hersteller bietet einen Device bei dem eine SimCard direkt eingesetzt werden kann und anhand eines VLAN's dieser Device über Ethernet (PoE) eingebunden wird:

       Fortinet-1407.jpg

Nachfolgendes Dokument wurde durch den Kunden der diese Lösung getestet hat und produktiv im Einsatz hat zur Verfügung gestellt:

       Datei:Bintec-4G-LE-How-To.pdf

Kann ich eine Dual ISP Implementierung anhand eines Modem konfigurieren?

Grundsätzlich ist dies möglich und ist durchzuführen wie unter folgenden Artikel erklärt:

       FortiGate-5.0-5.2:FAQ#Wie_implementiere_ich_eine_Dual_ISP_Verbindung.3F

Dies was zu berücksichtigen ist wäre der Umstand, dass wenn ein "dynamisches Interface" benutzt wird, wie bei einem Modem, die Routing Table obwohl ECMP aktiviert ist nicht auf den neusten Stand gebracht wird (Default Gateway). In so einem Fall muss der FortiGate mitgeteilt werden, dass für dieses "dynamische Interface" ein "dynamischer Gateway" gilt und somit die nötige Route/Gateway in die Routing Tabelle automatisch eingetragen wird. Dies wird der FortiGate mit folgendem Kommando mitgeteilt:

       # config router static 
       # edit [Wähle den entsprechenden Eintrag/Sequenz] 
       # dynamic-gateway enable 
       # next 
       # end 
       
       NOTE Damit diese Konfiguration durchgeführt werden kann muss das entsprechende "dynamische Interface" aktiv sein!

Orginal Modem der Swisscom "Huawei E3276" funktioniert nicht auf einer FortiGate?

Wenn über eine FortiGate ein Modem betrieben werden möchte und es sich um ein "Huawei E3276" Device handelt (Kategorie 4G LTE Speed) so wird dieser Device nicht korrekt erkannt aus folgenden Gründen: Der Device -sofern dieser von der Swisscom stammt- ist mit einer speziellen Firmware (Swisscom) versehen und benutzt nicht die orginal Software des Herstellers Huawei. Durch die spezielle Firmware wird der Device -obwohl dieser in der FortiGate in der Liste der unterstützten Modem's erscheint- als "USB Card Reader" resp. Storage Device erkannt. Dies ist zurück zu führen auf die -durch die Swisscom- verwendete spezielle Firmware! Wenn der Device an einem USB Anschluss der FortiGate eingesteckt wird und man anhand des Diagnose Kommandos den Device überprüft wird folgendes aufgelistet:

       # diagnose sys lte-modem info
       LTE Modem configuration enabled!
       LTE Modem device not initialized!
       Manufacturer:
       Model:
       IMEI:
       USB Modem Interface:    down
       Network Cfg:            CDMA-1x
       APN:                    gprs.swisscom.ch
       Authen Type:            none
       Extra Init String:      at+cgdcont=1,"ip","gprs.swisscom.ch"
       Interface mode:         standalone
       Holddown Time:          30
       

Wenn man sich den Device ordentlich anschaut zB unter Windows so ergiebt sich folgender orginal Informationen:

       Found modem         : E3276
       Model               : Huawei E3276
       IMEI                : 893784015254081
       Serial NR.          : A2FTW14724001765
       Firmware            : 21.263.30.02.103   (Original Swisscom)
       Compile date / time : May 15 2013 18:22:38
       Hardware ver.       : CH1E3276SM
       Dashboard version   : UDM_Win12.1.0_24162_Mac4.3_130503.123104
       SIM Lock status     : unlocked
       Wrong codes entered : 0 (unlock attempts left : 10)
       
       NOTE Wenn das Modem an einer FortiGate verbunden ist können die Informationen auch über folgendes Kommando eingesehen 
            werden:
            
            # fnsysctl cat /proc/bus/usb/devices

Um das 4G Modem unter FortiGate zu betreiben muss die Firmware des Herstellers geladen werden. Dazu benötigt man folgende Komponenten:

       NOTE Die folgenden Anweisungen erfolgen auf eigene Gefahr. Die hier aufgelisteten Informationen sind keine offiziellen
            Hersteller Informationen resp. Vorgehensweisen. Anwendung auf eigenen Verantwortung!
       1. IMEI Nummer
       2. Modell Nummer
       3. Firmware von Huawei sowie Tool zum Laden der Firmware

Die IMEI Nummer ergiebt sich aus der orginal Informationen in unserem Beispiel "893784015254081". Das Modell kann ebenfalls aus den orginal Informationen ausgelesen werden. In unserem Beispiel also "E3276". Nun muss anhand dieser Informationen ein "Unlock Code" generiert werden ansonsten kann die gewünschte Firmware anhand des Tools nicht geladen werden da dies nicht einem offiziellen Weg entspricht. Um den "Unlock" Code zu generieren kann folgende Seite benutzt werden:

       http://www.modemunlock.com/huawei-algo-check/
       http://tools.texby.com/unlock-codes/huawei/
       
       NOTE Die Abkürzung IMEI steht für "International Mobile Equipment Identity" und identifiziert jeden Mobile Device
            in einem Mobile Netz. Der 14-Digit lange String enhält Informationen über Model, Serial Nummer des Devices
            und ist somit "einmalig" und kann herangezogen werden um den Device im Mobile Netz zu identifizieren! 

Danach kann die Firmeware sowie das Tool zum laden der Firmeware über folgenden Link runtergeladen werden:

       Datei:E3276Win8.zip

Nachdem das Tool resp. die Firmeware anhand des "Unlock" Codes geladen wurde kann wiederum die Status Informationen überprüft werden zB über Windows:

       Found modem         : E3276
       Model               : Huawei E3276
       IMEI                : 893784015254081
       Serial NR.          : A2FTW14724001765
       Firmware            : 21.260.05.00.609
       Compile date / time : Jan 10 2013 15:51:10
       Hardware ver.       : CH1E3276SM
       Dashboard version   : UDM_Win12.1.0_24162_Mac4.3_130503.123104
       SIM Lock status     : unlocked
       Wrong codes entered : 0 (unlock attempts left : 10)

Um das Modem korrekt zu konfigurieren muss dem Modem einen init String mitgegeben werden. Dieser wird für dieses Modem folgendermassen konfiguriert:

       # config system modem
       # set status enable
       # set auto-dial enable
       # set phone1 "*99***1#"
       # set extra-init1 "AT+CGDCONT=1,\"IP\",\"gprs.swisscom.ch\""
       # end

Nun kann das 4G Modem über die FortiGate getestet werden dh. anhand des Kommandos:

       # diagnose sys lte-modem info
       # diagnose sys modem external-modem

SMS

Wie konfiguriere ich meinen eigenen SMS Provider/Server?

Wenn auf einer FortiGate eine Two-Factor Authentication eingerichtet werden möchte und dies über SMS durchgeführt wird so muss für die Versendung der SMS ein EMail SMS Provider konfiguriert werden. Eine Versendung von SMS über HTTP GET und/oder POST ist über einen FortiGate Device nicht möglich. Folgender Befehl wird benutzt für die Definition eines SMS Servers/Providers:

       FortiOS 4.3 (ab Patch 9)
       # config user sms-provider
       # edit [Name des Providers/Servers]
       # set mail-server [FQDN des Mail Server]
       # next
       # end
       FortiOS 5.0 / 5.2
       # config system sms-server
       # edit [Name des Providers/Servers]
       # set mail-server [FQDN des Mail Server]
       # next
       # end
       NOTE Bei der Definierung eines SMS Servers/Providers handelt es sich um einen "Mail Server"
            der die per E-Mail übermittelten Nachrichten entgegen nimmt und diese anhand der im
            E-Mail enthaltenen Informationen per SMS an die Zielperson versendet!

Unter FortiOS 5.0 steht die Funktion einer Definierung des SMS Providers/Servers über das Gui zur Verfügung:

       System > Config > Messaging Servers
       
       NOTE Unter FortiOS 5.2 exisitert der Menüpunkt "Messaging Servers" nicht mehr und wurde in folgenden
            Menüpunkt verschoben:
            
            System > Config > Advanced

Wenn das Versenden der SMS über "HTTP GET und/oder POST" gewünscht kann dies über den FortiAuthenticator konfiguriert werden. Dieser agiert dann in der Authentifizierung als Radius Server mit Two-Factor Authentifizierung. Weitee Informationen betreffend "HTTP GET und/oder POST" Konfiguration auf einem FortiAuthenticator siehe nachfolgenden Artikel:

       FortiAuthenticator:FAQ#Wie_kann_ich_auf_einem_FortiAuthenticator_ein_SMS_Gateway_Konfigurieren_f.C3.BCr_die_Versendung_von_SMS_Nachrichten.3F

Sniffer

Wie benutze ich das Sniffer Kommando "diagnose sniffer packet"?

Wie das Kommando "diagnose sniffer packet" benutzt wird siehe nachfolgender Artikel. Dieser Artikel enthält Informationen wie das Kommando aufgebaut ist und enthält Anwendungsbeispiele:

       FortiGate:Diagnose-Sniffer-Guide

Packet Capture

Wie kann ich auf einer FortiGate einen "Packet Capture" durchführen?

Die "Packet Capture" Funktion bietet die Möglichkeit über ein FortiGate ein .pcap File zu erstellen das später zB über Wireshark analisiert werden kann. Die Menüposition findet man unter FortiOS 5.0 sowie 5.2 unter folgendem Punkt:

       System > Network > Packet Capture
       Fortinet-1592.jpg
        NOTE Unter FortiOS 5.2 wird bei kleineren Devices das Logging auf die Disk deaktiviert resp. verunmöglicht. Die Kommandos betreffend 
             "config log disk setting" stehen nicht mehr zur Verfügung. Weitere Informationen siehe:
            
             FortiOS 5.2 Software Matrix
             
            Somit wird eigentlich das "Packet Capture" verunmöglicht da diese Funktion auf die Disk angewiesen ist und somit steht diese Funktion
            kleineren Devices gemäss "Software matrix" nicht mehr zur Verfügung. Auch der Meüpunkt für "Packet Capture" existiert unter FortiOS 5.2
            nicht mehr unter folgenden Punkt:
            
            System > Network > Packet Capture
            
            Dieser Menüpunkt kann jedoch direkt angegangen werden über folgenden "inoffiziellen" Link:
            
            https://[Management IP FortiGate]/p/firewall/sniffer/
            
            Die Voraussetzung jedoch dafür ist eine "formatierte" zur Verfügung stehende Disk obwohl diese bei kleineren Devices für das Log
            nicht mehr zur Verfügung steht. Aus diesem Grund und aus anderen Gründen sollte - obwohl diese eigentlich nicht verwendet werden 
            kann - bei kleineren Devices die Disk dennoch Formatiert werden:
            
            # execute formatlogdisk
            Log disk is /dev/sdb4
            Formatting this storage will erase all data on it, including
              Logs, quarantine files;
              WanOpt caches;
            and requires the unit to reboot.
            Do you want to continue (y/n) y

Die "Packet Capture" Size liegt bei den FortiGate Devices auf 10 MB. Wie diese Size vergrössert wird siehe nachfolgender Artikel:

       FortiGate-5.0-5.2:FAQ#Wie_kann_ich_die_Gr.C3.B6sse_f.C3.BCr_.22Packet_Capture.22_anpassen.3F
       
       NOTE Der Artikel beschreibt wie die "Package Capture" Size für Devices mit Disk Logging möglichkeit angepasst wird.
            Für Devices wie zB 60D die keine Disk Logging Möglichkeit besitzen kann diese Grösse nicht angepasst werden da
            der zuständige Befehl nicht zur Verfügung steht!

Die Konfigurationspunkte die über den angegebenen Link zur Verfügung stehen, können ebenfalls auf der Kommandozeile konfiguriert werden:

       # config firewall sniffer 
       # get
       # edit 1
       # new entry '1' added
       # get
       id                  : 1
       status              : enable 
       logtraffic          : utm 
       ipv6                : disable 
       non-ip              : disable 
       interface           : 
       host                : 
       port                : 
       protocol            : 
       vlan                : 
       application-list-status: disable 
       ips-sensor-status   : disable 
       av-profile-status   : disable 
       webfilter-profile-status: disable 
       spamfilter-profile-status: disable 
       dlp-sensor-status   : disable 
       ips-dos-status      : disable 
       max-packet-count    : 4000

Wie kann ich die Grösse für "Packet Capture" anpassen?

Wenn ein "Packet Capture" ausgeführt wird (Wireshark Format) unter FortiOS 5.0 sowie FortiOS 5.2 gilt ein Standard Grösse des "Capture" Files von 10 MB. Dies bedeutet sind die 10 MB aufgebraucht durch einen laufenden "Packet Capture", werden die alten Informationen durch die neuen überschrieben. Möchte man unter FortiOS 5.0 sowie 5.2 die Grösse anpassen muss folgender Befehl ausgeführt werden auf Kommandozeile:

       # config log disk setting
       # set max-policy-packet-capture-size 10
       # end
       
       NOTE Dieser Befehl steht unter FortiOS 5.2 kleinere Devices wie zB 60D nicht zur Verfügung da diese keine Möglichkeit haben die
            Disk für das Logging zu benutzen. Somit steht die "Packet Capture" Funktion für diese Devices nicht zur Verfügung! Wie 
            dennoch diese Funktion bei kleineren Device genutzt werden kann siehe nachfolgenden Artikel:
            
            FortiGate-5.0-5.2:FAQ#Wie_kann_ich_auf_einer_FortiGate_einen_.22Packet_Capture.22_durchf.C3.BChren.3F

Kann ich das "Packet Capture" für Administratoren Einschränken?

Administratoren auf einer FortiGate basieren betreffend Ihrere Rechte auf Profiles die selber erstellt werden können. Diese Profiles findet man im Web Mgmt. Interface unter folgender Position:

       System > Admin > Admin Profiles 

AB FortiOS 5.2 kann über diese erstellten und/oder exisiterenden Profiles das "Packet Capture" eingeschränkt werden:

       System > Admin > Admin Profiles > [Wähle ein entsprechendes Profile] > Firewall Configuration > Packet Capture Configuration > [None | Read Only | Read-Write]

Die Konfiguration steht ebenfalls über Kommandozeile zur Verfügung:

       # config system accprofile
       # edit [Name des entsprechenden Profiles]
       # set fwgrp custom
       # config fwgrp-permission
       # set packet-capture [read-only | read-write | none]
       # end
       # end
       # end
       # end

Danach muss das entsprechende Profile dem entsprechenden Administrator hinzugefügt werden:

       # config system admin
       # edit [Name des entsprechenden Administrators]
       # set accprofile [Name des entsprechenden Profile das unter "accprofile" erstellt wurde]
       # end

fnsysctl

Um was handelt es sich beim Kommando "fnsysctl"?

Weitere Informationen dazu siehe nachfolgenden Artikel:

       FortiGate:fnsysctl


Debug Flow

Wie benutze ich das Debug Kommando "diagnose debug flow"?

Wie das Kommando "diagnose debug flow" benutzt wird siehe nachfolgender Artikel. Dieser Artikel enthält Informationen wie das Kommando aufgebaut ist und enthält Anwendungsbeispiele:

       FortiGate:Diagnose-Command-Guide#debug_flow

CLI

Wie finde ich heraus welche Befehle auf der CLI benutzt werden wenn im Webinterface ein Konfiguration durchgeführt wird?

Erstelle eine Serielle Verbindung auf den Consolen Port. Gebe dort ein:

       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Setze einen neuen Debug Filter:
       
       # diagnose debug cli -1
       
       Aktiviere den Debug Modus mit dem gesetzen Debug Filter:
       
       # diagnose debug enable
       
       NOTE Die Angabe -1 gibt den Debug Level an dh. die Tiefe der Informationen. Um die Consolen Outputs 
            anzuzeigen betreffend den WebInterface Konfigurationen muss mind "-1" gewählt werden. Das max.
            liegt bei 8!

Nun ist der Debugger eingeschaltet. Folgendermassen wird er wieder ausgeschaltet.

       Deaktiviere den Debug Modus:
       
       # diagnose debug disable
       
       Setze den Debug Filter zurück:
       
       # diagnose debug reset
       
       Kontrolliere den Debug Filter ob dieser zurückgesetzt wurde:
       
       # diagnose debug info
       
       ACHTUNG Wenn der Debug Vorgang nicht abgeschaltet wird dh. "disable" läuft dieser permanent mit im 
               Hintergrund dh. dieser Vorgang ist "sehr" Performance Intensiv und sollte deshalb umbedingt
               ausgeschaltet werden! Wenn der User sich ausloggt ist dieser Debug Vorgang ebenfalls noch
               aktiv dh. "persistent"! Aus diesem Grund umbedingt nach Gebrauch ausschalten.

Wie führe ich auf einer FortiGate auf der Kommandozeile einen "ping" aus?

Um einen "ping" auszuführen muss auf der Kommandozeile einer FortiGate folgendes durchgeführt werden:

       # execute ping [IPv4 Adresse oder FQDN Name der Destination]
       NOTE "execute ping" kann durch folgende Option konfiguriert/beinflusst werden:
            
            # execute ping-options ?
            data-size         Integer value to specify datagram size in bytes.
            df-bit            Set DF bit in IP header yes or no.
            interval          Integer value to specify seconds between two pings.
            pattern           Hex format of pattern, e.g. 00ffaabb.
            repeat-count      Integer value to specify how many times to repeat PING.
            source            Auto or source interface IP.
            timeout           Integer value to specify timeout in seconds.
            tos               IP type-of-service option.
            ttl               Integer value to specify time-to-live.
            validate-reply    Validate reply data yes or no.
            view-settings     View the current settings for PING option.
            
            Um die entsprechenden Optionen zu setzen muss folgendes ausgeführt werden:
            
            # execute ping-options view-settings
            # execute ping-options data-size [bytes]
            # execute ping-options df-bit [yes | no]
            # execute ping-options pattern [2-byte_hex]
            # execute ping-options repeat-count [repeats]
            # execute ping-options source [auto | source-intf_ip]
            # execute ping-options timeout [seconds]
            # execute ping-options tos [service_type]
            # execute ping-options ttl [hops]
            # execute ping-options validate-reply [yes | no]

Dies bedeutet: Möche man eine "ping" absetzen und für diesen Ping eine bestimmte Source IP konfigurieren/setzen kann "execute ping-options source" benutzt werden. Per Standard steht die Option "source" auf "aut" was wiederum folgendes bedeutet: Durch das Ausführen von "execute ping" wird als Absender resp. "source" die Interface IP gesetzt die der "ping" benutzt wenn dieser die FortiGate verlässt!

Wie führe ich auf einer FortiGate auf der Kommandozeile einen "traceroute" aus?

Um einen "traceroute" auszuführen muss auf der Kommandozeile einer FortiGate folgendes durchgeführt werden:

       # execute traceroute [IPv4 Adresse oder FQDN Name der Destination]
       NOTE "execute traceroute" kann durch folgende Option konfiguriert/beinflusst werden:
            
            # execute ping-options ?
            data-size         Integer value to specify datagram size in bytes.
            df-bit            Set DF bit in IP header yes or no.
            interval          Integer value to specify seconds between two pings.
            pattern           Hex format of pattern, e.g. 00ffaabb.
            repeat-count      Integer value to specify how many times to repeat PING.
            source            Auto or source interface IP.
            timeout           Integer value to specify timeout in seconds.
            tos               IP type-of-service option.
            ttl               Integer value to specify time-to-live.
            validate-reply    Validate reply data yes or no.
            view-settings     View the current settings for PING option.
            
            Um die entsprechenden Optionen zu setzen muss folgendes ausgeführt werden:
            
            # execute ping-options view-settings
            # execute ping-options data-size [bytes]
            # execute ping-options df-bit [yes | no]
            # execute ping-options pattern [2-byte_hex]
            # execute ping-options repeat-count [repeats]
            # execute ping-options source [auto | source-intf_ip]
            # execute ping-options timeout [seconds]
            # execute ping-options tos [service_type]
            # execute ping-options ttl [hops]
            # execute ping-options validate-reply [yes | no]

Dies bedeutet: Möche man eine "traceroute" absetzen und für diesen Ping eine bestimmte Source IP konfigurieren/setzen kann "execute ping-options source" benutzt werden. Per Standard steht die Option "source" auf "aut" was wiederum folgendes bedeutet: Durch das Ausführen von "execute traceroute" wird als Absender resp. "source" die Interface IP gesetzt die der "traceroute" benutzt wenn dieser die FortiGate verlässt!

Wie führe ich auf einer FortiGate auf der Kommandozeile einen "telnet" aus?

Wenn für Applikationstests zB SMTP, HTTP usw. ein Telnet auf der FortiGate ausgeführt werden sollte, kann nachfolgendes Kommando benutzt werden um dies durchzuführen:

       # execute telnet [IPv4 Adresse] [Port]

Wie kann ich eine Konfiguration temporär Aktiv setzen und event autom. ein Roll-Back initieren?

So ein Scenario kann anhand des folgenden Kommandos durchgeführt werden:

       # config system global
       # set cfg-save [automatic | manual | revert]
       # end

Die verschiedenen Optionen haben folgende Bedeutung:

       • automatic — Automatisches Speichern nach jeder Konfigurations Aenderung
       
       • manual    — Manuelles speichern der Konfigurations Aenderung anhand des Kommandos:
           
                     # execute cfg save
       
       • revert    — Manuelles speichern der Konfigurations Aenderung innerhalb des definierten Timeouts (execute cfg save) 
                     oder 
                     Automatisches Roll-back nach Ablauf des Timeouts
                     oder
                     Manuelles Roll-back innerhalb des Timeouts (execute cfg reload).

Ein solches Scenarion kann genutzt werden um eine Konfiguration zu testen bevor diese aktiv wird dh. wenn zB ein Routing Eintrag erstellt werden soll jedoch die Gefahr besteht selber ausgeschlossen zu werden da der Routing Eintrag die verbindung "zum" FortiGate Device betrifft. In so einem Scenario würde folgendermassen vorgegangen werden:

       - Aktiviere den "revert" Mode:
         
         # config system global
         # set cfg-save revert
       
       - Setze das entsprechende Timeout:
       
         # set cfg-revert-timeout [Angabe in Sekunden zB 600]
         # end
       
       - Speichere den Roll-Back Punkt:
         
         # execute cfg save
       
       - Führe die Konfiguration aus dh. in unserem Beispiel das Routing (Ab "end" gilt das Timeout):
         
         # config router static
         # edit [Gebe einen Integer an]
         # set dst [IPv4 Adresse und Subnet Mask]
         # set gateway [IPv4 Adresse]
         # end
       
         System will reload in the next 10 seconds....
         System will reload in the next 9 seconds....
         System will reload in the next 8 seconds....
         System will reload in the next 7 seconds....
         System will reload in the next 6 seconds....
         
         NOTE Zur Warnung werden die letzten 10 Sekunden auf der Console als
              Countdown angezeigt!
       
       - Teste die Konfiguration:
       
         --> Ist diese "Erfolgreich" führe folgendes Kommandos innerhalb des definierten
             Timeouts aus:
             
             # execute cfg save
         
         --> Ist diese "Nicht Erfolgreich" führe innerhalb des Timeouts ein Roll-Back
             durch anhand folgenden Befehl:
             
             # execute cfg reload
             
             oder
             
             Lass das Timeout ablaufen damit ein Automatisches Roll-back durchgeführt wird.

Kann ich Linux/Unix basierender Befehl "grep" auf der Kommandozeile benützen?

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

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

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

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

Wie finde ich heraus welche Objekte durch welche Funktionen/Konfiguration benützt werden?

Wenn man auf einer FortiGate über Gui sowie über CLI arbeitet und Modifikationen durchführt kommt man immer wieder in die Situation, dass Objekte nicht verändert oder gelöscht werden können da diese "in use" dh. in Gebrauch sind. Dies bedeutet da die Objeket in Gebrauch sind können diese durch deren Abhängigkeit weder gelöscht und/oder zum Teil verändert werden. Das WebGui bietet zwar eine Möglichkeit diese Abhängigkeiten aufzuzeigen zB für Gruppen Objekte (äusserste Rechte Spalte "Ref."). Auf der Kommandozeile steht diese Funktion ebenfalls zur Verfügung und ist vielschichtiger da über WebGui die Spalte "Ref." nicht immer zur Verfügung steht. Dies bedeutet, wenn man unter "Firewall Objects > Addresses" die Spalte "Ref." sucht ist diese per Standard nicht vorhanden kann jedoch als zusätzliche Spalte eingeblendet werden. Der Befehl auf Kommandozeile der für diese Funktion zuständig ist heisst:

       # diagnose sys checkused <object path>

Dies bedeutet: anhand des "internen" Objekt Namens kann im Zusammenhang mit dem Kommando "diagnose sys checkused" herausgefunden werden, "Wo" das Objekt in Benutzung ist. Nachfolgend einige oft gebrauchte Beispiele:

       # diagnose sys checkused system.interface.name <interface name>
       # diagnose sys checkused system.dhcp.server:name <dhcp name> 
       
       # diagnose sys checkused firewall.address:name <address name>
       # diagnose sys checkused firewall.addrgrp.member.name <address group name>
       
       # diagnose sys checkused firewall.profile: <profile name>
              
       # diagnose sys checkused firewall.service.group:name <servicegroup name>

Gibt es eine Möglichkeit auf einer FortiGate "sämtliche" zur Verfügung stehenden Befehle/Konfiguration aufzulisten?

Ja diese Möglichkeit besteht und zwar anhand des Befehls "tree". Wird dieser ausgeführt wird die CLI (Command Line Interface) Struktur auf der FortiGate ausgegeben. Nachträglich ein Beispiel mit dessen Output:

       # tree
       
       Output basierend auf FortiOS 5.0.7  tree-5.0.7
       Output basierend auf FortiOS 5.0.10 tree-5.0.10
       Output basierend auf FortiOS 5.0.11 tree-5.0.11
       Output basierend auf FortiOS 5.0.12 tree-5.0.12
       # tree
       
       Output basierend auf FortiOS 5.2.0 tree-5.2.0
       Output basierend auf FortiOS 5.2.2 tree-5.2.2
       Output basierend auf FortiOS 5.2.3 tree-5.2.3
       Output basierend auf FortiOS 5.2.4 tree-5.2.4
       Output basierend auf FortiOS 5.2.5 tree-5.2.5
       Output basierend auf FortiOS 5.2.6 tree-5.2.6
       Output basierend auf FortiOS 5.2.7 tree-5.2.7
       Output basierend auf FortiOS 5.2.8 tree-5.2.8