Forge Home

panos

Manage Palo Alto firewalls

28,692 downloads

3,235 latest version

4.5 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 2.0.0 (latest)
  • 1.2.1
  • 1.2.0
  • 1.1.0
  • 1.0.0
  • 0.2.0
  • 0.1.0
released Jul 20th 2021
This version is compatible with:
  • Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x
  • Puppet >= 6.0.0 < 8.0.0
Tasks:
  • apikey
  • commit
  • set_config
  • store_config

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'puppetlabs-panos', '2.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add puppetlabs-panos
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install puppetlabs-panos --version 2.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

puppetlabs/panos — version 2.0.0 Jul 20th 2021

Reference

Table of Contents

Classes

  • panos: This class calls the panos::install class.
  • panos::agent: This class installs dependencies of this module into puppet agent
  • panos::install: This class installs dependencies of this module into the puppet agent, and/or the puppetserver service.
  • panos::install::agent: This class install dependencies of this module into puppet agent
  • panos::install::server: This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.
  • panos::server: This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.

Resource types

  • panos_address: This type provides Puppet with the capabilities to manage "address" objects on Palo Alto devices.
  • panos_address_group: This type provides Puppet with the capabilities to manage "address_groups" objects on Palo Alto devices.
  • panos_admin: This type provides Puppet with the capabilities to manage "administrator" user accounts on Palo Alto devices.
  • panos_arbitrary_commands: This type provides Puppet with the capabilities to execute arbitrary configuration commands on Palo Alto devices.
  • panos_commit: When evaluated, this resource commits all outstanding changes in the target device's configuration to the active configuration.
  • panos_ipv6_path_monitor: This type provides Puppet with the capabilities to manage IPv6 Path Monitors on Palo Alto devices.
  • panos_ipv6_static_route: This type provides Puppet with the capabilities to manage IPv6 Static Routes on Palo Alto devices.
  • panos_nat_policy: This type provides Puppet with the capabilities to manage "NAT Policy Rule" objects on Palo Alto devices.
  • panos_path_monitor: This type provides Puppet with the capabilities to manage IPv4 Path Monitors on Palo Alto devices.
  • panos_security_policy_rule: This type provides Puppet with the capilities to manage "Security Policy Rules" on Palo Alto devices.
  • panos_service: This type provides Puppet with the capabilities to manage "service" objects on Palo Alto devices.
  • panos_service_group: This type provides Puppet with the capabilities to manage "Service Group" objects on Palo Alto devices.
  • panos_static_route: This type provides Puppet with the capabilities to manage IPv4 Static Routes on Palo Alto devices.
  • panos_tag: This type provides Puppet with the capabilities to manage "tags" objects on Palo Alto devices.
  • panos_virtual_router: This type provides Puppet with the capabilities to manage "virtual router" objects on Palo Alto devices.
  • panos_zone: This type provides Puppet with the capabilities to manage "zone" objects on Palo Alto devices.

Tasks

  • apikey: Retrieve a PAN-OS apikey
  • commit: Commit a candidate configuration to a firewall.
  • set_config: upload and/or apply a configuration to a firewall.
  • store_config: Retrieve the configuration running on the firewall and save to local file.

Classes

panos

This class calls the panos::install class.

Examples

Declaring the class
include panos

panos::agent

This class installs dependencies of this module into puppet agent

  • Note Deprecated, use panos::install::agent

Examples

Declaring the class
include panos::agent

panos::install

This class installs dependencies of this module into the puppet agent, and/or the puppetserver service.

Examples

Declaring the class
include panos::install

panos::install::agent

This class install dependencies of this module into puppet agent

Examples

Declaring the class
include panos::install::agent

panos::install::server

This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.

Examples

Declaring the class
include panos::install::server

panos::server

This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.

  • Note Deprecated, use panos::install::server

Examples

Declaring the class
include panos::server

Resource types

panos_address

This type provides Puppet with the capabilities to manage "address" objects on Palo Alto devices.

Properties

The following properties are available in the panos_address type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

description

Data type: Optional[String]

Provide a description of this address.

ip_netmask

Data type: Optional[String]

Provide an IP address or a network using the slash notation (Ex. 192.168.80.150 or 192.168.80.0/24). You can also provide an IPv6 address or an IPv6 address with its prefix (Ex. 2001:db8:123:1::1 or 2001:db8:123:1::/64). You need to provide exactly one of ip_netmask, ip_range, or fqdn.

ip_range

Data type: Optional[String]

Provide an IP address range (Ex. 10.0.0.1-10.0.0.4). Each of the IP addresses in the range can also be in an IPv6 form (Ex. 2001:db8:123:1::1-2001:db8:123:1::11). You need to provide exactly one of ip_netmask, ip_range, or fqdn.

fqdn

Data type: Optional[String]

Provide a fully qualified domain name. You need to provide exactly one of ip_netmask, ip_range, or fqdn. The FQDN initially resolves at commit time. Entries are subsequently refreshed when the firewall performs a check every 30 minutes; all changes in the IP address for the entries are picked up at the refresh cycle The FQDN is resolved by the system DNS server or a DNS proxy object, if a proxy is configured.

tags

Data type: Array[String]

The Palo Alto tags to apply to this address. Do not confuse this with the tag metaparameter used to filter resource application.

Default value: []

Parameters

The following parameters are available in the panos_address type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,63}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the address.

panos_address_group

This type provides Puppet with the capabilities to manage "address_groups" objects on Palo Alto devices.

Properties

The following properties are available in the panos_address_group type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

description

Data type: Optional[String]

Provide a description of this address-group.

type

Data type: Enum["static", "dynamic"]

A static or dynamic address-group.

static_members

Data type: Optional[Array[String]]

