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へアクセスしようとしても接続ができません。このような場合、以下のようなエラー画面が出力されます。
コメント