Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| 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]], | ||
| + | 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.png}} | ||
| + | |||
| + | Fortigate Firewalls haben ein eigenes Betriebssystem, | ||
| + | |||
| + | Der **FortiManager** bietet eine zentrale Administration eines Firewall Cluster. | ||
| + | |||
| + | Der **FortiAnalyzer** bietet **Berichtfunktionen, | ||
| + | |||
| + | **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, | ||
| + | |||
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | =====VDOM===== | ||
| + | |||
| + | Virtuelle Domänen (VDOMs) werden verwendet, um ein FortiGate in zwei oder mehr virtuelle Einheiten zu unterteilen, | ||
| + | |||
| + | =====CLI===== | ||
| + | |||
| + | Fortigate VM CLI | ||
| + | |||
| + | < | ||
| + | // 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 < | ||
| + | |||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | Debugging | ||
| + | < | ||
| + | diagnose debug enable | ||
| + | |||
| + | get vpn ipsec tunnel summary | ||
| + | diagnose vpn tunnel list [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' | ||
| + | diagnose sniffer packet any 'net 10.0.0.0/ | ||
| + | diagnose sniffer packet < | ||
| + | execute policy-packet-capture delete-all | ||
| + | </ | ||
| + | =====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 | ||
| + | set input-device-negate <----- Enable/ | ||
| + | set src <----- Source IP and mask (x.x.x.x/ | ||
| + | set srcaddr | ||
| + | set src-negate <----- Enable/ | ||
| + | set dst < | ||
| + | set dstaddr <----- Destination address name. | ||
| + | set dst-negate <----- Enable/ | ||
| + | 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/ | ||
| + | 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 " | ||
| + | set subnet 192.168.1.0 255.255.255.0 | ||
| + | next | ||
| + | edit " | ||
| + | set subnet 192.168.1.10 255.255.255.255 | ||
| + | next | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | ====Policy Rule==== | ||
| + | |||
| + | < | ||
| + | config firewall policy | ||
| + | edit 1 | ||
| + | set name " | ||
| + | set srcintf port2 | ||
| + | set dstintf port3 | ||
| + | set srcaddr " | ||
| + | set dstaddr " | ||
| + | set action accept | ||
| + | set schedule " | ||
| + | set service " | ||
| + | set nat enable | ||
| + | next | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | Find Policy | ||
| + | < | ||
| + | show firewall policy | grep -f " | ||
| + | </ | ||
| + | |||
| + | Move policy | ||
| + | < | ||
| + | config firewall policy | ||
| + | move 15 before 10 | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | Delete Policy | ||
| + | < | ||
| + | config firewall policy | ||
| + | delete < | ||
| + | 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 " | ||
| + | set srcintf " | ||
| + | set dstintf " | ||
| + | set srcaddr " | ||
| + | set dstaddr " | ||
| + | set action accept | ||
| + | set schedule " | ||
| + | set service " | ||
| + | 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 " | ||
| + | set srcintf " | ||
| + | set dstintf " | ||
| + | set srcaddr " | ||
| + | set dstaddr " | ||
| + | set action accept | ||
| + | set schedule " | ||
| + | set service " | ||
| + | next | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | =====Tunnel===== | ||
| + | |||
| + | < | ||
| + | config system gre-tunnel | ||
| + | edit " | ||
| + | set interface " | ||
| + | set local-gw 100.0.0.2 | ||
| + | set remote-gw 200.0.0.2 | ||
| + | next | ||
| + | end | ||
| + | |||
| + | # Alternativ (untested) | ||
| + | config system interface | ||
| + | edit " | ||
| + | set vdom " | ||
| + | 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 " | ||
| + | next | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | Firewall Regeln für den Tunnel. | ||
| + | |||
| + | < | ||
| + | config firewall policy | ||
| + | edit 2 | ||
| + | set name " | ||
| + | set srcintf " | ||
| + | set dstintf " | ||
| + | set srcaddr " | ||
| + | set dstaddr " | ||
| + | set action accept | ||
| + | set schedule " | ||
| + | set service " | ||
| + | next | ||
| + | edit 3 | ||
| + | set name " | ||
| + | set srcintf " | ||
| + | set dstintf " | ||
| + | set srcaddr " | ||
| + | set dstaddr " | ||
| + | set action accept | ||
| + | set schedule " | ||
| + | set service " | ||
| + | next | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | Show references of an IPSec Tunnel | ||
| + | |||
| + | < | ||
| + | show | grep " | ||
| + | </ | ||
| + | =====SD WAN===== | ||
| + | |||
| + | Siehe [[https:// | ||
| + | |||
| + | =====IP SLA===== | ||
| + | |||
| + | Siehe [[https:// | ||
| + | |||
| + | < | ||
| + | #Example | ||
| + | config system link-monitor | ||
| + | edit 0 | ||
| + | set addr-mode ipv4 | ||
| + | set srcintf " | ||
| + | set server " | ||
| + | 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 " | ||
| + | set interface " | ||
| + | set priority 255 | ||
| + | set dead-interval 40 | ||
| + | set hello-interval 10 | ||
| + | next | ||
| + | edit " | ||
| + | set interface " | ||
| + | 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==== | ||
| + | |||
| + | <code bash> | ||
| + | curl -k -L " | ||
| + | </ | ||
| + | |||
| + | ====Postman==== | ||
| + | |||
| + | In Postman die Auth auf "API Key" stellen. | ||
| + | |||
| + | * Key: access_token | ||
| + | * Value: API-Token | ||
| + | * Add-to: Header | ||
| + | |||
| + | ====Format==== | ||
| + | |||
| + | Ausgabe formatieren. | ||
| + | |||
| + | < | ||
| + | https://< | ||
| + | https://< | ||
| + | </ | ||
| + | |||
| + | ====Filter==== | ||
| + | |||
| + | Ausgabe filtern | ||
| + | |||
| + | < | ||
| + | https://< | ||
| + | https://< | ||
| + | </ | ||
| + | ====Endpunkte==== | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | # Interfaces | ||
| + | cmdb/ | ||
| + | |||
| + | # Router | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | |||
| + | # Firewall | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | |||
| + | # User | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | cmdb/ | ||
| + | </ | ||
| + | =====GNS3 Setup===== | ||
| + | |||
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | Jetzt kann man sich über das Webinterface verbinden. | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | < | ||
| + | FGT_VM64_KVM-xxxxxxxx-FORTINET.out.kvm.zip | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | < | ||
| + | exec vm-license-options account-id MyEmail@byom.de | ||
| + | exec vm-license-options account-password MyPassword | ||
| + | exec vm-license | ||
| + | </ | ||
| + | |||
| + | =====Links===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||