はじめに
テレワークが当たり前となった現在、社外からオフィスへ安全に接続するための VPN(Virtual Private Network) は、ビジネスの生命線とも言えるインフラです。
その中でも、Web ブラウザだけで手軽に導入できる 「SSL-VPN」 は長らく主流でしたが、昨今、少し風向きが変わってきているのをご存知でしょうか? ニュースで「SSL-VPN 製品の脆弱性を狙った攻撃」が頻繁に報じられ、「脱 SSL-VPN」 や 「IPsec VPN / ZTNA への回帰」 を推奨する声がベンダー側からも強まっています。
「じゃあ、もう SSL-VPN は使ってはいけないの?」
決してそうではありません。重要なのは、リスクの高い機能(Web モードなど)を避け、より堅牢な方式(トンネルモード)で正しく設定すること です。
本記事では、FortiGate を使った「安全な SSL-VPN 環境」を構築するための手順を、CLI 設定 を中心に解説します。
- 最新の VPN トレンド(なぜ今、SSL-VPN ではなく IPsec が推奨されるのか?)
- セキュリティ強度の高い「SSL-VPN(トンネルモード)」の CLI 設定手順
- 接続できない時の確認コマンドとトラブルシューティング
【重要】なぜ今、SSL-VPN ではなく IPsec VPN が推奨されるのか?
設定に入る前に、現在の VPN 技術を取り巻くセキュリティ事情について触れておきます。 これまで「手軽で便利」とされてきた SSL-VPN ですが、近年は Fortinet 社を含め、業界全体で 「IPsec VPN」 や 「ZTNA(ゼロトラスト・ネットワーク・アクセス)」 への移行が強く推奨されています。
その最大の理由は、「脆弱性リスクの高さ」 にあります。
狙われる「Web モード」の脆弱性
SSL-VPN には、ブラウザだけで社内 Web サーバーへアクセスできる「Web モード(クライアントレス)」という機能があります。 非常に便利ですが、この機能は FortiGate 自身が Web サーバーとして振る舞い、HTML コンテンツを書き換えて転送するという複雑な処理を行います。
仕組みが複雑である分、プログラムのバグ(脆弱性)が生まれやすく、近年報告されている FortiOS の重大な脆弱性の多くが、この「SSL-VPN Web モード」に起因するもの でした。 攻撃者は、インターネットに公開されている SSL-VPN のポート(デフォルト 443 や 10443)を常にスキャンしており、修正パッチが当たっていない機器を探しています。
ベンダーも進める「脱 Web モード」
このような背景から、Fortinet 社も Web モードの利用を縮小する方向へ動いています。 最新の FortiOS や一部のエントリーモデルでは、プロキシ機能(Web モードに必要な機能)を使用するにはメモリなどの要件が厳しくなったり、「より構造がシンプルで堅牢な IPsec VPN」 や、認証をクラウド側で行う 「ZTNA」 の利用が推奨されています。
結論: SSL-VPN を使うなら「トンネルモード」一択
とはいえ、クライアントソフト(FortiClient)の配布やネットワーク環境の都合で、すぐに IPsec へ移行できない現場も多いでしょう。
SSL-VPN を利用する場合、現在のセキュリティ基準では以下の構成が 必須 と言えます。
- 脆弱性の多い「Web モード」は無効化し、パケットをカプセル化するだけの 「トンネルモード」のみ を使用する。
- ID/パスワードだけでなく、二要素認証(MFA) を組み合わせる。
- 待ち受けポートをデフォルトから変更し、アクセス元制限(GeoIPなど)を行う。

本記事では、この 「安全なトンネルモード」 を構築するための設定手順を解説します。
今回の構成と設定の流れ
今回構築する SSL-VPN(トンネルモード)の構成は以下の通りです。 自宅や外出先の PC から、FortiGate 経由で社内 LAN のサーバーへ安全にアクセスできる環境を作ります。