One or more panos_address or panos_address_group that form this group. Used only when type is static.

dynamic_filter

Data type: Optional[String]

To create a dynamic address group, use the match criteria to assemble the members to be included in the group. Define the Match criteria using the AND or OR operators. example: 'tag1' and 'tag2' or 'tag3' Used only when type is dynamic.

tags

Data type: Array[String]

The Palo Alto tags to apply to this address-group. Do not confuse this with the tag metaparameter used to filter resource application.

Default value: []

Parameters

The following parameters are available in the panos_address_group type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,63}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the address-group.

panos_admin

This type provides Puppet with the capabilities to manage "administrator" user accounts on Palo Alto devices.

Properties

The following properties are available in the panos_admin type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

password_hash

Data type: Optional[String]

Provide a password hash.

authentication_profile

Data type: Optional[String]

Provide an authentication profile. You can use this setting for RADIUS, TACACS+, LDAP, Kerberos, or local database authentication.

client_certificate_only

Data type: Boolean

Enable this option to use client certificate authentication for web access. If you select this option, a username and password are not required; the certificate is sufficient to authenticate access to the firewall.

ssh_key

Data type: Optional[String]

Provide the users public key in plain text

role

Data type: Enum["superuser", "superreader", "devicereader", "deviceadmin", "custom"]

Specify the access level for the administrator.

  • superuser: Has full access to the firewall and can define new administrator accounts and virtual systems. You must have superuser privileges to create an administrative user with superuser privileges.

  • superreader: Has read-only access to the firewall.

  • deviceadmin: Has full access to all firewall settings except for defining new accounts or virtual systems.

  • devicereader: Has read-only access to all firewall settings except password profiles (no access) and administrator accounts (only the logged in account is visible).

role_profile

Data type: Optional[String]

Specify the role profile for the user The following built in roles are available:

  • auditadmin: The Audit Administrator is responsible for the regular review of the firewall’s audit data.

  • cryptoadmin: The Cryptographic Administrator is responsible for the configuration and maintenance of cryptographic elements related to the establishment of secure connections to the firewall.

  • securityadmin: The Security Administrator is responsible for all other administrative tasks (e.g. creating the firewall’s security policy) not addressed by the other two administrative roles.

Parameters

The following parameters are available in the panos_admin type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\.]{1,31}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The username.

panos_arbitrary_commands

This type provides Puppet with the capabilities to execute arbitrary configuration commands on Palo Alto devices.

Properties

The following properties are available in the panos_arbitrary_commands type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

xml

Data type: String

The XML to be set on the device. If working with large XML structures it is recommended to use the file() function e.g.: file(path/to/file.xml).

Parameters

The following parameters are available in the panos_arbitrary_commands type.

xpath

namevar

Data type: String

The PANOS API XPath on which to set the xml.

panos_commit

When evaluated, this resource commits all outstanding changes in the target device's configuration to the active configuration.

  • Note It is automatically scheduled after all other PANOS resources.

Properties

The following properties are available in the panos_commit type.

commit

Data type: Boolean

Whether a commit should happen

Parameters

The following parameters are available in the panos_commit type.

name

namevar

Data type: Enum["commit"]

The name of the resource you want to manage. Can only be "commit".

panos_ipv6_path_monitor

This type provides Puppet with the capabilities to manage IPv6 Path Monitors on Palo Alto devices.

  • Note Can only be configured on PAN-OS 8.1.0 devices.

Properties

The following properties are available in the panos_ipv6_path_monitor type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

source

Data type: String

Specify the IP address that the firewall will use as the source in the ICMP ping to the monitored destination:

  • If the interface has multiple IP addresses, select one.
  • If you specify an interface, the firewall uses the first IP address assigned to the interface by default.
  • If you specify DHCP (Use DHCP Client address), the firewall uses the address that DHCP assigned to the interface. To see the DHCP address, select NetworkInterfacesEthernet and in the row for the Ethernet interface, click on Dynamic DHCP Client. The IP Address appears in the Dynamic IP Interface Status window.
destination

Data type: String

Specify a robust, stable IP address or address object for which the firewall will monitor the path. The monitored destination and the static route destination must use the same address family (IPv4 or IPv6)

interval

Data type: String

Specify the ICMP ping interval in seconds to determine how frequently the firewall monitors the path (pings the monitored destination; range is 1-60; default is 3).

Default value: 3

count

Data type: String

Specify the number of consecutive ICMP ping packets that do not return from the monitored destination before the firewall considers the link down. Based on the Any or All failure condition, if path monitoring is in failed state, the firewall removes the static route from the RIB (range is 3-10; default is 5).

For example, a Ping Interval of 3 seconds and Ping Count of 5 missed pings (the firewall receives no ping in the last 15 seconds) means path monitoring detects a link failure. If path monitoring is in failed state and the firewall receives a ping after 15 seconds, the link is deemed up; based on the Any or All failure condition, path monitoring to Any or All monitored destinations can be deemed up, and the Preemptive Hold Time starts.

Default value: 5

enable

Data type: Optional[Boolean]

Select to enable path monitoring of this specific destination for the static route; the firewall sends ICMP pings to this destination.

Parameters

The following parameters are available in the panos_ipv6_path_monitor type.

path

namevar

Data type: String

The name to identify the path monitor with.

route

namevar

Data type: String

A name to identify a static route.

panos_ipv6_static_route

This type provides Puppet with the capabilities to manage IPv6 Static Routes on Palo Alto devices.

Properties

The following properties are available in the panos_ipv6_static_route type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

nexthop

Data type: Optional[String]

The address of the next hop location for the route

nexthop_type

Data type: Optional[Enum["ipv6-address", "next-vr", "discard", "none"]]

