fortinet
ref
networking · fortinet · referenz

FortiOS CLI —
Kompakte Referenz auf Deutsch

Interfaces, Routing, Firewall Policies, VIPs, VPN, NAT, Diagnose und Debugging — alles was man im FortiGate-Alltag braucht. Kein Tutorial — direkt die Commands, die Syntax, die wichtigsten Fallstricke. Getestet auf FortiOS 6.4 / 7.x.

FortiOS 6.4 / 7.x FortiGate ✓ Deutsch ⚠ end nicht vergessen
01 Grundlagen 02 Interfaces 03 Routing 04 Firewall Policies 05 VIPs / NAT 06 DHCP 07 VPN 08 Diagnose 09 Debug 10 Fallstricke
01 — Grundlagen

Navigation & Grundbefehle

FortiOS CLI kennt zwei Ebenen: die globale Ebene und den Konfigurations-Kontext. Mit config betritt man einen Kontext, mit end verlässt man ihn und wendet Änderungen an. next wechselt zum nächsten Objekt innerhalb eines Kontexts.

FortiOS CLINavigation
# Konfiguration anzeigen
show full-configuration
show firewall policy
show system interface

# In Kontext wechseln
config system interface
config firewall policy

# Objekt bearbeiten
    edit "wan"         # Interface nach Name
    edit 1             # Policy nach ID
    edit 0             # Neues Objekt anlegen

# Werte setzen
    set ip 192.168.1.1 255.255.255.0
    set allowaccess ping https ssh

# Werte löschen
    unset allowaccess

# Objekt abschließen
    next

# Kontext verlassen + anwenden
end

# Einzelnes Objekt löschen
config firewall policy
    delete 5
end
CommandBeschreibung
get system statusFortiOS-Version, Hostname, Seriennummer, Uptime
get system performance statusCPU, RAM, Sessions — Live-Auslastung
show full-configurationGesamte Konfiguration ausgeben
show | grep -f wanKonfiguration nach Begriff filtern
execute backup config tftp DATEI IPKonfiguration per TFTP sichern
execute restore config tftp DATEI IPKonfiguration per TFTP wiederherstellen
execute factoryresetWerkseinstellungen (Vorsicht!)
02 — Interfaces

Interfaces konfigurieren

FortiOS CLIInterface-Konfiguration
config system interface
    edit "wan"
        set mode dhcp              # oder: static, pppoe
        set allowaccess ping https
        set role wan
    next
    edit "lan"
        set ip 192.168.1.99 255.255.255.0
        set allowaccess ping https ssh
        set role lan
    next
end

# VLAN-Subinterface
config system interface
    edit "lan.10"
        set vdom root
        set interface "lan"
        set vlanid 10
        set ip 192.168.10.1 255.255.255.0
        set allowaccess ping
    next
end
CommandBeschreibung
get system interface physicalPhysische Interfaces mit Status + IP
get system interfaceAlle Interfaces inkl. VLANs
diagnose ip address listIP-Adressen aller Interfaces
diagnose hardware deviceinfo nic wanPhysische NIC-Details (Speed, Duplex, Fehler)
03 — Routing

Statisches Routing

FortiOS CLIStatische Routen
config router static
    edit 1
        set gateway 192.168.68.1
        set device "wan"
    next
    edit 2
        set dst 10.10.0.0 255.255.0.0
        set gateway 192.168.1.2
        set device "lan"
    next
end
CommandBeschreibung
get router info routing-table allKomplette Routing-Tabelle
get router info routing-table staticNur statische Routen
get router info routing-table connectedDirekt verbundene Netze
diagnose ip route listKernel-Routing-Tabelle (FIB)
execute ping-options source wanPing-Quell-Interface setzen
execute ping 8.8.8.8Ping (nach ping-options)
execute traceroute 8.8.8.8Traceroute
04 — Firewall Policies

Policies anlegen & verwalten

Policies werden in Reihenfolge abgearbeitet — erste Match gewinnt. Policy-ID 0 beim edit legt eine neue Policy an und vergibt automatisch die nächste freie ID.

