This lab covers the full deployment lifecycle of a FortiGate-VM — from sourcing the correct image and navigating hypervisor compatibility issues, through CLI-based interface configuration, GUI access, and FortiCloud license activation, to building and ordering a real firewall policy set. The goal was to get hands-on with FortiOS fundamentals: CLI syntax, zone-based policy logic, Internet Service objects, and traffic logging.
VMware Workstation Pro 26H1 — FortiGate's native virtualisation platform, eliminating hardware compatibility issues present with VirtualBox
FortiOS v7.4.12 (Mature build) — imported via OVF from Fortinet's official VM download portal using a free FortiCare account
VMware NAT adapter — FortiGate receives a DHCP lease from VMware's NAT engine and routes internet traffic through the host machine
VMware Host-only adapter (VMnet1, 192.168.122.0/24) — provides isolated management access and simulates a LAN segment for client traffic
https://192.168.122.254 from the host browserexecute ping 8.8.8.8 — 0% packet loss confirmedBuilt a structured three-tier policy set demonstrating proper rule hierarchy — specific deny rules above general allow rules, with FortiGate's implicit deny-all as the final catch. Used FortiGate's Internet Service Database (ISDB) to block Facebook by service category rather than raw IP, which is a more realistic and maintainable enterprise approach.
| # | Policy Name | Source | Destination | Action | Log |
|---|---|---|---|---|---|
| 1 | Block-Facebook | all | Facebook-Web, DNS, ICMP | ⊘ DENY | ✓ |
| 2 | LAN-to-WAN-Allow | all | all | ✓ ACCEPT | ✓ |
| — | implicit_deny | all | all | ⊘ DENY (default) | — |
Rule ordering is critical: FortiGate evaluates policies top-to-bottom and matches on the first hit. The Block-Facebook deny rule must sit above the general LAN-to-WAN allow rule, otherwise Facebook traffic would be permitted before the deny is evaluated.