T Techclick ← Palo Alto hub
Palo Alto · PAN-OS · Interview lesson

Palo Alto interview answers that also teach the path

The ticket says rule 12 allows SSL. The user still hits interzone-default. The weak answer is “move the rule up.” The strong answer names the 6-tuple session, then route → NAT lookup → security on pre-NAT IPs and post-NAT zones, then quotes one test security-policy-match line and a show session id field. This page trains that sentence.

22 min read · L2 primary · 8 scenarios · 6-question quiz

⚡ Quick Answer

Palo Alto interview questions and answers (2026) that also teach: session factory, zones, first-match, App-ID vs service, NAT vs security, GlobalProtect HIP, HA sync limits, and decryption.

After this page you can

Say this out loud

PAN-OS is session-based. A new 6-tuple walks slow path: zone protection, SYN check, route (egress zone), NAT lookup, User-ID, DoS, then security with application ANY. An existing session skips that walk. Security uses the original IPs and the post-NAT zones. NAT only translates on egress. App-ID is the application; service is the port. First match wins. I prove it with test security-policy-match and show session id.

1. Ticket hook — why the factory order matters

Night shift: “Internet is down for one VLAN.” Rule 12 is Allow, application ssl, service application-default, destination zone Untrust. Rule 4 above it is also Allow to Untrust with a URL Filtering profile that blocks the category. Moving 12 to the top “fixes” the user and breaks the control the SOC wanted.

That is the interview. Security rules are evaluated left to right and top to bottom. The first fully matching rule wins; later rules are not evaluated. A broader allow above a specific one hides it forever. And if the packet already has a session, the factory does not re-walk the list until that session dies or is discarded.

Hero · who talks to whom
User packet entering a Palo Alto session factory, then splitting toward an internal server or the internet after policy
Notice: the firewall sits between user and destination. A security rule is not “a list of allows.” It is the first matching instruction for that 6-tuple on that vsys.
Hard words, once

6-tuple — source IP, destination IP, source port, destination port, protocol, and ingress security zone (Packet Flow Sequence in PAN-OS). Slow path — first packet of a new session. Fast path — later packets of an existing session. First match — top-to-bottom, left-to-right; stop at the first rule that meets every criterion. application-default — allow the App-ID only on its standard ports. HIP — Host Information Profile from GlobalProtect, attached on the security rule Source Device. HA1 / HA2 — control link versus session-sync data link.

2. Mental model: session vs new packet

Every interview that goes well starts here. PAN-OS does not re-run NAT and security lookups for every packet.

Existing session (fast path)

Flow-table hit on the 6-tuple. PAN-OS applies the already-chosen NAT, interfaces, and rule action. If the session is marked discard (policy now deny, or a threat), the packet dies. This is why “I committed the rule and nothing changed” is usually leftover state, not a broken commit.

New packet (slow path)

Ingress parse → session miss → zone protection → TCP SYN check → route (names egress zone) → NAT lookup → User-ID → DoS → security with application ANY → allocate the session. Destination NAT triggers a second route lookup on the translated address so the destination zone is post-NAT.

The client in PAN-OS language is whoever sent the first packet the firewall saw. That may not be the host’s idea of “client.” Reply traffic is the server-to-client flow of the same session. It does not need a second security rule.

Flow 1 · session table vs new packet
Packet in Session hit? 6-tuple + vsys YES Follow session (fast path) NAT + zones already chosen NO — slow path 1 Zone prot + TCP SYN 2 Route egress zone 3 NAT lookup pre-NAT zone 4 Security app ANY + post-NAT zone 5 Allocate session then App-ID on later packets Reply does not need a second security rule Same session, S2C flow. Translation happens at egress. Security already decided on the first packet. App-ID may rematch the security rulebase once the application is known — that is a later walk, not a second policy for the reply. If you changed the rule and the user still works, quote the session, not the GUI tick. Source: Packet Flow Sequence in PAN-OS (slow path 3.1–3.8, then fast path + App-ID).

