Skip to content

Commit

Permalink
Add Posture Checks to docs (#250)
Browse files Browse the repository at this point in the history
* Add Posture Checks to docs

* Fix Posture Checks images path

* merge documentation into current posture checks docs

---------

Co-authored-by: Maycon Santos <mlsmaycon@gmail.com>
  • Loading branch information
damasosanoja and mlsmaycon authored Dec 22, 2024
1 parent b7b3c52 commit 3a82125
Show file tree
Hide file tree
Showing 25 changed files with 101 additions and 88 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@


# Connecting from the office
A typical scenario administrators have is accessing their office networks remotely. With [Network routes](https://docs.netbird.io/how-to/routing-traffic-to-private-networks), NetBird makes this easy. Still, administrators often want to avoid routing their users’ traffic via NetBird when they are in the office. To solve this, administrators can leverage the power of [Posture Checks](https://docs.netbird.io/how-to/manage-posture-checks)and create policies that allow connection to the routing peers only if they are outside the office by using a [Peer Network Range](/how-to/manage-posture-checks#peer-network-range-check) posture check with a block action.
A typical scenario administrators have is accessing their office networks remotely. With [Network routes](https://docs.netbird.io/how-to/routing-traffic-to-private-networks), NetBird makes this easy. Still, administrators often want to avoid routing their users’ traffic via NetBird when they are in the office.
To solve this, administrators can leverage the power of [Posture Checks](https://docs.netbird.io/how-to/manage-posture-checks)and create policies that allow connection to the routing peers only if they are outside the office by using
a [Peer Network Range](/how-to/manage-posture-checks#peer-network-range) posture check with a block action.

## Example
In the following scenario, our office network is on the subnet `192.168.1.0/24`. Let's assume all users will be part of the group `route-users`, and the routing peer for our office will be inside the group `route-nodes`.
Expand Down
167 changes: 80 additions & 87 deletions src/pages/how-to/manage-posture-checks.mdx
Original file line number Diff line number Diff line change
@@ -1,51 +1,77 @@
# Manage access with posture checks
# NetBird Posture Checks: Access Control for Modern Organizations

Today, organizations face the critical challenge of maintaining robust access control across their IT infrastructure. As networks grow more complex and threats become increasingly sophisticated, traditional access control methods often fall short, leaving businesses vulnerable to security breaches and operational inefficiencies.

NetBird helps administrators control who can access their network by creating policies. These policies decide which groups of peers are allowed to interact with one another, based on criteria like port, protocol and traffic direction.
Key challenges include:

Administrators can further refine access control through posture checks to enhance their existing policies. For example, they can verify whether a peer is using a specified version of NetBird, has the necessary version of an operating system, and is located within a permitted location before allowing it to join the network.
* Dynamic infrastructures
* Need for granular control
* Scalability issues

By adding these posture checks to the policies, NetBird makes sure only devices that meet certain security requirements can access the network. This helps keep the network safe and follows the Zero Trust approach, which means not trusting any device by default.
NetBird's Posture Checks feature offers:

<div className="videowrapper">
<iframe src="https://www.youtube.com/embed/-KlJUBuZrpo" allow="fullscreen;"></iframe>
* Adaptive, context-aware access
* Highly granular policies
* Effortless scalability

This solution enhances security and efficiency by:

* Reducing unauthorized access risk
* Automating policy-based control
* Enabling business agility

Let's delve into the details of how [NetBird's Posture Checks](https://docs.netbird.io/how-to/manage-posture-checks) feature transforms access control, making it more secure, efficient, and adaptable for modern enterprises.

## Understanding NetBird Posture Checks

Posture Checks is a security feature that enhances network protection by implementing automated assessments of a device's security status before granting network access, thus ensuring that only compliant devices can access your network resources.

In this regard, NetBird posture checks verify various aspects of a connecting device, offering granular control over network access. These checks include **verifying the NetBird client version**, allowing you to restrict access to peers with specific versions of the client software. Additionally, you can implement **geographical restrictions** based on country or region, giving you control over where connections can originate from.

The feature also allows for network-level restrictions by enabling you to **allow or block specific peer network ranges**. Furthermore, you can set constraints based on the operating system of the connecting device, **ensuring that only approved OS versions can gain access**. For an even more detailed level of control, Posture Checks can examine the running processes on a peer device, **allowing or denying access based on the presence of specific applications or services**.

By using these diverse checking capabilities, NetBird empowers you to create a robust and finely-tuned security posture for your network, significantly reducing the risk of unauthorized access and potential security breaches.

## Setting Up Posture Checks

Setting up posture checks in NetBird is straightforward, you can follow the example in the video below:
<div className="videowrapperadjusted" >
<iframe src="https://www.youtube.com/embed/-KlJUBuZrpo" allow="fullscreen;"></iframe>
</div>

## Concepts
Or follow the guide with other examples below:

Log in to your NetBird dashboard and navigate to `Access Control` > `Posture Checks` in the left menu. Click `Create Posture Check` or edit an existing one.

While we plan to expand the range of posture checks, these are the checks currently available for you to enforce:
![NetBird Posture Checks](/docs-static/img/how-to-guides/posture-checks/posture-checks-01.png)

- NetBird Client Version Check
- Country & Region Check
- Operating System Check
- Peer Network Range Check
- Process Check
A pop-up window will open with two tabs: `Checks` and `Name & Description`.

<p>
<img src="/docs-static/img/how-to-guides/supported-posture-checks-list.png" alt="high-level-dia" className="imagewrapper"/>
</p>
![Create Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-02.png)

### NetBird Client Version Check
From here, you can [manage access with posture checks](https://docs.netbird.io/how-to/manage-posture-checks) based on several aspects:

The NetBird client version check ensures that only devices with the specified version of NetBird installed can connect to the network, preventing security risks from outdated or incompatible versions.
#### NetBird Client Version
Restrict access to peers with specific NetBird client versions, thus ensuring that all devices connecting to the network use up-to-date, secure client software.

### Geolocation (Country & Region) Check
![NetBird Client Version Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-03.png)

The geolocation check examines the connecting device's geographical location based on its IP address.
This check allows to either block or allow access from certain geographic regions,
offering country-wide and city-level granularity.
#### Country and Region
Limit network access based on geographical location, helping comply with data regulations or restrict access from high-risk areas. Note that you have two tabs available for this: `Allow` (green) and `Block` (red), making it easy to set up your preferred access rules..

![Country and Region Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-04.png)
<Note>
When allowing access from specific locations in the network settings, all other locations are automatically blocked. Conversely, blocking certain locations means only those are blocked, while access remains open for all other locations.
</Note>
#### Peer Network Range
This posture check lets you precisely control network access by specifying which IP ranges can connect to your network. You can create policies allowing only connections from approved locations, such as office networks or trusted remote work setups. Additionally, you can enhance security by blocking high-risk IP ranges working in tandem with geo-based posture checks. This granular control helps create a more secure network environment by limiting access to known, trusted sources while preventing connections from potentially risky or unauthorized IP addresses.

### Operating System Check
![Peer Network Range Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-05.png)

The operating system version check evaluates the operating system (OS) version running on the connecting device.
This check allows for enforcing minimum OS requirements, ensuring that only devices with up-to-date and
secure operating systems can access network resources.
#### Operating System
Restrict access based on the connecting device's OS, ensuring only approved and potentially more secure operating systems can connect.

![Operating System Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-06.png)
<Note>
The Operating System Check requires NetBird version [0.26.0](https://github.com/netbirdio/netbird/releases) or newer.
</Note>
Expand All @@ -63,83 +89,50 @@ Below are some examples of OS versions for each operating system:
* Windows 11, version 23H2: `10.0.22631`
* Windows Server 2022, Version 21H2: `10.0.20348`

### Peer Network Range Check

The peer network range check verifies if a device is in certain IP ranges before it can connect. This check is useful when wanting to control access based on the network location of a peer. For example, disabling a connection to a routing peer when the peer is connecting from the office network range.
#### Process
[Limit network access based on specific applications or services running on the connecting device](https://netbird.io/knowledge-hub/limit-network-access-based-on-running-processes). By verifying specific applications or processes, you ensure that only devices running essential security software, such as antivirus, firewalls, or endpoint protection agents, can connect to your network, reducing the risk of malware entering your network through unprotected devices. It also aids in maintaining compliance with regulatory requirements by enforcing consistent security measures across all devices.

### Process check
The process check verifies whether a specific process is running on the connecting device. This check is useful when you want to control access based on the presence of a specific process on the connecting device. It's applicable to Linux, macOS, and Windows devices.
Furthermore, this process-based posture check allows you to create specific policies for different user groups or network segments based on their unique security needs. Working in conjunction with other posture checks in NetBird, this setting offers a comprehensive and user-friendly approach to network security.

## Managing posture checks
![Process Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-07.png)

Posture checks are dynamic, and you can create a policy with multiple posture checks. A single posture
check can also be applied across multiple policies. When managing posture checks, you can update them as
per your requirements.
#### Naming and saving
After enabling the desired posture check, go to the `Name & Description` tab. Here, enter a descriptive name for your newly created posture check and save it.

Deleting a posture check is only possible if it's not currently used in any policy. If a posture check is in use,
you need to unassign it from the respective policy before you can delete it. This precaution ensures the continuity
and integrity of your security setup.
![Name your Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-08.png)

Here are some steps to help you create and manage your posture checks effectively:
You'll notice a gray dot to the left of the posture check name, indicating it's inactive. To activate the posture check, you need to link it to an access control policy.

In the example below, we are creating a posture check that will only allow clients running NetBird version 0.25.0 or
higher to connect and access network resources.
![New Posture Check](/docs-static/img/how-to-guides/posture-checks/posture-checks-09.png)

### Creating posture checks
Access the `Access Control` tab, then the `Posture Checks` section, and click `Create Posture Check`.
#### Applying Posture Checks to Access Control Policies

<p>
<img src="/docs-static/img/how-to-guides/add-posture-check.png" alt="high-level-dia" className="imagewrapper-big"/>
</p>


This will bring up a screen for configuring posture checks, where you can configure settings.

<p>
<img src="/docs-static/img/how-to-guides/posture-check-create-list.png" alt="high-level-dia" className="imagewrapper"/>
</p>

Select the `NetBird Client Version` check option and Type in the desired NetBird version; for this example, we are using :
- Version: `0.25.0`
To apply a posture check:

<p>
<img src="/docs-static/img/how-to-guides/netbird-version-check.png" alt="high-level-dia" className="imagewrapper"/>
</p>

Click `Save`, and the `NetBird Client Version` check will be enabled.
<p>
<img src="/docs-static/img/how-to-guides/posture-check-netbird-version-enabled.png" alt="high-level-dia" className="imagewrapper"/>
</p>
* [Create or edit an access control policy](https://docs.netbird.io/how-to/manage-network-access).
* Find the `Posture Checks` tab within the policy settings.
* Choose `Browse Checks` to select an existing check or `New Posture Check` to create one.

Click `Continue`, fill out the form with the following information, and click `Create Posture Check` to save:
- Name of the posture check: `NetBird Version > 0.25.0`
- Description: `Allow NetBird client with version 0.25.0 or greater`
Note that you can add multiple posture checks to a single policy as needed for comprehensive security.

<p>
<img src="/docs-static/img/how-to-guides/posture-check-post-config.png" alt="high-level-dia" className="imagewrapper"/>
</p>
![Add Posture Check to Access Control Policy](/docs-static/img/how-to-guides/posture-checks/posture-checks-10.png)

### Adding posture checks to policy
After adding the posture check, it will appear in the `POSTURE CHECKS` column. For easy management, you can click on it to edit the access control policy, allowing you to add or remove posture checks as needed.

Navigate to the `Access Control` tab and select the `Policies` section.
![Access Control Policies Dashboard](/docs-static/img/how-to-guides/posture-checks/posture-checks-11.png)

<p>
<img src="/docs-static/img/how-to-guides/policies-list.png" alt="high-level-dia" className="imagewrapper-big"/>
</p>
If you revisit the `Posture Checks` dashboard, you'll notice a green dot next to your recently configured posture check. This color shift indicates that the posture check is now active and integrated into your network security framework, actively contributing to your system's protection.

Choose the policy to which you want to assign the posture check. This will open the policy update screen. Then,
select the `Posture Checks` tab.
<p>
<img src="/docs-static/img/how-to-guides/policy-new-posture-check.png" alt="high-level-dia" className="imagewrapper"/>
</p>
![Posture Checks Dashboard](/docs-static/img/how-to-guides/posture-checks/posture-checks-12.png)

Click `Browse Checks` and select the posture check we created earlier, `NetBird Version > 0.25.0`. Then, click `Add Posture Checks`.
Following these steps, you can effectively implement and manage NetBird's Posture Checks, significantly enhancing your network's security posture.

<p>
<img src="/docs-static/img/how-to-guides/policy-posture-checks-select.png" alt="high-level-dia" className="imagewrapper"/>
## Get started
<p float="center" >
<Button name="button" className="button-5" onClick={() => window.open("https://netbird.io/pricing")}>Use NetBird</Button>
</p>

The `NetBird Version` check will be assigned to the policy. Click `Save Changes` to save the policy updates.
<p>
<img src="/docs-static/img/how-to-guides/policy-posture-checks-assigned.png" alt="high-level-dia" className="imagewrapper"/>
</p>
- Make sure to [star us on GitHub](https://github.com/netbirdio/netbird)
- Follow us [on Twitter](https://twitter.com/netbird)
- Join our [Slack Channel](https://join.slack.com/t/netbirdio/shared_invite/zt-2p5zwhm4g-8fHollzrQa5y4PZF5AEpvQ)
- NetBird [latest release](https://github.com/netbirdio/netbird/releases) on GitHub
18 changes: 18 additions & 0 deletions src/styles/tailwind.css
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,24 @@
border-radius: 4px;
}

.videowrapperadjusted {
float: none;
clear: both;
width: 100%;
position: relative;
padding-bottom: 30%;
padding-top: 25px;
height: 0;
}
.videowrapperadjusted iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 4px;
}

.Toastify__close-button {
color: var(--toastify-text-color-light) !important;
}

0 comments on commit 3a82125

Please sign in to comment.