fortinet.fortios.fortios_firewall_proxy_policy (2.3.6) — module

Configure proxy 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 proxy_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 proxy policies.
  fortinet.fortios.fortios_firewall_proxy_policy:
      vdom: "{{ vdom }}"
      state: "present"
      access_token: "<your_own_value>"
      firewall_proxy_policy:
          access_proxy:
              -
                  name: "default_name_4 (source firewall.access-proxy.name)"
          access_proxy6:
              -
                  name: "default_name_6 (source firewall.access-proxy6.name)"
          action: "accept"
          application_list: "<your_own_value> (source application.list.name)"
          av_profile: "<your_own_value> (source antivirus.profile.name)"
          block_notification: "enable"
          casb_profile: "<your_own_value> (source casb.profile.name)"
          cifs_profile: "<your_own_value> (source cifs.profile.name)"
          comments: "<your_own_value>"
          decrypted_traffic_mirror: "<your_own_value> (source firewall.decrypted-traffic-mirror.name)"
          detect_https_in_http_request: "enable"
          device_ownership: "enable"
          diameter_filter_profile: "<your_own_value> (source diameter-filter.profile.name)"
          disclaimer: "disable"
          dlp_profile: "<your_own_value> (source dlp.profile.name)"
          dlp_sensor: "<your_own_value> (source dlp.sensor.name)"
          dstaddr:
              -
                  name: "default_name_22 (source firewall.address.name firewall.addrgrp.name firewall.proxy-address.name firewall.proxy-addrgrp.name firewall
                    .vip.name firewall.vipgrp.name system.external-resource.name)"
          dstaddr_negate: "enable"
          dstaddr6:
              -
                  name: "default_name_25 (source firewall.address6.name firewall.addrgrp6.name firewall.vip6.name firewall.vipgrp6.name system
                    .external-resource.name)"
          dstintf:
              -
                  name: "default_name_27 (source system.interface.name system.zone.name system.sdwan.zone.name)"
          emailfilter_profile: "<your_own_value> (source emailfilter.profile.name)"
          file_filter_profile: "<your_own_value> (source file-filter.profile.name)"
          global_label: "<your_own_value>"
          groups:
              -
                  name: "default_name_32 (source user.group.name)"
          http_tunnel_auth: "enable"
          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_service6: "enable"
          internet_service6_custom:
              -
                  name: "default_name_49 (source firewall.internet-service-custom.name)"
          internet_service6_custom_group:
              -
                  name: "default_name_51 (source firewall.internet-service-custom-group.name)"
          internet_service6_group:
              -
                  name: "default_name_53 (source firewall.internet-service-group.name)"
          internet_service6_name:
              -
                  name: "default_name_55 (source firewall.internet-service-name.name)"
          internet_service6_negate: "enable"
          ips_sensor: "<your_own_value> (source ips.sensor.name)"
          ips_voip_filter: "<your_own_value> (source voip.profile.name)"
          label: "<your_own_value>"
          logtraffic: "all"
          logtraffic_start: "enable"
          mms_profile: "<your_own_value> (source firewall.mms-profile.name)"
          name: "default_name_63"
          policyid: "<you_own_value>"
          poolname:
              -
                  name: "default_name_66 (source firewall.ippool.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"
          proxy: "explicit-web"
          redirect_url: "<your_own_value>"
          replacemsg_override_group: "<your_own_value> (source system.replacemsg-group.name)"
          scan_botnet_connections: "disable"
          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)"
          service:
              -
                  name: "default_name_77 (source firewall.service.custom.name firewall.service.group.name)"
          service_negate: "enable"
          session_ttl: "0"
          spamfilter_profile: "<your_own_value> (source spamfilter.profile.name)"
          srcaddr:
              -
                  name: "default_name_82 (source firewall.address.name firewall.addrgrp.name firewall.proxy-address.name firewall.proxy-addrgrp.name system
                    .external-resource.name)"
          srcaddr_negate: "enable"
          srcaddr6:
              -
                  name: "default_name_85 (source firewall.address6.name firewall.addrgrp6.name system.external-resource.name)"
          srcintf:
              -
                  name: "default_name_87 (source system.interface.name system.zone.name system.sdwan.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"
          transparent: "enable"
          users:
              -
                  name: "default_name_94 (source user.local.name user.certificate.name)"
          utm_status: "enable"
          uuid: "<your_own_value>"
          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)"
          waf_profile: "<your_own_value> (source waf.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)"
          ztna_ems_tag:
              -
                  name: "default_name_107 (source firewall.address.name firewall.addrgrp.name)"
          ztna_tags_match_logic: "or"

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_proxy_policy:
    default: null
    description:
    - Configure proxy policies.
    suboptions:
      access_proxy:
        description:
        - IPv4 access proxy.
        elements: dict
        suboptions:
          name:
            description:
            - Access Proxy name. Source firewall.access-proxy.name.
            required: true
            type: str
        type: list
      access_proxy6:
        description:
        - IPv6 access proxy.
        elements: dict
        suboptions:
          name:
            description:
            - Access proxy name. Source firewall.access-proxy6.name.
            required: true
            type: str
        type: list
      action:
        choices:
        - accept
        - deny
        - redirect
        description:
        - Accept or deny traffic matching the policy parameters.
        type: str
      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
      block_notification:
        choices:
        - enable
        - disable
        description:
        - Enable/disable block notification.
        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:
        - Optional comments.
        type: str
      decrypted_traffic_mirror:
        description:
        - Decrypted traffic mirror. Source firewall.decrypted-traffic-mirror.name.
        type: str
      detect_https_in_http_request:
        choices:
        - enable
        - disable
        description:
        - Enable/disable detection of HTTPS in HTTP request.
        type: str
      device_ownership:
        choices:
        - enable
        - disable
        description:
        - When enabled, the ownership enforcement will be done at policy level.
        type: str
      diameter_filter_profile:
        description:
        - Name of an existing Diameter filter profile. Source diameter-filter.profile.name.
        type: str
      disclaimer:
        choices:
        - disable
        - domain
        - policy
        - user
        description:
        - 'Web proxy disclaimer setting: by domain, policy, or user.'
        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
      dstaddr:
        description:
        - Destination address objects.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name firewall.proxy-address.name
              firewall.proxy-addrgrp.name firewall.vip.name firewall.vipgrp.name system.external-resource.name.
            required: true
            type: str
        type: list
      dstaddr6:
        description:
        - IPv6 destination address objects.
        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, destination addresses match against any address EXCEPT the specified
          destination addresses.
        type: str
      dstintf:
        description:
        - Destination interface names.
        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
      file_filter_profile:
        description:
        - Name of an existing file-filter profile. Source file-filter.profile.name.
        type: str
      global_label:
        description:
        - Global web-based manager visible label.
        type: str
      groups:
        description:
        - Names of group objects.
        elements: dict
        suboptions:
          name:
            description:
            - Group name. Source user.group.name.
            required: true
            type: str
        type: list
      http_tunnel_auth:
        choices:
        - enable
        - disable
        description:
        - Enable/disable HTTP tunnel authentication.
        type: str
      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 and service are not used.
        type: str
      internet_service6:
        choices:
        - enable
        - disable
        description:
        - Enable/disable use of Internet Services IPv6 for this policy. If enabled, destination
          IPv6 address and service are not used.
        type: str
      internet_service6_custom:
        description:
        - Custom Internet Service IPv6 name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service IPv6 name. Source firewall.internet-service-custom.name.
            required: true
            type: str
        type: list
      internet_service6_custom_group:
        description:
        - Custom Internet Service IPv6 group name.
        elements: dict
        suboptions:
          name:
            description:
            - Custom Internet Service IPv6 group name. Source firewall.internet-service-custom-group.name.
            required: true
            type: str
        type: list
      internet_service6_group:
        description:
        - Internet Service IPv6 group name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service IPv6 group name. Source firewall.internet-service-group.name.
            required: true
            type: str
        type: list
      internet_service6_name:
        description:
        - Internet Service IPv6 name.
        elements: dict
        suboptions:
          name:
            description:
            - Internet Service IPv6 name. Source firewall.internet-service-name.name.
            required: true
            type: str
        type: list
      internet_service6_negate:
        choices:
        - enable
        - disable
        description:
        - When enabled, Internet Services match against any internet service IPv6 EXCEPT
          the selected Internet Service IPv6.
        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 Services match against any internet service EXCEPT the
          selected Internet Service.
        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
      label:
        description:
        - VDOM-specific GUI visible label.
        type: str
      logtraffic:
        choices:
        - all
        - utm
        - disable
        description:
        - Enable/disable logging traffic through the policy.
        type: str
      logtraffic_start:
        choices:
        - enable
        - disable
        description:
        - Enable/disable policy log traffic start.
        type: str
      mms_profile:
        description:
        - Name of an existing MMS profile. Source firewall.mms-profile.name.
        type: str
      name:
        description:
        - Policy name.
        type: str
      policyid:
        description:
        - Policy ID. see <a href='#notes'>Notes</a>.
        required: true
        type: int
      poolname:
        description:
        - Name of IP pool object.
        elements: dict
        suboptions:
          name:
            description:
            - IP pool name. Source firewall.ippool.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
      proxy:
        choices:
        - explicit-web
        - transparent-web
        - ftp
        - ssh
        - ssh-tunnel
        - access-proxy
        - wanopt
        description:
        - Type of explicit proxy.
        type: str
      redirect_url:
        description:
        - Redirect URL for further explicit web proxy processing.
        type: str
      replacemsg_override_group:
        description:
        - Authentication replacement message override group. Source system.replacemsg-group.name.
        type: str
      scan_botnet_connections:
        choices:
        - disable
        - block
        - monitor
        description:
        - Enable/disable scanning of connections to Botnet servers.
        type: str
      schedule:
        description:
        - Name of schedule object. 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
      service:
        description:
        - Name of service objects.
        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, services match against any service EXCEPT the specified destination
          services.
        type: str
      session_ttl:
        description:
        - TTL in seconds for sessions accepted by this policy (0 means use the system
          ).
        type: int
      spamfilter_profile:
        description:
        - Name of an existing Spam filter profile. Source spamfilter.profile.name.
        type: str
      srcaddr:
        description:
        - Source address objects.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name firewall.proxy-address.name
              firewall.proxy-addrgrp.name system .external-resource.name.
            required: true
            type: str
        type: list
      srcaddr6:
        description:
        - IPv6 source address objects.
        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, source addresses match against any address EXCEPT the specified
          source addresses.
        type: str
      srcintf:
        description:
        - Source interface names.
        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
      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/disable the active status of the policy.
        type: str
      transparent:
        choices:
        - enable
        - disable
        description:
        - Enable to use the IP address of the client to connect to the server.
        type: str
      users:
        description:
        - Names of user objects.
        elements: dict
        suboptions:
          name:
            description:
            - Group name. Source user.local.name user.certificate.name.
            required: true
            type: str
        type: list
      utm_status:
        choices:
        - enable
        - disable
        description:
        - Enable the use of UTM profiles/sensors/lists.
        type: str
      uuid:
        description:
        - Universally Unique Identifier (UUID; automatically assigned but can be manually
          reset).
        type: str
      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 profile. Source voip.profile.name.
        type: str
      waf_profile:
        description:
        - Name of an existing Web application firewall profile. Source waf.profile.name.
        type: str
      webcache:
        choices:
        - enable
        - disable
        description:
        - Enable/disable web caching.
        type: str
      webcache_https:
        choices:
        - disable
        - enable
        description:
        - Enable/disable web caching for HTTPS (Requires deep-inspection enabled in ssl-ssh-profile).
        type: str
      webfilter_profile:
        description:
        - Name of an existing Web filter profile. Source webfilter.profile.name.
        type: str
      webproxy_forward_server:
        description:
        - Web proxy forward server name. Source web-proxy.forward-server.name web-proxy.forward-server-group.name.
        type: str
      webproxy_profile:
        description:
        - Name of web proxy profile. Source web-proxy.profile.name.
        type: str
      ztna_ems_tag:
        description:
        - ZTNA EMS Tag names.
        elements: dict
        suboptions:
          name:
            description:
            - EMS Tag name. Source firewall.address.name firewall.addrgrp.name.
            required: true
            type: str
        type: list
      ztna_tags_match_logic:
        choices:
        - or
        - and
        description:
        - ZTNA tag matching logic.
        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