Spec-Zone.ru › Ansible

junipernetworks.junos.junos_security_policies модуль – Создание и управление политиками безопасности на устройствах Juniper JUNOS

Примечание

Этот модуль является частью коллекции junipernetworks.junos (версия 8.0.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install junipernetworks.junos. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.

Для использования в playbook укажите: junipernetworks.junos.junos_security_policies.

Впервые появился в junipernetworks.junos 2.9.0

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Значения возврата

Обзор

  • Этот модуль обеспечивает декларативное создание и управление политиками безопасности на устройствах Juniper JUNOS.

Псевдонимы: security_policies

Требования

Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.

  • ncclient (>=v0.6.4)
  • xmltodict (>=0.12.0)

Параметры

Параметр

Комментарии

config

словарь

Словарь параметров политики безопасности

from_zones

список / элементы=словарь

Список зон безопасности, из которых исходит трафик

name

строка

Имя зоны безопасности, из которой исходит трафик

to_zones

список / элементы=словарь

Список целевых зон безопасности для трафика

name

строка

Имя целевой зоны безопасности для трафика

policies

список / элементы=словарь

Список политик, определённых для ассоциированной категории

description

строка

Описание политики безопасности

match

словарь

Настройка критериев соответствия политики безопасности

application

словарь

Укажите приложение IP или удалённый вызов процедуры (RPC) или набор приложений, которые будут использоваться в качестве критериев соответствия

any

логическое

Соответствие любому предварительно определённому или пользовательскому приложению или набору приложений

Выборы:

  • false
  • true

names

список / элементы=строка

Имя предварительно определённого или пользовательского приложения или набора приложений, используемого в качестве критерия соответствия

destination_address

словарь

Определите критерии сопоставления. Вы можете указать один или несколько IP-адресов, наборов адресов или адресов с подстановкой символов

addresses

список / элементы=строка

IP-адрес, набор IP-адресов, запись в адресной книге или адрес с подстановкой символов (представлен как ABCD/wildcard_mask)

any

логическое

Любой IPv4 или IPv6 адрес

Выборы:

  • false
  • true

any_ipv4

логическое

Любой IPv4 адрес

Выборы:

  • false
  • true

any_ipv6

логическое

Любой IPv6 адрес

Выборы:

  • false
  • true

destination_address_excluded

логическое

Исключить целевые адреса

Выборы:

  • false
  • true

dynamic_application

словарь

Укажите динамические приложения или группы динамических приложений, используемые в качестве критериев соответствия в рамках политики безопасности

any

логическое

Настройка динамического приложения как любого устанавливает политику с приложением как универсальным символом (по умолчанию)

Выборы:

  • false
  • true

names

список / элементы=строка

Укажите динамические приложения или группы динамических приложений

none

boolean

Настройка динамического приложения как none игнорирует результаты классификации от AppID и не использует динамическое приложение в поиске политик безопасности

Choices:

  • false
  • true

from_zone

dictionary

Идентификация одной или нескольких исходных зон, которые будут использоваться в качестве критериев соответствия для политики

any

boolean

Соответствие любой зоне

Choices:

  • false
  • true

junos_host

boolean

junos-host

Choices:

  • false
  • true

names

list / elements=string

Имя одной или нескольких исходных зон

source_address

dictionary

Определение критериев соответствия. Вы можете указать один или несколько IP-адресов, наборов адресов или адресов с подстановочными знаками

addresses

list / elements=string

IP-адрес, набор IP-адресов или запись адресной книги, или адрес с подстановочным знаком (представленный как ABCD/wildcard_mask)

any

boolean

Любой IPv4 или IPv6 адрес

Choices:

  • false
  • true

any_ipv4

boolean

Любой IPv4 адрес

Choices:

  • false
  • true

any_ipv6

boolean

Любой IPv6 адрес

Choices:

  • false
  • true

source_address_excluded

boolean

Исключить исходные адреса

Choices:

  • false
  • true

source_end_user_profile

string

Имя профиля конечного пользователя источника

source_identity

dictionary

Идентифицирует пользователей и роли, которые будут использоваться в качестве критериев соответствия для политики

any

boolean

Любой пользователь или роль, а также ключевые слова authenticated_user, unauthenticated_user и unknown_user

Choices:

  • false
  • true

authenticated_user

boolean

Все пользователи и роли, которые прошли аутентификацию

Choices:

  • false
  • true

names

list / elements=string

Список конкретных пользователей и ролей

unauthenticated_user

boolean

Любой пользователь или роль, у которого нет IP-адреса, сопоставленного с источниками аутентификации, и источник аутентификации работает

Choices:

  • false
  • true

unknown_user

boolean

Любой пользователь или роль, у которого нет IP-адреса, сопоставленного с источниками аутентификации, потому что источник аутентификации отключен от устройства серии SRX

Choices:

  • false
  • true

to_zone

dictionary

Идентификация одной или нескольких целевых зон, которые будут использоваться в качестве критериев соответствия для политики

any

boolean

Соответствие любой зоне

Choices:

  • false
  • true

junos_host

boolean

junos-host

Choices:

  • false
  • true

names

list / elements=string

Имя одной или нескольких зон назначения

url_category

dictionary

Категория URL

any

boolean

Применить ко всем категориям URL

Choices:

  • false
  • true

names

list / elements=string

Имена категорий URL для сопоставления

none

boolean

Не применять к категории URL

Choices:

  • false
  • true

name

string

Имя политики

scheduler_name

string

Имя планировщика для запуска этой политики

then

dictionary

Укажите действие политики, которое будет выполнено, когда пакеты соответствуют заданным критериям

count

boolean

Включить подсчет, в байтах или килобайтах, всего сетевого трафика, который политика разрешает проходить через устройство в обоих направлениях; исходный трафик от клиента к серверу (из from_zone в to_zone) и обратный трафик от сервера к исходному клиенту

Choices:

  • false
  • true

deny

boolean

Блокировать службу на брандмауэре. Устройство отбрасывает пакеты

Choices:

  • false
  • true

log

dictionary

Регистрировать информацию о трафике для конкретной политики. Информация о трафике регистрируется при начале сессии (session_init) или закрытии (session_close)

session_close

boolean

Включить регистрацию времени закрытия сессии

Choices:

  • false
  • true

session_init

boolean

Включить регистрацию времени инициализации сессии

Choices:

  • false
  • true

permit

dictionary

Блокировать службу на брандмауэре. Устройство отбрасывает пакеты

application_services

dictionary

Включить приложения в рамках политики безопасности

advanced_anti_malware_policy

string

Укажите имя политики расширенной защиты от вредоносных программ

application_firewalls

list / elements=dictionary

Укажите наборы правил, настроенные как часть брандмауэра приложений, которые будут применены к разрешенному трафику

rule_set

string

имя набора правил для использования

application_traffic_control_rule_set

string

Укажите набор правил, настроенный как часть AppQoS, application_aware quality of service, который будет применен к разрешенному трафику

gprs_gtp_profile

string

Укажите имя профиля протокола туннелирования GPRS

gprs_sctp_profile

string

Укажите имя профиля протокола управления потоком GPRS

icap_redirect

string

Укажите имя профиля перенаправления icap

idp

boolean

Система обнаружения и предотвращения вторжений (IDP)

Варианты:

  • false
  • true

idp_policy

string

Укажите имя политики IDP

packet_capture

boolean

Параметр для включения или отключения захвата пакетов

Варианты:

  • false
  • true

redirect_wx

boolean

Укажите перенаправление WX, необходимое для пакетов, поступающих из локальной сети

Варианты:

  • false
  • true

reverse_redirect_wx

boolean

Укажите перенаправление WX, необходимое для обратного потока пакетов, поступающих из глобальной сети

Варианты:

  • false
  • true

security_intelligence

dictionary

Укажите действие после обработки фида безопасности

add_destination_identity_to_feed

string

Добавить идентификатор пользователя получателя в фид безопасности

add_destination_ip_to_feed

string

Добавить IP-адрес получателя в фид безопасности

add_source_identity_to_feed

string

Добавить идентификатор пользователя отправителя в фид безопасности

add_source_ip_to_feed

string

Добавить IP-адрес отправителя в фид безопасности

security_intelligence_policy

string

Укажите имя политики security_intelligence

ssl_proxy

dictionary

Можно применить профиль перенаправления прокси SSL, когда политика блокирует трафик HTTPS действием отклонения

enable

boolean

Включить прокси SSL

Варианты:

  • false
  • true

profile_name

string

Имя профиля прокси SSL

uac_policy

dictionary

Включить Единый Контроль Доступа (UAC) для политики безопасности

captive_portal

string

Укажите предварительно настроенную политику безопасности для портала несанкционированного доступа в Junos OS Enforcer для включения функции портала несанкционированного доступа

enable

boolean

Включить Единый Контроль Доступа (UAC)

Choices:

  • false
  • true

utm_policy

string

Укажите имя политики UTM

destination_address

string

Укажите, ограничен ли трафик, разрешенный политикой безопасности, пакетами, в которых целевой IP-адрес был переведен с помощью правила NAT назначения, или пакетами, в которых целевой IP-адрес не был переведен

Choices:

  • "drop-translated"
  • "drop-untranslated"

firewall_authentication

dictionary

Настроить методы аутентификации брандмауэра

pass_through

dictionary

Настроить сквозную аутентификацию пользователей брандмауэра

access_profile

string

Укажите имя профиля доступа

auth_only_browser

boolean

Настроить аутентификацию брандмауэра для игнорирования трафика HTTP/HTTPS, не являющегося браузерным

Choices:

  • false
  • true

auth_user_agent

string

Укажите значение user-agent, которое будет использоваться для проверки того, что трафик браузера пользователя является трафиком HTTP/HTTPS

client_match

string

Укажите имя пользователей или групп пользователей в профиле, которым разрешен доступ этой политикой

ssl_termination_profile

string

Укажите профиль завершения SSL, используемый для разгрузки SSL

web_redirect

boolean

Включить перенаправление HTTP-запроса на устройство и перенаправление клиентской системы на веб-страницу для аутентификации

Choices:

  • false
  • true

web_redirect_to_https

boolean

Перенаправить неавторизованные HTTP-запросы на внутренний HTTPS-веб-сервер устройства

Choices:

  • false
  • true

push_to_identity_management

boolean

Включает отправку на устройства управления удостоверениями

Choices:

  • false
  • true

user_firewall

dictionary

Настроить аутентификацию брандмауэра на основе ролей пользователя и сопоставить исходный IP-адрес с именем пользователя и его связанными ролями (группами)

access_profile

string

Укажите имя профиля доступа, который будет использоваться для аутентификации

auth_only_browser

boolean

Настроить аутентификацию брандмауэра для игнорирования трафика HTTP/HTTPS, не являющегося браузерным

Choices:

  • false
  • true

auth_user_agent

string

Укажите значение user-agent, которое будет использоваться для проверки того, что трафик браузера пользователя является трафиком HTTP/HTTPS

domain

string

Укажите имя домена, где происходит аутентификация брандмауэра в случае, если клиент Windows Management Instrumentation (WMIC) недоступен для получения сопоставления IP_to_user для интегрированной функции брандмауэра пользователя

ssl_termination_profile

string

Для трафика HTTPS укажите имя профиля завершения SSL, используемого для разгрузки SSL

web_redirect

boolean

Включить перенаправление веб-страниц

Choices:

  • false
  • true

web_redirect_to_https

boolean

Включить перенаправление на HTTPS

Choices:

  • false
  • true

web_authentication

list / elements=string

Укажите, что политика разрешает доступ пользователям или группам пользователей, которые ранее прошли аутентификацию с помощью веб-аутентификации

tcp_options

dictionary

Укажите параметры TCP для каждой политики. Вы можете настроить проверки синхронизации и последовательности для каждой политики в соответствии с вашими требованиями, и, поскольку каждая политика имеет два направления, вы можете настроить значение TCP MSS для обоих направлений или только для одного направления.

initial_tcp_mss

integer

Настройте максимальный размер сегмента TCP (MSS) для пакетов, которые поступают на входной интерфейс (начальное направление), соответствуют определенной политике и для которых создается сеанс.

reverse_tcp_mss

integer

Настройте максимальный размер сегмента TCP (MSS) для пакетов, которые соответствуют определенной политике и передаются в обратном направлении сеанса.

sequence_check_required

boolean

Включить проверку последовательности для каждой политики. Значение sequence_check_required переопределяет глобальное значение no_sequence_check.

Choices:

  • false
  • true

syn_check_required

boolean

Включить проверку синхронизации для каждой политики. Значение syn_check_required переопределяет глобальное значение no_syn_check.

Choices:

  • false
  • true

window_scale

boolean

Включить window_scale для каждой политики.

Choices:

  • false
  • true

tunnel

dictionary

Инкапсулировать исходящие IP-пакеты и распаковывать входящие IP-пакеты.

ipsec_vpn

string

имя политики ipsec

pair_policy

string

имя парной политики

reject

dictionary

Блокировать сервис на брандмауэре. Устройство отбрасывает пакет и отправляет сегмент TCP reset (RST) исходному хосту для трафика TCP и сообщение ICMP «адрес назначения недоступен, порт недоступен» (тип 3, код 3) для трафика UDP.

enable

boolean

Включить отклонение пакетов на основе критериев соответствия.

Choices:

  • false
  • true

profile

string

Вы можете выбрать отправку уведомления клиентам или перенаправление запроса клиента на информационную веб-страницу, когда политика блокирует трафик HTTP или HTTPS с действием deny или reject.

ssl_proxy

dictionary

Вы можете применить профиль прокси-сервера SSL для перенаправления, когда политика блокирует трафик HTTPS с действием reject. Когда вы применяете профиль прокси-сервера SSL, прокси-сервер SSL расшифровывает трафик, а функция идентификации приложений идентифицирует приложение.

enable

boolean

Включить SSL-прокси

Choices:

  • false
  • true

profile_name

string

Имя профиля SSL-прокси

global

dictionary

Список глобальных политик безопасности

policies

list / elements=dictionary

Список политик, определенных для соответствующей категории

description

string

Описание политики безопасности

match

dictionary

Настройка критериев соответствия политики безопасности

application

dictionary

Укажите IP-приложение или приложение удаленного вызова процедур (RPC) или набор приложений, которые будут использоваться в качестве критериев соответствия

any

boolean

Соответствие любым предопределенным или пользовательским приложениям или наборам приложений

Варианты:

  • false
  • true

names

list / elements=string

Имя предопределенного или пользовательского приложения или набора приложений, используемых в качестве критериев соответствия

destination_address

dictionary

Определение критериев соответствия. Вы можете указать один или несколько IP-адресов, наборов адресов или адресов с подстановочными знаками

addresses

list / elements=string

IP-адрес, набор IP-адресов или запись адресной книги, или адрес с подстановочным знаком (представлен как ABCD/wildcard_mask)

any

boolean

Любой IPv4 или IPv6 адрес

Варианты:

  • false
  • true

any_ipv4

boolean

Любой IPv4 адрес

Варианты:

  • false
  • true

any_ipv6

boolean

Любой IPv6 адрес

Варианты:

  • false
  • true

destination_address_excluded

boolean

Исключить адреса назначения

Варианты:

  • false
  • true

dynamic_application

dictionary

Укажите динамические приложения или группы динамических приложений, используемые в качестве критериев соответствия в политике безопасности

any

boolean

Настройка динамического приложения как любого устанавливает политику с приложением как подстановочный знак (по умолчанию)

Варианты:

  • false
  • true

names

list / elements=string

Укажите динамические приложения или группы динамических приложений

none

boolean

Настройка динамического приложения как none игнорирует результаты классификации от AppID и не использует динамическое приложение в поисках политики безопасности

Варианты:

  • false
  • true

from_zone

dictionary

Идентификация одной исходной зоны или нескольких исходных зон, которые будут использоваться в качестве критериев соответствия для политики

any

boolean

Соответствие любой зоне

Варианты:

  • false
  • true

junos_host

boolean

junos-host

Варианты:

  • false
  • true

names

list / elements=string

Имя одной или нескольких исходных зон

source_address

dictionary

Определите критерии соответствия. Вы можете указать один или несколько IP-адресов, наборы адресов или адреса с подстановкой.

addresses

list / elements=string

IP-адрес, набор IP-адресов или запись адресной книги, или адрес с подстановкой (представленный как ABCD/wildcard_mask)

any

boolean

Любой IPv4 или IPv6 адрес

Варианты:

  • false
  • true

any_ipv4

boolean

Любой IPv4 адрес

Варианты:

  • false
  • true

any_ipv6

boolean

Любой IPv6 адрес

Варианты:

  • false
  • true

source_address_excluded

boolean

Исключить исходные адреса

Варианты:

  • false
  • true

source_end_user_profile

string

Имя профиля конечного пользователя источника

source_identity

dictionary

Идентифицирует пользователей и роли, которые будут использоваться в качестве критериев соответствия для политики

any

boolean

Любой пользователь или роль, а также ключевые слова authenticated_user, unauthenticated_user и unknown_user

Варианты:

  • false
  • true

authenticated_user

boolean

Все пользователи и роли, которые прошли аутентификацию

Варианты:

  • false
  • true

names

list / elements=string

Список конкретных пользователей и ролей

unauthenticated_user

boolean

Любой пользователь или роль, у которого нет IP-адреса, сопоставленного с источниками аутентификации, и источник аутентификации работает

Варианты:

  • false
  • true

unknown_user

boolean

Любой пользователь или роль, у которого нет IP-адреса, сопоставленного с источниками аутентификации, потому что источник аутентификации отключен от устройства серии SRX

Варианты:

  • false
  • true

to_zone

dictionary

Идентифицируйте одну целевую зону или несколько целевых зон, которые будут использоваться в качестве критериев соответствия для политики

any

boolean

Соответствие любой зоне

Варианты:

  • false
  • true

junos_host

boolean

junos-host

Варианты:

  • false
  • true

names

list / elements=string

Имя одной или нескольких целевых зон

url_category

dictionary

Категория URL

any

boolean

Применить к любой категории URL

Choices:

  • false
  • true

names

list / elements=string

Имена категорий URL для сопоставления

none

boolean

Не применять к категории URL

Choices:

  • false
  • true

name

string

Имя политики

scheduler_name

string

Имя планировщика для запуска этой политики

then

dictionary

Укажите действие политики, которое будет выполнено, когда пакеты соответствуют заданным критериям

count

boolean

Включить подсчет, в байтах или килобайтах, всего сетевого трафика, который политика разрешает проходить через устройство в обоих направлениях; исходный трафик от клиента к серверу (из from_zone в to_zone) и обратный трафик от сервера к исходному клиенту

Choices:

  • false
  • true

deny

boolean

Блокировать сервис на брандмауэре. Устройство отбрасывает пакеты.

Choices:

  • false
  • true

log

dictionary

Регистрировать информацию о трафике для конкретной политики. Информация о трафике регистрируется при начале (session_init) или закрытии (session_close) сессии.

session_close

boolean

Включить ведение журнала при закрытии сессии

Choices:

  • false
  • true

session_init

boolean

Включить ведение журнала при инициализации сессии

Choices:

  • false
  • true

permit

dictionary

Блокировать сервис на брандмауэре. Устройство отбрасывает пакеты.

application_services

dictionary

Включить приложения в рамках политики безопасности

advanced_anti_malware_policy

string

Укажите имя политики advanced_anti_malware

application_firewalls

list / elements=dictionary

Укажите наборы правил, настроенные как часть брандмауэра приложений, которые будут применены к разрешенному трафику

rule_set

string

имя набора правил для использования

application_traffic_control_rule_set

string

Укажите набор правил, настроенный как часть AppQoS, системы управления качеством обслуживания с учетом приложений, который будет применен к разрешенному трафику

gprs_gtp_profile

string

Укажите имя профиля протокола туннелирования GPRS

gprs_sctp_profile

string

Укажите имя профиля протокола управления потоками GPRS

icap_redirect

string

Укажите имя профиля перенаправления ICAP

idp

boolean

Система обнаружения и предотвращения вторжений (IDP)

Choices:

  • false
  • true

idp_policy

string

Укажите имя политики IDP

packet_capture

boolean

Параметр для включения или отключения захвата пакетов

Choices:

  • false
  • true

redirect_wx

boolean

Укажите переадресацию WX, необходимую для пакетов, поступающих из локальной сети

Choices:

  • false
  • true

reverse_redirect_wx

boolean

Укажите переадресацию WX, необходимую для обратного потока пакетов, поступающих из глобальной сети

Choices:

  • false
  • true

security_intelligence

dictionary

Укажите действие после обработки канала безопасности

add_destination_identity_to_feed

string

Добавить идентификатор пользователя получателя в канал безопасности

add_destination_ip_to_feed

string

Добавить IP-адрес получателя в канал безопасности

add_source_identity_to_feed

string

Добавить идентификатор пользователя отправителя в канал безопасности

add_source_ip_to_feed

string

Добавить IP-адрес отправителя в канал безопасности

security_intelligence_policy

string

Укажите имя политики security_intelligence

ssl_proxy

dictionary

Вы можете применить профиль перенаправления прокси SSL, когда политика блокирует трафик HTTPS действием отклонения

enable

boolean

Включить прокси SSL

Choices:

  • false
  • true

profile_name

string

Имя профиля прокси SSL

uac_policy

dictionary

Включить Единый контроль доступа (UAC) для политики безопасности

captive_portal

string

Укажите предварительно настроенную политику безопасности для портала неавторизованного доступа в Junos OS Enforcer для включения функции портала неавторизованного доступа

enable

boolean

Включить Единый контроль доступа (UAC)

Choices:

  • false
  • true

utm_policy

string

Укажите имя политики UTM

destination_address

string

Укажите, ограничен ли трафик, разрешенный политикой безопасности, пакетами, где IP-адрес получателя был переведен с помощью правила NAT назначения, или пакетами, где IP-адрес получателя не был переведен

Choices:

  • "drop-translated"
  • "drop-untranslated"

firewall_authentication

dictionary

Настроить методы аутентификации брандмауэра

pass_through

dictionary

Настроить сквозную аутентификацию пользователя брандмауэра

access_profile

string

Укажите имя профиля доступа

auth_only_browser

boolean

Настроить аутентификацию брандмауэра для игнорирования небраузерного трафика HTTP/HTTPS

Choices:

  • false
  • true

auth_user_agent

string

Укажите значение user-agent, которое будет использоваться для проверки того, что трафик браузера пользователя является трафиком HTTP/HTTPS

client_match

string

Укажите имя пользователей или групп пользователей в профиле, которым разрешен доступ по этой политике

ssl_termination_profile

string

Укажите профиль завершения SSL, используемый для разгрузки SSL

web_redirect

boolean

Включить перенаправление HTTP-запроса на устройство и перенаправление клиентской системы на веб-страницу для аутентификации

Choices:

  • false
  • true

web_redirect_to_https

boolean

Перенаправить неавторизованные HTTP-запросы на внутренний HTTPS-веб-сервер устройства

Choices:

  • false
  • true

push_to_identity_management

boolean

включает отправку на устройства управления удостоверениями

Choices:

  • false
  • true

user_firewall

dictionary

Настроить аутентификацию брандмауэра с ролью пользователя и сопоставить исходный IP-адрес с именем пользователя и его связанными ролями (группами)

access_profile

string

Укажите имя профиля доступа, который будет использоваться для аутентификации

auth_only_browser

boolean

Настроить аутентификацию брандмауэра для игнорирования небраузерного трафика HTTP/HTTPS

Choices:

  • false
  • true

auth_user_agent

string

Укажите значение user-agent, которое будет использоваться для проверки того, что трафик браузера пользователя является трафиком HTTP/HTTPS

domain

string

Укажите имя домена, где происходит аутентификация брандмауэра в случае, если клиент Windows Management Instrumentation (WMIC) недоступен для получения сопоставления IP_to_user для интегрированной функции брандмауэра пользователя

ssl_termination_profile

string

Для трафика HTTPS укажите имя профиля завершения SSL, используемого для разгрузки SSL

web_redirect

boolean

Включить перенаправление веб-страницы

Choices:

  • false
  • true

web_redirect_to_https

boolean

Включить перенаправление на HTTPS

Choices:

  • false
  • true

web_authentication

list / elements=string

Укажите, что политика разрешает доступ пользователям или группам пользователей, которые ранее были аутентифицированы с помощью веб-аутентификации

tcp_options

dictionary

Укажите параметры TCP для каждой политики. Вы можете настроить проверки синхронизации и последовательности для каждой политики в соответствии с вашими требованиями, и, поскольку каждая политика имеет два направления, вы можете настроить значение TCP MSS для обоих направлений или только для одного направления

initial_tcp_mss

integer

Настройте максимальный размер сегмента TCP (MSS) для пакетов, поступающих на интерфейс входа (начальное направление), соответствующих определённой политике и для которых создана сессия

reverse_tcp_mss

integer

Настройте максимальный размер сегмента TCP (MSS) для пакетов, соответствующих определённой политике и передающихся в обратном направлении сессии

sequence_check_required

boolean

Включить проверку последовательности по политике Значение sequence_check_required переопределяет глобальное значение no_sequence_check

Варианты:

  • false
  • true

syn_check_required

boolean

Включить проверку синхронизации по политике Значение syn_check_required переопределяет глобальное значение no_syn_check

Варианты:

  • false
  • true

window_scale

boolean

Включить window_scale по политике

Варианты:

  • false
  • true

tunnel

dictionary

Инкапсулировать исходящие IP-пакеты и деинкапсулировать входящие IP-пакеты

ipsec_vpn

string

имя политики ipsec

pair_policy

string

имя политики пары

reject

dictionary

Заблокировать службу на брандмауэре. Устройство отбрасывает пакет и отправляет сегмент TCP-сброса (RST) хосту-источнику для TCP-трафика и сообщение ICMP «пункт назначения недоступен, порт недоступен» (тип 3, код 3) для UDP-трафика

enable

boolean

Включить отклонение пакетов на основе критериев соответствия

Варианты:

  • false
  • true

profile

string

Вы можете выбрать, чтобы предоставить уведомление клиентам или перенаправить запрос клиента на информационную веб-страницу, когда политика блокирует HTTP- или HTTPS-трафик с действием deny или reject

ssl_proxy

dictionary

Вы можете применить профиль SSL-прокси-сервера при блокировании HTTPS-трафика политикой с действием reject. При применении профиля SSL-прокси-сервера SSL-прокси-сервер дешифрует трафик, а функция идентификации приложений определяет приложение

enable

boolean

Включить SSL-прокси

Варианты:

  • false
  • true

profile_name

string

Имя профиля SSL-прокси

running_config

string

Этот параметр используется только со значением состояния parsed

Значение этого параметра должно быть результатом выполнения команды show configuration security policies на устройстве JunOS

Состояние parsed считывает конфигурацию из параметра running_config и преобразует её в структурированные данные Ansible согласно argspec модуля ресурса, а затем возвращает значение в ключе parsed в результате

state

string

Состояние, в котором должна остаться конфигурация

Состояния rendered, gathered и parsed не производят никаких изменений на устройстве

Состояние rendered преобразует конфигурацию в config в команды CLI, специфичные для платформы, которые будут возвращены в ключе rendered в результате. Для состояния rendered не требуется активное подключение к удалённому хосту

Состояние replaced заменит текущую конфигурацию предоставленной конфигурацией

Состояние replaced и состояние overridden имеют одинаковое поведение

Состояние gathered извлечёт текущую конфигурацию с устройства и преобразует её в структурированные данные в формате, соответствующем argspec модуля ресурса, и значение возвращается в ключе gathered в результате

Состояние parsed считывает конфигурацию из running_config параметра и преобразует ее в формат JSON в соответствии с параметрами модуля ресурса, а значение возвращается в ключе parsed в результате. Значение параметра running_config должно быть в том же формате, что и вывод команды show security policies detail, выполненной на устройстве. Для состояния parsed не требуется активное подключение к удалённому хосту

Варианты:

  • "merged" ← (по умолчанию)
  • "replaced"
  • "overridden"
  • "deleted"
  • "rendered"
  • "gathered"
  • "parsed"

Примечания

Примечание

  • Для данного модуля необходимо включить системную службу netconf на управляемом устройстве
  • Этот модуль работает с подключением netconf
  • См. параметры платформы JunOS OS
  • Тестировалось на JunOS v18.4R1

Примеры

# Using merged
#
# Before state
# ------------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# Global policies:
# Policy: test_glob, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1
#   From zones: any
#     To zones: any
#     Source addresses: any-ipv4
#     Destination addresses: any-ipv4
#     Applications: any
#     Action: deny
#
# vagrant@vsrx> show security zones
#
# Security zone: one
# Send reset for non-SYN session TCP packets: Off
# Policy configurable: Yes
# Interfaces bound: 1
# Interfaces:
# ge-0/0/0.0
#
# Security zone: three
# Send reset for non-SYN session TCP packets: Off
# Policy configurable: Yes
# Interfaces bound: 1
# Interfaces:
# ge-0/0/2.0
#
# Security zone: two
# Send reset for non-SYN session TCP packets: Off
# Policy configurable: Yes
# Interfaces bound: 1
# Interfaces:
# ge-0/0/1.0
#
# Security zone: junos-host
# Send reset for non-SYN session TCP packets: Off
# Policy configurable: Yes
# Interfaces bound: 0
# Interfaces:
#
- junipernetworks.junos.junos_security_policies:
    config:
      from_zones:
        - name: one
          to_zones:
            - name: two
              policies:
                - match:
                    application:
                      names:
                        - junos-dhcp-relay
                        - junos-finger
                    destination_address:
                      addresses:
                        - a2
                        - a4
                    destination_address_excluded: true
                    dynamic_application:
                      names:
                        - any
                    source_address:
                      addresses:
                        - a1
                        - a3
                    source_address_excluded: true
                    source_end_user_profile: test_end_user_profile
                    source_identity:
                      unknown_user: true
                    url_category:
                      names:
                        - Enhanced_Web_Chat
                  name: test_policy_1
                  then:
                    count: true
                    deny: true
                    log: session-close
                - match:
                    application:
                      any: true
                    destination_address:
                      any_ipv6: true
                    source_address:
                      addresses:
                        - a1
                  name: test_policy_2
                  then:
                    reject:
                      enable: true
                      profile: test_dyn_app
                      ssl_proxy:
                        enable: true
                        profile_name: SECURITY-SSL-PROXY
            - name: three
              policies:
                - match:
                    application:
                      any: true
                    destination_address:
                      addresses:
                        - a2
                    source_address:
                      addresses:
                        - a1
                  name: test_policy_3
                  then:
                    permit:
                      application_services:
                        application_traffic_control_rule_set: test_traffic_control
                        gprs_gtp_profile: gtp1
                        icap_redirect: test_icap
                        reverse_redirect_wx: 'True'
                        uac_policy:
                          enable: true
                      firewall_authentication:
                        push_to_identity_management: true
                        web_authentication:
                          - FWClient1
                      tcp_options:
                        initial_tcp_mss: 64
                        window_scale: true
      global:
        policies:
          - match:
              application:
                any: true
              destination_address:
                any_ipv6: true
              source_address:
                any_ipv6: true
            name: test_glob_1
            then:
              deny: true
          - match:
              application:
                any: true
              destination_address:
                any_ipv6: true
              source_address:
                any_ipv6: true
            name: test_glob_2
            then:
              deny: true
    state: merged
#
# -------------------------
# Module Execution Result
# -------------------------
#   "after": {
#     "from_zones": [
#       {
#         "name": "one",
#         "to_zones": [
#           {
#             "name": "two",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "names": [
#                       "junos-dhcp-relay",
#                       "junos-finger"
#                     ]
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2",
#                       "a4"
#                     ]
#                   },
#                   "destination_address_excluded": true,
#                   "dynamic_application": {
#                     "names": [
#                       "any"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1",
#                       "a3"
#                     ]
#                   },
#                   "source_address_excluded": true,
#                   "source_end_user_profile": "test_end_user_profile",
#                   "source_identity": {
#                     "unknown_user": true
#                   },
#                   "url_category": {
#                     "names": [
#                       "Enhanced_Web_Chat"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_1",
#                 "then": {
#                   "count": true,
#                   "deny": true,
#                   "log": "session-close"
#                 }
#               },
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "any_ipv6": true
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_2",
#                 "then": {
#                   "reject": {
#                     "enable": true,
#                     "profile": "test_dyn_app",
#                     "ssl_proxy": {
#                       "enable": true,
#                       "profile_name": "SECURITY-SSL-PROXY"
#                     }
#                   }
#                 }
#               }
#             ]
#           },
#           {
#             "name": "three",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_3",
#                 "then": {
#                   "permit": {
#                     "application_services": {
#                       "application_traffic_control_rule_set": "test_traffic_control",
#                       "gprs_gtp_profile": "gtp1",
#                       "icap_redirect": "test_icap",
#                       "reverse_redirect_wx": "True",
#                       "uac_policy": {
#                         "enable": true
#                       }
#                     },
#                     "firewall_authentication": {
#                       "push_to_identity_management": true,
#                       "web_authentication": [
#                         "FWClient1"
#                       ]
#                     },
#                     "tcp_options": {
#                       "initial_tcp_mss": 64,
#                       "window_scale": true
#                     }
#                   }
#                 }
#               }
#             ]
#           }
#         ]
#       }
#     ],
#     "global": {
#       "policies": [
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv4": true
#             },
#             "source_address": {
#               "any_ipv4": true
#             }
#           },
#           "name": "test_glob",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_1",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_2",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "before": {
#     "global": {
#       "policies": [
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv4": true
#             },
#             "source_address": {
#               "any_ipv4": true
#             }
#           },
#           "name": "test_glob",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "changed": true,
#   "commands": "<nc:security
#                   xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#                   <nc:policies>
#                     <nc:policy>
#                       <nc:from-zone-name>one</nc:from-zone-name>
#                       <nc:to-zone-name>two</nc:to-zone-name>
#                       <nc:policy>
#                         <nc:name>test_policy_1</nc:name>
#                         <nc:match>
#                           <nc:source-address>a1</nc:source-address>
#                           <nc:source-address>a3</nc:source-address>
#                           <nc:source-address-excluded/>
#                           <nc:destination-address>a2</nc:destination-address>
#                           <nc:destination-address>a4</nc:destination-address>
#                           <nc:destination-address-excluded/>
#                           <nc:application>junos-dhcp-relay</nc:application>
#                           <nc:application>junos-finger</nc:application>
#                           <nc:source-end-user-profile>test_end_user_profile</nc:source-end-user-profile>
#                           <nc:source-identity>unknown-user</nc:source-identity>
#                           <nc:url-category>Enhanced_Web_Chat</nc:url-category>
#                           <nc:dynamic-application>any</nc:dynamic-application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:deny/>
#                           <nc:count></nc:count>
#                           <nc:log>
#                             <nc:session-close/>
#                           </nc:log>
#                         </nc:then>
#                       </nc:policy>
#                       <nc:policy>
#                         <nc:name>test_policy_2</nc:name>
#                         <nc:match>
#                           <nc:source-address>a1</nc:source-address>
#                           <nc:destination-address>any-ipv6</nc:destination-address>
#                           <nc:application>any</nc:application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:reject>
#                             <nc:profile>test_dyn_app</nc:profile>
#                             <nc:ssl-proxy>
#                               <nc:profile-name>SECURITY-SSL-PROXY</nc:profile-name>
#                             </nc:ssl-proxy>
#                           </nc:reject>
#                         </nc:then>
#                       </nc:policy>
#                     </nc:policy>
#                     <nc:policy>
#                       <nc:from-zone-name>one</nc:from-zone-name>
#                       <nc:to-zone-name>three</nc:to-zone-name>
#                       <nc:policy>
#                         <nc:name>test_policy_3</nc:name>
#                         <nc:match>
#                           <nc:source-address>a1</nc:source-address>
#                           <nc:destination-address>a2</nc:destination-address>
#                           <nc:application>any</nc:application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:permit>
#                             <nc:application-services>
#                               <nc:application-traffic-control>
#                                 <nc:rule-set>test_traffic_control</nc:rule-set>
#                               </nc:application-traffic-control>
#                               <nc:gprs-gtp-profile>gtp1</nc:gprs-gtp-profile>
#                               <nc:icap-redirect>test_icap</nc:icap-redirect>
#                               <nc:reverse-redirect-wx/>
#                               <nc:uac-policy></nc:uac-policy>
#                             </nc:application-services>
#                             <nc:firewall-authentication>
#                               <nc:push-to-identity-management/>
#                               <nc:web-authentication>
#                                 <nc:client-match>FWClient1</nc:client-match>
#                               </nc:web-authentication>
#                             </nc:firewall-authentication>
#                             <nc:tcp-options>
#                               <nc:initial-tcp-mss>64</nc:initial-tcp-mss>
#                               <nc:window-scale/>
#                             </nc:tcp-options>
#                           </nc:permit>
#                         </nc:then>
#                       </nc:policy>
#                     </nc:policy>
#                     <nc:global>
#                       <nc:policy>
#                         <nc:name>test_glob_1</nc:name>
#                         <nc:match>
#                           <nc:source-address>any-ipv6</nc:source-address>
#                           <nc:destination-address>any-ipv6</nc:destination-address>
#                           <nc:application>any</nc:application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:deny/>
#                         </nc:then>
#                       </nc:policy>
#                       <nc:policy>
#                         <nc:name>test_glob_2</nc:name>
#                         <nc:match>
#                           <nc:source-address>any-ipv6</nc:source-address>
#                           <nc:destination-address>any-ipv6</nc:destination-address>
#                           <nc:application>any</nc:application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:deny/>
#                         </nc:then>
#                       </nc:policy>
#                     </nc:global>
#                   </nc:policies>
#                 </nc:security>
#                 "
# After state
# -----------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# From zone: one, To zone: two
# Policy: test_policy_1, State: enabled, Index: 5, Scope Policy: 0, Sequence number: 1
# Source addresses(excluded): a1, a3
# Destination addresses(excluded): a2, a4
# Source-end-user-profile: test_end_user_profile(1)
# Applications: junos-dhcp-relay, junos-finger
# Dynamic Applications: any
# Url-category: Enhanced_Web_Chat
# Source identities: unknown-user
# Action: deny, log, count
# Policy: test_policy_2, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 2
# Source addresses: a1
# Destination addresses: any-ipv6
# Applications: any
# Action: reject
# dynapp-redir-profile: test_dyn_app(1)
# From zone: one, To zone: three
# Policy: test_policy_3, State: enabled, Index: 7, Scope Policy: 0, Sequence number: 1
# Source addresses: a1
# Destination addresses: a2
# Applications: any
# Action: permit, firewall authentication, application services, unified access control
# Application traffic control: test_traffic_control
# Global policies:
# Policy: test_glob, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any-ipv4
# Destination addresses: any-ipv4
# Applications: any
# Action: deny
# Policy: test_glob_1, State: enabled, Index: 8, Scope Policy: 0, Sequence number: 2
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
# Policy: test_glob_2, State: enabled, Index: 9, Scope Policy: 0, Sequence number: 3
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny


# Using Replaced
# Before state
# ------------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# From zone: one, To zone: two
# Policy: test_policy_1, State: enabled, Index: 5, Scope Policy: 0, Sequence number: 1
# Source addresses(excluded): a1, a3
# Destination addresses(excluded): a2, a4
# Source-end-user-profile: test_end_user_profile(1)
# Applications: junos-dhcp-relay, junos-finger
# Dynamic Applications: any
# Url-category: Enhanced_Web_Chat
# Source identities: unknown-user
# Action: deny, log, count
# Policy: test_policy_2, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 2
# Source addresses: a1
# Destination addresses: any-ipv6
# Applications: any
# Action: reject
# dynapp-redir-profile: test_dyn_app(1)
# From zone: one, To zone: three
# Policy: test_policy_3, State: enabled, Index: 7, Scope Policy: 0, Sequence number: 1
# Source addresses: a1
# Destination addresses: a2
# Applications: any
# Action: permit, firewall authentication, application services, unified access control
# Application traffic control: test_traffic_control
# Global policies:
# Policy: test_glob, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any-ipv4
# Destination addresses: any-ipv4
# Applications: any
# Action: deny
# Policy: test_glob_1, State: enabled, Index: 8, Scope Policy: 0, Sequence number: 2
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
# Policy: test_glob_2, State: enabled, Index: 9, Scope Policy: 0, Sequence number: 3
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
#
- junipernetworks.junos.junos_security_policies:
    config:
      global:
        policies:
          - description: test update
            match:
              application:
                any: true
              destination_address:
                any_ipv6: true
              source_address:
                any: true
            name: test_glob_3
            then:
              deny: true
    state: replaced
#
# -------------------------
# Module Execution Result
# -------------------------
#   "after": {
#     "global": {
#       "policies": [
#         {
#           "description": "test update",
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any": true
#             }
#           },
#           "name": "test_glob_3",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "before": {
#     "from_zones": [
#       {
#         "name": "one",
#         "to_zones": [
#           {
#             "name": "two",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "names": [
#                       "junos-dhcp-relay",
#                       "junos-finger"
#                     ]
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2",
#                       "a4"
#                     ]
#                   },
#                   "destination_address_excluded": true,
#                   "dynamic_application": {
#                     "names": [
#                       "any"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1",
#                       "a3"
#                     ]
#                   },
#                   "source_address_excluded": true,
#                   "source_end_user_profile": "test_end_user_profile",
#                   "source_identity": {
#                     "unknown_user": true
#                   },
#                   "url_category": {
#                     "names": [
#                       "Enhanced_Web_Chat"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_1",
#                 "then": {
#                   "count": true,
#                   "deny": true,
#                   "log": "session-close"
#                 }
#               },
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "any_ipv6": true
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_2",
#                 "then": {
#                   "reject": {
#                     "enable": true,
#                     "profile": "test_dyn_app",
#                     "ssl_proxy": {
#                       "enable": true,
#                       "profile_name": "SECURITY-SSL-PROXY"
#                     }
#                   }
#                 }
#               }
#             ]
#           },
#           {
#             "name": "three",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_3",
#                 "then": {
#                   "permit": {
#                     "application_services": {
#                       "application_traffic_control_rule_set": "test_traffic_control",
#                       "gprs_gtp_profile": "gtp1",
#                       "icap_redirect": "test_icap",
#                       "reverse_redirect_wx": "True",
#                       "uac_policy": {
#                         "enable": true
#                       }
#                     },
#                     "firewall_authentication": {
#                       "push_to_identity_management": true,
#                       "web_authentication": [
#                         "FWClient1"
#                       ]
#                     },
#                     "tcp_options": {
#                       "initial_tcp_mss": 64,
#                       "window_scale": true
#                     }
#                   }
#                 }
#               }
#             ]
#           }
#         ]
#       }
#     ],
#     "global": {
#       "policies": [
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv4": true
#             },
#             "source_address": {
#               "any_ipv4": true
#             }
#           },
#           "name": "test_glob",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_1",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_2",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "changed": true,
#   "commands": "<nc:security
#                   xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#                   <nc:policies delete="delete"/>
#                   <nc:policies>
#                     <nc:global>
#                       <nc:policy>
#                         <nc:name>test_glob_3</nc:name>
#                         <nc:description>test update</nc:description>
#                         <nc:match>
#                           <nc:source-address>any</nc:source-address>
#                           <nc:destination-address>any-ipv6</nc:destination-address>
#                           <nc:application>any</nc:application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:deny/>
#                         </nc:then>
#                       </nc:policy>
#                     </nc:global>
#                   </nc:policies>
#                 </nc:security>"
# }
# After state
# -----------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# Global policies:
# Policy: test_glob_3, State: enabled, Index: 10, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any
# Destination addresses: any-ipv6
# Applications: any
# Action: deny


# Using overridden
#
# Before state
# ------------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# From zone: one, To zone: two
# Policy: test_policy_1, State: enabled, Index: 5, Scope Policy: 0, Sequence number: 1
# Source addresses(excluded): a1, a3
# Destination addresses(excluded): a2, a4
# Source-end-user-profile: test_end_user_profile(1)
# Applications: junos-dhcp-relay, junos-finger
# Dynamic Applications: any
# Url-category: Enhanced_Web_Chat
# Source identities: unknown-user
# Action: deny, log, count
# Policy: test_policy_2, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 2
# Source addresses: a1
# Destination addresses: any-ipv6
# Applications: any
# Action: reject
# dynapp-redir-profile: test_dyn_app(1)
# From zone: one, To zone: three
# Policy: test_policy_3, State: enabled, Index: 7, Scope Policy: 0, Sequence number: 1
# Source addresses: a1
# Destination addresses: a2
# Applications: any
# Action: permit, firewall authentication, application services, unified access control
# Application traffic control: test_traffic_control
# Global policies:
# Policy: test_glob, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any-ipv4
# Destination addresses: any-ipv4
# Applications: any
# Action: deny
# Policy: test_glob_1, State: enabled, Index: 8, Scope Policy: 0, Sequence number: 2
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
# Policy: test_glob_2, State: enabled, Index: 9, Scope Policy: 0, Sequence number: 3
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
#
- junipernetworks.junos.junos_security_policies:
    config:
      global:
        policies:
          - description: test update
            match:
              application:
                any: true
              destination_address:
                any_ipv6: true
              source_address:
                any: true
            name: test_glob_3
            then:
              deny: true
    state: overridden
#
# -------------------------
# Module Execution Result
# -------------------------
#   "after": {
#     "global": {
#       "policies": [
#         {
#           "description": "test update",
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any": true
#             }
#           },
#           "name": "test_glob_3",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "before": {
#     "from_zones": [
#       {
#         "name": "one",
#         "to_zones": [
#           {
#             "name": "two",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "names": [
#                       "junos-dhcp-relay",
#                       "junos-finger"
#                     ]
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2",
#                       "a4"
#                     ]
#                   },
#                   "destination_address_excluded": true,
#                   "dynamic_application": {
#                     "names": [
#                       "any"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1",
#                       "a3"
#                     ]
#                   },
#                   "source_address_excluded": true,
#                   "source_end_user_profile": "test_end_user_profile",
#                   "source_identity": {
#                     "unknown_user": true
#                   },
#                   "url_category": {
#                     "names": [
#                       "Enhanced_Web_Chat"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_1",
#                 "then": {
#                   "count": true,
#                   "deny": true,
#                   "log": "session-close"
#                 }
#               },
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "any_ipv6": true
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_2",
#                 "then": {
#                   "reject": {
#                     "enable": true,
#                     "profile": "test_dyn_app",
#                     "ssl_proxy": {
#                       "enable": true,
#                       "profile_name": "SECURITY-SSL-PROXY"
#                     }
#                   }
#                 }
#               }
#             ]
#           },
#           {
#             "name": "three",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_3",
#                 "then": {
#                   "permit": {
#                     "application_services": {
#                       "application_traffic_control_rule_set": "test_traffic_control",
#                       "gprs_gtp_profile": "gtp1",
#                       "icap_redirect": "test_icap",
#                       "reverse_redirect_wx": "True",
#                       "uac_policy": {
#                         "enable": true
#                       }
#                     },
#                     "firewall_authentication": {
#                       "push_to_identity_management": true,
#                       "web_authentication": [
#                         "FWClient1"
#                       ]
#                     },
#                     "tcp_options": {
#                       "initial_tcp_mss": 64,
#                       "window_scale": true
#                     }
#                   }
#                 }
#               }
#             ]
#           }
#         ]
#       }
#     ],
#     "global": {
#       "policies": [
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv4": true
#             },
#             "source_address": {
#               "any_ipv4": true
#             }
#           },
#           "name": "test_glob",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_1",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_2",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "changed": true,
#   "commands": "<nc:security
#                   xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#                   <nc:policies delete="delete"/>
#                   <nc:policies>
#                     <nc:global>
#                       <nc:policy>
#                         <nc:name>test_glob_3</nc:name>
#                         <nc:description>test update</nc:description>
#                         <nc:match>
#                           <nc:source-address>any</nc:source-address>
#                           <nc:destination-address>any-ipv6</nc:destination-address>
#                           <nc:application>any</nc:application>
#                         </nc:match>
#                         <nc:then>
#                           <nc:deny/>
#                         </nc:then>
#                       </nc:policy>
#                     </nc:global>
#                   </nc:policies>
#                 </nc:security>"
# }
# After state
# -----------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# Global policies:
# Policy: test_glob_3, State: enabled, Index: 10, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any
# Destination addresses: any-ipv6
# Applications: any
# Action: deny


# Using deleted
#
# Before state
# ------------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# Global policies:
# Policy: test_glob_3, State: enabled, Index: 10, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
#
- junipernetworks.junos.junos_security_policies:
    config:
    state: deleted
#
# -------------------------
# Module Execution Result
# -------------------------
#
#   "after": {},
#   "before": {
#     "global": {
#       "policies": [
#         {
#           "description": "test update",
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any": true
#             }
#           },
#           "name": "test_glob_3",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   },
#   "changed": true,
#   "commands": "<nc:security xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#   <nc:policies delete="delete"/></nc:security>"
#
# After state
# -----------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all


# Using parsed
# parsed.cfg
# ------------
# <?xml version="1.0" encoding="UTF-8"?>
# <rpc-reply>
#     <configuration>
#         <version>18.4R1-S3.1</version>
#         <services>
#             <ssl>
#                 <termination>
#                     <profile>
#                         <name>test_ssl_term</name>
#                         <server-certificate>SECURITY-cert</server-certificate>
#                     </profile>
#                 </termination>
#                 <proxy>
#                     <profile>
#                         <name>SECURITY-SSL-PROXY</name>
#                         <root-ca>SECURITY-cert</root-ca>
#                     </profile>
#                 </proxy>
#             </ssl>
#             <icap-redirect>
#                 <profile>
#                     <name>test_icap</name>
#                     <server>
#                         <name>test_icap_server</name>
#                         <host>10.10.10.11</host>
#                     </server>
#                 </profile>
#             </icap-redirect>
#             <user-identification>
#                 <device-information>
#                     <end-user-profile>
#                         <profile-name>
#                             <name>test_end_user_profile</name>
#                             <domain-name>test_domain</domain-name>
#                             <attribute>
#                                 <name>device-identity</name>
#                                 <string>Windows</string>
#                             </attribute>
#                         </profile-name>
#                     </end-user-profile>
#                 </device-information>
#             </user-identification>
#         </services>
#         <security>
#             <address-book>
#                 <name>global</name>
#                 <address>
#                     <name>a1</name>
#                     <ip-prefix>200.0.113.0/24</ip-prefix>
#                 </address>
#                 <address>
#                     <name>a2</name>
#                     <ip-prefix>201.0.113.0/24</ip-prefix>
#                 </address>
#                 <address>
#                     <name>a3</name>
#                     <ip-prefix>202.0.113.0/24</ip-prefix>
#                 </address>
#                 <address>
#                     <name>a4</name>
#                     <ip-prefix>203.0.113.0/24</ip-prefix>
#                 </address>
#             </address-book>
#             <dynamic-application>
#                 <profile>
#                     <name>test_dyn_app</name>
#                     <redirect-message>
#                         <type>
#                             <custom-text>
#                                 <content>hello_world</content>
#                             </custom-text>
#                         </type>
#                     </redirect-message>
#                 </profile>
#             </dynamic-application>
#             <policies>
#                 <policy>
#                     <from-zone-name>one</from-zone-name>
#                     <to-zone-name>two</to-zone-name>
#                     <policy>
#                         <name>test_policy_1</name>
#                         <match>
#                             <source-address>a1</source-address>
#                             <source-address>a3</source-address>
#                             <destination-address>a2</destination-address>
#                             <destination-address>a4</destination-address>
#                             <source-address-excluded />
#                             <destination-address-excluded />
#                             <application>junos-dhcp-relay</application>
#                             <application>junos-finger</application>
#                             <source-identity>authenticated-user</source-identity>
#                             <source-identity>unknown-user</source-identity>
#                             <source-end-user-profile>
#                                 <source-end-user-profile-name>test_end_user_profile</source-end-user-profile-name>
#                             </source-end-user-profile>
#                             <dynamic-application>any</dynamic-application>
#                             <url-category>Enhanced_Web_Chat</url-category>
#                         </match>
#                         <then>
#                             <deny />
#                             <log>
#                                 <session-close />
#                             </log>
#                             <count></count>
#                         </then>
#                     </policy>
#                     <policy>
#                         <name>test_policy_2</name>
#                         <match>
#                             <source-address>a1</source-address>
#                             <destination-address>any-ipv6</destination-address>
#                             <application>any</application>
#                         </match>
#                         <then>
#                             <reject>
#                                 <profile>test_dyn_app</profile>
#                                 <ssl-proxy>
#                                     <profile-name>SECURITY-SSL-PROXY</profile-name>
#                                 </ssl-proxy>
#                             </reject>
#                         </then>
#                     </policy>
#                 </policy>
#                 <policy>
#                     <from-zone-name>one</from-zone-name>
#                     <to-zone-name>three</to-zone-name>
#                     <policy>
#                         <name>test_policy_3</name>
#                         <match>
#                             <source-address>a1</source-address>
#                             <destination-address>a2</destination-address>
#                             <application>any</application>
#                         </match>
#                         <then>
#                             <permit>
#                                 <firewall-authentication>
#                                     <web-authentication>
#                                         <client-match>FWClient1</client-match>
#                                     </web-authentication>
#                                     <push-to-identity-management />
#                                 </firewall-authentication>
#                                 <destination-address>
#                                     <drop-untranslated />
#                                 </destination-address>
#                                 <application-services>
#                                     <gprs-gtp-profile>gtp1</gprs-gtp-profile>
#                                     <uac-policy></uac-policy>
#                                     <icap-redirect>test_icap</icap-redirect>
#                                     <application-traffic-control>
#                                         <rule-set>test_traffic_control</rule-set>
#                                     </application-traffic-control>
#                                     <reverse-redirect-wx />
#                                 </application-services>
#                                 <tcp-options>
#                                     <initial-tcp-mss>64</initial-tcp-mss>
#                                     <window-scale />
#                                 </tcp-options>
#                             </permit>
#                         </then>
#                     </policy>
#                 </policy>
#                 <global>
#                     <policy>
#                         <name>test_glob_1</name>
#                         <match>
#                             <source-address>any-ipv6</source-address>
#                             <destination-address>any-ipv6</destination-address>
#                             <application>any</application>
#                         </match>
#                         <then>
#                             <deny />
#                         </then>
#                     </policy>
#                     <policy>
#                         <name>test_glob_2</name>
#                         <match>
#                             <source-address>any-ipv6</source-address>
#                             <destination-address>any-ipv6</destination-address>
#                             <application>any</application>
#                         </match>
#                         <then>
#                             <deny />
#                         </then>
#                     </policy>
#                 </global>
#             </policies>
#             <zones>
#                 <security-zone>
#                     <name>one</name>
#                     <interfaces>
#                         <name>ge-0/0/0.0</name>
#                     </interfaces>
#                 </security-zone>
#                 <security-zone>
#                     <name>two</name>
#                     <interfaces>
#                         <name>ge-0/0/1.0</name>
#                     </interfaces>
#                 </security-zone>
#                 <security-zone>
#                     <name>three</name>
#                     <interfaces>
#                         <name>ge-0/0/2.0</name>
#                     </interfaces>
#                 </security-zone>
#             </zones>
#             <gprs>
#                 <gtp>
#                     <profile>
#                         <name>gtp1</name>
#                     </profile>
#                 </gtp>
#             </gprs>
#         </security>
#         <interfaces>
#             <interface>
#                 <name>ge-0/0/0</name>
#                 <unit>
#                     <name>0</name>
#                     <family>
#                         <inet>
#                             <address>
#                                 <name>200.0.113.1/24</name>
#                             </address>
#                         </inet>
#                     </family>
#                 </unit>
#             </interface>
#             <interface>
#                 <name>ge-0/0/1</name>
#                 <unit>
#                     <name>0</name>
#                     <family>
#                         <inet>
#                             <address>
#                                 <name>201.0.113.1/24</name>
#                             </address>
#                         </inet>
#                     </family>
#                 </unit>
#             </interface>
#             <interface>
#                 <name>ge-0/0/2</name>
#                 <unit>
#                     <name>0</name>
#                     <family>
#                         <inet>
#                             <address>
#                                 <name>202.0.113.1/24</name>
#                             </address>
#                         </inet>
#                     </family>
#                 </unit>
#             </interface>
#             <interface>
#                 <name>fxp0</name>
#                 <unit>
#                     <name>0</name>
#                     <family>
#                         <inet>
#                             <dhcp></dhcp>
#                         </inet>
#                     </family>
#                 </unit>
#             </interface>
#         </interfaces>
#         <class-of-service>
#             <application-traffic-control>
#                 <rule-sets>
#                     <name>test_traffic_control</name>
#                     <rule>
#                         <name>test_rule</name>
#                         <match>
#                             <application-known />
#                         </match>
#                         <then>
#                             <log />
#                         </then>
#                     </rule>
#                 </rule-sets>
#             </application-traffic-control>
#         </class-of-service>
#         <access>
#             <profile>
#                 <name>WEBAUTH</name>
#                 <client>
#                     <name>FWClient1</name>
#                     <firewall-user>
#                         <password>$9$kq5Ftu1cSe</password>
#                     </firewall-user>
#                 </client>
#             </profile>
#             <firewall-authentication>
#                 <web-authentication>
#                     <default-profile>WEBAUTH</default-profile>
#                 </web-authentication>
#             </firewall-authentication>
#         </access>
#     </configuration>
#     <database-status-information></database-status-information>
# </rpc-reply>
#
- name: Parse NTP global running config
  junipernetworks.junos.junos_security_policies:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#   "parsed": {
#     "from_zones": [
#       {
#         "name": "one",
#         "to_zones": [
#           {
#             "name": "two",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "names": [
#                       "junos-dhcp-relay",
#                       "junos-finger"
#                     ]
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2",
#                       "a4"
#                     ]
#                   },
#                   "destination_address_excluded": true,
#                   "dynamic_application": {
#                     "names": [
#                       "any"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1",
#                       "a3"
#                     ]
#                   },
#                   "source_address_excluded": true,
#                   "source_end_user_profile": "test_end_user_profile",
#                   "source_identity": {
#                     "unknown_user": true
#                   },
#                   "url_category": {
#                     "names": [
#                       "Enhanced_Web_Chat"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_1",
#                 "then": {
#                   "count": true,
#                   "deny": true,
#                   "log": "session-close"
#                 }
#               },
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "any_ipv6": true
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_2",
#                 "then": {
#                   "reject": {
#                     "enable": true,
#                     "profile": "test_dyn_app",
#                     "ssl_proxy": {
#                       "enable": true,
#                       "profile_name": "SECURITY-SSL-PROXY"
#                     }
#                   }
#                 }
#               }
#             ]
#           },
#           {
#             "name": "three",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_3",
#                 "then": {
#                   "permit": {
#                     "application_services": {
#                       "application_traffic_control_rule_set": "test_traffic_control",
#                       "gprs_gtp_profile": "gtp1",
#                       "icap_redirect": "test_icap",
#                       "reverse_redirect_wx": "True",
#                       "uac_policy": {
#                         "enable": true
#                       }
#                     },
#                     "firewall_authentication": {
#                       "push_to_identity_management": true,
#                       "web_authentication": [
#                         "FWClient1"
#                       ]
#                     },
#                     "tcp_options": {
#                       "initial_tcp_mss": 64,
#                       "window_scale": true
#                     }
#                   }
#                 }
#               }
#             ]
#           }
#         ]
#       }
#     ],
#     "global": {
#       "policies": [
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_1",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_2",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   }


