fortinet.fortios.fortios_waf_profile – Настройка межсетевого экрана веб-приложений в FortiOS и FortiGate Fortinet.
Примечание
Этот плагин входит в коллекцию fortinet.fortios (версия 1.1.8).
Для его установки используйте: ansible-galaxy collection install fortinet.fortios.
Чтобы использовать его в книге задач, укажите: fortinet.fortios.fortios_waf_profile.
Новое в версии 2.8: of fortinet.fortios
Описание
- Этот модуль может настраивать устройство FortiGate или FortiOS (FOS), позволяя пользователю задавать и изменять параметры и категории профилей функции waf. Примеры включают все параметры и значения, которые необходимо настроить в источниках данных перед использованием. Тестировалось с FOS v6.0.0
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- ansible>=2.9.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| access_token строка | Аутентификация на основе токенов. Сгенерировано в интерфейсе Fortigate. | ||||
| state строка добавлен в 2.9 fortinet.fortios |
| Указывает, нужно ли создавать или удалять объект. Этот атрибут уже присутствовал в предыдущей версии на более глубоком уровне. Он был перенесен на этот внешний уровень. | |||
| vdom строка | По умолчанию: "root" | Виртуальная область, среди тех, которые были определены ранее. VDOM — виртуальная инстанция FortiGate, которую можно настроить и использовать как отдельную единицу. | |||
| waf_profile словарь | Настройка межсетевого экрана веб-приложений. | ||||
| address_list словарь | Список заблокированных и разрешенных адресов. | ||||
| blocked_address список / элементы=строка | Заблокированный адрес. | ||||
| name строка / обязательно | Имя адреса. Источник firewall.address.name firewall.addrgrp.name. | ||||
| blocked_log строка |
| Включить/выключить логирование заблокированных адресов. | |||
| severity строка |
| Уровень серьезности. | |||
| status строка |
| Статус. | |||
| trusted_address список / элементы=строка | Доверенный адрес. | ||||
| name строка / обязательно | Имя адреса. Источник firewall.address.name firewall.addrgrp.name. | ||||
| comment строка | Комментарий. | ||||
| constraint словарь | Ограничения протокола HTTP для WAF. | ||||
| content_length словарь | Длина контента HTTP в запросе. | ||||
| action строка |
| Действие. | |||
| length целое число | Длина контента HTTP в байтах (от 0 до 2147483647). | ||||
| log строка |
| Включить/выключить логирование. | |||
| severity строка |
| Уровень серьезности. | |||
| status строка |
| Включить/выключить ограничение. | |||
| exception список / элементы=строка | Исключение ограничения HTTP. | ||||
| address строка | Адрес хоста. Источник firewall.address.name firewall.addrgrp.name. | ||||
| content_length строка |
| Длина контента HTTP в запросе. | |||
| header_length строка |
| Длина заголовка HTTP в запросе. | |||
| hostname строка |
| Включить/выключить проверку имени хоста. | |||
| id целое число / обязательно | Идентификатор исключения. | ||||
| line_length строка |
| Длина строки HTTP в запросе. | |||
| malformed строка |
| Включить/выключить проверку неправильного формата HTTP запроса. | |||
| max_cookie строка |
| Максимальное количество файлов cookie в HTTP запросе. | |||
| max_header_line строка |
| Максимальное количество строк заголовка HTTP. | |||
| max_range_segment строка |
| Максимальное количество фрагментов диапазона в строке HTTP диапазона. | |||
| max_url_param строка |
| Максимальное количество параметров в URL. | |||
| method строка |
| Включить/выключить проверку HTTP метода. | |||
| param_length строка |
| Максимальная длина параметра в URL, HTTP POST запросе или теле HTTP. | |||
| pattern строка | Шаблон URL. | ||||
| regex строка |
| Включить/выключить соответствие шаблону на основе регулярных выражений. | |||
| url_param_length строка |
| Максимальная длина параметра в URL. | |||
| version строка |
| Включить/выключить проверку версии HTTP. | |||
| header_length словарь | Длина заголовка HTTP в запросе. | ||||
| action строка |
| Действие. | |||
| length целое число | Длина заголовка HTTP в байтах (от 0 до 2147483647). | ||||
| log string |
| Включить/отключить логирование. | |||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| hostname dictionary | Включить/отключить проверку имени хоста. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/отключить логирование. | |||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| line_length dictionary | Длина строки HTTP в запросе. | ||||
| action string |
| Действие. | |||
| length integer | Длина строки HTTP в байтах (от 0 до 2147483647). | ||||
| log string |
| Включить/отключить логирование. | |||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| malformed dictionary | Включить/отключить проверку некорректного запроса HTTP. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/отключить логирование. | |||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| max_cookie dictionary | Максимальное количество файлов cookie в запросе HTTP. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/отключить логирование. | |||
| max_cookie integer | Максимальное количество файлов cookie в запросе HTTP (от 0 до 2147483647). | ||||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| max_header_line dictionary | Максимальное количество строк заголовков HTTP. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/отключить логирование. | |||
| max_header_line integer | Максимальное количество строк заголовков HTTP (от 0 до 2147483647). | ||||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| max_range_segment dictionary | Максимальное количество сегментов диапазона в строке HTTP range. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/отключить логирование. | |||
| max_range_segment integer | Максимальное количество сегментов диапазона в строке HTTP range (от 0 до 2147483647). | ||||
| severity string |
| Уровень серьезности. | |||
| status string |
| Включить/отключить ограничение. | |||
| max_url_param dictionary | Максимальное количество параметров в URL. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/отключить логирование. | |||
| max_url_param integer | Максимальное количество параметров в URL (от 0 до 2147483647). | ||||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/выключить ограничение. | |||
| метод словарь | Включить/выключить проверку HTTP-метода. | ||||
| действие строка |
| Действие. | |||
| журнал строка |
| Включить/выключить ведение журнала. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/выключить ограничение. | |||
| длина_параметра словарь | Максимальная длина параметра в URL, HTTP POST-запросе или HTTP-теле. | ||||
| действие строка |
| Действие. | |||
| длина целое число | Максимальная длина параметра в URL, HTTP POST-запросе или HTTP-теле в байтах (от 0 до 2147483647). | ||||
| журнал строка |
| Включить/выключить ведение журнала. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/выключить ограничение. | |||
| длина_параметра_url словарь | Максимальная длина параметра в URL. | ||||
| действие строка |
| Действие. | |||
| длина целое число | Максимальная длина параметра URL в байтах (от 0 до 2147483647). | ||||
| журнал строка |
| Включить/выключить ведение журнала. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/выключить ограничение. | |||
| версия словарь | Включить/выключить проверку HTTP-версии. | ||||
| действие строка |
| Действие. | |||
| журнал строка |
| Включить/выключить ведение журнала. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/выключить ограничение. | |||
| расширенный_журнал строка |
| Включить/выключить расширенное ведение журнала. | |||
| внешний строка |
| Отключить/Включить внешнюю проверку HTTP. | |||
| метод словарь | Ограничение метода. | ||||
| по умолчанию_разрешенные_методы строка |
| Методы. | |||
| журнал строка |
| Включить/выключить ведение журнала. | |||
| политика_метода список / элементы=строка | Политика HTTP-метода. | ||||
| адрес строка | Адрес хоста. Источник брандмауэра. firewall.address.name firewall.addrgrp.name. | ||||
| разрешенные_методы строка |
| Разрешенные методы. | |||
| id целое число / обязательно | Идентификатор политики HTTP-метода. | ||||
| шаблон строка | Шаблон URL. | ||||
| регулярное_выражение строка |
| Включить/выключить соответствие шаблону на основе регулярного выражения. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Статус. | |||
| имя строка / обязательно | Имя профиля WAF. | ||||
| подпись словарь | Подписи WAF. | ||||
| пороговое_значение_обнаружения_кредитной_карты целое число | Минимальное количество кредитных карт для обнаружения нарушения. | ||||
| пользовательская_подпись список / элементы=строка | Пользовательская подпись. | ||||
| действие строка |
| Действие. | |||
| чувствительность_к_регистру строка |
| Чувствительность к регистру в шаблоне. | |||
| направление строка |
| Направление трафика. | |||
| журнал строка |
| Включить/отключить ведение журнала. | |||
| имя строка / обязательно | Имя подписи. | ||||
| шаблон строка | Шаблон соответствия. | ||||
| серьезность строка |
| Серьезность. | |||
| статус строка |
| Статус. | |||
| цель строка |
| Цель соответствия HTTP. | |||
| выключенные_подписи список / элементы=строка | Выключенные подписи | ||||
| id целое число / обязательно | Идентификатор подписи. Источник waf.signature.id. | ||||
| выключенные_подклассы список / элементы=строка | Выключенные подклассы подписей. | ||||
| id целое число / обязательно | Идентификатор подкласса подписи. Источник waf.sub-class.id. | ||||
| основной_класс список / элементы=строка | Основной класс подписи. | ||||
| действие строка |
| Действие. | |||
| id целое число / обязательно | Идентификатор основного класса подписи. Источник waf.main-class.id. | ||||
| журнал строка |
| Включить/отключить ведение журнала. | |||
| серьезность строка |
| Серьезность. | |||
| статус строка |
| Статус. | |||
| состояние строка |
| Устарело Начиная с Ansible 2.9, рекомендуется использовать параметр 'состояние' верхнего уровня. Указывает, нужно ли создавать или удалять объект. | |||
| доступ_к_url список / элементы=строка | Список доступа к URL | ||||
| шаблон_доступа_к_url список / элементы=строка | Шаблон доступа к URL. | ||||
| id целое число / обязательно | Идентификатор шаблона доступа к URL. | ||||
| отрицание строка |
| Включить/отключить отрицание соответствия. | |||
| шаблон строка | Шаблон URL. | ||||
| regex строка |
| Включить/отключить соответствие шаблону на основе регулярных выражений. | |||
| адрес_источника строка | Адрес источника. Источник firewall.address.name firewall.addrgrp.name. | ||||
| действие строка |
| Действие. | |||
| адрес строка | Адрес хоста. Источник firewall.address.name firewall.addrgrp.name. | ||||
| id целое число / обязательно | Идентификатор доступа к URL. | ||||
| журнал строка |
| Включить/отключить ведение журнала. | |||
| серьезность строка |
| Серьезность. | |||
Примечания
Примечание
- Модуль fortiosapi устарел, httpapi предпочтительный способ выполнения playbooks
Примеры
- hosts: fortigates
collections:
- fortinet.fortios
connection: httpapi
vars:
vdom: "root"
ansible_httpapi_use_ssl: yes
ansible_httpapi_validate_certs: no
ansible_httpapi_port: 443
tasks:
- name: Web application firewall configuration.
fortios_waf_profile:
vdom: "{{ vdom }}"
state: "present"
access_token: "<your_own_value>"
waf_profile:
address_list:
blocked_address:
-
name: "default_name_5 (source firewall.address.name firewall.addrgrp.name)"
blocked_log: "enable"
severity: "high"
status: "enable"
trusted_address:
-
name: "default_name_10 (source firewall.address.name firewall.addrgrp.name)"
comment: "Comment."
constraint:
content_length:
action: "allow"
length: "15"
log: "enable"
severity: "high"
status: "enable"
exception:
-
address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
content_length: "enable"
header_length: "enable"
hostname: "enable"
id: "24"
line_length: "enable"
malformed: "enable"
max_cookie: "enable"
max_header_line: "enable"
max_range_segment: "enable"
max_url_param: "enable"
method: "enable"
param_length: "enable"
pattern: "<your_own_value>"
regex: "enable"
url_param_length: "enable"
version: "enable"
header_length:
action: "allow"
length: "39"
log: "enable"
severity: "high"
status: "enable"
hostname:
action: "allow"
log: "enable"
severity: "high"
status: "enable"
line_length:
action: "allow"
length: "50"
log: "enable"
severity: "high"
status: "enable"
malformed:
action: "allow"
log: "enable"
severity: "high"
status: "enable"
max_cookie:
action: "allow"
log: "enable"
max_cookie: "62"
severity: "high"
status: "enable"
max_header_line:
action: "allow"
log: "enable"
max_header_line: "68"
severity: "high"
status: "enable"
max_range_segment:
action: "allow"
log: "enable"
max_range_segment: "74"
severity: "high"
status: "enable"
max_url_param:
action: "allow"
log: "enable"
max_url_param: "80"
severity: "high"
status: "enable"
method:
action: "allow"
log: "enable"
severity: "high"
status: "enable"
param_length:
action: "allow"
length: "90"
log: "enable"
severity: "high"
status: "enable"
url_param_length:
action: "allow"
length: "96"
log: "enable"
severity: "high"
status: "enable"
version:
action: "allow"
log: "enable"
severity: "high"
status: "enable"
extended_log: "enable"
external: "disable"
method:
default_allowed_methods: "get"
log: "enable"
method_policy:
-
address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
allowed_methods: "get"
id: "113"
pattern: "<your_own_value>"
regex: "enable"
severity: "high"
status: "enable"
name: "default_name_118"
signature:
credit_card_detection_threshold: "120"
custom_signature:
-
action: "allow"
case_sensitivity: "disable"
direction: "request"
log: "enable"
name: "default_name_126"
pattern: "<your_own_value>"
severity: "high"
status: "enable"
target: "arg"
disabled_signature:
-
id: "132 (source waf.signature.id)"
disabled_sub_class:
-
id: "134 (source waf.sub-class.id)"
main_class:
-
action: "allow"
id: "137 (source waf.main-class.id)"
log: "enable"
severity: "high"
status: "enable"
url_access:
-
access_pattern:
-
id: "143"
negate: "enable"
pattern: "<your_own_value>"
regex: "enable"
srcaddr: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
action: "bypass"
address: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
id: "150"
log: "enable"
severity: "high"
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| сборка строка | всегда | Номер сборки образа FortiGate Пример: 1547 |
| http_метод строка | всегда | Последний метод, используемый для подготовки содержимого в FortiGate Пример: PUT |
| http_статус строка | всегда | Последний результат, предоставленный FortiGate при последней применённой операции Пример: 200 |
| mkey строка | успех | Главный ключ (id), использованный в последнем вызове FortiGate Пример: id |
| имя строка | всегда | Имя таблицы, используемой для выполнения запроса Пример: urlfilter |
| путь строка | всегда | Путь таблицы, используемой для выполнения запроса Пример: webfilter |
| ревизия строка | всегда | Внутренний номер ревизии Пример: 17.0.2.10658 |
| серийный_номер строка | всегда | Серийный номер устройства Пример: FGVMEVYYQT3AB5352 |
| статус строка | всегда | Указание результата операции Пример: успех |
| vdom строка | всегда | Используемый виртуальный домен Пример: root |
| версия строка | всегда | Версия FortiGate Пример: v5.6.3 |
Авторы
- Линк Чжэн (@chillancezen)
- Дже Ксюэ (@JieX19)
- Хунбин Лю (@fgtdev-hblu)
- Фрэнк Шень (@frankshen01)
- Мигель Анхель Муньос (@mamunozgonzalez)
- Николас Томас (@thomnico)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/fortinet/fortios/fortios_waf_profile_module.html