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).
Applies security best practice templates to Palo Alto Networks devices
ansible-galaxy install paloaltonetworks.spatula