リモートワークの普及により、SSL-VPNの導入は企業ネットワークにおいて必須となっています。FortiGateのSSL-VPN機能を使えば、社外から安全に社内ネットワークへアクセスできる環境を構築できます。本記事では、SSL-VPNの基礎から実際の設定手順、トラブルシューティングまで、実務で役立つ情報を網羅的に解説します。
私が初めてFortiGateのSSL-VPNを導入したとき、IPsec VPNとの違いを理解せずに設定を進めてしまい、ユーザーからの接続トラブルが頻発しました。特に、Webモードとトンネルモードの使い分けを誤ったことで、必要なアプリケーションが動作しないという問題が発生しました。
その経験から学んだのは、まず要件を明確にし、適切なVPN方式とモードを選択することの重要性です。現在では200名規模のリモートアクセス環境を安定運用できるようになりました。
リモートアクセスVPNを構築する際、SSL-VPNとIPsec VPNのどちらを選択するかは重要な判断です。それぞれの特徴を理解し、用途に応じて使い分ける必要があります。
SSL-VPNはHTTPS(TCP 443ポート)を使用するため、ファイアウォールやプロキシを通過しやすいという特徴があります。一方、IPsec VPNはUDP 500/4500ポートやESPプロトコルを使用するため、厳格なネットワーク環境では通信が制限される可能性があります。
表1: SSL-VPNとIPsec VPNの比較
| 比較項目 | SSL-VPN | IPsec VPN |
|---|---|---|
| 使用プロトコル | HTTPS (TCP 443) | UDP 500/4500, ESP |
| クライアント | Webブラウザ/FortiClient | 専用クライアント必須 |
| 導入の容易さ | 簡単(Webモード時) | 複雑(設定項目多い) |
| ファイアウォール通過 | 容易(HTTPSと同じ) | 困難な場合あり |
| パフォーマンス | やや低い(TCP) | 高い(UDP) |
| 適用シーン | 個人リモートワーク | 拠点間接続 |
SSL-VPNは不特定多数のユーザーが様々なネットワーク環境から接続する場合に適しています。特に以下のようなケースで推奨されます。
- 自宅やカフェなど、制御できないネットワークからの接続
- BYODデバイスからの一時的なアクセス
- Webアプリケーションやファイル共有のみを使用する場合
- クライアントソフトのインストールが困難な環境
一方、IPsec VPNは拠点間接続や、大容量データ転送が必要な場合、複雑なネットワーク通信(マルチキャストなど)が必要な場合に適しています。
図1: VPN方式別の利用シーン比率
FortiGateのSSL-VPNには、Webモード(Web Mode)とトンネルモード(Tunnel Mode)という2つの動作モードがあります。利用シーンによって最適なモードが異なるため、それぞれの特徴を理解することが重要です。
Webモードは、Webブラウザのみで動作するクライアントレスVPNです。FortiGateがプロキシとして機能し、HTTPSで暗号化された通信を中継します。ユーザーはWebポータルにログインし、そこから社内リソースにアクセスします。
主な特徴は以下の通りです。
- クライアントソフトのインストール不要
- Webアプリケーション、RDP、SSH、VNCなどに対応
- ファイル共有(CIFSブックマーク)機能
- ポート番号を指定した独自アプリケーションも設定可能
Webモードでは、すべてのアプリケーションが動作するわけではありません。特にUDP通信を使用するアプリケーションや、複雑なプロトコルネゴシエーションを行うアプリケーションは動作しない場合があります。
トンネルモードは、FortiClientを使用して仮想ネットワークインターフェースを作成し、完全なネットワーク接続を確立します。IPsec VPNと同様の動作をしますが、SSL/TLS通信を使用するため、ファイアウォール通過性に優れています。
主な特徴は以下の通りです。
- すべてのプロトコル・アプリケーションに対応
- 社内ネットワークの完全なアクセス(ルーティング設定次第)
- Split TunnelingまたはFull Tunneling選択可能
- FortiClientによる統合管理とセキュリティポリシー適用
表2: Webモードとトンネルモードの詳細比較
| 項目 | Webモード | トンネルモード |
|---|---|---|
| クライアント要件 | Webブラウザのみ | FortiClient必須 |
| 対応プロトコル | HTTP/HTTPS/RDP/SSH/VNC/CIFS | すべてのTCP/UDP |
| 設定の複雑さ | 簡単(ブックマーク登録) | 中程度(ルーティング等) |
| ユーザー体験 | ポータル経由でアクセス | 通常のネットワークと同様 |
| セキュリティ | 制限的(ブックマークのみ) | ポリシー制御可能 |
| 推奨シーン | 一時アクセス、BYOD | 日常的なリモートワーク |
図2: SSL-VPNモード別の使用頻度
SSL-VPNの設定を開始する前に、必要な情報を整理し、ネットワーク設計を行います。適切な事前準備により、設定作業がスムーズに進み、トラブルも最小限に抑えられます。
VPN接続時にクライアントに割り当てるIPアドレス範囲を決定します。既存の社内ネットワークと重複しないセグメントを選択してください。例: 10.200.1.0/24
公的認証局から発行されたSSL証明書を推奨します。自己署名証明書も使用可能ですが、クライアント側で警告が表示されます。FortiGateの管理FQDNに対する証明書を準備してください。
VPNクライアントが使用するDNSサーバーのIPアドレスを決定します。社内DNSサーバーを指定することで、内部ホスト名での接続が可能になります。
VPNユーザーがアクセスできる社内ネットワークの範囲を定義します。全社内ネットワークへのアクセスを許可するか、特定セグメントのみに制限するかを決定します。
FortiGateでSSL-VPNを使用する場合、同時接続ユーザー数に応じたライセンスが必要です。デフォルトでは2ユーザーまで無料で使用できますが、それ以上の接続が必要な場合は追加ライセンスの購入が必要です。
get system status | grep -i license上記コマンドで現在のライセンス状況を確認できます。SSL-VPNユーザー数は「Maximum SSL-VPN Users」の項目で確認可能です。
SSL-VPN接続にはユーザー認証が必須です。FortiGateでは、ローカルユーザーデータベース、LDAP、RADIUS、SAML認証など、複数の認証方式に対応しています。ここでは最も基本的なローカルユーザー認証から解説します。
GUIでローカルユーザーを作成する手順は以下の通りです。
FortiGateの管理画面にログインし、左メニューから「User & Authentication」→「User Definition」に移動します。
「Create New」ボタンをクリックし、「Local User」を選択します。
User Name、Password、Email Addressなどを入力します。「Enable Two-Factor Authentication」でMFA(多要素認証)も設定可能です。
CLIでユーザーを作成する場合は、以下のコマンドを使用します。
config user local
edit "vpnuser01"
set type password
set passwd "P@ssw0rd123!"
set email-to "vpnuser01@example.com"
next
end複数のユーザーを一括で作成する場合も、このコマンドを繰り返し実行します。スクリプト化することで効率的に作成できます。
ユーザーをグループ化することで、権限管理が効率的になります。部署別や役職別にグループを作成し、VPNポリシーをグループ単位で適用できます。
config user group
edit "SSLVPN_Users"
set member "vpnuser01" "vpnuser02" "vpnuser03"
next
endGUI操作の場合は、「User & Authentication」→「User Groups」から「Create New」を選択し、メンバーを追加します。
Active DirectoryやRADIUSサーバーと連携することで、既存のユーザーアカウントを使用してSSL-VPN認証が可能になります。LDAP連携の基本設定例を示します。
config user ldap
edit "AD_Server"
set server "192.168.1.10"
set cnid "sAMAccountName"
set dn "dc=example,dc=com"
set type regular
set username "cn=ldapbind,ou=service,dc=example,dc=com"
set password "BindPassword"
next
endLDAP設定後、ユーザーグループでLDAPサーバーを指定することで、ADユーザーによる認証が可能になります。
ユーザー認証の設定が完了したら、次はSSL-VPN接続の具体的な設定を行います。まずはGUI操作で設定する手順を詳しく解説します。
FortiGateには設定ウィザードが用意されており、基本的な構成を簡単に作成できます。
FortiGate管理画面の左メニューから「VPN」→「SSL-VPN Settings」を選択します。
Listen on Interfaces(WAN1など)、Listen on Port(デフォルト10443または443)、Restrict Access(接続を許可する送信元IPアドレス)を設定します。
事前にインポートしたSSL証明書を選択します。証明書がない場合は、Fortinet_Factoryデフォルト証明書も使用可能ですが、警告が表示されます。
認証ポータルのカスタマイズ、言語設定、認証方式(Basic/Certificate/Two-Factor)を選択します。
トンネルモードで重要なのは、IPアドレスプールとルーティング設定です。
「Policy & Objects」→「Addresses」で新規アドレスオブジェクトを作成します。Type=IP Range、例:10.200.1.1-10.200.1.100
「Tunnel Mode Client Settings」で作成したIPレンジを「IP Pools」に設定します。DNSサーバーとWINSサーバーも必要に応じて設定します。
Split Tunnelingでは社内ネットワーク宛のみVPN経由、その他は直接インターネット接続。Full Tunnelingではすべての通信がVPN経由になります。
「VPN」→「SSL-VPN Portals」で、ユーザーがログイン後に表示されるポータル画面をカスタマイズできます。
- Tunnel Mode: FortiClient接続を有効化
- Web Mode: Webベースのアクセスを有効化
- Port Forward: 特定ポートの転送設定
- Bookmarks: WebモードでのブックマークグループをJSON形式で設定
SSL-VPN接続を許可するファイアウォールポリシーを作成します。
「Create New」をクリックして新規ポリシーを作成します。


