今後のSAML連携の確認等を行うため、GlobalProtect環境を構築します。
GlobalProtect(GP)はPAシリーズで利用可能なVPN機能です。以前もGlobal Protectのセットアップ方法については紹介していますが、認証サーバの構築なども含まれていたため若干複雑に感じた方もいたかと思います。今回は認証にローカルDBを利用し、シンプルにGlobalProtectのみの設定を行っていきます。
今回説明する内容は、PAA(旧GP)ライセンスは不要で標準機能として利用できます。
最大同時接続数は筐体ごとに設定されていて、ここで確認ができます。
基本構成は以下とします。

- 前提条件
- GPを除くNWなどの基本設定が完了している前提です。
- GP Portal (Potal) / GP Gateway (Gateway) のIPは、WAN側IFのIPと共用します。
- VPN接続後にClientに割り当てるゾーンは「GPゾーン」とします。
- Portal / Gateway に利用するSSLサーバ証明書は自己署名証明書を利用します。
- ユーザー認証はローカルDBを利用します。
GlobalProtectの動作概要
GlobalProtectの構成要素は、GP Portal、GP Gateway、GP Agentの3つです。主な役割を以下に記載します。
| GP Portal | 最初にGP AgentがアクセスするのがPortalです。 ・GP Agentを認証し、GP Gateway の情報とポリシー設定を送信します。 ・Windows / MacOS用のGP Agentを配布用のポータルとしても動作します。 |
| GP Gateway | 実際にVPN接続を行うゲートウェイです。 ・GP Agentを認証し、VPN接続を終端します。 ・3rd Partys製のAgentも利用可能です。 |
| GP Agent | クライアントにインストールしてVPN接続を行います。 ・端末のHIP情報を収集してGP Gatewayに送信します。 |

設定手順概要
おおまかな設定手順は以下のようになります。
- GlobalProtect Client のダウンロード
- SSLサーバ証明書の準備
- 認証プロファイルと認証用ユーザーの作成
- VPN用のトンネルIFとゾーンの作成
- GP Portalの設定
- GP Gatewayの設定
- セキュリティポリシーの設定
- 接続確認
Global Protect クライアントのアクティベーション
PA本体にGlobal Protect クライアントのアクティベーションを行います。
GP Portal 設定後、クライアント端末からWebブラウザを利用してGP Portalにアクセスすることで、GP Client をダウンロードすることが可能となります。(アクティベーションしたバージョンがダウンロードできるようになります)
- 「Device」 > 「GlobalProtectクライアント」 > 「今すぐチェック」をクリックします。
- 利用するバージョンの「ダウンロード」をクリックします。
- ダウンロード済みになっていることを確認し、「アクティベーション」をクリックします。

- 確認画面が出るので「はい」をクリックします。
- 「現在アクティベーション済み」にチェックが入っていることを確認します。


SSLサーバ証明書の作成
Root証明書の作成
GP PortalとGP Gatewayへの通信はHTTPS(SSL)が利用されるため、HTTPSサーバとして動作させるためのSSLサーバ証明書を作成します。なお、今回はPAを認証局とするため、まずはRoot証明書を生成します。
# 別途認証局を利用している場合は、証明書をインポートすることも可能です。
- Device > 証明書の管理 > 証明書 > 「生成」をクリックします。
- 「証明書の生成」で必要事項を設定して「生成」をクリックします。
- 証明書タイプ:ローカル
- 共通名(Common Name):任意のドメイン名
- 署名者:空欄(Root証明書のため)
- 認証局:チェックを入れる(Root証明書のため)
- 暗号設定:任意のアルゴリズムと有効期限を設定

SSLサーバ証明書の作成
次にSSLサーバ証明書を作成します。先ほど作成したRoot証明書で、GP Potal / GP Gatewayで使用するSSLサーバ証明書に署名を行います。今回、GP PortalとGP Gatewayは同一インターフェイスを利用するため同じSSLサーバ証明書を利用します(分けても良いです。)。また、FQDNは使用せずIPで指定しています。
- Device > 証明書の管理 > 証明書 > 「生成」を再度クリックします。
- 署名者を先ほど作成したRoot証明書に設定し、必要事項を入して「生成」をクリックします。
- 証明書タイプ:ローカル
- 共通名(Common Name):任意のドメイン名(今回はIPアドレスを設定しています)
- 署名者:ROOT-CA(先ほど作成したRoot証明書)
- 暗号設定:任意のアルゴリズムと有効期限を設定
- 証明書の属性:「Host Name(SAN)field」に「10.0.10.254」を設定
現在のインターネット仕様では、ブラウザ等のクライアントは、Common NameではなくSAN(Subject Alternative Name) フィールドを検証に利用します。