The type of address used for the next hop.

  • ipv6-address: Select to enter the IP address of the next hop router.
  • next-vr: Select to select a virtual router in the firewall as the next hop. This allows you to route internally between virtual routers within a single firewall.
  • discard: Select if you want to drop traffic that is addressed to this destination.
  • none: Select if there is no next hop for the route.
bfd_profile

Data type: String

To enable Bidirectional Forwarding Detection (BFD) for a static route on a PA-3000 Series, PA-3200 Series, PA-5000 Series, PA-5200 Series, PA-7000 Series, or VM-Series firewall, specify one of the following:

  • default: a BFD profile that you have created on the firewall
  • None: to disable BFD for the static route.

To use BFD on a static route:

  • Both the firewall and the peer at the opposite end of the static route must support BFD sessions.
  • The static route nexthop_type must be ip-address and you must enter a valid IP address in nexthop.
  • The interface attribute cannot be none; you must specify an interface (even if you are using a DHCP address).

Default value: None

interface

Data type: Optional[String]

The interface used by the route, interfaces pulled from the virtual router this belongs to.

metric

Data type: Variant[String, Integer[1, 65535]]

Specify a valid metric for the static route (1 - 65535).

Default value: 10

admin_distance

Data type: Optional[Variant[String,Integer[10, 240]]]

Specify the administrative distance for the static route (10-240; default is 10).

destination

Data type: String

Enter an IP address and network mask in Classless Inter-domain Routing (CIDR) notation: ip_address/mask (for example, 192.168.2.0/24 for IPv4 or 2001:db8::/32 for IPv6).

no_install

Data type: Boolean

Select if you do not want to install the route in the forwarding table. The route is retained in the configuration for future reference. Note: can only be set on PAN-OS version 7.1.0.

route_type

Data type: Optional[Enum["unicast", "multicast", "both", "no-install"]]

Specify the route table into which the firewall installs the static route:

  • unicast: Installs the route into the unicast route table.
  • multicast: Installs the route into the multicast route table.
  • both: Installs the route into the unicast and multicast route tables.
  • no-install: Does not install the route in the route table (RIB); the firewall retains the static route for future reference until you delete the route.

Note: can only be set on PAN-OS version 8.1.0.

path_monitoring

Data type: Optional[Boolean]

Specify true to enable path monitoring for the static route.

Note: can only be set on PAN-OS version 8.1.0. Note: must be enabled if using panos_ipv6_monitor_destinations for the static route.

failure_condition

Data type: Optional[Enum["any", "all"]]

Specify the condition under which the firewall considers the monitored path down and thus the static route down:

  • any: If any one of the monitored destinations for the static route is unreachable by ICMP, the firewall removes the static route from the RIB and FIB and adds the dynamic or static route that has the next lowest metric going to the same destination to the FIB.
  • all: If all of the monitored destinations for the static route are unreachable by ICMP, the firewall removes the static route from the RIB and FIB and adds the dynamic or static route that has the next lowest metric going to the same destination to the FIB.

Specify all to avoid the possibility of a single monitored destination signaling a static route failure when that monitored destination is simply offline for maintenance, for example.

Note: can only be set on PAN-OS version 8.1.0.

enable

Data type: Optional[Boolean]

Specify true to enable path monitoring of this specific destination for the static route; the firewall sends ICMP pings to this destination.

Note: can only be set on PAN-OS version 8.1.0.

hold_time

Data type: Optional[Variant[String, Integer[0, 1440]]]

Specify the number of minutes a downed path monitor must remain in Up stat:the path monitor evaluates all of its member monitored destinations and must remain Up before the firewall reinstalls the static route into the RIB. If the timer expires without the link going down or flapping, the link is deemed stable, path monitor can remain Up, and the firewall can add the static route back into the RIB.

If the link goes down or flaps during the hold time, path monitor fails and the timer restarts when the downed monitor returns to Up state. A Preemptive Hold Time of zero causes the firewall to reinstall the static route into the RIB immediately upon the path monitor coming up. Range is 0-1,440; default is 2.

Note: can only be set on PAN-OS version 8.1.0.

Parameters

The following parameters are available in the panos_ipv6_static_route type.

route

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,31}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

A name to identify a static route.

vr_name

namevar

Data type: String

The name of the virtual router the static route is associate with.

panos_nat_policy

This type provides Puppet with the capabilities to manage "NAT Policy Rule" objects on Palo Alto devices.

Properties

The following properties are available in the panos_nat_policy type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

description

Data type: Optional[String]

A description of the NAT Policy Rule

nat_type

Data type: Enum["ipv4", "nat64", "nptv6"]

The nat type of the policy

Default value: ipv4

from

Data type: Array[String]

Specify one or more source zones for the original (non-NAT) packet. Zones must be of the same type (Layer 2, Layer 3, or virtual wire). You can specify multiple zones to simplify management. For example, you can configure settings so that multiple internal NAT addresses are directed to the same external IP address.

Default value: ["any"]

to

Data type: Array[String]

Specify one or more destinations zones for the original (non-NAT) packet. Zones must be of the same type (Layer 2, Layer 3, or virtual wire). You can specify multiple zones to simplify management. For example, you can configure settings so that multiple internal NAT addresses are directed to the same external IP address.

destination_interface

Data type: Optional[String]

Specify the destination interface of packets the firewall translates. You can use the destination interface to translate IP addresses differently in the case where the network is connected to two ISPs with different IP address pools

service

Data type: String

Specify the service for which the firewall translates the source or destination address.

Default value: any

source

Data type: Array[String]

Specify a combination of source addresses for the firewall to translate. For NPTv6, the prefixes configured for Source Address and Destination Address must be in the format xxxx:xxxx::/yy. The address cannot have an interface identifier (host) portion defined. The range of supported prefix lengths is /32 to /64.

