fortios_firewall_ssl_ssh_profile – Configure SSL/SSH protocol options in Fortinet’s FortiOS and FortiGate

From Get docs
Ansible/docs/2.9/modules/fortios firewall ssl ssh profile module


fortios_firewall_ssl_ssh_profile – Configure SSL/SSH protocol options in Fortinet’s FortiOS and FortiGate

New in version 2.8.


Synopsis

  • This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify firewall feature and ssl_ssh_profile category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.5

Requirements

The below requirements are needed on the host that executes this module.

  • fortiosapi>=0.9.8

Parameters

Parameter Choices/Defaults Comments

firewall_ssl_ssh_profile

dictionary

Default:

null

Configure SSL/SSH protocol options.

caname

string

CA certificate used by SSL Inspection. Source vpn.certificate.local.name.

comment

string

Optional comments.

ftps

dictionary

Configure FTPS options.

allow_invalid_server_cert

string

  • enable
  • disable

When enabled, allows SSL sessions whose server certificate validation failed.

client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request.

ports

integer

Ports to use for scanning (1 - 65535).

status

string

  • disable
  • deep-inspection

Configure protocol inspection status.

unsupported_ssl

string

  • bypass
  • inspect
  • block

Action based on the SSL encryption used being unsupported.

untrusted_cert

string

  • allow
  • block
  • ignore

Allow, ignore, or block the untrusted SSL session server certificate.

https

dictionary

Configure HTTPS options.

allow_invalid_server_cert

string

  • enable
  • disable

When enabled, allows SSL sessions whose server certificate validation failed.

client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request.

ports

integer

Ports to use for scanning (1 - 65535).

status

string

  • disable
  • certificate-inspection
  • deep-inspection

Configure protocol inspection status.

unsupported_ssl

string

  • bypass
  • inspect
  • block

Action based on the SSL encryption used being unsupported.

untrusted_cert

string

  • allow
  • block
  • ignore

Allow, ignore, or block the untrusted SSL session server certificate.

imaps

dictionary

Configure IMAPS options.

allow_invalid_server_cert

string

  • enable
  • disable

When enabled, allows SSL sessions whose server certificate validation failed.

client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request.

ports

integer

Ports to use for scanning (1 - 65535).

status

string

  • disable
  • deep-inspection

Configure protocol inspection status.

unsupported_ssl

string

  • bypass
  • inspect
  • block

Action based on the SSL encryption used being unsupported.

untrusted_cert

string

  • allow
  • block
  • ignore

Allow, ignore, or block the untrusted SSL session server certificate.

mapi_over_https

string

  • enable
  • disable

Enable/disable inspection of MAPI over HTTPS.

name

string / required

Name.

pop3s

dictionary

Configure POP3S options.

allow_invalid_server_cert

string

  • enable
  • disable

When enabled, allows SSL sessions whose server certificate validation failed.

client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request.

ports

integer

Ports to use for scanning (1 - 65535).

status

string

  • disable
  • deep-inspection

Configure protocol inspection status.

unsupported_ssl

string

  • bypass
  • inspect
  • block

Action based on the SSL encryption used being unsupported.

untrusted_cert

string

  • allow
  • block
  • ignore

Allow, ignore, or block the untrusted SSL session server certificate.

rpc_over_https

string

  • enable
  • disable

Enable/disable inspection of RPC over HTTPS.

server_cert

string

Certificate used by SSL Inspection to replace server certificate. Source vpn.certificate.local.name.

server_cert_mode

string

  • re-sign
  • replace

Re-sign or replace the server's certificate.

smtps

dictionary

Configure SMTPS options.

allow_invalid_server_cert

string

  • enable
  • disable

When enabled, allows SSL sessions whose server certificate validation failed.

client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request.

ports

integer

Ports to use for scanning (1 - 65535).

status

string

  • disable
  • deep-inspection

Configure protocol inspection status.

unsupported_ssl

string

  • bypass
  • inspect
  • block

Action based on the SSL encryption used being unsupported.

untrusted_cert

string

  • allow
  • block
  • ignore

