PAN-OS, Cisco FTD and FortiGate: how zones, NAT and HA differ
How PAN-OS, Cisco FTD and FortiGate handle zones, rule order, NAT versus policy, application identification and HA, with Huawei USG in brief.
Intermediate5 min read
● PAN-OS ● FTD ● FortiGate
──────────════─────────────────────════─────────────────────══
▸ POLICY ON zone security zone interface
RULE ORDER top-down rule number By Sequence
NAT pre-NAT IP NAT sections central SNAT
APP ID App-ID app detectors app sensor
HA A/P or A/A failover FGCP
──────────────────═══──────────────────────═══────────────────
same question, different names
On this page
Every next-generation firewall answers the same questions: where did the traffic come from, which rule applies, what address does the rule see after NAT, what application is it, and what happens when a box fails. The vendors answer them in different words and sometimes in a different order. These are my notes on five of those questions, each checked against the vendor's own documentation.
1. Zones and interfaces
- PAN-OS. An interface must be assigned to a security zone before it can process traffic, and an interface belongs to only one zone. Security policy rules reference source and destination zones, not interfaces (Security Zone Overview).
- Cisco Secure Firewall Threat Defense (FTD). Each interface can go into a security zone, an interface group, or both. An interface can be in only one security zone. Interface groups work in NAT, prefilter and QoS policies, and Cisco recommends defaulting to security zones because every feature supports them (Security zones and interface groups).
- FortiGate. A firewall policy names an incoming and an outgoing interface (Firewall policy). Zones are optional: they group interfaces so several segments can share one policy, and they don't change routing. A zone's
intrazonesetting decides whether its members can talk to each other without a policy (Zone). - Huawei USG. Policy is also built on security zones, and interfaces are added to them. There is a Local zone for the firewall itself; Huawei's hot standby FAQ, for example, discusses whether policy must permit packets between the Local zone and the heartbeat interface's zone (FAQ About Hot Standby).
So on PAN-OS and FTD the zone is the normal unit of policy, while on FortiGate the interface is, with zones as a convenience.
2. Policy evaluation order
All three main vendors use top-down, first match, so specific rules go above general ones.
- PAN-OS evaluates security rules from top to bottom and uses the first rule that matches. The predefined default rules at the bottom allow intrazone traffic and deny interzone traffic. They are read-only by default, but you can override a few of their settings, such as the action, tags, logging and security profiles (Security Policy).
- FTD numbers access control rules from 1 and matches them in ascending order. The one exception is Monitor rules: after traffic matches one, evaluation continues to the rules below (Access control rule order).
- FortiGate checks policies in the order shown in the By Sequence view. Traffic that matches no policy is denied (Firewall policy).
3. NAT and how it meets the security policy
This is where most "why doesn't my rule match" questions come from.
- PAN-OS evaluates NAT rules top-down, and a packet matches only one NAT rule. Security rules then match the pre-NAT addresses but the post-NAT zones (NAT Policy Overview).
- FTD keeps NAT in its own policy, in one table with three sections: manual NAT first, then auto NAT (ordered by the system), then manual NAT placed after auto NAT. A Section 0 holds rules the system creates for itself. Once a rule matches, later sections are not checked (NAT rule order).
- FortiGate can do source NAT inside each firewall policy, or in a separate Central SNAT table. Central NAT is off by default. When it is on, the NAT option in policies is skipped, the table is read top-down, and NAT is applied after the security policy. In policy-based NGFW mode, central SNAT is assumed to be on (Central SNAT).
4. Application identification
- PAN-OS App-ID identifies an application regardless of port, protocol or encryption, using signatures, protocol decoders and, for evasive applications, heuristics. If the traffic is decrypted, the signatures run again on the decrypted flow (App-ID Overview).
- FTD uses application conditions in access control rules, backed by application detectors that Cisco updates through system and vulnerability database (VDB) updates (Application rule conditions). The inspection engine is Snort, which runs on the threat defense device (Snort 3). Identification should take 3 to 5 packets, or, for encrypted traffic, until after the server certificate exchange in the SSL handshake. Until then the system lets packets pass and the connection be set up, then applies the rule's action to the rest of the session (Recommendations for application control).
- FortiGate application control uses IPS protocol decoders and can detect applications on non-standard ports. An application sensor is added to a firewall policy, and the feature needs a FortiGuard Application Control subscription (Application control). Sensor actions are monitor, allow, block or quarantine (Configuring an application sensor). In policy-based NGFW mode, applications go directly into the security policy instead (config firewall security-policy).
The common point: the application is rarely known from the first packet, because a TCP handshake carries no application data. So some traffic passes before the application is known, and the decision is made again once it is.
5. High availability
- PAN-OS offers active/passive (virtual wire, Layer 2 and Layer 3) and active/active (virtual wire and Layer 3 only). Active/active does not load-balance traffic by itself; that needs ECMP, multiple ISPs or load balancers (HA Modes).
- FTD high availability is Active/Standby failover: one unit passes traffic, the two are joined by a failover link and optionally a state link, and they synchronize configuration and state (Threat Defense high availability). Clustering is a separate feature.
- FortiGate uses the FortiGate Clustering Protocol (FGCP). Members must be the same model with the same firmware (FGCP). Clusters run active-passive or active-active, and FGCP changes the interfaces' MAC addresses when the cluster forms.
- Huawei USG calls it hot standby, with HRP heartbeats and VRRP virtual addresses, in active/standby or load-balancing networking (FAQ About Hot Standby).
What I take from this
When I move between platforms, I translate the questions, not the configuration lines. Which object does policy use, zone or interface? Which rule wins? Which address does the rule see after NAT? When is the application known? Each vendor answers these clearly, but only in its own documentation and for its own version, so that is where I check before I change a rule.
Keep reading
Related posts
Network security
Inside a firewall HA failover: heartbeats, session sync, failback
How Palo Alto, FortiGate and Cisco FTD pairs detect a failure, sync sessions, move the virtual MAC and fail back, and how to test it safely.
Advanced11 min read
- High Availability
- Firewalls
- Palo Alto
- FortiGate
- Cisco FTD
- VRRP
- Change Management
Network security
PAN-OS packet flow: six stages and up to three policy checks
The six stages of PAN-OS packet flow, from ingress through session setup and App-ID to egress, and why security policy can be checked up to three times.
Intermediate6 min read
- Palo Alto
- PAN-OS
- Firewalls
Network security
What a firewall sees in a TLS 1.3 handshake, message by message
Walk a TLS 1.3 handshake in Wireshark from ClientHello to Finished: why SNI stays visible, the certificate does not, and 0-RTT can be replayed.
Intermediate11 min read
- TLS
- TLS 1.3
- Decryption
- Firewalls
- Wireshark
- Cryptography