fortinet.fortimanager.fmgr_vpn_ssl_settings 模块 – 配置 SSL VPN。

注意

此模块是 fortinet.fortimanager 集合(版本 2.8.2)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install fortinet.fortimanager

要在 playbook 中使用它,请指定:fortinet.fortimanager.fmgr_vpn_ssl_settings

在 fortinet.fortimanager 2.1.0 中新增

概要

  • 此模块能够配置 FortiManager 设备。

  • 示例包括所有参数和值,这些参数和值需要在使用前调整为数据源。

参数

参数

注释

access_token

字符串

无需使用用户名和密码即可访问 FortiManager 的令牌。

bypass_validation

布尔值

仅当模块架构与 FortiManager API 结构不同时才设置为 True,模块将继续执行而不验证参数。

选项

  • false ←(默认)

  • true

device

字符串 / 必需

请求 URL 中的参数 (device)。

enable_log

布尔值

启用/禁用任务日志记录。

选项

  • false ←(默认)

  • true

forticloud_access_token

字符串

使用 forticloud API 访问令牌验证 Ansible 客户端。

proposed_method

字符串

底层 Json RPC 请求的重写方法。

选项

  • "update"

  • "set"

  • "add"

rc_failed

列表 / 元素=整数

将覆盖失败条件的 rc 代码列表。

rc_succeeded

列表 / 元素=整数

将覆盖成功条件的 rc 代码列表。

vdom

字符串 / 必需

请求 URL 中的参数 (vdom)。

vpn_ssl_settings

字典

顶级参数集。

algorithm

字符串

强制 SSL VPN 安全级别。

选项

  • "default"

  • "high"

  • "low"

  • "medium"

auth_session_check_source_ip

别名:auth-session-check-source-ip

字符串

启用/禁用检查身份验证会话的源 IP。

选项

  • "disable"

  • "enable"

auth_timeout

别名:auth-timeout

整数

SSL VPN 身份验证超时

authentication_rule

别名:authentication-rule

列表 / 元素=字典

身份验证规则。

auth

字符串

SSL VPN 身份验证方法限制。

选项

  • "any"

  • "local"

  • "radius"

  • "ldap"

  • "tacacs+"

  • "peer"

cipher

字符串

SSL VPN 加密强度。

选项

  • "any"

  • "high"

  • "medium"

client_cert

别名:client-cert

字符串

启用/禁用 SSL VPN 客户端证书限制。

选项

  • "disable"

  • "enable"

groups

任意

(列表或字符串)用户组。

id

整数

ID

portal

字符串

SSL VPN 门户。

realm

字符串

SSL VPN 域。

source_address

别名:source-address

任意

(列表或字符串)传入流量的源地址。

source_address6

别名:source-address6

任意

(列表或字符串)传入流量的 IPv6 源地址。

source_address6_negate

别名:source-address6-negate

字符串

启用/禁用否定的源 IPv6 地址匹配。

选项

  • "disable"

  • "enable"

source_address_negate

别名:source-address-negate

字符串

启用/禁用否定的源地址匹配。

选项

  • "disable"

  • "enable"

source_interface

别名:source-interface

任意

(列表或字符串)传入流量的 SSL VPN 源接口。

user_peer

别名:user-peer

字符串

用户对等方的名称。

users

任意

(列表或字符串)用户名。

auto_tunnel_static_route

别名:auto-tunnel-static-route

字符串

启用/禁用为 SSL VPN 隧道 IP 地址自动创建静态路由。

选项

  • "disable"

  • "enable"

banned_cipher

别名:banned-cipher

列表 / 元素=字符串

选择一个或多个在 SSL VPN 协商中不能使用的加密技术。

选项

  • "RSA"

  • "DH"

  • "DHE"

  • "ECDH"

  • "ECDHE"

  • "DSS"

  • "ECDSA"

  • "AES"

  • "AESGCM"

  • "CAMELLIA"

  • "3DES"

  • "SHA1"

  • "SHA256"

  • "SHA384"

  • "STATIC"

  • "CHACHA20"

  • "ARIA"

  • "AESCCM"

browser_language_detection

别名:browser-language-detection

字符串

启用/禁用基于浏览器的首选语言覆盖配置的系统语言。

选项

  • "disable"

  • "enable"

check_referer

别名:check-referer

字符串

启用/禁用 HTTP 请求头中 referer 字段的验证。

选项

  • "disable"

  • "enable"

ciphersuite

列表 / 元素=字符串

选择一个或多个 TLS 1。

