FortiGateでSSL-VPNを安全に導入するための全手順解説

目次

はじめに

概要

本レポートはFortiGateデバイスを用いたSSL-VPNの設定と運用について、実務に即した手順と注意点をまとめたガイドです。リモートから社内ネットワークへ安全に接続する仕組みや、管理者が押さえておくべきポイントを具体例とともに説明します。

目的と対象読者

目的は、FortiGateでのSSL-VPN導入を安全かつ効率的に行えるようにすることです。対象はネットワーク管理者、システムエンジニア、運用担当者です。初心者にも分かるように専門用語は必要最小限にし、図や設定例を用いて説明します。

本書で学べること

  • SSL-VPNの基本概念(簡単な例を交えて)
  • FortiGate側とFortiClient側の具体的な設定手順
  • 認証方式の選び方と設定例
  • DNSやスプリットトンネリングの実務的な注意点
  • 証明書設定とセキュリティ強化の実践

前提条件

本ガイドはFortiGateの管理権限と基本的なネットワーク知識があることを前提にしています。実践前にバックアップを必ず取得してください。

注意点

設定は稼働中の環境で直接行うと影響が出ます。まず検証環境で確認してから本番へ反映してください。

SSL-VPNの基本概念と仕組み

はじめに

SSL-VPNはインターネット越しに安全に社内資源へアクセスする仕組みです。ユーザーとFortiGateの間で暗号化された通信を作ることで、第三者による盗聴や改ざんを防ぎます。例として、カフェのWi‑Fiから社内メールに安全に接続できます。

動作モードの概要

  • トンネルモード:VPNクライアント(例:FortiClient)を使い、端末の全通信または一部通信をVPN経由にします。メールソフトやファイル同期も保護できます。
  • Webモード:ブラウザー経由でWebアプリやファイルを操作します。クライアントのインストール不要で手軽に使えます。

トンネルモードの仕組み

クライアントがFortiGateに接続すると仮想のインターフェースが作られます。その上で社内ネットワークへルーティングされ、端末はあたかも社内LANに直接つながっているかのように振る舞います。フルトンネルは全通信を通し、分割(スプリット)トンネルは指定した通信のみ通します。

Webモードの仕組み

ユーザーはブラウザーでログインし、FortiGateが提供するポータル経由でWebアプリやダウンロードを行います。専用クライアントが不要なので、来客や短期のリモート作業に便利です。

利点と注意点

利点は導入の柔軟性と暗号化による保護です。注意点は認証や証明書の管理、接続ポリシーの設定で、これらを適切にしないと安全性が低下します。次章で具体的なFortiGate側の設定手順を説明します。

FortiGate側の設定手順

ステップ1:ユーザー登録

「ユーザ&認証」からユーザーを作成します。例:ユーザー名 vpnuser、パスワードを設定し、必要ならメールやOTPを有効にします。複数ユーザーはグループで管理すると便利です(例:SSL_VPN_Users)。グループは後でファイアウォールポリシーの送信元に指定します。

ステップ2:SSL-VPNポータルと設定

「VPN」→「SSL-VPNポータル」でポータルを作成します。ポータル種別は「トンネルモード」を選びます。主な設定項目:
– 名前:tunnel-portal(任意)
– 接続インターフェース:WAN側インターフェース(例:port1)
– トンネルIPレンジ:クライアント用に10.10.100.0/24などを割当
– その他:Split tunnelingの有無、DNS設定、リモートアクセスの制限

続いて「VPN」→「SSL-VPN設定」でリッスンポート(例:10443)、証明書、ログインページなどを設定し、先ほどのポータルにユーザーグループを割り当てます。

ステップ3:ファイアウォールポリシー作成

VPNクライアントのトラフィックを許可するポリシーを作成します。一般的なポリシー:
– 送信元インターフェース:ssl.root(SSL-VPNの仮想インターフェース)
– 送信元アドレス:ALLまたはクライアントIPレンジ
– 送信元ユーザー:SSL_VPN_Users(先に作成したグループ)
– 宛先インターフェース:内部LANインターフェース(例:port2)
– 宛先アドレス:社内サーバやLANサブネット
– サービス:必要なプロトコル、またはALL(最初はALLで動作確認)
– NAT:社内からインターネットへ出す場合は設定

