⌚ 2020/5/11 (Mon) 🔄 2024/3/20 (Wed)
FortiGateによるテレワークのためのSSL-VPN ~2要素認証~
こんにちは、
サン・エム・システムの松下です。
社内ではインフラ周りの整備を行っております。
この度、社内のファイアウォール装置がEOLを迎えたため
FortiGateにリプレースを行うことになりました。
その際にVPNについてもOpenVPNからFortiGateのSSL-VPNに変更を行い、
2要素認証にチャレンジしましたので記事にしたいと思います。
■なぜ2要素認証にチャレンジしたのか
クライアント証明書の管理について課題がありました。
これまではPHPで作られた自前システムでクライアント証明書の作成から発行、
管理まで行っていましたが当時の開発担当者がいません。
さらに拍車をかけるようにOpenVPNのサーバ証明書の有効期限が
なんと1か月以内で切れることが(ある日)発覚しました。
期間もない中で、どうやってクライアント証明書を管理すればよいか悩んだ末に
FortiGateが持つ2要素認証「認証コード(E-mail)」の方式を思いつきました。
■環境
リプレースの前後の環境は以下の通りです。
<リプレース前>
ファイアウォール機器: SSG5
VPN: Open VPNサーバ (CentOS)
認証方式: AD認証+クライアント証明書
<リプレース後>
ファイアウォール機器: FortiGate 60F
VPN: ※FortiGateのSSL-VPN機能
認証方式: AD認証+認証コード(E-mail)
■実装後の接続イメージ
FortiGateは認証コードの記載されたメールをユーザに送信する。
■メリット&デメリット
実装してみて以下の効果を得ることができました。
<メリット>
○ユーザ&運用者
・クライアント証明書の配布や設置などの管理が不要
・VPNの最大転送速度(スループット)の改善
○運用者
・ユーザ管理がFortiGateのWebGUIで可能
→これまでの自前システムと同じ感覚で管理が可能でした。
・実装は1日以内、サービス提供まで2週間以内
→大阪支店のNW知見者の協力も大きかったです。
<デメリット>
○ユーザ
・メールで認証コードを受け取ったのちにVPN接続する必要があり、これまでより一手順
多くなった。
→セキュリティ的には2要素認証の方が、クライアント証明書の複製によるなりすましを
防げるため良いと考えています。
○運用者
・アカウント作成の一部でFortiGate上のコマンド操作が必要
→運用マニュアルでカバーしました。
今後はSSHを利用したリモートシェルの実装を検討していますが、
FortiGate側でもGUIによる操作ができるようになることを期待しています。
■注意点
FortiClient6.2では相性の問題かイベントID -14 となり、うまく接続できませんでした。
このためFortiGate6.0, FortiClient6.0 の組み合わせで接続を行っています。
■まとめ
予想以上に短い期間で簡単かつよりセキュアにSSL-VPNサービスを提供することができ
大満足しています。