- Root証明書で署名されたサーバ証明書が作成されました。

認証オーバーライド用 証明書の作成
次に認証オーバーライド用の証明書も作成しておきます。今回は同じRoot証明書を使用して発行しますが、この証明書はクッキーを暗号化・署名するためのもので、SSLサーバ証明書とは用途が全く異なります。

- 認証オーバーライド用の証明書も作成できました。

SSL/TLS サービスプロファイルの作成
作成したSSLサーバ証明書を、GP Portal と GP Gateway で使用するSSLサーバ証明書として登録するために、SSL/TLS サービスプロファイルを設定します。
- Device > SSL/TLS サービスプロファイル > 「追加」をクリックします。
- SSL/TLS serviceプロファイルの名前と、使用する証明書を設定します。
- 必要に応じて暗号アルゴリズムを設定します(今回はデフォルト値のままです)
- 「OK」をクリックします。

ローカル認証用のユーザー作成
今回はシンプルな認証方式であるローカルDB(PA内に登録したユーザーで認証)を利用します。
ローカルユーザーの作成
VPNを使用するユーザーを作成します。
- Device > ユーザー > 「追加」をクリックします。
- ローカルユーザー設定で、名前(ユーザー名)とパスワードを設定し、「OK」をクリックします。

認証プロファイルの作成
ユーザーを認証する方法を指定するための認証プロファイルの設定を行います。今回は先ほど作成したPA内部のユーザーで認証を行うローカルDBを使用するプロファイルを作成します。
- Device > 認証プロファイル > 「追加」をクリックします。
- 認証プロファイル設定で、プロファイル名(名前)を設定します。
- 認証タブで、認証タイプを「ローカルデータベース」に設定します。
- 詳細タブで、「追加」をクリックします。
- 認証を許可するユーザーを指定します。今回個別ユーザーではなく全体を許可しておきます。許可リストで「all」を選択し、「OK」をクリックします。

NW関連の設定
VPN用のNW設定を行なっていきます。ここでは以下の設定を行います。
- VPN用のZone(GPゾーン)の作成
- VPN用のトンネル インターフェイスの作成

ゾーンの作成
VPN接続時に利用するトンネルIFに適用するゾーンを作成します。GP専用のゾーンを作成しておくことで、「【GPゾーン】to【LAN】」のようなポリシーを作成することができるため、既存のポリシーに影響を与えずにVPN環境を構築することが可能になります。また、【GPゾーン】でフィルタをかけることで、VPNユーザーのログ参照がしやすくなります。 GlobalProtectではUser-IDを利用することで、接続されたVPNユーザー単位でアクセス制御を行うことが可能です。そのため、このZoneでUser-IDを有効化します。
- Network > ゾーン > 「追加」をクリックします。
- ゾーン設定で、名前(GP)とタイプ(レイヤー3)を設定し、ユーザーIDの有効化にチェックをいれて「OK」をクリックします。

- GPゾーンが作成されました。次はこのゾーンに割り当てるトンネル インターフェイスを作成します。

トンネル インターフェイスの作成
FWがVPN接続のために利用するトンネル インターフェイスを作成します。VPN接続後、ユーザーはこのトンネル インターフェイス経由でアクセスすることになります。
- Network > インターフェイス > トンネル タブ > 「追加」をクリックします。
- トンネルインターフェイス設定を行います。
- インターフェイス名の末尾にトンネルID(任意の数字)を設定します。
- 設定 タブで、仮想ルータ(default)と先ほど作成したGP用のゾーンを設定し「OK」をクリックします。

(オプション)トンネル インターフェイスにIPを設定することができます。設定しなくても動作しますが、Pingなどの疎通確認に利用できます。
- IPv4タブで、「追加」をクリックし、トンネルIFにIPを設定します。

