Posture Checks

A posture check is a named set of conditions a device must meet: a minimum client version, an allowed country, office hours, an encrypted disk, a running security agent, and more. On its own it does nothing. It acts where you attach it, and blocks the device there while it fails:

  • Policies: the device loses the policy's access. See Policies.
  • Profiles: an Enterprise Workspace blurs its work apps, and a domain setting of the browser extension or Enterprise Browser stops applying. See Profiles.
  • Published applications: the user is refused at the application's address. See Published Applications.

Edge filters and guardrails carry no posture checks.

Manage posture checks under Endpoint > Posture Checks.

How it works

  1. You create a posture check with one or more check cards turned on.
  2. You attach it to a policy, a profile's workspace or domain setting, or a published application, and choose whether All attached checks must pass or Any one.
  3. The device's Netzilo client evaluates the checks against what it observes on the device and reports the result. A check that fails blocks the device where the check is attached, and the failure is recorded under Activity > Events.
  4. A client that meets a condition it cannot evaluate, because it is older than the condition, treats it as failed.

The Security Score indicators on a peer's page show the signals most checks read. Use them to predict a check's result before you attach it; see Peers.

The posture checks list

The Posture Checks page under Endpoint, listing six posture checks with an icon per configured check and, under Used by, the number of policies, profiles and applications using each one with Go to Policies, Go to Profiles and Go to Applications buttons, and the Add Posture Check button

ColumnWhat it shows
NameThe posture check's name, with a green dot when something uses it.
ChecksAn icon for each configured check card. Hover to see its settings.
Used byHow many Policies, Profiles and Applications use the check, each with a Go to button.

Filter with Active and All, or search by name and description. A check that is in use cannot be deleted; remove it from every policy, profile and application first.

Create a posture check

  1. Click Add Posture Check. In a policy, profile or application, you can also click New Posture Check on its Posture Checks tab.

    The Create Posture Check dialog on the Checks tab, listing the eight check cards Netzilo Client Version, Country & Region, Date & Time, Peer Network Range, Operating System, Peer Domain Membership, Endpoint Security Settings and Advanced Endpoint Settings, all OFF

  2. On the Checks tab, click a card, configure it and click Save. Its pill turns ON. Turn on as many cards as you need. Clicking ON asks to disable the check and discards its settings.

  3. Click Continue. On Name & Description, enter Name of the Posture Check, for example Managed Windows laptops, and an optional description.

  4. Click Create Posture Check.

Every card that is turned on must pass for the posture check to pass.

Check types

Netzilo Client Version Check

Allows only devices whose Netzilo client is at least the version you enter under Minimum required version, for example 5.1.0. Pair it with the Version column of the peers list, which marks clients that have an update available.

The Netzilo Client Version dialog with an empty Minimum required version field

Geolocation (Country & Region) Check

Judges the location of the device's public IP address. Choose Allow or Block and add countries, optionally narrowed to a city, with Add Location.

  • An Allow list blocks every other location.
  • A Block list allows every other location.

The lookup uses the public IP address, so devices behind another VPN or a mobile carrier can appear somewhere unexpected. On a self-hosted server, this check needs the GeoLite2 database; see Geolocation database.

The Country & Region dialog with Allow selected and an Add Location button

The Country & Region dialog with Allow selected and one location row with a country and a region chosen

Date & Time Check

Allows access only within the time windows you define. Click Add Rule, and in Date & Time Settings set Start Time, End Time and TimeZone, choose Daily, Weekly (pick the weekdays) or Monthly (pick the months), and optionally a Start date and an End date. Rules are evaluated in the rule's own time zone.

The Date & Time check with its Add Rule button

The Date & Time Settings dialog with Start Time, End Time, TimeZone, the Daily, Weekly and Monthly choice, and Start date and End date

Operating System Check

Judges the operating system and its version. Each tab, Linux, Windows, macOS, iOS and Android, has Allow or Block. With Allow, choose All versions or Equal or greater than a named version such as Windows 11 or macOS Sonoma, or turn on Use custom version number.

  • An operating system set to Block is refused.
  • Only the operating systems the check allows pass. Any other, including one the check does not recognise, is refused.
  • For Linux and Windows the kernel version is compared. Examples: Windows 10 22H2 is 10.0.19045, Windows 11 23H2 is 10.0.22631, Windows Server 2022 is 10.0.20348, and a Linux kernel is a number such as 6.1. For macOS, iOS and Android, the system version is compared, such as 14.3 for macOS Sonoma.

The Operating System dialog on the Linux tab, with Allow selected and All versions chosen

Peer Network Range Check

Judges the device's local and public IP ranges. Choose Allow or Block and add ranges such as 172.16.0.0/16 with Add Network Range. For example, block a routing peer's access while it is in the office network.

The Peer Network Range dialog with Allow selected and an Add Network Range button

The Peer Network Range dialog with Allow selected, one empty range row and an Add Network Range button

