FortiGate

【2023年版】FortiGateのSSL-VPN設定方法

この記事は投稿日から1年以上経過しています。

こんにちは、takiです。
今回は執筆時点(2023/02)での最新版であるFortiOS 7.2.4でのSSL-VPN設定方法について解説します。
ネット上ではFortiGateのSSL-VPN設定について色々と記事が出ており、n番煎じかと思いますが、
自身の勉強が目的なので気にせず書いていきます。

重要

【CVE-2023-27997】

2023/6/15更新
FortiGateのSSL-VPNは2023年6⽉に以下の脆弱性情報が公表されています。
出典:FortiGuard 「FortiOS & FortiProxy - Heap buffer overflow in sslvpn pre-authentication
出典:IPA 「Fortinet 製 FortiOS および FortiProxy の脆弱性対策について(CVE-2023-27997)
該当するFortiOSは以下の通りですので、必ず最新のバージョンに上げてからご使⽤いただくことを強く推奨いたします。

  • 【影響を受ける製品】

- FortiOS バージョン 7.2.0 から 7.2.4
- FortiOS バージョン 7.0.0 から 7.0.11
- FortiOS バージョン 6.4.0 から 6.4.12
- FortiOS バージョン 6.2.0 から 6.2.13
- FortiOS バージョン 6.0.0 から 6.0.16
- FortiProxy バージョン 7.2.0 から 7.2.3
- FortiProxy バージョン 7.0.0 から 7.0.9
- FortiProxy バージョン 2.0.0 から 2.0.12
- FortiProxy 1.2 系の全てのバージョン
- FortiProxy 1.1 系の全てのバージョン
- FortiOS-6K7K バージョン 7.0.10
- FortiOS-6K7K バージョン 7.0.5
- FortiOS-6K7K バージョン 6.4.12
- FortiOS-6K7K バージョン 6.4.10
- FortiOS-6K7K バージョン 6.4.8
- FortiOS-6K7K バージョン 6.4.6
- FortiOS-6K7K バージョン 6.4.2
- FortiOS-6K7K バージョン 6.2.9 から 6.2.13
- FortiOS-6K7K バージョン 6.2.6 から 6.2.7
- FortiOS-6K7K バージョン 6.2.4
- FortiOS-6K7K バージョン 6.0.12 から 6.0.16
- FortiOS-6K7K バージョン 6.0.10

はじめに

SSL-VPNは下図のようなリモートワーク環境で主に使用される機能です。

 

SSL-VPNイメージ図

今回は上記をイメージして下図のような環境を構築します。
ゴールはWindows端末からSSL-VPN経由でLogStare Collectorのログイン画面にアクセスできることとします。

記事内構成環境

【Tips!】LogStare Collectorとは、ネットワーク機器やサーバーなどのシステム監視とログ管理、双方の機能を併せ持つセキュリティ運用ソフトウェアです。
LogStare Collectorについて

なお、今回使用する機器は以下の通りです。

  •  FortiGate-200E v7.2.4 build1396
  • Windows 10(リモート端末)
  •  LogStare Collector

FortiGateへの設定登録

ここでは以下の設定を行います。
1. VPNユーザの登録
2. SSL-VPN設定
3. アドレス設定
4. ポリシー設定

VPNユーザの登録

はじめに、SSL-VPNで接続するためのユーザを作成します。
左のメニューから「ユーザ&認証」>「ユーザ定義」へ移動し、新規作成を押します。

ユーザ&認証

ローカルユーザを選択し「次へ」を押します。

ローカルユーザ

任意のユーザ名とパスワードを入力し「次へ」を押します。

ログインクレデンシャル

そのまま「次へ」を押します。
※今回は割愛しますが、二要素認証を有効にすることで、ログイン時にトークン認証を使用することが可能です。

 

コンタクト情報

最後にそのまま「次へ」を押して完了です。
※今回は割愛しますが、ここでユーザグループも併せて作成することで、グループ単位でのポリシー設定を行うことが可能です。
例)技術部はスプリットトンネル、営業部はフルトンネルなど

エキストラ情報

SSL-VPN設定

左のメニューより、「VPN」>「SSL-VPN設定」を選択します。

SSL-VPNメニュー

現状はデフォルト設定のため、赤枠で囲った箇所を設定していきます。

SSL-VPN初期設定

