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.
=====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
// initial setup
config system global
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
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
=====Interfaces=====
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
=====DNS=====
config system dns
set primary 8.8.8.8
set secondary 8.8.4.4
next
end
=====DHCP=====
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
=====Route=====
config router static
edit 1
set gateway 192.168.0.1
set device port1
next
end
=====Policy Routes=====
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
=====Firewall=====
====Network Objects====
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
====Policy Rule====
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
Move policy
config firewall policy
move 15 before 10
end
=====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.
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
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).
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
=====Tunnel=====
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
Firewall Regeln für den Tunnel.
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
=====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]].
#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
set source-ip
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
=====OSPF=====
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
=====API=====
Auth via User/Pass oder API Token.
API Admin erstellen; System -> Administrators -> new with API key
====curl====
curl -k -L "https://10.5.1.1/api/v2/my/path?access_token=xxxxxxxxx"
====Postman====
In Postman die Auth auf "API Key" stellen.
* Key: access_token
* Value: API-Token
* Add-to: Header
====Format====
Ausgabe formatieren.
https:///api/v2/cmdb/firewall/address?format=name|type|obj-type|associated-interface
https:///api/v2/cmdb/firewall/policy?format=policyid|srcintf|dstintf|srcaddr|dstaddr|service
====Filter====
Ausgabe filtern
https:///api/v2/cmdb/firewall/address?filter=name=@Acticon_Controller
https:///api/v2/cmdb/firewall/address?format=name&filter=name=@Acticon_Controller
====Endpunkte====
# 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
=====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]]