【注意】FortiGate RAM 2GB以下の小型モデルで ver.7.4.4からProxy機能廃止、ver.7.6.0からSSL-VPN機能廃止 被害者が散見しています> Membership

FortiGate SSL-VPN 設定ガイド(AD 認証編)-テレワーク環境構築にも

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate において SSL-VPN 機能を設定する方法について説明します。なお、クライアント認証方法として LDAP(AD サーバ)を使用する場合を対象としています。

動作確認環境

本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。

  • FortiGate-60F
    • バージョン 7.4.3
  • FortiClient VPN 7.2.4.0972

SSL-VPN とは – テレワーク環境として利用可能

SSL-VPN とは、外部端末から組織の内部ネットワークに安全に接続することを実現する、クライアント-サーバ型の VPN です。クライアントとサーバ間の通信は SSL 暗号化されるためセキュリティ性の高い通信を行うことができます。コロナ禍以降に普及したテレワークのための VPN 接続環境としてこの SSL-VPN が使われているケースが良くあります。

クライアントでは SSL-VPN サーバに接続するためにクライアントソフトを使用します。SSL-VPN サーバアプライアンス毎に専用のクライアントソフトが提供されていることが一般的であり、FortiGate の場合は「FortiClient VPN」というクライアントソフトが提供されています。

FortiClient VPN については無償版が提供されているため、ここでは無償版を使用することとします。

SSL-VPN のトンネルモードと Web モード

SSL-VPN ではクライアントソフトを使用すると上で説明しましたが、クライアントソフトを使わずに Web ブラウザを使用して接続する Web モードも存在します。ただし、クライアントソフトを使用するトンネルモードが主流であり Web モードが使用されるケースは経験上見たことがありません。

SSL-VPN 接続時のクライアント認証方法

SSL-VPN サーバはクライアントが接続を試みた際にクライアントの認証を行います。

認証方法としては以下のようなものがあります。

  • ローカルユーザ認証(FortiGate で設定したユーザでの認証)
  • LDAP 認証(AD サーバのユーザで認証)
  • クライアント証明書による認証(2要素認証)
  • FortiToken を利用したワンタイムパスワード(2要素認証)
  • Eメールを利用したワンタイムパスワード(2要素認証)

本記事では②の LDAP 認証をする場合について説明します。

サーバ証明書について

SSL-VPN サーバにはサーバ証明書がインストールされている必要があります。FortiGate にはデフォルトでサーバ証明書が含まれているため、それを SSL-VPN で使用できます。ただしデフォルトのサーバ証明書を使用した場合クライアントが SSL-VPN 接続時にクライアント側の画面にサーバ証明書に関する警告が表示されます。

警告を表示させたくない場合は別途サーバ証明書を用意し FortiGate にインストールする必要があります。

本記事ではデフォルトのサーバ証明書を使用することとしています。

想定するシナリオ

ここでは以下画像のネットワーク構成を想定します。外部ネットワークに存在する端末から内部ネットワークに存在する端末に接続するために FortiGate で SSL-VPN の設定を行います。クライアント認証方法については内部ネットワークに存在する AD サーバのユーザを利用することとします。

図:想定ネットワーク構成

SSL-VPN の設定は以下の順で行っていきます。

  • LDAP サーバの設定
  • ユーザグループの設定
  • クライアント用 IP アドレスプールの設定
  • SSL-VPN ポータルの作成
  • SSL-VPN 設定
  • ファイアウォールポリシーの設定

GUI での SSL-VPN 設定項目の表示

GUI では、デフォルトでは SSL-VPN 設定項目は表示されない設定となっています。

SSL-VPN 設定項目を表示するためには以下の手順で表示機能の設定を行います。

STEP
表示機能設定画面の表示

GUI にログインし左側のメニューから「システム > 表示機能設定」をクリックします。

STEP
表示機能設定で SSL-VPN を有効化

表示機能設定画面にて「コア機能 > SSL-VPN」のトグルを有効にし、画面下の「適用」をクリックします。

STEP
SSL-VPN 設定項目表示の確認

左側のメニューから「VPN」をクリックして展開し、SSL-VPN 関連の設定項目が表示されていることを確認します。

以上で SSL-VPN 設定項目の表示設定は完了です。

Version 7.4.4 からは CLI での設定が必要

バージョン7.4.4 の場合、デフォルトでは GUI での表示機能設定の中に「SSL-VPN」の項目が表示されず GUI から設定変更ができません。このため SSL-VPN 表示を有効にするためには CLI のコマンドで設定する必要があります。

config system settings
    set gui-sslvpn enable
end

