paloaltonetworks.spatula

spatule

Ce rôle Ansible applique des modèles de meilleures pratiques de sécurité aux appareils de Palo Alto Networks.

But

Ce rôle utilise les modèles de meilleures pratiques Iron Skillet pour s'assurer que les pare-feu PAN-OS sont configurés conformément aux recommandations de meilleures pratiques de Palo Alto Networks. Ces modèles sont téléchargés depuis le dépôt GitHub suivant lors de l'exécution du playbook et appliqués à chaque appareil ou à une console de gestion Panorama.

Une évaluation des meilleures pratiques peut être effectuée après l'application de ces modèles pour évaluer l'efficacité de la configuration résultante.

Exigences

Ce rôle utilise les bibliothèques Python énumérées ci-dessous. Toutes sont disponibles via PyPI et peuvent être installées en utilisant l'installateur pip. L'utilisation de virtualenv est recommandée pour éviter les conflits de bibliothèques système.

  • pandevice - Cadre pour interagir avec les appareils de Palo Alto Networks via API
  • pan-python - Ensemble d'outils pour Palo Alto Networks PAN-OS, Panorama, WildFire et AutoFocus
  • xmltodict - Convertir entre une chaîne XML et un dictionnaire Python
  • passlib - Cadre complet pour le hachage de mots de passe supportant plus de 30 schémas

Variables du rôle

Les variables utilisées dans ce rôle sont listées dans le tableau ci-dessous avec leurs valeurs par défaut (voir defaults/main.yml). Les variables en minuscules sont des variables de playbook tandis que les variables EN MAJUSCULE sont utilisées pour la substitution de variables Jinja2 dans les modèles de configuration. Certaines variables sont marquées comme étant réservées à Panorama, tandis que d'autres sont applicables aux deux : Panorama et pare-feux.

Variable Type Par défaut Panorama Panos Description
device_type panorama,panos panorama x x Configuration de Panorama ou du pare-feu
template_version panos_v9.0,panos_v8.1,panos_v8.0 panos_v9.0 x x Version du modèle
CONFIG_PANORAMA_IP oui,non oui x Configuration de l'interface de gestion Panorama
PANORAMA_TYPE statique,cloud statique x Type d'IP de gestion Panorama
PANORAMA_NAME chaîne panorama01 x Nom d'hôte de Panorama
PANORAMA_IP chaîne 192.168.55.7 x IP de Panorama
PANORAMA_MASK chaîne 255.255.255.0 x Masque de sous-réseau de Panorama
PANORAMA_DG chaîne 192.168.55.2 x Passerelle par défaut de Panorama
CONFIG_EXPORT_IP chaîne 192.0.2.3 x Adresse IP pour les exportations de configuration programmées
STACK chaîne sample_stack x Empilement de modèles pour Panorama
DEVICE_GROUP chaîne sample_devicegroup x Nom du groupe d'appareils pour Panorama
FW_NAME chaîne panos-01 x x Nom d'hôte du pare-feu
MGMT_TYPE client-dhcp,statique client-dhcp x x Type d'IP de gestion du pare-feu
MGMT_IP chaîne 192.0.2.6 x x IP de gestion du pare-feu
MGMT_MASK chaîne 255.255.255.0 x x Masque de sous-réseau de gestion du pare-feu
MGMT_DG chaîne 192.0.2.7 x x Passerelle par défaut de gestion du pare-feu
NTP_1 chaîne 0.pool.ntp.org x x Serveur NTP
NTP_2 chaîne 1.pool.ntp.org x x Serveur NTP 2
ADMINISTRATOR_USERNAME chaîne admin x x Nom d'utilisateur admin
ADMINISTRATOR_PASSWORD mot de passe admin x x Mot de passe admin
DNS_1 chaîne 8.8.8.8 x x Serveur DNS principal
DNS_2 chaîne 8.8.4.4 x x Serveur DNS secondaire
SINKHOLE_IPV4 chaîne 72.5.65.111 x x Adresse sinkhole IPv4
SINKHOLE_IPV6 chaîne 2600:5200::1 x x Adresse sinkhole IPv6
INTERNET_ZONE chaîne untrust x x Zone non fiable à filtrer dans les rapports
EMAIL_PROFILE_GATEWAY chaîne 192.0.2.1 x x Adresse de la passerelle email pour les alertes critiques
EMAIL_PROFILE_FROM chaîne sentfrom@votredomaine.com x x Adresse de l'expéditeur dans les alertes email
EMAIL_PROFILE_TO chaîne sendto@votredomaine.com x x Adresse du destinataire dans les alertes email
SYSLOG_SERVER chaîne 192.0.2.2 x x Adresse IP du serveur Syslog
API_KEY_LIFETIME chaîne 525600 x x Durée de vie de la clé API en minutes
INCLUDE_PAN_EDL oui,non oui x x Inclure les règles de sécurité des listes externes préétablies de Palo Alto Networks

Dépendances

Ce rôle dépend des modules Ansible officiels de Palo Alto Networks, qui sont contenus dans le rôle Galaxy suivant :

Les modules Ansible de Palo Alto Networks utilisent un dict pour passer l'inventaire et les informations d'identification d'authentification. Ce dict peut être défini une fois dans le playbook avec des valeurs pour les variables ip_address, username et password passées via n'importe quelle méthode prise en charge.

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

Exemples de Playbooks

Voici des exemples de playbooks Ansible qui utilisent ce rôle pour appliquer des modèles de meilleures pratiques de sécurité à Panorama et à un pare-feu :

Panorama :

---
- name: Configurer Panorama avec des modèles de meilleures pratiques pour 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

Pare-feu :

---
- name: Configurer le pare-feu avec des modèles de meilleures pratiques pour 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

Licence

Apache 2.0

Informations sur l'auteur

Rôle créé par Robert Hagen (@stealthllama).

À propos du projet

Applies security best practice templates to Palo Alto Networks devices

Installer
ansible-galaxy install paloaltonetworks.spatula
Licence
apache-2.0
Téléchargements
4.5k
Propriétaire
We ensure each day is safer and more secure than the one before.