Spec-Zone.ru › Ansible 2.9

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
строка
    Варианты:
  • get
  • post
  • put
  • head
  • connect
  • trace
  • options
  • delete
  • others
Методы.
лог
строка
    Варианты:
  • включить
  • отключить
Включить/отключить ведение журнала.
method_policy
список
Политика метода HTTP.
адрес
строка
Адрес хоста. Источник брандмауэра.firewall.address.name firewall.addrgrp.name.
разрешённые_методы
строка
    Варианты:
  • get
  • post
  • put
  • head
  • connect
  • trace
  • options
  • delete
  • others
Разрешённые методы.
id
целое число / обязательно
Идентификатор политики метода HTTP.
шаблон
строка
Шаблон URL.
regex
строка
    Варианты:
  • включить
  • отключить
Включить/отключить сопоставление шаблона на основе регулярных выражений.
серьёзность
строка
    Варианты:
  • высокая
  • средняя
  • низкая
Серьёзность.
статус
строка
    Варианты:
  • включить
  • отключить
Статус.
имя
строка / обязательно
Имя профиля WAF.
подпись
словарь
Подписи WAF.
credit_card_detection_threshold
целое число
Минимальное количество кредитных карт для обнаружения нарушения.
custom_signature
список
Пользовательская подпись.
действие
строка
    Варианты:
  • разрешить
  • заблокировать
  • стереть
Действие.
чувствительность_к_регистру
строка
    Варианты:
  • отключить
  • включить
Чувствительность к регистру в шаблоне.
направление
строка
    Варианты:
  • запрос
  • ответ
Направление трафика.
лог
строка
    Варианты:
  • включить
  • отключить
Включить/отключить ведение журнала.
имя
строка / обязательно
Имя подписи.
шаблон
строка
Шаблон сопоставления.
серьёзность
строка
    Варианты:
  • высокая
  • средняя
  • низкая
Серьёзность.
статус
строка
    Варианты:
  • включить
  • отключить
Статус.
target
string
    Варианты:
  • 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
Соответствие 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
    Варианты:
  • allow
  • block
  • erase
Действие.
id
integer / обязательно
ID основного класса подписи. Источник waf.main-class.id.
log
string
    Варианты:
  • enable
  • disable
Включить/отключить ведение журнала.
severity
string
    Варианты:
  • high
  • medium
  • low
Уровень серьезности.
status
string
    Варианты:
  • enable
  • disable
Статус.
state
string
    Варианты:
  • present
  • absent
Устаревший
Начиная с Ansible 2.9, рекомендуется использовать параметр 'state' на верхнем уровне.
Указывает, нужно ли создать или удалить объект.
url_access
list
Список доступа к URL.
access_pattern
list
Шаблон доступа к URL.
id
integer / обязательно
ID шаблона доступа к URL.
negate
string
    Варианты:
  • enable
  • disable
Включить/отключить отрицание соответствия.
pattern
string
Шаблон URL.
regex
string
    Варианты:
  • enable
  • disable
Включить/отключить соответствие шаблону на основе регулярных выражений.
srcaddr
string
Адрес источника. Источник firewall.address.name firewall.addrgrp.name.
action
string
    Варианты:
  • bypass
  • permit
  • block
Действие.
address
string
Адрес хоста. Источник firewall.address.name firewall.addrgrp.name.
id
integer / обязательно
ID доступа к URL.
log
string
    Варианты:
  • enable
  • disable
Включить/отключить ведение журнала.
severity
string
    Варианты:
  • high
  • medium
  • low
Уровень серьезности.

Примечания

Примечание

  • Требуется библиотека 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API