Configures Windows Defender Firewall profile settings, global settings, dynamic keyword addresses, and custom firewall rules through the Firewall CSP. FirewallRules and DynamicKeywords are emitted inside SyncML Atomic blocks as required by Microsoft.
Prerequisites
Requirement | Details |
Supported platforms | Windows |
Minimum OS version | Windows 10 version 1709 (build 10.0.16299) and later |
Policy Structure
The Windows Firewall Policy is organized into six sections:
Section | Type | Description |
Domain Profile | Dictionary | Firewall settings applied to domain networks |
Private Profile | Dictionary | Firewall settings applied to private networks |
Public Profile | Dictionary | Firewall settings applied to public networks |
Global Settings | Dictionary | Global Windows Defender Firewall settings |
Dynamic Keyword Addresses | Array of dictionaries | Reusable address objects for firewall rules |
Firewall Rules | Array of dictionaries | Custom Windows Defender Firewall rules |
Network Profile Settings
The Domain Profile, Private Profile, and Public Profile sections share the same set of fields. Configure each independently to control firewall behavior per network type.
Firewall State
Field | Display Name | Type | Default | Description |
| Enable Firewall | Boolean |
| Enable Windows Defender Firewall enforcement for the profile |
| Default Inbound Action | Integer |
| Default action for inbound connections: 0 Allow, 1 Block |
| Default Outbound Action | Integer |
| Default action for outbound connections: 0 Allow, 1 Block |
| Shielded | Boolean |
| Block all incoming traffic while firewall is enabled |
Stealth & Notifications
Field | Display Name | Type | Default | Description |
| Disable Stealth Mode | Boolean |
| Disable stealth mode for the profile |
| Disable Stealth Mode IPsec Exemption | Boolean |
| Control whether IPsec-secured unsolicited traffic is exempt from stealth mode |
| Disable Inbound Notifications | Boolean |
| Suppress user notifications when an app is blocked from listening on a port |
| Disable Unicast Responses | Boolean |
| Block unicast responses to multicast or broadcast traffic |
Logging
Field | Display Name | Type | Default | Description |
| Log Dropped Packets | Boolean |
| Log dropped packets |
| Log Ignored Rules | Boolean |
| Log events for rules that are not enforced |
| Log Successful Connections | Boolean |
| Log successful inbound connections |
| Log File Path | String |
| Path for the firewall log file |
| Log Max File Size | Integer |
| Firewall log size in KB (0–4,294,967,295) |
Policy Merge
Field | Display Name | Type | Default | Description |
| Allow Local Policy Merge | Boolean |
| Allow locally created firewall rules to merge with managed policy |
| Allow Local IPsec Policy Merge | Boolean |
| Allow local connection security rules to merge with managed policy |
| Authorized Apps User Preference Merge | Boolean |
| Allow authorized application firewall rules in the local store to merge |
| Global Ports User Preference Merge | Boolean |
| Allow local global port rules to merge |
Global Settings
Global settings apply across all network profiles.
Field | Display Name | Type | Default | Description |
| CRL Check | Integer | — | Certificate revocation list checking: 0 Disabled, 1 Attempted, 2 Required |
| Disable Stateful FTP | Boolean |
| Disable stateful FTP filtering |
| Enable Audit Mode | Boolean |
| Enable firewall audit mode |
| Enable Packet Queue | Integer |
| Packet queue mode bitmask (0–3) |
| IPsec Exempt | Integer |
| IPsec exemption bitmask (0–15) |
| Opportunistic Auth Set Match | Boolean | — | Allow keying modules to ignore only unsupported authentication suites |
| Preshared Key Encoding | Integer |
| 0 None, 1 UTF-8 |
| SA Idle Time | Integer |
| Security association idle time in seconds (300–3600) |
Dynamic Keyword Addresses
Define reusable address objects that can be referenced by firewall rules via the remoteAddressDynamicKeywords field.
Field | Display Name | Type | Required | Default | Description |
| ID | String | Yes | — | GUID identifier. Braces are accepted and will be added if omitted |
| Operation | String | No |
| SyncML node operation: Add or Delete |
| Addresses | String | No | — | Comma-delimited address tokens. Must be empty when |
| Auto Resolve | Boolean | No |
| Resolve keyword as an FQDN when Microsoft Defender ATP service is present |
| Keyword | String | No | — | Keyword alias or FQDN when |
Firewall Rules
Define custom Windows Defender Firewall rules. Each rule is wrapped in an SyncML Atomic block.
Rule Identity & State
Field | Display Name | Type | Required | Default | Description |
| Rule Name | String | Yes | — | Unique firewall rule node name |
| Operation | String | No |
| SyncML node operation: Add (new rules), Replace (existing rules), Delete (remove a rule) |
| Friendly Name | String | No | — | Friendly display name for the rule |
| Description | String | No | — | Description for the rule |
| Enabled | Boolean | No |
| Enable the rule |
Traffic Matching
Field | Display Name | Type | Default | Description |
| Action | Integer |
| 0 Block, 1 Allow |
| Direction | String |
| Traffic direction: IN or OUT |
| Profiles | Integer |
| Profile bitmask: Domain 1, Private 2, Public 4, All 2147483647 |
| Protocol | Integer | — | IP protocol number (0–255). Common: TCP 6, UDP 17, ICMP 1, IPv6-ICMP 58 |
Ports & Addresses
Field | Display Name | Type | Description |
| Local Port Ranges | String | Comma-delimited local port ranges. Requires protocol 6 or 17 |
| Remote Port Ranges | String | Comma-delimited remote port ranges. Requires protocol 6 or 17 |
| Local Address Ranges | String | Comma-delimited local address tokens |
| Remote Address Ranges | String | Comma-delimited remote address tokens |
| Remote Address Dynamic Keywords | String | Comma-delimited dynamic keyword GUIDs |
Advanced Options
Field | Display Name | Type | Description |
| ICMP Types And Codes | String | ICMP type/code list. Requires protocol 1 or 58. Windows 11 / Server 2022+ only |
| Interface Types | String | Comma-delimited values: RemoteAccess, Wireless, Lan, MBB, All |
| Edge Traversal | Boolean | Allow edge traversal for inbound traffic |
| Local User Authorized List | String | Authorized local users in SDDL format |
| Policy App ID | String | App Control tag. Cannot be combined with |
Application Matching (app)
Field | Display Name | Type | Description |
| File Path | String | Application executable path |
| FQBN | String | Fully qualified binary name |
| Package Family Name | String | Microsoft Store app package family name |
| Service Name | String | Windows service name. Cannot be combined with |
Deployment Behavior
Atomic blocks — FirewallRules and DynamicKeywords are emitted inside SyncML Atomic blocks. Atomic blocks are all-or-nothing: if any setting within the block is unsupported on the target OS version, the entire block fails.
OS version gating — Some fields (e.g.,
icmpTypesAndCodes) are only supported on Windows 11 / Server 2022 and later. Rules containing unsupported fields should be isolated into separate Atomic blocks to prevent them from causing unrelated rules to fail.Failure isolation — To maximize deployment reliability, group rules with newer-OS-only fields separately so that a failure does not block deployment of other valid rules.