选项

  • "TLS-AES-128-GCM-SHA256"

  • "TLS-AES-256-GCM-SHA384"

  • "TLS-CHACHA20-POLY1305-SHA256"

  • "TLS-AES-128-CCM-SHA256"

  • "TLS-AES-128-CCM-8-SHA256"

client_sigalgs

别名:client-sigalgs

字符串

设置与客户端身份验证相关的签名算法。

选项

  • "no-rsa-pss"

  • "all"

default_portal

别名:default-portal

字符串

默认的 SSL VPN 门户。

deflate_compression_level

别名:deflate-compression-level

整数

压缩级别

deflate_min_data_size

别名:deflate-min-data-size

整数

触发压缩的最小数据量

dns_server1

别名:dns-server1

字符串

DNS 服务器 1。

dns_server2

别名:dns-server2

字符串

DNS 服务器 2。

dns_suffix

别名:dns-suffix

字符串

用于 SSL VPN 客户端的 DNS 后缀。

dtls_heartbeat_fail_count

别名:dtls-heartbeat-fail-count

整数

连接被视为断开前丢失的心跳数。

dtls_heartbeat_idle_timeout

别名:dtls-heartbeat-idle-timeout

整数

发送 DTLS 心跳前的空闲超时时间。

dtls_heartbeat_interval

别名:dtls-heartbeat-interval

整数

DTLS 心跳之间的间隔。

dtls_hello_timeout

别名:dtls-hello-timeout

整数

SSLVPN 最大 DTLS hello 超时时间

dtls_max_proto_ver

别名:dtls-max-proto-ver

字符串

DTLS 最大协议版本。

选项

  • "dtls1-0"

  • "dtls1-2"

dtls_min_proto_ver

别名:dtls-min-proto-ver

字符串

DTLS 最小协议版本。

选项

  • "dtls1-0"

  • "dtls1-2"

dtls_tunnel

别名:dtls-tunnel

字符串

启用/禁用 DTLS 以防止窃听、篡改或消息伪造。

选项

  • "disable"

  • "enable"

dual_stack_mode

别名:dual-stack-mode

字符串

隧道模式

选项

  • "disable"

  • "enable"

encode_2f_sequence

别名:encode-2f-sequence

字符串

将 URL 中的 2F 序列编码为正斜杠。

选项

  • "disable"

  • "enable"

encrypt_and_store_password

别名:encrypt-and-store-password

字符串

加密并存储 SSL VPN Web 会话的用户密码。

选项

  • "disable"

  • "enable"

force_two_factor_auth

别名:force-two-factor-auth

字符串

启用/禁用仅对使用双因素身份验证的 PKI 用户启用 SSL VPN。

选项

  • "disable"

  • "enable"

header_x_forwarded_for

别名:header-x-forwarded-for

字符串

转发相同的内容、添加或删除 HTTP 标头。

选项

  • "pass"

  • "add"

  • "remove"

hsts_include_subdomains

别名:hsts-include-subdomains

字符串

添加 HSTS includeSubDomains 响应标头。

选项

  • "disable"

  • "enable"

http_compression

别名:http-compression

字符串

启用/禁用以允许在 SSL VPN 隧道上进行 HTTP 压缩。

选项

  • "disable"

  • "enable"

http_only_cookie

别名:http-only-cookie

字符串

启用/禁用 SSL VPN 对 HttpOnly cookie 的支持。

选项

  • "disable"

  • "enable"

http_request_body_timeout

别名:http-request-body-timeout

整数

如果在此时限内未收到 HTTP 请求主体,则 SSL VPN 会话断开连接

http_request_header_timeout

别名:http-request-header-timeout

整数

如果在此时限内未收到 HTTP 请求头,则 SSL VPN 会话断开连接

https_redirect

别名:https-redirect

字符串

启用/禁用将端口 80 重定向到 SSL VPN 端口。

选项

  • "disable"

  • "enable"

idle_timeout

别名:idle-timeout

整数

如果空闲时间超过指定秒数,则 SSL VPN 断开连接。

ipv6_dns_server1

别名:ipv6-dns-server1

字符串

IPv6 DNS 服务器 1。

ipv6_dns_server2

别名:ipv6-dns-server2

字符串

IPv6 DNS 服务器 2。

ipv6_wins_server1

别名:ipv6-wins-server1

字符串

IPv6 WINS 服务器 1。

ipv6_wins_server2

别名:ipv6-wins-server2

字符串

IPv6 WINS 服务器 2。

login_attempt_limit

别名:login-attempt-limit

整数

