lix_fortinet.fortios.fortios_firewall_security_policy (102.2.120) — module

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

| "added in version" 2.0.0 of lix_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 lix_fortinet.fortios:==102.2.120


Add to requirements.yml

  collections:
    - name: lix_fortinet.fortios
      version: 102.2.120

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.
- 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)"

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.
            type: int
        type: list
      app_group:
        description:
        - Application group names.
        elements: dict
        suboptions:
          name:
            description:
            - Application group names. Source application.group.name.
            type: str
        type: list
      application:
        description:
        - Application ID list.
        elements: dict
        suboptions:
          id:
            description:
            - Application IDs.
            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
      cifs_profile:
        description:
        - Name of an existing CIFS profile. Source cifs.profile.name.
        type: str
      comments:
        description:
        - Comment.
        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.
            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.
            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.
            type: str
        type: list
      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.
            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.
            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.
            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 .
            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 .
            type: str
        type: list
      internet_service6_group:
        description:
        - Internet Service group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service group name. Source .
            type: str
        type: list
      internet_service6_name:
        description:
        - IPv6 Internet Service name.
        elements: dict
        suboptions:
          name:
            description:
            - IPv6 Internet Service name. Source .
            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 .
            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 .
            type: str
        type: list
      internet_service6_src_group:
        description:
        - Internet Service6 source group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service group name. Source .
            type: str
        type: list
      internet_service6_src_name:
        description:
        - IPv6 Internet Service source name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service name. Source .
            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.
            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.
            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.
            type: str
        type: list
      internet_service_id:
        description:
        - Internet Service ID.
        elements: dict
        suboptions:
          id:
            description:
            - Internet Service ID. Source firewall.internet-service.id.
            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.
            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.
            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.
            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.
            type: str
        type: list
      internet_service_src_id:
        description:
        - Internet Service source ID.
        elements: dict
        suboptions:
          id:
            description:
            - Internet Service ID. Source firewall.internet-service.id.
            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.
            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
      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.
        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.
            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.
            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.
            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.
            type: str
        type: list
      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.
            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.
            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
      voip_profile:
        description:
        - Name of an existing VoIP 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