設定の前提パラメーター
実務でそのまま使えるよう、具体的なパラメーターを定めます。 特に 「待ち受けポートを 10443 に変更する」 点は、セキュリティ対策として非常に重要です。
- インターフェース
-
- WAN(port1): インターネット側(グローバル IP を持つ)
- LAN(port2): 社内ネットワーク側(例:
192.168.1.0/24)
- SSL-VPN 設定値
-
- 待ち受けポート:
10443(デフォルトの 443 は攻撃対象になりやすいため変更推奨) - トンネル用 IP プール:
10.212.134.10–10.212.134.20(VPN 接続時に PC に割り当てる IP) - 認証: ローカルユーザー認証
- 待ち受けポート:
CLI 設定の 5 つのステップ
GUI だと画面を行ったり来たりして混乱しがちですが、CLI なら以下の 5 ステップを上から流し込むだけで完了します。
VPN に接続するアカウントを作ります。
「トンネルモードしか使わせない」という定義を作ります。
「port1 の 10443 ポートで待ち受ける」という設定をします。
VPN から社内への通信を許可します。
PC にソフトを入れて接続します。
SSL-VPN(トンネルモード)設定手順【CLI 編】
それでは、実際に CLI(コマンドライン)を使って設定を行っていきます。※IPアドレスやインターフェース名は、ご自身の環境に合わせて読み替えてください。
まずは、VPN 接続に使用するユーザーアカウントを作成し、管理しやすいようにグループに所属させます。
config user local
edit "vpnuser01"
set type password
set passwd "Password123!" <-- 任意のパスワード
next
end
config user group
edit "G-SSLVPN"
set member "vpnuser01"
next
end次に、「ユーザーが接続した時にどのような機能を使わせるか(ポータル)」を定義します。 ここがセキュリティの要です。脆弱性の温床となりやすい「Web モード」は必ず無効化(disable) しましょう。
また、社内への通信だけを VPN に流し、YouTube などのインターネット通信は VPN を通さない 「スプリットトンネル」 を有効にします。
config vpn ssl web portal
edit "Tunnel-Portal"
set tunnel-mode enable
set web-mode disable <-- 【重要】Webモードは無効化!
set ip-pools "SSLVPN_TUNNEL_ADDR1"
set split-tunneling enable
set ipv4-split-tunnel-subnets "LAN-Subnet" <-- 社内LANのアドレスオブジェクトを指定
next
endFortiGate の WAN インターフェースで SSL-VPN の接続を待ち受ける設定です。
【重要】待ち受けポートの変更
デフォルトの 443 番ポートは、攻撃者からのスキャンや総当たり攻撃の標的になりやすいため、10443 など推測されにくいポートに変更することを強く推奨します。
config vpn ssl settings
set source-interface "port1" <-- WAN側インターフェース
set source-address "all"
set port 10443 <-- 【重要】ポートを443から変更
set servercert "Fortinet_Factory" <-- デフォルトの自己署名証明書
set tunnel-ip-pools "SSLVPN_TUNNEL_ADDR1"
set default-portal "Tunnel-Portal"
config authentication-rule
edit 1
set groups "G-SSLVPN"
set portal "Tunnel-Portal"
next
end
end上記の設定では Fortinet_Factory という、FortiGate が自分で発行した証明書を使用しています。この場合、接続時にブラウザや FortiClient で「証明書のエラー(信頼されていません)」という警告が表示されます。
この警告が出る仕組みは、Web サイト閲覧時と同じです。 エラーを消してユーザーに安心感を与えるためには、公的な認証局から発行された証明書(DV/OV/EV)を購入し、FortiGate にインポートする必要があります。
※なぜ証明書の種類によって信頼性が変わるのかについては、以前の記事 「SSL 証明書「DV・OV・EV」の違いとは?」 で詳しく解説しています。


最後に、VPN トンネルから社内 LAN への通信を許可するポリシーを作成します。 FortiGate では、SSL-VPN 接続は仮想インターフェース ssl.root からの通信として扱われます。
config firewall policy
edit 1
set name "SSLVPN-to-LAN"
set srcintf "ssl.root" <-- VPNトンネル
set dstintf "port2" <-- 社内LAN側
set srcaddr "all" <-- Step1のユーザー認証で制限するためallでOK
set dstaddr "LAN-Subnet" <-- 社内LANのアドレス
set action accept
set schedule "always"
set service "ALL"
set groups "G-SSLVPN" <-- ここでグループを指定して制限
set nat enable <-- 戻り通信を確実にするためNAT有効推奨
next
endFortiGate 側の設定は完了です。クライアント PC から接続してみましょう。
PC にインストールした FortiClient を起動し、「新しい接続」を作成します。
- VPN タイプ: SSL-VPN
- リモート GW: FortiGate のグローバル IP アドレス
- ポートのカスタマイズ:
10443にチェックを入れて入力 - 認証:「保存したユーザー」を選択し、
vpnuser01を入力
「接続」ボタンを押し、パスワードを入力してステータスが「接続済み」になれば成功です。
FortiGate の CLI で以下のコマンドを打つと、現在接続しているユーザー情報を確認できます。
get vpn ssl monitor出力例:
SSL-VPN Login Users:
Index User Source IP Duration I/O Bytes Tunnel/Dest IP
0 vpnuser01 203.0.113.5 60 1000/2000 10.212.134.10ユーザー名や割り当てられた IP が表示されていれば、正常に動作しています。
まとめ
本記事では、FortiGate における SSL-VPN(トンネルモード)の推奨設定と、その背景にあるセキュリティ事情について解説しました。
重要なポイントは以下の 3 点です。
- 脱 Web モード: 脆弱性のリスクが高い Web モードは使用せず、シンプルな 「トンネルモード」 に一本化する。
- ポート変更: 攻撃者のスキャンを回避するため、待ち受けポートを 443 から 「10443」 などに変更する。
- MFA の検討: 今回は触れませんでしたが、「多要素認証(MFA)」 を組み合わせは現代の最低ラインです。
将来的にはより堅牢な IPsec VPN や、次世代の ZTNA(ゼロトラスト) への移行も検討してみてください。
以上、最後までお読みいただきありがとうございました。

