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]]