Read the diamond first. New packet walks 1–5. Existing session skips to the table. That is the L2 interview opener.

Path · five stations
Five stations of a PAN-OS first packet: ingress, route and NAT, security, App-ID, egress
Notice: NAT lookup sits before security. Translation itself sits at egress. Mixing those two in an answer is the classic weak interview.

3. First-packet order and first-match

Flowchart first. Official security-rule text: rules are evaluated left to right and top to bottom. A packet matches the first rule that meets every defined criterion. After that match, later rules are not evaluated. Put the more specific rule above the generic one.

Flow 2 · first-match security walk
Rulebase top → bottom Next rule from the top zones · IPs · user · HIP · app · service Every field matches? first packet uses app ANY YES — stop Apply this rule Allow / Deny / Drop / Reset NO More rules? keep walking down Next rule not skipped Default rule intrazone-default = allow interzone-default = deny NAT vs security trap NAT match = pre-NAT zone Security dest zone = post-NAT Security addresses = original IPs DNAT: second route lookup sets the real dest zone. Translate only at egress. NAT never allows traffic.

Diamond = match. Green = stop. Red = keep walking or hit the default rule. Sources: Security Policy Rules; NAT Policy Rules.

First-packet security lookup uses application ANY. After App-ID names the application, PAN-OS consults the security rulebase again with that App-ID, the user, URL category, and the rest of the session key. If the newly identified application no longer matches the original allow, the session is torn down. That rematch is why “incomplete / insufficient-data on 443” can later become ssl or web-browsing and jump to a different rule.

Common miss

Writing the security destination zone as the pre-NAT zone on a destination-NAT inbound rule. Official wording: if you use NAT, always reference the post-NAT zone, and always refer to the original (pre-NAT) IP addresses in source and destination. The NAT rule itself is matched on the pre-NAT zone. Two tables, two zone stories.

4. How to choose App-ID, NAT, HIP, HA, decrypt

Interviewers mix these on purpose. Keep the verbs separate: identify, translate, posture-check, fail over, inspect.

App-ID versus service

Application is what App-ID classified. Service is the Layer-4 port. You can set service to any, a custom port, or application-default (the default). application-default still inspects for all applications on all ports; it only allows the matched App-ID on its standard ports. Best-practice docs want application-default on most allow rules so evasive apps cannot ride a non-standard port.

App-ID (Application column)Service (port column)
Job Classify the application (signatures, decoders, heuristics) Constrain the L4 port the application may use
First packet Lookup uses application ANY; rematch after identify Port is known immediately from the header
Choose when Always — this is why you bought an NGFW application-default unless a custom app must live on a non-standard port
Interview trap “App-ID is just port 443” Service any plus application ssl — anything that later rematches off ssl can still have used any port
Proof Traffic log app; session application Traffic log dport; rule Service column

NAT versus security

NAT translates. Security allows or denies. You must write both. Official flow: route lookup for egress zone → NAT rule match on original packet / pre-NAT zone → security on original IPs and post-NAT zones → translate source and/or destination only when the packet leaves.

NAT ruleSecurity rule
Does Rewrite address / port at egress Allow, deny, drop, or reset the session
Zone used to match Pre-NAT zone (zone of the original IP) Destination zone is post-NAT; source zone is ingress
Addresses used to match Original packet Original (pre-NAT) source and destination IPs
Order Looked up on the first packet, applied on egress Looked up after NAT decision and the (possibly second) route
Choose when You need a public IP, inbound publish, or hide-NAT Always, including for NAT’d traffic
Proof Device → Troubleshooting → NAT; session xlate fields test security-policy-match; traffic log rule name

GlobalProtect HIP

HIP is not “antivirus on the portal.” The app collects host data. HIP objects filter that raw data. HIP profiles combine objects with AND / OR / NOT. The profile hangs on the security rule under Source → Source Device (up to 63 profiles). You need a GlobalProtect gateway license on each gateway that evaluates HIP. User-ID must be enabled on the source zone or the firewall will not generate HIP Match logs.

