paloaltonetworks.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 | Panorama管理IPタイプ | |
PANORAMA_NAME | 文字列 | panorama01 | x | Panoramaホスト名 | |
PANORAMA_IP | 文字列 | 192.168.55.7 | x | Panorama IP | |
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 | シンクホールアドレスIPv4 |
SINKHOLE_IPV6 | 文字列 | 2600:5200::1 | x | x | シンクホールアドレス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 | SyslogサーバーIPアドレス |
API_KEY_LIFETIME | 文字列 | 525600 | x | x | APIキーの有効期限(分単位) |
INCLUDE_PAN_EDL | yes,no | yes | x | x | 定義済みのPalo Alto Networks外部リストのセキュリティルールを含める |
依存関係
このロールは、次のGalaxyロールに含まれる公式のPalo Alto Networks Ansibleモジュールに依存しています。
Palo Alto Networks Ansibleモジュールは、インベントリと認証情報を渡すためにdict
を利用します。このdict
は、プレイブック内で一度定義され、ip_address
、username
、およびpassword
の各変数の値が、サポートされている任意の方法で渡されます。
vars:
credentials:
ip_address: '{{ ip_address }}'
username: '{{ username }}'
password: '{{ password }}'
サンプルプレイブック
以下は、このロールを利用してPanoramaやファイアウォールにセキュリティのベストプラクティステンプレートを適用するAnsibleプレイブックの例です。
Panorama:
---
- name: PAN-OS 9.0用のベストプラクティステンプレートでPanoramaを準備する
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
著者情報
このロールはRobert Hagen(@stealthllama)によって作成されました。
ansible-galaxy install paloaltonetworks.spatula