ログを有効にして接続試験を行い、必要に応じてポリシーやポータル設定を微調整してください。

認証方式の選択と設定

概要

SSL-VPNの認証は接続の入口を守る重要な要素です。ローカルユーザー、RADIUS(またはLDAP)ベース、SAMLベースの3種類が一般的で、それぞれ利点と運用負荷が異なります。FortiGateの「ユーザ&認証」>「ユーザー定義」で確認・追加できます。

各方式の特徴と具体例

  • ローカルユーザー
  • 小規模環境向け。FortiGateにユーザーを直接登録します。設定は簡単ですが、ユーザー数が増えると運用が大変です。
  • 例:在宅勤務が少人数で、外部ディレクトリが無い場合。

  • RADIUS/LDAP

  • 中〜大規模でよく使われます。既存の認証基盤(例:Active Directory)と連携し、集中管理できます。グループやパスワードポリシーを反映できます。
  • 例:社内のADでユーザー管理する場合。

  • SAML(IdP連携)

  • シングルサインオン(SSO)と連携して利便性とセキュリティを両立します。多要素認証(MFA)をIdPで一元適用できます。
  • 例:OktaやAzure ADを使ったクラウド認証。

FortiGateでの設定手順(簡易)

  1. 「ユーザ&認証」>「ユーザー定義」でローカルを追加、または「認証サーバー」でRADIUS/LDAPサーバーを登録します。
  2. SAMLを使う場合は「SAMLサーバー」を作成し、IdPのメタデータを取り込んで証明書やエンドポイントを設定します。
  3. SSL-VPNポリシーで使用する認証方式を指定し、必要なアクセスプロファイルやグループを割り当てます。

運用上の注意点

  • MFAの導入を推奨します。認証強度が格段に上がります。
  • グループマッピングでアクセス制御を簡素化してください。
  • フェイルオーバー用に複数の認証サーバーを登録すると可用性が向上します。
  • 設定後はユーザーで接続テストを行い、ログで認証エラーを確認してください。

DNS設定とIPv4スプリットトンネリング

概要

SSL-VPNでのDNSは「システムDNS方式」と「指定DNS方式」の2つがあります。システムDNS方式はFortiGate側で使うDNS設定をそのままVPNクライアントに渡します。指定DNS方式では任意のDNSサーバー(例:社内DNS 10.1.1.10、または公共DNS 8.8.8.8)を指定できます。

使い分けの目安

  • 社内の名前解決(ファイルサーバや社内サービスポイント)を使うならシステムDNSを推奨します。FortiGateが持つ内部DNS情報をそのまま利用できます。
  • 公共サイトだけ通す場合や特定のDNSを強制したい場合は指定DNSを使います。端末に別のDNSを渡したいときに便利です。

IPv4スプリットトンネリング

スプリットトンネリングを有効にすると、特定の社内ネットワーク(例:10.0.0.0/8や192.168.100.0/24)だけをVPN経由にし、残りは直接インターネットへ出します。これにより帯域と遅延が改善しますが、社内ポリシーとセキュリティの要件を確認してください。

注意点と確認方法

  • DNSリークに注意。社内名を解決するならDNSもVPN経由で渡す設定にします。
  • テスト方法:VPN接続後にnslookupやpingで内部ホスト名を解決できるか確認します。また、tracerouteで経路を確認し、期待するトラフィックがVPN経由か直接かを検証します。

設定のヒント

  • 指定DNSを使う場合、内部DNSと外部DNSの両方を優先順に設定すると冗長化できます。
  • スプリットトンネルで扱うネットワークは最小限に絞り、必要なサブネットだけを登録してください。

FortiClient側の設定手順

前提

ユーザー端末にFortiClientを事前にインストールしてください。例:Windows版はFortiGateのポータルからダウンロードします。

