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よりインターネットへアクセスしていることが確認できます。
コメント