上記コマンドで SSL-VPN 表示を有効にした後は GUI の表示機能設定画面に「SSL-VPN」の項目が表示されます。ただし無効に戻すと GUI の表示機能設定画面から「SSL-VPN」の項目が消えます。

LDAP サーバの設定

認証で使用する AD サーバを LDAP サーバとして設定します。

STEP
LDAPサーバ画面の表示

GUI にログインし左側のメニューから「ユーザ&認証 > LDAPサーバ」をクリックします。

STEP
LDAPサーバ新規作成画面の表示

LDAPサーバ画面左上の「新規作成」をクリックします。

STEP
LDAPサーバの設定

LDAPサーバ設定画面が表示されるため各項目を設定していきます。

  • 名前」には任意の LDAP サーバ表示名を入力します
  • サーバIP/名前」には AD サーバの IP アドレスまたは FQDN(要名前解決) を入力します
  • サーバポート」はデフォルトの 389 のままとします
  • コモンネーム識別子」は「sAMAccountName」と入力します
  • 識別名」は AD ドメインに合わせて「DC=xxxx,DC=xxxx,…」の形式で入力します
    • 例:ドメインが fortiadtest.com の場合は「DC=fortiadtest,DC=com」とします
  • Exchangeサーバ」はデフォルトの OFF のままとします
  • バインドタイプ」は「レギュラー」を選択します
  • ユーザ名」には AD サーバの管理権限を持つユーザ名を「ユーザ名@ドメイン」の形式で入力します
  • ⑧「ユーザ名」で入力したユーザのパスワードを入力します
  • セキュアな接続」は AD 側で暗号化設定していない限りデフォルトの無効のままとします

以上の設定ができたら次の接続テストを行います。

コモンネーム識別子」は「sAMAccountName」の代わりに「cn」を使用するケースもあるようです。「cn」にした場合、認証時のユーザ名は AD ユーザの「表示名」を使用する必要があります。一方「sAMAccountName」にした場合は AD ユーザの「ユーザーログオン名」を使用する必要があります。

STEP
AD サーバとの接続テスト

接続をテスト」をクリックし、「接続ステータス」として「成功」と表示されることを確認します。

次に「識別名」右にある「ブラウズ」をクリックし、AD のツリー情報が表示されることを確認します。

次にユーザ認証のテストを行います。

  • ユーザクレデンシャルをテスト」をクリックします
  • 認証のために使用する AD ユーザの「ユーザ名」と「パスワード」を入力します
  • テスト」をクリックします
  • 「接続ステータス」「ユーザクレデンシャル」の両方に「成功」と表示されることを確認します

以上の確認ができたらLDAPサーバの編集画面で「OK」をクリックして設定を確定します。

STEP
設定の確認

LDAPサーバ画面に戻るため、設定した LDAP サーバが追加されていることを確認します。

以上で LDAP サーバの設定は完了です。

ユーザグループの設定

AD サーバのユーザの中で、SSL-VPN 接続を許可するユーザのグループを設定します。

STEP
ユーザグループ画面の表示

GUI にログインし左側のメニューから「ユーザ&認証 > ユーザグループ」をクリックします。

STEP
ユーザグループ新規作成画面の表示

ユーザグループ画面の左上の「新規作成」をクリックします。

STEP
ユーザグループの設定

ユーザグループ設定画面が表示されるため各項目を設定します。

  • 名前」には任意のグループ名を入力します
  • タイプ」は「ファイアウォール」を選択します
  • メンバー」はデフォルトのまま何も変更しません

続いてリモートグループ欄では「追加」をクリックします。

以下のような画面が表示されます。作成するユーザグループに追加する AD ユーザを選択します。

  • リモートサーバ」ではLDAPサーバの設定で作成したプロファイルを選択します
  • 左側に AD サーバのツリー情報が表示されるため「+」をクリックして展開し、対象のユーザが含まれるノードをクリックします
  • 右側に選択したノードに含まれるユーザ及びセキュリティグループが表示されるため、ユーザグループに含めたいユーザまたはセキュリティグループを右クリックし、「選択したものを追加」をクリックします
    • 例では「BusyoA」セキュリティグループを選択しています

その後、対象のユーザに緑のチェックマークが付いたことを確認し「OK」をクリックします。

ユーザグループ設定画面にて「リモートグループ」欄に設定が追加されたことを確認し「OK」をクリックします。

STEP
設定の確認

ユーザグループ画面にて設定したグループが追加されていることを確認します。

以上でユーザグループの設定は完了です。

クライアント用 IP アドレスプールの設定

クライアントが SSL-VPN 接続するとクライアントの仮想アダプタに対して IP アドレスが割り当てられます。

