paloaltonetworks.spatula
spatula
Rola Ansible zastosowuje szablony najlepszych praktyk zabezpieczeń do urządzeń Palo Alto Networks.
Cel
Celem tej roli jest wykorzystanie najlepszych praktyk zawartych w Iron Skillet do zapewnienia, że zapory PAN-OS są skonfigurowane zgodnie z zaleceniami najlepszych praktyk firmy Palo Alto Networks. Szablony te są pobierane z poniższego repozytorium GitHub podczas wykonywania playbooka i stosowane do każdego urządzenia lub konsoli zarządzającej Panorama.
Po zastosowaniu tych szablonów można przeprowadzić Oceny Najlepszych Praktyk, aby ocenić skuteczność otrzymanej konfiguracji.
Wymagania
Ta rola wykorzystuje poniżej wymienione biblioteki Pythona. Wszystkie są dostępne przez PyPI i mogą być zainstalowane za pomocą instalatora pip
. Zaleca się korzystanie z virtualenv
, aby uniknąć konfliktów z bibliotekami w systemie.
- pandevice - Framework do interakcji z urządzeniami Palo Alto Networks za pośrednictwem API
- pan-python - Zestaw narzędzi do Palo Alto Networks PAN-OS, Panorama, WildFire i AutoFocus
- xmltodict - Konwertowanie między łańcuchem XML a słownikiem Pythona
- passlib - Wszechstronny framework do haszowania haseł, wspierający ponad 30 schematów
Zmienne roli
Zmienne używane w tej roli są wymienione w tabeli poniżej, wraz z wartościami domyślnymi (patrz defaults/main.yml). Zmienne w małych literach to zmienne playbooka, podczas gdy zmienne DUŻYMI LITERAMI są używane do podstawienia zmiennych Jinja2 w szablonach konfiguracyjnych. Niektóre zmienne są oznaczone jako tylko dla Panorama, inne są stosowane zarówno dla Panorama, jak i zapór.
Zmienna | Typ | Domyślna | Panorama | Panos | Opis |
---|---|---|---|---|---|
device_type | panorama,panos | panorama | x | x | Konfiguracja Panorama lub zapory |
template_version | panos_v9.0,panos_v8.1,panos_v8.0 | panos_v9.0 | x | x | Wersja szablonu |
CONFIG_PANORAMA_IP | tak,nie | tak | x | Konfiguracja interfejsu zarządzania Panorama | |
PANORAMA_TYPE | stałe,chmurowe | stałe | x | Typ IP zarządzania Panorama | |
PANORAMA_NAME | tekst | panorama01 | x | Nazwa hosta Panorama | |
PANORAMA_IP | tekst | 192.168.55.7 | x | Adres IP Panorama | |
PANORAMA_MASK | tekst | 255.255.255.0 | x | Maska podsieci Panorama | |
PANORAMA_DG | tekst | 192.168.55.2 | x | Domyślny brama Panorama | |
CONFIG_EXPORT_IP | tekst | 192.0.2.3 | x | Adres IP do eksportu konfiguracji w harmonogramie | |
STACK | tekst | sample_stack | x | Szablon stosu dla Panorama | |
DEVICE_GROUP | tekst | sample_devicegroup | x | Nazwa grupy urządzeń dla Panorama | |
FW_NAME | tekst | panos-01 | x | x | Nazwa hosta zapory |
MGMT_TYPE | dhcp-client,stałe | dhcp-client | x | x | Typ IP zarządzania zapory |
MGMT_IP | tekst | 192.0.2.6 | x | x | Adres IP zarządzania zapory |
MGMT_MASK | tekst | 255.255.255.0 | x | x | Maska podsieci zarządzania zapory |
MGMT_DG | tekst | 192.0.2.7 | x | x | Domyślny brama zarządzania zapory |
NTP_1 | tekst | 0.pool.ntp.org | x | x | Serwer protokołu czasu sieciowego |
NTP_2 | tekst | 1.pool.ntp.org | x | x | Serwer protokołu czasu sieciowego 2 |
ADMINISTRATOR_USERNAME | tekst | admin | x | x | Nazwa użytkownika administratora |
ADMINISTRATOR_PASSWORD | hasło | admin | x | x | Hasło administratora |
DNS_1 | tekst | 8.8.8.8 | x | x | Serwer DNS główny |
DNS_2 | tekst | 8.8.4.4 | x | x | Serwer DNS zapasowy |
SINKHOLE_IPV4 | tekst | 72.5.65.111 | x | x | Adres sinkhole IPv4 |
SINKHOLE_IPV6 | tekst | 2600:5200::1 | x | x | Adres sinkhole IPv6 |
INTERNET_ZONE | tekst | untrust | x | x | Strefa Untrust do filtrowania w raportach |
EMAIL_PROFILE_GATEWAY | tekst | 192.0.2.1 | x | x | Adres bramy e-mail do krytycznych alertów |
EMAIL_PROFILE_FROM | tekst | sentfrom@yourdomain.com | x | x | Adres nadawcy w alertach e-mail |
EMAIL_PROFILE_TO | tekst | sendto@yourdomain.com | x | x | Adres odbiorcy w alertach e-mail |
SYSLOG_SERVER | tekst | 192.0.2.2 | x | x | Adres IP serwera Syslog |
API_KEY_LIFETIME | tekst | 525600 | x | x | Czas życia klucza API w minutach |
INCLUDE_PAN_EDL | tak,nie | tak | x | x | Uwzględnij zdefiniowane przez Palo Alto Networks reguły zabezpieczeń zewnętrznych |
Zależności
Ta rola jest zależna od oficjalnych modułów Ansible firmy Palo Alto Networks, które są zawarte w następującej roli Galaxy:
Moduły Ansible firmy Palo Alto Networks wykorzystują słownik dict
do przekazywania danych inwentarza i poświadczeń uwierzytelniających. Ten dict
można zdefiniować raz w playbooku, z wartościami dla zmiennych ip_address
, username
oraz password
, przekazanymi w dowolny obsługiwany sposób.
vars:
credentials:
ip_address: '{{ ip_address }}'
username: '{{ username }}'
password: '{{ password }}'
Przykłady Playbooków
Poniżej znajdują się przykłady playbooków Ansible, które wykorzystują tę rolę do stosowania szablonów najlepszych praktyk zabezpieczeń do Panorama i zapory:
Panorama:
---
- name: Przykład Panorama z szablonami najlepszych praktyk dla 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
Zapora:
---
- name: Przykład zapory z szablonami najlepszych praktyk dla 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
Licencja
Apache 2.0
Informacje o autorze
Rola stworzona przez Roberta Hagena (@stealthllama).
ansible-galaxy install paloaltonetworks.spatula