本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate に関して、SSL-VPN にてローカルユーザを使用して認証する場合に、そのローカルユーザに対して2要素認証として Email によるワンタイムパスワードを導入するための設定方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.4
Email によるワンタイムパスワードとは
FortiGate の SSL-VPN においてローカルユーザを使用して認証する場合、最低限ユーザ名とパスワードを使用した認証を行います。ローカルユーザではセキュリティ強化の目的で2要素目の認証を追加することができます。
2要素認証としては FortiToken を使用したワンタイムパスワードがありますが、これは無料で使える2トークンを除き、有償の FortiToken を購入する必要があります。
FortiToken 以外の方法として、Email を使用したワンタイムパスワードを利用できます。これはローカルユーザ毎に指定した Email アドレスに対してワンタイムパスワードを記載したメールを FortiGate から送信し、ユーザはそのワンタイムパスワードを FortiClient VPN に入力してログインします。
Email によるワンタイムパスワードの利用条件
以下の条件を満たす必要があります。
- 次の2つの何れかのメール送信用の SMTP サーバを FortiGate から利用可能であること
- デフォルトの Fortinet の SMTP サーバを利用する
- FortiGate のデフォルトでは SMTP サーバとして「fortinet-notifications.com」を利用する設定となっていてこれを利用することができます。ただし、FortiGate の基本保守(FortiCare)が有効であることと、FortiGate がインターネット接続(ポート465を使用)できることが条件となります
- 独自のローカルの SMTP サーバを利用する
- 独自のローカル SMTP サーバを利用してメール送信することもできます
- デフォルトの Fortinet の SMTP サーバを利用する
想定するシナリオ
この組織のネットワークではインターネットとの境界に FortiGate を設置していて、FortiGate の wan1 はインターネットに接続し、internal1 先には内部ネットワークが存在します。外部から内部ネットワークへの接続を実現するために、外部端末から FortiClient を使用して FortiGate に SSL-VPN 接続できるよう FortiGate を設定します。認証方法としてはユーザ・パスワードに加えて Email を使用したワンタイムパスワードを使用します。
本記事では SMTP サーバとしてデフォルトの Fortinet のサーバを使用します。またユーザは FortiGate で定義したローカルユーザを使用しますが、必要に応じて LDAP サーバを使用したローカルユーザを使用することもできます。
Email によるワンタイムパスワード設定手順
本記事では、本記事テーマの本質であるローカルユーザ設定とメールサーバ設定部分のみ説明します。一般的な SSL-VPN 設定については以下の記事を参考にしてください。
- FortiGate SSL-VPN 設定ガイド(AD 認証編)-テレワーク環境構築にも
- FortiGate SSL-VPN 設定ガイド (Azure AD 認証編)
- FortiGate クライアント証明書認証による SSL-VPN 設定ガイド
ローカルユーザの作成
Email を使用したワンタイムパスワードの設定は CLI での設定が必要ですが、その設定を除くユーザの作成は GUI ですることにします。
GUI 左側メニューから「ユーザ&認証 > ユーザ定義」画面を表示し「新規作成」をクリックします。
本記事では FortiGate でユーザを定義するのでユーザタイプは「ローカルユーザ」を選択します。
ユーザ名とパスワードを入力します。
二要素認証はここでは未設定のままとします。
アカウントステータスは有効のままとし、ユーザグループは必要に応じて設定します。
ユーザが追加されたことを確認します。
ここからは CLI で設定を行います。まずshow user local
を実行しローカルユーザ設定を確認します。以下が上で作成したユーザのコンフィグです。
config user local
edit "testuser01"
set type password
set passwd-time 2024-05-26 19:45:51
set passwd ENC +FmcVuVs9uzrKZN0KjJUvJHQqDRv5V929umb4yAr3+5LNGOw36RHNl9gPoVwKR9dQ0izAeRL7oSpBVijA9V+VbQ7FIxvdYPK8JMf1EcXX7+LmIsOke8OTcBhBJA5JLqMZzA2GFjJfbJjDP1LICsq0fji4blGLWd0d1YhUD+RV+lpIl+g/WN9G2Eqdwsci/KP3ek36FlmMjY3dkVA
next
end
このコンフィグに対して Email によるワンタイムパスワードの設定を追加します。以下のコマンドを実行して設定します。
config user local
edit "testuser01"
set two-factor email
set email-to "メールアドレス"
next
end
email-to
のメールアドレス部分にはワンタイムパスワードの送信先となるメールアドレスを指定します。
設定後のコンフィグは以下のようになります。
config user local
edit "testuser01"
set type password
set two-factor email
set email-to "shade@onetime.sample"
set passwd-time 2024-05-26 19:45:51
set passwd ENC +FmcVuVs9uzrKZN0KjJUvJHQqDRv5V929umb4yAr3+5LNGOw36RHNl9gPoVwKR9dQ0izAeRL7oSpBVijA9V+VbQ7FIxvdYPK8JMf1EcXX7+LmIsOke8OTcBhBJA5JLqMZzA2GFjJfbJjDP1LICsq0fji4blGLWd0d1YhUD+RV+lpIl+g/WN9G2Eqdwsci/KP3ek36FlmMjY3dkVA
next
end
なお、Email によるワンタイムパスワード設定後は GUI の該当ユーザの設定画面でも Email による二要素認証の項目が表示されるようになります。
以上でユーザの設定は完了です。この後は一般的な SSL-VPN の設定と同様に、必要に応じて作成したユーザをユーザグループに追加します。また SSL-VPN 設定で該当ユーザまたはユーザグループに対してポータルマッピングの設定を行います。通信を許可するファイアウォールポリシーの設定も行ってください。
メールサーバの設定
FortiGate がワンタイムパスワードを記載したメールを送信する際に使用するメールサーバを設定します。
設定は GUI では「システム > 設定」画面で行います。この画面の「Eメールサービス」でメールサーバの設定ができます。デフォルトでは以下のように Fortinet の SMTP サーバを使用する設定になっています。
独自のメールサーバを使用したい場合は「カスタム設定を使用」を有効化することで設定できます。
CLI で設定する場合はconfig system email-server
で設定します。
◆デフォルト設定の場合
config system email-server
set server "fortinet-notifications.com"
set port 465
set security smtps
end
◆カスタム設定の場合の例
config system email-server
set server "10.1.1.140"
set authenticate enable
set username "mailuser01"
set password ENC 5yhE4zvAv/MOmNKWukcjb5kgcAOeF6vrp4PK14mZU71l8JtVzQD6FDNaPr7vw4RGFencz9SeeQb+balxL0Usikg+YyfnMKKyXioUTVCcqsTiOYnnJIcEtOpv+LX4Vf+oUkB+SkCakfZzJfhgTV4Xiv15ZgZfpXWachj2vKGfbb2TQGGMg24qWia6gGPGXD52xb+UAFlmMjY3dkVA
end
FortiClient VPN からの VPN 接続
FortiClient VPN での接続プロファイルの設定は、通常のユーザ認証の場合と同様に設定します。
ログイン時の操作は、通常のユーザ認証と同様にユーザ名とパスワードを入力して接続します。
以下のように「トークン」欄が表示されると同時に設定してあるメールアドレス宛にワンタイムパスワードが記載されたメールが届くためメールを確認します。
以下のような内容のメールが届きます。
ワンタイムパスワードを入力して「OK」をクリックします。
ログインに成功すると以下の画面になった後、画面が最小化されタスクトレイに格納されます。
(オプション)ワンタイムパスワードのタイムアウト時間の変更
メールで送信されるワンタイムパスワードのタイムアウト時間はデフォルトだと 60 秒です。つまり、ワンタイムパスワードが発行されてから 60 秒を過ぎるとそのワンタイムパスワードは使えなくなり、ログインし直しが必要になります。
このタイムアウトは 5~300 秒の範囲で設定変更することができます。例えば 120 秒に設定変更する場合は以下のコマンドで設定します。
config system global
set two-factor-email-expiry 120
end
参考資料
【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- HA (冗長構成) 設定
- FortiGate HA モードの Active-Passive と Active-Active の違いを解説します
- FortiGate HA(冗長構成)の概要と設定ガイド【詳しく解説】※note記事
- FortiGate HA 構成時のコンフィグ同期の仕様について解説します
- FortiGate HA 構成時の NTP,Syslog,SNMP 等の送信元インターフェースを解説 [ha-direct 設定]
- FortiGate HA 構成時の仮想 MAC アドレスについて解説します
- FortiGate HA ハートビート送信間隔と障害判定しきい値の設定ガイド
- FortiGate HA 構成時のバックアップ及びリストア実施ガイド
- FortiGate HA 構成でのモニタインターフェースダウン時の通信断時間について解説
- FortiGate HA 構成に関するQ&A 【良くありそうな疑問集】
- VDOM (バーチャルドメイン) 設定
- トランスペアレントモード設定
- システム系設定
- 管理者アカウント設定
- 時刻・NTP 設定
- ロギング・Syslog 送信設定
- SNMP 設定
- DHCP サーバ機能設定
- Proxy サーバ機能設定
- アラートメール送信
- ネットワーク系設定
- インターフェース設定
- ルーティング設定
- DNS 設定
- NAT 及び NAPT 設定
- ファイアウォール系設定
- アドレス設定
- サービス設定
- ファイアウォールポリシー設定
- ゾーンを使用したポリシー設定
- VPN 系設定
- Tips
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!
【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント