SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

Fortigate 証明書によるクライアントIPSecVPN接続

ネットワーク
2022.12.05

皆さん、こんにちは。

SB C&Sでネットワーク/セキュリティ関連のプリセールスを担当している 大東です。

リモートワークの方も多いと思いますが、今回はFortigateとFortiClientを用いて「クライアント証明書を用いたIPSecVPN」の設定について紹介したいと思います。

また、ユーザー認証については「証明書+Radius経由でのActiveDirectory認証」も組み合わせたいと思います。

※Radiusサーバー及び証明書発行については、「Aruba ClearPass」を利用してます。

クライアント証明書を用いることで、PKI認証が可能となり証明書内のCN名など特定のサブジェクト内容を基に認証ができるようになります。

証明書を用いてVPN接続を行いますので、IPSecVPN時に必要なプリシェアードキーなども必要ありません。

ネットワーク構成

全体構成は、下記となります。

topology.png

証明書作成とFortigateへのインポート

1.ClearPassにて証明書発行

今回は、Aruba ClearPassにて「ルート証明書」「Fortigateのサーバー証明書」「ユーザー配布のクライアント証明書」を作成します。

Aruba ClearPassのインストールやRadius関連の設定については、下記URLに別ブログがありますので参考にしてください。

【第2回】Aruba ClearPass(統合認証基盤) ESXi への展開と冗長構成

【第3回】Aruba IAPとClearPassを利用した802.1xユーザ認証

ClearPassの証明書発行機能であるOnboardを利用して作成します。作成の詳細は省略しますが、GUIから簡単に作成が可能です。

簡単な流れとしては、ClearPass上に証明機関(セルフサイン用の自己認証局)を作成

pict001.png

.CSRを作成し、証明書を発行

ここで、証明書タイプについては必要に応じて正しいものを選択してください。

pict001.png

主に利用するのは、下記の2つになるかと思います。

■TLSクライアント証明書:クライアント証明書発行

■HTTPS:サーバー証明書発行

今回は、下記2つの証明書を発行します。

■サーバー証明書:Fortigateインポート用

pict001.png

■クライアント証明書:接続パソコンへのインストール用

クライアント証明書のCN名は「todaito」としています。

pict001.png

Fortigateやパソコンにインポートするため、下記の内容で証明書をダウンロードします。

・ルート証明書:PKCS12形式、PEM形式 (中間証明書など含めたバンドル形式)

※PKCS12はWindowsパソコン用、PEM形式はFortigateインポート用に使用します。

・サーバー証明書:PKCS12形式

・クライアント証明書:PKCS12形式

2.Fortigateへの証明書インポート

GUI上ではデフォルトでは表示されていないため、「システム」>「表示機能設定」で[証明書]の機能を有効にします。

pict001.png

次にルート証明書をインポートします。

「証明書」>「作成/インポート」>「CA証明書」の順にクリックします。

pict001.png

タイプ:ファイル

アップロード:PEM形式のルート証明書

を選択し、OKをクリックしてインポートします。

pict001.png

インポート後、下記のような形で表示されます。

ルート証明書と中間証明書の2枚の証明書があるため、2つ表示されています。

pict001.png

G_CA_Cert_1:中間証明書

G_CA_Cert_2:ルート証明書 

となっているようです。

pict001.png

次に、Fortigateのサーバー証明書をインポートします。

証明書の画面から「作成/インポート」>「証明書」の順にクリックします。

pict001.png

表示された画面内の[証明書をインポート]をクリック

pict001.png

タイプ:PKCS12証明書

証明書:ClearPassからエクスポートしたPKCS12形式のサーバー証明書

パスワード:エクスポート時に設定したパスワード

を入力して、[作成]をクリック

pict001.png

インポート後、下記のような形で表示されます。

pict001.png

 

Fortigate側のVPN設定

1.VPN接続時にFortigate側でクライアント証明書をチェックするためのPKIユーザーを作成

初回はGUIには表示されないため、CLIにて設定します。

#config user peer
#edit todaito                /*一意の名前
#set ca G_CA_Cert_02     /*ルート証明書
#set subject CN=todaito   /*証明書内のサブジェクト名一致で認証する場合などに利用

Fortigateの画面から「ユーザー&認証」>「PKI」をクリックすると、入力したユーザーが表示されます。

pict001.png

ユーザーを追加する際は、「新規作成」から追加できます。

pict001.png

※今回は各ユーザーのCN名を基に作成しておりますが、共通名のOU名などで認証することもできます。その場合は1つのPKIユーザーだけでも対応可能です。

2.VPN設定時に利用する、「ピアグループ」を作成

PKIの画面右上にある「ピア」をクリックし、「ピアグループ」をクリックします。

pict001.png

表示された画面から「新規作成」をクリックし、作成したユーザーを追加したグループを作成します。

pict001.png

3.Radiusサーバーとして、Aruba ClearPassを設定

「ユーザー&認証」>「RADIUSサーバー」>「新規作成」をクリックします。

pict001.png

ClearPassのIPアドレスとシークレットキー情報を入れていきます。

認証方式は「デフォルト」にしていますが,、Fortigateが自動的に[PAP、MSCHAP_v2、CHAP] の順でネゴシエートしてくれます。

pict001.png

「ユーザークレデンシャル」をテストをクリックすると、ClearPass経由でAD認証が正常にできるかを確認できます。

pict001.png

ちなみに、「接続をテスト」で使われるのは、「ユーザー名:test01 、 パスワード:test01」です。

