FortiGateのリバースプロキシ機能について、仕組み・用途・設定方法・注意点などを含めて、専門的かつ実務的な視点で詳しく解説します。
リバースプロキシとは、クライアントとサーバの間に入り、サーバの代理としてリクエストを受けるプロキシサーバの一種です。
通常のフォワードプロキシ(クライアント側の代理)とは逆の動作をするため「リバース」と呼ばれます。
たとえば以下のようなケースで使われます。
FortiGateは主にUTM(Unified Threat Management)やNGFW(次世代ファイアウォール)として知られていますが、バージョン5.6以降で基本的なリバースプロキシ機能を提供しています。
ただし、これはフル機能のApache/Nginxのようなリバースプロキシとは異なり、限定的な使い方に適しています。
リバースプロキシとしての役割を担う際には、以下の2つの機能が中心です。
概要
FortiGateの「Virtual Server」機能では、外部からのHTTP/HTTPSリクエストを特定の内部Webサーバへ転送(NAT/ロードバランス)することができます。
機能的には以下のことが可能
機能概要
これは「Virtual Server」の拡張機能として、HTTPリクエストの内容に応じて細かく転送先を制御できます。
いわゆるリバースプロキシ的な用途になります。
例
www.example.com/api/
→ 内部のAPIサーバwww.example.com/app/
→ 別のアプリサーバ使用例
以下に、FortiGateのGUIでの設定手順の流れを説明します。
VIP_WebServer
vs_http
FortiGateにはWAF機能(Web Application Firewall)があります。
リバースプロキシ構成とセットで使用すれば、攻撃検知・防御(SQLiやXSS等)にも対応可能です。
HTTPSで運用する場合、FortiGateにSSL証明書をインポートして、SSLオフロードを使うことが多くなります。
Let’s Encryptのような自動更新機能はないため、更新作業は定期的に必要です。
FortiGateのリバースプロキシ機能ではSNIベースの振り分けがフルサポートされていないバージョンもあるため、1つのIPで複数SSLドメインを扱う際は設計上の制限があります。
FortiGateは基本的な用途に向いていますが、以下のような要件には向いていません。
その場合、専用のNginx/Apache/HAProxy/Traefikなどの導入を検討しましょう。
用途 | 説明 |
---|---|
社内Webアプリ公開 | 社内システムを外部に安全に公開(SSL終端+IPS) |
ロードバランシング | 複数のバックエンドWebサーバをラウンドロビンで分散 |
SSLオフロード | FortiGateでSSLを処理して内部サーバの負荷を軽減 |
WAFとの連携 | リバースプロキシ+WAFでWebセキュリティを強化 |
FortiGateのリバースプロキシ機能は、「Virtual Server」「HTTP Multiplexer」「WAF」などの機能を組み合わせて実現されます。
基本的なWeb公開や簡易ロードバランス、SSLオフロードなどの要件には十分対応可能ですが、高度なリバースプロキシ機能が必要な場合は専用の製品との併用が理想です。
以上、FortiGateのリバースプロキシについてでした。
最後までお読みいただき、ありがとうございました。