Default value: ["any"]

destination

Data type: Array[String]

Specify a combination of destination addresses for the firewall to translate. For NPTv6, the prefixes configured for Source Address and Destination Address must be in the format xxxx:xxxx::/yy. The address cannot have an interface identifier (host) portion defined. The range of supported prefix lengths is /32 to /64.

Default value: ["any"]

source_translation_type

Data type: Optional[Enum["dynamic-ip", "static-ip", "dynamic-ip-and-port", "none"]]

The size of the address range is limited by the type of address pool:

  • dynamic-ip-and-port: Address selection is based on a hash of the source IP address. For a given source IP address, the firewall will use the same translated source address for all sessions. Dynamic IP and Port source NAT supports approximately 64k concurrent sessions on each IP address in the NAT pool. On some platforms, over-subscription is supported, which will allow a single IP to host more than 64k concurrent sessions. Palo Alto Networks Dynamic IP/port NAT supports more NAT sessions than are supported by the number of available IP addresses and ports. The firewall can use IP address and port combinations up to two times (simultaneously) on the PA-200, PA-500, PA-2000 Series and PA-3000 Series firewalls, four times on the PA-4020 and PA-5020 firewalls, and eight times on the PA‑4050, PA-4060, PA-5050, and PA-5060 firewalls when destination IP addresses are unique.

  • dynamic-ip: The next available address in the specified range is used, but the port number is unchanged. Up to 32k consecutive IP addresses are supported. A dynamic IP pool can contain multiple subnets, so you can translate your internal network addresses to two or more separate public subnets.

    • Advanced (Fall back Dynamic IP Translation)—Use this option to create a fall back pool that will perform IP and port translation and will be used if the primary pool runs out of addresses. You can define addresses for the pool by using the Translated Address option or the Interface Address option, which is for interfaces that receive an IP address dynamically. When creating a fall back pool, make sure addresses do not overlap with addresses in the primary pool.
  • static-ip: The same address is always used for the translation and the port is unchanged. For example, if the source range is 192.168.0.1-192.168.0.10 and the translation range is 10.0.0.1-10.0.0.10, address 192.168.0.2 is always translated to 10.0.0.2. The address range is virtually unlimited.

    • NPTv6 must use Static IP translation for Source Address Translation. For NPTv6, the prefixes configured for Translated Address must be in the format xxxx:xxxx::/yy. The address cannot have an interface identifier (host) portion defined. The range of supported prefix lengths is /32 to /64.
  • None: Translation is not performed.

sat_interface

Data type: Optional[String]

The interface used in SAT

sat_interface_ip

Data type: Optional[String]

The interface used in SAT

source_translated_address

Data type: Optional[Array[String]]

The translated source addresses.

source_translated_static_address

Data type: Optional[String]

The translated source addresses.

fallback_address_type

Data type: Optional[Enum["translated-address", "interface-address"]]

Whether the NAT policy used translated-address or interface-address as a fallback

fallback_address

Data type: Optional[Array[String]]

The translated addresses used as a fallback. Required if fallback_address_type is set to translated-address

fallback_interface

Data type: Optional[String]

The interface used as fallback. Required if fallback_address_type is set to interface-address

fallback_interface_ip

Data type: Optional[String]

The ip of the interface used as fallback. Required if fallback_address_type is set to interface-address

fallback_interface_ip_type

Data type: Optional[Enum["floating-ip", "ip"]]

The type of ip for the interface used as fallback. Required if fallback_address_type is set to interface-address

bi_directional

Data type: Optional[Boolean]

Enable bidirectional translation if you want the firewall to create a corresponding translation (NAT or NPTv6) in the opposite direction of the translation you configure. Note: If you enable bidirectional translation, you must ensure that you have security policies in place to control the traffic in both directions. Without such policies, the bidirectional feature allows packets to be translated automatically in both directions.

destination_translated_address

Data type: Optional[String]

The address to which the packets are translated.

For NPTv6, the prefixes configured for Destination prefix Translated Address must be in the format xxxx:xxxx::/yy. The address cannot have an interface identifier (host) portion defined. The range of supported prefix lengths is /32 to /64.

destination_translated_port

Data type: Optional[String]

The port of the translated address

Note that Translated Port is not supported for NPTv6 because NPTv6 is strictly prefix translation. The Port and Host address section is simply forwarded unchanged.

disable

Data type: Optional[Boolean]

A boolean control to disable the NAT policy.

tags

Data type: Optional[Array[String]]

A policy tag is a keyword or phrase that allows you to sort or filter policies. This is useful when you have defined many policies and want to view those that are tagged with a particular keyword.

insert_after

Data type: Optional[String]

Specifies where the rule should be inserted.

  • If specified with an empty string, the rule will be inserted at the TOP. NOTE: Only one rule should be set to top
  • If a rule name is specified, the rule will be inserted after the given rule.
  • If this attribute is omitted, the rule will be added at the bottom. NOTE: Rules cannot be moved to the bottom once created. Instead specify the rule name to insert after.

Parameters

The following parameters are available in the panos_nat_policy type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,63}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the zone. Restricted to 31 characters on PAN-OS version 7.1.0.

panos_path_monitor

This type provides Puppet with the capabilities to manage IPv4 Path Monitors on Palo Alto devices.

  • Note Can only be configured on PAN-OS 8.1.0 devices.

Properties

The following properties are available in the panos_path_monitor type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

source

Data type: String

