Palo AltoのHA構成によるネットワークセキュリティ [東日本/西日本リージョン3向け]#
要求事項#
- セキュリティグループよりも強固なアクセス制御をしたい
- 許可されたアプリケーションだけを許可してポートを偽装する脅威から守りたい
- コンプライアンス準拠のため、高度なセキュリティサービス(IPSなど)をネットワークセグメント間に挿入したい
- ファイルに未知のマルウェアが含まれているか判定したい
- インターネットから未知のマルウェアが内部のシステムに侵入したことを検知する
- 検知した未知のマルウェアに対する対策を早期に適用する
対応するデザインパターン#
-
Wildfire機能によるサンドボックス環境にてマルウェア判定を行う
-
マルウェア判定をシグネチャ更新で行う
構造(イメージ図)#
WildFireの概要#
クラウドベースのサンドボックス
- 仮想サンドボックス環境でファイルを実行することで振る舞いベースでマルウェアを検知
-
ファイルのコピーをPAからクラウドサーバに送信
-
特定されたマルウェアに対するシグネチャを自動的に生成
-
シグネチャは世界中のファイアウォールに対して配信
-
マルウェアの活動に関するフォレンジックと分析を提供
- ターゲットとなったマシン上での動作
- マルウェアの伝染に用いられたアプリケーション
- マルウェアの配信に利用されているURLのリスト
実装サンプル#
1. 環境構築#
- 本手順ではFJCloud-Oのスタック機能を使用してパターン構成を一括作成します。
- IaaS APIを実行できる環境で実行してください。
- API内の共通パラメータの対応は以下の通りです。事前に設定の上コマンドを実行してください。
変数名 | 説明 |
---|---|
$ORCHESTRATION | オーケストレーションサービスのエンドポイント |
$TENANT_ID | 作業対象のテナントID |
$OS_AUTH_TOKEN | 認証トークン文字列 |
- コマンド実行前に下記のテンプレートファイルをダウンロードし、実行環境に展開してください。
仮想ネットワーク、仮想ルータ作成#
APIを使用し、仮想ネットワーク、仮想サブネット、仮想ルータを作成します。
- ※「 PARAMETER_PALOALTO-CDP-NETWORK.json 」ファイルの”fip_net”に構築環境のfip_netのIDを入力してください。
STACK_NAME=paloalto-CDP-network TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-NETWORK.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-NETWORK.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
Managementルータ用FW作成#
この例では以下のルールを設定します。
- ※要件に合わせ設定内容を変更してください。
No. | ファイアウォールルール名 | action | IPプロトコル | 接続元IPアドレス | 接続元使用ポート | 接続先IPアドレス | 接続先使用ポート |
---|---|---|---|---|---|---|---|
1 | firewall_ingress_rule_allow_vpncider | allow | tcp | 192.168.246.0/24※VPNのCIDER | any | 192.168.50.0/24 | any |
2 | firewall_ingress_rule_allow_vpnendpoint | allow | tcp | 0.0.0.0/0 | any | 192.168.90.5※VPNエンドポイント | 443 |
3 | firewall_egress_rule_allow_all | allow | any | 192.168.50.0/24 | any | any | any |
4 | firewall_rule_all_deny | allow | any | any | any | any | any |
以下のAPIを使用し、 Managementルータ用のFWスタックを作成します。
- ※実行前に「PARAMETER_paloalto-CDP-FW_MANAGEMENT.json」のrouter_idにmanagement-net-routerのIDを入力してください。
STACK_NAME=paloalto-CDP-management-fw TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-FW_MANAGEMENT.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-FW_MANAGEMENT.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
セキュリティグループ作成#
APIを使用し、セキュリティグループを作成します。
- 掲載しているテンプレートでは全許可の設定を行っています。設定内容は要件に合わせ適宜変更してください。
STACK_NAME=paloalto-CDP-security-group TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-SECURITY_GROUP.yaml TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}" } EOL
Virtual portスタックの作成#
APIを使用し、Palo Altoで使用するvirtual portを作成します。
STACK_NAME=paloalto-CDP-virtual-port TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-VIRTUAL_PORT.yaml TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}" } EOL
Palo Alto active仮想マシンの作成#
APIを使用し、Palo Alto active仮想マシンのスタックを作成します。
このスタックには以下のリソースが含まれます。
- Palo Alto仮想マシンにアタッチされるポート
- Palo Alto仮想マシンにアタッチされるボリューム
- Palo Alto仮想マシン
STACK_NAME=paloalto-CDP-palo-active TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-PaloaltoSERVER.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-PaloaltoSERVER-active.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
Palo Alto standby仮想マシンの作成#
APIを使用し、Palo Alto standby仮想マシンのスタックを作成します。
このスタックには以下のリソースが含まれます。
- Palo Alto仮想マシンにアタッチされるポート
- Palo Alto仮想マシンにアタッチされるボリューム
- Palo Alto仮想マシン
STACK_NAME=paloalto-CDP-palo-standby TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-PaloaltoSERVER.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-PaloaltoSERVER-standby.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
WEB サーバ仮想マシンの作成#
APIを使用し、WEBサーバ仮想マシンのスタックを作成します。
このスタックには以下のリソースが含まれます。
- WEBサーバ仮想マシンにアタッチされるポート
- WEBサーバ仮想マシンにアタッチされるボリューム
- WEBサーバ仮想マシン
また仮想マシンに対して以下の処理が自動で実行されます。
- デフォルトゲートウェイを192.168.50.1に設定
- rootパスワードの変更
※掲載しているテンプレートではデフォルトで"paloalto2021"に設定されます。 ※パスワード文字列を任意の文字列変更する場合、「PARAMETER_PALOALTO-CDP-WEBSERVER.json」内の"rootpassword"に対する値を変更してください。
- /etc/ssh/sshd_configの編集
- rootユーザのSSHログイン許可
-
パスワード認証の許可
-
yum updateの実行
- httpdパッケージのインストール
STACK_NAME=paloalto-CDP-webserver TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-WEBSERVER.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-WEBSERVER.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
DBサーバ仮想マシンの作成#
APIを使用し、DBサーバ仮想マシンのスタックを作成します。
このスタックには以下のリソースが含まれます。
- DBサーバ仮想マシンにアタッチされるポート
- DBサーバ仮想マシンにアタッチされるボリューム
- DBサーバ仮想マシン
また仮想マシンに対して以下の処理が自動で実行されます。
- デフォルトゲートウェイを192.168.50.1に設定
- rootパスワードの変更
※掲載しているテンプレートではデフォルトで"paloalto2021"に設定されます。 ※パスワード文字列を任意の文字列変更する場合、「PARAMETER_PALOALTO-CDP-DBSERVER.json」内の"rootpassword"に対する値を変更してください。
- /etc/ssh/sshd_configの編集
- rootユーザのSSHログイン許可
-
パスワード認証の許可
-
yum updateの実行
- postgresql13-serverパッケージのインストール
STACK_NAME=paloalto-CDP-DBserver TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-DBSERVER.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-DBSERVER.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
Ansibleサーバ仮想マシンの作成#
APIを使用し、Ansibleサーバ仮想マシンのスタックを作成します。
このスタックには以下のリソースが含まれます。
- Ansibleサーバ仮想マシンにアタッチされるポート
- Ansibleサーバ仮想マシンにアタッチされるボリューム
- Ansibleサーバ仮想マシン
また仮想マシンに対して以下の処理が自動で実行されます。
- rootパスワードの変更
※掲載しているテンプレートではデフォルトで"paloalto2021"に設定されます。 ※パスワード文字列を任意の文字列変更する場合、「PARAMETER_PALOALTO-CDP-AnsibleSERVER.json」内の"rootpassword"に対する値を変更してください。
- /etc/ssh/sshd_configの編集
- rootユーザのSSHログイン許可
-
パスワード認証の許可
-
yum updateの実行
- epel-releaseリポジトリのインストール
- ansibleパッケージのインストール
STACK_NAME=paloalto-CDP-ansibleserver TEMPLATE_FILE=TEMPLATE_PALOALTO-CDP-AnsibleSERVER.yaml PARAMETER_FILE=PARAMETER_PALOALTO-CDP-AnsibleSERVER.json TEMPLATE=$(cat ${TEMPLATE_FILE} | sed -z -e 's/\n/\\n/g') PARAMETER=$(cat ${PARAMETER_FILE}) curl -k $ORCHESTRATION/v1/${TENANT_ID}/stacks -X POST \ -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" \ -d @- <<EOL { "stack_name": "${STACK_NAME}", "template": "${TEMPLATE}", "parameters": ${PARAMETER} } EOL
VPNサービスの作成#
IaaSポータルより、以下のパラメータで管理用のVPNを作成してください。 ※以下作成例です。環境要件によりパラメータを変更してください。
パラメータ | 値 |
---|---|
仮想ルータ名 | management-net-router |
サブネット名 | management-subnet |
VPNサービス名 | PALOALTO-CDP-VPN |
管理状態 | true |
SSL-VPNの作成#
IaaSポータルより、以下のパラメータでSSL-VPNを作成してください。 ※以下作成例です。環境要件によりパラメータを変更してください。
パラメータ | 値 |
---|---|
SSL-VPN接続名 | PALOALTO-CDP-SSLVPN |
管理状態 | true |
証明書 | FJCloud証明書(デフォルト) |
クライアントIPプール | 192.168.246.0/24 |
2. Palo Alto 設定#
本パターンでは以下のパラメータを設定します。
※要件に合わせてパラメータを変更してください。
■ Device > セットアップ
管理 > 一般設定 No. |
ホスト名 |
タイムゾーン |
表示言語 |
---|---|---|---|
1 | PAVM1 | Japan | ja |
2 | PAVM2 | Japan | ja |
サービス / NTP VM |
プライマリDNSサーバ |
セカンダリDNSサーバ |
プライマリNTPサーバ |
セカンダリNTPサーバ |
---|---|---|---|---|
PAVM1 | 8.8.8.8 | 8.8.4.4 | 133.162.97.19 | 133.162.97.20 |
PAVM2 | 8.8.8.8 | 8.8.4.4 | 133.162.97.19 | 133.162.97.20 |
インターフェース > managemnt VM |
IPタイプ |
IPアドレス |
ネットマスク |
デフォルトゲートウェイ |
---|---|---|---|---|
PAVM1 | スタティック | 192.168.50.11 | 255.255.255.0 | 192.168.50.1 |
PAVM2 | スタティック | 192.168.50.12 | 255.255.255.0 | 192.168.50.1 |
WildFire > 一般設定 VM |
WildFire パブリッククラウド |
安全なファイルのレポート |
レポートのグレイウェアファイル |
---|---|---|---|
PAVM1 | jp.wildfire.paloaltonetworks.com | チェックあり | チェックあり |
PAVM2 | jp.wildfire.paloaltonetworks.com | チェックあり | チェックあり |
■ Device > 高可用性
全般 > セットアップ 、選択設定 VM |
HA の有効化 |
グループID |
モード |
ピア HA IPアドレス |
バックアップ側 ピア HA IPアドレス |
デバイス優先度 |
プリエンティブ |
---|---|---|---|---|---|---|---|
PAVM1 | チェックあり | 1 | アクティブ パッシブ | 192.168.40.12 | 192.168.60.12 | 90 | チェックなし |
PAVM2 | チェックあり | 1 | アクティブ パッシブ | 192.168.40.11 | 192.168.60.11 | 100 | チェックなし |
コントロールリンク(HA1) VM |
ポート |
IPv4/IPv6 アドレス |
ネットマスク |
---|---|---|---|
PAVM1 | ethernet1/4 | 192.168.40.11 | 255.255.255.0 |
PAVM2 | ethernet1/4 | 192.168.40.12 | 255.255.255.0 |
コントロールリンクのバックアップ VM |
ポート |
IPv4/IPv6 アドレス |
ネットマスク |
---|---|---|---|
PAVM1 | ethernet1/6 | 192.168.60.11 | 255.255.255.0 |
PAVM2 | ethernet1/6 | 192.168.60.12 | 255.255.255.0 |
データリンク(HA2) VM |
ポート |
IPv4/IPv6 アドレス |
ネットマスク |
---|---|---|---|
PAVM1 | ethernet1/5 | 192.168.40.21 | 255.255.255.0 |
PAVM2 | ethernet1/5 | 192.168.40.22 | 255.255.255.0 |
データリンクのバックアップ VM |
ポート |
IPv4/IPv6 アドレス |
ネットマスク |
---|---|---|---|
PAVM1 | ethernet1/7 | 192.168.60.21 | 255.255.255.0 |
PAVM2 | ethernet1/7 | 192.168.60.22 | 255.255.255.0 |
■ Device > 管理者
admin VM |
名前 |
パスワード |
---|---|---|
PAVM1 | admin | * |
PAVM2 | admin | * |
■ Device > 応答ページ
アプリケーション ブロック ページ VM |
アクション |
---|---|
PAVM1 | 有効 |
PAVM2 | 有効 |
■ Device > ダイナミック更新
アンチウィルスの更新スケジュール VM |
繰り返し |
分(過去 1 時間) |
アクション |
ピアと同期 |
---|---|---|---|---|
PAVM1 | 毎時 | 30 | download-and-install | チェックあり |
PAVM2 | 毎時 | 35 | download-and-install | チェックあり |
アプリケーションと脅威の更新スケジュール VM |
繰り返し |
分(過去 30 分間) |
アクション |
ピアと同期 |
---|---|---|---|---|
PAVM1 | 30分ごと | 15 | download-and-install | チェックあり |
PAVM2 | 30分ごと | 20 | download-and-install | チェックあり |
WildFireの更新スケジュール VM |
Choice |
分 |
アクション |
ダウンロード/インストール後に HAピアとコンテンツを同期 |
---|---|---|---|---|
PAVM1 | 15分ごと | 5 | download-and-install | チェックあり |
PAVM2 | 15分ごと | 10 | download-and-install | チェックあり |
■ Network > ネットワーク プロファイル > インターフェイス管理
名前 | ネットワークサービス |
---|---|
PING | PING(チェックあり) |
■ Network > ゾーン
名前 | タイプ | インターフェイス |
---|---|---|
trust | レイヤー3 | ethernet1/2 ethernet1/3 |
untrust | レイヤー3 | ethernet1/1 |
■ Network > 仮想ルータ
名前 | インターフェイス |
---|---|
default |
ethernet1/1 ethernet1/2 ethernet1/3 |
スタティックルート 名前 |
宛先 |
インタフェース |
タイプ |
値 |
---|---|---|---|---|
default_route | 0.0.0.0/0 | ethernet1/1 | ip-address | 192.168.10.1/32 |
■ Network > インターフェイス
インターフェイス | インターフェイス タイプ | 管理プロファイル | IPアドレス | 仮想ルータ | セキュリティゾーン |
---|---|---|---|---|---|
ethernet1/1 | Layer3 | PING | 192.168.10.100/24 | default | untrust |
ethernet1/2 | Layer3 | PING | 192.168.20.100/24 | default | trust |
ethernet1/3 | Layer3 | PING | 192.168.30.100/24 | default | trust |
ethernet1/4 | HA | none | none | ||
ethernet1/5 | HA | none | none | ||
ethernet1/6 | HA | none | none | ||
ethernet1/7 | HA | none | none |
■ Objects > アドレス
名前 | タイプ | アドレス |
---|---|---|
DB_Server1 | IP ネットマスク | 192.168.30.200/32 |
DMZ | IP ネットマスク | 192.168.20.0/24 |
Internal | IP ネットマスク | 192.168.30.0/24 |
Web_Server1 | IP ネットマスク | 192.168.20.200/32 |
■ Objects > サービス
名前 | プロトコル | 宛先ポート |
---|---|---|
HTTP | TCP | 80 |
HTTPS | TCP | 443 |
■ Objects > セキュリティプロファイル > アンチウィルス
名前 |
---|
Antivirus-Profile01 |
デコーダ | アクション | Wildfire アクション |
---|---|---|
ftp | default(reset-both) | default(reset-both) |
http | default(reset-both) | default(reset-both) |
http2 | default(reset-both) | default(reset-both) |
imap | default(alert) | default(alert) |
pop3 | default(alert) | default(alert) |
smb | default(reset-both) | default(reset-both) |
smtp | default(alert) | default(alert) |
■ Objects > セキュリティプロファイル > WildFire 分析
名前 |
---|
WF-Profile01 |
名前 | アプリケーション | ファイルタイプ | 方向 | 分析 |
---|---|---|---|---|
ALL-files | any | any | both | public-cloud |
■ Policies > セキュリティ
No. |
名前 |
タグ |
タイプ |
送信元 ゾーン |
アドレス |
ユーザ |
HIP プロファイル |
宛先 ゾーン |
アドレス |
アプリケーション |
サービス |
アクション |
プロファイル |
オプション |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
DNS |
none |
universal |
trust |
any |
any |
any |
untrust |
any |
dns |
application-default |
Allow |
Antivirus-Profile01 WF-Profile01 |
セッション終了時にログ |
2 |
NTP |
none |
universal |
trust |
any |
any |
any |
untrust |
any |
ntp |
application-default |
Allow |
Antivirus-Profile01 WF-Profile01 |
セッション終了時にログ |
3 |
intranet to any icmp ping |
none |
universal |
trust |
DB_Server1 Web_Server1 |
any |
any |
untrust |
any |
icmp ping |
application-default |
Allow |
Antivirus-Profile01 WF-Profile01 |
セッション終了時にログ |
4 |
SQL_Webserv to Dbserv |
none |
universal |
trust |
Web_Server1 |
any |
any |
trust |
DB_Server1 |
postgres |
application-default |
Allow |
Antivirus-Profile01 WF-Profile01 |
セッション終了時にログ |
5 | SSH_Webserv to Dbserv | none | universal | trust | Web_Server1 | any | any | trust | DB_Server1 | ssh | any | Deny | none | セッション終了時にログ |
6 |
allow outbound web |
none |
universal |
trust |
any |
any |
any |
untrust |
any |
any |
HTTP HTTPS |
Allow |
Antivirus-Profile01 WF-Profile01 |
セッション終了時にログ |
7 | internet to intranet | none | universal | untrust | any | any | any | trust | any | any | any | Deny | none | セッション終了時にログ |
8 | intranet to internet | none | universal | trust | any | any | any | untrust | any | any | any | Deny | none | セッション終了時にログ |
■ Policies > NAT
No. |
名前 |
タグ |
元のパケット 送信元ゾーン |
宛先ゾーン |
宛先インターフェイス |
送信元アドレス |
宛先アドレス |
サービス |
変換済みパケット 送信元変換 |
宛先変換 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
NAT-intra |
none |
trust |
untrust |
ethernet1/1 |
DMZ Internal |
any |
any |
dynamic-ip-and-port ethernet1/1 192.168.10.100/24 |
なし |
3. Ansibleによる Palo Alto 設定#
- Palo Alto設定で記載した設定の一部はAnsibleによる設定可能です。
Ansibleについて
概要 - Redhat社が開発するオープンソースの構成管理ツール。 - ITインフラにかかわる様々な作業を自動化。 - エージェントレス、接続にはSSH接続が必須 - モジュールを利用することで様々なプロダクトに対応 - Palo Alto networks のmoduleは以下にて公開
https://paloaltonetworks.github.io/pan-os-ansible/
- 冪(べき)等性を担保
- Ansibleにおける処理
- PlaybookというYAML形式のファイルを実行
- 今回使用したバージョン
- ansible 2.9.23
-
Python 3.6.8
-
前提
- 必要なモジュールインストール
- 以下をansibleサーバーで実行します。
ansible-galaxy collection install paloaltonetworks.panos
- 実行するモジュールで別途必要なモジュールをインストールします。 ※今回のパターンで実行に必要なモジュールのみ記載しております。各モジュールで必要な要件をご確認ください。
pip3 install pandevice
pip3 install pan-python
pip3 install pan-os-python
paloalto設定とansible実行の対応一覧 PaloAlto設定 |
ansible設定 |
備考 |
実行するyamlファイル |
---|---|---|---|
■ Device > セットアップ 、管理 > 一般設定 | 〇 | 01_setup.yaml | |
■ サービス NTP, DNS | 〇 | 03_configure.yaml | |
■ インターフェース > managemnt | × | ||
■ WildFire > 一般設定 | × | ||
■ Device > 高可用性 | 〇 | デバイスプラオリティの設定は、GUIで実施 | 02_configureHA.yaml |
■ Device > 管理者 | × | ||
■ Device > 応答ページ | × | ||
■ Device > ダイナミック更新 | × | ||
■ Network > ネットワーク プロファイル > インターフェイス管理 | 〇 | 03_configure.yaml | |
■ Network > ゾーン | 〇 | 03_configure.yaml | |
■ Network > 仮想ルータ | 〇 | 03_configure.yaml | |
■ Network > インターフェイス | 〇 | 03_configure.yaml | |
■ Objects > アドレス | 〇 | 03_configure.yaml | |
■ Objects > サービス | 〇 | 03_configure.yaml | |
■ Objects > セキュリティプロファイル > アンチウィルス | × | ||
■ Objects > セキュリティプロファイル > WildFire 分析 | × | ||
■ Policies > セキュリティ | 〇 | 03_configure.yaml | |
■ Policies > NAT | 〇 | 03_configure.yaml |
Ansible実行前に下記のテンプレートファイルをダウンロードし、実行環境に展開してください。
Ansbileの概要、ファイル構造の説明は下記をご参照ください。 https://doc.cloud.global.fujitsu.com/lib/iaas/jp/cdp/bigip-web-ha/#3-ansible
(3) Ansibleの実行に関する補足
Ansible設定ファイル構造
- 本デザインパターンにおけるAnsible設定ファイル構造を以下表に記載
- ディレクトリ構造
- /etc/ansible/roles/inventory
-
共通設定
- /etc/ansible/roles/inventory
- hostsファイル ※PAVM1、PAVM2のアクセス情報
- /etc/ansible/roles/inventory/group_vars
- paloalto.yaml ※PAVM1、PAVM2に設定する共通パラメータ
- /etc/ansible/roles/inventory/host_vars
- PAVM1、PAVM2それぞれ固有のパラメータ
- paloalto01.yaml(PAVM1の固有パラメータ)
- paloalto02.yaml(PAVM2の固有パラメータ)
-
01_setup.yamlの実行
インベントリファイル(制御したいホストを定義するファイル)としてhostsファイルを指定し、この中の"ansible_ssh_pass"の値を修正することで初期パスワードを設定可能
- hostsファイルでは、以下の制御対象ホストとグループを定義
PAVM1 ホスト名:"paloalto01"
PAVM2 ホスト名:"paloalto02"
上記2ホストが所属するグループ名:"palolato" 同ファイル内13行目に"[]"と記載し定義
- 各設定パラメータはhost_vars/paloalto01.yaml ,host_vars/paloalto02.yaml,group_vars/palolato.yamlファイルの対応箇所を修正
実行例:
[root@ansible-server inventory]#ansible-playbook -i hosts 01_setup.yaml
- 02_configureHA.yamlの実行例
[root@ansible-server inventory]#ansible-playbook -i hosts 02_configureHA.yaml
- 03_configure.yamlの実行例
bash
[root@ansible-server inventory]#ansible-playbook -i hosts 03_configure.yaml
メリット・効果#
Palo Altoの活用 - 許可されたアプリケーションだけを許可してポートを偽装する脅威から保護 - インターネットから未知のマルウェアが内部のシステムに侵入したことを検知 - 検知した未知のマルウェアに対する対策を早期に適用
Ansibleを活用したPalo Alto構築 - 環境(テスト・本番)が変わっても同じ内容で構築可能 - 構築が自動化されているため、設定ミス防止
注意事項#
- Ansibleのバージョン
-
本パターンは、ansible 2.9.23、python 3.6.8にて動作確認済です。
-
Palo Altoのansibleモジュール
-
本デザインパターンに必要なモジュールのみ記載しております。
-
Ansibleのファイル記載方法、実行
-
詳細はAnsibleのドキュメントを参照お願いします。
-
Palo Altoの設定
- 本パターンにおける設定は設定例です
- 冗長方式のパラメータ、アプリケーション制御などは一例です。
- 実際に利用される場合、適したパラメータ、方式にて導入をお願いします。