【Fortigate】SSL-VPNリモート接続(トンネルモード、ActiveDirectory連携、LDAP連携)FortiOS6.2.4

注意

FortiOS 7.6.3 以降では、SSL-VPN のトンネルモードは IPsec VPN に置き換えられ、GUI でも CLI でも使えなくなりました。以前のバージョンの設定は引き継がれないため、7.6.3 以降にする前に IPsec VPN へ移行する必要があります(SSL VPN tunnel mode replaced with IPsec VPN | FortiOS 7.6.3 Release Notes)。この記事は FortiOS 6.2.4 での検証です。

FortiGate には SSL-VPN の機能があり、リモート環境から比較的簡単に社内へ接続できます。この記事では、FortiGate のローカルユーザではなく、LDAP サーバ(Active Directory)のユーザで SSL-VPN のユーザ認証を行います。検証時の FortiOS は 6.2.4 です。

この記事は、次の記事を前提にしています。SSL-VPN の設定(ポータルなど)と FortiClient の設定は、次の記事のものをそのまま使います。

>> 参考記事:【Fortigate】SSL-VPNリモート接続(トンネルモード、ローカルユーザ)FortiOS6.2.4

この記事でわかること
  1. FortiGate に LDAP サーバ(Active Directory)を登録して、接続とユーザ認証をテストする方法
  2. LDAP のユーザを使う SSL-VPN 用のファイアウォールポリシー
  3. FortiClient での接続と、転送トラフィックのログでの確認

検証の構成

インターネット側の端末は、FortiClient で FortiGate に SSL-VPN(トンネルモード)で接続します。FortiGate は、入力されたユーザ名とパスワードを LDAP で Active Directory(10.0.1.10)に確認します。接続後は、VPN を通して社内のサーバ(10.0.1.10)に RDP で接続します。今回は、Active Directory と RDP の接続先は同じサーバです。

Internet10.0.1.10Active Directory+ RDP の接続先(同じサーバ)FortiGateFortiClientトンネル IP10.212.134.200RDPSSL-VPNLDAP(389)でユーザを認証
図1 検証の構成

認証から通信までの流れは次のとおりです。

FortiClientFortiGateActive Directory① ユーザ名・パスワードで接続② LDAP でユーザを確認③ 成功④ トンネル確立・IP を割り当て⑤ RDP(ポリシーで許可)
図2 LDAP 認証を使った SSL-VPN の流れ

Active Directory の準備

ドメイン hirotanoblog.com として Active Directory を構築し、SSL-VPN で使うユーザをあらかじめ作っておきます。

LDAP サーバの登録

LDAP サーバを登録する

FortiGate に LDAP サーバ(Active Directory)を登録します。ユーザ&デバイス ›› LDAPサーバ を開き、新規作成 をクリックします。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

FortiGate 管理画面画面イメージ
ユーザ&デバイス ›› LDAPサーバ ›› LDAPサーバの編集
1名前ActiveDirectory
2サーバIP/名前10.0.1.10
サーバポート389
3コモンネーム識別子samAccountName
4識別名cn=users,dc=hirotanoblog,dc=com ブラウズ
Exchangeサーバ OFF
5バインドタイプ○ シンプル○ 匿名◉ レギュラー
ユーザ名(伏せています)
パスワード••••••••
セキュアな接続 OFF
6接続ステータス 成功
接続をテストユーザクレデンシャルをテスト
図3 LDAP サーバの設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は ActiveDirectory にします。
2サーバIP/名前LDAP サーバの接続先です。今回は IP アドレス 10.0.1.10 を指定します。ポートは LDAP の 389 です。
3コモンネーム識別子ユーザを探すときに使う属性です。Active Directory の Windows 2000 より前の形式のログオン名(sAMAccountName)を使うので、samAccountName にします。
4識別名ユーザを探し始める場所(DN)です。ドメインが hirotanoblog.com で、ユーザは Users コンテナにいるので、cn=users,dc=hirotanoblog,dc=com にします。
5バインドタイプレギュラー にし、Active Directory を参照できるユーザ(今回は管理者アカウント)のユーザ名とパスワードを入力します。
6接続ステータス接続をテスト をクリックし、緑の 成功 になることを確認します。

識別名の横の ブラウズ をクリックすると、画面の右側に LDAP識別名のクエリ が表示され、Active Directory のツリーを確認できます。cn=users,dc=hirotanoblog,dc=com が表示されれば、FortiGate から Active Directory を参照できています。

FortiGate 管理画面画面イメージ
LDAPサーバの編集 ›› LDAP識別名のクエリ
1ツリーcn=users,dc=hirotanoblog,dc=com
図4 ブラウズで表示される LDAP のツリー(実際の画面ではなく、表示のポイントを示したイメージです)

ユーザの認証をテストする

ユーザクレデンシャルをテスト をクリックすると、ユーザ名とパスワードの入力画面が表示されます。SSL-VPN で使うユーザの名前とパスワードを入力し、テスト をクリックして、ユーザクレデンシャルが成功することを確認します。

FortiGate 管理画面画面イメージ
LDAPサーバの編集 ›› ユーザクレデンシャルをテスト
1ユーザ名(伏せています)
パスワード••••••••
接続ステータス 成功
2ユーザクレデンシャル 成功
テスト閉じる
図5 ユーザクレデンシャルのテスト(実際の画面ではなく、確認するポイントを示したイメージです)