ダウンロードとインストール

  1. FortiGateのポータル画面にブラウザでアクセスします。
  2. “FortiClient” ダウンロードリンクを選び、OSに合ったインストーラーを保存します。
  3. インストーラーを実行し、画面の指示に従ってインストールします。

接続設定手順(FortiClient)

  1. FortiClientを起動し、左メニューの「リモートアクセス」を選びます。
  2. “SSL-VPN” を選択し、「接続を追加」または「新規作成」をクリックします。
  3. 必要項目を入力します(例を併記)。
  4. VPN名:会社VPNなど分かりやすい名称
  5. 接続名:自分用のラベル
  6. リモートGW:remote.example.com または 203.0.113.5
  7. ポート:通常は 443
  8. 認証情報(ユーザー名・パスワード)を入力し、必要なら証明書を指定します。
  9. 設定を保存して、作成した接続を選んで「接続」ボタンを押します。

接続確認と簡易トラブルシュート

  • 接続できない場合は、リモートGWのホスト名やポート、ネットワーク接続を確認してください。証明書警告が出たら管理者に確認します。
  • FortiClientのログやWindowsのイベントログを参照すると原因特定が早まります。

操作は丁寧に確認しながら進めてください。

VPN接続の実施と確認

接続手順

  1. FortiClientを起動し、接続プロファイルを選びます。ゲートウェイ(IPまたはホスト名)とポートを入力し、接続を開始します。XAuthを使う場合はユーザー名とパスワードを入力します。証明書警告が出たら管理者の指示に従って承認します。

接続状態の確認方法

  • クライアントのIP確認: Windowsなら「ipconfig」、Mac/Linuxなら「ifconfig」や「ip addr」で、割り当てられたIPが設定したIPプールと一致するか確認します(例: 10.10.100.10)。
  • サーバー疎通確認: VPN経由で社内サーバーのIPに対してpingを実行します。応答があれば経路は通っています。
  • アプリケーション確認: 社内のWebアプリやファイル共有を実際に操作して、認証やデータの送受信が正常か確認します。
  • DNSとルーティング: スプリットトンネルを使う場合はルートテーブルとnslookupで名前解決が社内向けになっているか確認します。
  • FortiGate側確認: 管理画面の「SSL‑VPNモニター」やログで接続ユーザーと割り当てIPを確認します。

トラブルシューティングの基本

接続できないときは、まず資格情報、証明書の有効性、外部ポート(例:443)が開いているかを確認します。pingが通らない場合は社内ファイアウォールやルート設定を見直し、アプリが動かないときはDNSやプロキシ設定をチェックしてください。必要なら管理者にログ提供を依頼します。

証明書設定とセキュリティ強化

前提条件

FortiGateが外部からHTTP/HTTPSで到達可能、またはDNSプロバイダのAPI情報があることを確認します。内部のみで運用する場合はDNSチャレンジ(DNS-01)を使うと便利です。

FortiGateでLet’s Encryptを使う手順(概要)

  1. Web UIの「証明書」→「ACME(Let’s Encrypt)」を選択
  2. アカウント情報を作成(メールなど)
  3. ドメイン名を登録し、検証方法を選択(HTTP-01:公開可能なホスト、DNS-01:DNSプロバイダ連携)
  4. 発行された証明書を確認して保存

証明書の適用

取得した証明書をSSL-VPNプロファイルや外部インターフェースに割り当てます。Web UIの該当設定画面で選択するだけで反映します。

自動更新と確認

Let’s Encryptは短期間での更新が必要です。FortiGateのACMEは自動更新に対応しますが、初回はログで正常に更新されているか確認してください。更新失敗時はDNS設定やHTTP到達性を見直します。

セキュリティ強化のポイント

  • TLSは1.2以上(可能なら1.3)を採用し、古い暗号は無効化します。
  • 中間証明書やチェーンが正しく設定されているか確認します。
  • OCSP/CRLで証明書失効を確認する仕組みを有効にします。
  • 管理アクセスは特定IPに限定し、二要素認証を併用すると安全性が高まります。

上記を実施することで、SSL-VPNの通信はより堅牢になります。必要があれば、具体的なWeb UIのメニュー階層やエラーログの見方もご案内します。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次