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_addressusername、および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)によって作成されました。

プロジェクトについて

Applies security best practice templates to Palo Alto Networks devices

インストール
ansible-galaxy install paloaltonetworks.spatula
ライセンス
apache-2.0
ダウンロード
4.5k
所有者
We ensure each day is safer and more secure than the one before.