セキュリティポリシーの設定
VPN接続が完了したクライアントが内部NWにアクセスするためのセキュリティポリシーを設定します。今回は、user001に対して、GPゾーン から LANゾーン へのアクセスを全て許可します。GP ゾーンで User-ID設定を行なっていますので、認証情報を元にユーザー単位でアクセス制御を行うことが可能です。
今回はuser001のみを対象にしていますが、ユーザーもanyとすることで、VPN接続してきた全ユーザーを対象にポリシー設定が可能です。
ポリシーの設定は適宜行なってください。

GlobalProtectの設定
ここまでで、設定の準備が出来ましたのでGlobalProtectの設定を行なっていきます。

GlobalProtect Portalの設定
まず、GP Portalの設定を行います。今回も以下の最低限の設定を行なっていきます。
- GP Portal を動作させるインターフェイスの設定
- SSLサーバ証明書(SSL/TLSサーバプロファイル)の適用
- ユーザー認証設定
- GatewayのIP情報
GP Portalのインターフェイス設定
- Network > ポータル > 「追加」をクリックします。
- GlobalProtectポータル設定の「全般タブ」で以下の設定を行います。
- 名前:ポータル設定の名前
- インターフェイス:GP Portal が利用するIF(eth1/1)
- IPv4アドレス:GP Portalが利用するIF(DHCPの場合 None のまま)

GP Portalの認証設定
- GP Portalが使用するSSLサーバ証明書を指定するため、SSL/TLSサービスプロファイルを指定します。
- クライアントの認証設定を行うため「追加」をクリックします。

- 以下の設定を行い「OK」をクリックします。
- 名前:クライアント認証設定の名前(OSの名前を書くと良いと思います)
- OS:今回はすべてのOSで同じ設定にするため「Any」を設定します。
- 認証プロファイルは「LocalDB」を設定します。

- 認証設定が完了しました。クライアントの認証設定を複数設定することで、たとえばWindowsではSAML認証、iPhoneではローカル認証、のようにOSごとに分けて設定することができます。

GP Potal のエージェント設定
GP Agentに対する各種設定を行います。
- 「エージェント」タブ > エージェント画面の「追加」をクリックします。

- 設定画面で、「認証」タブをクリックします。
- 名前を入力します。(今回はすべてのOS・ユーザーを対象にするのでANYにしています。)
- 認証オーバーライドの設定を行います。
- 「クッキーを生成して認証上書き」にチェックをいれます。
- 「クッキーを受け入れて認証上書き」にチェックを入れます。
- 認証オーバーライド用に作成した証明書を設定します。(この証明書でクッキーを署名・暗号化することで、成り済ましを防止します。)
認証オーバーライドとは、ユーザーが一度ログインに成功したら、クッキーを生成し一定期間は再認証(パスワード入力やMFAなど)を省略して自動接続できるようにする機能です。今回の設定では、ログイン時にクッキーを生成し、次回ログイン時にそのクッキーを受け入れます。また、クッキーの有効期限はデフォルト設定になっています。(適宜変更してください。)

次に外部ゲートウェイの設定を行います。外部ゲートウェイとは、GP Agentがインターネット経由で接続するGP Gatewayのことです。GP Portalは接続してきたGP Agentに対し、接続可能なゲートウェイの情報を伝えます。GP Agentはその情報を元に接続先のGP GatewayにVPN接続を行います。なお、GlobalProtectはマルチゲートウェイをサポートしているため、例えば複数の拠点のNGFWをVPNゲートウェイとして動作させることが可能です。
デフォルトでは、IPSec接続を優先的に行います。もし、IPSecが利用できない環境の場合はSSL-VPNに自動的にフォールバックします。
- 「外部」タブ をクリックします。
- 「外部ゲートウェイ」で「追加」をクリックします。

- 「外部ゲートウェイ」ウィンドウで以下の設定を行い「OK」をクリックします。
- 名前:任意の名前を設定します。
- アドレス:今回は「IP」を選択します。ドメインを取得している場合はFQDNをチェックしてください。
- IPv4:GP GatewayのIPを設定してください。(今回はeth1/1のIPを設定します。)
- IPv6:PrismaAccessAgentライセンス(旧GPライセンス)が必要です。
- 送信元地域:ANYに設定します。(ここでVPN接続元のIPを指定可能です。)

