fortios_waf_profile – Настройка межсетевого экрана веб-приложений в Fortinet’s FortiOS и FortiGate
Новая версия 2.8.
Краткое описание
- Этот модуль позволяет настроить FortiGate или FortiOS, позволяя пользователю устанавливать и изменять параметры и профили категорий функций waf. Примеры всех параметров и значений должны быть скорректированы в источниках данных перед использованием. Тестировано с FOS v6.0.2
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- fortiosapi>=0.9.8
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| host - / обязательно | IP-адрес FortiOS или FortiGate. | ||||
| https логический тип |
| Указывает, должны ли запросы к FortiGate использовать протокол HTTPS. | |||
| password - | Значение по умолчанию: "" | Пароль FortiOS или FortiGate. | |||
| username - / обязательно | Имя пользователя FortiOS или FortiGate. | ||||
| vdom - | Значение по умолчанию: "root" | Виртуальная область (vdom), определённая ранее. 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-запроса Range. | |||
| 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 - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень серьезности. | |||
| status - |
| Включить/выключить ограничение. | |||
| hostname - | Включить/выключить проверку имени хоста. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень серьезности. | |||
| status - |
| Включить/выключить ограничение. | |||
| line-length - | Длина строки HTTP в запросе. | ||||
| action - |
| Действие. | |||
| length - | Длина строки HTTP в байтах (от 0 до 2147483647). | ||||
| log - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень серьезности. | |||
| status - |
| Включить/выключить ограничение. | |||
| malformed - | Включить/выключить проверку некорректных запросов HTTP. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень серьезности. | |||
| status - |
| Включить/выключить ограничение. | |||
| max-cookie - | Максимальное количество куки в запросе HTTP. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| max-cookie - | Максимальное количество куки в запросе HTTP (от 0 до 2147483647). | ||||
| severity - |
| Уровень серьезности. | |||
| status - |
| Включить/выключить ограничение. | |||
| max-header-line - | Максимальное количество строк HTTP-заголовка. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| max-header-line - | Максимальное количество строк HTTP-заголовков (от 0 до 2147483647). | ||||
| severity - |
| Уровень важности. | |||
| status - |
| Включить/выключить ограничение. | |||
| max-range-segment - | Максимальное количество фрагментов диапазона в строке HTTP-диапазона. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| max-range-segment - | Максимальное количество фрагментов диапазона в строке HTTP-диапазона (от 0 до 2147483647). | ||||
| severity - |
| Уровень важности. | |||
| status - |
| Включить/выключить ограничение. | |||
| max-url-param - | Максимальное количество параметров в URL. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| max-url-param - | Максимальное количество параметров в URL (от 0 до 2147483647). | ||||
| severity - |
| Уровень важности. | |||
| status - |
| Включить/выключить ограничение. | |||
| method - | Включить/выключить проверку HTTP-метода. | ||||
| action - |
| Действие. | |||
| log - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень важности. | |||
| status - |
| Включить/выключить ограничение. | |||
| param-length - | Максимальная длина параметра в URL, запросе HTTP POST или теле HTTP-запроса. | ||||
| action - |
| Действие. | |||
| length - | Максимальная длина параметра в URL, запросе HTTP POST или теле HTTP-запроса в байтах (от 0 до 2147483647). | ||||
| log - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень важности. | |||
| status - |
| Включить/выключить ограничение. | |||
| url-param-length - | Максимальная длина параметра в URL. | ||||
| action - |
| Действие. | |||
| length - | Максимальная длина URL-параметра в байтах (от 0 до 2147483647). | ||||
| log - |
| Включить/выключить логирование. | |||
| severity - |
| Уровень важности. | |||
| статус - |
| Включить/выключить ограничение. | |||
| версия - | Включить/выключить проверку версии HTTP. | ||||
| действие - |
| Действие. | |||
| лог - |
| Включить/выключить ведение журнала. | |||
| степень_серьёзности - |
| Степень серьёзности. | |||
| статус - |
| Включить/выключить ограничение. | |||
| расширенный_лог - |
| Включить/выключить расширенное ведение журнала. | |||
| внешний - |
| Отключить/Включить внешний HTTP-инспекцию. | |||
| метод - | Ограничение метода. | ||||
| по-умолчанию_разрешенные_методы - |
| Методы. | |||
| лог - |
| Включить/выключить ведение журнала. | |||
| политика_методов - | Политика HTTP-методов. | ||||
| адрес - | Адрес хоста. Источник брандмауэр.address.name брандмауэр.addrgrp.name. | ||||
| разрешенные_методы - |
| Разрешенные методы. | |||
| id - / обязательно | ID политики HTTP-методов. | ||||
| шаблон - | Шаблон URL. | ||||
| regex - |
| Включить/выключить сопоставление шаблона на основе регулярных выражений. | |||
| степень_серьёзности - |
| Степень серьёзности. | |||
| статус - |
| Статус. | |||
| название - / обязательно | Название профиля WAF. | ||||
| подпись - | Подписи WAF. | ||||
| порог_обнаружения_кредитных_карт - | Минимальное количество кредитных карт для обнаружения нарушения. | ||||
| пользовательская_подпись - | Пользовательская подпись. | ||||
| действие - |
| Действие. | |||
| чувствительность_к_регистру - |
| Чувствительность к регистру в шаблоне. | |||
| направление - |
| Направление трафика. | |||
| лог - |
| Включить/выключить ведение журнала. | |||
| название - / обязательно | Название подписи. | ||||
| шаблон - | Шаблон сопоставления. | ||||
| степень_серьёзности - |
| Степень серьёзности. | |||
| статус - |
| Статус. | |||
| цель - |
| Сопоставление HTTP-цели. | |||
| отключенные_подписи - | Отключенные подписи | ||||
| id - / обязательно | ID подписи. Источник waf.signature.id. | ||||
| отключенные_подклассы - | Отключенные подклассы подписей. | ||||
| id - / обязательно | Идентификатор подкласса подписи. Источник waf.sub-class.id. | ||||
| main-class - | Основной класс подписи. | ||||
| action - |
| Действие. | |||
| id - / обязательно | Идентификатор основного класса подписи. Источник waf.main-class.id. | ||||
| log - |
| Включить/выключить ведение журнала. | |||
| severity - |
| Уровень серьезности. | |||
| status - |
| Статус. | |||
| state - |
| Указывает, нужно ли создать или удалить объект | |||
| url-access - | Список доступа к URL. | ||||
| access-pattern - | Шаблон доступа к URL. | ||||
| id - / обязательно | Идентификатор шаблона доступа к URL. | ||||
| negate - |
| Включить/выключить отрицание соответствия. | |||
| pattern - | Шаблон URL. | ||||
| regex - |
| Включить/выключить проверку шаблона на основе регулярных выражений. | |||
| srcaddr - | Адрес источника. Source firewall.address.name firewall.addrgrp.name. | ||||
| action - |
| Действие. | |||
| address - | Адрес хоста. Source firewall.address.name firewall.addrgrp.name. | ||||
| id - / обязательно | Идентификатор доступа к URL. | ||||
| log - |
| Включить/выключить ведение журнала. | |||
| severity - |
| Уровень серьезности. | |||
Примечания
Примечание
- Требуется библиотека fortiosapi, разработанная Fortinet
- Выполнять как local_action в вашем плейбуке
Примеры
- hosts: localhost
vars:
host: "192.168.122.40"
username: "admin"
password: ""
vdom: "root"
tasks:
- name: Web application firewall configuration.
fortios_waf_profile:
host: "{{ host }}"
username: "{{ username }}"
password: "{{ password }}"
vdom: "{{ vdom }}"
https: "False"
waf_profile:
state: "present"
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.8/modules/fortios_waf_profile_module.html