fortinet.fortimanager.fmgr_waf_profile_constraint 模块 – WAF HTTP 协议限制。

注意

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

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

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

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

fortinet.fortimanager 2.0.0 中的新功能

概要

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

  • 示例包括所有参数和值,在使用前需要根据数据源进行调整。

参数

参数

注释

access_token

字符串

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

adom

字符串 / 必需

请求 URL 中的参数 (adom)。

bypass_validation

布尔值

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

选择

  • false ←(默认)

  • true

enable_log

布尔值

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

选择

  • false ←(默认)

  • true

forticloud_access_token

字符串

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

profile

字符串 / 必需

请求 URL 中的参数 (profile)。

proposed_method

字符串

覆盖底层 Json RPC 请求的方法。

选择

  • "update"

  • "set"

  • "add"

rc_failed

列表 / 元素=整数

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

rc_succeeded

列表 / 元素=整数

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

waf_profile_constraint

字典

设置的顶级参数。

content_length

别名:content-length

字典

内容长度。

action

字符串

操作。

选择

  • "allow"

  • "block"

length

整数

HTTP 内容的长度(以字节为单位)

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

exception

列表 / 元素=字典

异常。

address

字符串

主机地址。

content_length

别名:content-length

字符串

请求中的 HTTP 内容长度。

选择

  • "disable"

  • "enable"

header_length

别名:header-length

字符串

请求中的 HTTP 标头长度。

选择

  • "disable"

  • "enable"

hostname

字符串

启用/禁用主机名检查。

选择

  • "disable"

  • "enable"

id

整数

异常 ID。

line_length

别名:line-length

字符串

请求中的 HTTP 行长度。

选择

  • "disable"

  • "enable"

malformed

字符串

启用/禁用格式错误的 HTTP 请求检查。

选择

  • "disable"

  • "enable"

max_cookie

别名:max-cookie

字符串

HTTP 请求中 Cookie 的最大数量。

选择

  • "disable"

  • "enable"

max_header_line

别名:max-header-line

字符串

HTTP 标头行的最大数量。

选择

  • "disable"

  • "enable"

max_range_segment

别名:max-range-segment

字符串

HTTP 范围行中范围段的最大数量。

选择

  • "disable"

  • "enable"

max_url_param

别名:max-url-param

字符串

URL 中参数的最大数量。

选择

  • "disable"

  • "enable"

method

字符串

启用/禁用 HTTP 方法检查。

选择

  • "disable"

  • "enable"

param_length

别名:param-length

字符串

URL、HTTP POST 请求或 HTTP 正文中参数的最大长度。

选择

  • "disable"

  • "enable"

pattern

字符串

URL 模式。

regex

字符串

启用/禁用基于正则表达式的模式匹配。

选择

  • "disable"

  • "enable"

url_param_length

别名:url-param-length

字符串

URL 中参数的最大长度。

选择

  • "disable"

  • "enable"

version

字符串

启用/禁用 HTTP 版本检查。

选择

  • "disable"

  • "enable"

header_length

别名:header-length

字典

标头长度。

action

字符串

操作。

选择

  • "allow"

  • "block"

length

整数

HTTP 标头的长度(以字节为单位)

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

hostname

字典

主机名。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

line_length

别名:line-length

字典

行长度。

action

字符串

操作。

选择

  • "allow"

  • "block"

length

整数

HTTP 行的长度,以字节为单位。

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

malformed

字典

格式错误。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

max_cookie

别名:max-cookie

字典

最大 Cookie 数。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

max_cookie

别名:max-cookie

整数

HTTP 请求中的最大 Cookie 数量

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

max_header_line

别名:max-header-line

字典

最大头部行数。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

max_header_line

别名:max-header-line

整数

HTTP 头部行的最大数量

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

max_range_segment

别名:max-range-segment

字典

最大范围段。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

max_range_segment

别名:max-range-segment

整数

HTTP 范围行中的最大范围段数量

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

max_url_param

别名:max-url-param

字典

最大 URL 参数。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

max_url_param

别名:max-url-param

整数

URL 中的最大参数数量

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

method

字典

方法。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

param_length

别名:param-length

字典

参数长度。

action

字符串

操作。

选择

  • "allow"

  • "block"

length

整数

URL、HTTP POST 请求或 HTTP 正文中的最大参数长度,以字节为单位

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

url_param_length

别名:url-param-length

字典

URL 参数长度。

action

字符串

操作。

选择

  • "allow"

  • "block"

length

整数

URL 参数的最大长度,以字节为单位

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

version

字典

版本。

action

字符串

操作。

选择

  • "allow"

  • "block"

log

字符串

启用/禁用日志记录。

选择

  • "disable"

  • "enable"

severity

字符串

严重性。

选择

  • "low"

  • "medium"

  • "high"

status

字符串

启用/禁用约束。

选择

  • "disable"

  • "enable"

workspace_locking_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: WAF HTTP protocol restrictions.
      fortinet.fortimanager.fmgr_waf_profile_constraint:
        # 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, ...]
        adom: <your own value>
        profile: <your own value>
        waf_profile_constraint:
          content_length:
            action: <value in [allow, block]>
            length: <integer>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          exception:
            -
              address: <string>
              content_length: <value in [disable, enable]>
              header_length: <value in [disable, enable]>
              hostname: <value in [disable, enable]>
              id: <integer>
              line_length: <value in [disable, enable]>
              malformed: <value in [disable, enable]>
              max_cookie: <value in [disable, enable]>
              max_header_line: <value in [disable, enable]>
              max_range_segment: <value in [disable, enable]>
              max_url_param: <value in [disable, enable]>
              method: <value in [disable, enable]>
              param_length: <value in [disable, enable]>
              pattern: <string>
              regex: <value in [disable, enable]>
              url_param_length: <value in [disable, enable]>
              version: <value in [disable, enable]>
          header_length:
            action: <value in [allow, block]>
            length: <integer>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          hostname:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          line_length:
            action: <value in [allow, block]>
            length: <integer>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          malformed:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          max_cookie:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            max_cookie: <integer>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          max_header_line:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            max_header_line: <integer>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          max_range_segment:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            max_range_segment: <integer>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          max_url_param:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            max_url_param: <integer>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          method:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          param_length:
            action: <value in [allow, block]>
            length: <integer>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          url_param_length:
            action: <value in [allow, block]>
            length: <integer>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>
          version:
            action: <value in [allow, block]>
            log: <value in [disable, enable]>
            severity: <value in [low, medium, high]>
            status: <value in [disable, enable]>

返回值

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

描述

meta

字典

请求的结果。

返回: 总是

request_url

字符串

请求的完整 URL。

返回: 总是

示例: "/sys/login/user"

response_code

整数

API 请求的状态。

返回: 总是

示例: 0

response_data

list / elements=string

API 响应。

返回: 总是

response_message

字符串

API 响应的描述性消息。

返回: 总是

示例: "OK."

system_information

字典

目标系统的信息。

返回: 总是

rc

整数

请求的状态。

返回: 总是

示例: 0

version_check_warning

list / elements=string

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

返回: 复杂

作者

  • Xinwei Du (@dux-fortinet)

  • Xing Li (@lix-fortinet)

  • Jie Xue (@JieX19)

  • Link Zheng (@chillancezen)

  • Frank Shen (@fshen01)

  • Hongbin Lu (@fgtdev-hblu)