SSL-VPN の設定

SSL-VPN の設定(ポータル、SSL-VPN 設定)は、前提の記事のものをそのまま使います。

>> 参考記事:【Fortigate】SSL-VPNリモート接続(トンネルモード、ローカルユーザ)FortiOS6.2.4

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

SSL-VPN 用のポリシーを作る

ポリシー&オブジェクト ›› ファイアウォールポリシー で、SSL-VPN 用のポリシーを作ります。RDP の接続先のサーバ(10.0.1.10)は、アドレスオブジェクト Internal-RDP として事前に作ってあります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› ファイアウォールポリシー ›› ポリシーの編集
名前SSL-VPN-LDAP
1着信インターフェースSSL-VPN tunnel interface (ssl.root)
2発信インターフェースport2
3送信元SSLVPN_TUNNEL_ADDR1
(伏せています)(LDAP のユーザ)
4宛先Internal-RDP
スケジュールalways
5サービスALL
アクション◉ 許可○ 拒否
インスペクションモード◉ フローベース○ プロキシベース
ファイアウォール / ネットワークオプション
6NAT OFF
プロトコルオプションdefault
セキュリティプロファイル
アンチウイルス / Webフィルタ / DNSフィルタ / アプリケーションコントロール / IPS / ファイルフィルタ すべて OFF
SSLインスペクションno-inspection
ロギングオプション
7許可トラフィックをログ ON ○ セキュリティイベント◉ すべてのセッション
図6 SSL-VPN 用のファイアウォールポリシー(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1着信インターフェースSSL-VPN のトンネルのインターフェース ssl.root を選びます。
2発信インターフェース社内向けのインターフェース(今回は port2)を選びます。
3送信元SSL-VPN のクライアントに割り当てるアドレス(SSLVPN_TUNNEL_ADDR1)と、ユーザの両方を指定します。+ をクリックすると、アドレスとユーザを選べます。ユーザには、今回の LDAP のユーザを指定します。
4宛先社内のサーバとして作った Internal-RDP を選びます。
5サービス今回はテストなので ALL にします。
6NAT無効にします。サーバには、VPN クライアントのトンネル IP(10.212.134.200)のまま届きます。
7許可トラフィックをログすべてのセッション にします。
補足

ポリシーの送信元で LDAP のユーザを選ぶには、そのユーザが FortiGate にユーザとして登録されている必要があります。ユーザ&デバイス ›› ユーザ定義 の 新規作成 で始まるウィザードで リモートLDAPユーザ を選び、LDAP サーバからユーザを選んで登録します。ユーザごとではなく、LDAP サーバをリモートグループにしたユーザグループを送信元に指定する方法もあります。

端末側の設定と動作確認

FortiClient で接続する

端末の FortiClient の設定は、前提の記事と同じです。作成した SSL-VPN という名前の接続先を選び、Active Directory のユーザ名とパスワードを入力して Connect をクリックします。

FortiClient画面イメージ
接続前
VPN Name:SSL-VPNUsername:(伏せています)
Password:••••••••
Connect
接続後
VPN Name:SSL-VPNIP Address:10.212.134.200
Username:(伏せています)
Duration:00:00:21
Bytes Received:0.19 KB / Bytes Sent:0.68 KB
図7 FortiClient での接続(実際の画面ではなく、表示のポイントを示したイメージです)

しばらくすると、SSL-VPN がつながり、FortiClient に割り当てられた IP アドレス(10.212.134.200)が表示されます。

RDP で接続し、ログを確認する

VPN を通して、10.0.1.10 に RDP で接続できました。ログ&レポート ›› 転送トラフィック を見ると、LDAP のユーザがトンネル IP(10.212.134.200)から 10.0.1.10 に RDP で接続し、ポリシー SSL-VPN-LDAP で許可されていることを確認できます。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
日付/時刻送信元宛先サービス結果ポリシーID
2020/10/04
21:12:33
1(伏せています)
(10.212.134.200)
10.0.1.10RDP✓ 243.97 kB /
1.09 MB
SSL-VPN-LDAP (4)
2020/10/04
21:10:33
(伏せています)
(10.212.134.200)
10.0.1.10RDP✓ 239.65 kB /
1.08 MB
SSL-VPN-LDAP (4)
2020/10/04
21:07:18
(伏せています)
(10.212.134.200)
10.0.1.10RDP✓ 301.24 kB /
500.69 kB
SSL-VPN-LDAP (4)
⋮(以下略)
図8 SSL-VPN を通った RDP のログ(実際の画面ではなく、表示のポイントを示したイメージです。ユーザ名は伏せています)

まとめ

設定内容
LDAP サーバActive Directory(10.0.1.10:389)を登録し、接続をテスト と ユーザクレデンシャルをテスト で成功を確認
SSL-VPN 設定前提の記事(ローカルユーザ)の設定をそのまま使う
ファイアウォール
ポリシー
着信 ssl.root、送信元は SSLVPN_TUNNEL_ADDR1 と LDAP のユーザ、宛先 Internal-RDP、NAT は無効
確認FortiClient の IP Address、転送トラフィックの送信元ユーザとポリシー ID

コメント