fortinet.fortimanager.fmgr_waf_profile – Web application firewall configuration.
Note
This plugin is part of the fortinet.fortimanager collection (version 2.1.3).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install fortinet.fortimanager
.
To use it in a playbook, specify: fortinet.fortimanager.fmgr_waf_profile
.
New in version 2.10: of fortinet.fortimanager
Synopsis
- This module is able to configure a FortiManager device.
- Examples include all parameters and values which need to be adjusted to data sources before usage.
Parameters
Parameter | Choices/Defaults | Comments | |||
---|---|---|---|---|---|
adom string / required | the parameter (adom) in requested url | ||||
bypass_validation boolean |
| only set to True when module schema diffs with FortiManager API structure, module continues to execute without validating parameters | |||
enable_log boolean |
| Enable/Disable logging for task | |||
proposed_method string |
| The overridden method for the underlying Json RPC request | |||
rc_failed list / elements=string | the rc codes list with which the conditions to fail will be overriden | ||||
rc_succeeded list / elements=string | the rc codes list with which the conditions to succeed will be overriden | ||||
state string / required |
| the directive to create, update or delete an object | |||
waf_profile dictionary | the top level parameters set | ||||
address-list dictionary | no description | ||||
blocked-address string | Blocked address. | ||||
blocked-log string |
| Enable/disable logging on blocked addresses. | |||
severity string |
| Severity. | |||
status string |
| Status. | |||
trusted-address string | Trusted address. | ||||
comment string | Comment. | ||||
constraint dictionary | no description | ||||
content-length dictionary | no description | ||||
action string |
| Action. | |||
length integer | Length of HTTP content in bytes (0 to 2147483647). | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
exception list / elements=string | no description | ||||
address string | Host address. | ||||
content-length string |
| HTTP content length in request. | |||
header-length string |
| HTTP header length in request. | |||
hostname string |
| Enable/disable hostname check. | |||
id integer | Exception ID. | ||||
line-length string |
| HTTP line length in request. | |||
malformed string |
| Enable/disable malformed HTTP request check. | |||
max-cookie string |
| Maximum number of cookies in HTTP request. | |||
max-header-line string |
| Maximum number of HTTP header line. | |||
max-range-segment string |
| Maximum number of range segments in HTTP range line. | |||
max-url-param string |
| Maximum number of parameters in URL. | |||
method string |
| Enable/disable HTTP method check. | |||
param-length string |
| Maximum length of parameter in URL, HTTP POST request or HTTP body. | |||
pattern string | URL pattern. | ||||
regex string |
| Enable/disable regular expression based pattern match. | |||
url-param-length string |
| Maximum length of parameter in URL. | |||
version string |
| Enable/disable HTTP version check. | |||
header-length dictionary | no description | ||||
action string |
| Action. | |||
length integer | Length of HTTP header in bytes (0 to 2147483647). | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
hostname dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
line-length dictionary | no description | ||||
action string |
| Action. | |||
length integer | Length of HTTP line in bytes (0 to 2147483647). | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
malformed dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
max-cookie dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
max-cookie integer | Maximum number of cookies in HTTP request (0 to 2147483647). | ||||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
max-header-line dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
max-header-line integer | Maximum number HTTP header lines (0 to 2147483647). | ||||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
max-range-segment dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
max-range-segment integer | Maximum number of range segments in HTTP range line (0 to 2147483647). | ||||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
max-url-param dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
max-url-param integer | Maximum number of parameters in URL (0 to 2147483647). | ||||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
method dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
param-length dictionary | no description | ||||
action string |
| Action. | |||
length integer | Maximum length of parameter in URL, HTTP POST request or HTTP body in bytes (0 to 2147483647). | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
url-param-length dictionary | no description | ||||
action string |
| Action. | |||
length integer | Maximum length of URL parameter in bytes (0 to 2147483647). | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
version dictionary | no description | ||||
action string |
| Action. | |||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Enable/disable the constraint. | |||
extended-log string |
| Enable/disable extended logging. | |||
external string |
| Disable/Enable external HTTP Inspection. | |||
method dictionary | no description | ||||
default-allowed-methods list / elements=string |
| no description | |||
log string |
| Enable/disable logging. | |||
method-policy list / elements=string | no description | ||||
address string | Host address. | ||||
allowed-methods list / elements=string |
| no description | |||
id integer | HTTP method policy ID. | ||||
pattern string | URL pattern. | ||||
regex string |
| Enable/disable regular expression based pattern match. | |||
severity string |
| Severity. | |||
status string |
| Status. | |||
name string | WAF Profile name. | ||||
signature dictionary | no description | ||||
credit-card-detection-threshold integer | The minimum number of Credit cards to detect violation. | ||||
custom-signature list / elements=string | no description | ||||
action string |
| Action. | |||
case-sensitivity string |
| Case sensitivity in pattern. | |||
direction string |
| Traffic direction. | |||
log string |
| Enable/disable logging. | |||
name string | Signature name. | ||||
pattern string | Match pattern. | ||||
severity string |
| Severity. | |||
status string |
| Status. | |||
target list / elements=string |
| no description | |||
disabled-signature string | Disabled signatures | ||||
disabled-sub-class string | Disabled signature subclasses. | ||||
main-class dictionary | no description | ||||
action string |
| Action. | |||
id integer | Main signature class ID. | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
status string |
| Status. | |||
url-access list / elements=string | no description | ||||
access-pattern list / elements=string | no description | ||||
id integer | URL access pattern ID. | ||||
negate string |
| Enable/disable match negation. | |||
pattern string | URL pattern. | ||||
regex string |
| Enable/disable regular expression based pattern match. | |||
srcaddr string | Source address. | ||||
action string |
| Action. | |||
address string | Host address. | ||||
id integer | URL access ID. | ||||
log string |
| Enable/disable logging. | |||
severity string |
| Severity. | |||
workspace_locking_adom string | the adom to lock for FortiManager running in workspace mode, the value can be global and others including root | ||||
workspace_locking_timeout integer | Default: 300 | the maximum time in seconds to wait for other user to release the workspace lock |
Notes
Note
- Running in workspace locking mode is supported in this FortiManager module, the top level parameters workspace_locking_adom and workspace_locking_timeout help do the work.
- To create or update an object, use state present directive.
- To delete an object, use state absent directive.
- Normally, running one module can fail when a non-zero rc is returned. you can also override the conditions to fail or succeed with parameters rc_failed and rc_succeeded
Examples
- hosts: fortimanager-inventory collections: - fortinet.fortimanager connection: httpapi vars: ansible_httpapi_use_ssl: True ansible_httpapi_validate_certs: False ansible_httpapi_port: 443 tasks: - name: Web application firewall configuration. 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: <value in [present, absent]> waf_profile: comment: <value of string> extended-log: <value in [disable, enable]> external: <value in [disable, enable]> name: <value of string> url-access: - access-pattern: - id: <value of integer> negate: <value in [disable, enable]> pattern: <value of string> regex: <value in [disable, enable]> srcaddr: <value of string> action: <value in [bypass, permit, block]> address: <value of string> id: <value of integer> log: <value in [disable, enable]> severity: <value in [low, medium, high]> address-list: blocked-address: <value of string> blocked-log: <value in [disable, enable]> severity: <value in [low, medium, high]> status: <value in [disable, enable]> trusted-address: <value of string> constraint: content-length: action: <value in [allow, block]> length: <value of integer> log: <value in [disable, enable]> severity: <value in [low, medium, high]> status: <value in [disable, enable]> exception: - address: <value of string> content-length: <value in [disable, enable]> header-length: <value in [disable, enable]> hostname: <value in [disable, enable]> id: <value of 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: <value of 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: <value of 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: <value of 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: <value of 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: <value of 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: <value of 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: <value of 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: <value of 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: <value of 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: <value of string> allowed-methods: - delete - get - head - options - post - put - trace - others - connect id: <value of integer> pattern: <value of string> regex: <value in [disable, enable]> severity: <value in [low, medium, high]> status: <value in [disable, enable]> signature: credit-card-detection-threshold: <value of 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: <value of string> pattern: <value of 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: <value of string> disabled-sub-class: <value of string> main-class: action: <value in [allow, block, erase]> id: <value of integer> log: <value in [disable, enable]> severity: <value in [low, medium, high]> status: <value in [disable, enable]>
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
request_url string | always | The full url requested Sample: /sys/login/user |
response_code integer | always | The status of api request |
response_message string | always | The descriptive message of the api response Sample: OK. |
Authors
- Link Zheng (@chillancezen)
- Jie Xue (@JieX19)
- Frank Shen (@fshen01)
- Hongbin Lu (@fgtdev-hblu)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/fortinet/fortimanager/fmgr_waf_profile_module.html