Specify the IP address that the firewall will use as the source in the ICMP ping to the monitored destination:

  • If the interface has multiple IP addresses, select one.
  • If you specify an interface, the firewall uses the first IP address assigned to the interface by default.
  • If you specify DHCP (Use DHCP Client address), the firewall uses the address that DHCP assigned to the interface. To see the DHCP address, select NetworkInterfacesEthernet and in the row for the Ethernet interface, click on Dynamic DHCP Client. The IP Address appears in the Dynamic IP Interface Status window.
destination

Data type: String

Specify a robust, stable IP address or address object for which the firewall will monitor the path. The monitored destination and the static route destination must use the same address family (IPv4 or IPv6)

interval

Data type: Optional[String]

Specify the ICMP ping interval in seconds to determine how frequently the firewall monitors the path (pings the monitored destination; range is 1-60; default is 3).

Default value: 3

count

Data type: Optional[String]

Specify the number of consecutive ICMP ping packets that do not return from the monitored destination before the firewall considers the link down. Based on the Any or All failure condition, if path monitoring is in failed state, the firewall removes the static route from the RIB (range is 3-10; default is 5).

For example, a Ping Interval of 3 seconds and Ping Count of 5 missed pings (the firewall receives no ping in the last 15 seconds) means path monitoring detects a link failure. If path monitoring is in failed state and the firewall receives a ping after 15 seconds, the link is deemed up; based on the Any or All failure condition, path monitoring to Any or All monitored destinations can be deemed up, and the Preemptive Hold Time starts.

Default value: 5

enable

Data type: Optional[Boolean]

Select to enable path monitoring of this specific destination for the static route; the firewall sends ICMP pings to this destination.

Parameters

The following parameters are available in the panos_path_monitor type.

path

namevar

Data type: String

The name to identify the path monitor with.

route

namevar

Data type: String

A name to identify the static route which is usually the virtual router name followed by a forward slash.

panos_security_policy_rule

This type provides Puppet with the capilities to manage "Security Policy Rules" on Palo Alto devices.

Properties

The following properties are available in the panos_security_policy_rule type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

rule_type

Data type: Enum["universal", "interzone", "intrazone"]

Specifies whether the rule applies to traffic within a zone, between zones, or both:

  • universal: Applies the rule to all matching interzone and intrazone traffic in the specified source and destination zones. For example, if you create a universal role with source zones A and B and destination zones A and B, the rule would apply to all traffic within zone A, all traffic within zone B, and all traffic from zone A to zone B and all traffic from zone B to zone A.

  • intrazone: Applies the rule to all matching traffic within the specified source zones (you cannot specify a destination zone for intrazone rules). For example, if you set the source zone to A and B, the rule would apply to all traffic within zone A and all traffic within zone B, but not to traffic between zones A and B.

  • interzone: Applies the rule to all matching traffic between the specified source and destination zones. For example, if you set the source zone to A, B, and C and the destination zone to A and B, the rule would apply to traffic from zone A to zone B, from zone B to zone A, from zone C to zone A, and from zone C to zone B, but not traffic within zones A, B, or C.

Default value: universal

description

Data type: Optional[String]

Provide a description of the service.

tags

Data type: Optional[Array[String]]

A policy tag is a keyword or phrase that allows you to sort or filter policies. This is useful when you have defined many policies and want to view those that are tagged with a particular keyword.For example, you may want to tag certain rules with specific words like Decrypt and No-decrypt, or use the name of a specific data center for policies associated with that location.

source_zones

Data type: Array[String]

Zones must be of the same type (Layer 2, Layer 3, or virtual wire).

Multiple zones can be used to simplify management. For example, if you have three different internal zones (Marketing, Sales, and Public Relations) that are all directed to the untrusted destination zone, you can create one rule that covers all cases.

Default value: ["any"]

source_address

Data type: Array[String]

The list of source addresses, address groups, or regions

Default value: ["any"]

negate_source

Data type: Optional[Boolean]

Matches on the reverse of the source_address value.

source_users

Data type: Array[String]

The following source values are supported:

  • ['any']: Include any traffic regardless of user data.

  • ['pre-logon']: Include remote users that are connected to the network using GlobalProtect, but are not logged into their system. When the Pre-logon option is configured on the Portal for GlobalProtect clients, any user who is not currently logged into their machine will be identified with the username pre-logon. You can then create policies for pre-logon users and although the user is not logged in directly, their machines are authenticated on the domain as if they were fully logged in.

  • ['known-user']: Includes all authenticated users, which means any IP with user data mapped. This option is equivalent to the domain users group on a domain.

  • ['unknown']: Includes all unauthenticated users, which means IP addresses that are not mapped to a user. For example, you could use unknown for guest level access to something because they will have an IP on your network but will not be authenticated to the domain and will not have IP to user mapping information on the firewall.

  • Or provide a list of specific users. E.g. ['admin','john.doe','jane.doe']

Note: If you are using a RADIUS server and not the User-ID agent, the list of users does not display; you must enter user information manually.

Default value: ["any"]

hip_profiles

Data type: Array[String]

Specifiy one or more HIP profiles. A HIP enables you to collect information about the security status of your end hosts, such as whether they have the latest security patches and antivirus definitions installed. Using host information profiles for policy enforcement enables granular security that ensures that the remote hosts accessing your critical resources are adequately maintained and in adherence with your security standards before they are allowed access to your network resources.

Default value: ["any"]

destination_zones

Data type: Array[String]

Specify one or more destination zones. Zones must be of the same type (Layer 2, Layer 3, or virtual wire). To define new zones, refer to “Defining Security Zones”. Multiple zones can be used to simplify management. For example, if you have three different internal zones (Marketing, Sales, and Public Relations) that are all directed to the untrusted destination zone, you can create one rule that covers all cases.