HA1 versus HA2, and what does not sync

HA1 is the control link: hellos, heartbeats, HA state, management-plane sync (config, routing, User-ID). HA2 is the data link: session table, forwarding tables, IPSec SAs, ARP. HA2 session traffic is unidirectional except keep-alives — active (or active-primary) to passive (or active-secondary). Enable Session Synchronization so the peer already has the session in its dataplane.

Official exceptions: active/passive peers do not sync ICMP or host sessions. A host session is one terminated on a firewall interface — a ping to the firewall itself, or a GlobalProtect tunnel. Active/active also skips host, multicast, and BFD sessions. Decryption docs add another hard line: the NGFW does not support HA sync for decrypted SSL sessions.

SSL Forward Proxy versus SSL Inbound Inspection

Both create two separate TLS sessions with the firewall as the proxy. Neither can decrypt client-auth or most pinned-certificate flows. Neither HA-syncs the decrypted session.

SSL Forward ProxySSL Inbound Inspection
Direction Internal users → internet External (or any) clients → your server
Certificate Forward Trust / Forward Untrust impersonation of the server cert The real server certificate and private key on the firewall (up to 12 per rule)
Choose when You must inspect outbound TLS and can distribute a trusted CA You publish an internal TLS server and can install its key
HA No sync of decrypted SSL sessions Same — decrypted SSL is not HA-synced
Proof Decryption log; traffic-log flag 0x01000000 (SSL session decrypted) Decryption log session-end reason; Policies → Decryption

5. Do: policy match + session proof

Side A proves what PAN-OS thinks will match. Side B proves what a live session actually did. Side C is the close-out you say so the interviewer knows you will not clear the whole table.

Primary source for Side A: PAN-OS CLI Quick Start, Test Policy Matches, plus Device → Troubleshooting → Security Policy Match.

Side A — Device Troubleshooting (training mock)

Path: Device → Troubleshooting → Security Policy Match. Enter the same source, destination, destination port, and protocol you will later put in the CLI. The output names the first matching rule. Repeat with NAT Policy Match when translation is in the ticket. Official create-a-rule page: this test shows the best rule that matches those IPs and the protocol.

https://203.0.113.1/php/device_troubleshooting.php
Training mock · not live

Device / Troubleshooting / Security Policy Match

Security Policy Match

LAN
Untrust
10.20.30.44
203.0.113.80
443
6 (TCP)
Reset Execute

Training mock · field names from Device → Troubleshooting → Security Policy Match and the official test command. Dummy RFC 5737 addresses only. Lab result: rule LAN-WEB — LAN → Untrust, app ssl, service application-default, action allow.

Side B — CLI: test, then the live session

  1. Test the security rule the official way

    The CLI Quick Start example uses test security-policy-match with source, destination, destination-port, protocol, application, and optionally source-user. Protocol 6 is TCP.

    PAN-OS · Test Policy Matches
    test security-policy-match \
      source 10.20.30.44 \
      destination 203.0.113.80 \
      destination-port 443 \
      protocol 6 \
      application ssl
  2. Test NAT the same tuple

    Device → Troubleshooting also runs a NAT match on those fields. Confirm the NAT rule name and the translated address before you argue about the security destination zone.

  3. Reproduce once, then read the session

    Have the user retry one HTTPS hit. Then:

    PAN-OS · session evidence
    show session all filter source 10.20.30.44 destination 203.0.113.80
    show session id <id>

    Quote rule name / index, application, ingress and egress zones, and the xlate addresses. That pair is how you prove NAT versus security without waving at the GUI.

  4. Confirm the traffic log, not ping

    Monitor → Logs → Traffic. Fields that close a ticket: rule, app, from / to zones, natsaddr / natdaddr, action, session-end reason. Decrypt tickets add Monitor → Logs → Decryption.