SSL VPN 阻止前的最大登录尝试次数

login_block_time

别名:login-block-time

整数

用户在多次登录失败后被阻止登录的时间

login_timeout

别名:login-timeout

整数

SSLVPN 最大登录超时时间

port

整数

SSL VPN 访问端口

port_precedence

别名:port-precedence

字符串

启用/禁用,启用表示如果允许在接口上进行 SSL VPN 连接,则会阻止在 … 上进行管理 GUI 连接

选项

  • "disable"

  • "enable"

reqclientcert

字符串

启用/禁用以要求所有 SSL VPN 用户都必须使用客户端证书。

选项

  • "disable"

  • "enable"

route_source_interface

别名:route-source-interface

字符串

启用/禁用以允许 SSL VPN 会话绕过路由并绑定到传入接口。

选项

  • "disable"

  • "enable"

saml_redirect_port

别名:saml-redirect-port

整数

运行 FortiClient 的机器中的 SAML 本地重定向端口

server_hostname

别名:server-hostname

字符串

HTTPS 的服务器主机名。

servercert

字符串

用于 SSL VPN 的服务器证书名称。

source_address

别名:source-address

任意

(列表或字符串)传入流量的源地址。

source_address6

别名:source-address6

任意

(列表或字符串)传入流量的 IPv6 源地址。

source_address6_negate

别名:source-address6-negate

字符串

启用/禁用否定的源 IPv6 地址匹配。

选项

  • "disable"

  • "enable"

source_address_negate

别名:source-address-negate

字符串

启用/禁用否定的源地址匹配。

选项

  • "disable"

  • "enable"

source_interface

别名:source-interface

任意

(列表或字符串)传入流量的 SSL VPN 源接口。

ssl_big_buffer

别名:ssl-big-buffer

字符串

禁用使用大型 SSLv3 缓冲区功能以节省内存并强制提高安全性。

选项

  • "disable"

  • "enable"

ssl_client_renegotiation

别名:ssl-client-renegotiation

字符串

启用/禁用以允许在隧道断开时服务器重新协商客户端。

选项

  • "disable"

  • "enable"

ssl_insert_empty_fragment

别名:ssl-insert-empty-fragment

字符串

启用/禁用插入空片段。

选项

  • "disable"

  • "enable"

ssl_max_proto_ver

别名:ssl-max-proto-ver

字符串

SSL 最大协议版本。

选项

  • "tls1-0"

  • "tls1-1"

  • "tls1-2"

  • "tls1-3"

ssl_min_proto_ver

别名:ssl-min-proto-ver

字符串

SSL 最小协议版本。

选项

  • "tls1-0"

  • "tls1-1"

  • "tls1-2"

  • "tls1-3"

sslv3

字符串

Sslv3。

选项

  • "disable"

  • "enable"

status

字符串

启用/禁用 SSL-VPN。

选项

  • "disable"

  • "enable"

tlsv1_0

别名:tlsv1-0

字符串

启用/禁用 TLSv1。

选项

  • "disable"

  • "enable"

tlsv1_1

别名:tlsv1-1

字符串

启用/禁用 TLSv1。

选项

  • "disable"

  • "enable"

tlsv1_2

别名:tlsv1-2

字符串

启用/禁用 TLSv1。

选项

  • "disable"

  • "enable"

tlsv1_3

别名:tlsv1-3

字符串

Tlsv1 3。

选项

  • "disable"

  • "enable"

transform_backward_slashes

别名:transform-backward-slashes

字符串

将 URL 中的反斜杠转换为正斜杠。

选项

  • "disable"

  • "enable"

tunnel_addr_assigned_method

别名:tunnel-addr-assigned-method

字符串

用于为隧道分配地址的方法。

选项

  • "first-available"

  • "round-robin"

tunnel_connect_without_reauth

别名:tunnel-connect-without-reauth

字符串

启用/禁用在先前连接断开的情况下,隧道连接无需重新授权。

选项

  • "disable"

  • "enable"

tunnel_ip_pools(隧道 IP 池)

别名: tunnel-ip-pools

任意

(列表或字符串)定义为远程客户端保留的 IP 地址的 IPv4 IP 池防火墙对象的名称。

tunnel_ipv6_pools(隧道 IPv6 池)

别名: tunnel-ipv6-pools

任意

(列表或字符串)定义为远程客户端保留的 IP 地址的 IPv6 IP 池防火墙对象的名称。

tunnel_user_session_timeout(隧道用户会话超时)

别名: tunnel-user-session-timeout

整数

隧道连接断开后,清理用户会话的超时值。

