paloaltonetworks.spatula

espátula

Este rol de Ansible aplica plantillas de mejores prácticas de seguridad a dispositivos de Palo Alto Networks.

Propósito

Este rol utiliza las plantillas de mejores prácticas de Iron Skillet para asegurar que los cortafuegos PAN-OS estén configurados de acuerdo con las recomendaciones de mejores prácticas de Palo Alto Networks. Estas plantillas se descargan del siguiente repositorio de GitHub cuando se ejecuta el playbook y se aplican a cada dispositivo o a una consola de gestión Panorama.

Se puede realizar una Evaluación de Mejores Prácticas después de aplicar estas plantillas para medir la efectividad de la configuración resultante.

Requisitos

Este rol utiliza las bibliotecas de Python que se enumeran a continuación. Todas están disponibles a través de PyPI y se pueden instalar utilizando el instalador pip. Se recomienda el uso de virtualenv para evitar conflictos con las bibliotecas del sistema.

  • pandevice - Marco para interactuar con dispositivos de Palo Alto Networks a través de la API
  • pan-python - Conjunto de herramientas para Palo Alto Networks PAN-OS, Panorama, WildFire y AutoFocus
  • xmltodict - Convertir entre cadenas XML y diccionarios de Python
  • passlib - Marco comprensivo de hashing de contraseñas que soporta más de 30 esquemas

Variables del Rol

Las variables utilizadas en este rol se enumeran en la tabla a continuación, junto con sus valores predeterminados (ver defaults/main.yml). Las variables en minúsculas son variables del playbook, mientras que las variables MAYÚSCULAS se utilizan para la sustitución de variables Jinja2 en las plantillas de configuración. Algunas variables están marcadas como solo para Panorama, mientras que otras son aplicables tanto a Panorama como a los cortafuegos.

Variable Tipo Predeterminado Panorama Panos Descripción
device_type panorama,panos panorama x x Configuración de Panorama o cortafuegos
template_version panos_v9.0,panos_v8.1,panos_v8.0 panos_v9.0 x x Versión de la plantilla
CONFIG_PANORAMA_IP yes,no yes x Configuración de la interfaz de gestión de Panorama
PANORAMA_TYPE static,cloud static x Tipo de IP de gestión de Panorama
PANORAMA_NAME cadena panorama01 x Nombre del host de Panorama
PANORAMA_IP cadena 192.168.55.7 x IP de Panorama
PANORAMA_MASK cadena 255.255.255.0 x Máscara de red de Panorama
PANORAMA_DG cadena 192.168.55.2 x Puerta de enlace predeterminada de Panorama
CONFIG_EXPORT_IP cadena 192.0.2.3 x Dirección IP para exportaciones programadas de configuración
STACK cadena sample_stack x Stack de plantilla para Panorama
DEVICE_GROUP cadena sample_devicegroup x Nombre del grupo de dispositivos para Panorama
FW_NAME cadena panos-01 x x Nombre del host del cortafuegos
MGMT_TYPE dhcp-client,static dhcp-client x x Tipo de IP de gestión del cortafuegos
MGMT_IP cadena 192.0.2.6 x x IP de gestión del cortafuegos
MGMT_MASK cadena 255.255.255.0 x x Máscara de red de gestión del cortafuegos
MGMT_DG cadena 192.0.2.7 x x Puerta de enlace predeterminada de gestión del cortafuegos
NTP_1 cadena 0.pool.ntp.org x x Servidor de Protocolo de Tiempo de Red
NTP_2 cadena 1.pool.ntp.org x x Servidor de Protocolo de Tiempo de Red 2
ADMINISTRATOR_USERNAME cadena admin x x Nombre de usuario administrador
ADMINISTRATOR_PASSWORD contraseña admin x x Contraseña de administrador
DNS_1 cadena 8.8.8.8 x x Servidor DNS primario
DNS_2 cadena 8.8.4.4 x x Servidor DNS secundario
SINKHOLE_IPV4 cadena 72.5.65.111 x x Dirección de sinkhole IPv4
SINKHOLE_IPV6 cadena 2600:5200::1 x x Dirección de sinkhole IPv6
INTERNET_ZONE cadena untrust x x Zona de confianza baja que se filtrará en los informes
EMAIL_PROFILE_GATEWAY cadena 192.0.2.1 x x Dirección del gateway de correo para alertas críticas
EMAIL_PROFILE_FROM cadena sentfrom@yourdomain.com x x Dirección de origen en alertas por correo
EMAIL_PROFILE_TO cadena sendto@yourdomain.com x x Dirección de destino en alertas por correo
SYSLOG_SERVER cadena 192.0.2.2 x x Dirección IP del servidor Syslog
API_KEY_LIFETIME cadena 525600 x x Tiempo de vida de la clave API en minutos
INCLUDE_PAN_EDL yes,no yes x x Incluir las reglas de seguridad de listas externas predefinidas de Palo Alto Networks

Dependencias

Este rol depende de los módulos oficiales de Ansible de Palo Alto Networks, que se contienen en el siguiente rol de Galaxy:

Los módulos de Ansible de Palo Alto Networks utilizan un dict proveedor para pasar el inventario y las credenciales de autenticación. Este dict puede definirse una vez en el playbook con valores para las variables ip_address, username, y password pasadas a través de cualquier método soportado.

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

Ejemplos de Playbooks

Los siguientes son ejemplos de playbooks de Ansible que utilizan este rol para aplicar plantillas de mejores prácticas de seguridad a Panorama y a un cortafuegos:

Panorama:

---
- name: Preparar Panorama con plantillas de mejores prácticas para 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

Cortafuegos:

---
- name: Preparar el cortafuegos con plantillas de mejores prácticas para 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

Licencia

Apache 2.0

Información del Autor

Rol creado por Robert Hagen (@stealthllama).

Acerca del proyecto

Applies security best practice templates to Palo Alto Networks devices

Instalar
ansible-galaxy install paloaltonetworks.spatula
Licencia
apache-2.0
Descargas
4.5k
Propietario
We ensure each day is safer and more secure than the one before.