テレワークが増えたせいなのか、VPNの記事にアクセスが多いです・・・

証明書を使った二要素認証での接続方法をメモ

 

構成はこんな感じ。

SSL-VPNの接続時にユーザ名・パスワード + クライアント証明書(Common Nameもチェック)を行います。

証明書の発行はOpenSSLでの作成が面倒なので、Windowsのフリーソフト、k9pcaを使用します。

失効リスト等の置き場がないので、クライアント証明書の失効はしません。

証明書は端末で共有利用し、アカウント情報の有効・無効でユーザ制限します。

 

 

 

ベクターなどからダウンロードします。

アプリケーションはインストール不要で、exerファイルから起動します。

とりあえず同意。

 

デフォルトの値のまま。

 

先ずは「ルート認証局の構築」を選びます。

 

入力例が表示されるので、組織名や一般名称、有効期限を利用状況に合わせて変更します。

一般名称のところはCommon Nameになります。

 

次にサーバ証明書の作成を選択します。

 

ドメイン、パスワードを入力します。

ドメインはCommon Nameになります。適当で。

ドメインのところは半角のスペースを入れると、FortiClientでの接続時に繋がらなかったです。

パスワードはFortigateにインポートする際に必要になります。

鍵長はデフォルト1024になっているので、2048あたりに変更。

 

次に個人証明書の作成をします。

氏名のところがCommon Nameになります。

後述するFortigateのPKIユーザで、このCommon Nameが関係してきます。

パスワードはSSL-VPNクライアント端末にインポートする際のパスワードです。

鍵長さはデフォルト1024なので2048に変更。

 

k9pca Ver2.2 - certificate - 0001フォルダに証明書があります。

「1.cer」がCA証明書でFortigateにインポートします。

「1000.p12」がクライアント証明書で、SSL-VPNクライアント端末にインポートします。

「9000.pfx」がサーバ証明書で、Fortigateにインポートします。

「9000.pfx」だけ、Fortigateにインポート時、ファイル名が表示されるようになるので、分かりやすいファイル名に変更しておきます。「SSL-VPN Server Cert.pfx」など。

 

[システム]-[表示機能設定]から証明書を有効にします。

 

[証明書]のインポートから[CA証明書]を選択してインストールします。

 

[ファイル]を選択し、アップロードからCA証明書を選び[OK]を押してインストール。

 

エクスターナルCA証明書の所に「CA_Cert_1」で登録されます。

二つ目のCA証明書を入れた場合、「CA_Cert_2」になります。

 

[証明書]のインポートから[ローカル証明書]を選択してサーバ証明書インストールします。

PKCS12証明書を選択し、先ほどファイル名を変更したサーバ証明書をアップロードし、パスワードを入力します。

 

 

 

ここからはSSL-VPNに必要な設定を記述。

 

[ポリシー&オブジェクト]-[アドレス]でSSL-VPN配布時に利用するIPアドレスを設定します。

現在1.1.1.1のサーバが実際に運用されてしまっているので、192.0.2.xxxなど例示用のローカルアドレスを使ったほうがよいです。過去「1.1.1.1」問題で各国で大トラブルになりました。

 

SSL-VPNポータル設定時に、スプリットトンネルを有効にしていると、SSL-VPN用のポリシー作成で、宛先ローカルネットワークをanyが選択できません。

ローカルネットワークをアドレスで登録しておきます。

 

デフォルトのユーザ&デバイス。

SSL-VPN設定画面で、クライアント証明書を要求が有効になっている場合、[ユーザ定義」でユーザを設定すれば、SSL-VPN接続時に証明書が無いと接続できません。証明書のCommon Nameをチェックしない場合はこれでOK。

この後説明する、PKIユーザでは、サブジェクトに記載した文字列と、クライアント証明書で設定したCommon Nameが同一である必要があります。※どこかに前方一致でチェックと記載があった。

 

コマンドで以下を入力

# config user peer 
(peer) # edit testuser1   ←ユーザ名
new entry 'testuser1' added
(testuser1) # set ca CA_Cert_1   ←CA証明書を選びます。
(testuser1) # set subject vpnuser  ←クライアント証明書のCommon Name
(testuser1) # end
#  

 

するとPKIの項目が表示されます。

 

 

ユーザーをダブルクリックして編集します。

二要素認証を有効にします。

 

ユーザグループに作成したユーザを追加します。

 

[VPN]-[SSL-VPNポータル]からtunnel-accessの設定を行います。

SSL-VPNクライアント端末がVPN接続時、インターネットの通信はVPN網を経由させたくないので、スプリットトンネリングを有効に。

宛先ネットワークはアドレスで作成したネットワークを指定。

 

[VPN]-[SSL-VPN設定]から接続時の設定を行います。

「クライアント証明書を要求」を有効にし、サーバ証明書には、インポートしたサーバ証明書を選びます。

認証ポータルマッピングの所も、設定が必要です。

作成したユーザグループを設定します。

 

[ネットワーク]-[スタティックルート]で、SSL-VPNトンネルインターフェース向けにスタティックルートを設定します。

 

ここからはSSL-VPNクライアント端末の設定。

 

クライアント証明書は「1000.p12」をダブルクリックするとインポートが開始されます。

証明書作成時に設定したパスワードを入力します。

 

FortiClientソフトはFortinateのサイトからダウンロードできるのインストールし、画面の様な感じで設定。リモートGWはFortigateのグローバルIPやDDNSを行っているならドメイン名を設定します。

クライアント証明書にインポートした証明書を選びます。

 

後は[接続]をクリックすれば完了。

 

 

 

 

AD

コメント(8)