fortios_waf_profile – Настройка межсетевого экрана веб-приложений в Fortinet’s FortiOS и FortiGate
Новая версия 2.8.
Описание
- Этот модуль позволяет настроить устройство FortiGate или FortiOS (FOS), позволяя пользователю устанавливать и изменять категорию функций и профилей waf. Примеры включают все параметры и значения, которые необходимо настроить в источниках данных перед использованием. Тестировалось с FOS v6.0.5
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- fortiosapi>=0.9.8
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| host строка | IP-адрес FortiOS или FortiGate. | ||||
| https логическое значение |
| Указывает, должны ли запросы к FortiGate использовать протокол HTTPS. | |||
| password строка | Значение по умолчанию: "" | Пароль FortiOS или FortiGate. | |||
| ssl_verify логическое значение добавлено в версии 2.9 |
| Обеспечивает проверку сертификата FortiGate у надёжного центра сертификации. | |||
| state строка добавлено в версии 2.9 |
| Указывает, необходимо ли создать или удалить объект. Этот атрибут уже присутствовал в предыдущих версиях на более глубоком уровне. Он был вынесен на внешний уровень. | |||
| username строка | Имя пользователя FortiOS или FortiGate. | ||||
| vdom строка | Значение по умолчанию: "root" | Виртуальная область, среди ранее определённых. Vdom — это виртуальная инстанция FortiGate, которую можно настроить и использовать как отдельный элемент. | |||
| waf_profile словарь | Значение по умолчанию: null | Настройка веб-приложениевого файрволла. | |||
| 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 string |
| Максимальное количество параметров в URL. | |||
| method string |
| Включить/выключить проверку HTTP метода. | |||
| param_length string |
| Максимальная длина параметра в URL, HTTP POST запросе или HTTP теле. | |||
| pattern string | Шаблон URL. | ||||
| regex string |
| Включить/выключить проверку шаблона на основе регулярного выражения. | |||
| url_param_length string |
| Максимальная длина параметра в URL. | |||
| version string |
| Включить/выключить проверку версии HTTP. | |||
| header_length dictionary | Длина HTTP заголовка в запросе. | ||||
| action string |
| Действие. | |||
| length integer | Длина 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 | Максимальное количество куки в HTTP запросе. | ||||
| action string |
| Действие. | |||
| log string |
| Включить/выключить логирование. | |||
| max_cookie integer | Максимальное количество куки в HTTP запросе (от 0 до 2147483647). | ||||
| серьезность строка |
| Уровень серьезности. | |||
| состояние строка |
| Включить/выключить ограничение. | |||
| макс_строка_заголовка словарь | Максимальное количество строк HTTP-заголовка. | ||||
| действие строка |
| Действие. | |||
| лог строка |
| Включить/выключить логирование. | |||
| макс_строка_заголовка целое число | Максимальное количество строк HTTP-заголовка (от 0 до 2147483647). | ||||
| серьезность строка |
| Уровень серьезности. | |||
| состояние строка |
| Включить/выключить ограничение. | |||
| макс_сегмент_диапазона словарь | Максимальное количество сегментов диапазона в строке HTTP-диапазона. | ||||
| действие строка |
| Действие. | |||
| лог строка |
| Включить/выключить логирование. | |||
| макс_сегмент_диапазона целое число | Максимальное количество сегментов диапазона в строке HTTP-диапазона (от 0 до 2147483647). | ||||
| серьезность строка |
| Уровень серьезности. | |||
| состояние строка |
| Включить/выключить ограничение. | |||
| макс_параметр_url словарь | Максимальное количество параметров в URL. | ||||
| действие строка |
| Действие. | |||
| лог строка |
| Включить/выключить логирование. | |||
| макс_параметр_url целое число | Максимальное количество параметров в URL (от 0 до 2147483647). | ||||
| серьезность строка |
| Уровень серьезности. | |||
| состояние строка |
| Включить/выключить ограничение. | |||
| метод словарь | Включить/выключить проверку HTTP-метода. | ||||
| действие строка |
| Действие. | |||
| лог строка |
| Включить/выключить логирование. | |||
| серьезность строка |
| Уровень серьезности. | |||
| состояние строка |
| Включить/выключить ограничение. | |||
| длина_параметра словарь | Максимальная длина параметра в URL, запросе HTTP POST или теле HTTP. | ||||
| действие строка |
| Действие. | |||
| длина целое число | Максимальная длина параметра в URL, запросе HTTP POST или теле HTTP в байтах (от 0 до 2147483647). | ||||
| лог строка |
| Включить/выключить логирование. | |||
| серьезность строка |
| Уровень серьезности. | |||
| состояние строка |
| Включить/выключить ограничение. | |||
| длина_параметра_url словарь | Максимальная длина параметра в URL. | ||||
| действие строка |
| Действие. | |||
| длина целое число | Максимальная длина параметра URL в байтах (от 0 до 2147483647). | ||||
| лог строка |
| Включить/отключить ведение журнала. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/отключить ограничение. | |||
| версия словарь | Включить/отключить проверку версии HTTP. | ||||
| действие строка |
| Действие. | |||
| лог строка |
| Включить/отключить ведение журнала. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Включить/отключить ограничение. | |||
| extended_log строка |
| Включить/отключить расширенное ведение журнала. | |||
| external строка |
| Отключить/Включить внешнюю проверку HTTP. | |||
| метод словарь | Ограничение метода. | ||||
| default_allowed_methods строка |
| Методы. | |||
| лог строка |
| Включить/отключить ведение журнала. | |||
| method_policy список | Политика метода HTTP. | ||||
| адрес строка | Адрес хоста. Источник брандмауэра.firewall.address.name firewall.addrgrp.name. | ||||
| разрешённые_методы строка |
| Разрешённые методы. | |||
| id целое число / обязательно | Идентификатор политики метода HTTP. | ||||
| шаблон строка | Шаблон URL. | ||||
| regex строка |
| Включить/отключить сопоставление шаблона на основе регулярных выражений. | |||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Статус. | |||
| имя строка / обязательно | Имя профиля WAF. | ||||
| подпись словарь | Подписи WAF. | ||||
| credit_card_detection_threshold целое число | Минимальное количество кредитных карт для обнаружения нарушения. | ||||
| custom_signature список | Пользовательская подпись. | ||||
| действие строка |
| Действие. | |||
| чувствительность_к_регистру строка |
| Чувствительность к регистру в шаблоне. | |||
| направление строка |
| Направление трафика. | |||
| лог строка |
| Включить/отключить ведение журнала. | |||
| имя строка / обязательно | Имя подписи. | ||||
| шаблон строка | Шаблон сопоставления. | ||||
| серьёзность строка |
| Серьёзность. | |||
| статус строка |
| Статус. | |||
| target string |
| Соответствие HTTP цели. | |||
| disabled_signature list | Отключенные подписи | ||||
| id integer / обязательно | ID подписи. Источник waf.signature.id. | ||||
| disabled_sub_class list | Отключенные подклассы подписей. | ||||
| id integer / обязательно | ID подкласса подписи. Источник waf.sub-class.id. | ||||
| main_class list | Основной класс подписи. | ||||
| action string |
| Действие. | |||
| id integer / обязательно | ID основного класса подписи. Источник waf.main-class.id. | ||||
| log string |
| Включить/отключить ведение журнала. | |||
| severity string |
| Уровень серьезности. | |||
| status string |
| Статус. | |||
| state string |
| Устаревший Начиная с Ansible 2.9, рекомендуется использовать параметр 'state' на верхнем уровне. Указывает, нужно ли создать или удалить объект. | |||
| url_access list | Список доступа к URL. | ||||
| access_pattern list | Шаблон доступа к URL. | ||||
| id integer / обязательно | ID шаблона доступа к URL. | ||||
| negate string |
| Включить/отключить отрицание соответствия. | |||
| pattern string | Шаблон URL. | ||||
| regex string |
| Включить/отключить соответствие шаблону на основе регулярных выражений. | |||
| srcaddr string | Адрес источника. Источник firewall.address.name firewall.addrgrp.name. | ||||
| action string |
| Действие. | |||
| address string | Адрес хоста. Источник firewall.address.name firewall.addrgrp.name. | ||||
| id integer / обязательно | ID доступа к URL. | ||||
| log string |
| Включить/отключить ведение журнала. | |||
| severity string |
| Уровень серьезности. | |||
Примечания
Примечание
- Требуется библиотека fortiosapi, разработанная Fortinet
- Выполнять как local_action в вашем плане выполнения
Примеры
- hosts: localhost
vars:
host: "192.168.122.40"
username: "admin"
password: ""
vdom: "root"
ssl_verify: "False"
tasks:
- name: Web application firewall configuration.
fortios_waf_profile:
host: "{{ host }}"
username: "{{ username }}"
password: "{{ password }}"
vdom: "{{ vdom }}"
https: "False"
state: "present"
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"
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| build строка | всегда | Номер сборки изображения FortiGate Пример: 1547 |
| http_method строка | всегда | Последний метод, используемый для подготовки контента в FortiGate Пример: PUT |
| http_status строка | всегда | Последний результат, полученный от FortiGate в ходе последней операции Пример: 200 |
| mkey строка | успех | Главный ключ (id), используемый в последнем вызове FortiGate Пример: id |
| name строка | всегда | Имя таблицы, используемой для выполнения запроса Пример: urlfilter |
| path строка | всегда | Путь таблицы, используемой для выполнения запроса Пример: webfilter |
| revision строка | всегда | Внутренний номер версии Пример: 17.0.2.10658 |
| serial строка | всегда | Серийный номер устройства Пример: FGVMEVYYQT3AB5352 |
| status строка | всегда | Указание результата операции Пример: успех |
| vdom строка | всегда | Используемый виртуальный домен Пример: root |
| version строка | всегда | Версия FortiGate Пример: v5.6.3 |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Miguel Angel Munoz (@mamunozgonzalez)
- Nicolas Thomas (@thomnico)
Подсказка
Если вы заметите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/fortios_waf_profile_module.html