認証ポータル (旧キャプティブポータル) の設定

認証ポータル (PAN-OS9.xまでは「キャプティブポータル」と呼ばれていました) を利用すると、以下のようなことができます。

  • 社内LANのクライアントPCが、PA Firewallを経由してインターネットへアクセスしようとした際に、PA FirewallがクライアントPCへ認証画面を表示します。
  • 認証が成功したら、クライアントPCはインターネットへアクセスできます。
  • 認証が完了しているので、そのユーザーIDをログに表示したり、そのユーザーIDをセキュリティポリシーに適用してアクセス制御したりできます。

想定ネットワーク構成はこちらをご参照ください。

認証プロファイルの設定

認証ポータルの設定には、認証プロファイルが必要となるので、先に設定しておきます。

認証サーバーはRADIUSやLDAPなど様々なものが利用できますが、本記事では、想定ネットワーク構成内のActive Directoryを利用します。

認証プロファイルの設定方法はこちらを参照ください。

サーバー証明書の生成

認証ポータルではSSLが利用されるため、サーバー証明書が必要となります。

外部の証明書発行機関から提供されるサーバー証明書でも使えますが、本ガイドでは簡易的にPAで生成したものを利用することにします。

認証局(CA)証明書の生成

既に生成済みの認証局証明書があれば、そちらを使っても問題ありません。

ここでは、既存の認証局証明書がない場合を想定して、設定していきます。

a)「Device」 → 「証明書の管理」の下のb)「証明書」 → c)「デバイス証明書」→ d)「生成」をクリックします。

a)証明書名に「PA-Certificate-Authority(任意)」と入力します。
b)共有名にも「PA-Certificate-Authority(任意)」と入力します。
c)認証局にチェックを入れます。
d)「生成」をクリックします。

生成が成功したことを示すメッセージが出力されたら、「OK」をクリックします。

認証ポータル用のサーバー証明書の生成

生成した認証局証明書を使って、認証ポータルが使うサーバー証明書を生成します。

もう一度、a)「Device」 → 「証明書の管理」の下のb)「証明書」 → c)「デバイス証明書」→ d)「生成」をクリックします。

a) 証明書名に「trust.acme.com_cert (任意)」と入力します。
b) 共通名は、ネットワーク構成に従い、「trust.acme.com」と入力します。
c) Signed byは生成した認証局「PA-Certificate-Authority」を選択します。
d) 「追加」をクリックして、e)「Host Name」を選択し、「trust.acme.com」を入力します。
f) 「生成」をクリックします。

SSL/TLSサービスプロファイルの設定

SSL / TLSサービスプロファイルを使用して、認証ポータルで使用するサーバー証明書の指定と、許可するSSL/TLSのプロトコルバージョンを指定することができます。

本ガイドでは、SSL/TLSプロトコルバージョンはデフォルトのままとします。

a)「Device」 → 「証明書の管理」の下のb)「SSL/TLSサービスプロファイル」 → c)「追加」をクリックします。

認証ポータル用のSSL/TLSサービスプロファイルを生成します。
a)名前に「Auth_Portal_SSL _Profile(任意)」と入力します。
b)証明書は作成済みの「trust.acme.com_cert」を選択します。
c)「OK」をクリックします。

認証ポータルの設定

設定した証明書や認証プロファイルを使って、認証ポータルが使えるように設定します。

a)「Device」 → b)「ユーザーID」 → c)「認証ポータル 設定」 → d)「歯車」 をクリックします。

a)「認証ポータルの有効化」にチェックを入れます。
b)設定したSSL/TLSサービスプロファイル: 「Auth_Portal_SSL_Profile」を選択します。
c)設定した認証プロファイル: 「Auth-Profile01」を選択します。
d)モードは「リダイレクト」を選択します。
e)ホストのリダイレクトは、PAのTrust側IPに紐づいた「trust.acme.com」を入力します。
f)は任意ですが、最小の1分にしておくことで、認証を繰り返すテストをする場合には便利です。
g)「OK」をクリックします。

インターフェイス管理プロファイルの設定

PA Firewallが認証ポータルのWeb画面を返答するためには、インターフェイス管理プロファイルの設定が必要です。

Trustゾーンに属するインターフェイスだけに認証ポータルを適用したいので、新規にインターフェイス管理プロファイルを生成して、それをTrustゾーンに適用します。

a)「Network」 → b)「インターフェイス管理」 → c)「追加」をクリックします。

名前にd)「TRUST(任意)」、e)「応答ページ」にチェックを入れます。

f)「OK」をクリックします。

a)「Network」 → b)「インターフェイス」のethernet1/2に、設定したインターフェイス管理プロファイル「TRUST」を適用します。

TrustゾーンでのUser-IDの有効化

User-ID連携を行うためには、ゾーンでユーザー識別機能を有効にする必要があります。

a)「Network」 → b)「Zone」 で、設定済みのc)「Trust」ゾーンを開きます。

d)「Enable User Identification」にチェックを入れ、e)「OK」をクリックします。

認証ポリシーの設定

認証ポータルを動作させるには、認証ポリシーの設定が必要です。

TrustからUntrustへの通信の際に認証ポータルが動作するよう、以下のように設定します。

a)「Policies」 → b)「認証」 → c)「追加」をクリックします。

a)「全般」タブ → b)「名前」に「Auth-Portal(任意)」と入力します。

a)「送信元」タブ → b)「追加」をクリックして、c)「Trust」を選択します。

a)「宛先」タブ → b)「追加」をクリックして、c)「Untrust」を選択します。

a)「サービス/URLカテゴリ」タブ → b)「追加」をクリックして、(デフォルトでservice-httpは存在していると思いますので、) c)「service-https」を選択します。

a)「アクション」タブ →「認証の実施」で b)「default-web-form」を選択し、c)「OK」をクリックします。

以下のa)のようになります。

[参考] この環境では、Windows 2019 Server (10.0.2.251) は内部DNSも兼ねていたり、その他にもインターネットとの通信が必要な機能が動いていたりするので、認証ポータルによる認証をさせたくありません。よって、以下のb)のように、10.0.2.251 のポータル認証は除外しています。

認証完了までの間だけSSL復号する設定

クライアントがHTTPSサイトへ向かう際に認証ポータルの認証フォームを返すには、SSL復号が必須となります。

理由は、認証ポータルは、HTTP 302リダイレクトを使うためです。

SSL暗号された状態ではHTTPヘッダも暗号化されているため、HTTP 302リダイレクトが動作しません。

既にSSL復号が設定されている場合はこの設定は不要です。

[参考] SSL復号の詳細については、こちらを参照ください。

もし、何らかの理由で「常にSSL復号はしたくない」という場合は、以下のように、送信元ユーザーに「Unknown」を指定することで、認証ポータルによる認証が完了するまでの間だけ、一時的にSSL復号することができます。

Commitを実施します。

動作確認

クライアントPCからインターネットへのアクセスを試みます。

すると、「trust.acme.com:6082」にリダイレクトされ、以下のような認証ポータル画面が出力されます。

認証が成功すれば、インターネットへのアクセスができるようになります。

また、認証が完了しているので、ログ上にUser-IDが表示されるようになります。

コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!

タイトルとURLをコピーしました