fortinet.fortios.fortios_firewall_security_policy (2.3.6) — module

Configure NGFW IPv4/IPv6 application policies in Fortinet's FortiOS and FortiGate.

| "added in version" 2.0.0 of fortinet.fortios"

Authors: Link Zheng (@chillancezen), Jie Xue (@JieX19), Hongbin Lu (@fgtdev-hblu), Frank Shen (@frankshen01), Miguel Angel Munoz (@mamunozgonzalez), Nicolas Thomas (@thomnico)

preview | supported by community

Install collection

Install with ansible-galaxy collection install fortinet.fortios:==2.3.6


Add to requirements.yml

  collections:
    - name: fortinet.fortios
      version: 2.3.6

Description

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


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Configure NGFW IPv4/IPv6 application policies.
  fortinet.fortios.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)"
          casb_profile: "<your_own_value> (source casb.profile.name)"
          cifs_profile: "<your_own_value> (source cifs.profile.name)"
          comments: "<your_own_value>"
          diameter_filter_profile: "<your_own_value> (source diameter-filter.profile.name)"
          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_20 (source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name system.external-resource
                    .name)"
          dstaddr_negate: "enable"
          dstaddr4:
              -
                  name: "default_name_23 (source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name)"
          dstaddr6:
              -
                  name: "default_name_25 (source firewall.address6.name firewall.addrgrp6.name firewall.vip6.name firewall.vipgrp6.name system
                    .external-resource.name)"
          dstaddr6_negate: "enable"
          dstintf:
              -
                  name: "default_name_28 (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_33 (source user.adgrp.name)"
          global_label: "<your_own_value>"
          groups:
              -
                  name: "default_name_36 (source user.group.name)"
          icap_profile: "<your_own_value> (source icap.profile.name)"
          internet_service: "enable"
          internet_service_custom:
              -
                  name: "default_name_40 (source firewall.internet-service-custom.name)"
          internet_service_custom_group:
              -
                  name: "default_name_42 (source firewall.internet-service-custom-group.name)"
          internet_service_group:
              -
                  name: "default_name_44 (source firewall.internet-service-group.name)"
          internet_service_id:
              -
                  id: "46 (source firewall.internet-service.id)"
          internet_service_name:
              -
                  name: "default_name_48 (source firewall.internet-service-name.name)"
          internet_service_negate: "enable"
          internet_service_src: "enable"
          internet_service_src_custom:
              -
                  name: "default_name_52 (source firewall.internet-service-custom.name)"
          internet_service_src_custom_group:
              -
                  name: "default_name_54 (source firewall.internet-service-custom-group.name)"
          internet_service_src_group:
              -
                  name: "default_name_56 (source firewall.internet-service-group.name)"
          internet_service_src_id:
              -
                  id: "58 (source firewall.internet-service.id)"
          internet_service_src_name:
              -
                  name: "default_name_60 (source firewall.internet-service-name.name)"
          internet_service_src_negate: "enable"
          internet_service6: "enable"
          internet_service6_custom:
              -
                  name: "default_name_64 (source firewall.internet-service-custom.name)"
          internet_service6_custom_group:
              -
                  name: "default_name_66 (source firewall.internet-service-custom-group.name)"
          internet_service6_group:
              -
                  name: "default_name_68 (source firewall.internet-service-group.name)"
          internet_service6_name:
              -
                  name: "default_name_70 (source firewall.internet-service-name.name)"
          internet_service6_negate: "enable"
          internet_service6_src: "enable"
          internet_service6_src_custom:
              -
                  name: "default_name_74 (source firewall.internet-service-custom.name)"
          internet_service6_src_custom_group:
              -
                  name: "default_name_76 (source firewall.internet-service-custom-group.name)"
          internet_service6_src_group:
              -
                  name: "default_name_78 (source firewall.internet-service-group.name)"
          internet_service6_src_name:
              -
                  name: "default_name_80 (source firewall.internet-service-name.name)"
          internet_service6_src_negate: "enable"
          ips_sensor: "<your_own_value> (source ips.sensor.name)"
          ips_voip_filter: "<your_own_value> (source voip.profile.name)"
          learning_mode: "enable"
          logtraffic: "all"
          logtraffic_start: "enable"
          mms_profile: "<your_own_value> (source firewall.mms-profile.name)"
          name: "default_name_88"
          nat46: "enable"
          nat64: "enable"
          policyid: "<you_own_value>"
          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_99 (source firewall.service.custom.name firewall.service.group.name)"
          service_negate: "enable"
          srcaddr:
              -
                  name: "default_name_102 (source firewall.address.name firewall.addrgrp.name system.external-resource.name)"
          srcaddr_negate: "enable"
          srcaddr4:
              -
                  name: "default_name_105 (source firewall.address.name firewall.addrgrp.name)"
          srcaddr6:
              -
                  name: "default_name_107 (source firewall.address6.name firewall.addrgrp6.name system.external-resource.name)"
          srcaddr6_negate: "enable"
          srcintf:
              -
                  name: "default_name_110 (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_116 (source user.local.name)"
          utm_status: "enable"
          uuid: "<your_own_value>"
          uuid_idx: "2147483647"
          videofilter_profile: "<your_own_value> (source videofilter.profile.name)"
          virtual_patch_profile: "<your_own_value> (source virtual-patch.profile.name)"
          voip_profile: "<your_own_value> (source voip.profile.name)"
          webfilter_profile: "<your_own_value> (source webfilter.profile.name)"