(Option)「信頼されたルートCA」の設定を行います。これは、GlobalProtect Agent経由でクライアントにルート証明書を配布する機能です。今回、GP Portal、Gatewayで利用するSSLサーバ証明書はオレオレ証明書です。そのため、そのままVPN接続を行うと証明書エラーが発生します。この「信頼されたルートCA」にGP PortalとGatewayのSSLサーバ証明書を署名したルート証明書を設定しておくことで、このルート証明書がGP Agentに配布されエラーが出なくなります(証明書のSNI設定等が間違っていると引き続きエラーがでますので注意してください。)。
なお、この配布された証明書はGP Agent内で動作しますが、ローカルルート証明書ストアで「インストールにチェックを入れると、この証明書をPCの証明書ストアに配置することができます(OSの環境にもよるので適宜ご確認ください)。

GlobalProtect Gatewayの設定
最後に、GP Gatewayの設定を行います。GP Portal で認証を受けた GP Agent は、GP Portal から受信した Gateway情報宛(今回は10.0.10.254宛)にVPN接続(IPSec or SSL-VPN)を行います。ここでは、GP Gatewayの基本設定、認証方法の設定と、VPN接続に関するGP Agent の設定を行います。
GP Gatewayのインターフェイス設定
- Network > ゲートウェイ > 「追加」をクリックします。
- 「GlobalProtectゲートウェイ設定」で、「全般タブ」をクリックし、以下の設定を行います。
- 名前:ゲートウェイ設定の名前
- インターフェイス:GP Gateway が利用するIF(今回はeth1/1)
- IPv4アドレス:eth1/1に設定したIPアドレス

GP Gatewayの認証設定
GP GatewayでもGP Agentの認証を行うため設定をします。(一般的に設定内容はGP Portalと同じにすることが多いですが、認証方式等を変えることもできます。)
- 認証タブをクリックし、SSL/TLSサービスプロファイルで「GP-CERT-PROFILE」を選択します。
- クライアント認証で「追加」をクリックし、以下の様にクライアント認証設定を行います。
- 任意の名前を設定します。
- 認証プロファイルをGP Portalと同じくLocalDBに設定して「OK」をクリックします。

GP Gatewayのエージェント設定
エージェントの設定を行なっていきます。ここでは、VPN接続時にNGFWが利用するトンネルインターフェイス関連の設定と、主にGP Agentで接続してきたクライアント端末に関するNW設定(払い出すIP、DNS設定など)を行います。
最初にトンネル設定を行います
- エージェント > トンネル設定で、以下の設定を行います。
- 「トンネルモード」にチェックを入れます。
- トンネルインターフェイスとして「tunnel.1」を設定します。

- 「クライアントの設定」タブに移動し、「追加」をクリックします。

「設定の選択条件」タブで条件を指定することで、OSやユーザーごとに払い出すIPアドレス(IPプール)、スプリットトンネルの設定などを変えることができます。今回はデフォルト設定(全てのOS、ユーザー)をそのまま利用しますので、名前だけ設定します。
- 任意の名前を設定します。

認証オーバーライドの設定を行います。
- 「認証オーバーライド」タブに移動して以下の設定を行います。
- 「クッキーを受け入れて認証上書き」にチェックを入れます。
- 認証オーバーライド用に作成した証明書を設定します。(ポータルに設定したものと同じ証明書を設定します。)

