fortinet.fortios.fortios_firewall_consolidated_policy (2.3.6) — module

Configure consolidated IPv4/IPv6 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_consolidated feature and 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 consolidated IPv4/IPv6 policies.
  fortinet.fortios.fortios_firewall_consolidated_policy:
      vdom: "{{ vdom }}"
      state: "present"
      access_token: "<your_own_value>"
      firewall_consolidated_policy:
          action: "accept"
          application_list: "<your_own_value> (source application.list.name)"
          auto_asic_offload: "enable"
          av_profile: "<your_own_value> (source antivirus.profile.name)"
          captive_portal_exempt: "enable"
          cifs_profile: "<your_own_value> (source cifs.profile.name)"
          comments: "<your_own_value>"
          diffserv_forward: "enable"
          diffserv_reverse: "enable"
          diffservcode_forward: "<your_own_value>"
          diffservcode_rev: "<your_own_value>"
          dlp_sensor: "<your_own_value> (source dlp.sensor.name)"
          dnsfilter_profile: "<your_own_value> (source dnsfilter.profile.name)"
          dstaddr_negate: "enable"
          dstaddr4:
              -
                  name: "default_name_18 (source firewall.address.name firewall.addrgrp.name firewall.vip.name firewall.vipgrp.name system.external-resource
                    .name)"
          dstaddr6:
              -
                  name: "default_name_20 (source firewall.address6.name firewall.addrgrp6.name firewall.vip6.name firewall.vipgrp6.name system
                    .external-resource.name)"
          dstintf:
              -
                  name: "default_name_22 (source system.interface.name system.zone.name)"
          emailfilter_profile: "<your_own_value> (source emailfilter.profile.name)"
          fixedport: "enable"
          fsso_groups:
              -
                  name: "default_name_26 (source user.adgrp.name)"
          global_label: "<your_own_value>"
          groups:
              -
                  name: "default_name_29 (source user.group.name)"
          http_policy_redirect: "enable"
          icap_profile: "<your_own_value> (source icap.profile.name)"
          inbound: "enable"
          inspection_mode: "proxy"
          internet_service: "enable"
          internet_service_custom:
              -
                  name: "default_name_36 (source firewall.internet-service-custom.name)"
          internet_service_custom_group:
              -
                  name: "default_name_38 (source firewall.internet-service-custom-group.name)"
          internet_service_group:
              -
                  name: "default_name_40 (source firewall.internet-service-group.name)"
          internet_service_id:
              -
                  id: "42 (source firewall.internet-service.id)"
          internet_service_negate: "enable"
          internet_service_src: "enable"
          internet_service_src_custom:
              -
                  name: "default_name_46 (source firewall.internet-service-custom.name)"
          internet_service_src_custom_group:
              -
                  name: "default_name_48 (source firewall.internet-service-custom-group.name)"
          internet_service_src_group:
              -
                  name: "default_name_50 (source firewall.internet-service-group.name)"
          internet_service_src_id:
              -
                  id: "52 (source firewall.internet-service.id)"
          internet_service_src_negate: "enable"
          ippool: "enable"
          ips_sensor: "<your_own_value> (source ips.sensor.name)"
          logtraffic: "all"
          logtraffic_start: "enable"
          mms_profile: "<your_own_value> (source firewall.mms-profile.name)"
          name: "default_name_59"
          nat: "enable"
          outbound: "enable"
          per_ip_shaper: "<your_own_value> (source firewall.shaper.per-ip-shaper.name)"
          policyid: "<you_own_value>"
          poolname4:
              -
                  name: "default_name_65 (source firewall.ippool.name)"
          poolname6:
              -
                  name: "default_name_67 (source firewall.ippool6.name)"
          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)"
          service:
              -
                  name: "default_name_73 (source firewall.service.custom.name firewall.service.group.name)"
          service_negate: "enable"
          session_ttl: "1382400"
          srcaddr_negate: "enable"
          srcaddr4:
              -
                  name: "default_name_78 (source firewall.address.name firewall.addrgrp.name system.external-resource.name)"
          srcaddr6:
              -
                  name: "default_name_80 (source firewall.address6.name firewall.addrgrp6.name system.external-resource.name)"
          srcintf:
              -
                  name: "default_name_82 (source system.interface.name system.zone.name)"
          ssh_filter_profile: "<your_own_value> (source ssh-filter.profile.name)"
          ssh_policy_redirect: "enable"
          ssl_ssh_profile: "<your_own_value> (source firewall.ssl-ssh-profile.name)"
          status: "enable"
          tcp_mss_receiver: "32767"
          tcp_mss_sender: "32767"
          traffic_shaper: "<your_own_value> (source firewall.shaper.traffic-shaper.name)"
          traffic_shaper_reverse: "<your_own_value> (source firewall.shaper.traffic-shaper.name)"
          users:
              -
                  name: "default_name_92 (source user.local.name)"
          utm_status: "enable"
          uuid: "<your_own_value>"
          voip_profile: "<your_own_value> (source voip.profile.name)"
          vpntunnel: "<your_own_value> (source vpn.ipsec.phase1.name vpn.ipsec.manualkey.name)"
          waf_profile: "<your_own_value> (source waf.profile.name)"
          wanopt: "enable"
          wanopt_detection: "active"
          wanopt_passive_opt: "default"
          wanopt_peer: "<your_own_value> (source wanopt.peer.peer-host-id)"
          wanopt_profile: "<your_own_value> (source wanopt.profile.name)"
          webcache: "enable"
          webcache_https: "disable"
          webfilter_profile: "<your_own_value> (source webfilter.profile.name)"
          webproxy_forward_server: "<your_own_value> (source web-proxy.forward-server.name web-proxy.forward-server-group.name)"
          webproxy_profile: "<your_own_value> (source web-proxy.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_consolidated_policy:
    default: null
    description:
    - Configure consolidated IPv4/IPv6 policies.
    suboptions:
      action:
        choices:
        - accept
        - deny
        - ipsec
        description:
        - Policy action (allow/deny/ipsec).
        type: str
      application_list:
        description:
        - Name of an existing Application list. Source application.list.name.
        type: str
      auto_asic_offload:
        choices:
        - enable
        - disable
        description:
        - Enable/disable policy traffic ASIC offloading.
        type: str
      av_profile:
        description:
        - Name of an existing Antivirus profile. Source antivirus.profile.name.
        type: str
      captive_portal_exempt:
        choices:
        - enable
        - disable
        description:
        - Enable exemption of some users from the captive portal.
        type: str
      cifs_profile:
        description:
        - Name of an existing CIFS profile. Source cifs.profile.name.
        type: str
      comments:
        description:
        - Comment.
        type: str
      diffserv_forward:
        choices:
        - enable
        - disable
        description:
        - Enable to change packet"s DiffServ values to the specified diffservcode-forward
          value.
        type: str
      diffserv_reverse:
        choices:
        - enable
        - disable
        description:
        - Enable to change packet"s reverse (reply) DiffServ values to the specified diffservcode-rev
          value.
        type: str
      diffservcode_forward:
        description:
        - Change packet"s DiffServ to this value.
        type: str
      diffservcode_rev:
        description:
        - Change packet"s reverse (reply) DiffServ to this value.
        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
      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 system.external-resource .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
      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.
            required: true
            type: str
        type: list
      emailfilter_profile:
        description:
        - Name of an existing email filter profile. Source emailfilter.profile.name.
        type: str
      fixedport:
        choices:
        - enable
        - disable
        description:
        - Enable to prevent source NAT from changing a session"s source port.
        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:
            - Group name. Source user.group.name.
            required: true
            type: str
        type: list
      http_policy_redirect:
        choices:
        - enable
        - disable
        description:
        - Redirect HTTP(S) traffic to matching transparent web proxy policy.
        type: str
      icap_profile:
        description:
        - Name of an existing ICAP profile. Source icap.profile.name.
        type: str
      inbound:
        choices:
        - enable
        - disable
        description:
        - 'Policy-based IPsec VPN: only traffic from the remote network can initiate a
          VPN.'
        type: str
      inspection_mode:
        choices:
        - proxy
        - flow
        description:
        - Policy inspection mode (Flow/proxy). Default is Flow mode.
        type: str
      internet_service:
        choices:
        - enable
        - disable
        description:
        - Enable/disable use of Internet Services for this policy. If enabled, destination
          address and service are not used.
        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_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_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled internet-service-src specifies what the service must NOT be.
        type: str
      ippool:
        choices:
        - enable
        - disable
        description:
        - Enable to use IP Pools for source NAT.
        type: str
      ips_sensor:
        description:
        - Name of an existing IPS sensor. Source ips.sensor.name.
        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
      nat:
        choices:
        - enable
        - disable
        description:
        - Enable/disable source NAT.
        type: str
      outbound:
        choices:
        - enable
        - disable
        description:
        - 'Policy-based IPsec VPN: only traffic from the internal network can initiate
          a VPN.'
        type: str
      per_ip_shaper:
        description:
        - Per-IP traffic shaper. Source firewall.shaper.per-ip-shaper.name.
        type: str
      policyid:
        description:
        - Policy ID (0 - 4294967294). see <a href='#notes'>Notes</a>.
        required: true
        type: int
      poolname4:
        description:
        - IPv4 pool names.
        elements: dict
        suboptions:
          name:
            description:
            - IPv4 pool name. Source firewall.ippool.name.
            required: true
            type: str
        type: list
      poolname6:
        description:
        - IPv6 pool names.
        elements: dict
        suboptions:
          name:
            description:
            - IPv6 pool name. Source firewall.ippool6.name.
            required: true
            type: str
        type: list
      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
      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
      session_ttl:
        description:
        - TTL in seconds for sessions accepted by this policy (0 means use the system
          ).
        type: int
      srcaddr4:
        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
      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
      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.
            required: true
            type: str
        type: list
      ssh_filter_profile:
        description:
        - Name of an existing SSH filter profile. Source ssh-filter.profile.name.
        type: str
      ssh_policy_redirect:
        choices:
        - enable
        - disable
        description:
        - Redirect SSH traffic to matching transparent proxy policy.
        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
      tcp_mss_receiver:
        description:
        - Receiver TCP maximum segment size (MSS).
        type: int
      tcp_mss_sender:
        description:
        - Sender TCP maximum segment size (MSS).
        type: int
      traffic_shaper:
        description:
        - Traffic shaper. Source firewall.shaper.traffic-shaper.name.
        type: str
      traffic_shaper_reverse:
        description:
        - Reverse traffic shaper. Source firewall.shaper.traffic-shaper.name.
        type: str
      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 to add one or more security profiles (AV, IPS, etc.) to the firewall
          policy.
        type: str
      uuid:
        description:
        - Universally Unique Identifier (UUID; automatically assigned but can be manually
          reset).
        type: str
      voip_profile:
        description:
        - Name of an existing VoIP profile. Source voip.profile.name.
        type: str
      vpntunnel:
        description:
        - 'Policy-based IPsec VPN: name of the IPsec VPN Phase 1. Source vpn.ipsec.phase1.name
          vpn.ipsec.manualkey.name.'
        type: str
      waf_profile:
        description:
        - Name of an existing Web application firewall profile. Source waf.profile.name.
        type: str
      wanopt:
        choices:
        - enable
        - disable
        description:
        - Enable/disable WAN optimization.
        type: str
      wanopt_detection:
        choices:
        - active
        - passive
        - 'off'
        description:
        - WAN optimization auto-detection mode.
        type: str
      wanopt_passive_opt:
        choices:
        - default
        - transparent
        - non-transparent
        description:
        - WAN optimization passive mode options. This option decides what IP address will
          be used to connect to server.
        type: str
      wanopt_peer:
        description:
        - WAN optimization peer. Source wanopt.peer.peer-host-id.
        type: str
      wanopt_profile:
        description:
        - WAN optimization profile. Source wanopt.profile.name.
        type: str
      webcache:
        choices:
        - enable
        - disable
        description:
        - Enable/disable web cache.
        type: str
      webcache_https:
        choices:
        - disable
        - enable
        description:
        - Enable/disable web cache for HTTPS.
        type: str
      webfilter_profile:
        description:
        - Name of an existing Web filter profile. Source webfilter.profile.name.
        type: str
      webproxy_forward_server:
        description:
        - Webproxy forward server name. Source web-proxy.forward-server.name web-proxy.forward-server-group.name.
        type: str
      webproxy_profile:
        description:
        - Webproxy profile name. Source web-proxy.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