【Fortigate】セキュアWeb ゲートウェイ(SWG : Explicit Proxy+SSLインスペクション+UTM) の設定と動作確認 FortiOS6.2.4

FortiGate は Web プロキシサーバとしても動作します。SSL インスペクションや UTM と組み合わせると、セキュア Web ゲートウェイ(SWG:Secure Web Gateway)として使うこともできます。この記事では、Explicit Proxy の設定にしぼって、設定と動作確認を行います。検証時の FortiOS は 6.2.4 です。

SSL インスペクションと UTM の設定と動作確認は、次の記事を参照してください。

この記事でわかること
  1. Explicit Proxy を GUI に表示して、Explicit Web プロキシを有効にする方法
  2. プロキシポリシーの設定(セキュリティプロファイルと SSL インスペクション)
  3. ブラウザ、転送トラフィックのログ、UTM のブロック画面での動作確認

検証の構成

端末は、ブラウザのプロキシサーバに FortiGate の 10.0.1.99:8080 を指定します。FortiGate は port2 でプロキシの接続を受け、port1 からインターネットに出します。SSL インスペクション(deep-inspection)を使うので、HTTPS の通信は FortiGate でいったん復号され、端末との間は FortiGate の証明書で暗号化されます。

Internet端末プロキシ 10.0.1.99:8080FortiGateExplicit Proxy(10.0.1.99)port2port1HTTPSHTTPSFortiGate の証明書で暗号化公開サーバの証明書で暗号化復号して検査SSL インスペクション+UTM
図1 検証の構成

Explicit Proxy の設定

Explicit Proxy を GUI に表示する

Explicit Proxy の設定は、既定では GUI に表示されません。システム ›› 表示機能設定 の セキュリティ機能 で Explicitプロキシ を有効にし、適用 をクリックします。

すると、ネットワーク の下に Explicitプロキシ が表示されます。ネットワーク ›› Explicitプロキシ を開き、Explicit Webプロキシ を有効にします。

Explicit Web プロキシを設定する

Explicit Web プロキシを有効にすると、設定項目が表示されます。次のように設定します。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

FortiGate 管理画面画面イメージ
ネットワーク ›› Explicitプロキシ
Explicit Webプロキシ ON
1リッスンするインターフェースport2
2HTTPポート8080
HTTPSポート◉ Use HTTP Port○ 指定
FTP over HTTP OFF
プロキシ自動設定(PAC) OFF
プロキシFQDNdefault.fqdn
最大HTTPリクエスト長8 KB
最大HTTPメッセージ長32 KB
不明なHTTPバージョン○ ベストエフォート◉ 拒否○ トンネル
⋮(以下略)
図2 Explicit Web プロキシの設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1リッスンするインターフェースプロキシの接続を受け付けるインターフェースです。今回は、10.0.1.99 を割り当てている port2 を指定します。
2HTTPポートプロキシの待ち受けポートです。今回は 8080 にします。HTTPS ポートは Use HTTP Port のままなので、HTTPS も同じ 8080 番で受けます。

プロキシポリシーを作る

