fortinet.fortimanager.fmgr_pkg_firewall_policy module – Configure IPv4 policies.

Note

This module is part of the fortinet.fortimanager collection (version 2.8.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install fortinet.fortimanager.

To use it in a playbook, specify: fortinet.fortimanager.fmgr_pkg_firewall_policy.

New in fortinet.fortimanager 1.0.0

Synopsis

  • This module is able to configure a FortiManager device.

  • Examples include all parameters and values which need to be adjusted to data sources before usage.

Parameters

Parameter

Comments

access_token

string

The token to access FortiManager without using username and password.

adom

string / required

The parameter (adom) in requested url.

bypass_validation

boolean

Only set to True when module schema diffs with FortiManager API structure, module continues to execute without validating parameters.

Choices:

  • false ← (default)

  • true

enable_log

boolean

Enable/Disable logging for task.

Choices:

  • false ← (default)

  • true

forticloud_access_token

string

Authenticate Ansible client with forticloud API access token.

pkg

string / required

The parameter (pkg) in requested url.

pkg_firewall_policy

dictionary

The top level parameters set.

_policy_block

integer

Assigned policy block.

action

string

Policy action

Choices:

  • "deny"

  • "accept"

  • "ipsec"

  • "ssl-vpn"

  • "redirect"

  • "isolate"

anti_replay

string

Enable/disable anti-replay check.

Choices:

  • "disable"

  • "enable"

app_category

any

(list or str) Application category ID list.

app_group

any

(list or str) Application group names.

application

any

(list) Application ID list.

application_list

string

Name of an existing Application list.

auth_cert

string

HTTPS server certificate for policy authentication.

auth_path

string

Enable/disable authentication-based routing.

Choices:

  • "disable"

  • "enable"

auth_redirect_addr

string

HTTP-to-HTTPS redirect address for firewall authentication.

auto_asic_offload

string

Enable/disable offloading security profile processing to CP processors.

Choices:

  • "disable"

  • "enable"

av_profile

string

Name of an existing Antivirus profile.

best_route

string

Enable/disable the use of best route.

Choices:

  • "disable"

  • "enable"

block_notification

string

Enable/disable block notification.

Choices:

  • "disable"

  • "enable"

captive_portal_exempt

string

Enable to exempt some users from the captive portal.

Choices:

  • "disable"

  • "enable"

capture_packet

string

Enable/disable capture packets.

Choices:

  • "disable"

  • "enable"

casb_profile

string

Name of an existing CASB profile.

casi_profile

string

CASI profile.

cgn_eif

string

Enable/Disable CGN endpoint independent filtering.

Choices:

  • "disable"

  • "enable"

cgn_eim

string

Enable/Disable CGN endpoint independent mapping

Choices:

  • "disable"

  • "enable"

cgn_log_server_grp

string

NP log server group name

cgn_resource_quota

integer

Resource quota

cgn_session_quota

integer

Session quota

cgn_sw_eif_ctrl

string

Enable/disable software endpoint independent filtering control.

Choices:

  • "disable"

  • "enable"

cifs_profile

string

Name of an existing CIFS profile.

comments

any

(dict or str) Comments.

custom_log_fields

any

(list or str) Custom fields to append to log messages for this policy.

decrypted_traffic_mirror

string

Decrypted traffic mirror.

delay_tcp_npu_session

string

Enable TCP NPU session delay to guarantee packet order of 3-way handshake.

Choices:

  • "disable"

  • "enable"

delay_tcp_npu_sessoin

string

Enable/disable TCP NPU session delay in order to guarantee packet order of 3-way handshake.

Choices:

  • "disable"

  • "enable"

devices

any

(list or str) Names of devices or device groups that can be matched by the policy.

diameter_filter_profile

string

Name of an existing Diameter filter profile.

diffserv_copy

string

Enable to copy packets DiffServ values from sessions original direction to its reply direction.

Choices:

  • "disable"

  • "enable"

diffserv_forward

string

Enable to change packets DiffServ values to the specified diffservcode-forward value.

Choices:

  • "disable"

  • "enable"

diffserv_reverse

string

Enable to change packets reverse

Choices:

  • "disable"

  • "enable"

diffservcode_forward

string

Change packets DiffServ to this value.

diffservcode_rev

string

Change packets reverse

disclaimer

string

Enable/disable user authentication disclaimer.

Choices:

  • "disable"

  • "enable"

  • "user"

  • "domain"

  • "policy"

dlp_profile

string

Name of an existing DLP profile.

dlp_sensor

string

Name of an existing DLP sensor.

dnsfilter_profile

string

Name of an existing DNS filter profile.

dscp_match

string

Enable DSCP check.

Choices:

  • "disable"

  • "enable"

dscp_negate

string

Enable negated DSCP match.

Choices:

  • "disable"

  • "enable"

dscp_value

string

DSCP value.

dsri

string

Enable DSRI to ignore HTTP server responses.

Choices:

  • "disable"

  • "enable"

dstaddr

any

(list or str) Destination address and address group names.

dstaddr6

any

(list or str) Destination IPv6 address name and address group names.

dstaddr6_negate

string

When enabled dstaddr6 specifies what the destination address must NOT be.

Choices:

  • "disable"

  • "enable"

dstaddr_negate

string

When enabled dstaddr specifies what the destination address must NOT be.

Choices:

  • "disable"

  • "enable"

dstintf

any

(list or str) Outgoing

dynamic_shaping

string

Enable/disable dynamic RADIUS defined traffic shaping.

Choices:

  • "disable"

  • "enable"

eif_check

string

Enable/Disable check endpoint-independent-filtering pinhole.

Choices:

  • "disable"

  • "enable"

eif_learn

string

Enable/Disable learning of end-point-independent filtering pinhole.

Choices:

  • "disable"

  • "enable"

email_collect

string

Enable/disable email collection.

Choices:

  • "disable"

  • "enable"

emailfilter_profile

string

Name of an existing email filter profile.

fec

string

Enable/disable Forward Error Correction on traffic matching this policy on a FEC device.

Choices:

  • "disable"

  • "enable"

file_filter_profile

string

Name of an existing file-filter profile.

firewall_session_dirty

string

How to handle sessions if the configuration of this firewall policy changes.

Choices:

  • "check-all"

  • "check-new"

fixedport

string

Enable to prevent source NAT from changing a sessions source port.

Choices:

  • "disable"

  • "enable"

fsso

string

Enable/disable Fortinet Single Sign-On.

Choices:

  • "disable"

  • "enable"

fsso_agent_for_ntlm

string

FSSO agent to use for NTLM authentication.

fsso_groups

any

(list or str) Names of FSSO groups.

geoip_anycast

string

Enable/disable recognition of anycast IP addresses using the geography IP database.

Choices:

  • "disable"

  • "enable"

geoip_match

string

Match geography address based either on its physical location or registered location.

Choices:

  • "physical-location"

  • "registered-location"

global_label

string

Label for the policy that appears when the GUI is in Global View mode.

groups

any

(list or str) Names of user groups that can authenticate with this policy.

gtp_profile

string

GTP profile.

http_policy_redirect

string

Redirect HTTP

Choices:

  • "disable"

  • "enable"

icap_profile

string

Name of an existing ICAP profile.

identity_based_route

string

Name of identity-based routing rule.

inbound

string

Policy-based IPsec VPN

Choices:

  • "disable"

  • "enable"

inspection_mode

string

Policy inspection mode

Choices:

  • "proxy"

  • "flow"

internet_service

string

Enable/disable use of Internet Services for this policy.

Choices:

  • "disable"

  • "enable"

internet_service6

string

Enable/disable use of IPv6 Internet Services for this policy.

Choices:

  • "disable"

  • "enable"

internet_service6_custom

any

(list) Custom IPv6 Internet Service name.

internet_service6_custom_group

any

(list) Custom Internet Service6 group name.

internet_service6_group

any

(list) Internet Service group name.

internet_service6_name

any

(list) IPv6 Internet Service name.

internet_service6_negate

string

When enabled internet-service6 specifies what the service must NOT be.

Choices:

  • "disable"

  • "enable"

internet_service6_src

string

Enable/disable use of IPv6 Internet Services in source for this policy.

Choices:

  • "disable"

  • "enable"

internet_service6_src_custom

any

(list) Custom IPv6 Internet Service source name.

internet_service6_src_custom_group

any

(list) Custom Internet Service6 source group name.

internet_service6_src_group

any

(list) Internet Service6 source group name.

internet_service6_src_name

any

(list) IPv6 Internet Service source name.

internet_service6_src_negate

string

When enabled internet-service6-src specifies what the service must NOT be.

Choices:

  • "disable"

  • "enable"

internet_service_custom

any

(list or str) Custom Internet Service Name.

internet_service_custom_group

any

(list or str) Custom Internet Service group name.

internet_service_group

any

(list or str) Internet Service group name.

internet_service_id

any

(list or str) Internet Service ID.

internet_service_name

any

(list or str) Internet Service name.

internet_service_negate

string

When enabled internet-service specifies what the service must NOT be.

Choices:

  • "disable"

  • "enable"

internet_service_src

string

Enable/disable use of Internet Services in source for this policy.

Choices:

  • "disable"

  • "enable"

internet_service_src_custom

any

(list or str) Custom Internet Service source name.

internet_service_src_custom_group

any

(list or str) Custom Internet Service source group name.

internet_service_src_group

any

(list or str) Internet Service source group name.

internet_service_src_id

any

(list or str) Internet Service source ID.

internet_service_src_name

any

(list or str) Internet Service source name.

internet_service_src_negate

string

When enabled internet-service-src specifies what the service must NOT be.

Choices:

  • "disable"

  • "enable"

ip_version_type

string

IP version of the policy.

ippool

string

Enable to use IP Pools for source NAT.

Choices:

  • "disable"

  • "enable"

ips_sensor

string

Name of an existing IPS sensor.

ips_voip_filter

string

Name of an existing VoIP

label

string

Label for the policy that appears when the GUI is in Section View mode.

learning_mode

string

Enable to allow everything, but log all of the meaningful data for security information gathering.

Choices:

  • "disable"

  • "enable"

log_http_transaction

string

Enable/disable HTTP transaction log.

Choices:

  • "disable"

  • "enable"

  • "all"

  • "utm"

logtraffic

string

Enable or disable logging.

Choices:

  • "disable"

  • "enable"

  • "all"

  • "utm"

logtraffic_start

string

Record logs when a session starts and ends.

Choices:

  • "disable"

  • "enable"

match_vip

string

Enable to match packets that have had their destination addresses changed by a VIP.

Choices:

  • "disable"

  • "enable"

match_vip_only

string

Enable/disable matching of only those packets that have had their destination addresses changed by a VIP.

Choices:

  • "disable"

  • "enable"

mms_profile

string

Name of an existing MMS profile.

name

string

Policy name.

nat

string

Enable/disable source NAT.

Choices:

  • "disable"

  • "enable"

nat46

string

Enable/disable NAT46.

Choices:

  • "disable"

  • "enable"

nat64

string

Enable/disable NAT64.

Choices:

  • "disable"

  • "enable"

natinbound

string

Policy-based IPsec VPN

Choices:

  • "disable"

  • "enable"

natip

string

Policy-based IPsec VPN

natoutbound

string

Policy-based IPsec VPN

Choices:

  • "disable"

  • "enable"

network_service_dynamic

any

(list) Dynamic Network Service name.

network_service_src_dynamic

any

(list) Dynamic Network Service source name.

np_accelation

string

Enable/disable UTM Network Processor acceleration.

Choices:

  • "disable"

  • "enable"

np_acceleration

string

Enable/disable UTM Network Processor acceleration.

Choices:

  • "disable"

  • "enable"

ntlm

string

Enable/disable NTLM authentication.

Choices:

  • "disable"

  • "enable"

ntlm_enabled_browsers

any

(list) HTTP-User-Agent value of supported browsers.

ntlm_guest

string

Enable/disable NTLM guest user access.

Choices:

  • "disable"

  • "enable"

object_position

list / elements=string

Object position.

outbound

string

Policy-based IPsec VPN

Choices:

  • "disable"

  • "enable"

passive_wan_health_measurement

string

Enable/disable passive WAN health measurement.

Choices:

  • "disable"

  • "enable"

pcp_inbound

string

Enable/disable PCP inbound DNAT.

Choices:

  • "disable"

  • "enable"

pcp_outbound

string

Enable/disable PCP outbound SNAT.

Choices:

  • "disable"

  • "enable"

pcp_poolname

any

(list) PCP pool names.

per_ip_shaper

string

Per-IP traffic shaper.

permit_any_host

string

Accept UDP packets from any host.

Choices:

  • "disable"

  • "enable"

permit_stun_host

string

Accept UDP packets from any Session Traversal Utilities for NAT

Choices:

  • "disable"

  • "enable"

pfcp_profile

string

PFCP profile.

policy_behaviour_type

string

Behaviour of the policy.

policy_expiry

string

Enable/disable policy expiry.

Choices:

  • "disable"

  • "enable"

policy_expiry_date

string

Policy expiry date

policy_expiry_date_utc

string

Policy expiry date and time, in epoch format.

policy_offload

string

Enable/Disable hardware session setup for CGNAT.

Choices:

  • "disable"

  • "enable"

policyid

integer / required

Policy ID.

poolname

any

(list or str) IP Pool names.

poolname6

any

(list or str) IPv6 pool names.

port_preserve

string

Enable/disable preservation of the original source port from source NAT if it has not been used.

Choices:

  • "disable"

  • "enable"

profile_group

string

Name of profile group.

profile_protocol_options

string

Name of an existing Protocol options profile.

profile_type

string

Determine whether the firewall policy allows security profile groups or single profiles only.

Choices:

  • "single"

  • "group"

radius_ip_auth_bypass

string

Enable IP authentication bypass.

Choices:

  • "disable"

  • "enable"

radius_mac_auth_bypass

string

Enable MAC authentication bypass.

Choices:

  • "disable"

  • "enable"

redirect_url

string

URL users are directed to after seeing and accepting the disclaimer or authenticating.

replacemsg_override_group

string

Override the default replacement message group for this policy.

reputation_direction

string

Direction of the initial traffic for reputation to take effect.

Choices:

  • "source"

  • "destination"

reputation_direction6

string

Direction of the initial traffic for IPv6 reputation to take effect.

Choices:

  • "source"

  • "destination"

reputation_minimum

integer

Minimum Reputation to take action.

reputation_minimum6

integer

IPv6 Minimum Reputation to take action.

rsso

string

Enable/disable RADIUS single sign-on

Choices:

  • "disable"

  • "enable"

rtp_addr

any

(list or str) Address names if this is an RTP NAT policy.

rtp_nat

string

Enable Real Time Protocol

Choices:

  • "disable"

  • "enable"

scan_botnet_connections

string

Block or monitor connections to Botnet servers or disable Botnet scanning.

Choices:

  • "disable"

  • "block"

  • "monitor"

schedule

string

Schedule name.

schedule_timeout

string

Enable to force current sessions to end when the schedule object times out.

Choices:

  • "disable"

  • "enable"

sctp_filter_profile

string

Name of an existing SCTP filter profile.

send_deny_packet

string

Enable to send a reply when a session is denied or blocked by a firewall policy.

Choices:

  • "disable"

  • "enable"

service

any

(list or str) Service and service group names.

service_negate

string

When enabled service specifies what the service must NOT be.

Choices:

  • "disable"

  • "enable"

session_ttl

any

(int or str) Session TTL in seconds for sessions accepted by this policy.

sgt

any

(list) Security group tags.

sgt_check

string

Enable/disable security group tags

Choices:

  • "disable"

  • "enable"

spamfilter_profile

string

Name of an existing Spam filter profile.

src_vendor_mac

any

(list or str) Vendor MAC source ID.

srcaddr

any

(list or str) Source address and address group names.

srcaddr6

any

(list or str) Source IPv6 address name and address group names.

srcaddr6_negate

string

When enabled srcaddr6 specifies what the source address must NOT be.

Choices:

  • "disable"

  • "enable"

srcaddr_negate

string

When enabled srcaddr specifies what the source address must NOT be.

Choices:

  • "disable"

  • "enable"

srcintf

any

(list or str) Incoming

ssh_filter_profile

string

Name of an existing SSH filter profile.

ssh_policy_redirect

string

Redirect SSH traffic to matching transparent proxy policy.

Choices:

  • "disable"

  • "enable"

ssl_mirror

string

Enable to copy decrypted SSL traffic to a FortiGate interface

Choices:

  • "disable"

  • "enable"

ssl_mirror_intf

any

(list or str) SSL mirror interface name.

ssl_ssh_profile

string

Name of an existing SSL SSH profile.

status

string

Enable or disable this policy.

Choices:

  • "disable"

  • "enable"

tags

string

Names of object-tags applied to this policy.

tcp_mss_receiver

integer

Receiver TCP maximum segment size

tcp_mss_sender

integer

Sender TCP maximum segment size

tcp_session_without_syn

string

Enable/disable creation of TCP session without SYN flag.

Choices:

  • "all"

  • "data-only"

  • "disable"

tcp_timeout_pid

string

TCP timeout profile ID

timeout_send_rst

string

Enable/disable sending RST packets when TCP sessions expire.

Choices:

  • "disable"

  • "enable"

tos

string

ToS

tos_mask

string

Non-zero bit positions are used for comparison while zero bit positions are ignored.

tos_negate

string

Enable negated TOS match.

Choices:

  • "disable"

  • "enable"

traffic_shaper

string

Traffic shaper.

traffic_shaper_reverse

string

Reverse traffic shaper.

udp_timeout_pid

string

UDP timeout profile ID

url_category

any

(list or str) URL category ID list.

users

any

(list or str) Names of individual users that can authenticate with this policy.

utm_status

string

Enable to add one or more security profiles

Choices:

  • "disable"

  • "enable"

uuid

string

Universally Unique Identifier

videofilter_profile

string

Name of an existing VideoFilter profile.

virtual_patch_profile

string

Name of an existing virtual-patch profile.

vlan_cos_fwd

integer

VLAN forward direction user priority

vlan_cos_rev

integer

VLAN reverse direction user priority

vlan_filter

string

Set VLAN filters.

voip_profile

string

Name of an existing VoIP profile.

vpn_dst_node

list / elements=dictionary

Vpn dst node.

host

string

Host.

seq

integer

Seq.

subnet

string

Subnet.

vpn_src_node

list / elements=dictionary

Vpn src node.

host

string

Host.

seq

integer

Seq.

subnet

string

Subnet.

vpntunnel

string

Policy-based IPsec VPN

waf_profile

string

Name of an existing Web application firewall profile.

wanopt

string

Enable/disable WAN optimization.

Choices:

  • "disable"

  • "enable"

wanopt_detection

string

WAN optimization auto-detection mode.

Choices:

  • "active"

  • "passive"

  • "off"

wanopt_passive_opt

string

WAN optimization passive mode options.

Choices:

  • "default"

  • "transparent"

  • "non-transparent"

wanopt_peer

string

WAN optimization peer.

wanopt_profile

string

WAN optimization profile.

wccp

string

Enable/disable forwarding traffic matching this policy to a configured WCCP server.

Choices:

  • "disable"

  • "enable"

webcache

string

Enable/disable web cache.

Choices:

  • "disable"

  • "enable"

webcache_https

string

Enable/disable web cache for HTTPS.

Choices:

  • "disable"

  • "ssl-server"

  • "any"

  • "enable"

webfilter_profile

string

Name of an existing Web filter profile.

webproxy_forward_server

string

Webproxy forward server name.

webproxy_profile

string

Webproxy profile name.

wsso

string

Enable/disable WiFi Single Sign On

Choices:

  • "disable"

  • "enable"

ztna_device_ownership

string

Enable/disable zero trust device ownership.

Choices:

  • "disable"

  • "enable"

ztna_ems_tag

any

(list or str) Source ztna-ems-tag names.

ztna_ems_tag_secondary

any

(list) Source ztna-ems-tag-secondary names.

ztna_geo_tag

any

(list or str) Source ztna-geo-tag names.

ztna_policy_redirect

string

Redirect ZTNA traffic to matching Access-Proxy proxy-policy.

Choices:

  • "disable"

  • "enable"

ztna_status

string

Enable/disable zero trust access.

Choices:

  • "disable"

  • "enable"

ztna_tags_match_logic

string

ZTNA tag matching logic.

Choices:

  • "or"

  • "and"

proposed_method

string

The overridden method for the underlying Json RPC request.

Choices:

  • "update"

  • "set"

  • "add"

rc_failed

list / elements=integer

The rc codes list with which the conditions to fail will be overriden.

rc_succeeded

list / elements=integer

The rc codes list with which the conditions to succeed will be overriden.

state

string / required

The directive to create, update or delete an object.

Choices:

  • "present"

  • "absent"

workspace_locking_adom

string

The adom to lock for FortiManager running in workspace mode, the value can be global and others including root.

workspace_locking_timeout

integer

The maximum time in seconds to wait for other user to release the workspace lock.

Default: 300

Notes

Note

  • Starting in version 2.4.0, all input arguments are named using the underscore naming convention (snake_case). Please change the arguments such as “var-name” to “var_name”. Old argument names are still available yet you will receive deprecation warnings. You can ignore this warning by setting deprecation_warnings=False in ansible.cfg.

  • Running in workspace locking mode is supported in this FortiManager module, the top level parameters workspace_locking_adom and workspace_locking_timeout help do the work.

  • To create or update an object, use state present directive.

  • To delete an object, use state absent directive.

  • Normally, running one module can fail when a non-zero rc is returned. you can also override the conditions to fail or succeed with parameters rc_failed and rc_succeeded

Examples

- name: Example playbook
  hosts: fortimanagers
  connection: httpapi
  vars:
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_httpapi_port: 443
  tasks:
    - name: Configure IPv4 policies.
      fortinet.fortimanager.fmgr_pkg_firewall_policy:
        bypass_validation: false
        adom: ansible
        pkg: ansible # package name
        state: present
        pkg_firewall_policy:
          action: accept # <value in [deny, accept, ipsec, ...]>
          comments: ansible-comment
          dstaddr: all
          dstintf: any
          # name: ansible-test-policy
          nat: disable
          policyid: 1
          schedule: always
          service: ALL
          srcaddr: all
          srcintf: any
          status: disable

- name: Gathering fortimanager facts
  hosts: fortimanagers
  gather_facts: false
  connection: httpapi
  vars:
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_httpapi_port: 443
  tasks:
    - name: Retrieve all the IPv4 policies
      fortinet.fortimanager.fmgr_fact:
        facts:
          selector: "pkg_firewall_policy"
          params:
            adom: "ansible"
            pkg: "ansible" # package name
            policy: "your_value"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

meta

dictionary

The result of the request.

Returned: always

request_url

string

The full url requested.

Returned: always

Sample: "/sys/login/user"

response_code

integer

The status of api request.

Returned: always

Sample: 0

response_data

list / elements=string

The api response.

Returned: always

response_message

string

The descriptive message of the api response.

Returned: always

Sample: "OK."

system_information

dictionary

The information of the target system.

Returned: always

rc

integer

The status the request.

Returned: always

Sample: 0

version_check_warning

list / elements=string

Warning if the parameters used in the playbook are not supported by the current FortiManager version.

Returned: complex

Authors

  • Xinwei Du (@dux-fortinet)

  • Xing Li (@lix-fortinet)

  • Jie Xue (@JieX19)

  • Link Zheng (@chillancezen)

  • Frank Shen (@fshen01)

  • Hongbin Lu (@fgtdev-hblu)