unsafe_legacy_renegotiation(不安全旧版重新协商)

别名: unsafe-legacy-renegotiation

字符串

启用/禁用不安全旧版重新协商。

选项

  • "disable"

  • "enable"

url_obscuration(URL 混淆)

别名: url-obscuration

字符串

启用/禁用以混淆 Web 浏览器显示的 URL 的主机名。

选项

  • "disable"

  • "enable"

user_peer(用户对等体)

别名:user-peer

字符串

用户对等方的名称。

web_mode_snat(Web 模式 SNAT)

别名: web-mode-snat

字符串

启用/禁用在使用 Web 模式时使用防火墙策略中定义的 IP 池。

选项

  • "disable"

  • "enable"

wins_server1(WINS 服务器 1)

别名: wins-server1

字符串

WINS 服务器 1。

wins_server2(WINS 服务器 2)

别名: wins-server2

字符串

WINS 服务器 2。

x_content_type_options(X-Content-Type-Options)

别名: x-content-type-options

字符串

添加 HTTP X-Content-Type-Options 标头。

选项

  • "disable"

  • "enable"

ztna_trusted_client(ZTNA 受信任客户端)

别名: ztna-trusted-client

字符串

启用/禁用 SSLVPN ZTNA 会话的设备证书验证。

选项

  • "disable"

  • "enable"

workspace_locking_adom(工作区锁定 ADOM)

字符串

对于在工作区模式下运行的 FortiManager 要锁定的 ADOM,该值可以是 global 以及包括 root 在内的其他值。

workspace_locking_timeout(工作区锁定超时)

整数

等待其他用户释放工作区锁定的最大时间(以秒为单位)。

默认值: 300

备注

注意

  • 从 2.4.0 版本开始,所有输入参数都使用下划线命名约定 (snake_case)。 请将 “var-name” 等参数更改为 “var_name”。旧的参数名称仍然可用,但您将收到弃用警告。您可以在 ansible.cfg 中设置 deprecation_warnings=False 来忽略此警告。

  • 此 FortiManager 模块支持在工作区锁定模式下运行,顶层参数 workspace_locking_adom 和 workspace_locking_timeout 有助于完成此项工作。

  • 通常,当返回非零 rc 时,运行一个模块可能会失败。您还可以使用参数 rc_failed 和 rc_succeeded 来覆盖失败或成功的条件。

示例