# Using gathered
#
# Before state
# ------------
#
# vagrant@vsrx> show security policies
# Default policy: deny-all
# Pre ID default policy: permit-all
# From zone: one, To zone: two
# Policy: test_policy_1, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1
# Source addresses(excluded): a1, a3
# Destination addresses(excluded): a2, a4
# Source-end-user-profile: test_end_user_profile(1)
# Applications: junos-dhcp-relay, junos-finger
# Dynamic Applications: any
# Url-category: Enhanced_Web_Chat
# Source identities: authenticated-user, unknown-user
# Action: deny, log, count
# Policy: test_policy_2, State: enabled, Index: 5, Scope Policy: 0, Sequence number: 2
# Source addresses: a1
# Destination addresses: any-ipv6
# Applications: any
# Action: reject
# dynapp-redir-profile: test_dyn_app(1)
# From zone: one, To zone: three
# Policy: test_policy_3, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 1
# Source addresses: a1
# Destination addresses: a2
# Applications: any
# Action: permit, drop-untranslated, firewall authentication, application services, unified access control
# Application traffic control: test_traffic_control
# Global policies:
# Policy: test_glob_1, State: enabled, Index: 7, Scope Policy: 0, Sequence number: 1
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
# Policy: test_glob_2, State: enabled, Index: 8, Scope Policy: 0, Sequence number: 2
# From zones: any
# To zones: any
# Source addresses: any-ipv6
# Destination addresses: any-ipv6
# Applications: any
# Action: deny
#
- junipernetworks.junos.junos_security_policies:
    state: gathered
