PAシリーズのトラブルシューティング機能を使ってみました。主な機能は以下の通りです。
項目 | 内容 |
---|---|
Security Policy Match | どのセキュリティポリシーにマッチしているか? |
QoS Policy Match | どのQoSポリシーにマッチしているか? |
Authentication Policy Match | どの認証ポリシーにマッチしているか? |
Decryption/SSL Policy Match | どの復号ポリシーにマッチしているか? |
NAT Policy Match | どのNATポリシーにマッチしているか? |
PBF Policy Match | どのPBFポリシーにマッチしているか? |
DoS Policy Match | どのDoSプロテクションポリシーにマッチしているか? |
Routing | 指定した通信のNexthopの確認 |
WildFire | WildFireへの接続状況の確認 |
Threat Vault | Threat Vaultへの接続状況の確認 |
Ping | Ping(送信元を指定しない場合MGTポートから送信) |
Trace Route | Trace Route(送信元を指定しない場合MGTポートから送信) |
Log Collector Connectivity | Log Collectorへの接続性の確認 |
External Dynamic List | EDLで利用するサーバへの接続性の確認 |
Update Server Connectivity | Palo Altoの更新サーバへの接続性の確認 |
トラブルシューティング機能の使い方
トラブルシューティング機能の中でよく利用されるのは、ポリシーマッチではないかと思います。例えばセキュリティポリシーの設定をしたけれども想定通り動作しないと言うような場合に、この機能を利用することで想定される通信が設定上どのセキュリティポリシーにマッチするのかを机上(実機上)で確認することができます。
また設定したセキュリティポリシーの正当性をチェックするために検証環境で全ての通信を擬似的に生成して確認するような案件もあると思いますが、この機能を利用することで一部簡素化できるのではないかと思います。
手順は簡単で、GUI上で必要な項目を指定して実行するだけです。今回はセキュリティポリシーで確認してみたいと思います。
- 【DEVICEタブ】→【Troubuleshooting】を選択
- Test Configrationでテスト項目を選択した上で調査に必要な項目を記載して「Execute」ボタンをクリック
- 赤枠部分は最低限必要な項目
それでは実際に以下の通信を確認してみます。
- 送信元IP(Source): 10.0.20.132
- 宛先IP(Destination): 8.8.8.8
- 宛先ポート(Destination Port): 53
必要最低限の項目として以下を記載してい実行すると、右側の「Test Result」に今回の通信の評価対象になるポリシー(結果)と、「Result Detail」にその詳細が出力されます。
結果を確認すると、「dns」と言う名前のセキュリティポリシーにマッチしていることが分かります。実際にセキュリティポリシーを確認してみると、宛先ポート(Service)はapplication-defaultになっていて、アプリケーションがdnsになっています。この場合、宛先ポートは「dns」アプリケーションで定義されているデフォルトポートが自動的に解放されますので、ユーザーが特に意識することなくアプリケーションを指定できるようになっていますが、机上での確認においては少し分かりにくいかもしれません。トラブルシューティング機能を利用することで、実際のPCやスイッチなどの検証環境を構築することなくPA単体で確認することができます。
CLIでの確認(testコマンド)
トラブルシューティング機能は元々「testコマンド」などCLIでのみ利用可能だったものが一部GUI化されたものです。testコマンドには以下のようなものがあります。
admin@PA-VM> test
> advanced-routing Advanced-Routing manage commands
> arp ARP related
> authentication Test User authentication
> authentication-policy-match Test authentication policy match
> botnet Test botnet domain categorization
> cookie-surrogate cookie-surrogate query cache and policy lookup
> custom-signature-perf Test lscan signature
> custom-signature-type Test custom signature type
> custom-url Test custom URL categorization
> data-filtering Test ccn/ssn match
> decryption-policy-match Test ssl policy match
> dns-proxy Test DNS query
> dos-policy-match Test DoS Policy match
> generate-saml-url generate test url for saml authentication
> global-protect-mdm Test MDM
> global-protect-satellite Test GlobalProtect satellite
> http-profile Test Http profile connection
> http-profile-server-auth-token Test Http profile server auth token
> http-server Test Http server connection
> mfa-vendors Test MFA vendor connectivity
> nat-policy-match Test nat policy match
> nd IPv6 Neighbor Discovery
> nptv6 NPTv6 related commands
> pbf-policy-match Test Policy Based forwarding match
> pppoe test pppoe connection
> qos-policy-match Test qos policy match
> routing verify routing settings
> scp-server-connection Test scp server connection
> security-policy-match Test security policy match
> smtp-server Test smtp server connection
> ssl-exclude-list Test hostname in SSL Exclude list
> stats-service Test statistics service
> tag-filter Test a tag-based filter
> threat-vault Test threat-vault connection
> uid Test uid unknown query
> url Test URL categorization
> url-info-cloud Return detailed information about the URL in the cloud
> url-info-host Return detailed information about the URL in the MP
> url-wpc Test Wildfire Private Cloud URL list
> user-id Test Userid
> vpn verify (IKE/IPSec) VPN settings
> wildfire Test wildfire
> x-authenticated-user x-authenticated-user IP address match
tset コマンド実行例
GUIで設定した内容と同じ内容をCLIで実行してみました。CLIの場合プロトコル番号(tcp:6 / udp:17など)を指定する必要があります。大量に確認するような場合はCLIの方が楽かもしれません。
admin@PA-VM> test security-policy-match source 10.0.20.132 destination 8.8.8.8 destination-port 53 protocol 17
"dns; index: 4" {
from any;
source any;
source-region none;
to untrust;
destination any;
destination-region none;
user any;
source-device any;
destination-device any;
category any;
application/service [0:dns-base/tcp/any/53 1:dns-base/tcp/any/853 2:dns-base/udp/any/53 3:dns-base/udp/any/5353 4:dns-non-rfc/tcp/any/53 5:dns-non-rfc/udp/any/53 6:dns-non-rfc/udp/any/5353 ];
action allow;
icmp-unreachable: no
terminal yes;
}
コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!