Inputs

    
vdom:
    default: root
    description:
    - 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

state:
    choices:
    - present
    - absent
    description:
    - Indicates whether to create or remove the object.
    required: true
    type: str

enable_log:
    default: false
    description:
    - Enable/Disable logging for task.
    required: false
    type: bool

member_path:
    description:
    - Member attribute path to operate on.
    - Delimited by a slash character if there are more than one attribute.
    - Parameter marked with member_path is legitimate for doing member operation.
    type: str

access_token:
    description:
    - Token-based authentication. Generated from GUI of Fortigate.
    required: false
    type: str

member_state:
    choices:
    - present
    - absent
    description:
    - Add or delete a member under specified attribute path.
    - When member_state is specified, the state option is ignored.
    type: str

firewall_security_policy:
    default: null
    description:
    - Configure NGFW IPv4/IPv6 application policies.
    suboptions:
      action:
        choices:
        - accept
        - deny
        description:
        - Policy action (accept/deny).
        type: str
      app_category:
        description:
        - Application category ID list.
        elements: dict
        suboptions:
          id:
            description:
            - Category IDs. see <a href='#notes'>Notes</a>.
            required: true
            type: int
        type: list
      app_group:
        description:
        - Application group names.
        elements: dict
        suboptions:
          name:
            description:
            - Application group names. Source application.group.name.
            required: true
            type: str
        type: list
      application:
        description:
        - Application ID list.
        elements: dict
        suboptions:
          id:
            description:
            - Application IDs. see <a href='#notes'>Notes</a>.
            required: true
            type: int
        type: list
      application_list:
        description:
        - Name of an existing Application list. Source application.list.name.
        type: str
      av_profile:
        description:
        - Name of an existing Antivirus profile. Source antivirus.profile.name.
        type: str
      casb_profile:
        description:
        - Name of an existing CASB profile. Source casb.profile.name.
        type: str
      cifs_profile:
        description:
        - Name of an existing CIFS profile. Source cifs.profile.name.
        type: str
      comments:
        description:
        - Comment.
        type: str
      diameter_filter_profile:
        description:
        - Name of an existing Diameter filter profile. Source diameter-filter.profile.name.
        type: str
      dlp_profile:
        description:
        - Name of an existing DLP profile. Source dlp.profile.name.
        type: str
      dlp_sensor:
        description:
        - Name of an existing DLP sensor. Source dlp.sensor.name.
        type: str
      dnsfilter_profile:
        description:
        - Name of an existing DNS filter profile. Source dnsfilter.profile.name.
        type: str
      dstaddr:
        description:
        - Destination IPv4 address name and address group names.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name firewall.vip.name
              firewall.vipgrp.name system.external-resource .name.
            required: true
            type: str
        type: list
      dstaddr4:
        description:
        - Destination IPv4 address name and address group names.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name firewall.vip.name
              firewall.vipgrp.name.
            required: true
            type: str
        type: list
      dstaddr6:
        description:
        - Destination IPv6 address name and address group names.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address6.name firewall.addrgrp6.name firewall.vip6.name
              firewall.vipgrp6.name system .external-resource.name.
            required: true
            type: str
        type: list
      dstaddr6_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled dstaddr6 specifies what the destination address must NOT be.
        type: str
      dstaddr_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled dstaddr specifies what the destination address must NOT be.
        type: str
      dstintf:
        description:
        - Outgoing (egress) interface.
        elements: dict
        suboptions:
          name:
            description:
            - Interface name. Source system.interface.name system.zone.name system.sdwan.zone.name.
            required: true
            type: str
        type: list
      emailfilter_profile:
        description:
        - Name of an existing email filter profile. Source emailfilter.profile.name.
        type: str
      enforce_default_app_port:
        choices:
        - enable
        - disable
        description:
        - Enable/disable default application port enforcement for allowed applications.
        type: str
      file_filter_profile:
        description:
        - Name of an existing file-filter profile. Source file-filter.profile.name.
        type: str
      fsso_groups:
        description:
        - Names of FSSO groups.
        elements: dict
        suboptions:
          name:
            description:
            - Names of FSSO groups. Source user.adgrp.name.
            required: true
            type: str
        type: list
      global_label:
        description:
        - Label for the policy that appears when the GUI is in Global View mode.
        type: str
      groups:
        description:
        - Names of user groups that can authenticate with this policy.
        elements: dict
        suboptions:
          name:
            description:
            - User group name. Source user.group.name.
            required: true
            type: str
        type: list
      icap_profile:
        description:
        - Name of an existing ICAP profile. Source icap.profile.name.
        type: str
      internet_service:
        choices:
        - enable
        - disable
        description:
        - Enable/disable use of Internet Services for this policy. If enabled, destination
          address, service and default application port enforcement are not used.
        type: str
      internet_service6:
        choices:
        - enable
        - disable
        description:
        - 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
      internet_service6_custom:
        description:
        - Custom IPv6 Internet Service name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom IPv6 Internet Service name. Source firewall.internet-service-custom.name.
            required: true
            type: str
        type: list
      internet_service6_custom_group:
        description:
        - Custom IPv6 Internet Service group name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom IPv6 Internet Service group name. Source firewall.internet-service-custom-group.name.
            required: true
            type: str
        type: list
      internet_service6_group:
        description:
        - Internet Service group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service group name. Source firewall.internet-service-group.name.
            required: true
            type: str
        type: list
      internet_service6_name:
        description:
        - IPv6 Internet Service name.
        elements: dict
        suboptions:
          name:
            description:
            - IPv6 Internet Service name. Source firewall.internet-service-name.name.
            required: true
            type: str
        type: list
      internet_service6_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled internet-service6 specifies what the service must NOT be.
        type: str
      internet_service6_src:
        choices:
        - enable
        - disable
        description:
        - Enable/disable use of IPv6 Internet Services in source for this policy. If enabled,
          source address is not used.
        type: str
      internet_service6_src_custom:
        description:
        - Custom IPv6 Internet Service source name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service name. Source firewall.internet-service-custom.name.
            required: true
            type: str
        type: list
      internet_service6_src_custom_group:
        description:
        - Custom Internet Service6 source group name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service6 group name. Source firewall.internet-service-custom-group.name.
            required: true
            type: str
        type: list
      internet_service6_src_group:
        description:
        - Internet Service6 source group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service group name. Source firewall.internet-service-group.name.
            required: true
            type: str
        type: list
      internet_service6_src_name:
        description:
        - IPv6 Internet Service source name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service name. Source firewall.internet-service-name.name.
            required: true
            type: str
        type: list
      internet_service6_src_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled internet-service6-src specifies what the service must NOT be.
        type: str
      internet_service_custom:
        description:
        - Custom Internet Service name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service name. Source firewall.internet-service-custom.name.
            required: true
            type: str
        type: list
      internet_service_custom_group:
        description:
        - Custom Internet Service group name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service group name. Source firewall.internet-service-custom-group.name.
            required: true
            type: str
        type: list
      internet_service_group:
        description:
        - Internet Service group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service group name. Source firewall.internet-service-group.name.
            required: true
            type: str
        type: list
      internet_service_id:
        description:
        - Internet Service ID.
        elements: dict
        suboptions:
          id:
            description:
            - Internet Service ID. see <a href='#notes'>Notes</a>. Source firewall.internet-service.id.
            required: true
            type: int
        type: list
      internet_service_name:
        description:
        - Internet Service name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service name. Source firewall.internet-service-name.name.
            required: true
            type: str
        type: list
      internet_service_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled internet-service specifies what the service must NOT be.
        type: str
      internet_service_src:
        choices:
        - enable
        - disable
        description:
        - Enable/disable use of Internet Services in source for this policy. If enabled,
          source address is not used.
        type: str
      internet_service_src_custom:
        description:
        - Custom Internet Service source name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service name. Source firewall.internet-service-custom.name.
            required: true
            type: str
        type: list
      internet_service_src_custom_group:
        description:
        - Custom Internet Service source group name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service group name. Source firewall.internet-service-custom-group.name.
            required: true
            type: str
        type: list
      internet_service_src_group:
        description:
        - Internet Service source group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service group name. Source firewall.internet-service-group.name.
            required: true
            type: str
        type: list
      internet_service_src_id:
        description:
        - Internet Service source ID.
        elements: dict
        suboptions:
          id:
            description:
            - Internet Service ID. see <a href='#notes'>Notes</a>. Source firewall.internet-service.id.
            required: true
            type: int
        type: list
      internet_service_src_name:
        description:
        - Internet Service source name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service name. Source firewall.internet-service-name.name.
            required: true
            type: str
        type: list
      internet_service_src_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled internet-service-src specifies what the service must NOT be.
        type: str
      ips_sensor:
        description:
        - Name of an existing IPS sensor. Source ips.sensor.name.
        type: str
      ips_voip_filter:
        description:
        - Name of an existing VoIP (ips) profile. Source voip.profile.name.
        type: str
      learning_mode:
        choices:
        - enable
        - disable
        description:
        - Enable to allow everything, but log all of the meaningful data for security
          information gathering. A learning report will be generated.
        type: str
      logtraffic:
        choices:
        - all
        - utm
        - disable
        description:
        - Enable or disable logging. Log all sessions or security profile sessions.
        type: str
      logtraffic_start:
        choices:
        - enable
        - disable
        description:
        - Record logs when a session starts.
        type: str
      mms_profile:
        description:
        - Name of an existing MMS profile. Source firewall.mms-profile.name.
        type: str
      name:
        description:
        - Policy name.
        type: str
      nat46:
        choices:
        - enable
        - disable
        description:
        - Enable/disable NAT46.
        type: str
      nat64:
        choices:
        - enable
        - disable
        description:
        - Enable/disable NAT64.
        type: str
      policyid:
        description:
        - Policy ID. see <a href='#notes'>Notes</a>.
        required: true
        type: int
      profile_group:
        description:
        - Name of profile group. Source firewall.profile-group.name.
        type: str
      profile_protocol_options:
        description:
        - Name of an existing Protocol options profile. Source firewall.profile-protocol-options.name.
        type: str
      profile_type:
        choices:
        - single
        - group
        description:
        - Determine whether the firewall policy allows security profile groups or single
          profiles only.
        type: str
      schedule:
        description:
        - Schedule name. Source firewall.schedule.onetime.name firewall.schedule.recurring.name
          firewall.schedule.group.name.
        type: str
      sctp_filter_profile:
        description:
        - Name of an existing SCTP filter profile. Source sctp-filter.profile.name.
        type: str
      send_deny_packet:
        choices:
        - disable
        - enable
        description:
        - Enable to send a reply when a session is denied or blocked by a firewall policy.
        type: str
      service:
        description:
        - Service and service group names.
        elements: dict
        suboptions:
          name:
            description:
            - Service name. Source firewall.service.custom.name firewall.service.group.name.
            required: true
            type: str
        type: list
      service_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled service specifies what the service must NOT be.
        type: str
      srcaddr:
        description:
        - Source IPv4 address name and address group names.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name system.external-resource.name.
            required: true
            type: str
        type: list
      srcaddr4:
        description:
        - Source IPv4 address name and address group names.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name.
            required: true
            type: str
        type: list
      srcaddr6:
        description:
        - Source IPv6 address name and address group names.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address6.name firewall.addrgrp6.name system.external-resource.name.
            required: true
            type: str
        type: list
      srcaddr6_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled srcaddr6 specifies what the source address must NOT be.
        type: str
      srcaddr_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled srcaddr specifies what the source address must NOT be.
        type: str
      srcintf:
        description:
        - Incoming (ingress) interface.
        elements: dict
        suboptions:
          name:
            description:
            - Interface name. Source system.interface.name system.zone.name system.sdwan.zone.name.
            required: true
            type: str
        type: list
      ssh_filter_profile:
        description:
        - Name of an existing SSH filter profile. Source ssh-filter.profile.name.
        type: str
      ssl_ssh_profile:
        description:
        - Name of an existing SSL SSH profile. Source firewall.ssl-ssh-profile.name.
        type: str
      status:
        choices:
        - enable
        - disable
        description:
        - Enable or disable this policy.
        type: str
      url_category:
        description:
        - URL categories or groups.
        elements: str
        type: list
      users:
        description:
        - Names of individual users that can authenticate with this policy.
        elements: dict
        suboptions:
          name:
            description:
            - User name. Source user.local.name.
            required: true
            type: str
        type: list
      utm_status:
        choices:
        - enable
        - disable
        description:
        - Enable security profiles.
        type: str
      uuid:
        description:
        - Universally Unique Identifier (UUID; automatically assigned but can be manually
          reset).
        type: str
      uuid_idx:
        description:
        - uuid-idx
        type: int
      videofilter_profile:
        description:
        - Name of an existing VideoFilter profile. Source videofilter.profile.name.
        type: str
      virtual_patch_profile:
        description:
        - Name of an existing virtual-patch profile. Source virtual-patch.profile.name.
        type: str
      voip_profile:
        description:
        - Name of an existing VoIP (voipd) profile. Source voip.profile.name.
        type: str
      webfilter_profile:
        description:
        - Name of an existing Web filter profile. Source webfilter.profile.name.
        type: str
    type: dict

Outputs

build:
  description: Build number of the fortigate image
  returned: always
  sample: '1547'
  type: str
http_method:
  description: Last method used to provision the content into FortiGate
  returned: always
  sample: PUT
  type: str
http_status:
  description: Last result given by FortiGate on last operation applied
  returned: always
  sample: '200'
  type: str
mkey:
  description: Master key (id) used in the last call to FortiGate
  returned: success
  sample: id
  type: str
name:
  description: Name of the table used to fulfill the request
  returned: always
  sample: urlfilter
  type: str
path:
  description: Path of the table used to fulfill the request
  returned: always
  sample: webfilter
  type: str
revision:
  description: Internal revision number
  returned: always
  sample: 17.0.2.10658
  type: str
serial:
  description: Serial number of the unit
  returned: always
  sample: FGVMEVYYQT3AB5352
  type: str
status:
  description: Indication of the operation's result
  returned: always
  sample: success
  type: str
vdom:
  description: Virtual domain used
  returned: always
  sample: root
  type: str
version:
  description: Version of the FortiGate
  returned: always
  sample: v5.6.3
  type: str