Network Policy Plugin¶
The Network Policy Plugin allows users to define and enforce traffic policies based on CIDRs (IP ranges) and domain resolutions. It supports advanced configurations for alerting, enforcing, and bypassing traffic rules, ensuring flexible network control.
Jibril execution:
sudo -E jibril --log-level info --extension config --extension data --extension jibril --plugin jibril:hold --printer jibril:printers:stdout
Enable the Network Policy Plugin
:
--plugin jibril:netpolicy:file=/path/to/policy.yaml
Enable the alert events:
... --event jibril:netpolicy:dropip --event jibril:netpolicy:dropdomain
in case alert
or both
modes are enabled.
Configuration Example¶
#
# Alert and deny all traffic by default, allowing only declared domains to be resolved.
#
network_policy:
#
# The CIDR mode and policy define the IP address policy. Users can choose to block,
# alert, enforce, or bypass traffic based on CIDR rules.
#
# * "cidr_mode":
#
# - "bypass": Allow all traffic.
# - "alert": Alert on denied traffic to CIDRs or domains.
# - "enforce": Block denied traffic to CIDRs or domains.
# - "both": Alert and block denied traffic to CIDRs or domains.
#
# * "cidr_policy":
#
# - "allow": Allow traffic to CIDRs or domains by default.
# - "deny": Block traffic to CIDRs or domains by default.
#
# As an example, the user might have a default "cidr_policy" set to "deny" and allow all
# IPs with "cidr" set to "0.0.0.0/0". Then, the user might block an IP with a higher
# prefix length, such as "9.9.9.9/32".
#
cidr_mode: "both"
cidr_policy: "allow"
#
# The RESOLVE mode and policy define the domain resolution policy. Users can block
# specific domains from being resolved or allow them with alerts.
#
# For example, if "resolve_mode" is set to "bypass" but a domain is declared as denied,
# the resolution will be allowed, but the resolved IPs will be blocked.
#
# When "resolve_mode" is enabled (alert, enforce, or both), "resolve_policy" determines
# whether the resolution should be allowed or denied by default.
#
# 1. To be alerted on denied domain resolutions, set "resolve_mode" to "alert" and
# "resolve_policy" to "deny". You may still block IPs resolved from specific domains.
#
# 2. To block the resolution of denied domains, set "resolve_mode" to "enforce"
# and "resolve_policy" to "deny". Be aware that if "mode" is set to "bypass", the
# resolution will be disallwed, but direct IP connections to the domain will
# still be allowed.
#
# * "resolve_mode":
#
# - "bypass": Allow all domains to be resolved.
# - "alert": Alert on denied domain resolutions.
# - "enforce": Block the resolution of denied domains.
# - "both": Alert and block the resolution of denied domains.
#
# * "resolve_policy":
#
# - "allow": Allow domain resolution by default.
# - "deny": Block domain resolution by default.
#
# NOTE: domain rules exist independently of "resolve_mode". If a domain is declared
# as "deny", its resolved IPs won't be reachable, regardless of "resolve_mode",
# which only controls the resolution process.
#
resolve_mode: "bypass"
resolve_policy: "allow"
#
rules:
# Whitelist Everything (test only).
# - cidr: "0.0.0.0/0"
# policy: "allow"
# Whitelisted CIDRs (localhost).
- cidr: "127.0.0.0/8"
policy: "allow"
- cidr: "::1/128"
policy: "allow"
# Whitelisted CIDRs (internal networks).
- cidr: "192.168.0.0/16"
policy: "allow"
- cidr: "172.16.0.0/16"
policy: "allow"
- cidr: "10.0.0.0/8"
policy: "allow"
- cidr: "10.0.0.1/32"
policy: "allow"
# Whitelisted CIDRs (nameservers).
- cidr: "8.8.8.8/32"
policy: "allow"
- cidr: "8.8.4.4/32"
policy: "allow"
- cidr: "1.1.1.1/32"
policy: "allow"
- cidr: "9.9.9.9/32"
policy: "allow"
# Whitelisted Domains.
- domain: "org"
policy: "allow"
- domain: "google.com"
policy: "allow"
# Blacklisted Domains.
- domain: "example.com"
policy: "deny"
- domain: "uol.com.br"
policy: "deny"
Configuration Overview¶
Field | Description |
---|---|
cidr_mode | Defines the mode for handling traffic based on CIDRs. Possible values: bypass , alert , enforce , both . |
cidr_policy | Determines the default policy for CIDRs. Possible values: allow , deny . |
resolve_mode | Defines the mode for handling domain resolutions. Possible values: bypass , alert , enforce , both . |
resolve_policy | Determines the default policy for domain resolutions. Possible values: allow , deny . |
rules | List of custom rules for specific CIDRs or domains, allowing fine-grained control. |
Modes and Policies¶
CIDR Modes¶
Mode | Description |
---|---|
bypass | Allow all traffic to and from the specified CIDRs. |
alert | Alert when traffic violates CIDR rules but does not block it. |
enforce | Block traffic that violates CIDR rules. |
both | Both alert and block traffic that violates CIDR rules. |
CIDR Policy¶
Policy | Description |
---|---|
allow | Allow traffic to CIDRs by default. |
deny | Block traffic to CIDRs by default. |
Resolve Modes¶
Mode | Description |
---|---|
bypass | Allow all domain resolutions. |
alert | Alert when domain resolution violates rules but does not block it. |
enforce | Block domain resolutions that violate rules. |
both | Both alert and block domain resolutions that violate rules. |
Resolve Policy¶
Policy | Description |
---|---|
allow | Allow domain resolutions by default. |
deny | Block domain resolutions by default. |
Rule Details¶
CIDR Rules¶
CIDR | Policy | Description |
---|---|---|
127.0.0.0/8 | allow | Allow all traffic to localhost. |
::1/128 | allow | Allow IPv6 localhost traffic. |
192.168.0.0/16 | allow | Allow traffic within the internal network. |
172.16.0.0/16 | allow | Allow traffic within the internal network. |
10.0.0.0/8 | allow | Allow traffic within the internal network. |
8.8.8.8/32 | allow | Allow traffic to Google Public DNS. |
8.8.4.4/32 | allow | Allow traffic to Google Public DNS. |
1.1.1.1/32 | allow | Allow traffic to Cloudflare DNS. |
9.9.9.9/32 | allow | Allow traffic to Quad9 DNS. |
Domain Rules¶
Domain | Policy | Description |
---|---|---|
org | allow | Allow resolution of all .org domains. |
google.com | allow | Allow resolution of google.com . |
example.com | deny | Block resolution of example.com . |
uol.com.br | deny | Block resolution of uol.com.br . |
Key Features¶
- Alert and Enforce Modes
Flexibly alert or block traffic and domain resolutions based on custom rules. - Granular Rule Definition
Define specific CIDRs or domains to allow or deny traffic. - Default Policy Configuration
Set default allow or deny policies for both CIDRs and domains. - Independent Rules
Domain resolution rules operate independently of CIDR traffic rules for fine-grained control. - Testing Support
Easily configure test rules, such as whitelisting all traffic, for development and debugging purposes.
Note
Ensure that CIDR and domain rules are carefully managed to avoid unintended access or blocking.