Skip to content

NGFW Security Policy

Configure Next-Generation Firewall (NGFW) policies and profile-level security settings. Use this model to control traffic between zones, inspect selected flows with advanced inspection, and apply shared limits/logging behavior at profile scope.

Diagram

ngfw_security_profiles (sdwan.feature_profiles)

Section titled “ngfw_security_profiles (sdwan.feature_profiles)”
NameTypeConstraintMandatoryDefault Value
policiesList[policies]No
settingsClass[settings]No

policies (sdwan.feature_profiles.ngfw_security_profiles)

Section titled “policies (sdwan.feature_profiles.ngfw_security_profiles)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[^&<>! "]{1,128}$Yes
default_actionChoicepass, dropYes
sequencesList[sequences]No
source_zoneChoiceself, no_zone, untrustedYes
destination_zonesListChoice[self, no_zone, untrusted]Yes

settings (sdwan.feature_profiles.ngfw_security_profiles)

Section titled “settings (sdwan.feature_profiles.ngfw_security_profiles)”
NameTypeConstraintMandatoryDefault Value
advanced_inspection_profileStringRegex: ^[^&<>! "]{1,128}$No
app_hostingClass[app_hosting]No
audit_trailChoiceonNo
failure_modeChoiceopen, closeNo
icmp_unreachable_allowChoiceonNo
max_incomplete_icmp_limitIntegermin: 1, max: 4294967295No
max_incomplete_tcp_limitIntegermin: 1, max: 4294967295No
max_incomplete_udp_limitIntegermin: 1, max: 4294967295No
session_reclassify_allowChoiceonNo
tcp_syn_flood_limitIntegermin: 1, max: 4294967295No
unified_loggingChoiceonNo

sequences (sdwan.feature_profiles.ngfw_security_profiles.policies)

Section titled “sequences (sdwan.feature_profiles.ngfw_security_profiles.policies)”
NameTypeConstraintMandatoryDefault Value
actionsClass[actions]No
base_actionChoicepass, drop, inspectYes
disable_sequenceBooleantrue, falseNofalse
match_entriesClass[match_entries]No
sequence_idIntegermin: 1, max: 65534Yes
sequence_nameStringRegex: ^[^&<>! "]{1,128}$Yes
sequence_typeChoicengfirewallNongfirewall

app_hosting (sdwan.feature_profiles.ngfw_security_profiles.settings)

Section titled “app_hosting (sdwan.feature_profiles.ngfw_security_profiles.settings)”
NameTypeConstraintMandatoryDefault Value
download_url_database_on_deviceBooleantrue, falseNo
download_url_database_on_device_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
natBooleantrue, falseNo
nat_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
resource_profileChoicelow, medium, highNo
resource_profile_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No

actions (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)

Section titled “actions (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)”
NameTypeConstraintMandatoryDefault Value
advanced_inspection_profileStringRegex: ^[^&<>! "]{1,128}$No
logBooleantrue, falseNo

match_entries (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)

Section titled “match_entries (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)”
NameTypeConstraintMandatoryDefault Value
application_listStringRegex: ^[^&<>! "]{1,128}$No
destination_data_ipv4_prefix_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_data_ipv4_prefixesListIPNo
destination_data_ipv4_prefixes_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
destination_fqdn_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_fqdnsListString[Regex: ^(?=.{1,120}$)((\*|[a-zA-Z0-9-]{1,63})\.)+([a-zA-Z0-9-]{2,63})$]No
destination_fqdns_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
destination_geo_location_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_geo_locationsListChoice[AF, AN, AS, EU, NA, OC, SA, AFG, ALB, ATA, DZA, ASM, AND, AGO, ATG, AZE, ARG, AUS, AUT, BHS, BHR, BGD, ARM, BRB, BEL, BMU, BTN, BOL, BIH, BWA, BVT, BRA, BLZ, IOT, SLB, VGB, BRN, BGR, MMR, BDI, BLR, KHM, CMR, CAN, CPV, CYM, CAF, LKA, TCD, CHL, CHN, TWN, CXR, CCK, COL, COM, MYT, COG, COD, COK, CRI, HRV, CUB, CYP, CZE, BEN, DNK, DMA, DOM, ECU, SLV, GNQ, ETH, ERI, EST, FRO, FLK, SGS, FJI, FIN, ALA, FRA, GUF, PYF, ATF, DJI, GAB, GEO, GMB, PSE, DEU, GHA, GIB, KIR, GRC, GRL, GRD, GLP, GUM, GTM, GIN, GUY, HTI, HMD, VAT, HND, HKG, HUN, ISL, IND, IDN, IRN, IRQ, IRL, ISR, ITA, CIV, JAM, JPN, KAZ, JOR, KEN, PRK, KOR, KWT, KGZ, LAO, LBN, LSO, LVA, LBR, LBY, LIE, LTU, LUX, MAC, MDG, MWI, MYS, MDV, MLI, MLT, MTQ, MRT, MUS, MEX, MCO, MNG, MDA, MNE, MSR, MAR, MOZ, OMN, NAM, NRU, NPL, NLD, ANT, CUW, ABW, SXM, BES, NCL, VUT, NZL, NIC, NER, NGA, NIU, NFK, NOR, MNP, UMI, FSM, MHL, PLW, PAK, PAN, PNG, PRY, PER, PHL, PCN, POL, PRT, GNB, TLS, PRI, QAT, REU, ROU, RUS, RWA, BLM, SHN, KNA, AIA, LCA, MAF, SPM, VCT, SMR, STP, SAU, SEN, SRB, SYC, SLE, SGP, SVK, VNM, SVN, SOM, ZAF, ZWE, ESP, SSD, ESH, SDN, SUR, SJM, SWZ, SWE, CHE, SYR, TJK, THA, TGO, TKL, TON, TTO, ARE, TUN, TUR, TKM, TCA, TUV, UGA, UKR, MKD, EGY, GBR, GGY, JEY, IMN, TZA, USA, VIR, BFA, URY, UZB, VEN, WLF, WSM, YEM, ZMB]No
destination_port_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_portsListInteger[min: 0, max: 65535]No
destination_ports_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
destination_scalable_group_tag_listsListString[Regex: ^[^&<>! "]{1,128}$]No
protocol_name_listsListString[Regex: ^[^&<>! "]{1,128}$]No
protocol_namesListStringNo
protocolsListInteger[min: 0, max: 255]No
source_data_ipv4_prefix_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_data_ipv4_prefixesListIPNo
source_data_ipv4_prefixes_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
source_geo_location_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_geo_locationsListChoice[AF, AN, AS, EU, NA, OC, SA, AFG, ALB, ATA, DZA, ASM, AND, AGO, ATG, AZE, ARG, AUS, AUT, BHS, BHR, BGD, ARM, BRB, BEL, BMU, BTN, BOL, BIH, BWA, BVT, BRA, BLZ, IOT, SLB, VGB, BRN, BGR, MMR, BDI, BLR, KHM, CMR, CAN, CPV, CYM, CAF, LKA, TCD, CHL, CHN, TWN, CXR, CCK, COL, COM, MYT, COG, COD, COK, CRI, HRV, CUB, CYP, CZE, BEN, DNK, DMA, DOM, ECU, SLV, GNQ, ETH, ERI, EST, FRO, FLK, SGS, FJI, FIN, ALA, FRA, GUF, PYF, ATF, DJI, GAB, GEO, GMB, PSE, DEU, GHA, GIB, KIR, GRC, GRL, GRD, GLP, GUM, GTM, GIN, GUY, HTI, HMD, VAT, HND, HKG, HUN, ISL, IND, IDN, IRN, IRQ, IRL, ISR, ITA, CIV, JAM, JPN, KAZ, JOR, KEN, PRK, KOR, KWT, KGZ, LAO, LBN, LSO, LVA, LBR, LBY, LIE, LTU, LUX, MAC, MDG, MWI, MYS, MDV, MLI, MLT, MTQ, MRT, MUS, MEX, MCO, MNG, MDA, MNE, MSR, MAR, MOZ, OMN, NAM, NRU, NPL, NLD, ANT, CUW, ABW, SXM, BES, NCL, VUT, NZL, NIC, NER, NGA, NIU, NFK, NOR, MNP, UMI, FSM, MHL, PLW, PAK, PAN, PNG, PRY, PER, PHL, PCN, POL, PRT, GNB, TLS, PRI, QAT, REU, ROU, RUS, RWA, BLM, SHN, KNA, AIA, LCA, MAF, SPM, VCT, SMR, STP, SAU, SEN, SRB, SYC, SLE, SGP, SVK, VNM, SVN, SOM, ZAF, ZWE, ESP, SSD, ESH, SDN, SUR, SJM, SWZ, SWE, CHE, SYR, TJK, THA, TGO, TKL, TON, TTO, ARE, TUN, TUR, TKM, TCA, TUV, UGA, UKR, MKD, EGY, GBR, GGY, JEY, IMN, TZA, USA, VIR, BFA, URY, UZB, VEN, WLF, WSM, YEM, ZMB]No
source_identity_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_identity_usergroupsListString[Regex: ^.*[a-zA-Z0-9]+.*$]No
source_identity_usersListString[Regex: ^.*[a-zA-Z0-9]+.*$]No
source_port_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_portsListInteger[min: 0, max: 65535]No
source_ports_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
source_scalable_group_tag_listsListString[Regex: ^[^&<>! "]{1,128}$]No

Example-1: Securing Guest Network with Internet-Only Access

A retail chain provides guest Wi-Fi at branch locations. Guests must have unrestricted internet access but must never reach the internal corporate network. Employee workstations at the same branch also break out to the internet and require deep inspection of all web and SaaS traffic. Three zones are used: Guest_WiFi (VPN 200), Corporate_LAN (VPN 300), and Internet (untrusted). Guest-to-corporate traffic is explicitly dropped by matching source 10.0.200.0/24 to destination 10.0.100.0/24. Guest internet access is allowed. Employee internet traffic is inspected with an advanced inspection profile that performs IPS on web and approved SaaS destinations. Profile-level settings enforce a SYN flood limit and configure failure mode to close so no traffic bypasses the inspection engine.

sdwan:
feature_profiles:
ngfw_security_profiles:
- name: Branch-NGFW-Profile
description: Guest isolation and employee internet inspection at branch sites
policies:
- name: Guest-To-Corporate-Block
default_action: drop
source_zone: Guest_WiFi
destination_zones:
- Corporate_LAN
sequences:
- sequence_id: 1
sequence_name: Block-Corporate-Access
match_entries:
source_data_ipv4_prefixes:
- 10.0.200.0/24
destination_data_ipv4_prefixes:
- 10.0.100.0/24
base_action: drop
- name: Guest-To-Internet
default_action: drop
source_zone: Guest_WiFi
destination_zones:
- untrusted
sequences:
- sequence_id: 1
sequence_name: Allow-DNS
sequence_type: ngfirewall
match_entries:
protocol_names:
- dns
destination_ports:
- 53
base_action: pass
actions:
log: true
- sequence_id: 2
sequence_name: Allow-Internet-Access
match_entries:
source_data_ipv4_prefixes:
- 10.0.200.0/24
protocols:
- 6
destination_ports:
- 80
- 443
base_action: pass
actions:
log: true
- name: Employee-To-Internet
default_action: drop
source_zone: Corporate_LAN
destination_zones:
- untrusted
sequences:
- sequence_id: 1
sequence_name: Allow-DNS
sequence_type: ngfirewall
match_entries:
protocol_names:
- dns
destination_ports:
- 53
base_action: pass
actions:
log: true
- sequence_id: 2
sequence_name: Inspect-Web-Traffic
match_entries:
protocols:
- 6
destination_ports:
- 80
- 443
base_action: inspect
actions:
log: true
advanced_inspection_profile: Branch-AIP-Full
- sequence_id: 3
sequence_name: Inspect-SaaS-Apps
match_entries:
application_list: Approved-SaaS-Apps
destination_fqdn_lists:
- Trusted-SaaS-Domains
base_action: inspect
actions:
log: true
advanced_inspection_profile: Branch-AIP-Full
settings:
advanced_inspection_profile: Branch-AIP-Full
audit_trail: "on"
failure_mode: close
tcp_syn_flood_limit: 10000
max_incomplete_tcp_limit: 1000
max_incomplete_udp_limit: 500
unified_logging: "on"
app_hosting:
nat: false
download_url_database_on_device: false
resource_profile: medium

The example above expects the following policy objects to exist:

sdwan:
feature_profiles:
service_profiles:
- name: Branch-Service-Profile
lan_vpns:
- name: guest_wifi_vpn # referenced by security zone Guest_WiFi
vpn_id: 200
- name: corporate_lan_vpn # referenced by security zone Corporate_LAN
vpn_id: 300
policy_object_profile:
security_zones:
- name: Guest_WiFi
vpns:
- guest_wifi_vpn
- name: Corporate_LAN
vpns:
- corporate_lan_vpn
security_fqdn_lists:
- name: Trusted-SaaS-Domains
fqdns:
- "*.office365.com"
- "*.salesforce.com"
- "*.okta.com"
security_local_application_lists:
- name: Approved-SaaS-Apps
applications:
- ms-office365
- salesforce
security_advanced_inspection_profiles:
- name: Branch-AIP-Full
tls_action: never_decrypt
intrusion_prevention: Branch-IPS-Policy
security_intrusion_prevention_profiles:
- name: Branch-IPS-Policy
inspection_mode: protection
signature_set: balanced
alert_log_level: emergency

Example-2: Restricting Remote Access Protocols and Mitigating DDoS Attacks

A large enterprise wants to enhance security by blocking SSH (port 22) and Telnet (port 23) traffic from the internet zone to the internal network (vpn110 → vpn120), as unauthorized access through these protocols poses significant risk. The same deployment is periodically targeted by SYN flood attacks on internet-facing HTTP/HTTPS applications. To address both concerns in a single NGFW profile, SSH and Telnet are explicitly dropped, HTTP/HTTPS traffic is permitted with a SYN flood connection limit, and high-speed logging captures real-time attack data. Profile-level tcp_syn_flood_limit restricts excessive SYN requests before they overwhelm network resources.

sdwan:
feature_profiles:
ngfw_security_profiles:
- name: DDoS-Mitigation-NGFW-Profile
description: Block remote access protocols and enforce SYN flood protection
policies:
- name: vpn110-To-vpn120
default_action: drop
source_zone: vpn110
destination_zones:
- vpn120
sequences:
- sequence_id: 1
sequence_name: Block-SSH-Telnet
match_entries:
protocols:
- 6
destination_ports:
- 22
- 23
base_action: drop
- sequence_id: 2
sequence_name: Allow-HTTP-HTTPS
match_entries:
protocols:
- 6
destination_ports:
- 80
- 443
base_action: pass
actions:
log: true
settings:
audit_trail: "on"
failure_mode: open
tcp_syn_flood_limit: 100000
max_incomplete_tcp_limit: 2000
max_incomplete_udp_limit: 1000
unified_logging: "on"

The example above expects the following policy objects to exist:

sdwan:
feature_profiles:
service_profiles:
- name: Branch-Service-Profile
lan_vpns:
- name: vpn110_lan # referenced by security zone vpn110
vpn_id: 110
- name: vpn120_lan # referenced by security zone vpn120
vpn_id: 120
policy_object_profile:
security_zones:
- name: vpn110
vpns:
- vpn110_lan
- name: vpn120
vpns:
- vpn120_lan

Configure Next-Generation Firewall (NGFW) policies and profile-level security settings. Use this model to control traffic between zones, inspect selected flows with advanced inspection, and apply shared limits/logging behavior at profile scope.

Diagram

ngfw_security_profiles (sdwan.feature_profiles)

Section titled “ngfw_security_profiles (sdwan.feature_profiles)”
NameTypeConstraintMandatoryDefault Value
policiesList[policies]No
settingsClass[settings]No

policies (sdwan.feature_profiles.ngfw_security_profiles)

Section titled “policies (sdwan.feature_profiles.ngfw_security_profiles)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^[^&<>! "]{1,128}$Yes
default_actionChoicepass, dropYes
sequencesList[sequences]No
source_zoneChoiceself, no_zone, untrustedYes
destination_zonesListChoice[self, no_zone, untrusted]Yes

settings (sdwan.feature_profiles.ngfw_security_profiles)

Section titled “settings (sdwan.feature_profiles.ngfw_security_profiles)”
NameTypeConstraintMandatoryDefault Value
advanced_inspection_profileStringRegex: ^[^&<>! "]{1,128}$No
app_hostingClass[app_hosting]No
audit_trailChoiceonNo
failure_modeChoiceopen, closeNo
icmp_unreachable_allowChoiceonNo
max_incomplete_icmp_limitIntegermin: 1, max: 4294967295No
max_incomplete_tcp_limitIntegermin: 1, max: 4294967295No
max_incomplete_udp_limitIntegermin: 1, max: 4294967295No
session_reclassify_allowChoiceonNo
tcp_syn_flood_limitIntegermin: 1, max: 4294967295No
unified_loggingChoiceonNo

sequences (sdwan.feature_profiles.ngfw_security_profiles.policies)

Section titled “sequences (sdwan.feature_profiles.ngfw_security_profiles.policies)”
NameTypeConstraintMandatoryDefault Value
actionsClass[actions]No
base_actionChoicepass, drop, inspectYes
disable_sequenceBooleantrue, falseNofalse
match_entriesClass[match_entries]No
sequence_idIntegermin: 1, max: 65534Yes
sequence_nameStringRegex: ^[^&<>! "]{1,128}$Yes
sequence_typeChoicengfirewallNongfirewall

app_hosting (sdwan.feature_profiles.ngfw_security_profiles.settings)

Section titled “app_hosting (sdwan.feature_profiles.ngfw_security_profiles.settings)”
NameTypeConstraintMandatoryDefault Value
download_url_database_on_deviceBooleantrue, falseNo
download_url_database_on_device_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
natBooleantrue, falseNo
nat_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
resource_profileChoicelow, medium, highNo
resource_profile_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No

actions (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)

Section titled “actions (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)”
NameTypeConstraintMandatoryDefault Value
advanced_inspection_profileStringRegex: ^[^&<>! "]{1,128}$No
logBooleantrue, falseNo

match_entries (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)

Section titled “match_entries (sdwan.feature_profiles.ngfw_security_profiles.policies.sequences)”
NameTypeConstraintMandatoryDefault Value
application_listStringRegex: ^[^&<>! "]{1,128}$No
destination_data_ipv4_prefix_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_data_ipv4_prefixesListIPNo
destination_data_ipv4_prefixes_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
destination_fqdn_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_fqdnsListString[Regex: ^(?=.{1,120}$)((\*|[a-zA-Z0-9-]{1,63})\.)+([a-zA-Z0-9-]{2,63})$]No
destination_fqdns_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
destination_geo_location_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_geo_locationsListChoice[AF, AN, AS, EU, NA, OC, SA, AFG, ALB, ATA, DZA, ASM, AND, AGO, ATG, AZE, ARG, AUS, AUT, BHS, BHR, BGD, ARM, BRB, BEL, BMU, BTN, BOL, BIH, BWA, BVT, BRA, BLZ, IOT, SLB, VGB, BRN, BGR, MMR, BDI, BLR, KHM, CMR, CAN, CPV, CYM, CAF, LKA, TCD, CHL, CHN, TWN, CXR, CCK, COL, COM, MYT, COG, COD, COK, CRI, HRV, CUB, CYP, CZE, BEN, DNK, DMA, DOM, ECU, SLV, GNQ, ETH, ERI, EST, FRO, FLK, SGS, FJI, FIN, ALA, FRA, GUF, PYF, ATF, DJI, GAB, GEO, GMB, PSE, DEU, GHA, GIB, KIR, GRC, GRL, GRD, GLP, GUM, GTM, GIN, GUY, HTI, HMD, VAT, HND, HKG, HUN, ISL, IND, IDN, IRN, IRQ, IRL, ISR, ITA, CIV, JAM, JPN, KAZ, JOR, KEN, PRK, KOR, KWT, KGZ, LAO, LBN, LSO, LVA, LBR, LBY, LIE, LTU, LUX, MAC, MDG, MWI, MYS, MDV, MLI, MLT, MTQ, MRT, MUS, MEX, MCO, MNG, MDA, MNE, MSR, MAR, MOZ, OMN, NAM, NRU, NPL, NLD, ANT, CUW, ABW, SXM, BES, NCL, VUT, NZL, NIC, NER, NGA, NIU, NFK, NOR, MNP, UMI, FSM, MHL, PLW, PAK, PAN, PNG, PRY, PER, PHL, PCN, POL, PRT, GNB, TLS, PRI, QAT, REU, ROU, RUS, RWA, BLM, SHN, KNA, AIA, LCA, MAF, SPM, VCT, SMR, STP, SAU, SEN, SRB, SYC, SLE, SGP, SVK, VNM, SVN, SOM, ZAF, ZWE, ESP, SSD, ESH, SDN, SUR, SJM, SWZ, SWE, CHE, SYR, TJK, THA, TGO, TKL, TON, TTO, ARE, TUN, TUR, TKM, TCA, TUV, UGA, UKR, MKD, EGY, GBR, GGY, JEY, IMN, TZA, USA, VIR, BFA, URY, UZB, VEN, WLF, WSM, YEM, ZMB]No
destination_port_listsListString[Regex: ^[^&<>! "]{1,128}$]No
destination_portsListInteger[min: 0, max: 65535]No
destination_ports_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
destination_scalable_group_tag_listsListString[Regex: ^[^&<>! "]{1,128}$]No
protocol_name_listsListString[Regex: ^[^&<>! "]{1,128}$]No
protocol_namesListStringNo
protocolsListInteger[min: 0, max: 255]No
source_data_ipv4_prefix_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_data_ipv4_prefixesListIPNo
source_data_ipv4_prefixes_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
source_geo_location_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_geo_locationsListChoice[AF, AN, AS, EU, NA, OC, SA, AFG, ALB, ATA, DZA, ASM, AND, AGO, ATG, AZE, ARG, AUS, AUT, BHS, BHR, BGD, ARM, BRB, BEL, BMU, BTN, BOL, BIH, BWA, BVT, BRA, BLZ, IOT, SLB, VGB, BRN, BGR, MMR, BDI, BLR, KHM, CMR, CAN, CPV, CYM, CAF, LKA, TCD, CHL, CHN, TWN, CXR, CCK, COL, COM, MYT, COG, COD, COK, CRI, HRV, CUB, CYP, CZE, BEN, DNK, DMA, DOM, ECU, SLV, GNQ, ETH, ERI, EST, FRO, FLK, SGS, FJI, FIN, ALA, FRA, GUF, PYF, ATF, DJI, GAB, GEO, GMB, PSE, DEU, GHA, GIB, KIR, GRC, GRL, GRD, GLP, GUM, GTM, GIN, GUY, HTI, HMD, VAT, HND, HKG, HUN, ISL, IND, IDN, IRN, IRQ, IRL, ISR, ITA, CIV, JAM, JPN, KAZ, JOR, KEN, PRK, KOR, KWT, KGZ, LAO, LBN, LSO, LVA, LBR, LBY, LIE, LTU, LUX, MAC, MDG, MWI, MYS, MDV, MLI, MLT, MTQ, MRT, MUS, MEX, MCO, MNG, MDA, MNE, MSR, MAR, MOZ, OMN, NAM, NRU, NPL, NLD, ANT, CUW, ABW, SXM, BES, NCL, VUT, NZL, NIC, NER, NGA, NIU, NFK, NOR, MNP, UMI, FSM, MHL, PLW, PAK, PAN, PNG, PRY, PER, PHL, PCN, POL, PRT, GNB, TLS, PRI, QAT, REU, ROU, RUS, RWA, BLM, SHN, KNA, AIA, LCA, MAF, SPM, VCT, SMR, STP, SAU, SEN, SRB, SYC, SLE, SGP, SVK, VNM, SVN, SOM, ZAF, ZWE, ESP, SSD, ESH, SDN, SUR, SJM, SWZ, SWE, CHE, SYR, TJK, THA, TGO, TKL, TON, TTO, ARE, TUN, TUR, TKM, TCA, TUV, UGA, UKR, MKD, EGY, GBR, GGY, JEY, IMN, TZA, USA, VIR, BFA, URY, UZB, VEN, WLF, WSM, YEM, ZMB]No
source_identity_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_identity_usergroupsListString[Regex: ^.*[a-zA-Z0-9]+.*$]No
source_identity_usersListString[Regex: ^.*[a-zA-Z0-9]+.*$]No
source_port_listsListString[Regex: ^[^&<>! "]{1,128}$]No
source_portsListInteger[min: 0, max: 65535]No
source_ports_variableStringRegex: ^[./\[\]a-zA-Z0-9_-]{1,128}$No
source_scalable_group_tag_listsListString[Regex: ^[^&<>! "]{1,128}$]No

Example-1: Securing Guest Network with Internet-Only Access

A retail chain provides guest Wi-Fi at branch locations. Guests must have unrestricted internet access but must never reach the internal corporate network. Employee workstations at the same branch also break out to the internet and require deep inspection of all web and SaaS traffic. Three zones are used: Guest_WiFi (VPN 200), Corporate_LAN (VPN 300), and Internet (untrusted). Guest-to-corporate traffic is explicitly dropped by matching source 10.0.200.0/24 to destination 10.0.100.0/24. Guest internet access is allowed. Employee internet traffic is inspected with an advanced inspection profile that performs IPS on web and approved SaaS destinations. Profile-level settings enforce a SYN flood limit and configure failure mode to close so no traffic bypasses the inspection engine.

sdwan:
feature_profiles:
ngfw_security_profiles:
- name: Branch-NGFW-Profile
description: Guest isolation and employee internet inspection at branch sites
policies:
- name: Guest-To-Corporate-Block
default_action: drop
source_zone: Guest_WiFi
destination_zones:
- Corporate_LAN
sequences:
- sequence_id: 1
sequence_name: Block-Corporate-Access
match_entries:
source_data_ipv4_prefixes:
- 10.0.200.0/24
destination_data_ipv4_prefixes:
- 10.0.100.0/24
base_action: drop
- name: Guest-To-Internet
default_action: drop
source_zone: Guest_WiFi
destination_zones:
- untrusted
sequences:
- sequence_id: 1
sequence_name: Allow-DNS
sequence_type: ngfirewall
match_entries:
protocol_names:
- dns
destination_ports:
- 53
base_action: pass
actions:
log: true
- sequence_id: 2
sequence_name: Allow-Internet-Access
match_entries:
source_data_ipv4_prefixes:
- 10.0.200.0/24
protocols:
- 6
destination_ports:
- 80
- 443
base_action: pass
actions:
log: true
- name: Employee-To-Internet
default_action: drop
source_zone: Corporate_LAN
destination_zones:
- untrusted
sequences:
- sequence_id: 1
sequence_name: Allow-DNS
sequence_type: ngfirewall
match_entries:
protocol_names:
- dns
destination_ports:
- 53
base_action: pass
actions:
log: true
- sequence_id: 2
sequence_name: Inspect-Web-Traffic
match_entries:
protocols:
- 6
destination_ports:
- 80
- 443
base_action: inspect
actions:
log: true
advanced_inspection_profile: Branch-AIP-Full
- sequence_id: 3
sequence_name: Inspect-SaaS-Apps
match_entries:
application_list: Approved-SaaS-Apps
destination_fqdn_lists:
- Trusted-SaaS-Domains
base_action: inspect
actions:
log: true
advanced_inspection_profile: Branch-AIP-Full
settings:
advanced_inspection_profile: Branch-AIP-Full
audit_trail: "on"
failure_mode: close
tcp_syn_flood_limit: 10000
max_incomplete_tcp_limit: 1000
max_incomplete_udp_limit: 500
unified_logging: "on"
app_hosting:
nat: false
download_url_database_on_device: false
resource_profile: medium

The example above expects the following policy objects to exist:

sdwan:
feature_profiles:
service_profiles:
- name: Branch-Service-Profile
lan_vpns:
- name: guest_wifi_vpn # referenced by security zone Guest_WiFi
vpn_id: 200
- name: corporate_lan_vpn # referenced by security zone Corporate_LAN
vpn_id: 300
policy_object_profile:
security_zones:
- name: Guest_WiFi
vpns:
- guest_wifi_vpn
- name: Corporate_LAN
vpns:
- corporate_lan_vpn
security_fqdn_lists:
- name: Trusted-SaaS-Domains
fqdns:
- "*.office365.com"
- "*.salesforce.com"
- "*.okta.com"
security_local_application_lists:
- name: Approved-SaaS-Apps
applications:
- ms-office365
- salesforce
security_advanced_inspection_profiles:
- name: Branch-AIP-Full
tls_action: never_decrypt
intrusion_prevention: Branch-IPS-Policy
security_intrusion_prevention_profiles:
- name: Branch-IPS-Policy
inspection_mode: protection
signature_set: balanced
alert_log_level: emergency

Example-2: Restricting Remote Access Protocols and Mitigating DDoS Attacks

A large enterprise wants to enhance security by blocking SSH (port 22) and Telnet (port 23) traffic from the internet zone to the internal network (vpn110 → vpn120), as unauthorized access through these protocols poses significant risk. The same deployment is periodically targeted by SYN flood attacks on internet-facing HTTP/HTTPS applications. To address both concerns in a single NGFW profile, SSH and Telnet are explicitly dropped, HTTP/HTTPS traffic is permitted with a SYN flood connection limit, and high-speed logging captures real-time attack data. Profile-level tcp_syn_flood_limit restricts excessive SYN requests before they overwhelm network resources.

sdwan:
feature_profiles:
ngfw_security_profiles:
- name: DDoS-Mitigation-NGFW-Profile
description: Block remote access protocols and enforce SYN flood protection
policies:
- name: vpn110-To-vpn120
default_action: drop
source_zone: vpn110
destination_zones:
- vpn120
sequences:
- sequence_id: 1
sequence_name: Block-SSH-Telnet
match_entries:
protocols:
- 6
destination_ports:
- 22
- 23
base_action: drop
- sequence_id: 2
sequence_name: Allow-HTTP-HTTPS
match_entries:
protocols:
- 6
destination_ports:
- 80
- 443
base_action: pass
actions:
log: true
settings:
audit_trail: "on"
failure_mode: open
tcp_syn_flood_limit: 100000
max_incomplete_tcp_limit: 2000
max_incomplete_udp_limit: 1000
unified_logging: "on"

The example above expects the following policy objects to exist:

sdwan:
feature_profiles:
service_profiles:
- name: Branch-Service-Profile
lan_vpns:
- name: vpn110_lan # referenced by security zone vpn110
vpn_id: 110
- name: vpn120_lan # referenced by security zone vpn120
vpn_id: 120
policy_object_profile:
security_zones:
- name: vpn110
vpns:
- vpn110_lan
- name: vpn120
vpns:
- vpn120_lan