Overview
Posture checks enable zero-trust security by continuously validating device security posture. Only devices that pass all configured checks can access protected resources.Posture checks are evaluated in real-time. If a device falls out of compliance, network access is automatically restricted.
Available Posture Check Types
NetBird supports five types of posture checks:NetBird Version
Ensure peers run a minimum NetBird client version
OS Version
Require minimum operating system or kernel versions
Geolocation
Allow or deny access based on geographic location
Peer Network Range
Restrict based on the peer’s local network address
Process Running
Verify specific security software is running
NetBird Version Check
Ensure all peers are running a minimum version of the NetBird client.Configuration
Use Cases
- Enforce security patches and bug fixes
- Ensure compatibility with new features
- Phase out deprecated client versions
- Maintain consistent security capabilities
OS Version Check
Require minimum operating system or kernel versions across different platforms.Supported Operating Systems
- Android
- iOS
- macOS
- Linux
- Windows
Multi-Platform Configuration
You can specify requirements for multiple platforms in a single check:At least one OS must be specified. Peers running operating systems not listed in the check will be denied access.
Geolocation Check
Control access based on the peer’s geographic location using country codes and city names.Configuration
Actions
- Allow
- Deny
Allow action grants access only to peers in specified locations:
- Peers in listed locations: Access granted
- Peers in other locations: Access denied
Location Specification
Country Code (required):- 2-letter ISO 3166-1 alpha-2 format
- Examples:
US,GB,DE,JP,AU
- Commonly used English city name
- When specified, both country and city must match
- Example:
"CountryCode": "US", "CityName": "New York"
Peer Network Range Check
Restrict access based on the peer’s local network address ranges.Configuration
Actions
- Allow
- Deny
Grant access only to peers on specified networks:
- Peer on 192.168.1.x: Access granted
- Peer on other networks: Access denied
Use Cases
- Require VPN or office network connectivity
- Block access from public WiFi networks
- Enforce network segmentation policies
- Prevent access from untrusted network ranges
Network ranges are specified using CIDR notation (e.g.,
192.168.1.0/24). The check compares the peer’s local network addresses against the masked prefixes.Process Check
Verify that specific security software or processes are running on the peer device.Configuration
Process Specification
Each process can have platform-specific paths: | Platform | Field | Example | |----------|-------|---------|| | Linux |LinuxPath | /usr/sbin/security-agent |
| macOS | MacPath | /Library/Application Support/Security/agent |
| Windows | WindowsPath | C:\\Program Files\\Security\\agent.exe |
Multiple Processes
Require multiple security tools to be running:All specified processes must be running for the check to pass. At least one platform path must be specified per process.
Combining Multiple Checks
Create comprehensive security policies by combining multiple posture check types:Managing Posture Checks
Creating a Posture Check
Validation Rules
Posture checks must meet these requirements:- Name: Cannot be empty
- Checks: At least one check type must be defined
- Version formats: Must be valid semantic versions
- Country codes: Must be 2-letter ISO 3166-1 alpha-2 format
- Network ranges: Must be valid CIDR notation
- Process paths: At least one platform path required per process
Troubleshooting
Peer Failing Unexpected Checks
Peer Failing Unexpected Checks
Diagnosis:
- Check peer metadata to see reported values
- Review peer logs for check evaluation details
- Verify check configuration matches intent
- Outdated peer information
- Incorrect version format or comparison
- Location data not available
- Process path mismatch
Geolocation Not Working
Geolocation Not Working
Possible issues:
- Peer location not being determined
- GeoIP database out of date
- Peer behind VPN/proxy obscuring location
- Verify peer has valid external IP
- Update GeoIP database if self-hosted
- Consider network range checks instead for VPN users
Process Check Always Failing
Process Check Always Failing
Verification steps:
- Check exact process path on target system
- Ensure process is actually running
- Verify path formatting (especially Windows backslashes)
- Check file permissions for NetBird to query processes
- Linux: Process must be visible in peer’s process list
- macOS: May require additional permissions for process enumeration
- Windows: Ensure correct case and escaped backslashes
Best Practices
Next Steps
Access Policies
Apply posture checks to network policies
Quantum Resistance
Enable post-quantum cryptography