Web通信はプロキシサーバを経由させることにより、セキュリティ向上、キャッシュ、アクセスログの収集などを行うことができます。ただし、Microsoft365(Office365)などの通信は、1ユーザあたりのセッション数やトラフィック量が多く、また、レスポンスも求められることから、プロキシサーバの処理負荷が問題となります。
Fortigateでは、特定の宛先に対し、プロキシサーバを迂回し、直接インターネットへ接続され、プロキシサーバの処理負荷を軽減することができます。このような機能を一般的にクラウドプロキシと呼び、プロキシを迂回する通信をブレークアウトさせるなどと表現することがあります。
以下の記事の構成にプロキシサーバ(SQUID)を準備し、Microsoft関連の通信に対して、プロキシサーバを迂回する設定をします。 そのため、以下の記事を先にお読みいただくことが前提となります。
>> 参考記事 : セキュアWeb ゲートウェイ(SWG : Explicit Proxy+SSLインスペクション+UTM) の設定と動作確認 FortiOS6.2.4![](https://hirotanoblog.com/wp-content/uploads/2020/10/88AC890F-0E68-4575-B948-40B4895B693C-1.png)
多段プロキシの設定
Fortigateで受付したプロキシ接続をSQUIDプロキシへ転送する多段プロキシ設定をします。 ネットワーク-Explicitプロキシへ移動し、Webプロキシフォワーディングサーバの新規作成をクリックします。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/27A87C98-13A3-4B29-9389-C3A42DDE3339.png)
以下のように設定します。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/5DCEC45C-132F-431D-A8B1-EA638313DBAC.png)
- 名前:任意の名前。今回はSQUIDとします。
- プロキシアドレス:SQUIDのアドレスである10.0.1.20を設定します。
- ポート:SQUIDはデフォルトのポート番号で受け付ける設定としているため、3128とします。
- ヘルスモニタ:有効にします。ヘルスチェックモニタサイトはGoogleのサイトがデフォルトで設定されています。
設定後、OKをクリックすると以下の画面のようになります。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/3586D2B3-C2F9-48EC-8091-63A4D7227242.png)
最後に適用をクリックします。
では、Fortigate宛のすべてのプロキシ通信をSQUIDプロキシサーバへ転送します。 ポリシー&オブジェクト– プロキシポリシーへ移動します。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/3F24E33C-CAD8-4AE5-AF32-800660C9B677-1024x173.png)
上のポリシーをダブルクリック後、Webプロキシフォワーディングサーバを有効にし、SQUIDを選択し、OKをクリックします。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/C10309F0-CCB8-427C-977C-7E8A67643341.png)
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へアクセスします。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/373F50C0-A89F-4F90-8843-21E38B4BB823.png)
アクセスできました。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であることもここで確認しておきます。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/B21FF8B4-650D-4ACD-86FD-45D9775B5BBE-1024x263.png)
次に、facebookへアクセスします。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/8946ACCD-F231-416D-85A7-B612AFDB0DB5.png)
アクセスできました。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へのアクセスが確認できます。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/290264C9-32CB-48FE-8E76-633DDC13E94A.png)
これで多段プロキシの動作確認ができました。
ブレークアウト通信の設定
では、Microsoft関連の通信だけをインターネットへ直接ブレークアウトします。 ポリシー&オブジェクト– プロキシポリシーへ移動し、新規作成をクリックし、ブレークアウト用のポリシーを設定します。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/643FB985-8975-4D2A-9206-5181B6E197BB.png)
![](https://hirotanoblog.com/wp-content/uploads/2020/10/68BCB11D-47AC-4F43-A74F-88AA9F861D7B-1024x291.png)
- 名前:任意の名前。BreakOutとします。
- 発信インタフェース:インターネット向けのport1を指定します。
- 送信元:ユーザ Proxy-LDAP-usersからの通信を対象とします。
- 宛先:Microsoft関連の通信をすべて選択します。+を押し、右のインターネットタブから、Microsoftを含む通信をすべて選択します。
- サービス:webproxyを選択します。
- セキュリティプロファイル: 今回は、アプリケーションを正確に検査できるよう、アプリケーションコントロールを有効にし、SSLインスペクションをdeep-inspectionにします。SSLインスペクションは処理負荷が高いため、使用するfortigateのスペックを確認し、設定の適用を十分に検討してください。
- 許可トラフィックをログ:すべてのセッションにします。
設定したポリシーを一番上位に移動します。(GUIでポリシーを選択し、ドラッグすることで、移動できます) 以下のような設定となります。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/3F1111FE-2DF1-4910-BC93-BE1C925B9517-1024x539.png)
ブレークアウト通信の動作確認
端末からlogin.microsoftonline.comへアクセスします。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/373F50C0-A89F-4F90-8843-21E38B4BB823-1.png)
アクセスできました。Squidプロキシサーバのアクセスログには、login.microsoftonline.comのアクセスログが見当たりません。
【ログ&レポート】-【転送トラフィック】でlogin.microsoftonline.comへのアクセスを確認すると、BreakOutポリシーが適用されていることが確認できます。このため、Squidプロキシを経由せず、直接インターネットへ接続されていることが確認できます。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/6F5E905F-2E2A-4A6F-9C12-8556BBB1151C-1024x237.png)
ログの詳細を確認すると、宛先インタフェースがインターネット向けであるport1であることが確認できます。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/2479C813-2672-4065-A228-19593B9F208D.png)
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 -
![](https://hirotanoblog.com/wp-content/uploads/2020/10/BA396E2D-B323-45DA-9CD5-247FB91180E1-1024x291.png)
ブレークアウト対象のアプリケーションは、Fortigateが持つISDB(Internet Service Data Base)と呼ばれるデータベースから選択することができます。このデータベースは1日に1回 FortiGuardからダウンロードされ、更新されます。
参考:Squidプロキシサーバがダウンしている場合
Squidプロキシサーバがダウンしている場合、端末からGoogleへアクセスしようとしても接続ができません。このような場合、以下のようなエラー画面が出力されます。
![](https://hirotanoblog.com/wp-content/uploads/2020/10/6E9742F0-8DC6-4100-9B42-26C07A6CE29F.png)
コメント