#
# -------------------------
# Module Execution Result
# -------------------------
#
#   "changed": false,
#   "gathered": {
#     "from_zones": [
#       {
#         "name": "one",
#         "to_zones": [
#           {
#             "name": "two",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "names": [
#                       "junos-dhcp-relay",
#                       "junos-finger"
#                     ]
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2",
#                       "a4"
#                     ]
#                   },
#                   "destination_address_excluded": true,
#                   "dynamic_application": {
#                     "names": [
#                       "any"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1",
#                       "a3"
#                     ]
#                   },
#                   "source_address_excluded": true,
#                   "source_end_user_profile": "test_end_user_profile",
#                   "source_identity": {
#                     "unknown_user": true
#                   },
#                   "url_category": {
#                     "names": [
#                       "Enhanced_Web_Chat"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_1",
#                 "then": {
#                   "count": true,
#                   "deny": true,
#                   "log": "session-close"
#                 }
#               },
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "any_ipv6": true
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_2",
#                 "then": {
#                   "reject": {
#                     "enable": true,
#                     "profile": "test_dyn_app",
#                     "ssl_proxy": {
#                       "enable": true,
#                       "profile_name": "SECURITY-SSL-PROXY"
#                     }
#                   }
#                 }
#               }
#             ]
#           },
#           {
#             "name": "three",
#             "policies": [
#               {
#                 "match": {
#                   "application": {
#                     "any": true
#                   },
#                   "destination_address": {
#                     "addresses": [
#                       "a2"
#                     ]
#                   },
#                   "source_address": {
#                     "addresses": [
#                       "a1"
#                     ]
#                   }
#                 },
#                 "name": "test_policy_3",
#                 "then": {
#                   "permit": {
#                     "application_services": {
#                       "application_traffic_control_rule_set": "test_traffic_control",
#                       "gprs_gtp_profile": "gtp1",
#                       "icap_redirect": "test_icap",
#                       "reverse_redirect_wx": "True",
#                       "uac_policy": {
#                         "enable": true
#                       }
#                     },
#                     "firewall_authentication": {
#                       "push_to_identity_management": true,
#                       "web_authentication": [
#                         "FWClient1"
#                       ]
#                     },
#                     "tcp_options": {
#                       "initial_tcp_mss": 64,
#                       "window_scale": true
#                     }
#                   }
#                 }
#               }
#             ]
#           }
#         ]
#       }
#     ],
#     "global": {
#       "policies": [
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_1",
#           "then": {
#             "deny": true
#           }
#         },
#         {
#           "match": {
#             "application": {
#               "any": true
#             },
#             "destination_address": {
#               "any_ipv6": true
#             },
#             "source_address": {
#               "any_ipv6": true
#             }
#           },
#           "name": "test_glob_2",
#           "then": {
#             "deny": true
#           }
#         }
#       ]
#     }
#   }
# }