- name: Example playbook (generated based on argument schema)
  hosts: fortimanagers
  connection: httpapi
  vars:
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_httpapi_port: 443
  tasks:
    - name: Configure SSL VPN.
      fortinet.fortimanager.fmgr_vpn_ssl_settings:
        # bypass_validation: false
        workspace_locking_adom: <value in [global, custom adom including root]>
        workspace_locking_timeout: 300
        # rc_succeeded: [0, -2, -3, ...]
        # rc_failed: [-2, -3, ...]
        device: <your own value>
        vdom: <your own value>
        vpn_ssl_settings:
          algorithm: <value in [default, high, low, ...]>
          auth_session_check_source_ip: <value in [disable, enable]>
          auth_timeout: <integer>
          authentication_rule:
            -
              auth: <value in [any, local, radius, ...]>
              cipher: <value in [any, high, medium]>
              client_cert: <value in [disable, enable]>
              groups: <list or string>
              id: <integer>
              portal: <string>
              realm: <string>
              source_address: <list or string>
              source_address_negate: <value in [disable, enable]>
              source_address6: <list or string>
              source_address6_negate: <value in [disable, enable]>
              source_interface: <list or string>
              user_peer: <string>
              users: <list or string>
          auto_tunnel_static_route: <value in [disable, enable]>
          banned_cipher:
            - "RSA"
            - "DH"
            - "DHE"
            - "ECDH"
            - "ECDHE"
            - "DSS"
            - "ECDSA"
            - "AES"
            - "AESGCM"
            - "CAMELLIA"
            - "3DES"
            - "SHA1"
            - "SHA256"
            - "SHA384"
            - "STATIC"
            - "CHACHA20"
            - "ARIA"
            - "AESCCM"
          check_referer: <value in [disable, enable]>
          default_portal: <string>
          deflate_compression_level: <integer>
          deflate_min_data_size: <integer>
          dns_server1: <string>
          dns_server2: <string>
          dns_suffix: <string>
          dtls_hello_timeout: <integer>
          dtls_max_proto_ver: <value in [dtls1-0, dtls1-2]>
          dtls_min_proto_ver: <value in [dtls1-0, dtls1-2]>
          dtls_tunnel: <value in [disable, enable]>
          encode_2f_sequence: <value in [disable, enable]>
          encrypt_and_store_password: <value in [disable, enable]>
          force_two_factor_auth: <value in [disable, enable]>
          header_x_forwarded_for: <value in [pass, add, remove]>
          hsts_include_subdomains: <value in [disable, enable]>
          http_compression: <value in [disable, enable]>
          http_only_cookie: <value in [disable, enable]>
          http_request_body_timeout: <integer>
          http_request_header_timeout: <integer>
          https_redirect: <value in [disable, enable]>
          idle_timeout: <integer>
          ipv6_dns_server1: <string>
          ipv6_dns_server2: <string>
          ipv6_wins_server1: <string>
          ipv6_wins_server2: <string>
          login_attempt_limit: <integer>
          login_block_time: <integer>
          login_timeout: <integer>
          port: <integer>
          port_precedence: <value in [disable, enable]>
          reqclientcert: <value in [disable, enable]>
          route_source_interface: <value in [disable, enable]>
          servercert: <string>
          source_address: <list or string>
          source_address_negate: <value in [disable, enable]>
          source_address6: <list or string>
          source_address6_negate: <value in [disable, enable]>
          source_interface: <list or string>
          ssl_client_renegotiation: <value in [disable, enable]>
          ssl_insert_empty_fragment: <value in [disable, enable]>
          ssl_max_proto_ver: <value in [tls1-0, tls1-1, tls1-2, ...]>
          ssl_min_proto_ver: <value in [tls1-0, tls1-1, tls1-2, ...]>
          tlsv1_0: <value in [disable, enable]>
          tlsv1_1: <value in [disable, enable]>
          tlsv1_2: <value in [disable, enable]>
          tlsv1_3: <value in [disable, enable]>
          transform_backward_slashes: <value in [disable, enable]>
          tunnel_connect_without_reauth: <value in [disable, enable]>
          tunnel_ip_pools: <list or string>
          tunnel_ipv6_pools: <list or string>
          tunnel_user_session_timeout: <integer>
          unsafe_legacy_renegotiation: <value in [disable, enable]>
          url_obscuration: <value in [disable, enable]>
          user_peer: <string>
          wins_server1: <string>
          wins_server2: <string>
          x_content_type_options: <value in [disable, enable]>
          sslv3: <value in [disable, enable]>
          ssl_big_buffer: <value in [disable, enable]>
          client_sigalgs: <value in [no-rsa-pss, all]>
          ciphersuite:
            - "TLS-AES-128-GCM-SHA256"
            - "TLS-AES-256-GCM-SHA384"
            - "TLS-CHACHA20-POLY1305-SHA256"
            - "TLS-AES-128-CCM-SHA256"
            - "TLS-AES-128-CCM-8-SHA256"
          dual_stack_mode: <value in [disable, enable]>
          tunnel_addr_assigned_method: <value in [first-available, round-robin]>
          browser_language_detection: <value in [disable, enable]>
          saml_redirect_port: <integer>
          status: <value in [disable, enable]>
          web_mode_snat: <value in [disable, enable]>
          ztna_trusted_client: <value in [disable, enable]>
          dtls_heartbeat_fail_count: <integer>
          dtls_heartbeat_idle_timeout: <integer>
          dtls_heartbeat_interval: <integer>
          server_hostname: <string>

返回值

常见的返回值已记录在这里,以下是此模块特有的字段

描述

meta(元数据)

字典

请求的结果。

返回: 始终

request_url(请求 URL)

字符串

请求的完整 URL。

返回: 始终

示例: "/sys/login/user"

response_code(响应代码)

整数

API 请求的状态。

返回: 始终

示例: 0

response_data(响应数据)

列表 / 元素=字符串

API 响应。

返回: 始终

response_message(响应消息)

字符串

API 响应的描述性消息。

返回: 始终

示例: "OK."

system_information(系统信息)

字典

目标系统的信息。

返回: 始终

rc

整数

请求的状态。

返回: 始终

示例: 0

version_check_warning(版本检查警告)

列表 / 元素=字符串

如果 playbook 中使用的参数不受当前 FortiManager 版本支持,则发出警告。

返回: 复杂

作者

  • Xinwei Du (@dux-fortinet)

  • Xing Li (@lix-fortinet)

  • Jie Xue (@JieX19)

  • Link Zheng (@chillancezen)

  • Frank Shen (@fshen01)

  • Hongbin Lu (@fgtdev-hblu)