デフォルトでも特定の IP 範囲からアドレスが割り当てられますが、IP アドレスの枯渇や組織の内部セグメントと重複する恐れもあるのでここでは手動で IP アドレスプールを設定します。

IP アドレスプールは IP 範囲タイプのアドレスオブジェクトとして設定します。

ここでは例としてアドレスオブジェクトを以下のように設定します。

  • インターフェース」は「any」とします
  • タイプ」は「IP範囲」とします

アドレスオブジェクトの詳しい作成方法についてはこちらの記事を確認してください。

SSL-VPN ポータルの作成

SSL-VPN ポータルは、クライアントの SSL-VPN 接続時の動作を定義するプロファイルです。上で設定したユーザグループと紐づけて使用します。

デフォルトでいくつかの SSL-VPN ポータルが存在しますが、ここでは要件に合わせて手動で新規作成します。

作成手順は以下の通りです。

STEP
SSL-VPN ポータル画面の表示

GUI にログインし左側のメニューから「VPN > SSL-VPNポータル」をクリックします。

STEP
SSL-VPN ポータル新規作成画面の表示

SSL-VPN ポータル画面で「新規作成」をクリックします。

STEP
SSL-VPN ポータルの設定

SSL-VPN ポータル設定画面が表示されるため各項目を設定します。

  • 名前」には任意のポータル名を入力します
  • 基本的にデフォルトの OFF のままにします
  • トンネルモード」を有効にします
  • スプリットトンネリングでは基本的にはデフォルトの「ポリシーの宛先に基づいて有効」とします
    • この設定にすることで、クライアントでは SSL-VPN 接続中は組織の内部ネットワーク宛の通信のみ SSL-VPN トンネルを通して通信を行する動作になります
  • 基本的には設定変更の必要はありません
  • 送信元IPプール」では本記事の「クライアント用 IP アドレスプールの設定」で作成したアドレスオブジェクトを指定します
    • ここで指定したアドレス範囲からクライアントにアドレスが割り当てられます

続きの項目も設定していきます。

  • トンネルモードクライアントオプション」ではクライアントの権限等の設定です。要件がある場合は有効化します
  • ホストチェック」ではクライアントにてアンチウィルスソフトが動作している場合のみ接続を許可する等の設定ができます。要件がある場合は有効化します
  • 特定のOSバージョンに制限」ではクライアントの Windows や MAC OS のバージョンごとに接続の許可・拒否を設定できます。要件がある場合は有効化します
  • FortiClientダウンロード」が有効な場合、クライアントは FortiGate から FortiClient インストーラをダウンロードできます。デフォルトで有効ですが必要に応じて無効化します
    • 「FortiClientダウンロード」は Web モードに関する設定で、Tunnel モードには関係ありません。Web モードはデフォルトで無効になっています

以上の設定ができたら「OK」をクリックします。

STEP
設定の確認

SSL-VPN ポータル画面にて設定が追加されたことを確認します。

以上で SSL-VPN ポータルの設定は完了です。

SSL-VPN 設定

ここまでで本題の SSL-VPN 機能を設定するための材料がそろったため SSL-VPN 設定を行います。

設定手順は以下の通りです。

STEP
SSL-VPN 設定画面の表示

GUI にログインし左側のメニューから「VPN > SSL-VPN設定」をクリックします。

STEP
SSL-VPN の設定

SSL-VPN 設定画面にて各項目を設定していきます。

SSL-VPN status」を「有効」にします。※デフォルトで有効です

続きの項目も設定していきます。

  • リッスンするインターフェース」ではクライアントからの SSL-VPN 接続要求を着信するインターフェースを指定します
  • リッスンするポート」ではクライアントからの SSL-VPN 接続要求を受け付けるポートを指定します。デフォルトでは 443 となっているため、別のポートに変更します。例では 8443 としています
  • サーバ証明書」では使用するサーバ証明書を選択します。例ではデフォルトの証明書である「Fortinet_Factory」を使用します
  • リダイレクト設定はデフォルトの無効とします
  • アクセスを制限」では送信元IPによって接続制限ができます。必要な場合は有効化します
  • アイドルログアウト」はデフォルトで有効になっています。必要な場合は設定変更します
  • クライアント証明書を要求」はクライアント証明書のチェックを行う場合は有効にします

続いてトンネルモードクライアントの設定を行います。

  • アドレス範囲」はデフォルトでは自動割り当てになっていますがここでは「カスタムIP範囲を指定」を選択し、「IP範囲」では本記事の「クライアント用 IP アドレスプールの設定」で作成したアドレスオブジェクトを指定します
  • DNSサーバとWINSサーバはデフォルト設定のままとします