# Using rendered
#
# Before state
# ------------
#
- junipernetworks.junos.junos_security_policies:
    config:
      global:
        policies:
          - description: test update
            match:
              application:
                any: true
              destination_address:
                any_ipv6: true
              source_address:
                any: true
            name: test_glob_3
            then:
              deny: true
    state: rendered
#
# -------------------------
# Module Execution Result
# -------------------------
#     "rendered": "<nc:security
#                 xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#                 <nc:policies>
#                   <nc:global>
#                     <nc:policy>
#                       <nc:name>test_glob_3</nc:name>
#                       <nc:description>test update</nc:description>
#                       <nc:match>
#                         <nc:source-address>any</nc:source-address>
#                         <nc:destination-address>any-ipv6</nc:destination-address>
#                         <nc:application>any</nc:application>
#                       </nc:match>
#                       <nc:then>
#                         <nc:deny/>
#                       </nc:then>
#                     </nc:policy>
#                   </nc:global>
#                 </nc:policies>
#               </nc:security>"

Значения возврата

Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

after

словарь

Результат конфигурации после выполнения модуля.

Возвращается: при изменении

Пример: "This output will always be in the same format as the module argspec.\n"

before

словарь

Конфигурация до выполнения модуля.

Возвращается: когда состояние — merged, replaced, overridden или deleted

