FortigateのSSL-VPN廃止の連絡を受けて、IPsecによるクライアントVPNを構築しました。当初はIKEv1で運用しておりましたが、IKEv2へ変更しようとした際にスムーズに変更できなかったため、備忘録として変更方法をまとめました。
検証環境
使用機器:Fortigate50G(FortiOSバージョン:v7.4.11 build2878 (成熟度))
クライアントソフト:FortiClient無償版(ver7.2.7.1116)
検証後に気が付きましたがFortiClientが古いものでした。
最新版とそこまで差異はなさそうなのですが参考程度にしてください。
古すぎるとGUIより詳細設定ができないので注意してください。
また、新しいバージョンのFortiClientではデフォルトのDHの値が変わっております。
そちらにも注意が必要です。
IKEv1の時の設定
Fortigateの設定は以下の通りです。

FortiClientの設定は以下の通りです。



Fortigateのフェーズ1とフェーズ2のIKEプロポーザルやDHの設定はFortiClientと共通になっております。(画像が長くなるので割愛させていただきます。)
トンネルはウィザードを使用してIPsecIKEv1のトンネルを作成し、カスタムトンネルにコンバートした後にプロポーザルやDHを変更したものです。
IKEv2への変更
Fortigateの設定
IPsecトンネルの編集画面を開きます。
「認証」より「IKE」のバージョンを「2」に変更します。

IKEのバージョンを2に変更すると設定項目に変化が起きます。
「フェーズ1プロポーザル」では暗号化方式が増えます。
以前の組み合わせに戻します。

「フェーズ2セレクター」では特に変化はありませんでした。
変化があった場合は以前の設定に戻します。
GUIでの設定は以上となりますが、CLIより設定する必要のある項目があります。
(今回使用したFortigateではEAPの項目がありませんでしたが、他の機器や新しいバージョンにはウィザードやトンネル編集画面にあるようです。)
CLIではEAPを有効化します。(EAPとは認証に用いられるプロトコルの一種です。)
FortigateのGUI右上の「>_」をクリックするか、SSH接続でCLIを開きます。
打ち込むコマンドは以下の通りです。

コマンドは、EAPを有効化、EAP IDを要求、認証には「VPN-group」を利用する、という内容です。
外部サーバーを使用する場合は「set acct-verify enable」のコマンドがあると良いと思います。
このコマンドを有効にすると、外部サーバーの応答を受信するまでIKEv2の認証プロセスを一時停止します。
今回のユーザー認証はFortigate内のユーザーグループを使用するため有効化しておりません。
設定完了後のトンネルのフェーズ1インターフェイスの設定は下記のようになります。

EAPの設定を有効化しなかった場合は共有鍵のみで認証を行うことができます。
Fortigate側の設定は以上です。
FortiClientの設定
FortiClientの変更箇所は1箇所のみです。
対象の接続の編集画面を開き、下部にある「詳細設定」をクリックし、展開された項目の中の「VPN設定」をクリックします。
「IKE」の項目を「バージョン2」に変更して[保存]をクリックします。

以上でFortiClientの設定は完了となります。接続をお試しください。
接続できない場合は、FortiClientの再起動をお試しください。接続を何度か行っていると無駄な情報が残って認証を邪魔することがあるそうです。
それでもダメな場合は設定を再度確認しましょう。日を空けて1から設定すると見落としに気づけたりします。(私もIPsecではよく沼にはまります。)
おまけの検証
「IKE」をバージョン2に変更すると上部の「認証(XAuth)」が「認証(EAP)」に変わります。
FortigateでEAPを有効にせず、FortiClientで「認証(EAP)」を「無効」に設定すると、共有鍵のみでVPN接続が可能になりました。
最後に
お客様環境の設定変更も進めているため設定変更の方法をまとめてみました。
弊社ではFortigateの導入や設定変更作業も行っております。
お困りの方は是非ご相談ください。
お問い合わせはこちら
