前回の DMZ に Web サーバーの追加 に GlobalProtect を追加する。(External Gateway)
GlobalProtect について
詳細については少し古い公式ドキュメントが分かりやすいかと思います。(もう少し簡易な pdf があった筈なのですが見つけられませんでした。)
GlobalProtect 設定ガイド(PAN-OS 8.1) 2019-07
ライセンスなしで PC と PaloAlto (PAN-OS) 間の VPN を張ることができます。
スマホとの VPN や、Youtube, zoom トラフィックのブレイクアウト (URL, IP ベース) などは GlobalProtect ライセンスが必要になります。
GlobalProtect ライセンスがあれば IPv6 接続可能、OS のバージョン、HDD暗号化、レジストリ、アンチウィルスソフトのチェックなどができます (HIP:Host Information Profile)
この PAN-OS の GlobalProtect (VPN) は世界展開しているような大規模の会社でも利用できるようになっています。
例えば設置場所、日本jp・ドイツde・アメリカus・香港hk・ブラジルbr とあった場合
- どこか 1つへ接続する (例えば hk)
- hk の「ポータル」が応答し、認証する
- 認証が通った場合、ゲートウェイのアドレス 5つをクライアントへ伝える
- クライアントはそれぞれに接続要求を送信し一番早く応答したゲートウェイ (例えば br) に接続する
- br へ接続すると今度は「ゲートウェイ」で認証をする (ポータルでクッキーを取得し、ゲートウェイで SSO することができる)
- 認証に成功すると VPN が張られて社内へ接続が可能になる
これで世界中どこへ行っても、hk のアドレスを知っていれば最寄りの PaloAlto へ VPN を張って社内 LAN へ接続することができる。
また、ユーザーによって接続する拠点を固定することも可能。
ま、そんな構成で作ったことなんてないですけども。
Internal Gateway も作ったことがないので理解していませんが、クライアントの IP アドレスを GlobalProtect で収集し、PaloAlto を通過するときにユーザー単位で認識できるのかな?
AD のログを収集することでも同じようなことができたと思いますが、違いは何だろう?HIP ぐらいかな(要 GlobalProtectライセンス)
L3 を PaloAlto にするとゼロトラストに近いことができそうですね。
構成図

443番ポートで待ち受けると多量の攻撃を受けるので 12321番で待ち受けます。(ポータルへの接続)
ただ、PaloAlto は 443番でしか待ち受けることができないので、ループバックの 443番ポートで待ち受け、外側のインターフェースからポートフォワードします。
How to Configure GlobalProtect Portal Page to be Accessed on any Port
今回は SSL VPN のみとするため 443/tcp のポートフォワードのみで良い。
IPsec を使用する場合は 100.64.20.16:4501/udp → 172.30.0.0:4501/udp のポートフォワードも必要です。(4501/udp のポート番号は変更不可能です)
- SSL VPN
IPsec のような NAT 超えの面倒がない
443/tcp はポート番号の変更が可能
TCP 通信。オーバーヘッドが大きく、遅延が大きい - IPsec
UDP 通信。オーバーヘッドが小さく、遅延が小さい
認証時のパケットに IP アドレスが含まれるため、IPsec を考慮していない NAT は超えられない
4501/udp のポートは変更できない
※Fortigate は SSL VPN は CPU 処理、IPsec は ASIC 処理で明らかに速度の差があるが、PaloAlto の場合は両方ともデータープレーンで処理され、処理ルートの違いはない。
PA-3200 以上の「トンネルアクセラレーション」はGRE、VXLAN、GTP-Uトンネルのみ有効で、SSL VPN や IPsec はアクセラレーションの対象外。
Globalアドレスは 100.64.20.16/29 の先頭が開いているのでポータルに使用する。
loopback.10 (GP_Portal) が GlobalProtect のポータル & ゲートウェイ (100.64.20.16 → 172.30.0.0:NAT)
tunnel.10 が GlobalProtect の出口
GlobalProtect クライアントのゾーン : GP_Client (172.30.0.1~255)
ユーザー名とパスワードは PaloAlto に登録
改めてアドレスの確認
192.168.0.0/16 : 環境の外、環境にとってはインターネット (グローバル)
100.64.0.0/10 : プロバイダーのアドレス (グローバル)
172.16.0.0/12 : 社内アドレス (プライベート)
証明書
CA を作成する (DEVICE > 証明書の管理 > 証明書)
GlobalProtect のポータル、ゲートウェイでつかう証明書を生成する。


