皆さんこんにちは!SB C&Sで Fortinet 製品のプリセールスを担当している長谷川です。
今回は、FortiClient を利用せずに、SSL-VPN でネイティブRDP を利用する方法を紹介いたします。
※ネイティブRDPとは、Windows上のリモートデスクトップアプリケーションを利用した、RDP接続という意味です。
必要な環境
FortiGate側での用意
- FortiOS v5.4.x もしくは、FortiOS v5.6.x
残念な情報なのですが、今回ご紹介の手法は、FortiOS v6.0.x や、FortiOS v6.2.x では利用できず、FortiOS v5.4 や、FortiOS v5.6.x までの手法となります。
クライアント環境での用意
- Windows系OS
- Internet Explorer (以降IE)
- Java
FortiClientを導入しない代わりに、Javaが必要になります。
※どちらも企業向けPCをご利用の場合、ハードルが高そうですが、インストールされている前提で進めます。
なぜ IE が必要なのかというと、Java を動かせられるブラウザが、IE しかないからです。
============================================================
JAVA サポート廃止情報
- Microsoft Edge
https://www.java.com/ja/download/faq/win10_faq.xml
- Mozilla Firefox
https://java.com/ja/download/help/firefox_java.xml
- Google Chrome
https://java.com/ja/download/faq/chrome.xml
============================================================
もし、Java が動作するブラウザが、IE 以外にもありましたら、連絡いただけますと幸いです。
うまくできれば、FortiOS v6.0.x や FortiOS v6.2.x でも利用できる可能性があります。
参考までに、FortiGate 側の、SSL-VPN サポートブラウザも記載いたします。
============================================================
SSL-VPN WEBモードサポート情報(執筆の段階の最新ファームウェアバージョンです。)
- FortiOS v5.6.9
https://docs.fortinet.com/document/fortigate/5.6.9/fortios-release-notes
Microsoft Windows 7 SP1 (32-bit & 64-bit)
Microsoft Windows 8 / 8.1 (32-bit & 64-bit)
Microsoft Internet Explorer version 11
Mozilla Firefox version 54
Google Chrome version 59
Microsoft Windows 10 (64-bit) Microsoft Edge
Microsoft Internet Explorer version 11
Mozilla Firefox version 54
Google Chrome version 59
- FortiOS v6.0.5
https://docs.fortinet.com/document/fortigate/6.0.5/fortios-release-notes/368349/ssl-vpn-support
Microsoft Windows 7 SP1 (32-bit & 64-bit)
Mozilla Firefox version 66
Google Chrome version 73
Microsoft Windows 10 (64-bit)
Microsoft Edge
Mozilla Firefox version 66
Google Chrome version 73
- FortiOS v6.2.0
https://docs.fortinet.com/document/fortigate/6.2.0/fortios-release-notes/973252/ssl-vpn-support
Microsoft Windows 7 SP1 (32-bit & 64-bit)
Mozilla Firefox version 61
Google Chrome version 68
Microsoft Windows 10 (64-bit)
Microsoft Edge
Mozilla Firefox version 61
Google Chrome version 68
============================================================
環境構成図
FortiGate-100E(FortiOS v5.6.9) および、クライアント端末には、Windows10 を利用しています。
FortiGateの設定
ユーザの作成
FortiGateの管理画面より、ユーザ&デバイス >> ユーザの定義 から、新規作成を行います。
ローカル ユーザを選択します。
ログインするユーザ情報(ID/PASS)を入力します。
次へを押下します。
もう一度次へを押下します。
ユーザが作成されました。
ポータルの作成
VPN >> SSL-VPNポータル から、ポータルを新規作成します。
ユニークな名前を入力し、Webモードを有効にします。
ポータルが作成されました。
SSL-VPNの設定
VPN >> SSL-VPN より、SSL-VPN機能の設定を行います。
- Listenするインタフェース:SSL-VPNの接続要求を受け付けるインタフェースとなり、今回の構成では、wan1 を選択します。
- Listenするポート:SSL-VPNの接続を行う際のポート番号です。TCP/443は、デフォルトで管理アクセスで利用されているため、別のポート番号を指定します。
- アクセス制限:任意のホストからアクセス許可を選択します。(CLIから接続元IPアドレスを制限することができるため、企業のグローバルIPが分かる場合、指定してもよいです。)
- アドレス範囲:トンネルモードを利用した際のIPアドレスです。今回は使用しませんが、設定しないと進まないため、自動的にアドレス割当を選択します。
- 認証/ポータルマッピング:認証したユーザごとのポータル設定です。すべてのユーザで同一ポータルをする設定を行います。
FortiGate内部に含まれている証明書を使用すると警告がでます。特に問題ないのでこのまま進めます。
SSL-VPN設定が終わると、ファイアウォールポリシーにSSL-VPNを有効にする設定を行います。
通常のファイアウォールルールと同様に下記項目を追加します。
- 名前:ユニークな名前を設定
- 入力インタフェース:SSL-VPNトンネルインタフェース(固定)
- 出力インタフェース:今回の構成では lan を指定
- 送信元:トンネルモード時に利用するIPを指定 + 認証するユーザを指定
- 宛先:lan 側のアクセス先IPを指定
- スケジュール:alwaysを指定
- サービス:ALLを指定
OKを押下します。
クライアント側からアクセス
IEを起動します。
Javaを導入したあと、初めてIEを立ち上げると、アドオンとして認識されるため、有効にする を押下します。
https://[FortiGateのwan1側IP]:10443 へアクセスします。
デフォルト証明書を利用してる場合、証明書の正当性の確認ができないため、証明書エラーが出力されます。
特に問題ないので、Webページに移動 を押下し、認証画面に進みます。
先程作成したユーザ情報を入力して、SSL-VPNのポータルへログインします。
ブックマークを作成します。
ポートフォワードを選択し、必要項目を入力します。
- 名前:ユニークな名前を入力
- ホスト:リモートデスクトップ接続先のIPを指定
- リモートポート:リモートデスクトップ接続先のポート番号を指定(特に指定がなければ 3389 を入力)
- リスンするポート:こちらで指定したポートへアクセスします。IPアドレス情報と紐付けるとわかりやすいため、リモートデスクトップ先のIPが 192.168.11.92 であれば、1192 といった形で入力
ブックマークに接続します。
初回Javaの立ち上げ時に警告が出ますが、許可します。
そのまま続行します。
Javaプログラム上では、アクセス先の証明書の正当性がないため、弾かれてしまいます。
Javaが立ち上がらない状態になります。
Javaの設定
Windowsのスタートメニュー >> Java >> Javaの構成 より、Javaの設定を行います。
セキュリティタブから、サイト・リストの編集を押下します。
追加を押下します。
SSL-VPNの接続先 https://[FortiGateのwan1側IP]:10443 を入力します。
OKを押下します。
改めてSSL-VPN接続を行い、ブックマークから起動すると、Java からの警告が出力されます。
証明書は問題ないので、実行を行います。
アクセスの許可をします。
リモートデスクトップの起動
リモートデスクトップを起動する前に、コマンドプロンプトで、ポートが開放されているか確認します。
============================================================
c:\>netstat -na
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
[省略]
TCP 127.0.0.1:1192 0.0.0.0:0 LISTENING
[省略]
c:\>
============================================================
この状態であれば、リモートデスクトップを利用することができます。
リモートデスクトッププログラムを起動し、ローカルIPと指定したポートを入力します。
無事に接続ができました。
おつかれさまでした。
IEを終了させると、SSL-VPN が切断されるのでご注意ください。
余談
FortiOS v6.0.x や FortiOS v6.2.x でポータルへアクセスするとIEの場合、まともに表示されません。
- FortiOS v6.0.5
- FortiOS v6.2.0
以上、ご拝読ありがとうございました。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
技術統括部 第2技術部 1課
長谷川 聡