SSL-VPN設定1

  • リッスンするインターフェース
    •  wan1
  • リッスンするポート
    •  任意(ここでは10443とします)
  •  サーバ証明書
    • 本番環境で設定する場合は正規のサーバ証明書を使用してください。今回はデフォルトの証明書を使用するため、SSL-VPN接続時に警告画面が表示されます。
  •  HTTPをSSL-VPNにリダイレクト
    •  有効にすると、ブラウザでHTTPアクセスした際にSSL-VPNのログイン画面にリダイレクトされます。
  •  アクセスを制限
    •  「特定ホストへアクセス制限」を有効にすることで、SSL-VPNの接続元を特定のIPアドレスや日本の地域といった単位で制限をすることが可能になります。
  •  アイドルログアウト
    •  SSL-VPNユーザが設定した時間内に動作がなければ、強制的にSSL-VPN接続を切断します。(最小値:1秒、最大値:259,200秒(72時間))
  • クライアント証明書を要求
    •  有効にすると、パスワード認証だけでなくクライアント証明書での認証が可能になります。(※使用する際はFortiGateへクライアント証明書に対するルート証明書等のインポートが必要です。)

SSL-VPN設定2

  • アドレス範囲
    •  デフォルトで払出し可能なIPアドレスは10個のため、必要な個数に応じてカスタイマイズしてください。
  •  DNSサーバ
    •  SSL-VPN接続後にActive Directoryなど、接続先のLAN内で使用されるドメインにアクセスする場合は設定が必要です。
  •  WINSサーバを指定
    •  WINSサーバを使用する場合は設定して下さい。

認証/ポータルマッピングにて設定されている項目を選択し、「編集」を押します。

認証ポータルマッピング

ポータルの中から「tunnel-access」を選択し、「OK」を押します。

tunnel_access

※ポータルで選択できるデフォルトの設定はそれぞれ以下の通りです。

ポータル 設定
full-access トンネルモード/Webモードの両方が使用可能
tunnel-access トンネルモードのみ使用可能
web-access Webモードのみ使用可能
  • トンネルモード
    FortiClientを使用した、アクセス方式です。
    Web通信だけでなく、メール通信やその他の通信もFortiGateを経由させることが出来ます。
    ※SSL-VPNはトンネルモードが一般的であるため、今回はこちらを使用します。
  • Webモード
    SSL-VPNユーザがWebブラウザのみでアクセスする方式です。
    通信はWeb通信のみに限られますが、SSL-VPNユーザのPCにFortiClientをインストールする必要が無くなります。

以下のように全ての設定が完了したら、「適用」を押します。

 

SSL-VPN設定後

 

適用ボタンを押すとポリシーの設定を促す注意が出るため、クリックして設定します。

SSL-VPNポリシー-注意

 

アドレス作成

ファイアーウォールポリシー設定にて、SSL-VPN接続後の宛先が必要になるので、あらかじめ社内LAN用のアドレスを作成します。
メニューより、「ポリシー&オブジェクト」>「アドレス」の新規作成を押します。

アドレスメニュー

 

以下のように設定し、「OK」を押します。

アドレス作成

 

ファイアーウォールポリシー設定

メニューより、「ポリシー&オブジェクト」>「ファイアーウォールポリシー」に移動し、新規作成を押します。

ファイアーウォールポリシーメニュー

下図のように赤枠で囲った箇所を設定します。

SSL-VPNポリシー設定1

ロギングオプションで許可トラフィックを「すべてのセッション」に変更します。
【Tips!】FortiGateにてGUIにトラフィックログを表示するための設定方法

SSL-VPNポリシー設定2

上記を設定した後、「OK」を押せばFortiGate側の設定は完了です。

FortiClientのインストール&接続

次にSSL-VPNを利用するユーザ端末の設定を行います。
[FortiClient設定]

FortiClient設定

FortiClientのダウンロード

SSL-VPN設定で設定したインターフェースのIPアドレスとポート番号にブラウザでアクセスします。

ブラウザアクセス

アクセス後、ログイン画面が表示されるのでVPN-Userアカウントでログインします。

10443ログイン

ログイン後、「FortiClientをダウンロード」より端末のOSに合ったFortiClientをダウンロードします。

 

FortiClientダウンロード

インストール

ダウンロードしたインストーラをクリックして、インストールします。

FortiClientインストール

イメージのダウンロード後、セットアップウィザードが表示されるので下図の通りに押していきます。

VPN-SetUp-Wizard1

 

VPN-SetUp-Wizard2

 

 

VPN-SetUp-Wizard3

接続設定

Windowsのタスクバーより、FortiClientをクリックしコンソールを開きます。

FortiClient設定1

FortiClient設定2

「フリーバージョンのライセンスであるためサポートは限られる」との承諾画面が出るので、「I accept」を押します。

 

FortiClient設定3

「VPN設定」を押します。

FortiClient設定4

赤枠で囲った箇所を入力し、「保存」を押します。

FortiClient設定5

SSL-VPN設定で登録したアカウントを入力し、「接続」を押します。

FortiClient設定6

デフォルトのサーバ証明書を使用しているため以下のような警告が出ます。
気にせず「はい」を押します。

FortiClient設定7

