【Fortigate】クラウドプロキシ(Explicit Proxy+ローカルブレークアウト)FortiOS6.2.4

Web通信はプロキシサーバを経由させることにより、セキュリティ向上、キャッシュ、アクセスログの収集などを行うことができます。ただし、Microsoft365(Office365)などの通信は、1ユーザあたりのセッション数やトラフィック量が多く、また、レスポンスも求められることから、プロキシサーバの処理負荷が問題となります。

Fortigateでは、特定の宛先に対し、プロキシサーバを迂回し、直接インターネットへ接続され、プロキシサーバの処理負荷を軽減することができます。このような機能を一般的にクラウドプロキシと呼び、プロキシを迂回する通信をブレークアウトさせるなどと表現することがあります。

以下の記事の構成にプロキシサーバ(SQUID)を準備し、Microsoft関連の通信に対して、プロキシサーバを迂回する設定をします。 そのため、以下の記事を先にお読みいただくことが前提となります。

>> 参考記事 : セキュアWeb ゲートウェイ(SWG : Explicit Proxy+SSLインスペクション+UTM) の設定と動作確認 FortiOS6.2.4
>> 参考記事 : プロキシ認証(Explicit Proxy+LDAPによるBasic認証)FortiOS6.2.4

スポンサーリンク

多段プロキシの設定

Fortigateで受付したプロキシ接続をSQUIDプロキシへ転送する多段プロキシ設定をします。 ネットワーク-Explicitプロキシへ移動し、Webプロキシフォワーディングサーバ新規作成をクリックします。

以下のように設定します。

  • 名前:任意の名前。今回はSQUIDとします。
  • プロキシアドレス:SQUIDのアドレスである10.0.1.20を設定します。
  • ポート:SQUIDはデフォルトのポート番号で受け付ける設定としているため、3128とします。
  • ヘルスモニタ:有効にします。ヘルスチェックモニタサイトはGoogleのサイトがデフォルトで設定されています。

設定後、OKをクリックすると以下の画面のようになります。

最後に適用をクリックします。

では、Fortigate宛のすべてのプロキシ通信をSQUIDプロキシサーバへ転送します。 ポリシー&オブジェクトプロキシポリシーへ移動します。

上のポリシーをダブルクリック後、Webプロキシフォワーディングサーバを有効にし、SQUIDを選択し、OKをクリックします。

Squidプロキシサーバのアクセスログを確認すると、Googleへのアクセスが定期的に発生しています。これは、ヘルスチェックモニタサイトによるものです。

# tail -f /var/log/squid/access.log
1603024284.759     93 10.0.1.99 TCP_MISS/200 14898 GET http://www.google.com/ - HIER_DIRECT/172.217.25.196 text/html
1603024292.363     81 10.0.1.99 TCP_MISS/200 14938 GET http://www.google.com/ - HIER_DIRECT/172.217.25.196 text/html
1603024296.750     73 10.0.1.99 TCP_MISS/200 14882 GET http://www.google.com/ - HIER_DIRECT/172.217.25.196 text/html
スポンサーリンク

多段プロキシの動作確認

端末からlogin.microsoftonline.comへアクセスします。

アクセスできました。Squidプロキシサーバのアクセスログを確認すると、login.microsoftonline.comへのアクセスが確認できます。これは、Microsoft 365 管理画面へのアクセスです。

# tail -f /var/log/squid/access.log
1603024455.975  85897 10.0.1.99 TCP_TUNNEL/200 53875 CONNECT login.microsoftonline.com:443 - HIER_DIRECT/40.126.13.33 -

【ログ&レポート】-【転送トラフィック】でもlogin.microsoftonline.comへのアクセスが確認できます。その他Microsoft関連の通信も確認できます。また、使用しているポリシー名はExplicit Proxyであることもここで確認しておきます。

次に、facebookへアクセスします。

アクセスできました。Squidプロキシサーバのアクセスログを確認すると、facebookへのアクセスが確認できます。

# tail -f /var/log/squid/access.log
1603024901.086    711 10.0.1.99 TCP_TUNNEL/200 53193 CONNECT www.facebook.com:443 - HIER_DIRECT/31.13.82.36 -

【ログ&レポート】-【転送トラフィック】でもfacebookへのアクセスが確認できます。

これで多段プロキシの動作確認ができました。

スポンサーリンク

ブレークアウト通信の設定

では、Microsoft関連の通信だけをインターネットへ直接ブレークアウトします。 ポリシー&オブジェクトプロキシポリシーへ移動し、新規作成をクリックし、ブレークアウト用のポリシーを設定します。

  • 名前:任意の名前。BreakOutとします。
  • 発信インタフェース:インターネット向けのport1を指定します。
  • 送信元:ユーザ Proxy-LDAP-usersからの通信を対象とします。
  • 宛先:Microsoft関連の通信をすべて選択します。+を押し、右のインターネットタブから、Microsoftを含む通信をすべて選択します。
  • サービス:webproxyを選択します。
  • セキュリティプロファイル: 今回は、アプリケーションを正確に検査できるよう、アプリケーションコントロールを有効にし、SSLインスペクションdeep-inspectionにします。SSLインスペクションは処理負荷が高いため、使用するfortigateのスペックを確認し、設定の適用を十分に検討してください。
  • 許可トラフィックをログすべてのセッションにします。

設定したポリシーを一番上位に移動します。(GUIでポリシーを選択し、ドラッグすることで、移動できます) 以下のような設定となります。

スポンサーリンク

ブレークアウト通信の動作確認

端末からlogin.microsoftonline.comへアクセスします。

アクセスできました。Squidプロキシサーバのアクセスログには、login.microsoftonline.comのアクセスログが見当たりません。

【ログ&レポート】-【転送トラフィック】login.microsoftonline.comへのアクセスを確認すると、BreakOutポリシーが適用されていることが確認できます。このため、Squidプロキシを経由せず、直接インターネットへ接続されていることが確認できます。

ログの詳細を確認すると、宛先インタフェースがインターネット向けであるport1であることが確認できます。

facebookへのアクセスは、ブレークアウト対象ではないので、変わらず、Squidプロキシへ転送されます。

# tail -f /var/log/squid/access.log
1603026597.319  86404 10.0.1.99 TCP_TUNNEL/200 52181 CONNECT www.facebook.com:443 - HIER_DIRECT/31.13.82.36 -

ブレークアウト対象のアプリケーションは、Fortigateが持つISDB(Internet Service Data Base)と呼ばれるデータベースから選択することができます。このデータベースは1日に1回 FortiGuardからダウンロードされ、更新されます。

スポンサーリンク

参考:Squidプロキシサーバがダウンしている場合

Squidプロキシサーバがダウンしている場合、端末からGoogleへアクセスしようとしても接続ができません。このような場合、以下のようなエラー画面が出力されます。

コメント