fortinet.fortimanager.fmgr_waf_profile 模块 – Web 应用防火墙配置。
注意
此模块是 fortinet.fortimanager 集合 (版本 2.8.2) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install fortinet.fortimanager
。
要在 playbook 中使用它,请指定: fortinet.fortimanager.fmgr_waf_profile
。
fortinet.fortimanager 1.0.0 中的新增功能
概要
此模块能够配置 FortiManager 设备。
示例包含所有参数和值,在使用前需要将其调整为数据源。
参数
参数 |
注释 |
---|---|
无需用户名和密码即可访问 FortiManager 的令牌。 |
|
请求 URL 中的参数 (adom)。 |
|
仅当模块模式与 FortiManager API 结构不同时设置为 True,模块将继续执行而不验证参数。 选项
|
|
启用/禁用任务的日志记录。 选项
|
|
使用 forticloud API 访问令牌对 Ansible 客户端进行身份验证。 |
|
底层 Json RPC 请求的覆盖方法。 选项
|
|
将覆盖失败条件的 rc 代码列表。 |
|
将覆盖成功条件的 rc 代码列表。 |
|
创建、更新或删除对象的指令。 选项
|
|
设置的顶级参数。 |
|
地址列表。 |
|
(列表或字符串) 被阻止的地址。 |
|
启用/禁用被阻止地址的日志记录。 选项
|
|
严重性。 选项
|
|
状态。 选项
|
|
(列表或字符串) 可信地址。 |
|
注释。 |
|
约束。 |
|
内容长度。 |
|
动作。 选项
|
|
HTTP 内容长度(以字节为单位) |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
例外。 |
|
主机地址。 |
|
请求中的 HTTP 内容长度。 选项
|
|
请求中的 HTTP 头部长度。 选项
|
|
启用/禁用主机名检查。 选项
|
|
异常 ID。 |
|
请求中的 HTTP 行长度。 选项
|
|
启用/禁用格式错误的 HTTP 请求检查。 选项
|
|
HTTP 请求中的最大 Cookie 数量。 选项
|
|
HTTP 头部行的最大数量。 选项
|
|
HTTP range 行中最大范围段数。 选项
|
|
URL 参数最大数量。 选项
|
|
启用/禁用 HTTP 方法检查。 选项
|
|
URL、HTTP POST 请求或 HTTP 主体中参数的最大长度。 选项
|
|
URL 模式。 |
|
启用/禁用基于正则表达式的模式匹配。 选项
|
|
URL 中参数的最大长度。 选项
|
|
启用/禁用 HTTP 版本检查。 选项
|
|
报头长度。 |
|
动作。 选项
|
|
HTTP 报头长度(字节) |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
主机名。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
行长度。 |
|
动作。 选项
|
|
HTTP 行长度(字节) |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
格式错误。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
Cookie 最大数量。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
HTTP 请求中 Cookie 的最大数量 |
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
HTTP 报头行最大数量。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
HTTP 报头行的最大数量 |
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
范围段最大数量。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
HTTP range 行中范围段的最大数量 |
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
URL 参数最大数量。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
URL 参数的最大数量 |
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
方法。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
参数长度。 |
|
动作。 选项
|
|
URL、HTTP POST 请求或 HTTP 主体中参数的最大长度(字节) |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
URL 参数长度。 |
|
动作。 选项
|
|
URL 参数的最大长度(字节) |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
版本。 |
|
动作。 选项
|
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
启用/禁用约束。 选项
|
|
启用/禁用扩展日志记录。 选项
|
|
禁用/启用外部 HTTP 检查。 选项
|
|
方法。 |
|
方法。 选项
|
|
启用/禁用日志记录。 选项
|
|
方法策略。 |
|
主机地址。 |
|
允许的方法。 选项
|
|
HTTP 方法策略 ID。 |
|
URL 模式。 |
|
启用/禁用基于正则表达式的模式匹配。 选项
|
|
严重性。 选项
|
|
状态。 选项
|
|
WAF 配置文件名称。 |
|
签名。 |
|
检测违规的信用卡最小数量。 |
|
自定义签名。 |
|
动作。 选项
|
|
模式中的大小写敏感性。 选项
|
|
流量方向。 选项
|
|
启用/禁用日志记录。 选项
|
|
签名名称。 |
|
匹配模式。 |
|
严重性。 选项
|
|
状态。 选项
|
|
匹配 HTTP 目标。 选项
|
|
(列表或字符串) 禁用的签名 |
|
(列表或字符串) 禁用的签名子类。 |
|
主类。 |
|
动作。 选项
|
|
主签名类 ID。 |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
状态。 选项
|
|
URL 访问。 |
|
访问模式。 |
|
URL 访问模式 ID。 |
|
启用/禁用匹配否定。 选项
|
|
URL 模式。 |
|
启用/禁用基于正则表达式的模式匹配。 选项
|
|
源地址。 |
|
动作。 选项
|
|
主机地址。 |
|
URL访问ID。 |
|
启用/禁用日志记录。 选项
|
|
严重性。 选项
|
|
在工作区模式下运行FortiManager时要锁定的ADOM,值可以是global和其他值,包括root。 |
|
等待其他用户释放工作区锁的最大时间(秒)。 默认值: |
注释
注意
从2.4.0版本开始,所有输入参数都使用下划线命名约定(snake_case)。请将诸如“var-name”之类的参数更改为“var_name”。旧的参数名称仍然可用,但您会收到弃用警告。您可以在ansible.cfg中设置deprecation_warnings=False来忽略此警告。
此FortiManager模块支持在工作区锁定模式下运行,顶级参数workspace_locking_adom和workspace_locking_timeout有助于完成此工作。
要创建或更新对象,请使用state present指令。
要删除对象,请使用state absent指令。
通常,当返回非零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: Web application firewall configuration.
fortinet.fortimanager.fmgr_waf_profile:
# 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>
state: present # <value in [present, absent]>
waf_profile:
comment: <string>
extended_log: <value in [disable, enable]>
external: <value in [disable, enable]>
name: <string>
url_access:
-
access_pattern:
-
id: <integer>
negate: <value in [disable, enable]>
pattern: <string>
regex: <value in [disable, enable]>
srcaddr: <string>
action: <value in [bypass, permit, block]>
address: <string>
id: <integer>
log: <value in [disable, enable]>
severity: <value in [low, medium, high]>
address_list:
blocked_address: <list or string>
blocked_log: <value in [disable, enable]>
severity: <value in [low, medium, high]>
status: <value in [disable, enable]>
trusted_address: <list or string>
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]>
method:
default_allowed_methods:
- "delete"
- "get"
- "head"
- "options"
- "post"
- "put"
- "trace"
- "others"
- "connect"
log: <value in [disable, enable]>
method_policy:
-
address: <string>
allowed_methods:
- "delete"
- "get"
- "head"
- "options"
- "post"
- "put"
- "trace"
- "others"
- "connect"
id: <integer>
pattern: <string>
regex: <value in [disable, enable]>
severity: <value in [low, medium, high]>
status: <value in [disable, enable]>
signature:
credit_card_detection_threshold: <integer>
custom_signature:
-
action: <value in [allow, block, erase]>
case_sensitivity: <value in [disable, enable]>
direction: <value in [request, response]>
log: <value in [disable, enable]>
name: <string>
pattern: <string>
severity: <value in [low, medium, high]>
status: <value in [disable, enable]>
target:
- "arg"
- "arg-name"
- "req-body"
- "req-cookie"
- "req-cookie-name"
- "req-filename"
- "req-header"
- "req-header-name"
- "req-raw-uri"
- "req-uri"
- "resp-body"
- "resp-hdr"
- "resp-status"
disabled_signature: <list or string>
disabled_sub_class: <list or string>
main_class:
action: <value in [allow, block, erase]>
id: <integer>
log: <value in [disable, enable]>
severity: <value in [low, medium, high]>
status: <value in [disable, enable]>
返回值
公共返回值已在此处记录此处,以下是此模块特有的字段
键 |
描述 |
---|---|
请求的结果。 返回值:始终 |
|
请求的完整URL。 返回值:始终 示例: |
|
API请求的状态。 返回值:始终 示例: |
|
API响应。 返回值:始终 |
|
API响应的描述性消息。 返回值:始终 示例: |
|
目标系统的信息。 返回值:始终 |
|
请求的状态。 返回值:始终 示例: |
|
如果剧本中使用的参数不受当前FortiManager版本支持,则会发出警告。 返回值:复杂 |