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
- FortiGate に LDAP サーバ(Active Directory)を登録して、接続とユーザ認証をテストする方法
- LDAP のユーザを使う SSL-VPN 用のファイアウォールポリシー
- FortiClient での接続と、転送トラフィックのログでの確認
検証の構成
インターネット側の端末は、FortiClient で FortiGate に SSL-VPN(トンネルモード)で接続します。FortiGate は、入力されたユーザ名とパスワードを LDAP で Active Directory(10.0.1.10)に確認します。接続後は、VPN を通して社内のサーバ(10.0.1.10)に RDP で接続します。今回は、Active Directory と RDP の接続先は同じサーバです。
認証から通信までの流れは次のとおりです。
Active Directory の準備
ドメイン hirotanoblog.com として Active Directory を構築し、SSL-VPN で使うユーザをあらかじめ作っておきます。
LDAP サーバの登録
LDAP サーバを登録する
FortiGate に LDAP サーバ(Active Directory)を登録します。ユーザ&デバイス ›› LDAPサーバ を開き、新規作成 をクリックします。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 1名前 | ActiveDirectory |
| 2サーバIP/名前 | 10.0.1.10 |
| サーバポート | 389 |
| 3コモンネーム識別子 | samAccountName |
| 4識別名 | cn=users,dc=hirotanoblog,dc=com ブラウズ |
| Exchangeサーバ | OFF |
| 5バインドタイプ | ○ シンプル○ 匿名◉ レギュラー |
| ユーザ名 | (伏せています) |
| パスワード | •••••••• |
| セキュアな接続 | OFF |
| 6接続ステータス | 成功 |
| 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 を参照できています。
| 1ツリー | cn=users,dc=hirotanoblog,dc=com |
ユーザの認証をテストする
ユーザクレデンシャルをテスト をクリックすると、ユーザ名とパスワードの入力画面が表示されます。SSL-VPN で使うユーザの名前とパスワードを入力し、テスト をクリックして、ユーザクレデンシャルが成功することを確認します。
| 1ユーザ名 | (伏せています) |
| パスワード | •••••••• |
| 接続ステータス | 成功 |
| 2ユーザクレデンシャル | 成功 |
SSL-VPN の設定
SSL-VPN の設定(ポータル、SSL-VPN 設定)は、前提の記事のものをそのまま使います。
>> 参考記事:【Fortigate】SSL-VPNリモート接続(トンネルモード、ローカルユーザ)FortiOS6.2.4
ファイアウォールポリシーの設定
SSL-VPN 用のポリシーを作る
ポリシー&オブジェクト ›› ファイアウォールポリシー で、SSL-VPN 用のポリシーを作ります。RDP の接続先のサーバ(10.0.1.10)は、アドレスオブジェクト Internal-RDP として事前に作ってあります。
| 名前 | 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 ○ セキュリティイベント◉ すべてのセッション |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 着信インターフェース | SSL-VPN のトンネルのインターフェース ssl.root を選びます。 |
| 2 | 発信インターフェース | 社内向けのインターフェース(今回は port2)を選びます。 |
| 3 | 送信元 | SSL-VPN のクライアントに割り当てるアドレス(SSLVPN_TUNNEL_ADDR1)と、ユーザの両方を指定します。+ をクリックすると、アドレスとユーザを選べます。ユーザには、今回の LDAP のユーザを指定します。 |
| 4 | 宛先 | 社内のサーバとして作った Internal-RDP を選びます。 |
| 5 | サービス | 今回はテストなので ALL にします。 |
| 6 | NAT | 無効にします。サーバには、VPN クライアントのトンネル IP(10.212.134.200)のまま届きます。 |
| 7 | 許可トラフィックをログ | すべてのセッション にします。 |
ポリシーの送信元で LDAP のユーザを選ぶには、そのユーザが FortiGate にユーザとして登録されている必要があります。ユーザ&デバイス ›› ユーザ定義 の 新規作成 で始まるウィザードで リモートLDAPユーザ を選び、LDAP サーバからユーザを選んで登録します。ユーザごとではなく、LDAP サーバをリモートグループにしたユーザグループを送信元に指定する方法もあります。
端末側の設定と動作確認
FortiClient で接続する
端末の FortiClient の設定は、前提の記事と同じです。作成した SSL-VPN という名前の接続先を選び、Active Directory のユーザ名とパスワードを入力して Connect をクリックします。
Password:••••••••
Connect
Username:(伏せています)
Duration:00:00:21
Bytes Received:0.19 KB / Bytes Sent:0.68 KB
しばらくすると、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 で許可されていることを確認できます。
| 日付/時刻 | 送信元 | 宛先 | サービス | 結果 | ポリシーID |
|---|---|---|---|---|---|
| 2020/10/04 21:12:33 | 1(伏せています) (10.212.134.200) | 10.0.1.10 | RDP | ✓ 243.97 kB / 1.09 MB | SSL-VPN-LDAP (4) |
| 2020/10/04 21:10:33 | (伏せています) (10.212.134.200) | 10.0.1.10 | RDP | ✓ 239.65 kB / 1.08 MB | SSL-VPN-LDAP (4) |
| 2020/10/04 21:07:18 | (伏せています) (10.212.134.200) | 10.0.1.10 | RDP | ✓ 301.24 kB / 500.69 kB | SSL-VPN-LDAP (4) |
| ⋮(以下略) | |||||
まとめ
| 設定 | 内容 |
|---|---|
| LDAP サーバ | Active Directory(10.0.1.10:389)を登録し、接続をテスト と ユーザクレデンシャルをテスト で成功を確認 |
| SSL-VPN 設定 | 前提の記事(ローカルユーザ)の設定をそのまま使う |
| ファイアウォール ポリシー | 着信 ssl.root、送信元は SSLVPN_TUNNEL_ADDR1 と LDAP のユーザ、宛先 Internal-RDP、NAT は無効 |
| 確認 | FortiClient の IP Address、転送トラフィックの送信元ユーザとポリシー ID |
コメント