Note: On intrazone rules, you cannot define a Destination Zone because these types of rules only match traffic with a source and a destination within the same zone. To specify the zones that match an intrazone rule you only need to set the Source Zone.

Default value: ["any"]

destination_address

Data type: Array[String]

Specify one or more destination addresses, address groups or regions

Default value: ["any"]

negate_destination

Data type: Optional[Boolean]

Matches on the reverse of the destination_address value.

applications

Data type: Array[String]

Select specific applications for the security rule. If an application has multiple functions, you can select the overall application or individual functions. If you select the overall application, all functions are included and the application definition is automatically updated as future functions are added.

Default value: ["any"]

services

Data type: Array[String]

Select services to limit to specific TCP and/or UDP port numbers. The following values are valid:

  • ['any']: The selected applications are allowed or denied on any protocol or port.

  • ['application-default']: The selected applications are allowed or denied only on their default ports defined by Palo Alto Networks®. This option is recommended for allow policies because it prevents applications from running on unusual ports and protocol which, if not intentional, can be a sign of undesired application behavior and usage.

Note that when you use this option, the firewall still checks for all applications on all ports but, with this configuration, applications are only allowed on their default ports and protocols.

  • A list of services. E.g. ['service-http', 'service-https', 'my_custom_service']

Default value: ["application-default"]

categories

Data type: Array[String]

The destination URL categories. The following values are valid:

  • ['any']: Allow or deny all sessions regardless of the URL category.

  • A list of specific categories or custom categories. E.g ['gambling','malware','my_custom_category']

Default value: ["any"]

action

Data type: Enum["deny", "allow", "drop", "reset-client", "reset-server", "reset-both"]

To specify the action for traffic that matches the attributes defined in a rule, select from the following actions:

  • allow: Allows the traffic.

  • deny: Blocks traffic, and enforces the default Deny Action defined for the application that is being denied. To view the deny action defined by default for an application, view the application details in Objects > Applications. Because the default deny action varies by application, the firewall could block the session and send a reset for one application, while it could drop the session silently for another application.

  • drop: Silently drops the application. A TCP reset is not sent to the host/application, unless ICMP Unreachable is set to true.

  • reset-client: Sends a TCP reset to the client-side device.

  • reset-server: Sends a TCP reset to the server-side device.

  • reset-both: Sends a TCP reset to both the client-side and server-side devices.

Default value: allow

icmp_unreachable

Data type: Optional[Boolean]

Only available for Layer 3 interfaces. When you configure security policy to drop traffic or to reset the connection, the traffic does not reach the destination host. In such cases, for all UDP traffic and for TCP traffic that is dropped, you can enable the firewall to send an ICMP Unreachable response to the source IP address from where the traffic originated. Enabling this setting allows the source to gracefully close or clear the session and prevents applications from breaking.

log_start

Data type: Optional[Boolean]

Generates a traffic log entry for the start of a session

log_end

Data type: Optional[Boolean]

Generates a traffic log entry for the end of a session

Default value: true

log_setting

Data type: Optional[String]

To forward the local traffic log and threat log entries to remote destinations, such as Panorama and syslog servers, specifiy which log forwarding profile should be used. Note that the generation of threat log entries is determined by the security profiles.

profile_type

Data type: Optional[Enum["profiles", "group", "none"]]

Specify which type of profile will be used.

group_profile

Data type: Optional[String]

Specify the group profile, can only be set when profile_type is group.

anti_virus_profile

Data type: Optional[String]

Specify the anti-virus profile, can only be set when profile_type is profiles. To unset specify none.

url_filtering_profile

Data type: Optional[String]

Specify the URL filtering profile, can only be set when profile_type is profiles. To unset specify none.

data_filtering_profile

Data type: Optional[String]

Specify the data filtering profile, can only be set when profile_type is profiles. To unset specify none.

file_blocking_profile

Data type: Optional[String]

Specify the file blocking profile, can only be set when profile_type is profiles. To unset specify none.

spyware_profile

Data type: Optional[String]

Specify the spyware profile, can only be set when profile_type is profiles. To unset specify none.

vulnerability_profile

Data type: Optional[String]

Specify the vulnerability profile, can only be set when profile_type is profiles. To unset specify none.

wildfire_analysis_profile

Data type: Optional[String]

Specify the wildfire analysis profile, can only be set when profile_type is profiles. To unset specify none.

schedule_profile

Data type: Optional[String]

Specify the schedule profile to limit the days and times when the rule is in effect

qos_type

Data type: Optional[Enum["follow-c2s-flow", "ip-precedence", "ip-dscp", "none"]]

Specify which QoS profile should be used to change the Quality of Service setting on packets matching the rule.

ip_dscp

Data type: Optional[String]

Specify the IP DSCP QoS marking setting, only if qos_type is ip-dscp.

ip_precedence

Data type: Optional[String]

Specify the IP Precedence QoS marking setting, only if qos_type is ip-precedence.

disable_server_response_inspection

Data type: Optional[Boolean]

To disable packet inspection from the server to the client, enable this option. This option may be useful under heavy server load conditions.

disable

Data type: Optional[Boolean]

Specify if the security policy rule should be disabled.

insert_after

Data type: Optional[String]

Specifies where the rule should be inserted.

  • If specified with an empty string, the rule will be inserted at the TOP. NOTE: Only one rule should be set to top
  • If a rule name is specified, the rule will be inserted after the given rule.
  • If this attribute is omitted, the rule will be added at the bottom. NOTE: Rules cannot be moved to the bottom once created. Instead specify the rule name to insert after.

Parameters

The following parameters are available in the panos_security_policy_rule type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,63}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the security-policy-rule. Restricted to 31 characters on PAN-OS version 7.1.0.

panos_service

This type provides Puppet with the capabilities to manage "service" objects on Palo Alto devices.