次の「認証/ポータルマッピング」欄では「新規作成」をクリックします。

以下の画面が表示されるため「ユーザ/グループ」には本記事の「ユーザグループの設定」で作成したユーザグループを指定し、「ポータル」には本記事の「SSL-VPN ポータルの作成」で作成したポータルを指定します。

続いて「すべてのその他のユーザ/グループ」をクリックして選択状態にし「編集」をクリックします。

先ほどと同じように「ポータル」には本記事の「SSL-VPN ポータルの作成」で作成したポータルを指定します。

以上の設定ができたら画面下部の「適用」をクリックします。

以上で SSL-VPN 機能の設定は完了です。

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

最後に、SSL-VPN クライアントから組織の内部ネットワークへの通信を許可するファイアウォールポリシーを設定します。

ポリシーの設定内容は以下のようにします。

  • 着信インターフェース」には「SSL-VPN tunnel interface (ssl.root)」を指定します
  • 送信元」には SSL-VPN クライアント用の IP アドレスプールと、SSL-VPN 用のユーザグループの2つを指定します
  • その他の項目については通常のファイアウォールポリシー設定と同様に設定します

上画像の設定例ではサービスを ALL にしていますが、必要な場合は通信要件に合わせてサービスを限定してください。

ファイアウォールポリシーの詳しい設定方法についてはこちらの記事を確認してください。

クライアントからの接続方法

以上で FortiGate での設定は完了となります。次にクライアントからの接続方法について説明します。

FortiClient VPN のダウンロードとインストール

FortiClient VPN のインストーラは以下のページからダウンロードできます。

あわせて読みたい

画面を下にスクロールしていくと、FortiClient VPN の欄があるため、そこで対象の OS 用のダウンロードボタンをクリックします。

ダウンロードしたインストーラを実行してインストールを行います。

Windows の場合はインストーラ画面にしたがいクリックしていくだけで簡単にインストール可能です。

FortiClient VPN の起動と接続

FortiClient VPN のインストールができたらソフトを起動し以下の手順で接続を行います。

STEP
VPN 設定画面の表示

以下の画面が表示されるため「VPN設定」をクリックします。

STEP
新規 VPN 接続設定

以下の画面が表示されるため各項目を設定していきます。

  • VPN」では「SSL-VPN」を選択します
  • 接続名」には任意の接続プロファイル名を入力します
  • 説明」は任意に入力します
  • リモートGW」には FortiGate の SSL-VPN をリッスンするインターフェースのアドレスを入力します。また「ポートの編集」にチェックを入れ、FortiGate の SSL-VPN をリッスンするポートを入力します
  • チェック無しのままとします
  • 認証は「ユーザ名入力」とします。「ユーザ名を保存」を選択すると、ユーザ名が保存され接続時にユーザ名の入力を省略できます
  • クライアント証明書」は今回の例では使用しないため「なし」にします

以上の設定ができたら「保存」をクリックします。

STEP
SSL-VPN 接続の実施

以下の画面となるため、VPN名称で先ほど設定した VPN 接続プロファイル名を指定し、ログイン用のユーザ名とパスワードを入力して「接続」をクリックします。

STEP
証明書警告画面の表示

今回の例では FortiGate でデフォルトのサーバ証明書を使用しているため以下の警告画面が表示されます。この画面では「はい」をクリックします。

上の警告画面は、FortiClient VPN 画面の裏側に隠れて表示されるため気付かないことがあります。FortiClient VPN の画面で以下のように「ステータス: 40%」で止まっている場合、上の警告画面が表示されている可能性があるため警告画面が表示されていないか確認してみてください。

STEP
SSL-VPN 接続画面の確認

SSL-VPN 接続に成功すると、以下のような Windows のポップアップが表示されます。また同時に FortiClient VPN の画面は最小化されますが、タスクトレイの中にアイコンが表示されているため、このアイコンをダブルクリックして画面を表示します。

FortiClient VPN 画面では、割り当てられた IP アドレスやユーザ名等を確認できます。

以上で FortiClient VPN での接続は完了です。

SSL-VPN 関連の状態確認コマンド

get vpn ssl monitor

現在接続中のユーザ情報を確認できます。

FortiGate-60F # get vpn ssl monitor
SSL-VPN Login Users:
|Index|User|Group|Auth Type|Timeout|Auth-Timeout|From|HTTP in/out|HTTPS in/out|Two-factor Auth|
|0|user01|SSL-VPN_BusyoA|16(1)|292|28622|100.1.1.2|0/0|0/0|0|

