Paloaltoでは、GlobalProtectというVPN接続により、リモートユーザ向けにVPN接続を提供できます。今回は、Paloaltoのローカルデータベースを使用してユーザ認証し、証明書は、Paloaltoが発行する自己証明書を使用します。

ローカルユーザでの認証のほか、Active Directory連携は以下の記事も参考にしてください。この記事は、ローカルユーザでの認証である本記事をベースに、差分を記載しています。
>> 参考記事 : GlobalProtectの設定(ActiveDirectory連携)と動作確認 PANOS9.0.9-h1.xfrローカルユーザベースの作成
ユーザ設定
Device >> ローカルユーザ データベース >> ユーザー へ移動し、追加をクリックします。

名前をhirotano とし、パスワードを設定してOKをクリックします。

以下の通り設定されます。

ユーザグループ設定
今後のユーザ追加が容易になるように、複数のSSL-VPNユーザを格納するグループを作成します。
Device >> ローカルユーザデータベース >> ユーザーグループ へ移動し、追加をクリックします。

以下の画面で、名前をSSL-VPN-Users-Groupとし、先ほど追加したユーザhirotanoを追加します。

以下の画面を確認し、OKをクリックします。

以下の通り設定されます。

認証プロファイルの設定
認証プロファイル設定のより、ユーザに認証先をローカルデータベースのSSL-VPN-Users-Group であることを指定します。
Device >> 認証プロファイル へ移動し、追加 をクリックします。

認証プロファイルの名前をSSL-VPN-Auth-Profileとし、タイプをローカルデータベースにします。
次に、詳細タブをクリックします。

許可リストの設定画面が表示されます。追加をクリックして、SSL-VPN-Users-Group を選択します。

以下の画面になりますので、OKをクリックします。

以下の通り設定されます。

証明書の作成
Paloaltoを認証局として、ゲートウェイ、ポータル接続用のサーバ証明書を作成します。
認証局証明書の作成
Device >> 証明書の管理 >> 証明書 より 生成をクリックします。

以下の画面が出力されます。

- 証明書名:任意の名前を設定。PA-Cert-Authorityとします。
- 共通名:任意の名前を設定。PA-Cert-Authorityとします。
- 認証局:チェックを入れます。
設定後、生成をクリックします。
以下のようなポップアップが表示されますので、OKをクリックします。

サーバ証明書の作成
今回は、ゲートウェイとポータルで同じIPアドレスを使用します。そこで、ゲートウェイ、ポータル接続用の共通のサーバ証明書を作成します。
Device >> 証明書の管理 >> 証明書へ移動し、生成をクリックします。

以下の画面になります。

- 証明書名:任意の名前を設定。GP-Portal-Gateway-Certとします。
- 共通名:今回は、AWS上のPAで検証しており、ゲートウェイおよびポータルに接続するElastic IPの名前 ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com を設定します。
- 署名者:PA-Cert-Authority を選択します。
- 証明書の属性:追加をクリックして、タイプ Host Name でec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com を設定します。
XXX-XXX-XXX-XXXはElastic IPが入ります。設定後、生成をクリックします。
以下のようなポップアップが表示されるのでOKをクリックします。

認証局証明書(PA-Cert-Authority)の配下で、証明書(GP-Portal-Gateway-Cert)が発行されていることが確認できます。

SSL/TLSサービスプロファイルの作成
ゲートウェイ、およびポータルで使用するSSL/TLSサービスプロファイルを作成し、作成した証明書と紐づけます。
Device >> 証明書の管理 >> SSL/TLSサービスプロファイル へ移動し、追加をクリックします。

名前は任意(今回はGP-SSL-Profileと設定)とし、証明書はGP-Portal-Gateway-Certを選択します。

以下の画面になるので、OKをクリックします。

以下の画面となります。

トンネルインタフェースの追加
SSL-VPNを終端するトンネルインタフェースを設定します。
Network >> インタフェース から トンネル タブへ移動し、追加をクリックします。

以下の画面で、サブインタフェース番号を設定(今回は1とします)とし、仮想ルータはdefaultを選択します。 セキュリティゾーンは、今回、SSL-VPNに接続されたユーザを特定のゾーン(ゾーン名はSSL-VPNとします)に収容し、 他ゾーンとの通信はセキュリティポリシーを適用できるようにします。プルダウンの下の新規追加リンクをクリックします。

