FortiGateの評価ガイド⑧ SSLVPNの認証/LDAP連携したパスワード+クライアント証明書認証
目的
FortiGateのリモートアクセスVPN(SSLVPN)について、以下の要件を満たすために、SingleIDを利用します。
- LDAPサーバに登録されたユーザでログインする。
- LDAPの特定グループに属するユーザのみアクセスを許可する。
- 組織ごとのプライベートCAで発行したクライアント証明書のみ許可する。
- ログインの認証方式は、パスワード+クライアント証明書認証とする。
環境
グループの情報
グループ名 | グループの説明 | メンバー |
リモートアクセスユーザ(ビルトイングループ) | FortiGateのリモートアクセスVPNへログインできるユーザのグループ | user1 |
CAの情報
設定に必要な情報 | 説明および情報取得の方法など |
中間CAの発行者 | SingleID 管理者ポータル>認証>証明書画面の基本情報タブの中間CAの「 発行者 」です。 |
中間CAのサブジェクト | SingleID 管理者ポータル>認証>証明書画面の基本情報タブの中間CAの「 サブジェクト 」です。 |
中間CAの失効リスト配布ポイント | SingleID 管理者ポータル>認証>証明書画面の基本情報タブの中間CAの「 失効リストの配布ポイント 」です。 |
LDAPの情報
設定に必要な情報 | 説明および情報取得の方法など |
LDAPサーバのホスト名 | SingleID 管理者ポータル>認証>LDAP画面の基本情報タブの「ホスト名」です。 |
LDAPサーバのポート番号 | SingleID 管理者ポータル>認証>LDAP画面の基本情報タブの「LDAPSポート番号」です。TCP636です。 |
LDAPベースDN | SingleID 管理者ポータル>認証>LDAP画面の基本情報タブの「 LDAPベースDN 」です。 |
ユーザ名のLDAP属性 | SingleID 管理者ポータル>認証>LDAP画面の基本情報タブの「 ユーザ名のLDAP属性」です。 |
LDAPクライアントのIPアドレス | FortiGate側のグローバルIPアドレスです。インターネットに出ていくときの送信元のIPアドレスです。 |
LDAPのサービスアカウント | SingleID 管理者ポータル>認証>LDAP画面のサービスアカウントタブに登録されているアカウントです。新規に作成することもできますし、デフォルトで「ldap-bind-user」が登録(パスワードは未設定)されています。 |
VPN設定の情報
設定に必要な情報 | 説明および情報取得の方法など |
リッスンするインターフェース | FortiGateのWAN側のインターフェースです。環境により異なります。 |
リッスンするポート | VPNクライアントが接続するポート番号です。ここでは、「10443」とします。 |
サーバ証明書 | VPNのサーバ認証のためのサーバ証明書を指定します。ここでは、「Fortinet_Factory」とします。 |
ファイアウォールポリシーの宛先 | VPNでアクセスした通信に対して、許可したい宛先です。環境により異なります。 |
VPNゲートウェイIPアドレス | VPNクライアントが接続するIPアドレスです。環境により異なります。 |
発信インターフェース | VPN接続が完了し、内部通信が行われるときに、発信元のインターフェースです。 環境により異なります。 |
設定方法
SingleIDの設定
SingleIDの管理者ポータルへログインします。
製品ログイン一覧
ユーザポータルは、組織の一般ユーザが使用するポータルです。ユーザの登録情報、パスワード変更、ワンタイムパスワード設定を行うことができます 管理者ポータルは、組織…
ユーザの作成
SingleID 管理者ポータル>ユーザ一覧画面へ移動します。
「登録」をクリックします。

ユーザ登録画面の「基本情報」を入力します。 作成するユーザは、環境/グループの情報を参照します。
「グループ」タブをクリックします。

参加するグループを選択し、「登録」をクリックします。参加するグループについては、環境/グループの情報を参照します。

クライアント証明書の発行
SingleID 管理者ポータル>ユーザ一覧画面へ移動します。
証明書を発行したいユーザ(user1)の行の左端のチェックボックスにチェックし、「選択実行」をクリックします。プルダウンメニューが表示されますので、「証明書の発行」を選択します。

証明書のプロファイルを選択します。ここでは、デフォルトのプロファイルを選択し、「発行」をクリックします。クライアント証明書は、ユーザに設定されているメールアドレス宛に送信されます。