Allow, ignore, or block the untrusted SSL session server certificate.

ssh

dictionary

Configure SSH options.

inspect_all

string

  • disable
  • deep-inspection

Level of SSL inspection.

ports

integer

Ports to use for scanning (1 - 65535).

ssh_algorithm

string

  • compatible
  • high-encryption

Relative strength of encryption algorithms accepted during negotiation.

ssh_policy_check

string

  • disable
  • enable

Enable/disable SSH policy check.

ssh_tun_policy_check

string

  • disable
  • enable

Enable/disable SSH tunnel policy check.

status

string

  • disable
  • deep-inspection

Configure protocol inspection status.

unsupported_version

string

  • bypass
  • block

Action based on SSH version being unsupported.

ssl

dictionary

Configure SSL options.

allow_invalid_server_cert

string

  • enable
  • disable

When enabled, allows SSL sessions whose server certificate validation failed.

client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request.

inspect_all

string

  • disable
  • certificate-inspection
  • deep-inspection

Level of SSL inspection.

unsupported_ssl

string

  • bypass
  • inspect
  • block

Action based on the SSL encryption used being unsupported.

untrusted_cert

string

  • allow
  • block
  • ignore

Allow, ignore, or block the untrusted SSL session server certificate.

ssl_anomalies_log

string

  • disable
  • enable

Enable/disable logging SSL anomalies.

ssl_exempt

list

Servers to exempt from SSL inspection.

address

string

IPv4 address object. Source firewall.address.name firewall.addrgrp.name.

address6

string

IPv6 address object. Source firewall.address6.name firewall.addrgrp6.name.

fortiguard_category

integer

FortiGuard category ID.

id

integer / required

ID number.

regex

string

Exempt servers by regular expression.

type

string

  • fortiguard-category
  • address
  • address6
  • wildcard-fqdn
  • regex

Type of address object (IPv4 or IPv6) or FortiGuard category.

wildcard_fqdn

string

Exempt servers by wildcard FQDN. Source firewall.wildcard-fqdn.custom.name firewall.wildcard-fqdn.group.name.

ssl_exemptions_log

string

  • disable
  • enable

Enable/disable logging SSL exemptions.

ssl_server

list

SSL servers.

ftps_client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request during the FTPS handshake.

https_client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request during the HTTPS handshake.

id

integer / required

SSL server ID.

imaps_client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request during the IMAPS handshake.

ip

string

IPv4 address of the SSL server.

pop3s_client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request during the POP3S handshake.

smtps_client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request during the SMTPS handshake.

ssl_other_client_cert_request

string

  • bypass
  • inspect
  • block

Action based on client certificate request during an SSL protocol handshake.

state

string

  • present
  • absent

Deprecated

Starting with Ansible 2.9 we recommend using the top-level 'state' parameter.

Indicates whether to create or remove the object.

untrusted_caname

string

Untrusted CA certificate used by SSL Inspection. Source vpn.certificate.local.name.

use_ssl_server

string

  • disable
  • enable

Enable/disable the use of SSL server table for SSL offloading.

whitelist

string

  • enable
  • disable

Enable/disable exempting servers by FortiGuard whitelist.

host

string

FortiOS or FortiGate IP address.

https

boolean

  • no
  • yes

Indicates if the requests towards FortiGate must use HTTPS protocol.

password

string

Default:

""

FortiOS or FortiGate password.

ssl_verify

boolean

added in 2.9

  • no
  • yes

Ensures FortiGate certificate must be verified by a proper CA.

state

string

added in 2.9

  • present
  • absent

Indicates whether to create or remove the object. This attribute was present already in previous version in a deeper level. It has been moved out to this outer level.

username

string

FortiOS or FortiGate username.

vdom

string

Default:

"root"

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.



Notes

Note

  • Requires fortiosapi library developed by Fortinet
  • Run as a local_action in your playbook


Examples