※CA に IP, DNS は不要
「OK」をクリックすると
「Successfully generated certificate and key pair : Pan CA」
と、証明書がすぐに発行されます。
→ 証明書の操作は Commit しなくても反映されます。
- 見やすさのために行を分割しています。1行につなげてください
- コンフィグモードではなくオペレーショナルモードで実行します
- シリアルケーブルで接続していると長いコマンドは見づらいです。ssh での操作がお勧めです
request certificate generate ca yes
country-code JP
state Osaka
locality Osaka
organization "Palo Corp"
days-till-expiry 3653
certificate-name "Pan CA"
name "100.64.20.16"
algorithm ECDSA ecdsa-nbits 384
SAN フィールドの DNS, IP は hostname [ ~ ], ip [ ~ ] と指定する。
コマンドラインの最後は name ~ algorithm ~ で終わる。
GlobalProtect ポータル・ゲートウェイ用証明書の発行


赤い三角が付いてますが、よくわからないので気にせず進めます。
こちらも「Successfully generated certificate and key pair : GP_gateway」と表示されすぐに証明書が発行されます。
- 1行につなげて、オペレーショナルモードで実行します
request certificate generate ca no
signed-by "Pan CA"
ip 100.64.20.16
hostname fw01.my.home
country-code JP
organization "Pan Corp"
days-till-expiry 3653
certificate-name GP_gateway
name 100.64.20.17
algorithm ECDSA ecdsa-nbits 384
設定後の絵

一番上のは最初から入っているもの。削除しても構いません。
WebUI 用に証明書を発行してもいいでしょう。
RSA はサイズが大きくメモリも食って遅いので ECDSA にしましょう。
暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準 によると 今から構築するには RSA なら 3048bit 以上、ECDSA なら 256bit 以上だそうです。
安全のため、もう一段上を選択しておきました。(ま、検証で実用はしないのですが...)
アドレスが同じ場合、ポータルとゲートウェイの証明書は 1つで構いません。
GlobalProtect Portal and Gateway need same Certificate Profile when on same IP address
SSL/TLS サービス プロファイル (DEVICE > 証明書の管理 > SSL/TLS サービス プロファイル)
名前 : GlobalProtect-Ext
証明書 : GP_gateway (上で生成したもの)
最小バージョン : TLSv1.3 (クライアントをこちらで配布するので 1.2 を選ぶ必要はないでしょう)
ほか、キャプチャの通り

インターフェースを作成
ポータル・ ゲートウェイ用 (NETWORK > インターフェイス > ループバック)
- lo.10 : 172.30.0.0 (GP_Portal)
- RT-2nd に接続
- 管理プロファイルは ping を指定
トンネルインターフェース (NETWORK > インターフェイス > トンネル)
- ゾーンを作成
GlobalProtect クライアントのゾーンになる

「ユーザー ID の有効化」にチェックを入れる。
他のゾーンも「ユーザー ID の有効化」にチェックを入れる。
- インターフェースを設定

tunnel.10 : 仮想ルータ、ゾーンのみ指定
IPアドレスなど他のタブへの入力は不要。
IPv6 のタブで「インターフェースでの IPv6 の有効化」にチェックを入れると Commit 時のワーニングが 1つ減る
ルーターを確認してみる
仮想ルーターのところを見ると RT-2nd に殆どのインターフェースが入っている

ゾーンに色を付ける (OBJECTS > タグ)
GP_Portal : オーキッド

GP_Client : 緑

認証
順番的に少し変ですが、次の操作が分かりやすいのでここでユーザーを作成します。
パスワード複雑性設定 (DEVICE > セットアップ > 管理 右下の方)
デフォルトでパスワードの文字数が 8文字必要なので 4文字に変更します。

変更したら commit します。
ユーザー登録 (DEVICE > ローカル ユーザー データベース > ユーザ)

user01 : pass01
user02 : pass02
user03 : pass03
のユーザーを作成

認証プロファイル (DEVICE > 認証プロファイル)

