FortiGete スタティックURLフィルタリングによるサイトブロック手順

FortiGate カテゴリフィルタの導入手順

https ページはスタティックURLフィルタが効かない

スタティックURLフィルタをページごとに行いたい場合、「http ページはフィルタできるのに https ページはフィルタできない」という事態に陥りがちです。

実際に見てみましょう。

まず「*turningp.jp/server-client/*」をブロックするというフィルタを作成します。期待する制御は当該パスが入っているページの閲覧ブロックです。

しかし実際にはアクセスできてしまいます。URLを見てみると https でサイトが構成されています。

では続いて http の特定ページのブロックをしてみましょう。ちょうどいいサイトがありました。以下のラブライブというアニメは、トップページが「http://www.lovelive-anime.jp/」、リンクとして「http://www.lovelive-anime.jp/otonokizaka/」と「http://www.lovelive-anime.jp/uranohoshi/」が存在します。

http://www.lovelive-anime.jp/

http://www.lovelive-anime.jp/otonokizaka/

http://www.lovelive-anime.jp/uranohoshi/

この中で、「http://www.lovelive-anime.jp/uranohoshi/」だけをブロックしてみましょう。

この時注意しなければならないのは、下図のように「http://」をURLフィルタに含めてしまうとフィルタリングされないことです。

http:// をつけると

見れる

「http://」を除いた部分で再定義しました。すると「http://www.lovelive-anime.jp/uranohoshi/」にだけアクセスできないという期待した結果になったことがわかります。

ワイルドカードで指定

「http://www.lovelive-anime.jp/uranohoshi/」はブロック

「http://www.lovelive-anime.jp/otonokizaka/」は閲覧可能

先程の例ではワイルドカードを使用しましたが、以下の様にタイプがシンプルでも同様の結果が得られます。

シンプルで指定

「http://www.lovelive-anime.jp/uranohoshi/」はブロック

「http://www.lovelive-anime.jp/otonokizaka/」は閲覧可能

これで「http は制御できるのに https は制御できない」ということを理解していただけたと思います。勿論、理由は存在します。

https の場合 URLが暗号化されている

SSL通信をURLフィルタリングできる? | FortiGateの設計/設定ガイド

上記リンク先で詳しく解説してくれていますが、要は https の場合は URL が暗号化されている為、通信を復号でもしない限り FortiGate はクライアントのアクセス先を知ることができません。

FortiGate では「deep-inspection」モードとして通信を復号することで https 通信に関してもURLフィルタリングすることは可能です。しかし、以下の注意点があるのであまり気軽に使える機能ではありません。

  • Fortigateよりダウンロードした証明書を各クライアントPCに配布、インストールが必要となる
  • 暗号化された通信を復号してスキャンするためスループットが低下する

deep-inspection の設定方法

SSL インスペクションの設定をデフォルトの「certificate-inspection」から「deep-inspection」へ変更する方法ですが、ポリシーから行います。ですが、初期設定では以下のように SSL インスペクション設定がグレーアウトしており変更することができません。

SSL インスペクションの設定変更を可能にするために、「システム」-「Feature Visibility(表示機能設定)」-「複数セキュリティプロファイル」を有効にした状態で適用をクリックしてください。

そうすることで SSL インスペクション設定が変更できるようになります。なお、先述したように すべてのクライアントに証明書をインストールしなくてはならないので、下図のように警告が表示されます。

https 接続の特定ページを対象としたスタティック URL フィルタを定義します。

今回定義した URL フィルタは「turningp.jp/server-client/*」のブロックです。まずは「https://turningp.jp/」にアクセスしてみましょう。アクセスできるはずです。

クライアントに証明書をインストールする前に接続にいったため、証明書エラーが表示されてしまいました。

まずは「https://turninp.jp/」にはアクセスできました。

次に「https://turningp.jp/server-client/linux/centos-auto_partition」というページにアクセスしてみます。「https://turningp.jp/server-client」がパスに含まれているためブロックされれば成功です。

ブロックされたので期待通り!

ブロックされました。後は他のページにはアクセスできればオールオッケーです。「https://turningp.jp/virtualization/vsphere/esxi-hdd」にアクセスしてみましょう。

アクセスできた!

問題ありませんね。これで特定ページのブロックは成功となります。

最後に

SSL インスペクションの設定を「deep-inspection」に設定すると、クライアントに証明書をインストールしなければ google にアクセスすることすらままなりません。

google にもアクセスできない

証明書のインストールは別記事にしようかと思います。

そもそも、個人的には「やらない方がいいのでは?」と思っていたりもしますので、ご利用は計画的に。

ちなみに、本記事ではスタティックURLフィルタで「ブロック」する方法を記載していますが、「許可」する方法は少しだけ癖があります。以下記事を参照してください。

FortiGateでカテゴリフィルタとURLフィルタ(許可)を組み合わせる方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)