spatula

Спатула

Эта роль Ansible применяет шаблоны лучших практик безопасности к устройствам Palo Alto Networks.

Цель

Эта роль использует лучшие практические шаблоны Iron Skillet для обеспечения конфигурации брандмауэров PAN-OS в соответствии с рекомендациями лучших практик Palo Alto Networks. Эти шаблоны загружаются из следующего репозитория на GitHub при выполнении плейбука и применяются к каждому устройству или к консоли управления Panorama.

После применения этих шаблонов может быть проведена оценка лучших практик, чтобы оценить эффективность полученной конфигурации.

Требования

Эта роль использует библиотеки Python, указанные ниже. Все они доступны через PyPI и могут быть установлены с помощью установщика pip. Рекомендуется использовать virtualenv, чтобы избежать конфликтов с системными библиотеками.

  • pandevice - Фреймворк для взаимодействия с устройствами Palo Alto Networks через API.
  • pan-python - Многофункциональный набор инструментов для Palo Alto Networks PAN-OS, Panorama, WildFire и AutoFocus.
  • xmltodict - Преобразование между XML строкой и Python dict.
  • passlib - Всесторонний фреймворк для хеширования паролей, поддерживающий более 30 схем.

Переменные роли

Переменные, используемые в этой роли, перечислены в таблице ниже с их значениями по умолчанию (см. defaults/main.yml). Переменные в строчном регистре являются переменными плейбука, тогда как переменные В_ВЕРХНЕМ_РЕГИСТРЕ используются для подстановки переменных Jinja2 в конфигурационных шаблонах. Некоторые переменные помечены как только для Panorama, в то время как другие применимы как для Panorama, так и для брандмауэров.

Переменная Тип Значение по умолчанию Panorama Panos Описание
device_type panorama,panos panorama x x Конфигурация Panorama или брандмауэра
template_version panos_v9.0,panos_v8.1,panos_v8.0 panos_v9.0 x x Версия шаблона
CONFIG_PANORAMA_IP yes,no yes x Конфигурация интерфейса управления Panorama
PANORAMA_TYPE static,cloud static x Тип IP-адреса управления Panorama
PANORAMA_NAME строка panorama01 x Имя хоста Panorama
PANORAMA_IP строка 192.168.55.7 x IP-адрес Panorama
PANORAMA_MASK строка 255.255.255.0 x Маска сети Panorama
PANORAMA_DG строка 192.168.55.2 x Шлюз по умолчанию Panorama
CONFIG_EXPORT_IP строка 192.0.2.3 x IP-адрес для запланированного экспорта конфигураций
STACK строка sample_stack x Шаблон стека для Panorama
DEVICE_GROUP строка sample_devicegroup x Имя группы устройств для Panorama
FW_NAME строка panos-01 x x Имя хоста брандмауэра
MGMT_TYPE dhcp-client,static dhcp-client x x Тип IP-адреса управления брандмауэра
MGMT_IP строка 192.0.2.6 x x IP-адрес управления брандмауэром
MGMT_MASK строка 255.255.255.0 x x Маска сети управления брандмауэром
MGMT_DG строка 192.0.2.7 x x Шлюз по умолчанию управления брандмауэром
NTP_1 строка 0.pool.ntp.org x x Сервер сетевого времени
NTP_2 строка 1.pool.ntp.org x x Сервер сетевого времени 2
ADMINISTRATOR_USERNAME строка admin x x Имя пользователя администратора
ADMINISTRATOR_PASSWORD пароль admin x x Пароль администратора
DNS_1 строка 8.8.8.8 x x Основной DNS сервер
DNS_2 строка 8.8.4.4 x x Вторичный DNS сервер
SINKHOLE_IPV4 строка 72.5.65.111 x x Адрес Sinkhole IPv4
SINKHOLE_IPV6 строка 2600:5200::1 x x Адрес Sinkhole IPv6
INTERNET_ZONE строка untrust x x Зона недоверия для фильтрации в отчетах
EMAIL_PROFILE_GATEWAY строка 192.0.2.1 x x Адрес шлюза электронной почты для критических уведомлений
EMAIL_PROFILE_FROM строка sentfrom@yourdomain.com x x Адрес отправителя в электронных уведомлениях
EMAIL_PROFILE_TO строка sendto@yourdomain.com x x Адрес получателя в электронных уведомлениях
SYSLOG_SERVER строка 192.0.2.2 x x IP-адрес сервера Syslog
API_KEY_LIFETIME строка 525600 x x Срок действия ключа API в минутах
INCLUDE_PAN_EDL yes,no yes x x Включить предопределенные правила безопасности внешних списков Palo Alto Networks

Зависимости

Эта роль зависит от официальных модулей Ansible для Palo Alto Networks, которые содержатся в следующей роли Galaxy:

Модули Ansible Palo Alto Networks используют dict для передачи учетных данных инвентаря и аутентификации. Этот dict может быть определен один раз в плейбуке с переданными значениями переменных ip_address, username и password любым поддерживаемым способом.

vars:
  credentials:
    ip_address: '{{ ip_address }}'
    username: '{{ username }}'
    password: '{{ password }}'

Примеры плейбуков

Ниже приведены примеры плейбуков Ansible, которые используют эту роль для применения шаблонов лучших практик безопасности к Panorama и брандмауэру:

Panorama:

---
- name: Настроить Panorama с шаблонами лучших практик для PAN-OS 9.0
  hosts: all
  connection: local
  gather_facts: False

  vars:
    credentials:
      ip_address: '{{ ip_address }}'
      username: '{{ username }}'
      password: '{{ password }}'
    device_type: 'panorama'
    template_version: 'panos_v9.0'
  vars_files:
    - panorama_vars.yml
      
  roles:
    - role: PaloAltoNetworks.spatula

Брандмауэр:

---
- name: Настроить брандмауэр с шаблонами лучших практик для PAN-OS 8.1
  hosts: all
  connection: local
  gather_facts: False

  vars:
    credentials:
      ip_address: '{{ ip_address }}'
      username: '{{ admin }}'
      password: '{{ password }}'
    device_type: 'panos'
    template_version: 'panos_v8.1'
  vars_files:
    - fw_vars.yml
      
  roles:
    - role: PaloAltoNetworks.spatula

Лицензия

Apache 2.0

Информация об авторе

Роль создана Робертом Хагеном (@stealthllama).

О проекте

Applies security best practice templates to Palo Alto Networks devices

Установить
ansible-galaxy install PaloAltoNetworks/ansible-role-spatula
Лицензия
apache-2.0
Загрузки
4469
Владелец
We ensure each day is safer and more secure than the one before.