FortiOS CLIPolicy anlegen
config firewall policy
    edit 0
        set name        "LAN-to-WAN"
        set srcintf     "lan"
        set dstintf     "wan"
        set srcaddr     "all"
        set dstaddr     "all"
        set action      accept
        set schedule    "always"
        set service     "ALL"
        set nat         enable
        set logtraffic  all
    next
end

# Policy für VIP (eingehend) — NAT aus!
config firewall policy
    edit 0
        set name        "HTTPS-to-Nginx"
        set srcintf     "wan"
        set dstintf     "lan"
        set srcaddr     "all"
        set dstaddr     "VIP-HTTPS"    # VIP-Objekt
        set action      accept
        set service     "HTTPS"
        set nat         disable        # ← wichtig bei VIPs!
    next
end
CommandBeschreibung
show firewall policyAlle Policies
diagnose firewall iprope show 100004 0Policy-Hitcount anzeigen
diagnose netlink brctl name host lanBridge-Einträge (Layer 2)
Policy-Reihenfolge ist entscheidend

Policies werden von oben nach unten abgearbeitet — die erste passende Policy gewinnt. Spezifische Policies müssen vor allgemeinen stehen. Reihenfolge ändern: config firewall policymove 5 before 3end.

05 — VIPs & NAT

Virtual IPs & Port-Forwarding

FortiOS CLIVIP mit Port-Forwarding
config firewall vip
    edit "VIP-HTTPS"
        set extip      192.168.68.81   # WAN-IP der FortiGate
        set extintf    "wan"            # ← NICHT "wan1" beim 30E!
        set portforward enable
        set protocol   tcp
        set extport    443
        set mappedip   192.168.1.71   # Ziel-IP intern
        set mappedport 443
    next
end

# IP-Range VIP (ohne Port-Forwarding)
config firewall vip
    edit "VIP-Range"
        set extip    192.168.68.81
        set extintf  "wan"
        set mappedip "192.168.1.71-192.168.1.71"
    next
end

# Adressobjekt anlegen
config firewall address
    edit "Server1"
        set subnet 192.168.1.71 255.255.255.255
    next
end

# Adressgruppe
config firewall addrgrp
    edit "Server-Gruppe"
        set member "Server1" "Server2"
    next
end
CommandBeschreibung
show firewall vipAlle VIPs anzeigen
show firewall addressAlle Adressobjekte
show firewall addrgrpAdressgruppen
show firewall service customEigene Service-Objekte
06 — DHCP

DHCP-Server & Reservierungen

FortiOS CLIDHCP-Server mit Reservierungen
config system dhcp server
    edit 1
        set interface        "lan"
        set default-gateway  192.168.1.99
        set netmask          255.255.255.0
        set dns-server1      192.168.1.99
        set dns-server2      9.9.9.9
        config ip-range
            edit 1
                set start-ip 192.168.1.10
                set end-ip   192.168.1.200
            next
        end
        config reserved-address
            edit 1
                set ip  192.168.1.71
                set mac aa:bb:cc:dd:ee:01
                set description "Server1"
            next
        end
    next
end
CommandBeschreibung
get system dhcp lease listAktive DHCP-Leases mit MAC + IP
execute dhcp lease-clear allAlle Leases löschen (Vorsicht!)
07 — VPN

IPsec & SSL-VPN

FortiOS CLISSL-VPN — Basis-Konfiguration
# SSL-VPN Settings
config vpn ssl settings
    set servercert     "self-sign"
    set tunnel-ip-pools "SSLVPN_TUNNEL_ADDR1"
    set port           443
    set source-interface "wan"
    set source-address   "all"
    set default-portal  "tunnel-access"
end

# SSL-VPN Firewall Policy
config firewall policy
    edit 0
        set name     "SSL-VPN-Access"
        set srcintf  "ssl.root"
        set dstintf  "lan"
        set srcaddr  "all"
        set dstaddr  "all"
        set action   accept
        set service  "ALL"
    next