名前は、任意(今回はSSL-VPNとします)とし、ユーザIDの有効化にチェックを入れます。 ユーザIDの有効化により、このゾーンに所属する認証済みユーザを識別することができるようになります。 その後、OKをクリックします

以下の画面になるので、OKをクリックします。

以下のように登録されました。

ゲートウェイの設定
外部(インターネット)からSSL-VPNアクセスしてくるゲートウェイの設定をします。
Network >> GlobalProtect >> ゲートウェイへ移動し、追加をクリックします。

以下の画面で設定します。

- 名前:任意の名前。今回はGP-Gatewayとします。
- インタフェース:SSL-VPNの受け口であるethernet1/1を選択
- IPアドレスタイプ:IPv4 Only を選択
- IPv4アドレス:ゲートウェイとして受け付けるIPアドレス。今回は192.168.20.120/24と設定します。
次に認証タブへ移動します。SSL/TLSサービスプロファイルはGP-SSL-Profileを選択し、クライアント認証の追加をクリックします。

クライアント認証の設定画面が表示されます。名前は任意(今回はClient-Authとします)とし、認証プロファイルにSSL-VPN-Auth-Profileを選択します。

設定後、OKをクリックすると、以下の通り登録されます。

次にエージェント タブへ移動します。 まず、トンネル設定 タブを設定します。

- トンネルモード:チェックを入れ、有効化します。
- トンネルインタフェース:tunnel.1を選択します。
- IPSecの有効化:チェックを外します。
次にクライアントの設定タブに移動し、追加をクリックします。

設定の選択条件の名前を任意の名前(今回はGP-Client-Settingとします)とし、IPプール タブへ移動します。

IPプールの設定で、追加をクリックします。

プールアドレスとして、192.168.100.0/24を設定し、OKをクリックします。

以下画面となるので、OKをクリックします。

以下の通り、ゲートウェイが登録されます。

ポータル設定
SSL-VPNユーザのアクセスの受付、認証を提供するポータルを設定します。
Network >> GlobalProtect >> ポータル へ移動し、追加をクリックします。

全般タブで以下の通り設定します。

- 名前;任意の名前。今回は、GP-Portalとします。
- インタフェース:SSL-VPNの受け口であるethernet1/1を選択
- IPアドレスタイプ:IPv4 Only を選択
- IPv4アドレス:ポータルとして受け付けるIPアドレス。今回は192.168.20.120/24と設定します。
次に認証タブへ移動し、SSL/TLSサービスプロファイルにGP-SSL-Profileを選択し、追加をクリックします。

クライアント認証の設定画面が表示されます。名前は任意(今回はClient-Authとします)とし、認証プロファイルにSSL-VPN-Auth-Profileを選択します。

OKをクリックすると、以下の通り登録されます。次に、エージェントタブへ移動します。

以下画面で、エージェントの追加をクリックします。

以下の画面が表示されるので、任意の名前(今回は、GP-Agentとします)を設定し、外部タブをクリックします。

外部ゲートウェイで追加をクリックします。

- 名前:任意の名前。今回はGatewayとします。
- アドレス:FQDNを選択し、 ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com を設定します。 追加をクリックし、送信元地域Any、優先順位をHighestにします。
- 手動:チェックを入れます
設定後、OKをクリックします。
以下の通り登録されるので、OKをクリックします。

Commitの実行
設定反映のため、Commitを実行すると、成功しますが、以下の通り警告が出ます。

このままでも問題はないですが、警告が出ないように設定変更します。 Network >> インタフェース へ移動し、トンネルタブから tunnel.1を選択します。

IPv6タブへ移動し、インタフェースでのIPv6の有効化にチェックを入れて、OKをクリックします。

これでCommitを実行しても警告が出ません。

GlobalProtect クライアントの準備
Device >> GlobalProtectクライアントへ移動し、今すぐチェックをクリックすることで、ダウンロードできるGlobalProtect クライアントの一覧を取得します。 その後、使用するGlobalProtectクライアントをダウンロードし、アクティベーションしておきます。

端末の接続
GlobalProtectのインストール
ブラウザ(今回はEdgeを使用)より、https:// ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com へアクセスします。

証明書エラーが出ますが、Webページへ移動をクリックし、続行すると、ポータル画面が表示されます。 登録したユーザ(hirotano)でログインします。

GlobalProtectクライアントのインストールリンクが表示されますので、OSにあったソフトを実行します。

インストール画面が表示されます。順番にNextを押下し、インストールを実行します。