Local-Auth-Profile
パロアルトに登録しているユーザーで認証する

all : ローカルユーザーは全員許可
3回パスワードを間違えたら 10分間ロックアウト。
必要に応じて変更しましょう。
ポータル・ゲートウェイの設定
ポータル (NETWORK > GlobalProtect > ポータル)
全般 タグ
名前 : GP_Portal
インターフェイス : loopback.10 (構成図どおり)
IP アドレス : 172.30.0.0
必要があればログ設定

認証 タグ
SSL/TSL サービス プロファイル : GlobalProtect-Ext (プルダウンで選択)

「クライアント認証」の「追加」をクリック
クライアント認証
名前 : Local-AuthーClient
認証プロファイル : Local-Auth-Profile (プルダウン)

ポータル データ収集 タグ
エージェント タグ
作成した CA をプルダウンから選択
エージェントを「追加」する

認証 タブ
設定の選択条件 タブ
今回は設定なし
内部 タブ
Internal Gateway の設定はなし
外部 タブ
名前 : Ext-Gateway
アドレス : IP
IPv4 : 100.64.20.16
送信元地域 : Any を追加

Allow User to Uninstall GlobalProtect App (Windows Only)
GlobalProtect アプリケーションのアンインストールを許可するか
アプリケーション タブ
ウェルカム ページ : ポータルの認証に成功するとブラウザが開き、ウェルカムメッセージが表示される。 (Gateway ではないことに注意)

そのほか、必要なら設定を追加。
詳細は右上の ? をクリックして開いたページを確認
HIP データ収集 タブ
ライセンスが必要なため設定なし
「HIP データの収集」のチェックを外しておくと Commit 時のワーニングが一つ減る (ライセンスがない場合)
残りの クライアントレス VPN, サテライト は設定なし。
ゲートウェイ (NETWORK > GlobalProtect > ゲートウェイ)
全般 タグ
名前 : GP_Ext-Gateway (外部ゲートウェイ)
インターフェイス : loopback.10 (構成図どおり)
IP アドレス : 172.30.0.0

認証 タグ
SSL/TLS サービス プロファイル : GlobalProtect-Ext (プルダウン)
クライアント認証 で「追加」

クライアント認証
名前 : Local-AuthーClient
認証プロファイル : Local-Auth-Profile (プルダウン)

エージェント タブ
トンネル設定
トンネルモード : ✅
トンネル インターフェイス : tunnel.10 (構成図どおり)
IPsec の有効化 : SSL VPN のみなのでチェックを入れない
IPsec を優先、失敗したときは SSL VPN へフォールバックするならチェックを入れる

クライアントの設定
設定の選択条件
認証 オーバーライド
設定なし
IP プール
トンネルの分割
(ブレイクアウト設定)
設定なし
- 「アクセスルート」に VPN を通すアドレスを指定する
社内のアドレスを書いておくと、社内向けのトラフィックのみ VPN を通る
※何も書いていなければ全て VPN を通る - 「ドメイン及びアプリケーション」にブレイクアウトするドメイン名、アプリケーションを指定 (ライセンス要)
ネットワークサービス
DNS サーバー : 192.168.0.252, 1.0.0.1
DNS サフィックス : my.home

クライアント IP プール
さっきの「クライアントの設定」の IP プールを入力しなかった場合はこちらが有効になる。

ネットワークサービス
同上

継承ソース : PPPoE で取得した情報を反映させることが可能。
接続設定
動画トラフィック
GlobalProtect ライセンスが必要なため省略
(MS365,ms-update, Youtube などをトンネル内を通さないように設定可能)
HIP 通知
GlobalProtect ライセンスが必要なため省略
サテライト
設定なし
ポリシーの設定-1 (外からポータル、ゲートウェイ宛)
サービスの作成 (OBJECTS > サービス)
アドレスの定義 (OBJECTS > )
セキュリティ (POLICIES > セキュリティ)
NAT (POLICIES > NAT)
ポリシーの設定-2 (GlobalProtect から LAN 内部へ)
セキュリティ (POLICIES > セキュリティ)
全般

接続元

宛先

アプリケーション

サービス/URL カテゴリ

アクション

NAT (POLICIES > NAT)
LAN のアドレスなので NAT は不要





