SingleIDの中間CA証明書のダウンロード
クライアント証明書を発行したSingleIDの中間CA証明書をダウンロードします。
SingleID 管理者ポータル >認証>証明書画面へ移動します。「基本情報」タブへ移動します。
中間CAの横の雲のアイコンをクリックします。
誤って、ルートCA証明書をダウンロードしないようにご注意ください。ルートCA証明書のダウンロードは必要ありません。

「ダウンロード」をクリックし、SingleIDの中間CA証明書をダウンロードします。

SingleIDの中間CAの証明書失効リスト(CRL)のダウンロード
クライアント証明書を発行したSingleIDの中間CAの証明書失効リスト(CRL)をダウンロードします。
SingleID 管理者ポータル >認証>証明書画面へ移動します。「基本情報」タブへ移動します。
中間CAの失効リスト配布ポイントの横の雲のアイコンをクリックします。
誤って、ルートCAの証明書失効リスト(CRL)をダウンロードしないようにご注意ください。ルートCAの証明書失効リスト(CRL)ダウンロードは必要ありません。

「ダウンロード」をクリックし、SingleIDの中間CAの証明書失効リストをダウンロードします。

LDAPのクライアント設定
SingleID 管理者ポータル>認証>LDAP画面のクライアントタブへ移動します。
「登録」をクリックします。
以下の項目を入力し、「登録」をクリックします。
項目 | 設定値 |
IPアドレス | 環境/LDAPの情報 の「LDAPクライアントのIPアドレス」です。 |

LDAPのサービスアカウント設定
SingleID 管理者ポータル>認証>LDAP画面のサービスアカウントタブへ移動します。
「登録」をクリックします。
「ldap-bind-user」の編集をクリックし、パスワードを設定します。初期パスワードは設定されていません。

FortiGateの設定
FortiGateの管理GUIへログインします。

中間CAの証明書のインポート
FortiGate管理GUI>システム>証明書へ移動します。
「Create/Import」>CA証明書をクリックします。
以下の項目を設定し、「OK」を クリックします
項目 | 設定値 |
タイプ | ファイル |
アップロード | SingleID管理者ポータルからダウンロードした中間CAの証明書 |

中間CA の証明書失効リスト(CRL)のインポート
FortiGate管理GUI>システム>証明書へ移動します。
「Create/Import」>CRLをクリックします。
以下の項目を設定し、「OK」を クリックします。
項目 | 設定値 |
インポート方式 | オンライン更新 |
HTTPサーバのURL | 環境/CAの情報 の「中間CAの失効リスト配布ポイント」です。 |

定期的(1時間ごと)に証明書失効リスト(CRL)を更新するために、CLIから「set update-interval 3600」を以下のように設定します。
config vpn certificate crl
edit "CRL_1"
set update-interval 3600
next
end
LDAPサーバの設定
FortiGate管理GUI> ユーザ&認証>LDAPサーバへ移動します。「新規作成」ボタンをクリックします。
以下の項目を設定し、「OK」をクリックします。
項目 | 設定値 |
名前 | SingleID_LDAP |
サーバIP/名前 | 環境/RADIUSの情報 の「LDAPサーバのホスト名」です。 |
サーバポート | 環境/RADIUSの情報 の「LDAPサーバのポート番号」です。 |
コモンネーム識別子 | 環境/RADIUSの情報 の「ユーザ名のLDAP属性」です。 |
識別名 | 環境/RADIUSの情報 の「LDAPベースDN」です。 |
バインドタイプ | レギュラー |
ユーザ名 | 環境/RADIUSの情報 の「LDAPのサービスアカウント」のDN(識別名)です。 |
パスワード | 環境/RADIUSの情報 の「LDAPのサービスアカウント」のパスワードです。 |
セキュアな接続 | 有効 |
プロトコル | LDAPS |