SSL-VPN sessions:
|Index|User|Group|Source IP|Duration|I/O Bytes|Tunnel/Dest IP|
|0|user01|SSL-VPN_BusyoA|100.1.1.2|178|262603/2729260|10.254.0.2|

diagnose vpn ssl statistics

現在接続中のユーザ数等の統計情報を確認できます。

FortiGate-60F # diagnose vpn ssl statistics
SSLVPN statistics (root):
------------------
Memory unit:               1
System total memory:       2010992640
System free memory:        1181990912
SSLVPN memory margin:      201099264
SSLVPN state:              normal

Max number of users:       1
Max number of tunnels:     1
Max number of connections: 2

Current number of users:          1
Current number of distinct users: 1
Current number of tunnels:        1
Current number of connections:    1

以下の値は、FortiGate が再起動されてからの最大同時接続数を示します。上限数ではないためご注意ください。

Max number of users:       1
Max number of tunnels:     1
Max number of connections: 2

【参考】CLI での SSL-VPN 関連コンフィグ

LDAP サーバ設定

本記事での想定シナリオにおける設定後のコンフィグは以下の通りです。

config user ldap
    edit "fortiadtest.com"
        set server "10.1.1.100"
        set cnid "sAMAccountName"
        set dn "DC=fortiadtest,DC=com"
        set type regular
        set username "administrator@fortiadtest.com"
        set password ENC cGxfbBOEfhCB60p+8PTWi8FAP/mjDtWoRy5kfLzGVZXtW1YwS1wO7eTPd2gSRgx46KbfRzUbbt8AkuHnjq4mekfdNJUA5YdyRFbrbTQoh2jgFn9JWnJq6fyPyfqfyhDiq+UGyJuH+gwlTTeUr9b8I1PLaLOmB/Y73K4O7Usl7R3W6+KC788M/Jn4Wd1GgMeHhN/voA==
    next
end

ユーザグループ設定

本記事での想定シナリオにおける設定後のコンフィグは以下の通りです。

config user group
    edit "SSL-VPN_BusyoA"
        set member "fortiadtest.com"
        config match
            edit 1
                set server-name "fortiadtest.com"
                set group-name "CN=BusyoA,CN=Users,DC=fortiadtest,DC=com"
            next
        end
    next
end

SSL-VPN ポータル設定

本記事での想定シナリオにおける設定後のコンフィグは以下の通りです。

config vpn ssl web portal
    edit "Sample-Portal-01"
        set tunnel-mode enable
        set ip-pools "SSL-VPN_IPPOOL"
    next
end

SSL-VPN 機能設定

本記事での想定シナリオにおける設定後のコンフィグは以下の通りです。

config vpn ssl settings
    set banned-cipher SHA1 SHA256 SHA384
    set servercert "Fortinet_Factory"
    set tunnel-ip-pools "SSL-VPN_IPPOOL"
    set port 8443
    set source-interface "wan1"
    set source-address "all"
    set source-address6 "all"
    set default-portal "Sample-Portal-01"
    config authentication-rule
        edit 1
            set groups "SSL-VPN_BusyoA"
            set portal "Sample-Portal-01"
        next
    end
end

参考資料

あわせて読みたい
あわせて読みたい
Technical Tip: Realtime antivirus for SSL VPN Host Check Description This article describes that is only possible to allow SSL VPN connection when a specific third-party antivirus is installed. The below config does n...
あわせて読みたい
Troubleshooting Tip: Checking maximum number of SSL VPN users using ‘diagnose vpn ssl statistics’ Description   This article explains the output of ‘diagnose vpn ssl statistics’ that is often used to check the maximum number of users that connect to SSL VPN....
あわせて読みたい
Technical Tip: Username format for LDAP authentication Description This article describes what format of LDAP username should be used when LDAP authentication is integrated in FortiGate. For example: LDAP user authe...
あわせて読みたい
Technical Tip: LDAPS connections no longer work after update to v7.4.4 Description This article describes the changes in LDAPS authentication behavior introduced in v7.4.4. Scope FortiGate v7.4.4. Solution After upgrading to v7.4.4...

【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです

Amazon アフィリエイトリンク

以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。

note メンバーシップへの参加もお待ちしています!

note(ノート)
陰の構築者たちのメンバーシップ|シェイド@陰の構築者 ネットワーク設計構築をする人に役立つメンバーシップです。 独自ブログ(https://shadowgarden.org/)にてネットワークエンジニア向け情報を発信しており、その活動を応援...

【アフィリエイト】おすすめ WordPress テーマ【SWELL

当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。

また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。

技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。

レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次