Unsafe shortcut

clear session all on a production vsys “to make the new rule take.” That drops every user. Filter the session, or wait for idle timeout, or change the rule so PAN-OS marks the session discard. Do not treat ping as proof of HTTPS, App-ID, HIP, or decryption.

Side C — Close the change window

Say this: I tested with the 5-tuple, I quoted the matching rule and the session id, I did not clear the whole table, I retested the original application. If HIP is in the rule, I also opened Monitor → Logs → HIP Match — that log does not require a security-rule hit.

6. Runtime path after go-live

Once the session exists, production tickets are mostly “why is this still the old path?”

  1. User sends another packet with the same 6-tuple.
  2. PAN-OS finds the C2S or S2C flow and follows the session.
  3. NAT from the session is applied at egress. The rule name on the session does not change because you edited rule 12 in the GUI.
  4. If App-ID shifts (incomplete → ssl → web-browsing), security is consulted again. A new deny can discard a session that started as allow.
  5. If you need the new rule for this flow, wait for age-out, or clear that session id — not clear session all.
  6. On active/passive failover: HA2 must have been syncing sessions. ICMP and host/GP-terminated sessions were never in that table. Decrypted SSL was never in that table.
Ops · proof desk
Operations desk verifying a Palo Alto session and policy match from logs
Close the ticket with a session id and a traffic-log rule name, not with “I moved the policy.”

7. Eight interview scenarios

Each one is a production ticket. Answer with the direct line, then the evidence. Weak answers reboot, clear every session, or confuse NAT with security.

Q1 · Scenario — session factory, rule edited, user still works

You tighten rule 12 from application any to ssl. A long-lived TCP/443 session still flows. A new connection to TCP/22 is denied. Explain both.

Direct answer
Existing sessions follow the fast path. The HTTPS session was built under the old application ANY. New TCP/22 has no session, misses rule 12, and hits interzone-default deny (or the next matching deny).
Why production cares
Change windows that “did nothing” are leftover sessions, not a failed commit.
Weak answer / trap
“PAN-OS caches policies, reboot it.” Or clear session all on the vsys.

Strong framing (say this)

I filter show session all for that source, quote application and rule, then decide whether this packet is new or old.

Evidence to name

show session all filter source / show session id; Monitor → Logs → Traffic; rule hit count.

Q2 · Architecture — zones, intra versus inter

Two servers share zone LAN. A third server is in zone DMZ. No custom rules exist. Who talks?

Direct answer
LAN-to-LAN matches intrazone-default (allow). LAN-to-DMZ matches interzone-default (deny). Zones in a security rule must be the same type (L3 to L3). Destination zone is the egress interface’s zone after the route.
Why production cares
People “open LAN to any” to fix DMZ and accidentally allow lateral movement the default deny was blocking.
Weak answer / trap
“Zones are just interface labels; traffic flows if the route exists.” Routes name the egress zone; they do not allow the session.

Strong framing (say this)

Same zone type, source zone from ingress, dest zone from the route (or the DNAT second lookup). Then first-match.

Evidence to name

Network → Zones; virtual router FIB; default rules at the bottom of Policies → Security.

Q3 · Compare — App-ID versus service

Rule allows application web-browsing, service application-default. The site listens on TCP/8443. The packet is identified as web-browsing. Does it pass?

Direct answer
No. application-default only permits the application on its standard ports (HTTP/80, HTTPS/443 for browsing). 8443 is non-standard. Either change service to a custom TCP/8443 object, or (better) understand why the app is off-port.
Why production cares
Service any is how malware rides 443 and how shadow IT hides on 8443. Best-practice docs want application-default on most allows.
Weak answer / trap
“App-ID saw web-browsing, so the port does not matter.” That is the opposite of application-default.

Strong framing (say this)

App-ID is what. Service is where. I only open a non-default port as a scoped exception.

Evidence to name

Rule Service column; traffic log dport plus app; Objects → Services.