Properties

The following properties are available in the panos_service type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

description

Data type: Optional[String]

Provide a description of this service.

protocol

Data type: Enum["tcp", "udp"]

Specify the protocol used by the service

Default value: tcp

port

Data type: String

Port can be a single port number, a range 1-65535, or comma separated values 80, 8080, 443

src_port

Data type: Optional[String]

Port can be a single port number, a range 1-65535, or comma separated values 80, 8080, 443

tags

Data type: Array[String]

The Palo Alto tags to apply to this address-group. Do not confuse this with the tag metaparameter used to filter resource application.

Default value: []

Parameters

The following parameters are available in the panos_service type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,63}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the service.

panos_service_group

This type provides Puppet with the capabilities to manage "Service Group" objects on Palo Alto devices.

Properties

The following properties are available in the panos_service_group type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

services

Data type: Array[String]

An array of panos_service, or panos_service_group that form this group.

tags

Data type: Array[String]

The Palo Alto tags to apply to this service-group. Do not confuse this with the tag metaparameter used to filter resource application.

Default value: []

Parameters

The following parameters are available in the panos_service_group type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,63}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the service-group.

panos_static_route

This type provides Puppet with the capabilities to manage IPv4 Static Routes on Palo Alto devices.

Properties

The following properties are available in the panos_static_route type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

nexthop

Data type: Optional[String]

The address of the next hop location for the route

nexthop_type

Data type: Optional[Enum["ip-address", "next-vr", "discard", "none"]]

The type of address used for the next hop.

  • ip-address: Select to enter the IP address of the next hop router.
  • next-vr: Select to select a virtual router in the firewall as the next hop. This allows you to route internally between virtual routers within a single firewall.
  • discard: Select if you want to drop traffic that is addressed to this destination.
  • none: Select if there is no next hop for the route.
bfd_profile

Data type: String

To enable Bidirectional Forwarding Detection (BFD) for a static route on a PA-3000 Series, PA-3200 Series, PA-5000 Series, PA-5200 Series, PA-7000 Series, or VM-Series firewall, specify one of the following:

  • default: a BFD profile that you have created on the firewall
  • none: to disable BFD for the static route.

To use BFD on a static route:

  • Both the firewall and the peer at the opposite end of the static route must support BFD sessions.
  • The static route nexthop_type must be ip-address and you must enter a valid IP address in nexthop.
  • The interface attribute cannot be none; you must specify an interface (even if you are using a DHCP address).

Default value: None

interface

Data type: Optional[String]

The interface used by the route, interfaces pulled from the virtual router this belongs to.

metric

Data type: Variant[String, Integer[1, 65535]]

Specify a valid metric for the static route (1 - 65535; default is 10).

Default value: 10

admin_distance

Data type: Optional[Variant[String,Integer[10, 240]]]

Specify the administrative distance for the static route (10-240).

destination

Data type: String

Enter an IP address and network mask in Classless Inter-domain Routing (CIDR) notation: ip_address/mask (for example, 192.168.2.0/24 for IPv4 or 2001:db8::/32 for IPv6).

no_install

Data type: Boolean

Select if you do not want to install the route in the forwarding table. The route is retained in the configuration for future reference. Note: can only be set on PAN-OS version 7.1.0.

route_type

Data type: Optional[Enum["unicast", "multicast", "both", "no-install"]]

Specify the route table into which the firewall installs the static route:

  • unicast: Installs the route into the unicast route table.
  • multicast: Installs the route into the multicast route table.
  • both: Installs the route into the unicast and multicast route tables.
  • no-install: Does not install the route in the route table (RIB); the firewall retains the static route for future reference until you delete the route.

Note: can only be set on PAN-OS version 8.1.0.

path_monitoring

Data type: Optional[Boolean]

Specify true to enable path monitoring for the static route.

Note: can only be set on PAN-OS version 8.1.0. Note: must be enabled if using panos_monitor_destinations for the static route.

failure_condition

Data type: Optional[Enum["any", "all"]]

Specify the condition under which the firewall considers the monitored path down and thus the static route down:

  • any: If any one of the monitored destinations for the static route is unreachable by ICMP, the firewall removes the static route from the RIB and FIB and adds the dynamic or static route that has the next lowest metric going to the same destination to the FIB.
  • all: If all of the monitored destinations for the static route are unreachable by ICMP, the firewall removes the static route from the RIB and FIB and adds the dynamic or static route that has the next lowest metric going to the same destination to the FIB.

Specify all to avoid the possibility of a single monitored destination signaling a static route failure when that monitored destination is simply offline for maintenance, for example.

Note: can only be set on PAN-OS version 8.1.0.

enable

Data type: Optional[Boolean]

Specify true to enable path monitoring of this specific destination for the static route; the firewall sends ICMP pings to this destination.

Note: can only be set on PAN-OS version 8.1.0.

hold_time

Data type: Optional[Variant[String, Integer[0, 1440]]]

Specify the number of minutes a downed path monitor must remain in Up stat:the path monitor evaluates all of its member monitored destinations and must remain Up before the firewall reinstalls the static route into the RIB. If the timer expires without the link going down or flapping, the link is deemed stable, path monitor can remain Up, and the firewall can add the static route back into the RIB.

If the link goes down or flaps during the hold time, path monitor fails and the timer restarts when the downed monitor returns to Up state. A Preemptive Hold Time of zero causes the firewall to reinstall the static route into the RIB immediately upon the path monitor coming up. Range is 0-1,440; default is 2.

Note: can only be set on PAN-OS version 8.1.0.

Parameters

The following parameters are available in the panos_static_route type.

route

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,31}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

A name to identify a static route.

vr_name