ポータルとゲートウェイと認証オーバーライドについて、簡単に説明しておきます。
繰り返しになりますが、認証オーバーライドとは、GlobalProtec(VPN)の再接続時にユーザー認証を一定時間スキップするこができる機能です。
・最初のログイン時:パスワード認証等のユーザー認証を行います。
・クッキーの発行:ユーザー認証に成功したら、「認証クッキー」を生成してGPAgentに保存します。
・認証オーバーライド:2回目以降のログイン時には、この認証クッキーを利用することで有効期限内であればパスワード等のユーザー認証をスキップすることができます。
認証オーバーライドを設定していない場合、例えばWiFi接続が切れてVPNが切断されてしまった場合など一時的な切断であっても毎回パスワード認証が求められることになります。(イライラするだけですが。。。)
さらにGlobalProtectではこの機能をPortalとGateway間でも利用できるようにしています。冒頭に記載したように、GP Agentは①Portalにアクセス(認証)しGateway情報を入手して、②Gatewayにアクセス(認証)しVPN接続、という手順で動作します。このとき認証オーバーライドを設定していると、①Portal接続(認証)時に認証クッキーが発行され、②Gateway接続時にはこの認証クッキーを利用することで認証を透過的に実施するのでユーザーは1度の認証でVPN接続を行うことができます。
(気になる方は、認証オーバーライドを無効化して動作確認してみてください、PortalとGatewayで2度認証画面が出てくるはずです。)
上記のような動作概要になるため、以下のような設定にすると、Portalアクセス時には認証クッキーが生成され、24時間の間は、PortalにもGatewayにもアクセスが可能になります。
<GP Portal側>
・クッキーを生成して認証上書き:ON
・クッキーを受け入れて認証上書き:ON
・クッキーの有効期限:24時間(デフォルト)
<GP Gateway側>
・クッキーを生成して認証上書き:OFF
・クッキーを受け入れて認証上書き:ON
※ 複数台のNGFWでマルチゲートウェイ構成を行う場合は、Gateway側でもクッキーを生成した方がユーザビリティがあがるケースがあります(一般的にPrisma AccessのMobile Userはマルチゲートウェイ構成になります。)。また、タイムアウト時間についても要件に合わせて調整ができるようになっています。結構奥が深いです・・・
VPN接続したクライアントに対して払い出すIPプールの設定を行います。
- 「IPプール」タブにIPプールの設定を行います。
- 「10.0.50.100-10.0.50.110」(11個) を設定します。

IPプール設定は全体に対して実施する場合は「GlobalProtectゲートウェイ設定」で設定してください。OSやユーザーを個別に指定する場合はここで設定してください。ただし、IPプール設定は両方で設定しないようにしてください。(全体で設定した場合は個別には設定しない。個別に設定したい場合は全体で設定しない。)
https://docs.paloaltonetworks.com/ngfw/help/12-1/globalprotect/network-globalprotect-gateways/globalprotect-gateways-agent-tab/client-ip-pool-tab
スプリットトンネルの設定を行います。
- 「トンネルの分割」タブに移動します。
- LANセグメント(10.0.20.0/24)宛の通信のみVPN接続の対象とするため「包含」に10.0.20.0/24を指定します。
ドメイン、アプリケーションベースでのスプリットトンネルにはPAA(旧GP)ライセンスが必要です。

(オプション)「VPN接続時は接続先の内部DNSサーバーを利用したい。」という場合、ネットワークサービス設定でDNSサーバーを設定します(VPN接続時は内部DNSサーバーしか見なくなります)。
- 「ネットワークサービス」タブに以下の設定を行います。
- DNSサーバー:内部DNSサーバーのIPアドレスを設定
- DNSサフィックス:社内ドメイン等を指定しておくことで、ホスト名のみでアクセスできるようになります。

「OK」をクリックして、ウィンドウを閉じてください。
Commit
これで設定が完了したので、「Commit」を実行して設定を保存してください。
接続確認
GlobalProtect Agent の入手・インストール
- ポータルのIPアドレスにHTTPSでアクセスします。(今回だと「https://10.0.10.254」)
- ユーザー名/パスワードを入力して「LOG IN」ボタンをクリックします。

- Windows用とMac用のAgentがダウンロードリンクが表示されるので、ダウンロードして各自インストールしてください。
- iOS、Android、WIndowsUWPは、それぞれアプリストアからDLしてください。
- Linux用は、CSP上でダウンロードする必要があります。

接続確認
インストール後、ユーザー名・パスワードを入力してログインしてみてください。初回は証明書エラー等が表示される場合がありますが、そのまま続行してください。
無事接続が完了しました。

- 接続状況を確認します。右上のメニューから「設定」をクリックします。

- 接続状況が確認できます。IPプールに設定したアドレスが払い出されています。

OSのルーティングテーブルを確認してみます。
- スプリットトンネル設定で、10.0.20.0/24 宛の通信がVPN経由として登録されています。

