Benutzer-Werkzeuge

Webseiten-Werkzeuge


fortigate

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Vorhergehende Überarbeitung
fortigate [2025/02/14 09:43]
fortigate [2025/11/28 21:07] (aktuell)
admin [License]
Zeile 1: Zeile 1:
 +Zur FortiGate-Reihe von **physischen und virtuellen Appliances für das Unified Threat Management** gehören verschiedene Sicherheitsfunktionen wie **[[firewall|Firewalls]], IDS/IPS, Webfilter und Schutz vor Schadprogramm oder Spam** der Firma [[Fortinet]]. 
  
 +Dazu gehören auch **Next-Generation Firewalls** (NGFW), die als Produkte definiert werden **die Firewalls, VPN, Intrusion Detection und andere Sicherheitsfunktionen in sich vereinen**.
 +
 +[[https://fortigate.fortidemo.com|Fortigate Demo]] (Login: demo:demo)
 +
 +{{fortigate.png}}
 +
 +Fortigate Firewalls haben ein eigenes Betriebssystem, das [[https://www.fortinet.com/de/products/fortigate/fortios|FortiOS]]. 
 +
 +Der **FortiManager** bietet eine zentrale Administration eines Firewall Cluster.
 +
 +Der **FortiAnalyzer** bietet **Berichtfunktionen, Ereignisprotokollierung, Sicherheitsberichterstellung und Analyse**. 
 +
 +**FortiClient** ist ein Endpunkt-Sicherheitsprodukt für Desktops, Telefone und andere Geräte.
 +
 +Beliebte Modelle:
 +  * FortiGate 60E: Dieses Modell ist bei kleinen Unternehmen beliebt, da es eine gute Balance zwischen Leistung und Kosten bietet. Es eignet sich gut für Standorte mit weniger Benutzern.
 +  * FortiGate 100E: Für mittelgroße Unternehmen ist dieses Modell eine populäre Wahl. Es bietet höhere Leistungsfähigkeit und mehr Schnittstellen als die kleineren Modelle.
 +  * FortiGate 300E: Dieses Modell ist eine High-End-Option, die für große Unternehmen oder Rechenzentren geeignet ist. Es bietet erweiterte Leistungsfähigkeit und umfassende Sicherheitsfunktionen.
 +
 +<code>
 +diagnose debug reset
 +diagnose debug disable
 +
 +diagnose debug flow filter clear
 +diagnose debug flow filter saddr 10.100.0.2
 +diagnose debug flow filter daddr 8.8.8.8
 +diagnose debug flow trace start 20
 +diagnose debug enable
 +
 +...
 +
 +diagnose debug disable
 +diagnose debug flow trace stop
 +</code>
 +
 +=====VDOM=====
 +
 +Virtuelle Domänen (VDOMs) werden verwendet, um ein FortiGate in zwei oder mehr virtuelle Einheiten zu unterteilen, die unabhängig voneinander funktionieren. VDOMs können separate Sicherheitsrichtlinien und im [[nat|NAT]]-Modus völlig separate Konfigurationen für [[router|Routing]] und [[vpn|VPN]]-Dienste für jedes verbundene Netzwerk bereitstellen. Ähnlich wie Context auf [[cisco-asa|ASA]].
 +
 +=====CLI=====
 +
 +Fortigate VM CLI
 +
 +<code>
 +// initial setup
 +config system global
 +set hostname FG1 
 +end
 +
 +// testen
 +show system global
 +
 +// other commands
 +show system interface
 +show system dhcp server
 +show system dns
 +show full-configuration 
 +execute factoryreset
 +get router info routing-table <all,details,vrf,ospf,bgp,rip,..>
 +
 +show firewall address vie-p-srv-wsy02
 +
 +config system interface
 +show
 +edit Server_Lan
 +get | grep address
 +show | grep address
 +set vlanid 1
 +
 +edit next # erstellt ein objekt mit der nächst verfügbaren ID
 +</code>
 +
 +Debugging
 +<code>
 +diagnose debug enable
 +
 +get vpn ipsec tunnel summary
 +diagnose vpn tunnel list [name <VPN-Name>]
 +diagnose vpn ike gateway
 +diagnose vpn ike stats
 +
 +diagnose debug application ike -1
 +diagnose debug disable
 +
 +diagnose sniffer packet any 'host 10.0.0.1 and host 10.0.0.2' 4
 +diagnose sniffer packet any 'net 10.0.0.0/24' 4
 +diagnose sniffer packet <VPN-Name> 'net 10.0.0.0/24' 4
 +execute policy-packet-capture delete-all
 +</code>
 +=====Interfaces=====
 +
 +<code>
 +config system interface
 +    edit port1
 +        set ip 100.0.0.2 255.255.255.0
 +        set role wan
 +        set alias WAN
 +        set allowaccess ping
 +    next
 +    edit port2
 +        set ip 192.168.0.1 255.255.255.0
 +        set role lan
 +        set alias LAN
 +        set allowaccess fgfm http https ping snmp ssh telnet
 +    next
 +end
 +show system interface // check config
 +</code>
 +
 +=====DNS=====
 +
 +<code>
 +config system dns
 +    set primary 8.8.8.8
 +    set secondary 8.8.4.4
 +    next
 +end
 +</code>
 +
 +=====DHCP=====
 +
 +<code>
 +config system dhcp server
 +    edit 1
 +        config ip-range
 +            edit 1
 +            set start-ip 192.168.0.10
 +            set end-ip 192.168.0.20
 +            set default-gateway 192.168.0.1
 +            set dns-server1 8.8.8.8
 +            set dns-server2 8.8.4.4
 +            set enable enable
 +            set interface port1
 +            set server-type regular
 +            set netmask 255.255.255.0
 +        next
 +    next
 +end
 +</code>
 +
 +=====Route=====
 +
 +<code>
 +config router static
 +    edit 1
 +        set gateway 192.168.0.1
 +        set device port1
 +    next
 +end
 +</code>
 +
 +=====Policy Routes=====
 +
 +<code>
 +FGT # config router policy
 +FGT (policy) # edit 1
 +        set input-device   <----- Incoming interface name.
 +        set input-device-negate <----- Enable/disable negation of input device match.
 +        set src    <----- Source IP and mask (x.x.x.x/x).
 +        set srcaddr   <----- Source address name.
 +        set src-negate <----- Enable/disable negating source address match.
 +        set dst   <----- Destination IP and mask (x.x.x.x/x).
 +        set dstaddr <----- Destination address name.
 +        set dst-negate <----- Enable/disable negating destination address match.
 +        set action <----- Action of the policy route.
 +        set protocol <----- Protocol number (0 - 255).
 +        set gateway <----- IP address of the gateway.
 +        set output-device <----- Outgoing interface name.
 +        set tos <----- Type of service bit pattern.
 +        set tos-mask <----- Type of service evaluated bits.
 +        set status <----- Enable/disable this policy route.
 +        set comments <----- Optional comments.
 +        set internet-service-id <----- Destination Internet Service ID.
 +        set internet-service-custom <----- Custom Destination Internet Service name.
 +next
 +end
 +</code>
 +=====Firewall=====
 +
 +====Network Objects====
 +<code>
 +config firewall address
 +    edit "subnet_192.168.1.0_24"
 +        set subnet 192.168.1.0 255.255.255.0
 +    next
 +    edit "host_192.168.1.10"
 +        set subnet 192.168.1.10 255.255.255.255
 +    next
 +end
 +</code>
 +
 +====Policy Rule====
 +
 +<code>
 +config firewall policy
 +    edit 1
 +        set name "INTERNET ACCESS"
 +        set srcintf port2
 +        set dstintf port3
 +        set srcaddr "subnet_192.168.1.0_24"
 +        set dstaddr "subnet_192.168.2.0_24"
 +        set action accept
 +        set schedule "always"
 +        set service "ALL"
 +        set nat enable
 +    next
 +end
 +</code>
 +
 +Find Policy
 +<code>
 +show firewall policy | grep -f "10.3.3.156" -B 3 -A 3
 +</code>
 +
 +Move policy
 +<code>
 +config firewall policy
 +    move 15 before 10
 +end
 +</code>
 +
 +Delete Policy
 +<code>
 +config firewall policy
 +delete <Policy-ID>
 +end
 +</code>
 +
 +=====NAT=====
 +
 +Um den Clients Zugriff auf das Internet zu geben kann man eine einfache Firewall Policy erstellen und dabei den Haken bei NAT (als Adresse das Interface) setzen.
 +
 +<code>
 +config firewall policy
 +    edit 1
 +        set name "INTERNET ACCESS"
 +        set srcintf "port2"
 +        set dstintf "port1"
 +        set srcaddr "LOCALSUBNET"
 +        set dstaddr "all"
 +        set action accept
 +        set schedule "always"
 +        set service "ALL"
 +        set nat enable
 +    next
 +end
 +</code>
 +
 +Um einen Server zu exposen erstellt man eine virtuelle IP und eine Firewall Policy (WAN -> LAN) dazu. (Bei der Firewall Policy nicht die IP selbst angeben oder als Objekt erstellen sondern das Objekt der virtuellen IP verlinken).
 +
 +<code>
 +config firewall policy
 +    edit 4
 +        set name "test"
 +        set srcintf "port1"
 +        set dstintf "port2"
 +        set srcaddr "all"
 +        set dstaddr "server"
 +        set action accept
 +        set schedule "always"
 +        set service "ALL"
 +    next
 +end
 +</code>
 +
 +=====Tunnel=====
 +
 +<code>
 +config system gre-tunnel
 +    edit "GRE-Tunnel"
 +        set interface "port1"
 +        set local-gw 100.0.0.2
 +        set remote-gw 200.0.0.2
 +    next
 +end
 +
 +# Alternativ (untested)
 +config system interface
 +    edit "GRE-Tunnel"
 +        set vdom "root"
 +        set ip 192.168.0.2 255.255.255.255 # muss /32 sein!
 +        set allowaccess ping
 +        set type tunnel
 +        set remote-ip 192.168.0.1 255.255.255.0 
 +        set interface "port1" # Lokaler Tunnel Endpoint
 +    next
 +end
 +</code>
 +
 +Firewall Regeln für den Tunnel.
 +
 +<code>
 +config firewall policy
 +    edit 2
 +        set name "TO-GRE"
 +        set srcintf "port2"
 +        set dstintf "GRE-Tunnel"
 +        set srcaddr "LOCALSUBNET"
 +        set dstaddr "all"
 +        set action accept
 +        set schedule "always"
 +        set service "ALL"
 +    next
 +    edit 3
 +        set name "FROM-GRE"
 +        set srcintf "GRE-Tunnel"
 +        set dstintf "port2"
 +        set srcaddr "all"
 +        set dstaddr "LOCALSUBNET"
 +        set action accept
 +        set schedule "always"
 +        set service "ALL"
 +    next
 +end
 +</code>
 +
 +Show references of an IPSec Tunnel
 +
 +<code>
 +show | grep "Tunnel Name"
 +</code>
 +=====SD WAN=====
 +
 +Siehe [[https://docs.fortinet.com/document/fortigate/6.2.15/cookbook/218559/configuring-the-sd-wan-interface|Configure SD WAN Interface]]
 +
 +=====IP SLA=====
 +
 +Siehe [[https://docs.fortinet.com/document/fortigate/6.2.15/cookbook/478384/performance-sla-link-monitoring|Fortigate Performance SLA]].
 +
 +<code>
 +#Example
 +config system link-monitor
 +    edit 0
 +        set addr-mode ipv4
 +        set srcintf "wan1"
 +        set server "8.8.8.8"
 +        set protocol ping
 +        set gateway-ip <wan1-gateway|0.0.0.0>
 +        set source-ip <wan1-ip|0.0.0.0>
 +        set interval 2
 +        set failtime 5
 +        set recoverytime 10
 +        set ha-priority 1
 +        set update-cascade-interface disable
 +        set update-static-route enable
 +        set status enable
 +    next
 +end
 +</code>
 +
 +=====OSPF=====
 +
 +<code>
 +config router ospf
 +    set router-id 10.11.101.1
 +    config area
 +        edit 0.0.0.0
 +        next
 +    end
 +    config ospf-interface
 +        edit "Router1-Internal-DR"
 +            set interface "port1"
 +            set priority 255
 +            set dead-interval 40
 +            set hello-interval 10
 +        next
 +        edit "Router1-External"
 +            set interface "port2"
 +            set dead-interval 40
 +            set hello-interval 10
 +        next
 +    end
 +    config network
 +        edit 1
 +            set prefix 10.11.0.0 255.255.0.0
 +        next
 +        edit 2
 +            set prefix 192.168.102.0 255.255.255.0
 +        next
 +    end
 +end
 +</code>
 +=====API=====
 +
 +Auth via User/Pass oder API Token. 
 +
 +API Admin erstellen; System -> Administrators -> new with API key
 +
 +====curl====
 +
 +<code bash>
 +curl -k -L "https://10.5.1.1/api/v2/my/path?access_token=xxxxxxxxx"
 +</code>
 +
 +====Postman====
 +
 +In Postman die Auth auf "API Key" stellen. 
 +
 +  * Key: access_token
 +  * Value: API-Token
 +  * Add-to: Header
 +
 +====Format====
 +
 +Ausgabe formatieren.
 +
 +<code>
 +https://<fw>/api/v2/cmdb/firewall/address?format=name|type|obj-type|associated-interface
 +https://<fw>/api/v2/cmdb/firewall/policy?format=policyid|srcintf|dstintf|srcaddr|dstaddr|service
 +</code>
 +
 +====Filter====
 +
 +Ausgabe filtern
 +
 +<code>
 +https://<fw>/api/v2/cmdb/firewall/address?filter=name=@Acticon_Controller
 +https://<fw>/api/v2/cmdb/firewall/address?format=name&filter=name=@Acticon_Controller
 +</code>
 +====Endpunkte====
 +
 +<code bash>
 +
 +# Interfaces
 +cmdb/system/interface
 +
 +# Router
 +cmdb/router/static
 +cmdb/router/policy
 +cmdb/router/rip
 +cmdb/router/ospf
 +cmdb/router/bgp
 +
 +# Firewall
 +cmdb/firewall/policy
 +cmdb/firewall/address
 +
 +# User
 +cmdb/user/local
 +cmdb/user/ldap
 +cmdb/user/group
 +</code>
 +=====GNS3 Setup=====
 +
 +<code>
 +config system global
 +set hostname test-fw
 +end
 +
 +config system interface
 +show
 +
 +edit port1
 +set mode static
 +set ip 84.112.13.69 255.255.240.0
 +set role wan
 +set alias WAN
 +set allowaccess ping fgfm ssh http https
 +next
 +
 +edit port2
 +set mode static
 +set ip 172.21.0.1 255.255.255.0
 +set role lan
 +set alias LAN
 +set allowaccess ping fgfm ssh http https
 +next
 +end
 +
 +config system dns 
 +set primary 192.168.0.1 
 +set secondary 8.8.8.8
 +end
 +
 +config router static
 +edit 1
 +set gateway 192.168.0.1
 +set device port1
 +next
 +end
 +</code>
 +
 +Jetzt kann man sich über das Webinterface verbinden.
 +
 +[[https://support.fortinet.com/Download/VMImages.aspx|1]] ([[https://support.fortinet.com/Download/FirmwareImages.aspx|2]]) aufrufen und das
 +
 +<code>
 +FGT_VM64_KVM-xxxxxxxx-FORTINET.out.kvm.zip
 +</code>
 +
 +herunterladen.
 +
 +=====License=====
 +Internet access required, via Web interface die Forticloud anmeldedaten eingeben. Nur 1 mal pro Account möglich, Account ist aber kostenlos. Oder in der CLI:
 +<code>
 +exec vm-license-options account-id MyEmail@byom.de
 +exec vm-license-options account-password MyPassword
 +exec vm-license
 +</code>
 +
 +=====Links=====
 +
 +  * [[https://www.fortinet.com/|Homepage]]
 +  * [[https://docs.fortinet.com/|Documentation]]
 +  * [[https://support.fortinet.com/Download/VMImages.aspx|Download]]
 +  * [[https://networkhunt.com/download/download-fortinet-firewall-image/|FGT_VM64_KVM-v5-build1449-FORTINET.out.kvm.zip (GNS3)]]
 +  * [[https://www.youtube.com/watch?v=pZif29I6ZdE|Fortigate Firewall Training for Beginners 4h]]
 +  * [[https://www.youtube.com/watch?v=dEy7gUKwIeM|Fortigate 60E - Initial setup, WAN, Dual-WAN, LAN, LACP, VLAN, SDWAN on a FortiGate 60E]]
 +  * [[https://www.youtube.com/watch?v=rDlhMJ9EKkE|Fortigate Firewall Troubleshooting]]