Peer Domain Membership Check

Judges the directory domain a Windows device is joined to. Choose Allow or Block and add domains with Add Domain. Enter the short NetBIOS name, such as CORP, not the full domain name. Devices joined only to Entra ID report no domain.

The Peer Domain Membership dialog with Allow selected and an Add Domain button

The Peer Domain Membership dialog with Allow selected, one empty domain row and an Add Domain button

Endpoint Security Settings Check

Requires device security settings. Every item you turn on must pass.

The Endpoint Security Settings dialog listing Antivirus, Firewall, Disk Encryption, Screen Lock and OS Updates, each with its operating system icons and an OFF pill

ItemRequiresPlatforms and what is read
AntivirusAn active antivirus.Windows: the Microsoft Defender state, with Windows Security Center as fallback. Linux: the ClamAV daemon is running. macOS: check the peer page's indicator on a known-good Mac before you rely on it.
FirewallAn active firewall.Windows and macOS. On Windows, a state enforced by Group Policy may not be reflected.
Disk EncryptionAn encrypted system disk.Windows: BitLocker on C: with protection on. Linux and macOS.
Screen LockA screen lock with a password.Windows: the user's screensaver settings. Linux: GNOME and KDE. macOS.
OS UpdatesAn up-to-date operating system.Linux and macOS. On Windows the value does not reflect Windows Update; use the Operating System check with a kernel build instead.

Because each item reads a different source on each system, put per-system requirements in separate posture checks and attach them with Any evaluation.

Advanced Endpoint Settings Check

Requires the presence or absence of indicators on the device. Every item you turn on must pass. The icons next to each item show the systems it applies to.

The Advanced Endpoint Settings dialog listing Enterprise Workspace, Enterprise Browser, Netzilo Gateway, Netzilo Extension, Virtual Device, Device Integrity, Registry Key & Value, File & Folder and Running Processes, each with its operating system icons and an OFF pill

ItemRequiresNotes
Enterprise WorkspaceThe device is using the Enterprise Workspace.True only on a workspace's own peer, <host>-WORKSPACE, never on the ordinary Windows host. On macOS it means a Mac enrolled in MDM. Never true on Linux.
Enterprise BrowserThe device is using the Enterprise Browser.True only on the Enterprise Browser's own peer, <host>-BROWSER.
Netzilo GatewayThe device is a browser session through a Netzilo gateway.True only for clientless access sessions. Every device with the Netzilo client fails it.
Netzilo ExtensionThe device carries the Netzilo browser extension.Always true for desktop clients on Windows, macOS and Linux, for the Enterprise Browser and for gateway browser sessions. Never true on iOS and Android or for reverse-proxy peers.
Virtual DeviceThe device is not a virtual machine.On Windows it also fires on physical PCs with Memory Integrity, Hyper-V or WSL2, and in any RDP session.
Device IntegrityThe device is not cracked, rooted, jailbroken or debugged.Windows, Linux, macOS, iOS and Android.
Registry Key & ValueRegistry keys exist.Windows. Choose a hive, a key and a value name; wildcards work in the key path and value name. Only existence is checked, not the value's data. HKCU is the service account's hive, not the signed-in user's.
File & FolderFiles or folders exist, optionally with content matching a regular expression.Windows, Linux and macOS. Paths per system, with wildcards.
Running ProcessesProcesses are running.Windows, Linux and macOS. Executable paths per system.

For Registry Key & Value, File & Folder and Running Processes, choose whether all listed entries or any one must be found.

Netzilo Gateway

Use this item to write a policy that admits browser users of clientless access and nobody else.

  • Turn on nothing else in the same posture check. Every other item fails for a browser session, so the check would admit nobody.
  • Attach it to network policies only. On a profile's domain setting or a workspace, the device's own client evaluates it and blocks itself.
  • It never passes at a published application's address; do not add it to an application's posture checks.

A peer that passes this item shows the Netzilo Gateway indicator on its page.

Netzilo Extension

On a published application, this item asks the extension in the user's browser directly. When it is the only item the user fails, the sign-in dialog shows Additional Protection Required and offers to add the extension, or to connect an installed one to this server.

Older clients

Clients before version 5.0.455 receive a posture check that contains the Netzilo Gateway or Netzilo Extension item as a client version requirement, and fail it with the client version reason. Clients 5.0.464 and later treat any condition they cannot evaluate as failed. Upgrade clients between 5.0.455 and 5.0.463.

Registry Key & Value, File & Folder, Running Processes

Click Add Key or Add Path to add entries. Paths accept wildcards, such as C:\Program Files\EDR\*. File paths expand with the system account's environment.

The Registry Key & Value dialog with the All or Any choice, one key row with the hive HKLM and empty key and value fields, and an Add Key button

The File & Folder dialog with the All or Any choice, tabs for Windows, macOS and Linux, one row with empty path and content fields, and an Add Path button