クライアントからの接続(証明書インストール前)
右下のタスクトレイに、GlobalProtectのソフトが起動しますので、ポータル接続先( ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com)を入力して、 接続をクリックします。

すると、以下のようにサーバ証明書エラーが発生します。PAからのサーバ証明書が信頼されたルート証明機関で署名されていないため、エラーとなります。

ルート証明書のインストール
Device >>証明書 へ移動し、認証局証明書であるPA-Cert-Authority を選択し、証明書のエクスポートをクリックします。

ファイルフォーマットは 暗号化された秘密鍵と証明書(PKCS12)を選択し、パスフレーズを設定の上、OKをクリックします。

保存リンクが表示されるので、保存をクリックします。

この証明書を端末にインストールします。 証明書を右クリックして、PFXのインストールをクリックします。

証明書のインポートウィザードが開始されます。ローカルコンピュータを選択し、次へをクリックします。

インポートする証明書が選択されていることを確認し、次へをクリックします。

パスフレーズを入力して、次へをクリックします。

証明書ストアを信頼されたルート証明機関として、次へをクリックします。

確認画面が表示されるので、完了をクリックします。

以下のポップアップが出力されます。

証明書がローカルコンピュータに保存されているか確認します。 ファイル名を指定して実行で、certlm.mscと入力します。

ローカルコンピュータに保存されている証明書が確認できます。信頼されたルート証明機関の下に、PA-Cert-Authorityが保存されていることを確認します。

クライアントからの接続(証明書インストール後)
右下のタスクトレイに常駐しているGlobalProtectクライアントをクリックし、以下画面で接続をクリックします。

ユーザ名(hirotano)とパスワードを入力し、サインインします。

すると、以下のように、接続済みとなります。これでSSL-VPN接続は完了です。

端末のIPアドレスを確認すると、IPプールで設定した192.168.100.0/24より払い出されています。

ログ確認
Monitor >> ログ >> システム へ移動すると、GlobalProtect関連のログを確認することができます。
検索バーで subtype eq globalprotect と入力することで、GlobalProtect関連ログに表示を絞ることができます。

今、どのユーザがログインしているか否かは、GUIもしくはCLIで確認できます。
Network >> GlobaProtect >> ゲートウェイ へ移動し、リモートユーザをクリックします。

以下のように、ゲートウェイに接続しているユーザの一覧を確認できます。

CLIでは、以下のコマンドで確認できます。
admin@FW-1> show global-protect-gateway current-user GlobalProtect Gateway: GP-Gateway (1 users) Tunnel Name : GP-Gateway-N Domain-User Name : :hirotano Computer : DESKTOP-E7UBEQI Primary Username : hirotano Region for Config : JP Source Region : JP Client : Microsoft Windows 10 Pro , 64-bit VPN Type : Device Level VPN Mobile ID : Client OS : Windows Private IP : 192.168.100.1 Private IPv6 : :: Public IP (connected) : XXX.XXX.XXX.XXX Public IPv6 : :: Client IP : XXX.XXX.XXX.XXX ESP : removed SSL : exist Login Time : Dec.20 16:28:00 Logout/Expiration : Jan.19 16:28:00 TTL : 2590993 Inactivity TTL : 9806 Request - Login : 2020-12-20 16:28:00.035 (1608449280035), XXX.XXX.XXX.XXX Request - GetConfig : 2020-12-20 16:28:00.789 (1608449280789), XXX.XXX.XXX.XXX Request - SSLVPNCONNECT : 2020-12-20 16:28:01.656 (1608449281656), XXX.XXX.XXX.XXX
ポリシー制御
接続したユーザはSSL-VPNゾーンに所属されます。 では、SSL-VPNゾーンからインターネットへ接続できるように設定変更します。
NAT設定
SSL-VPNゾーンからInternetゾーンへ送信元NATするよう設定します。
Polices >> NAT で追加をクリックし、以下の通りNATポリシーを追加します。

セキュリティポリシー設定
SSL-VPNゾーンからInternetゾーンへすべての通信を許可します。 Polices >> セキュリティより、追加をクリックし、以下の通りセキュリティポリシーを追加します。

Commitを実行し、端末からインターネットへ接続します。端末のDNSは端末ローカルで設定したDNSサーバを使用し、インターネットへアクセスできるようになります。
Monitor >> ログ >> トラフィックを確認すると、ユーザ hirotano が プールIPである192.168.100.1よりインターネットへアクセスしていることが確認できます。

コメント