Пример: "This output will always be in the same format as the module argspec.\n"

commands

список / элементы=строка

Набор команд, отправленных на удалённое устройство.

Возвращается: когда состояние — merged, replaced, overridden или deleted

Пример: ["<rpc-reply> <configuration> <security> <policies> <global> <policy> <name>test_glob_1</name> <match> <source-address>any-ipv6</source-address> <destination-address>any-ipv6</destination-address> <application>any</application> </match> <then> <deny /> </then> </policy> </global> </policies> </security> </configuration> </rpc-reply>"]

gathered

словарь

Факты о сетевом ресурсе, собранные с удалённого устройства в виде структурированных данных.

Возвращается: при состоянии gathered

Пример: "This output will always be in the same format as the module argspec.\n"

parsed

словарь

Родная конфигурация устройства, предоставленная в параметре running_config, разобранная в структурированные данные в соответствии со спецификацией аргументов модуля.

Возвращается: при состоянии parsed

Пример: "This output will always be in the same format as the module argspec.\n"

rendered

словарь

Предоставленная конфигурация в задании, преобразованная в родной формат устройства (оффлайн).

Возвращается: при состоянии rendered

Пример: ["<rpc-reply> <configuration> <security> <policies> <global> <policy> <name>test_glob_1</name> <match> <source-address>any-ipv6</source-address> <destination-address>any-ipv6</destination-address> <application>any</application> </match> <then> <deny /> </then> </policy> </global> </policies> </security> </configuration> </rpc-reply>"]

Авторы

  • Pranav Bhatt (@pranav-bhatt)

Ссылки на сборку

  • Трекер задач
  • Репозиторий (источники)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/junipernetworks/junos/junos_security_policies_module.html

Spec-Zone.ru

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