The Running Processes dialog with the All or Any choice, tabs for Windows, macOS and Linux, one empty path row, and an Add Path button

Attach a posture check

To a policy

  1. Go to Network > Policies and open the policy.

    The Policies page under Network listing six policies with their Active switch, sources, destinations, rules and Add Posture Check buttons

  2. Select the Posture Checks tab.

    The Posture Checks tab of the Update Access Control Policy dialog with no posture check yet, and the Browse Checks and New Posture Check buttons

  3. Click Browse Checks, select the posture checks and click Add Posture Checks (n).

    The posture check browser with one posture check selected and the Add Posture Checks (1) button

  4. Under Posture Check Evaluation, choose All or Any.

  5. Click Save Changes.

    The Posture Checks tab of the Update Access Control Policy dialog with one posture check assigned

Posture checks on a policy are evaluated against the policy's source peers.

To a profile

Open the profile under Endpoint > Profiles. Open the Enterprise Workspace card, or a domain's Domain Settings in the Enterprise Browser or Enterprise Browser Extension card, and use its Posture Checks tab. See Enterprise Workspace and Browser Extension.

To a published application

Open the application under Network > Applications and use its Posture Checks tab. These checks are judged when the user signs in at the application's address, against the device the browser runs on: the browser and its connection, the Netzilo extension or Enterprise Browser in use, and the posture the Netzilo client on the device reports. The Enterprise Workspace item there reads the client inside the workspace, and the Enterprise Browser item reads the browser's User-Agent. Items a device without the client cannot satisfy fail for it. See Posture checks on the application.

Browser sessions and reverse-proxy peers

Clientless-access sessions (vp-<n>-PROXY) and published-application tunnels (vp-<n>-RPROXY) are not managed devices:

  • Operating System reads the system the browser reports. Browsers report macOS as 10.15.7 and Windows 11 as 10.0, so minimum versions above those fail.
  • Netzilo Client Version reads the browser extension's version for a browser session.
  • Country & Region and Peer Network Range read the browser's public IP address.
  • Every endpoint item, such as the security settings, Workspace, Browser, Virtual Device, Device Integrity, registry, files, processes and domain, fails with the reason Endpoint checks cannot be satisfied by a browser session.

Give browser users their own policy without endpoint checks. See Clientless Access.

Failure reasons

When a check fails on a policy, Activity > Events records Peer access blocked (peer.access.blocked) with the posture check, the policy and a reason. A published application records published_app.access_denied and shows the reason to the user. Profiles record workspace.posture.check or browser.posture.check.

ReasonFailing item
An antivirus is not active and runningAntivirus
A firewall is not active and runningFirewall
Disk encryption is not enabledDisk Encryption
A screenlock with a password is not enabledScreen Lock
Peer operating system is not updatedOS Updates
Peer is not using Netzilo Enterprise WorkspaceEnterprise Workspace
Peer is not using Netzilo Enterprise BrowserEnterprise Browser
Peer is not a Netzilo gateway sessionNetzilo Gateway
Peer is not using the Netzilo extensionNetzilo Extension
Peer is using a virtual deviceVirtual Device
Peer's device integrity is breachedDevice Integrity
A required registry key is not foundRegistry Key & Value
A required file or folder is not foundFile & Folder
A required process is not runningRunning Processes
Access not allowed during this time periodDate & Time
Endpoint checks cannot be satisfied by a browser sessionAny endpoint item, for a browser session

The event is written only while a destination peer is connected, so a missing event does not prove that nothing was blocked. The device's own log records every failure.

Creating, changing and deleting posture checks is recorded as posture.check.created, posture.check.updated and posture.check.deleted.

Troubleshooting

Users are blocked unexpectedly. Look for Peer access blocked under Activity > Events: it names the posture check, the policy and the reason. Fix the device setting, or change the check.

A check has no effect. It is not attached: the Used by column reads No Policies, No Profiles and No Applications. Or another policy, such as the default one, still allows the same access.

Every ordinary device lost access. The check uses the Enterprise Workspace, Enterprise Browser or Netzilo Gateway item on a policy for ordinary devices. Move the item to a check attached only to the matching peers.

An Operating System check blocks every Windows device. The version was entered as a marketing version, such as 11, instead of a kernel build. Use 10.0.22000 or later, or pick the named version.

A Country & Region check blocks everyone on a self-hosted server. The server has no GeoLite2 database. See Geolocation database.

A compliant device fails Endpoint Security Settings. Open the peer's page and check which indicator is off, then read what that item checks in the table above.

A Date & Time check is off by hours. Rules are evaluated in the rule's time zone. Set the TimeZone explicitly.

Old clients fail a check with the Netzilo Gateway or Netzilo Extension item. Upgrade the clients, or keep such checks on policies meant for browser sessions only.

A posture check cannot be deleted. It is in use. The Used by column shows where; remove it there first.

The last button reads "Upgrade Plan". The account is on the Free plan.