- hosts: localhost
  vars:
   host: "192.168.122.40"
   username: "admin"
   password: ""
   vdom: "root"
   ssl_verify: "False"
  tasks:
  - name: Configure SSL/SSH protocol options.
    fortios_firewall_ssl_ssh_profile:
      host:  "{{ host }}"
      username: "{{ username }}"
      password: "{{ password }}"
      vdom:  "{{ vdom }}"
      https: "False"
      state: "present"
      firewall_ssl_ssh_profile:
        caname: "<your_own_value> (source vpn.certificate.local.name)"
        comment: "Optional comments."
        ftps:
            allow_invalid_server_cert: "enable"
            client_cert_request: "bypass"
            ports: "8"
            status: "disable"
            unsupported_ssl: "bypass"
            untrusted_cert: "allow"
        https:
            allow_invalid_server_cert: "enable"
            client_cert_request: "bypass"
            ports: "15"
            status: "disable"
            unsupported_ssl: "bypass"
            untrusted_cert: "allow"
        imaps:
            allow_invalid_server_cert: "enable"
            client_cert_request: "bypass"
            ports: "22"
            status: "disable"
            unsupported_ssl: "bypass"
            untrusted_cert: "allow"
        mapi_over_https: "enable"
        name: "default_name_27"
        pop3s:
            allow_invalid_server_cert: "enable"
            client_cert_request: "bypass"
            ports: "31"
            status: "disable"
            unsupported_ssl: "bypass"
            untrusted_cert: "allow"
        rpc_over_https: "enable"
        server_cert: "<your_own_value> (source vpn.certificate.local.name)"
        server_cert_mode: "re-sign"
        smtps:
            allow_invalid_server_cert: "enable"
            client_cert_request: "bypass"
            ports: "41"
            status: "disable"
            unsupported_ssl: "bypass"
            untrusted_cert: "allow"
        ssh:
            inspect_all: "disable"
            ports: "47"
            ssh_algorithm: "compatible"
            ssh_policy_check: "disable"
            ssh_tun_policy_check: "disable"
            status: "disable"
            unsupported_version: "bypass"
        ssl:
            allow_invalid_server_cert: "enable"
            client_cert_request: "bypass"
            inspect_all: "disable"
            unsupported_ssl: "bypass"
            untrusted_cert: "allow"
        ssl_anomalies_log: "disable"
        ssl_exempt:
         -
            address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
            address6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)"
            fortiguard_category: "63"
            id:  "64"
            regex: "<your_own_value>"
            type: "fortiguard-category"
            wildcard_fqdn: "<your_own_value> (source firewall.wildcard-fqdn.custom.name firewall.wildcard-fqdn.group.name)"
        ssl_exemptions_log: "disable"
        ssl_server:
         -
            ftps_client_cert_request: "bypass"
            https_client_cert_request: "bypass"
            id:  "72"
            imaps_client_cert_request: "bypass"
            ip: "<your_own_value>"
            pop3s_client_cert_request: "bypass"
            smtps_client_cert_request: "bypass"
            ssl_other_client_cert_request: "bypass"
        untrusted_caname: "<your_own_value> (source vpn.certificate.local.name)"
        use_ssl_server: "disable"
        whitelist: "enable"

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description

build

string

always

Build number of the fortigate image


Sample:

1547

http_method

string

always

Last method used to provision the content into FortiGate


Sample:

PUT

http_status

string

always

Last result given by FortiGate on last operation applied


Sample:

200

mkey

string

success

Master key (id) used in the last call to FortiGate


Sample:

id

name

string

always

Name of the table used to fulfill the request


Sample:

urlfilter

path

string

always

Path of the table used to fulfill the request


Sample:

webfilter

revision

string

always

Internal revision number


Sample:

17.0.2.10658

serial

string

always

Serial number of the unit


Sample:

FGVMEVYYQT3AB5352

status

string

always

Indication of the operation's result


Sample:

success

vdom

string

always

Virtual domain used


Sample:

root

version

string

always

Version of the FortiGate


Sample:

v5.6.3




Status

Authors

  • Miguel Angel Munoz (@mamunozgonzalez)
  • Nicolas Thomas (@thomnico)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.


© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/fortios_firewall_ssl_ssh_profile_module.html