下のような画面になれば接続が成功です。

FortiClient設定8

コマンドプロンプトでIPアドレスを確認すると、VPN用のアドレスが追加されています。

FortiClient設定9

また、FortiGateの「ログ&レポート」>「システムイベント」よりVPN-Userの接続が張られている事も確認できます。

VPNアクセスログ

接続確認

最後にSSL-VPN経由でLogStare Collectorにアクセスできることを確認します。

LSCアクセス画面

「ログ&レポート」>「転送トラフィック」より、VPN-Userが「SSL-VPN_to_Syanai」経由でLogStare Collectorへアクセスしたのが分かります。
LSCアクセスログ

まとめ

今回SSL-VPNの設定を初めて行いましたが、割と直感的に設定できるのがFortiGateの良い所だなと感じました。

しかしハマった箇所として、SSL-VPNの接続元制限はファイアーウォールポリシーで設定するものと勘違いしていました。

ファイアーウォールポリシーではSSL-VPNに`繋いだ後`の社内などへのアクセス制限を行うだけで、SSL-VPNの接続元制限は大元の「VPN」>「SSL-VPN設定」でのみ設定が可能です。

そのため、「グループやユーザ単位でアクセス元を制限することが出来ない」というのが今回記事を書いたことの収穫かなと思います。(そもそも、そのような設定を行いたいシーンがあるかは不明ですが、、)

SSL-VPNの設定は奥が深いため、今後も検証結果を作成していこうと思います。

参考

FortiGateでリモートアクセス設定 SSL-VPN編(初級者向け)
FortiGate で SSL-VPN 設定をして外部から VPN 接続する方法
Fortigate SSL-VPN 日本のみ許可する

おまけ

スプリットトンネルのアクセス先を制限したい

ファイアーウォールポリシーに以下のように設定し、挙動を確認していきます。
目的はSSL-VPNユーザのgoogle検索宛ての通信は遮断し、セキュアヴェイルのHP宛ての通信は許可するためです。
接続確認-FWポリシー

リモート端末で実際にアクセスしてみると、googleも弊社のHPも両方ともアクセス出来てしまいます。

接続確認_SA

接続確認-google
FortiGateのアクセスログを確認してみると、弊社のHP宛ての通信とDNS通信はログに出ていますが、google検索宛ての通信はログに出ていません。

接続確認-アクセスログ
リモート端末のルーティングテーブルを確認してみると、ファイアーウォールポリシーで許可設定にした、以下3つ宛てのルーティングがあるのが分かります。
- 8.8.8.8
- www.secuavail.com(18.180.167.106)
- Syanai-LAN(192.168.100.0)

接続確認-ルーティングテーブル
しかし、拒否設定にしたgoogle宛てのルーティングに関してはルーティングテーブルに記載が無いため、FortiGateを経由せずにリモート端末のデフォルトルートから出てしまっています。

拒否ポリシーに設定した宛先にリモート端末からアクセスさせないようにするには、「VPN」>「SSL-VPNポータル」にて「ルーティングアドレスの上書き」を設定することで可能になります。
ルーティングアドレスの上書き

しかし、ここではFQDNが設定出来ないためあまり現実的では無いかもしれません。
(そのような需要があるかは謎ですが、、)
以上、おまけでした。

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

監視項目データベース更新案内(230310_01)前のページ

FortiGateをREST APIを用いて監視しよう (前編)次のページ

ピックアップ記事

  1. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  2. ログフォワーダー「okurun.jar」について
  3. Zabbixヒストリデータのレポート生成について
  4. IoT機器「Raspberry pi」とLogStare Collectorで温…

関連記事

  1. FortiGate

    【FortiGate】CLIコンソールでのログの表示方法

    本記事では、CLIコンソールでのログの表示方法について解説します。…

  2. NW機器

    FortiOS v5.6.6におけるログ出力仕様の変更について

    FortiOS v5.6.6より、従来のログ出力方式に仕様変更が行われ…

  3. FortiGate

    FortiGateをREST APIを用いて監視しよう (前編)

    本記事では前後編にわたり、REST APIを使ってFortiGateを…

  4. NW機器

    【仕様】VPNトンネルの認証方式においてIKE2を使用した場合、「FortiGuard_VPNステー…

    事象VPNトンネルの認証方式においてIKE2を使用した場合、監視項…

  5. NW機器

    FortiGateにてGUIにトラフィックログを表示するための設定方法

    FortiGateではトラフィックログを収集できますが、FortiGa…

月額200円でM356の監査ログの運用レベルUP LogStare M365

AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  2. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  3. SNMPを触ってみた

    ログ分析・監視テクニック

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  4. AWS/Azure

    AWSマーケットプレイス上から無償版のLogStare Collectorを試す…
  5. NW機器

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
PAGE TOP