namevar

Data type: String

The name of the virtual router the static route is associate with.

panos_tag

This type provides Puppet with the capabilities to manage "tags" objects on Palo Alto devices.

Properties

The following properties are available in the panos_tag type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

color

Data type: Optional[String]

The color of the tag

comments

Data type: Optional[String]

Add a label or description to remind you what the tag is used for.

Parameters

The following parameters are available in the panos_tag type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,127}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the tag.

panos_virtual_router

This type provides Puppet with the capabilities to manage "virtual router" objects on Palo Alto devices.

Properties

The following properties are available in the panos_virtual_router type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

interfaces

Data type: Optional[Array[String]]

The color of the tag

ad_static

Data type: String

Static IPv4 Administrative distance. Range is 10-240.

Default value: 10

ad_static_ipv6

Data type: String

Static IPv6 Administrative distance. Range is 10-240.

Default value: 10

ad_ospf_int

Data type: String

OSPF Interface Administrative distance. Range is 10-240.

Default value: 30

ad_ospf_ext

Data type: String

OSPF External Administrative distance. Range is 10-240.

Default value: 110

ad_ospfv3_int

Data type: String

OSPFv3 External Administrative distance. Range is 10-240.

Default value: 30

ad_ospfv3_ext

Data type: String

OSPFv3 Interface Administrative distance. Range is 10-240.

Default value: 110

ad_ibgp

Data type: String

IBGP Administrative distance. Range is 10-240.

Default value: 200

ad_ebgp

Data type: String

EBGP administrative distance. Range is 10-240.

Default value: 20

ad_rip

Data type: String

RIP administrative distance. Range is 10-240.

Default value: 120

Parameters

The following parameters are available in the panos_virtual_router type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-_\s\.]{1,31}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the tag.

panos_zone

This type provides Puppet with the capabilities to manage "zone" objects on Palo Alto devices.

Properties

The following properties are available in the panos_zone type.

ensure

Data type: Enum[present, absent]

Whether this resource should be present or absent on the target system.

Default value: present

network

Data type: Enum["tap", "virtual-wire", "layer2", "layer3", "tunnel"]

The network type of this zone. An interface can belong to only one zone in one virtual system. Note: tunnel can only be set on PAN-OS version 8.1.0.

Default value: layer3

interfaces

Data type: Optional[Array[String]]

One or more interfaces used by this zone.

zone_protection_profile

Data type: Optional[String]

Specify a profile that specifies how the security gateway responds to attacks from this zone

log_setting

Data type: Optional[String]

Specify a log forwarding profile for forwarding zone protection logs to an external system

enable_user_identification

Data type: Optional[Boolean]

If you configured User-ID™ to perform IP address-to-username mapping (discovery), select this option to apply the mapping information to traffic in this zone. If you disable this option, firewall logs, reports, and policies will exclude user mapping information for traffic within the zone.

By default, if you enable this option, the firewall applies user mapping information to the traffic of all subnetworks in the zone. To limit the information to specific subnetworks within the zone, use the include_list and exclude_list.

Note: User-ID performs discovery for the zone only if it falls within the network range that User-ID monitors. If the zone is outside that range, the firewall does not apply user mapping information to the zone traffic even if enable_user_identification is seelcted.

enable_packet_buffer_protection

Data type: Optional[Boolean]

If you have configured Packet Buffer Protection on the device, enable this option to apply the packet buffer protection settings to this zone. Packet buffer protection is applied to the ingress zone only.

Note: can only be set on PAN-OS version 8.1.0.

nsx_service_profile

Data type: Optional[Boolean]

Specify if the zone should have a nsx service profile. Note: can only be set on PAN-OS version 7.1.0.

include_list

Data type: Optional[Array[String]]

By default, if you do not specify subnetworks in this list, the firewall applies the user mapping information it discovers to all the traffic of this zone for use in logs, reports, and policies.

To limit the application of user mapping information to specific subnetworks within the zone, then for each subnetwork click Add and select an address (or address group) object or type the IP address range (for example, 10.1.1.1/24). The exclusion of all other subnetworks is implicit: you do not need to add them to the exclude_list.

Add entries to the exclude_list only to exclude user mapping information for a subset of the subnetworks in the include_list. For example, if you add 10.0.0.0/8 to the Include List and add 10.2.50.0/22 to the exclude_list, the firewall includes user mapping information for all the zone subnetworks of 10.0.0.0/8 except 10.2.50.0/22, and excludes information for all zone subnetworks outside of 10.0.0.0/8. Note that you can only include subnetworks that fall within the network range that User-ID monitors.

exclude_list

Data type: Optional[Array[String]]

To exclude user mapping information for a subset of the subnetworks in the include_list, for each subnetwork to exclude, specify an address (or address group) or type the IP address range.

Note: If you add entries to the Exclude List but not the Include List, the firewall excludes user mapping information for all subnetworks within the zone, not just the subnetworks you added.

Parameters

The following parameters are available in the panos_zone type.

name

namevar

Data type: Pattern[/^[a-zA-z0-9\-\s_\.]{1,31}$/] *this data type contains a regex that may not be accurately reflected in generated documentation

The display-name of the zone.

Tasks

apikey

Retrieve a PAN-OS apikey

Supports noop? false

commit

Commit a candidate configuration to a firewall.

Supports noop? false

set_config

upload and/or apply a configuration to a firewall.

Supports noop? false

Parameters

config_file

Data type: String

The filename of the configuration file to upload

apply

Data type: Boolean

true: upload and immediately apply the config. false: upload the config, without applying

store_config

Retrieve the configuration running on the firewall and save to local file.

Supports noop? false

Parameters

config_file

Data type: String

The filename to save the configuration on Bolt host