「接続をテスト」をクリックし、接続が成功しない場合には、以下をご確認ください。
・設定内容が間違いないこと
・FortiGateからSingleIDのLDAPサーバのIPアドレスへ接続可能であること
PKIユーザの登録
以下のようにCLIからPKIユーザを登録します。これにより、VPNクライアントから提供されたクライアント証明書が、登録した中間CAで発行されたクライアント証明書であるかどうかを確認します。
config user peer
edit "SingleID_Cert_Check"
set ca "CA_Cert_1"
next
end
ユーザグループの設定
FortiGate管理GUI>ユーザ&認証>ユーザグループへ移動します。「新規作成」ボタンをクリックします。
以下の項目を設定し、「OK」を クリックします。
項目 | 設定値 |
名前 | SingleID_Cert |
タイプ | ファイアウォール |
リモートグループ | リモートサーバ:SingleID_LDAP グループ:リモートアクセスユーザ |

SSLVPNの設定
FortiGate管理GUI>VPN>SSL-VPN設定へ移動します。
以下の項目を設定し、「適用」を クリックします。
項目 | 設定値 |
リッスンするインターフェース | 環境/VPN設定の情報 の「リッスンするインターフェース 」です。 |
リッスンするポート | 環境/VPN設定の情報 の「リッスンするポート 」です。 |
サーバ証明書 | 環境/VPN設定の情報 の「サーバ証明書 」です。 |
クライアント証明書を要求 | 有効 |
認証ポータルマッピング | グループ:SingleID_Cert ポータル:full-access すべてのその他のユーザ/グループ ポータル:web-access |

CLIから以下を設定します。
config vpn ssl settings
config authentication-rule
edit 1
set client-cert enable
set user-peer "SingleID_Cert_Check"
next
end
end
ポリシーの設定
SSLVPNの設定を適用すると、上部に以下のようなメッセージが表示されます。リンクをクリックし、ファイアウォールポリシーの設定を行います。
表示されない場合には、 FortiGate管理GUI>ポリシー&オブジェクト>ファイアウォールポリシーへ移動します。

以下の項目を設定し、「適用」を クリックします。
項目 | 設定値 |
名前 | SSLVPN |
着信インターフェース | SSL-VPN tunnel Interface (ssl.root) |
発信インターフェース | 環境/VPN設定の情報 の「発信インターフェース」です。 |
発信元 | アドレス:SSLVPN_TUNNEL_ADDR1 ユーザグループ:SingleID_Cert |
宛先 | 環境/VPN設定の情報 の「ファイアウォールポリシーの宛先」です。 |
サービス | all |
アクション | 許可 |

動作確認方法
クライアント証明書のダウンロード
SingleIDシステム管理から届いたメールを開きます。「ダウンロード」をクリックします。P12形式のクライアント証明書がダウンロードされます。
もし、PCでメールを受信し、スマートフォンやタブレットにクライアント証明書をインストールしたい場合には、メールに添付されているQRコードを スマートフォンやタブレットで読み取ります。クライアント証明書のダウンロードURLを認識しますので、そのURLへアクセスすることで、 スマートフォンやタブレット にもクライアント証明書をダウンロードできます。

クライアント証明書のインストール
ダウンロードしたSingleIDのユーザ(user1)の P12形式のクライアント証明書ファイルをダブルクリックします。
保存場所として「現在のユーザー」を選択し、「次へ」をクリックします。

ダウンロードしたP12形式のファイル名とパスが正しく入力されていることを確認し、「次へ」をクリックします。

「パスワード」に、クライアント証明書のパスワードを入力します。デフォルトでは、クライアント証明書のパスワードは、ユーザ名と同一です。SingleIDのユーザ(user1)のクライアント証明書のパスワードとして、user1を入力し、「次へ」をクリックします。

「証明書の種類に基づいて、自動に証明書ストアを選択する」が選択されていることを確認し、「次へ」をクリックします。

「完了」をクリックし、証明書をインストールします。

クライアント証明書のインストールが成功しました。

FortiClientのインストール
以下、URLからFortiClientをダウンロードして、インストールします。
FortiClientの設定
以下の項目を設定し、「保存」を クリックします。
項目 | 設定値 |
VPN | SSL-VPN |
接続名 | 任意です。例:SingleID_Cert |
リモートGW | 環境/VPN設定の情報 の「VPNゲートウェイIPアドレス」です。 |
ポートの編集 | 環境/VPN設定の情報 の「リッスンするポート」です。 |
クライアント証明書 | インストールしたクライアント証明書を選択します。 |
認証 | ユーザ名入力 |

FortiGateへリモートアクセスVPN
SingleIDのユーザ(user1)でログインを試みます。

user1でログインできたことを確認します。
