ansible.builtin.fortios_vpn_ipsec_phase2 (v2.8.20) — module

Configure VPN autokey tunnel in Fortinet's FortiOS and FortiGate.

| "added in version" 2.8 of ansible.builtin"

Authors: Miguel Angel Munoz (@mamunozgonzalez), Nicolas Thomas (@thomnico)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.8.20

Description

This module is able to configure a FortiGate or FortiOS by allowing the user to set and modify vpn_ipsec feature and phase2 category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.2


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- hosts: localhost
  vars:
   host: "192.168.122.40"
   username: "admin"
   password: ""
   vdom: "root"
  tasks:
  - name: Configure VPN autokey tunnel.
    fortios_vpn_ipsec_phase2:
      host:  "{{ host }}"
      username: "{{ username }}"
      password: "{{ password }}"
      vdom:  "{{ vdom }}"
      https: "False"
      vpn_ipsec_phase2:
        state: "present"
        add-route: "phase1"
        auto-negotiate: "enable"
        comments: "<your_own_value>"
        dhcp-ipsec: "enable"
        dhgrp: "1"
        dst-addr-type: "subnet"
        dst-end-ip: "<your_own_value>"
        dst-end-ip6: "<your_own_value>"
        dst-name: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
        dst-name6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)"
        dst-port: "13"
        dst-start-ip: "<your_own_value>"
        dst-start-ip6: "<your_own_value>"
        dst-subnet: "<your_own_value>"
        dst-subnet6: "<your_own_value>"
        encapsulation: "tunnel-mode"
        keepalive: "enable"
        keylife-type: "seconds"
        keylifekbs: "21"
        keylifeseconds: "22"
        l2tp: "enable"
        name: "default_name_24"
        pfs: "enable"
        phase1name: "<your_own_value> (source vpn.ipsec.phase1.name)"
        proposal: "null-md5"
        protocol: "28"
        replay: "enable"
        route-overlap: "use-old"
        selector-match: "exact"
        single-source: "enable"
        src-addr-type: "subnet"
        src-end-ip: "<your_own_value>"
        src-end-ip6: "<your_own_value>"
        src-name: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
        src-name6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)"
        src-port: "38"
        src-start-ip: "<your_own_value>"
        src-start-ip6: "<your_own_value>"
        src-subnet: "<your_own_value>"
        src-subnet6: "<your_own_value>"
        use-natip: "enable"

Inputs

    
host:
    description:
    - FortiOS or FortiGate ip address.
    required: true

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.

https:
    default: true
    description:
    - Indicates if the requests towards FortiGate must use HTTPS protocol
    type: bool

password:
    default: ''
    description:
    - FortiOS or FortiGate password.

username:
    description:
    - FortiOS or FortiGate username.
    required: true

vpn_ipsec_phase2:
    default: null
    description:
    - Configure VPN autokey tunnel.
    suboptions:
      add-route:
        choices:
        - phase1
        - enable
        - disable
        description:
        - Enable/disable automatic route addition.
      auto-negotiate:
        choices:
        - enable
        - disable
        description:
        - Enable/disable IPsec SA auto-negotiation.
      comments:
        description:
        - Comment.
      dhcp-ipsec:
        choices:
        - enable
        - disable
        description:
        - Enable/disable DHCP-IPsec.
      dhgrp:
        choices:
        - 1
        - 2
        - 5
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
        - 27
        - 28
        - 29
        - 30
        - 31
        description:
        - Phase2 DH group.
      dst-addr-type:
        choices:
        - subnet
        - range
        - ip
        - name
        description:
        - Remote proxy ID type.
      dst-end-ip:
        description:
        - Remote proxy ID IPv4 end.
      dst-end-ip6:
        description:
        - Remote proxy ID IPv6 end.
      dst-name:
        description:
        - Remote proxy ID name. Source firewall.address.name firewall.addrgrp.name.
      dst-name6:
        description:
        - Remote proxy ID name. Source firewall.address6.name firewall.addrgrp6.name.
      dst-port:
        description:
        - Quick mode destination port (1 - 65535 or 0 for all).
      dst-start-ip:
        description:
        - Remote proxy ID IPv4 start.
      dst-start-ip6:
        description:
        - Remote proxy ID IPv6 start.
      dst-subnet:
        description:
        - Remote proxy ID IPv4 subnet.
      dst-subnet6:
        description:
        - Remote proxy ID IPv6 subnet.
      encapsulation:
        choices:
        - tunnel-mode
        - transport-mode
        description:
        - ESP encapsulation mode.
      keepalive:
        choices:
        - enable
        - disable
        description:
        - Enable/disable keep alive.
      keylife-type:
        choices:
        - seconds
        - kbs
        - both
        description:
        - Keylife type.
      keylifekbs:
        description:
        - Phase2 key life in number of bytes of traffic (5120 - 4294967295).
      keylifeseconds:
        description:
        - Phase2 key life in time in seconds (120 - 172800).
      l2tp:
        choices:
        - enable
        - disable
        description:
        - Enable/disable L2TP over IPsec.
      name:
        description:
        - IPsec tunnel name.
        required: true
      pfs:
        choices:
        - enable
        - disable
        description:
        - Enable/disable PFS feature.
      phase1name:
        description:
        - Phase 1 determines the options required for phase 2. Source vpn.ipsec.phase1.name.
      proposal:
        choices:
        - null-md5
        - null-sha1
        - null-sha256
        - null-sha384
        - null-sha512
        - des-null
        - des-md5
        - des-sha1
        - des-sha256
        - des-sha384
        - des-sha512
        description:
        - Phase2 proposal.
      protocol:
        description:
        - Quick mode protocol selector (1 - 255 or 0 for all).
      replay:
        choices:
        - enable
        - disable
        description:
        - Enable/disable replay detection.
      route-overlap:
        choices:
        - use-old
        - use-new
        - allow
        description:
        - Action for overlapping routes.
      selector-match:
        choices:
        - exact
        - subset
        - auto
        description:
        - Match type to use when comparing selectors.
      single-source:
        choices:
        - enable
        - disable
        description:
        - Enable/disable single source IP restriction.
      src-addr-type:
        choices:
        - subnet
        - range
        - ip
        - name
        description:
        - Local proxy ID type.
      src-end-ip:
        description:
        - Local proxy ID end.
      src-end-ip6:
        description:
        - Local proxy ID IPv6 end.
      src-name:
        description:
        - Local proxy ID name. Source firewall.address.name firewall.addrgrp.name.
      src-name6:
        description:
        - Local proxy ID name. Source firewall.address6.name firewall.addrgrp6.name.
      src-port:
        description:
        - Quick mode source port (1 - 65535 or 0 for all).
      src-start-ip:
        description:
        - Local proxy ID start.
      src-start-ip6:
        description:
        - Local proxy ID IPv6 start.
      src-subnet:
        description:
        - Local proxy ID subnet.
      src-subnet6:
        description:
        - Local proxy ID IPv6 subnet.
      state:
        choices:
        - present
        - absent
        description:
        - Indicates whether to create or remove the object
      use-natip:
        choices:
        - enable
        - disable
        description:
        - Enable to use the FortiGate public IP as the source selector when outbound NAT
          is used.

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