Q4 · Compare — NAT versus security on inbound publish

Public 203.0.113.80 destination-NATs to 10.0.10.20 in zone Servers. Draw the security rule in words.

Direct answer
NAT rule matches Untrust (pre-NAT zone) and original destination 203.0.113.80. Destination NAT forces a second route lookup on 10.0.10.20, so the security destination zone is Servers. Security source/destination addresses stay the original IPs (203.0.113.80 as destination). Translation happens at egress. NAT does not allow the packet.
Why production cares
Writing dest zone Untrust or dest IP 10.0.10.20 is the inbound-publish miss that looks like “NAT is broken.”
Weak answer / trap
“Put the real server IP in the security destination and enable NAT — NAT replaces security.”

Strong framing (say this)

Pre-NAT zone for the NAT rule. Post-NAT dest zone and pre-NAT IPs for security. Two tests: NAT match, then security match.

Evidence to name

Device → Troubleshooting NAT + Security; session xlate vs original; official NAT Policy Rules paragraph on pre-NAT IPs / post-NAT zones.

Q5 · Troubleshoot — first-match hides the intended rule

Rule 5 allows facebook-base. Rule 12 denies social-networking. Users still reach Facebook. What is the first check, not the tenth?

Direct answer
First match wins. Rule 5 already allowed the session. Rule 12 is never evaluated. Move the deny above, or narrow rule 5. Do not add a sixth copy of the deny at the bottom.
Why production cares
App-ID rematch can also move a flow from an early incomplete-allow onto a later deny — or keep it on the early allow if that allow still matches the identified app.
Weak answer / trap
Disable interzone-default. There is no safe “turn off default deny” in production.

Strong framing (say this)

I read the rulebase top-down, then I prove with test security-policy-match using the identified application.

Evidence to name

test security-policy-match application facebook-base …; traffic log rule name; Policies → Security order.

Q6 · Evidence — GlobalProtect HIP never hits

Contractors connect to the gateway. The HIP-enabled allow never increments. HIP objects look correct. First check?

Direct answer
Confirm a GlobalProtect gateway license, Collect HIP Data on the portal agent config, User-ID enabled on the source zone, and the HIP profile (not just the object) attached under Source Device. Then read Monitor → Logs → HIP Match — that log does not require a security-rule match.
Why production cares
Without User-ID on the zone, official docs say the firewall cannot generate HIP Match entries. You will debug the wrong table for an hour.
Weak answer / trap
“HIP is configured on the portal, so security will see it.” Collection is portal/agent; enforcement is gateway security + Source Device.

Strong framing (say this)

Objects filter, profiles Boolean-combine, profiles hang on the rule, User-ID on the zone, HIP Match log first.

Evidence to name

Device → Licenses; Network → Zones → Enable User Identification; Objects → GlobalProtect → HIP Profiles; Monitor → Logs → HIP Match.

Q7 · Architecture — HA failover dropped the interesting sessions

Active/passive pair. Primary loses power. Most TCP users stay up. Pings to a firewall interface drop. Long decrypted HTTPS drops. Why both?

Direct answer
HA2 syncs the session table when Enable Session Synchronization is on. Active/passive does not sync ICMP or host sessions (a session terminated on the firewall, including a GP tunnel). Decrypted SSL sessions are not HA-synced at all. Those clients rebuild.
Why production cares
Sales slides say “stateful HA.” The HA Synchronization reference and the SSL Forward Proxy / Inbound Inspection pages list the exceptions you must say.
Weak answer / trap
“HA2 syncs everything, including decrypted TLS and pings to the floating IP.”

Strong framing (say this)

HA1 = control and config. HA2 = sessions, one-way. I name the three things that do not come across: ICMP/host, GP-terminated, decrypted SSL.

Evidence to name

Device → High Availability → HA Communications (HA1 / HA2, Enable Session Synchronization); show high-availability state; decryption docs “doesn’t support HA sync for decrypted SSL sessions.”

