ZIA Cloud Firewall • Policy, Identity and DPI • Field Notes
A firewall rule used to describe a building. This one describes a person, and it still applies when they are sitting in an airport.
Where this starts
Three articles in this series already established the ground this one stands on. You Are Not Buying Nine Products set out the two modules, the enforcement order, and the reason two log views can disagree about one transaction. The Last Any Rule and DNS Control Rules covered two of the four tabs inside the firewall module: NAT Control and DNS Control.
This one is about the tab everybody opens first and understands last. Firewall Filtering is where the outbound rulebase actually lives, and it is also where the difference between the two firewall tiers stops being a line on an order form and becomes a constraint on what anybody can write.
Note on scope: this article is descriptive rather than prescriptive. It sets out what each mechanism does and what it depends on. What the right design is for your environment depends on things no article knows. IPS Control belongs to the same licence and is left for another time.
Section one
What the project is actually for
1. Orchestration solves a different problem
The usual case for consolidating an outbound firewall estate starts with drift. Twelve sites, twelve rulebases, identical on the day they were built, and then somebody in one country needed an exception on a Friday afternoon. None of the copies is wrong. Each is locally correct, and collectively they are no longer a policy.
That argument is worth making honestly, because in a well-run estate it does not apply. Panorama, FortiManager, FMC and their equivalents exist precisely to solve it: one policy, authored once, distributed to every device, with divergence detected and reported. Anybody who has built that has already bought the consistency the brochure is selling them, and knows it.
If you already run a management plane, take the consistency argument off the table. It is yours. Five things remain, and not one of them is a management problem..
The enforcement point is still the site. Orchestration distributes the policy. It does not move the policy to where the user is. A person who leaves the building leaves the policy, unless their traffic is carried back to a building that still has one.
Identity stops at the perimeter. In the appliance model, user awareness comes from an IP-to-user mapping fed by domain controller activity and agents that can see it. Inside, it works. Outside, it is empty, or it depends on a VPN being up. Rules about people, applying wherever those people happen to be, is not something a management plane delivers. It is something the architecture delivers or does not.
Capacity does not travel with the rule. Push a policy that adds inspection to more traffic and the rule arrives everywhere in seconds. The headroom to execute it does not. Every site keeps its own ceiling, its own refresh cycle and its own end-of-support date, and the orchestrator has no opinion about any of them.
Feature parity is the floor of the oldest box. A capability is usable across the estate only where every device supports it. Good orchestration surfaces the version skew honestly. It does not remove it.
Correlation is across products, not across sites. A firewall manager centralises firewall logs, which is a real and useful thing, and it is not the same as being able to read a non-web session, the web transaction and the DNS query for the same person at the same moment against one identity. That is section two.
What the cloud model changes is not the expressiveness of any single rule. A 5-tuple is a 5-tuple. It is that location stops being the boundary of the policy and becomes one of its criteria, and that the rule is written against the objects the rest of the policy already uses. The group in a Firewall Filtering rule is the same directory group as the one in a URL Filtering rule. In the appliance model the network rulebase is written in addresses while the web policy is written in people, and reconciling the two is a job nobody owns and everybody assumes somebody else is doing.
One more difference is operational rather than architectural, and it is small enough to state in a paragraph. A change here is saved and activated once, and the way back is a property of the rule rather than a restore procedure: a disabled rule keeps its rule order, the service skips it during evaluation, and enabling it again puts it back exactly where it was. Rule labels, a description field that runs to ten thousand characters, admin rank constraining which rule orders an administrator can occupy, and category search across a paginated policy do the rest. None of it is exciting. All of it is the difference between a rulebase and an archaeology site.
2. Where web and non-web traffic actually land
This one rarely makes the business case and probably should, because it shows up during an incident rather than during a procurement.
A PAC file steers web traffic. Z-Tunnel 1.0 carries web traffic. Everything else the device does — the SSH session, the database client, the update agent talking on a port nobody documented — takes a different road out of the building and is handled by something else, or by nothing at all.
The security consequence is obvious. The operational one is what costs time: the two halves of the same user’s activity end up in two systems, with two clocks and no shared identifier. Reconstructing what happened becomes a correlation exercise across tools, performed by whoever is awake, against logs that disagree about time zones.
Z-Tunnel 2.0 carries all ports and protocols to the same place. That solves the forwarding asymmetry, but it does not by itself guarantee that every flow arrives with usable user and device context; identity still depends on how the traffic is forwarded and authenticated, and section five returns to that.
What it does change is where the evidence lives. The web transaction and the non-web session for the same device at the same moment are recorded inside the same service, and can be investigated through correlated Firewall and Web Insights views, with a more consistent identity, device and time context where that context is available. That does not show well in a proof of concept, and it is the difference between an afternoon and a fortnight when somebody asks what a compromised laptop actually did.
If the estate is still on Z-Tunnel 1.0 or PAC, the firewall policy applies to a fraction of what the device does. There is a switch for it in Advanced Settings, but it changes which rules apply to that traffic, not which traffic arrives. What arrives is decided by the forwarding model.
Section two
What the licence decides
3. What a rule is allowed to name
The two tiers do not differ mainly in how much traffic they can carry or how fast they are. They differ in what a rule is permitted to be about.
| What the rule can say | Standard Cloud Firewall | Advanced Cloud Firewall |
|---|---|---|
| Ports, protocols, network and application services | Yes | Yes |
| Source and destination addresses, countries | Yes | Yes |
| FQDN and wildcard FQDN | Against web traffic | Including non-web, where DNS is parsed |
| Locations, sublocations, remote users | Yes | Yes |
| Users, groups and departments | Not available | Yes |
| Network applications identified by DPI | Not available | Yes |
| Firewall Filtering rules | Ten | The policy in full |
| DNS Control rules, tunnels and application control | 64 rules, no tunnel control | The policy in full |
| Non-web traffic handed to the firewall by the proxy | Not available | Yes |
| Web traffic on non-standard ports handed back to the proxy | Not available | Yes |
| Full logging on Allow rules | Aggregated, roughly every fifteen minutes | Selectable per rule |
| End user notification on a block | Not available | Yes |
| User and group criteria in Forwarding Control | Not available | Yes |
| IPS Control | Not available | Included |
Two rows carry the whole argument. Ten rules is not ten per location or ten per policy area; it is ten for the organisation, alongside the predefined ones. Enough to prove the platform works, not enough to express an enterprise egress policy. Anybody consolidating a real rulebase meets the ceiling before they finish writing the exceptions. And users, groups and departments: without them the finest granularity available is the site, which is the appliance model reproduced in the cloud with the hardware removed and the mental model intact.
A third row deserves more attention than it gets. Full logging on Allow rules. In Standard, allowed flows are aggregated — grouped by user, rule, network service and network application, written roughly every fifteen minutes — while blocked flows are logged in full. That asymmetry is defensible as a default and it is a poor foundation for an investigation, because the question an investigation asks is almost always about something that was allowed. A fifteen-minute bucket is a statistic. A session record is evidence.
One documented exception, so it does not cost anybody a morning: sessions managed by the secure web gateway are always aggregated in the Firewall logs whatever the rule says, because those transactions are logged in detail in the Web logs instead. The record is not missing. It is in the other view.
4. Which half of each promise the licence keeps
Here is the distinction that belongs early in the internal business case and usually appears nowhere in it. Some of what section one described is a property of the platform and of the forwarding model: there is no perimeter hardware either way, configuration is central either way, and remote users are covered as soon as their traffic reaches the service over Z-Tunnel 2.0, whichever tier is licensed. What Standard cannot do is turn any of that into a policy an enterprise can actually express.
Standard can centralise the enforcement point. Advanced is what makes the resulting policy expressive enough to replace the appliance-era model rather than merely host it somewhere else.
| The promise | With Standard | With Advanced |
|---|---|---|
| One console for the whole rulebase | Ten rules, in total | The policy in full |
| Rules coherent with the web policy | Addresses and locations only | The same users and groups the web policy uses |
| Web and non-web on one plane | No handover between proxy and firewall | Handover in both directions |
| Correlated firewall and web investigation | Allowed firewall flows stay aggregated, and web detail stays in its own view | Per-rule full logging on eligible firewall flows, with web transactions still investigated in Web Insights |
| The rule follows the person | The site is the finest grain available | User, group, department, device and posture |
The handover row is worth expanding, because it is the one that makes “coherent with the web policy” concrete rather than rhetorical. The web proxy passes non-web traffic arriving on 443 to the firewall, so an SSH session hiding on a web port is identified and treated as what it is. The firewall identifies web traffic on non-standard ports and hands it back to the proxy for full inspection. That is not integration between two products. It is one engine, and both halves of it are Advanced-only.
The Advanced licence is not a firewall feature pack. It is policy expressiveness across the tenant: without it, user and group criteria also disappear from Forwarding Control.
5. The rule that travels
One rule. Engineering may reach the build servers over SSH. It applies in the head office, where traffic arrives through a GRE or IPSec tunnel. It applies in the branch, which no longer needs a local rulebase saying the same thing in its own dialect. It applies in a hotel room, where Client Connector carries the same identity over Z-Tunnel 2.0. It is not re-implemented anywhere, and there is nothing to remember.
The same criteria set extends the idea further than most deployments use it. Device groups distinguish platforms, isolation traffic and traffic not tunnelled by Client Connector at all. Device trust level applies the posture already being evaluated. Endpoint applications, their tags and their risk level let a rule be about which application on the device opened the flow, currently on Windows endpoints with a recent Client Connector. The direction of travel is consistent: increasingly about who and what, decreasingly about where.
Identity has to survive the journey, and it does not do so automatically. Where the client is not carrying user context, user, group and department criteria require authentication and surrogate IP; without them the service applies organisation and location policy instead, and the rule above quietly becomes a rule about a building again. This is the boundary described in The Location Is Not a User, arriving from the firewall side.
Two prerequisites belong here rather than in a footnote. Firewall control is enabled per location, on the location object, and a rulebase that is not enforced anywhere is a document rather than a policy. And rules written for the Road Warrior location apply natively to Z-Tunnel 2.0; for Z-Tunnel 1.0 and PAC they apply only when the corresponding option in Advanced Settings is enabled.
Section three
Before the first rule
6. Where a firewall rule actually runs
Before writing anything, it is worth recalling where in the sequence a Firewall Filtering rule sits, because almost every surprise in this policy comes from forgetting it. The enforcement order was set out in full in You Are Not Buying Nine Products, and the part that matters here is short.
The firewall module makes the foundational network and transport decision about whether a flow may proceed at all. With Advanced, it can also identify network applications at Layer 7 through deep packet inspection, which section ten covers. What it does not do is replace the transaction-level controls of the web module: which URL, which action inside an application, which file, are all decided afterwards and elsewhere. DNS Control governs a separate transaction again — name resolution, where it traverses the service — which will often precede the application flow without being another stage inside the same session.
An Allow in Firewall Filtering is not a verdict. It is a permission to proceed to the next module, where the decision that matters to the user is usually taken.
This is not an interpretation. It is the reason Zscaler’s own recommended policy exists in the shape it does: a high-order Allow rule carrying HTTP, HTTPS and DNS as network services, so that traffic which will be governed more granularly by the web proxy and by DNS Control passes the Layer 3 and Layer 4 checks and gets judged in the modules that can actually see it. A firewall rulebase that tries to make those decisions by itself is competing with a module that has more information.
Two consequences follow and both return later in this article. A transaction can be allowed by the firewall and blocked by the web module, which is why the two log views can disagree about the same event. And the firewall can record a block it did not make, using an implicit rule that section twelve explains.
7. The rules you did not write
Readers of the DNS article will recognise the shape of this section, and the parallel is deliberate: a tenant in which nobody has ever written a firewall rule is not a tenant with no firewall policy.
| Predefined rule | What to know |
|---|---|
| Default Firewall Filtering Rule | Blocks everything not explicitly allowed. Lowest precedence, cannot be deleted, and only a super admin can change its action, logging or notification. Its criteria are fixed and are not shown. |
| Zscaler Proxy Traffic | Allows all HTTP tunnel traffic, including HTTP CONNECT requests, through the firewall engine without bypassing the proxy engine. Enabled by default at the highest precedence. Zscaler documents that the Client Connector app, from version 2.0 onwards, forwards over DTLS and TLS tunnels and does not use this rule. |
| Block Malicious IPs and Domains | Enabled by default, high rule order, full logging. The destination criteria are not modifiable, so false positives are handled with a higher-ranked custom rule rather than by editing it. |
| Office 365 One Click Rule | Appears once the corresponding One Click option is enabled. Its criteria and action are fixed and it cannot be deleted, though its rule order can be changed. Section eight is about what else comes with it. |
| Block All IPv6 | Created automatically when IPv6 support is enabled at organisation level, with Block/Drop and aggregate logging, at the top order among rules ranked seven. It exists only while IPv6 support is on. |
The rest of the published best practice is short enough to state in full. Keep the default rule enabled, blocking, at the lowest order. Keep Block Malicious IPs and Domains enabled at a very high order. Block ICMP and QUIC with the Block/ICMP action, which for QUIC produces a fast failover to a protocol the proxy can inspect rather than a user watching a spinner. Consider blocking SMB outbound. And write every Allow rule with at least three conditions.
8. Microsoft 365, and the list nobody wants to maintain
Somewhere in every firewall project there is a meeting about Microsoft 365, and it is usually longer than anybody planned. The reason is in Microsoft’s own documentation, and it is worth looking at before deciding how much effort this deserves.
Microsoft 365 URLs and IP address ranges lists dozens of endpoint sets across four service areas, each classified as Optimize, Allow or Default, each with its own FQDNs and wildcard domains, its own IPv4 and IPv6 ranges, and its own ports. The ports are not all 443: Teams media runs on UDP 3478 to 3481, mail clients need 587, 993, 995 and 143, and mail protection needs TCP 25. The data is republished at the start of each month, with new addresses and URLs published thirty days before they go live, and Microsoft reserves the right to update mid-month for support escalations, security incidents or other immediate operational requirements. On top of that the target is moving: Microsoft is consolidating services onto a small set of dedicated domains under the .microsoft top-level domain, and those have to be reachable too.
Written by hand into a firewall rulebase, that is not a configuration task. It is a subscription to somebody else’s release calendar, for the applications the company cannot work without.
The One Click configuration is the alternative, and what it actually does is larger than its name suggests. Enabling one setting creates predefined rules across four separate policies: a Firewall Control rule allowing Microsoft 365 traffic whose destination matches the Microsoft 365 categories, a DNS Control rule allowing DNS traffic destined to Microsoft 365, an SSL/TLS Inspection rule exempting selected Microsoft-published FQDNs and IP ranges, and predefined Cloud App Control rules for selected Microsoft 365 applications, including OneDrive under File Sharing, Microsoft Azure under Hosting Providers and Outlook under Webmail. It also configures authentication exemption for the Microsoft domains without being asked. And Zscaler keeps the mapping current by reading the same REST web service Microsoft tells network vendors to use.
The performance side comes with it rather than being configured separately. DNS optimisation is applied automatically, the destination IP is overridden with the closest CDN endpoint for the application, and resolution is served by the DNS servers in each data centre. Zscaler states that its peering partnership with Microsoft means fewer hops into the Microsoft backbone. The traffic is fingerprinted along the way and lands in a dedicated Microsoft 365 dashboard.
It is worth being precise about what is and is not distinctive here, because this is the part of the story that usually gets oversold. Zscaler participates in the Microsoft 365 Network Provider Program, which identifies partner solutions validated for alignment with Microsoft’s networking principles for Microsoft 365 and which Microsoft has since closed to new network providers; Palo Alto Networks and Cloudflare announced membership of the same programme in 2022 and 2021 respectively. Peering with Microsoft is also more ordinary than the marketing suggests: Microsoft offers optimised public connectivity through Azure Peering Service partners, including ISPs, internet exchanges and cloud interconnect providers.
Peering with Microsoft is not, by itself, the differentiator. Several providers can offer an optimised path into the Microsoft network. The operational differentiator is the maintained mapping of Microsoft 365 destinations across several policy controls at once.
Which is the point for a firewall article. The alternative to One Click is not one rule. It is dozens of destination objects across several policies, reviewed monthly, for SharePoint, OneDrive, Teams, Exchange and everything that authenticates them — and a change window every time Microsoft moves something. That work does not make the company safer. It makes somebody responsible for a spreadsheet.
What it costs belongs in the same section as what it saves. The Microsoft-Recommended configuration exempts selected Microsoft 365 traffic from SSL/TLS Inspection, and by default that exemption also bypasses the other web policies: Zscaler’s own example is a URL Filtering rule written to block OneDrive or SharePoint, which does not apply. On the predefined SSL/TLS rule, however, administrators can choose between Bypass Other Policies and Evaluate Other Policies under the Do Not Inspect action. With the latter selected, URL Filtering, Cloud App Control and related controls can still match on the undecrypted traffic, but enforcement is limited by the context available without decryption — typically the domain rather than the complete URL or the action behind it. A rule intended to block a specific Microsoft 365 service therefore has to be tested against the selected evaluation mode. Cascading to URL Filtering does not apply directly to the predefined Cloud App Control rules; where it is required, Zscaler documents creating a higher-ranked custom rule above them. And Zscaler does not publish the complete list of destinations it exempts from inspection.
Two limits sit alongside that and are worth stating, because they cut in opposite directions. The mapping is deliberately partial: Zscaler documents mapping several but not all Microsoft address ranges and domains, for most rather than all Microsoft 365 applications. And endpoints Microsoft classifies as Default are excluded from One Click precisely so they can be treated as ordinary destinations and receive whatever controls the organisation wants to apply to them. The exemption is narrower than “Microsoft 365 is exempt”, and the coverage is narrower than “Microsoft 365 is handled”. Both sentences need testing against a real tenant before either goes into a design document.
Underneath all of that sits a decision worth naming even though this article is not the place to argue it: a checkbox that defines what counts as Microsoft 365, and removes it from inspection, is an act of trust in a vendor’s judgement about a list it does not publish. That is a reasonable trade for most organisations and a real one. It deserves its own article, and it will get one.
9. Anatomy of a rule
Criteria are grouped into five tabs. The relationship between tabs is AND, while relationships inside them vary: users, groups and departments are alternatives to each other, and so are the source and destination selectors. An empty field is not a narrow condition, it is an absent one, which is the commonest way a rule turns out to match far more than its author intended.
| Action | What the client experiences |
|---|---|
| Allow | The packets pass, to whatever comes next in the sequence. |
| Block/Drop | Silence. The packets are dropped and nothing is returned. |
| Block/ICMP | The packets are dropped and an ICMP unreachable message is returned, so the client fails quickly instead of waiting. |
| Block/Reset | For TCP, a reset, so the connection ends immediately. For anything else, the same as Block/Drop. |
| Capture | Stores the blocked traffic as PCAP for later analysis. Available on Block actions, where Traffic Capture is enabled. |
The choice between silence and a signal is the same decision that appears in the DNS article, and it has the same consequence. A silent block does not generate a report of being blocked. It generates a ticket saying an application is slow or will not start. End user notification exists for firewall blocks and closes part of that gap, on Windows endpoints with a recent Client Connector over Z-Tunnel 2.0, and it is one more capability behind the Advanced licence.
One boundary before writing a destination-based rule: the firewall examines the host portion of a URL and ignores the path. A rule blocking a category containing a specific page blocks everything bound for that host. The path lives in the web module, and so does any rule that needs it.
Section four
Deep packet inspection
10. A question that costs packets
Everything so far has been about what a rule can say. This section is about what one kind of rule costs to answer, and it is the part of the firewall that behaves least like the appliance it replaced. Network application criteria are an Advanced capability, so most of what follows is Advanced territory too.
Network services and application services are matched on the first packet. Ports and protocols are stated in the header; there is nothing to work out, and the policy action follows before anything reaches the destination.
Network applications are different. They are identified by deep packet inspection, and the documentation is unusually direct about the mechanics: DPI often requires more than one packet of traffic to be allowed and assessed before it can determine what the traffic is.
Read that twice. The packets that pay for the answer may already have left.
The window is bounded, and the bound is described in the packet-count filters Zscaler exposes in Firewall Insights Logs: Filters, where identification is characterised as occurring within the early packets of a flow — commonly between the second and the sixth, and before the thirteenth is assessed. The exposure is small, finite and perfectly real. A first-packet rule decides, then acts. A network application rule forwards, then decides.
11. Rank does not only decide which rule wins
In a 5-tuple rulebase, rule order decides which rule matches. Here it does that too, and it also decides how much of the organisation’s traffic is opened up for inspection at all.
Take the example discussed on Zscaler’s own community, which states the problem as clearly as it can be stated. Rule one: allow the network application SSH, no other condition. It reads like a narrow permission. It is not. Because the rule is ranked first and carries no other criterion, every flow arriving at the service becomes a candidate for identification, each is examined until DPI either identifies the application or gives up, and each is held open while that happens. The rules underneath it in that example are first-packet decisions — the kind a block on Telnet or an allow on HTTP, HTTPS and DNS would be — and every one of them now waits behind a decision that cannot be taken on the first packet.
The published guidance follows directly, and it comes down to two principles. Never a network application on its own: combine it with at least one other condition — a user, a group, a network service, a source or destination address. Combining it with a network service is the most economical correction available, because it confines identification to a specific port, and the broader best practice of three conditions on any Allow rule is the general form of the same idea. And never a network application high: rules carrying them belong as low as the intention allows, close to the default block, so everything decidable on the first packet is decided first.
This is a security property, not a performance tuning exercise. If a block rule that could have matched on packet one sits below an application rule, the traffic it was meant to stop is forwarded for several packets before anybody says no. The exposure is bounded, but bounded does not mean irrelevant. For a conventional session it may be operationally insignificant; for a protocol in which the opening packets carry a command, a credential, a token or a compact payload, those packets may already be the event the blocking rule was written to prevent.
12. When nothing is identified
Two behaviours complete the picture, and engineers usually assume both incorrectly.
The verdict never becomes “unknown”. Where DPI cannot determine the application after examining sufficient data, the firewall module matches the assessed packets to a policy action based on the rule evaluation at whichever protocol level it can still see: the base protocol, TCP or UDP; the encryption protocol, SSL or TLS; or the high-level protocol, HTTP or HTTPS. Unidentified traffic does not fall through to the default rule as an unclassified flow. It is judged on what a rule can still match.
Two log lines are worth teaching to whoever reads the logs first. Allow due to insufficient app data appears when a session terminates unexpectedly, without a graceful close, before DPI could determine the application, and some packets had already been forwarded. It assumes no higher-ranked rule had already blocked the underlying protocol. It is not a defect and not a bypass; it is the visible residue of the inspection window, and a large volume of it is a finding about rule construction rather than about the traffic.
Blocked by Web Proxy Policy is stranger and more useful, and it is section six arriving from the other direction. It is an implicit rule the firewall module uses to record a block that no firewall rule made: the DPI session ended because a web policy, URL Filtering or Cloud App Control, stopped the transaction. Those sessions are logged individually with Block/Drop in Firewall Insights, while the detail of what happened lives in Web Insights. A transaction can appear allowed in one view and blocked in the other, and here is the mirror image of that — a firewall log entry for a decision the firewall did not take. Knowing the implicit rule exists is what stops somebody hunting for the rule that produced it.
One documented behaviour that will eventually cost somebody an afternoon. When RTSP operates in its standard, non-interleaved mode, it dynamically creates RTP and RTCP connections, and where RTSP is allowed those connections are allowed automatically — even where a rule blocks RTP and RTCP as network applications. In interleaved mode this does not happen. It is a small note in the documentation and the clearest example of a rule that does not do what it plainly says.
Final thoughts
The consolidation argument is usually made about hardware, and if you already run a management plane, most of it has already been made and won. What remains is not a management problem: the enforcement point, the reach of identity, the capacity behind each device, the feature floor imposed by the oldest platform in the estate, and the number of systems that have to be correlated before anybody can say what a device actually did.
Standard buys the platform. Advanced buys the model. With ten rules and no identity criteria the outbound policy is still a policy about sites, and the appliance-era mental model has been carried across intact into a service designed to replace it. With the policy in full and user awareness, the rule stops describing a building and starts describing a person, and it keeps applying when that person is somewhere nobody planned for.
Deep packet inspection is where that power has a bill attached, and the bill is paid in packets that have already left. A network application rule is not a filter. It is a question, and the answer costs traffic. Rank it accordingly, never let it stand alone, and read the two log lines it produces as descriptions of the mechanism rather than as anomalies.
Everything else is the discipline this series keeps arriving at from different directions: every exception has an owner, every rule has a reason somebody can still read next year, and the log is the only place where the design and reality are forced to agree.
Sources and references
- Zscaler Help — Understanding Firewall Capabilities
- Zscaler Help — About Firewall Filtering
- Zscaler Help — Configuring the Firewall Filtering Policy
- Zscaler Help — Editing the Default Firewall Filtering Rule
- Zscaler Help — Understanding Predefined Firewall Filtering Rules
- Zscaler Help — About Microsoft One Click Options
- Zscaler Help — Recommended Firewall Control Policy
- Zscaler Help — Best Practices for Firewall Control Policy
- Zscaler Help — About Network Applications
- Zscaler Help — About Forwarding Control
- Zscaler Help — Enabling the Firewall for Locations
- Zscaler Help — Firewall HTTP Tunnel Connectivity
- Zscaler Help — Configuring Advanced Settings
- Zscaler Help — Firewall Insights Logs: Filters
- Zscaler — Cloud Firewall Deployment and Operations Guide
- Zscaler Zenith Community — Best practice for CFW rules with network application (DPI) detections as condition
- Microsoft Learn — Microsoft 365 URLs and IP address ranges
- Microsoft Learn — Microsoft 365 Network Provider Program
- Microsoft Learn — Azure Peering Service overview
- Palo Alto Networks — Prisma Access joins the Microsoft 365 Networking Partner Program (January 2022)
- Cloudflare — Cloudflare joins the Microsoft 365 Networking Partner Program (December 2021)
- Zero Trust Navigator — You Are Not Buying Nine Products. You Are Configuring One Decision.
- Zero Trust Navigator — The Last Any Rule: Bringing DNS Under Inspection
- Zero Trust Navigator — DNS Control Rules: The Policy That Runs First
- Zero Trust Navigator — The Location Is Not a User: How ZIA Decides Who Sent the Traffic
- Figures 1 to 9: original Zero Trust Navigator diagrams.
Behaviour described here follows Zscaler’s and Microsoft’s published documentation except where explicitly noted otherwise. Licensing boundaries move with the packaging, partner programmes change, and product behaviour changes; verify against current documentation and against your own entitlement before relying on any of it in a design.