リモートアクセスVPN-2要素認証(パスワード認証+クライアント証明書認証)
目的
SingleIDのユーザで、FortiGateへVPNを使ってリモートアクセスします。 接続する際の認証方式は、2要素認証(パスワード認証+クライアント証明書認証)です。
環境
ユーザの情報
ユーザ名 | 姓(英字) | 名(英字) | メールアドレス |
---|---|---|---|
user1 | user1 | user1 | user1@poc.singleid.jp |
Info
メールアドレス: 受信可能なメールアドレスを指定してください。
グループの情報
グループ名 | メンバー | 動作 |
---|---|---|
singleid-remote-access-users | user1 | リモートアクセス可能 |
RADIUSの情報
設定に必要な情報 | 説明および情報取得の方法など |
---|---|
RADIUSサーバのホスト名 | SingleID 管理者ポータル>認証>RADIUS画面の基本情報タブのホスト名です。 |
RADIUSサーバのIPアドレス | SingleID 管理者ポータル>認証>RADIUS画面の基本情報タブのIPアドレスです。 |
RADIUSサーバのポート番号 | SingleID 管理者ポータル>認証>RADIUS画面の基本情報タブのRADIUSポート番号です。ここでは、デフォルトUDP1812を使用します。 |
RADIUSクライアントのIPアドレス | FortiGate側のグローバルIPアドレスです。インターネットに出ていくときの送信元のIPアドレスです。 |
RADIUSクライアントのシークレット | 任意の文字列を設定します。ここでは、シークレットをfortigateとします。 |
設定方法
SingleIDの設定
管理者ポータルへログイン
- SingleIDの管理者ポータルへログインします。
グループの作成
- SingleID 管理者ポータル>グループ画面へ移動します。
- グループ追加をクリックします。グループ追加画面がポップアップします。
- グループ名(参照)を入力し、登録ボタンをクリックします。
ユーザの作成
- SingleID 管理者ポータル>ユーザ画面へ移動します。
- 登録ボタンをクリックします。ユーザ登録画面がポップアップします。
- ユーザ登録画面の基本情報を入力します。作成するユーザは、ユーザの情報を参照します。
クライアント証明書の発行
- SingleID 管理者ポータル>ユーザ画面へ移動します。
- クライアント証明書を発行したいユーザの行にあるチェックボックスを選択します。クライアント証明書を発行するユーザは、ユーザの情報を参照します。
- 選択実行ボタンの▼をクリックし、プルダウンメニューの証明書の発行を選択します。
- 証明書発行画面がポップアップします。
- プロファイルを選択します。(例:デフォルト)
- 発行ボタンをクリックして、クライアント証明書を発行します。ユーザのメールアドレス宛に発行されたクライアント証明書のダウンロードリンクが送信されます。
SingleIDの中間CA証明書のダウンロード
- SingleID 管理者ポータル>認証>証明書画面の基本情報タブへ移動します。
- 中間CAブロックの中間CAのタイトル文字の隣のをクリックします。ダウンロード画面がポップアップします。
- ダウンロードボタンをクリックして、SingleIDの中間CA証明書をダウンロードします。
Warning
誤って、ルートCA証明書をダウンロードしないようにご注意ください。ルートCA証明書のダウンロードは必要ありません。
RADIUSの設定
- SingleID 管理者ポータル>認証>RADIUS画面の簡易設定タブへ移動します。
- カタログ表示ボタンをクリックします。
- カタログからFortiGate NGFWの登録ボタンをクリックします。FortiGate NGFW画面がポップアップします。
-
基本情報タブに、以下を設定します。
設定項目 設定内容 有効/無効 有効 サーバ 1 ワンタイムパスワード強制 無効 IP or ホスト名 RADIUSの情報のRADIUSクライアントのIPアドレスを参照 シークレット RADIUSの情報のRADIUSクライアントのシークレットを参照 Info
選択するサーバの番号により、RADIUSサーバのポート番号が異なります。サーバが1の場合には、UDP1812です。SingleID 管理者ポータル>認証>RADIUS画面の基本情報タブのRADIUSポート番号にサーバの番号と通信ポート番号の対応が記載されています。
-
VPNアクセスの認証タブへ移動します。
- 許可グループの設定で許可したいグループ(参照)をダブルクリックし、許可へ移動させます。
- 登録ボタンをクリックします。
FortiGateの設定
ローカル管理者でログイン
- Fortigate 管理GUI https://FortiGateの管理IPアドレス/ へアクセスします。
- ローカル管理者のユーザ名、パスワードを入力し、ログインをクリックします。
SingleIDの中間CA証明書を追加
- Fortigate 管理GUI>システム>証明書画面へ移動します。
- Create/Import>CA証明書ボタンをクリックします。CA証明書をインポート画面がポップアップします。
-
以下を設定し、OKボタンをクリックします。
設定項目 設定内容 タイプ ファイルを選択 アップロード SingleIDの中間CA証明書のダウンロードの手順3でダウンロードしたファイルを選択 Danger
SingleIDのルートCA証明書をFortiGateへインポートしないようにしてください。意図しないVPN接続の認証が成功してしまいます。
リモートアクセスクライアントからFortiGateへのVPN接続時、SingleIDのルートCA証明書がFortiGateにインポートされていると、SingleIDのルートCAを発行元とするどんな中間CAが発行したクライアント証明書であっても、証明書のパスの検証に成功してしまいます。
SingleIDの中間CAの証明書失効リスト(CRL)の設定
- Fortigate 管理GUI>システム>証明書画面へ移動します。
- Create/Import>CRLボタンをクリックします。CRLをインポート画面がポップアップします。
-
以下を設定し、OKボタンをクリックします。
設定項目 設定内容 インポート方式 オンライン更新を選択 HTTPサーバのURL SingleID 管理者ポータル>認証>証明書画面の基本情報タブの中間CAの失効リストの配布ポイントです。 -
定期的(1時間ごと)に証明書失効リスト(CRL)を更新するために、FortiGate CLIからset update-interval 3600を以下のように設定します。
FortiGate CLIconfig vpn certificate crl edit "CRL_1" set update-interval 3600 next end
PKIユーザの登録
登録した中間CAで発行されたクライアント証明書かどうかを検証するために、以下のようにFortiGate CLIからPKIユーザを登録します。
config user peer
edit "SingleID_Cert_Check"
set ca "CA_Cert_1"
next
end
RADIUSサーバの設定
- Fortigate 管理GUI>ユーザ&認証>RADIUSサーバ画面へ移動します。
- 新規作成ボタンをクリックします。新規RADIUSサーバ設定画面がポップアップします。
-
以下を設定します。
設定項目 設定内容 プライマリサーバ/セカンダリサーバ 名前 任意の文字列を設定します。(例:SingleID_RADIUS) IP/名前 RADIUSの情報のRADIUSサーバのIPアドレスを参照 シークレット RADIUSの情報のRADIUSクライアントのシークレットを参照 Info
接続をテストボタンをクリックし、接続が成功しない場合には、以下をご確認ください。
- 設定内容が間違いないこと
- FortiGateからSingleIDのRADIUSサーバのIPアドレスへ接続可能であること
Warning
SingleIDのRADIUSサーバでは、FortiGateのVPNアクセスや管理アクセスのみ認証可能となるように制限をかけているため、ユーザクレデンシャルをテストボタンをクリックし、正しいユーザ情報を入力しても成功となりませんが、問題ではありません。
-
OKボタンをクリックします。
ユーザグループの設定
- Fortigate 管理GUI>ユーザ&認証>ユーザグループ画面へ移動します。
- 新規作成ボタンをクリックします。新規ユーザグループ画面がポップアップします。
-
以下を設定します。
設定項目 設定内容 名前 任意の文字列を設定します。(例:SingleID_Cert) タイプ ファイアウォールを選択 リモートグループ リモートサーバ:SingleID_RADIUS(RADIUSサーバの設定の手順3で設定したサーバの名前) グループ:すべてを追加 -
OKを クリックします。
SSLVPNの設定
- Fortigate 管理GUI>VPN>SSL-VPN設定画面へ移動します。
-
以下の項目を設定し、適用ボタンをクリックします。
設定項目 設定内容 リッスンするインターフェース FortiGateのWAN側のインターフェースです。環境により異なります。 リッスンするポート VPNクライアントが接続するポート番号です。ここでは、「10443」とします。 サーバ証明書 VPNのサーバ認証のためのサーバ証明書を指定します。ここでは、「Fortinet_Factory」とします。 クライアント証明書を要求 有効 認証ポータルマッピング グループ:SingleID_Cert(ユーザグループの設定の手順3で設定したユーザグループ名) ポータル:full-access
すべてのその他のユーザ/グループ ポータル:web-access -
FortiFate CLIから以下を設定します。
FortiGate CLIconfig vpn ssl settings config authentication-rule edit 1 set client-cert enable set user-peer "SingleID_Cert_Check" next end end
ポリシーの設定
-
SSLVPNの設定を適用すると、上部に以下のようなメッセージが表示されます。リンクをクリックし、ファイアウォールポリシーの設定を行います。表示されない場合には、Fortigate 管理GUI>ポリシー&オブジェクト>ファイアウォールポリシーへ移動します。
-
以下の項目を設定し、OKボタンをクリックします。
設定項目 設定内容 名前 任意の文字列です。(例:SSLVPN) 着信インターフェース SSL-VPN tunnel Interface (ssl.root) 発信インターフェース VPN接続が完了し、内部通信が行われるときの発信元のインターフェースです。 環境により異なります。 発信元 アドレス:SSLVPN_TUNNEL_ADDR1 ユーザグループ:SingleID_Cert(ユーザグループの設定の手順3で設定したユーザグループ名) 宛先 VPNでアクセスした通信に対して、許可したい宛先です。環境により異なります。 サービス all アクション 許可
動作確認方法
リモートアクセスVPNの認証(クライアント証明書認証)
クライアント証明書のダウンロード
Info
もし、PCでメールを受信し、スマートフォンやタブレットにクライアント証明書をインストールしたい場合には、メールに添付されているQRコードを スマートフォンやタブレットで読み取ります。クライアント証明書のダウンロードURLを認識しますので、そのURLへアクセスすることで、 スマートフォンやタブレット にもクライアント証明書をダウンロードできます。
クライアント証明書のインストール
- ダウンロードしたSingleIDのユーザ(参照)の P12形式のクライアント証明書ファイルをダブルクリックします。
-
保存場所として現在のユーザーを選択し、次へボタンをクリックします。
-
ダウンロードしたP12形式のファイル名とパスが正しく入力されていることを確認し、次へボタンをクリックします。
-
パスワードに、クライアント証明書のパスワードを入力します。クライアント証明書のパスワードは、ユーザ名(参照)と同一です。次へボタンをクリックします。
-
証明書の種類に基づいて、自動に証明書ストアを選択するが選択されていることを確認し、次へボタンをクリックします。
-
完了ボタンをクリックし、証明書をインストールします。
-
クライアント証明書のインストールが成功しました。
リモートアクセスクライアントのインストール
FortiGateのリモートアクセスクライアントである、FortiClientをインストールしていない場合には、以下よりダウンロードしてインストールします。
接続先の設定
-
FortiClientを起動して、新規VPN接続を作成します。以下を設定します。
設定項目 設定内容 VPN SSL-VPNを選択 接続名 任意の文字列を設定します。(例:SingleID_Cert) リモートGW VPNクライアントが接続するIPアドレスです。環境により異なります。 ポートの編集 SSLVPNの設定の手順2で設定したリッスンするポートです。 クライアント証明書 クライアント証明書のインストールでインストールしたクライアント証明書を選択します。 認証 ユーザ名入力を選択 -
保存ボタンをクリックします。
VPN接続
- VPN名称に、作成した接続先を選択します。
-
SingleIDのユーザ(参照)でログインを試みます。
-
ログインが成功することを確認します。