fortios_firewall_security_policy – Configure NGFW IPv4/IPv6 application policies in Fortinet’s FortiOS and FortiGate.¶
New in version 2.0.0.
Synopsis¶
- This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify firewall feature and security_policy category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.0
FortiOS Version Compatibility¶
v6.2.0 |
v6.2.3 |
v6.2.5 |
v6.2.7 |
v6.4.0 |
v6.4.1 |
v6.4.4 |
v7.0.0 |
v7.0.1 |
v7.0.2 |
v7.0.3 |
v7.0.4 |
v7.0.5 |
v7.0.6 |
v7.0.7 |
v7.0.8 |
v7.2.0 |
v7.2.1 |
v7.2.2 |
|
fortios_firewall_security_policy | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
Parameters¶
- access_token - Token-based authentication. Generated from GUI of Fortigate. type: str required: false
- enable_log - Enable/Disable logging for task. type: bool required: false default: False
- vdom - Virtual domain, among those defined previously. A vdom is a virtual instance of the FortiGate that can be configured and used as a different unit. type: str default: root
- member_path - Member attribute path to operate on. type: str
- member_state - Add or delete a member under specified attribute path. type: str choices: present, absent
- state - Indicates whether to create or remove the object. type: str required: true choices: present, absent
- firewall_security_policy - Configure NGFW IPv4/IPv6 application policies. type: dict more...
- action - Policy action (accept/deny). type: str choices: accept, deny more...
- app_category - Application category ID list. type: list more...
- id - Category IDs. type: int more...
- app_group - Application group names. type: list more...
- name - Application group names. Source application.group.name. type: str more...
- application - Application ID list. type: list more...
- id - Application IDs. type: int more...
- application_list - Name of an existing Application list. Source application.list.name. type: str more...
- av_profile - Name of an existing Antivirus profile. Source antivirus.profile.name. type: str more...
- cifs_profile - Name of an existing CIFS profile. Source cifs.profile.name. type: str more...
- comments - Comment. type: str more...
- dlp_profile - Name of an existing DLP profile. Source dlp.profile.name. type: str more...
- dlp_sensor - Name of an existing DLP sensor. Source dlp.sensor.name. type: str more...
- dnsfilter_profile - Name of an existing DNS filter profile. Source dnsfilter.profile.name. type: str more...
- dstaddr - Destination IPv4 address name and address group names. type: list more...
- name - Address name. Source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name system.external-resource .name. type: str more...
- dstaddr_negate - When enabled dstaddr specifies what the destination address must NOT be. type: str choices: enable, disable more...
- dstaddr4 - Destination IPv4 address name and address group names. type: list more...
- name - Address name. Source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name. type: str more...
- dstaddr6 - Destination IPv6 address name and address group names. type: list more...
- name - Address name. Source firewall.address6.name firewall.addrgrp6.name firewall.vip6.name firewall.vipgrp6.name system .external-resource.name. type: str more...
- dstintf - Outgoing (egress) interface. type: list more...
- name - Interface name. Source system.interface.name system.zone.name system.sdwan.zone.name. type: str more...
- emailfilter_profile - Name of an existing email filter profile. Source emailfilter.profile.name. type: str more...
- enforce_default_app_port - Enable/disable default application port enforcement for allowed applications. type: str choices: enable, disable more...
- file_filter_profile - Name of an existing file-filter profile. Source file-filter.profile.name. type: str more...
- fsso_groups - Names of FSSO groups. type: list more...
- name - Names of FSSO groups. Source user.adgrp.name. type: str more...
- global_label - Label for the policy that appears when the GUI is in Global View mode. type: str more...
- groups - Names of user groups that can authenticate with this policy. type: list more...
- name - User group name. Source user.group.name. type: str more...
- icap_profile - Name of an existing ICAP profile. Source icap.profile.name. type: str more...
- internet_service - Enable/disable use of Internet Services for this policy. If enabled, destination address, service and default application port enforcement are not used. type: str choices: enable, disable more...
- internet_service_custom - Custom Internet Service name. type: list more...
- name - Custom Internet Service name. Source firewall.internet-service-custom.name. type: str more...
- internet_service_custom_group - Custom Internet Service group name. type: list more...
- name - Custom Internet Service group name. Source firewall.internet-service-custom-group.name. type: str more...
- internet_service_group - Internet Service group name. type: list more...
- name - Internet Service group name. Source firewall.internet-service-group.name. type: str more...
- internet_service_id - Internet Service ID. type: list more...
- id - Internet Service ID. Source firewall.internet-service.id. type: int more...
- internet_service_name - Internet Service name. type: list more...
- name - Internet Service name. Source firewall.internet-service-name.name. type: str more...
- internet_service_negate - When enabled internet-service specifies what the service must NOT be. type: str choices: enable, disable more...
- internet_service_src - Enable/disable use of Internet Services in source for this policy. If enabled, source address is not used. type: str choices: enable, disable more...
- internet_service_src_custom - Custom Internet Service source name. type: list more...
- name - Custom Internet Service name. Source firewall.internet-service-custom.name. type: str more...
- internet_service_src_custom_group - Custom Internet Service source group name. type: list more...
- name - Custom Internet Service group name. Source firewall.internet-service-custom-group.name. type: str more...
- internet_service_src_group - Internet Service source group name. type: list more...
- name - Internet Service group name. Source firewall.internet-service-group.name. type: str more...
- internet_service_src_id - Internet Service source ID. type: list more...
- id - Internet Service ID. Source firewall.internet-service.id. type: int more...
- internet_service_src_name - Internet Service source name. type: list more...
- name - Internet Service name. Source firewall.internet-service-name.name. type: str more...
- internet_service_src_negate - When enabled internet-service-src specifies what the service must NOT be. type: str choices: enable, disable more...
- internet_service6 - Enable/disable use of IPv6 Internet Services for this policy. If enabled, destination address, service and default application port enforcement are not used. type: str choices: enable, disable more...
- internet_service6_custom - Custom IPv6 Internet Service name. type: list more...
- name - Custom IPv6 Internet Service name. Source . type: str more...
- internet_service6_custom_group - Custom IPv6 Internet Service group name. type: list more...
- name - Custom IPv6 Internet Service group name. Source . type: str more...
- internet_service6_group - Internet Service group name. type: list more...
- name - Internet Service group name. Source . type: str more...
- internet_service6_name - IPv6 Internet Service name. type: list more...
- name - IPv6 Internet Service name. Source . type: str more...
- internet_service6_negate - When enabled internet-service6 specifies what the service must NOT be. type: str choices: enable, disable more...
- internet_service6_src - Enable/disable use of IPv6 Internet Services in source for this policy. If enabled, source address is not used. type: str choices: enable, disable more...
- internet_service6_src_custom - Custom IPv6 Internet Service source name. type: list more...
- name - Custom Internet Service name. Source . type: str more...
- internet_service6_src_custom_group - Custom Internet Service6 source group name. type: list more...
- name - Custom Internet Service6 group name. Source . type: str more...
- internet_service6_src_group - Internet Service6 source group name. type: list more...
- name - Internet Service group name. Source . type: str more...
- internet_service6_src_name - IPv6 Internet Service source name. type: list more...
- name - Internet Service name. Source . type: str more...
- internet_service6_src_negate - When enabled internet-service6-src specifies what the service must NOT be. type: str choices: enable, disable more...
- ips_sensor - Name of an existing IPS sensor. Source ips.sensor.name. type: str more...
- learning_mode - Enable to allow everything, but log all of the meaningful data for security information gathering. A learning report will be generated. type: str choices: enable, disable more...
- logtraffic - Enable or disable logging. Log all sessions or security profile sessions. type: str choices: all, utm, disable more...
- logtraffic_start - Record logs when a session starts. type: str choices: enable, disable more...
- mms_profile - Name of an existing MMS profile. Source firewall.mms-profile.name. type: str more...
- name - Policy name. type: str more...
- nat46 - Enable/disable NAT46. type: str choices: enable, disable more...
- nat64 - Enable/disable NAT64. type: str choices: enable, disable more...
- policyid - Policy ID. type: int required: true more...
- profile_group - Name of profile group. Source firewall.profile-group.name. type: str more...
- profile_protocol_options - Name of an existing Protocol options profile. Source firewall.profile-protocol-options.name. type: str more...
- profile_type - Determine whether the firewall policy allows security profile groups or single profiles only. type: str choices: single, group more...
- schedule - Schedule name. Source firewall.schedule.onetime.name firewall.schedule.recurring.name firewall.schedule.group.name. type: str more...
- sctp_filter_profile - Name of an existing SCTP filter profile. Source sctp-filter.profile.name. type: str more...
- send_deny_packet - Enable to send a reply when a session is denied or blocked by a firewall policy. type: str choices: disable, enable more...
- service - Service and service group names. type: list more...
- name - Service name. Source firewall.service.custom.name firewall.service.group.name. type: str more...
- service_negate - When enabled service specifies what the service must NOT be. type: str choices: enable, disable more...
- srcaddr - Source IPv4 address name and address group names. type: list more...
- name - Address name. Source firewall.address.name firewall.addrgrp.name system.external-resource.name. type: str more...
- srcaddr_negate - When enabled srcaddr specifies what the source address must NOT be. type: str choices: enable, disable more...
- srcaddr4 - Source IPv4 address name and address group names. type: list more...
- name - Address name. Source firewall.address.name firewall.addrgrp.name. type: str more...
- srcaddr6 - Source IPv6 address name and address group names. type: list more...
- name - Address name. Source firewall.address6.name firewall.addrgrp6.name system.external-resource.name. type: str more...
- srcintf - Incoming (ingress) interface. type: list more...
- name - Interface name. Source system.interface.name system.zone.name system.sdwan.zone.name. type: str more...
- ssh_filter_profile - Name of an existing SSH filter profile. Source ssh-filter.profile.name. type: str more...
- ssl_ssh_profile - Name of an existing SSL SSH profile. Source firewall.ssl-ssh-profile.name. type: str more...
- status - Enable or disable this policy. type: str choices: enable, disable more...
- url_category - URL categories or groups. type: list
- users - Names of individual users that can authenticate with this policy. type: list more...
- name - User name. Source user.local.name. type: str more...
- utm_status - Enable security profiles. type: str choices: enable, disable more...
- uuid - Universally Unique Identifier (UUID; automatically assigned but can be manually reset). type: str more...
- uuid_idx - uuid-idx type: int more...
- videofilter_profile - Name of an existing VideoFilter profile. Source videofilter.profile.name. type: str more...
- voip_profile - Name of an existing VoIP profile. Source voip.profile.name. type: str more...
- webfilter_profile - Name of an existing Web filter profile. Source webfilter.profile.name. type: str more...
Examples¶
- hosts: fortigates
collections:
- fortinet.fortios
connection: httpapi
vars:
vdom: "root"
ansible_httpapi_use_ssl: yes
ansible_httpapi_validate_certs: no
ansible_httpapi_port: 443
tasks:
- name: Configure NGFW IPv4/IPv6 application policies.
fortios_firewall_security_policy:
vdom: "{{ vdom }}"
state: "present"
access_token: "<your_own_value>"
firewall_security_policy:
action: "accept"
app_category:
-
id: "5"
app_group:
-
name: "default_name_7 (source application.group.name)"
application:
-
id: "9"
application_list: "<your_own_value> (source application.list.name)"
av_profile: "<your_own_value> (source antivirus.profile.name)"
cifs_profile: "<your_own_value> (source cifs.profile.name)"
comments: "<your_own_value>"
dlp_profile: "<your_own_value> (source dlp.profile.name)"
dlp_sensor: "<your_own_value> (source dlp.sensor.name)"
dnsfilter_profile: "<your_own_value> (source dnsfilter.profile.name)"
dstaddr:
-
name: "default_name_18 (source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name system.external-resource.name)"
dstaddr_negate: "enable"
dstaddr4:
-
name: "default_name_21 (source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name)"
dstaddr6:
-
name: "default_name_23 (source firewall.address6.name firewall.addrgrp6.name firewall.vip6.name firewall.vipgrp6.name system.external-resource
.name)"
dstintf:
-
name: "default_name_25 (source system.interface.name system.zone.name system.sdwan.zone.name)"
emailfilter_profile: "<your_own_value> (source emailfilter.profile.name)"
enforce_default_app_port: "enable"
file_filter_profile: "<your_own_value> (source file-filter.profile.name)"
fsso_groups:
-
name: "default_name_30 (source user.adgrp.name)"
global_label: "<your_own_value>"
groups:
-
name: "default_name_33 (source user.group.name)"
icap_profile: "<your_own_value> (source icap.profile.name)"
internet_service: "enable"
internet_service_custom:
-
name: "default_name_37 (source firewall.internet-service-custom.name)"
internet_service_custom_group:
-
name: "default_name_39 (source firewall.internet-service-custom-group.name)"
internet_service_group:
-
name: "default_name_41 (source firewall.internet-service-group.name)"
internet_service_id:
-
id: "43 (source firewall.internet-service.id)"
internet_service_name:
-
name: "default_name_45 (source firewall.internet-service-name.name)"
internet_service_negate: "enable"
internet_service_src: "enable"
internet_service_src_custom:
-
name: "default_name_49 (source firewall.internet-service-custom.name)"
internet_service_src_custom_group:
-
name: "default_name_51 (source firewall.internet-service-custom-group.name)"
internet_service_src_group:
-
name: "default_name_53 (source firewall.internet-service-group.name)"
internet_service_src_id:
-
id: "55 (source firewall.internet-service.id)"
internet_service_src_name:
-
name: "default_name_57 (source firewall.internet-service-name.name)"
internet_service_src_negate: "enable"
internet_service6: "enable"
internet_service6_custom:
-
name: "default_name_61 (source )"
internet_service6_custom_group:
-
name: "default_name_63 (source )"
internet_service6_group:
-
name: "default_name_65 (source )"
internet_service6_name:
-
name: "default_name_67 (source )"
internet_service6_negate: "enable"
internet_service6_src: "enable"
internet_service6_src_custom:
-
name: "default_name_71 (source )"
internet_service6_src_custom_group:
-
name: "default_name_73 (source )"
internet_service6_src_group:
-
name: "default_name_75 (source )"
internet_service6_src_name:
-
name: "default_name_77 (source )"
internet_service6_src_negate: "enable"
ips_sensor: "<your_own_value> (source ips.sensor.name)"
learning_mode: "enable"
logtraffic: "all"
logtraffic_start: "enable"
mms_profile: "<your_own_value> (source firewall.mms-profile.name)"
name: "default_name_84"
nat46: "enable"
nat64: "enable"
policyid: "0"
profile_group: "<your_own_value> (source firewall.profile-group.name)"
profile_protocol_options: "<your_own_value> (source firewall.profile-protocol-options.name)"
profile_type: "single"
schedule: "<your_own_value> (source firewall.schedule.onetime.name firewall.schedule.recurring.name firewall.schedule.group.name)"
sctp_filter_profile: "<your_own_value> (source sctp-filter.profile.name)"
send_deny_packet: "disable"
service:
-
name: "default_name_95 (source firewall.service.custom.name firewall.service.group.name)"
service_negate: "enable"
srcaddr:
-
name: "default_name_98 (source firewall.address.name firewall.addrgrp.name system.external-resource.name)"
srcaddr_negate: "enable"
srcaddr4:
-
name: "default_name_101 (source firewall.address.name firewall.addrgrp.name)"
srcaddr6:
-
name: "default_name_103 (source firewall.address6.name firewall.addrgrp6.name system.external-resource.name)"
srcintf:
-
name: "default_name_105 (source system.interface.name system.zone.name system.sdwan.zone.name)"
ssh_filter_profile: "<your_own_value> (source ssh-filter.profile.name)"
ssl_ssh_profile: "<your_own_value> (source firewall.ssl-ssh-profile.name)"
status: "enable"
url_category: "<your_own_value>"
users:
-
name: "default_name_111 (source user.local.name)"
utm_status: "enable"
uuid: "<your_own_value>"
uuid_idx: "2147483647"
videofilter_profile: "<your_own_value> (source videofilter.profile.name)"
voip_profile: "<your_own_value> (source voip.profile.name)"
webfilter_profile: "<your_own_value> (source webfilter.profile.name)"
Return Values¶
Common return values are documented: https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values, the following are the fields unique to this module:
- build - Build number of the fortigate image returned: always type: str sample: 1547
- http_method - Last method used to provision the content into FortiGate returned: always type: str sample: PUT
- http_status - Last result given by FortiGate on last operation applied returned: always type: str sample: 200
- mkey - Master key (id) used in the last call to FortiGate returned: success type: str sample: id
- name - Name of the table used to fulfill the request returned: always type: str sample: urlfilter
- path - Path of the table used to fulfill the request returned: always type: str sample: webfilter
- revision - Internal revision number returned: always type: str sample: 17.0.2.10658
- serial - Serial number of the unit returned: always type: str sample: FGVMEVYYQT3AB5352
- status - Indication of the operation's result returned: always type: str sample: success
- vdom - Virtual domain used returned: always type: str sample: root
- version - Version of the FortiGate returned: always type: str sample: v5.6.3