end
CommandBeschreibung
get vpn ssl monitorAktive SSL-VPN Sessions
get vpn ipsec tunnel summaryIPsec-Tunnel Status
diagnose vpn tunnel listIPsec-Tunnel Detail
execute vpn sslvpn del-tunnel allAlle SSL-VPN Sessions trennen
08 — Diagnose

Status & Diagnose-Befehle

CommandBeschreibung
diagnose sys session listAktive Sessions (Firewall State Table)
diagnose sys session filter dport 443Sessions nach Ziel-Port filtern
diagnose sys session filter src 192.168.1.71Sessions nach Quell-IP filtern
diagnose sys session clearSession-Table leeren (Vorsicht!)
diagnose hardware sysinfo memoryRAM-Auslastung
diagnose hardware sysinfo cpuCPU-Auslastung
get system arpARP-Tabelle
diagnose netlink brctl host fdbMAC-Adresstabelle
execute log displayLogs anzeigen (letzte Einträge)
execute log filter category 1Log-Filter setzen (1 = Traffic)
09 — Debug

Flow Trace — Traffic debuggen

Der Flow Trace ist das mächtigste Debugging-Tool auf der FortiGate — er zeigt in Echtzeit wie die FortiGate einzelne Pakete verarbeitet: welche Policy greift, ob NAT angewendet wird, warum ein Paket geblockt wird.

FortiOS CLIFlow Trace — Schritt für Schritt
# 1. Filter setzen (Quell-IP des Clients)
diagnose debug flow filter addr 192.168.68.100

# Optional: nach Ziel-Port filtern
diagnose debug flow filter dport 443

# 2. Trace starten (20 Pakete)
diagnose debug flow trace start 20

# 3. Debug aktivieren
diagnose debug enable

# 4. Traffic auslösen (z.B. Browser aufrufen)
# Ausgabe erscheint in der CLI

# 5. Debug stoppen
diagnose debug disable
diagnose debug reset
diagnose debug flow filter clear
Flow Trace lesen

iprope_in_check() check failed → Policy fehlt oder blockiert
Allowed by Policy-X → Policy X greift
DNAT → VIP-Übersetzung wurde angewendet
SNAT → Source-NAT wurde angewendet
reverse path check fail → Routing-Problem (kein Rückweg)

FortiOS CLIWeitere Debug-Optionen
# DHCP debuggen
diagnose debug application dhcpd -1
diagnose debug enable

# DNS debuggen
diagnose debug application dnsproxy -1
diagnose debug enable

# SSL-VPN debuggen
diagnose debug application sslvpn -1
diagnose debug enable

# Immer aufräumen:
diagnose debug disable
diagnose debug reset
10 — Fallstricke

Was schiefgehen kann

VIP greift nicht — Traffic kommt nicht an
Beim FortiGate 30E heißt das WAN-Interface wan, nicht wan1. Im VIP-Objekt muss set extintf "wan" stehen. Mit dem falschen Interface-Namen wird die VIP still ignoriert. Prüfen: show firewall vip und extintf checken.
Policy vorhanden aber Traffic wird geblockt
Die Policy ist vorhanden aber nicht in der richtigen Reihenfolge. Eine restriktivere Policy weiter oben matched zuerst. Policy-Reihenfolge prüfen mit show firewall policy — oder Flow Trace aktivieren um zu sehen welche Policy tatsächlich greift.
NAT-Problem: Ziel-Server sieht FortiGate als Absender
Bei eingehenden VIP-Policies muss set nat disable gesetzt sein. Mit aktiviertem NAT übersetzt die FortiGate die Quell-IP auf ihre eigene LAN-IP — der Server sieht nicht den echten Client.
Flow Trace zeigt nichts
Filter stimmt nicht mit dem tatsächlichen Traffic überein. Häufig: VPN auf dem Client aktiv → DNS läuft über VPN-Tunnel statt lokal. VPN deaktivieren und erneut testen. Filter mit diagnose debug flow filter clear löschen und neu setzen.
end vergessen — Änderungen nicht übernommen
Ohne end am Schluss eines config-Blocks werden Änderungen nicht gespeichert. Die CLI zeigt kein Warnsignal. Immer mit show prüfen ob die Änderung übernommen wurde.