FortiGate にプロキシとして接続してきた通信には、ファイアウォールポリシーではなく、プロキシポリシーが適用されます。ポリシー&オブジェクト ›› プロキシポリシー を開き、新規作成 をクリックして、次のように設定します。

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
OKキャンセル
図3 プロキシポリシーの設定(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定内容
1名前任意の名前です。今回は Explicit Proxy にします。
2プロキシタイプExplicit Web を選びます。
3発信インターフェースプロキシで中継する通信を出すインターフェースです。今回はインターネット向けの port1 を指定します。
4送信元・宛先すべての通信を対象にするため、どちらも all にします。
5サービスwebproxy を指定します。
6セキュリティプロファイルアンチウイルス、Web フィルタ、アプリケーションコントロール、IPS を有効にします(どれも default)。
7SSLインスペクションdeep-inspection にします。HTTPS の中身まで検査できるようになります。
8許可トラフィックをログすべてのセッション にします。

作成したら、ポリシーをいちばん上に移動します。ポリシーの一覧は次のようになります。

FortiGate 管理画面画面イメージ
ポリシー&オブジェクト ›› プロキシポリシー
ID名前送信元宛先スケジュールアクションセキュリティ
プロファイル
ログ
explicit-web proxy → port1
2Explicit Proxyallallalways✓ 許可1AV default
WEB default
APP default
IPS default
SSL deep-inspection
✓ すべて
図4 作成したプロキシポリシー(実際の画面ではなく、表示のポイントを示したイメージです)

動作確認

ブラウザで Google にアクセスする

端末のブラウザ(Internet Explorer)で、LAN の設定のプロキシサーバに 10.0.1.99、ポートに 8080 を指定し、Google にアクセスします。

Google にアクセスできました。サーバ証明書を確認すると、www.google.com の証明書を FortiGate が発行しています。SSL インスペクションが働き、FortiGate が発行した証明書で端末との間を暗号化していることがわかります。

端末のブラウザ(サーバ証明書の確認)画面イメージ
https://www.google.com/
Website IdentificationFGT(伏せています) has identified this site as:
www.google.com
This connection to the server is encrypted.
図5 FortiGate が発行したサーバ証明書(実際の画面ではなく、表示のポイントを示したイメージです)
補足

deep-inspection では、FortiGate の CA 証明書で署名したサーバ証明書が端末に渡されます。証明書のエラーを出さずに使うには、FortiGate の CA 証明書を端末に信頼させておく必要があります。詳しくは、SSL インスペクションの記事を参照してください。

転送トラフィックのログを確認する

ログ&レポート ›› 転送トラフィック では、プロキシポリシーを通った通信のログを確認できます。ポリシー ID の列が Explicit Proxy (2) の行が、プロキシポリシーを通った通信です。

FortiGate 管理画面画面イメージ
ログ&レポート ›› 転送トラフィック
送信元宛先サービスアプリケーション名結果ポリシーID
110.0.1.10play.google.c…HTTPSGoogle.Play✓ 2.89 kB / 2.32 kBExplicit Proxy (2)
10.0.1.10www.googl…HTTPSGoogle.Services✓ 1.77 kB / 716 BExplicit Proxy (2)
10.0.1.10(伏せています)NTPNTP✓ 76 B / 76 BInternal->External (2)
(伏せています)10.0.0.100RDP✓ 2.96 MB / 16.04 …External->Internal (1)
(伏せています)10.0.0.100RDP✓ 2.75 MB / 15.76 …External->Internal (1)
図6 転送トラフィックのログ(実際の画面ではなく、表示のポイントを示したイメージです。宛先はホスト名だけを示し、グローバルの IP アドレスは伏せています)

同じログに、ファイアウォールポリシー(Internal->External、External->Internal)を通った通信も並んでいます。プロキシポリシーとファイアウォールポリシーは、同じ FortiGate の中で一緒に使えます。

UTM でブロックされることを確認する

プロキシポリシーでは UTM も有効にしているので、プロキシを通る通信も検査されます。テスト用のウイルスファイル eicar をダウンロードしようとすると、アンチウイルスで検知され、次の画面が表示されてダウンロードが遮断されます。

端末のブラウザ(FortiGate のブロック画面)画面イメージ
https://secure.eicar.org/eicar.com
High Security AlertYou are not permitted to download the file “eicar.com” because it is infected with the virus “EICAR_TEST_FILE”.
URL:https://secure.eicar.org/eicar.com
Reference URL:http://www.fortinet.com/ve?vn=EICAR_TEST_FILE
図7 アンチウイルスのブロック画面(実際の画面ではなく、表示のポイントを示したイメージです)

次に、Google で /etc/passwd を検索すると、次の画面が表示されて遮断されます。この画面は、アプリケーションコントロールのブロック画面です。検索のアプリケーション Google.Search_Search.Phrase が、アプリケーションコントロールでブロックされています。

端末のブラウザ(FortiGate のブロック画面)画面イメージ
https://www.google.com/search?…q=/etc/passwd…
FortiGate Application ControlApplication Blocked
You have attempted to use an application that violates your Internet usage policy.
Application:Google.Search_Search.Phrase
Category:General.Interest
図8 アプリケーションコントロールのブロック画面(実際の画面ではなく、表示のポイントを示したイメージです)

このように、Explicit Proxy と SSL インスペクション、UTM を組み合わせると、セキュアなプロキシ(SWG)を構築できます。

プロキシポリシーとファイアウォールポリシー

プロキシポリシーが適用されるのは、FortiGate の IP アドレス(今回は 10.0.1.99:8080)にプロキシとして接続してきた通信だけです。それ以外の FortiGate を通過する通信には、これまでどおりファイアウォールポリシーが適用されます。そのため、ファイアウォールポリシーとプロキシポリシーは混在して使えます。

Internet宛先が 10.0.1.99:8080→ プロキシポリシーそのほかの通過する通信→ ファイアウォールポリシー端末FortiGate
図9 プロキシポリシーとファイアウォールポリシーの使い分け

まとめ

設定内容
GUI への表示システム ›› 表示機能設定 で Explicitプロキシ を有効化
Explicit Web プロキシネットワーク ›› Explicitプロキシ で有効化、リッスンするインターフェース port2、HTTP ポート 8080
プロキシポリシープロキシタイプ Explicit Web、発信 port1、サービス webproxy、セキュリティプロファイルと deep-inspection
端末ブラウザのプロキシに 10.0.1.99:8080 を指定
確認証明書の発行者、転送トラフィックのポリシー ID、UTM のブロック画面

コメント