【FortiGate】SSL-VPN 設定手順(CLI) | IPsec 推奨の背景とセキュリティ対策

  • URLをコピーしました!
目次

はじめに

テレワークが当たり前となった現在、社外からオフィスへ安全に接続するための 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.1010.212.134.20 (VPN 接続時に PC に割り当てる IP)
  • 認証: ローカルユーザー認証

CLI 設定の 5 つのステップ

GUI だと画面を行ったり来たりして混乱しがちですが、CLI なら以下の 5 ステップを上から流し込むだけで完了します。

STEP
ユーザーとグループの作成

VPN に接続するアカウントを作ります。

STEP
SSL-VPN ポータルの設定

「トンネルモードしか使わせない」という定義を作ります。

STEP
SSL-VPN 基本設定

「port1 の 10443 ポートで待ち受ける」という設定をします。

STEP
ファイアウォールポリシーの作成

VPN から社内への通信を許可します。

STEP
FortiClient(PC)の設定

PC にソフトを入れて接続します。

SSL-VPN(トンネルモード)設定手順【CLI 編】

それでは、実際に CLI(コマンドライン)を使って設定を行っていきます。※IPアドレスやインターフェース名は、ご自身の環境に合わせて読み替えてください。

STEP
VPN 接続用ユーザーとグループの作成

まずは、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
STEP
SSL-VPN ポータルの設定

次に、「ユーザーが接続した時にどのような機能を使わせるか(ポータル)」を定義します。 ここがセキュリティの要です。脆弱性の温床となりやすい「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
end
STEP
SSL-VPN 基本設定(インターフェースとポート)

FortiGate の 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」の違いとは?」 で詳しく解説しています。

STEP
ファイアウォールポリシーの作成

最後に、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
end
STEP
動作確認と FortiClient の設定

FortiGate 側の設定は完了です。クライアント PC から接続してみましょう。

STEP
FortiClient の設定

PC にインストールした FortiClient を起動し、「新しい接続」を作成します。

  • VPN タイプ: SSL-VPN
  • リモート GW: FortiGate のグローバル IP アドレス
  • ポートのカスタマイズ: 10443 にチェックを入れて入力
  • 認証:「保存したユーザー」を選択し、vpnuser01 を入力
STEP
接続確認

「接続」ボタンを押し、パスワードを入力してステータスが「接続済み」になれば成功です。

STEP
FortiGate での確認コマンド

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 点です。

  1. 脱 Web モード: 脆弱性のリスクが高い Web モードは使用せず、シンプルな 「トンネルモード」 に一本化する。
  2. ポート変更: 攻撃者のスキャンを回避するため、待ち受けポートを 443 から 「10443」 などに変更する。
  3. MFA の検討: 今回は触れませんでしたが、「多要素認証(MFA)」 を組み合わせは現代の最低ラインです。

将来的にはより堅牢な IPsec VPN や、次世代の ZTNA(ゼロトラスト) への移行も検討してみてください。

以上、最後までお読みいただきありがとうございました。


created by Rinker
¥3,080 (2026/03/17 11:31:35時点 楽天市場調べ-詳細)
おすすめ書籍
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

インフラ(クラウド/NW/仮想化)から Web 開発まで、技術領域を横断して活動するエンジニア💻 コンシューマー向けエンタメ事業での新規開発・運営経験を活かし、実戦的な技術ノウハウを発信中

[ Certs ] CCIE Lifetime Emeritus / VCAP-DCA ✒️ [ Life ] 技術書・ビジネス書愛好家📖 / 小・中学校で卓球コーチ👟

目次