Radiusサーバー側にローカルユーザーとして登録しておけば確認として利用できます。

ちなみに、ClearPass側はFortigateのデバイスを登録してサービスを登録済みです。

以下、ClearPass側の対象画面です。

<デバイス登録画面>

pict001.png

<サービス登録画面>

認証ソースとして、ADとローカルDBの2つを利用

pict001.png

4.RadiusサーバーをIPSecVPNでXAUTH認証させるために、ユーザーグループに登録

「ユーザー&認証」>「ユーザーグループ」>「新規作成」をクリック

pict001.png

「タイプ:ファイアウォール」、リモートグループから「追加」をクリックして、先ほど登録したRadiusサーバーを選択します。

pict001.png

5.IPSecVPN設定

今回は、ウィザード形式で設定していきます。

「VPN」>「IPSecトンネル」>「新規作成」>「IPSecトンネル」をクリックします。

pict001.png

テンプレートタイプ:リモートアクセス

リモートデバイスタイプ:クライアントベース、FortiClient

を選択して、次へをクリックします。

pict001.png

着信インターフェース:WAN1

認証方式:シグネチャ

証明書名:インポートしたサーバー証明書

ユーザーグループ:設定した「ClearPass」を選択

ピア証明書CA:インポートしたルート証明書を選択

pict001.png

ウィザードに従って、リモートアクセスから許可するネットワークやアドレス、クライアントパソコン側に割り振るIPアドレスなどを設定していきます。

pict001.png

クライアントオプションなども、今回はデフォルトのまま進めていきます。

pict001.png

一部、変更する部分があるため、作成されたIPSecVPNを選択し「編集」をクリックします。

pict001.png

「認証」の設定箇所の編集をクリックし、ピアオプションを設定します。

受け入れるタイプ:ピア証明書グループ

ピア証明書グループ:作成したPKIユーザーグループを選択

pict001.png

IPSecウィーザードによって、通信ポリシーなども自動的に作成されておりますが、必要に応じて追加作成や修正などを行ってください。

パソコンからのFortiClientによる接続

FortiClientのインストールについては割愛しますが、下記からダウンロード可能です。

https://www.fortinet.com/support/product-downloads

1.ルート証明書及びクライアント証明書インストール

今回はルート証明書、クライアント証明書を手動でインストールしますが、実際にはグループポリシーやパソコンをユーザーに渡す前の事前キッティングなどでインストールしておくことを推奨します。

事前にエクスポートしていたルート証明書とクライアント証明書を接続用のパソコンにて展開します。

pict001.png   pict001.png

PKCS12形式のため、エクスポート時に設定したパスワード入力します。

pict001.png

ルート証明書を「信頼されたルート証明機関」にインポートします。

pict001.png

クライアント証明書を「個人」のストアにインポートします。

pict001.png

「コントロールパネル」>「インターネットオプション」>「コンテンツタブ」>「証明書」からインポートしたクライアント証明書を確認し、証明書チェーンが問題ないことを確認します。

pict001.png

2.FortiClient側の設定

FortiClientのリモートアクセスから「新規追加」をクリックし、設定していきます。

リモートGW:WAN1のFQDN名 もしくは IPアドレス

認証方法:X.509証明書

証明書:インポートしたクライアント証明書を選択

認証(Xauth):ユーザー名を保存 (任意)

ユーザー名:AD上のユーザー名

pict001.png

それでは、実際に接続してみましょう。

パスワード部分にAD上のパスワードを入力し、「接続」をクリックします。

pict001.png

問題なく、接続ができました。

pict001.png

接続確認ログ

それでは、接続に際してのログを確認していきましょう。

1.Fortigate側ログ

「ログ」>「システムイベント」>「VPNイベント」から確認が可能です。

pict001.png

ログの詳細を見ると、クライアント証明書の提示とPKIユーザーグループなどの情報が確認できます。

pict001.png

今回、PKIユーザーにてサブジェクトに「CN=todaito」と入力していました。

提示されたクライアント証明書のサブジェクト名を確認し、Fortigate側に登録されているサブジェクト名と一致していて初めて、Radius認証でClearPass側に情報が送られるようになります。

サブジェクト名が異なると、接続NGとなります。

また、XAUTH情報としてFortiClientから入力したユーザー名も確認できます。

2.Radiusサーバー(ClearPass)側

Radiusサーバー側でも、Fortigateから情報やAD連携で認証されていることが確認できます。

ログインステータスも「ACCEPT」となっています。

pict001.png

まとめ

いかがでしたでしょうか。

FortigateとFortiClientを利用してリモートVPNをされているお客様は多いかと思います。今回は証明書を利用したちょっと違ったソリューションでのVPN接続について紹介させていただきました。

Fortigate単体ではなく、周辺の機器と組み合わせることで新しいソリューションも可能となります。

また、FortiClientは「EMS」と組み合わせることで、VPN設定の一括配信、Windows起動時に同時に認証させるといった企業としての接続ポリシーを強制させることも可能です。

SB C&Sでは案件のプリセールスや案件同行、ハンズオンセミナーなど様々な対応を行っておりますので、お気軽にお問い合わせください。

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 第3技術部 2課
大東 智裕 - Tomohiro Daito -

SIer、エンドユーザー情シス/マーケなどを経て、2022年より現職。
九州・中国地区でネットワーク/セキュリティ/ゼロトラストを中心としたプリセールスエンジニアを担当。