皆さん、こんにちは。
SB C&Sでネットワーク/セキュリティ関連のプリセールスを担当している 大東です。
リモートワークの方も多いと思いますが、今回はFortigateとFortiClientを用いて「クライアント証明書を用いたIPSecVPN」の設定について紹介したいと思います。
また、ユーザー認証については「証明書+Radius経由でのActiveDirectory認証」も組み合わせたいと思います。
※Radiusサーバー及び証明書発行については、「Aruba ClearPass」を利用してます。
クライアント証明書を用いることで、PKI認証が可能となり証明書内のCN名など特定のサブジェクト内容を基に認証ができるようになります。
証明書を用いてVPN接続を行いますので、IPSecVPN時に必要なプリシェアードキーなども必要ありません。
ネットワーク構成
全体構成は、下記となります。
証明書作成とFortigateへのインポート
1.ClearPassにて証明書発行
今回は、Aruba ClearPassにて「ルート証明書」「Fortigateのサーバー証明書」「ユーザー配布のクライアント証明書」を作成します。
Aruba ClearPassのインストールやRadius関連の設定については、下記URLに別ブログがありますので参考にしてください。
・【第2回】Aruba ClearPass(統合認証基盤) ESXi への展開と冗長構成
・【第3回】Aruba IAPとClearPassを利用した802.1xユーザ認証
ClearPassの証明書発行機能であるOnboardを利用して作成します。作成の詳細は省略しますが、GUIから簡単に作成が可能です。
簡単な流れとしては、ClearPass上に証明機関(セルフサイン用の自己認証局)を作成
.CSRを作成し、証明書を発行
ここで、証明書タイプについては必要に応じて正しいものを選択してください。
主に利用するのは、下記の2つになるかと思います。
■TLSクライアント証明書:クライアント証明書発行
■HTTPS:サーバー証明書発行
今回は、下記2つの証明書を発行します。
■サーバー証明書:Fortigateインポート用
■クライアント証明書:接続パソコンへのインストール用
クライアント証明書のCN名は「todaito」としています。
Fortigateやパソコンにインポートするため、下記の内容で証明書をダウンロードします。
・ルート証明書:PKCS12形式、PEM形式 (中間証明書など含めたバンドル形式)
※PKCS12はWindowsパソコン用、PEM形式はFortigateインポート用に使用します。
・サーバー証明書:PKCS12形式
・クライアント証明書:PKCS12形式
2.Fortigateへの証明書インポート
GUI上ではデフォルトでは表示されていないため、「システム」>「表示機能設定」で[証明書]の機能を有効にします。
次にルート証明書をインポートします。
「証明書」>「作成/インポート」>「CA証明書」の順にクリックします。
タイプ:ファイル
アップロード:PEM形式のルート証明書
を選択し、OKをクリックしてインポートします。
インポート後、下記のような形で表示されます。
ルート証明書と中間証明書の2枚の証明書があるため、2つ表示されています。
G_CA_Cert_1:中間証明書
G_CA_Cert_2:ルート証明書
となっているようです。
次に、Fortigateのサーバー証明書をインポートします。
証明書の画面から「作成/インポート」>「証明書」の順にクリックします。
表示された画面内の[証明書をインポート]をクリック
タイプ:PKCS12証明書
証明書:ClearPassからエクスポートしたPKCS12形式のサーバー証明書
パスワード:エクスポート時に設定したパスワード
を入力して、[作成]をクリック
インポート後、下記のような形で表示されます。
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」をクリックすると、入力したユーザーが表示されます。
ユーザーを追加する際は、「新規作成」から追加できます。
※今回は各ユーザーのCN名を基に作成しておりますが、共通名のOU名などで認証することもできます。その場合は1つのPKIユーザーだけでも対応可能です。
2.VPN設定時に利用する、「ピアグループ」を作成
PKIの画面右上にある「ピア」をクリックし、「ピアグループ」をクリックします。
表示された画面から「新規作成」をクリックし、作成したユーザーを追加したグループを作成します。
3.Radiusサーバーとして、Aruba ClearPassを設定
「ユーザー&認証」>「RADIUSサーバー」>「新規作成」をクリックします。
ClearPassのIPアドレスとシークレットキー情報を入れていきます。
認証方式は「デフォルト」にしていますが,、Fortigateが自動的に[PAP、MSCHAP_v2、CHAP] の順でネゴシエートしてくれます。
「ユーザークレデンシャル」をテストをクリックすると、ClearPass経由でAD認証が正常にできるかを確認できます。
ちなみに、「接続をテスト」で使われるのは、「ユーザー名:test01 、 パスワード:test01」です。
Radiusサーバー側にローカルユーザーとして登録しておけば確認として利用できます。
ちなみに、ClearPass側はFortigateのデバイスを登録してサービスを登録済みです。
以下、ClearPass側の対象画面です。
<デバイス登録画面>
<サービス登録画面>
認証ソースとして、ADとローカルDBの2つを利用
4.RadiusサーバーをIPSecVPNでXAUTH認証させるために、ユーザーグループに登録
「ユーザー&認証」>「ユーザーグループ」>「新規作成」をクリック
「タイプ:ファイアウォール」、リモートグループから「追加」をクリックして、先ほど登録したRadiusサーバーを選択します。
5.IPSecVPN設定
今回は、ウィザード形式で設定していきます。
「VPN」>「IPSecトンネル」>「新規作成」>「IPSecトンネル」をクリックします。
テンプレートタイプ:リモートアクセス
リモートデバイスタイプ:クライアントベース、FortiClient
を選択して、次へをクリックします。
着信インターフェース:WAN1
認証方式:シグネチャ
証明書名:インポートしたサーバー証明書
ユーザーグループ:設定した「ClearPass」を選択
ピア証明書CA:インポートしたルート証明書を選択
ウィザードに従って、リモートアクセスから許可するネットワークやアドレス、クライアントパソコン側に割り振るIPアドレスなどを設定していきます。
クライアントオプションなども、今回はデフォルトのまま進めていきます。
一部、変更する部分があるため、作成されたIPSecVPNを選択し「編集」をクリックします。
「認証」の設定箇所の編集をクリックし、ピアオプションを設定します。
受け入れるタイプ:ピア証明書グループ
ピア証明書グループ:作成したPKIユーザーグループを選択
IPSecウィーザードによって、通信ポリシーなども自動的に作成されておりますが、必要に応じて追加作成や修正などを行ってください。
パソコンからのFortiClientによる接続
FortiClientのインストールについては割愛しますが、下記からダウンロード可能です。
https://www.fortinet.com/support/product-downloads
1.ルート証明書及びクライアント証明書インストール
今回はルート証明書、クライアント証明書を手動でインストールしますが、実際にはグループポリシーやパソコンをユーザーに渡す前の事前キッティングなどでインストールしておくことを推奨します。
事前にエクスポートしていたルート証明書とクライアント証明書を接続用のパソコンにて展開します。
PKCS12形式のため、エクスポート時に設定したパスワード入力します。
ルート証明書を「信頼されたルート証明機関」にインポートします。
クライアント証明書を「個人」のストアにインポートします。
「コントロールパネル」>「インターネットオプション」>「コンテンツタブ」>「証明書」からインポートしたクライアント証明書を確認し、証明書チェーンが問題ないことを確認します。
2.FortiClient側の設定
FortiClientのリモートアクセスから「新規追加」をクリックし、設定していきます。
リモートGW:WAN1のFQDN名 もしくは IPアドレス
認証方法:X.509証明書
証明書:インポートしたクライアント証明書を選択
認証(Xauth):ユーザー名を保存 (任意)
ユーザー名:AD上のユーザー名
それでは、実際に接続してみましょう。
パスワード部分にAD上のパスワードを入力し、「接続」をクリックします。
問題なく、接続ができました。
接続確認ログ
それでは、接続に際してのログを確認していきましょう。
1.Fortigate側ログ
「ログ」>「システムイベント」>「VPNイベント」から確認が可能です。
ログの詳細を見ると、クライアント証明書の提示とPKIユーザーグループなどの情報が確認できます。
今回、PKIユーザーにてサブジェクトに「CN=todaito」と入力していました。
提示されたクライアント証明書のサブジェクト名を確認し、Fortigate側に登録されているサブジェクト名と一致していて初めて、Radius認証でClearPass側に情報が送られるようになります。
サブジェクト名が異なると、接続NGとなります。
また、XAUTH情報としてFortiClientから入力したユーザー名も確認できます。
2.Radiusサーバー(ClearPass)側
Radiusサーバー側でも、Fortigateから情報やAD連携で認証されていることが確認できます。
ログインステータスも「ACCEPT」となっています。
まとめ
いかがでしたでしょうか。
FortigateとFortiClientを利用してリモートVPNをされているお客様は多いかと思います。今回は証明書を利用したちょっと違ったソリューションでのVPN接続について紹介させていただきました。
Fortigate単体ではなく、周辺の機器と組み合わせることで新しいソリューションも可能となります。
また、FortiClientは「EMS」と組み合わせることで、VPN設定の一括配信、Windows起動時に同時に認証させるといった企業としての接続ポリシーを強制させることも可能です。
SB C&Sでは案件のプリセールスや案件同行、ハンズオンセミナーなど様々な対応を行っておりますので、お気軽にお問い合わせください。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部 2課
大東 智裕 - Tomohiro Daito -
SIer、エンドユーザー情シス/マーケなどを経て、2022年より現職。
九州・中国地区でネットワーク/セキュリティ/ゼロトラストを中心としたプリセールスエンジニアを担当。