FortiGate は Web プロキシサーバとしても動作します。SSL インスペクションや UTM と組み合わせると、セキュア Web ゲートウェイ(SWG:Secure Web Gateway)として使うこともできます。この記事では、Explicit Proxy の設定にしぼって、設定と動作確認を行います。検証時の FortiOS は 6.2.4 です。
SSL インスペクションと UTM の設定と動作確認は、次の記事を参照してください。
- >> 参考記事:【Fortigate】SSLインスペクション(deep-inspection)設定と動作確認 FortiOS6.2.4
- >> 参考記事:【Fortigate】UTM(アンチウイルス)の設定と動作確認 FortiOS6.2.4
- >> 参考記事:【Fortigate】UTM(侵入防止)の設定と動作確認 FortiOS6.2.4
- >> 参考記事:【Fortigate】UTM(Webフィルタ、URLフィルタ)の設定と動作確認 FortiOS6.4.3
- Explicit Proxy を GUI に表示して、Explicit Web プロキシを有効にする方法
- プロキシポリシーの設定(セキュリティプロファイルと SSL インスペクション)
- ブラウザ、転送トラフィックのログ、UTM のブロック画面での動作確認
検証の構成
端末は、ブラウザのプロキシサーバに FortiGate の 10.0.1.99:8080 を指定します。FortiGate は port2 でプロキシの接続を受け、port1 からインターネットに出します。SSL インスペクション(deep-inspection)を使うので、HTTPS の通信は FortiGate でいったん復号され、端末との間は FortiGate の証明書で暗号化されます。
Explicit Proxy の設定
Explicit Proxy を GUI に表示する
Explicit Proxy の設定は、既定では GUI に表示されません。システム ›› 表示機能設定 の セキュリティ機能 で Explicitプロキシ を有効にし、適用 をクリックします。
すると、ネットワーク の下に Explicitプロキシ が表示されます。ネットワーク ›› Explicitプロキシ を開き、Explicit Webプロキシ を有効にします。
Explicit Web プロキシを設定する
Explicit Web プロキシを有効にすると、設定項目が表示されます。次のように設定します。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| Explicit Webプロキシ | ON |
| 1リッスンするインターフェース | port2 |
| 2HTTPポート | 8080 |
| HTTPSポート | ◉ Use HTTP Port○ 指定 |
| FTP over HTTP | OFF |
| プロキシ自動設定(PAC) | OFF |
| プロキシFQDN | default.fqdn |
| 最大HTTPリクエスト長 | 8 KB |
| 最大HTTPメッセージ長 | 32 KB |
| 不明なHTTPバージョン | ○ ベストエフォート◉ 拒否○ トンネル |
| ⋮(以下略) | |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | リッスンするインターフェース | プロキシの接続を受け付けるインターフェースです。今回は、10.0.1.99 を割り当てている port2 を指定します。 |
| 2 | HTTPポート | プロキシの待ち受けポートです。今回は 8080 にします。HTTPS ポートは Use HTTP Port のままなので、HTTPS も同じ 8080 番で受けます。 |
プロキシポリシーを作る
FortiGate にプロキシとして接続してきた通信には、ファイアウォールポリシーではなく、プロキシポリシーが適用されます。ポリシー&オブジェクト ›› プロキシポリシー を開き、新規作成 をクリックして、次のように設定します。
| 1名前 | Explicit Proxy |
| 2プロキシタイプ | ◉ Explicit Web○ トランスペアレントWeb○ FTP |
| 有効化済みインターフェース | port2 |
| 3発信インターフェース | port1 |
| 4送信元 | all |
| 宛先 | all |
| スケジュール | always |
| 5サービス | webproxy |
| アクション | ◉ 許可○ 拒否 |
| 6アンチウイルス | ON default |
| Webフィルタ | ON default |
| アプリケーションコントロール | ON default |
| IPS | ON default |
| ファイルフィルタ | OFF |
| 7SSLインスペクション | deep-inspection |
| 8許可トラフィックをログ | ON ○ セキュリティイベント◉ すべてのセッション |
| このポリシーを有効化 | ON |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | 名前 | 任意の名前です。今回は Explicit Proxy にします。 |
| 2 | プロキシタイプ | Explicit Web を選びます。 |
| 3 | 発信インターフェース | プロキシで中継する通信を出すインターフェースです。今回はインターネット向けの port1 を指定します。 |
| 4 | 送信元・宛先 | すべての通信を対象にするため、どちらも all にします。 |
| 5 | サービス | webproxy を指定します。 |
| 6 | セキュリティプロファイル | アンチウイルス、Web フィルタ、アプリケーションコントロール、IPS を有効にします(どれも default)。 |
| 7 | SSLインスペクション | deep-inspection にします。HTTPS の中身まで検査できるようになります。 |
| 8 | 許可トラフィックをログ | すべてのセッション にします。 |
作成したら、ポリシーをいちばん上に移動します。ポリシーの一覧は次のようになります。
| ID | 名前 | 送信元 | 宛先 | スケジュール | アクション | セキュリティ プロファイル | ログ |
|---|---|---|---|---|---|---|---|
| explicit-web proxy → port1 | |||||||
| 2 | Explicit Proxy | all | all | always | ✓ 許可 | 1AV default WEB default APP default IPS default SSL deep-inspection | ✓ すべて |
動作確認
ブラウザで Google にアクセスする
端末のブラウザ(Internet Explorer)で、LAN の設定のプロキシサーバに 10.0.1.99、ポートに 8080 を指定し、Google にアクセスします。
Google にアクセスできました。サーバ証明書を確認すると、www.google.com の証明書を FortiGate が発行しています。SSL インスペクションが働き、FortiGate が発行した証明書で端末との間を暗号化していることがわかります。
www.google.com
This connection to the server is encrypted.
deep-inspection では、FortiGate の CA 証明書で署名したサーバ証明書が端末に渡されます。証明書のエラーを出さずに使うには、FortiGate の CA 証明書を端末に信頼させておく必要があります。詳しくは、SSL インスペクションの記事を参照してください。
転送トラフィックのログを確認する
ログ&レポート ›› 転送トラフィック では、プロキシポリシーを通った通信のログを確認できます。ポリシー ID の列が Explicit Proxy (2) の行が、プロキシポリシーを通った通信です。
| 送信元 | 宛先 | サービス | アプリケーション名 | 結果 | ポリシーID |
|---|---|---|---|---|---|
| 110.0.1.10 | play.google.c… | HTTPS | Google.Play | ✓ 2.89 kB / 2.32 kB | Explicit Proxy (2) |
| 10.0.1.10 | www.googl… | HTTPS | Google.Services | ✓ 1.77 kB / 716 B | Explicit Proxy (2) |
| 10.0.1.10 | (伏せています) | NTP | NTP | ✓ 76 B / 76 B | Internal->External (2) |
| (伏せています) | 10.0.0.100 | RDP | ✓ 2.96 MB / 16.04 … | External->Internal (1) | |
| (伏せています) | 10.0.0.100 | RDP | ✓ 2.75 MB / 15.76 … | External->Internal (1) |
同じログに、ファイアウォールポリシー(Internal->External、External->Internal)を通った通信も並んでいます。プロキシポリシーとファイアウォールポリシーは、同じ FortiGate の中で一緒に使えます。
UTM でブロックされることを確認する
プロキシポリシーでは UTM も有効にしているので、プロキシを通る通信も検査されます。テスト用のウイルスファイル eicar をダウンロードしようとすると、アンチウイルスで検知され、次の画面が表示されてダウンロードが遮断されます。
URL:https://secure.eicar.org/eicar.com
Reference URL:http://www.fortinet.com/ve?vn=EICAR_TEST_FILE
次に、Google で /etc/passwd を検索すると、次の画面が表示されて遮断されます。この画面は、アプリケーションコントロールのブロック画面です。検索のアプリケーション Google.Search_Search.Phrase が、アプリケーションコントロールでブロックされています。
You have attempted to use an application that violates your Internet usage policy.
Application:Google.Search_Search.Phrase
Category:General.Interest
このように、Explicit Proxy と SSL インスペクション、UTM を組み合わせると、セキュアなプロキシ(SWG)を構築できます。
プロキシポリシーとファイアウォールポリシー
プロキシポリシーが適用されるのは、FortiGate の IP アドレス(今回は 10.0.1.99:8080)にプロキシとして接続してきた通信だけです。それ以外の FortiGate を通過する通信には、これまでどおりファイアウォールポリシーが適用されます。そのため、ファイアウォールポリシーとプロキシポリシーは混在して使えます。
まとめ
| 設定 | 内容 |
|---|---|
| GUI への表示 | システム ›› 表示機能設定 で Explicitプロキシ を有効化 |
| Explicit Web プロキシ | ネットワーク ›› Explicitプロキシ で有効化、リッスンするインターフェース port2、HTTP ポート 8080 |
| プロキシポリシー | プロキシタイプ Explicit Web、発信 port1、サービス webproxy、セキュリティプロファイルと deep-inspection |
| 端末 | ブラウザのプロキシに 10.0.1.99:8080 を指定 |
| 確認 | 証明書の発行者、転送トラフィックのポリシー ID、UTM のブロック画面 |
コメント