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をクリックします。

OK をクリックします。

Commitの実行
設定反映のため、Commitを実行すると、成功しますが、以下の通り、トンネルインタフェースでIPv6が有効でないと警告が出ます。

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

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

これでCommitを実行してもトンネルインタフェースに対するIPv6の警告が出ません。
GlobalProtect クライアントの準備
Device >> GlobalProtectクライアントへ移動し、今すぐチェックをクリックすることで、ダウンロードできるGlobalProtect クライアントの一覧を取得します。 その後、使用するGlobalProtectクライアントをダウンロードし、アクティベーションしておきます。

下記のポップアップが出力されます。はい をクリックします。

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

証明書エラーが出ますが、続行すると、ポータル画面が表示されます。 登録したユーザ(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 へ移動すると、GlobalProtect関連のログを確認することができます。

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

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

CLIでは、以下のコマンドで確認できます。
admin@PA-VM> show global-protect-gateway current-user GlobalProtect Gateway: GP-Gateway (1 users) Tunnel Name : GP-Gateway-N Domain-User Name : \hirotano Computer : DESKTOP-DC9R5P1 Primary Username : hirotano Region for Config : JP Source Region : JP Client : Microsoft Windows 10 Enterprise Evaluation , 64-bit VPN Type : Device Level VPN Host ID : xxx Client App Version : 5.2.13-48 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 : xxx.xx 03:29:24 Logout/Expiration : xxx.xx 02:29:24 TTL : 2591686 Inactivity TTL : 10788 Request - Login : 2023-xx-xx 03:29:24.271 (1698575364271), xxx.xxx.xxx.xxx Request - GetConfig : 2023-xx-xx 03:29:24.513 (1698575364513), xxx.xxx.xxx.xxx Request - SSLVPNCONNECT : 2023-xx-xx 03:29:24.726 (1698575364726), xxx.xxx.xxx.xxx
ポリシー制御
接続したユーザはSSL-VPNゾーンに所属されます。 では、SSL-VPNゾーンからインターネットへ接続できるように設定変更します。
NAT設定
SSL-VPNゾーンからUntrustゾーンへ送信元NATするよう設定します。
Polices >> NAT で追加をクリックし、以下の通りNATポリシーを追加します。

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

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

コメント