Q8 · Unsafe shortcut — decrypt outbound with the server key

A junior imports a public website’s certificate into an Inbound Inspection rule so “outbound Facebook is inspected.” What do you stop, and what do you build instead?

Direct answer
Inbound Inspection is for traffic to your server and needs your private key. You do not have Facebook’s key. Outbound user-to-internet TLS is SSL Forward Proxy with a Forward Trust CA installed on the clients. No-decrypt rules cover pinned apps and privacy categories.
Why production cares
Wrong decrypt type fails closed or silently fails open. Either way you have no Content-ID on the payload you thought you were scanning.
Weak answer / trap
Turning on decrypt with no exclusion list, or promising HA will keep decrypted sessions alive.

Strong framing (say this)

Forward Proxy outbound, Inbound Inspection for owned servers, exclusions for pin/privacy, decryption log for proof, no decrypted-SSL HA story.

Evidence to name

Policies → Decryption type; Forward Trust cert; Inbound Inspection server cert (max 12); Monitor → Logs → Decryption.

8. Traps and proof checklist

TrapWhat you seeSafer next step
Broader allow above the specific rule Rule 12 never increments, rule 5 does Read top-down; move the specific row up; do not delete interzone-default
Edited rule, old session User still reaches the old app/port Filter show session all; clear that id only if change control allows
Security dest zone is pre-NAT Inbound publish hits interzone-default DNAT second route lookup → post-NAT dest zone; original public IP in dest address
Service any + App-ID allow App on a weird port still passes Set application-default unless you have a scoped custom service
HIP object without profile / User-ID HIP Match empty, rule idle Enable User-ID on the zone; attach the HIP profile on Source Device
“HA is fully stateful” ICMP-to-self, GP tunnel, or decrypted HTTPS dies on failover Quote HA Synchronization + no decrypted-SSL HA sync
Inbound Inspection used for outbound SaaS No decrypt, or handshake fails Forward Proxy + client-trusted CA; no-decrypt for pins
clear session all as a fix Every user drops Filter one 6-tuple; retest the original app, not ping
Proof checklist (pilot / interview close)

Knowledge check

Six judgment items. Each maps to a promise bullet. Check answers, then reset and re-read the traps table if you miss any.

Q1

You change rule 12 from application any to ssl. An existing TCP/443 session still passes. What is the first thing to prove?

Correct: b. Existing sessions stay on the fast path. Re-read mental model + Q1. Clearing the whole table is not the first move.
Q2

Inbound destination NAT publishes 203.0.113.80 to 10.0.10.20 in zone Servers. What belongs on the security rule?

Correct: c. Official NAT Policy Rules: security uses original IPs and post-NAT zones; translation is at egress. Re-read the NAT table + Q4.
Q3

A rule allows web-browsing with service application-default. The user opens HTTP on TCP/8443 and App-ID reports web-browsing. What happens?

Correct: b. Service is the port constraint. Re-read App-ID vs service + Q3.
Q4

Rule 5 allows facebook-base. Rule 12 denies social-networking. A new Facebook session starts. Which statement is true?

Correct: d. Security rules are first-match, top to bottom. Re-read Flow 2 + Q5.
Q5

A HIP-enabled security rule never hits, even though objects exist. What is the first official check?

Correct: b. HIP profiles attach on Source Device; User-ID on the zone is required for HIP Match logs. Re-read HIP + Q6.
Q6

Active/passive failover drops long decrypted HTTPS even though HA2 session sync is enabled. Why is that expected?

Correct: c. SSL Forward Proxy and Inbound Inspection both state no HA sync for decrypted SSL. HA Synchronization adds the ICMP/host exceptions on active/passive. Re-read HA + Q7.

Sources

Related: Session factory · Session flow · Zones, interfaces, VR · Security policy · NAT · SSL decryption · GlobalProtect · HA modes · SP3 architecture · Palo Alto interview hub