FortiGate の Web フィルタでは、FortiGuard のカテゴリで判定するだけでなく、URL を静的に(スタティックに)登録して、その URL だけ通信を許可することもできます。この設定は、Web フィルタのプロファイルの「スタティック URL フィルタ」で行います。
この記事では、YouTube へのアクセスだけを許可し、それ以外の URL をブロックする設定と動作を確認します。検証時の FortiOS は 6.4.3 です。
この記事は、次の記事の内容(SSL インスペクションと Web フィルタの基本)を前提にしています。先に読んでおくことをおすすめします。
- スタティック URL フィルタで、特定の URL を許可する設定
- URL フィルタのアクション(除外・ブロック・許可・モニタ)の違い
- リストに暗黙の拒否がないため、最後に「* をブロック」を足す理由
- ブロック画面と Web フィルタのログの確認
URL フィルタの照合のしかた
スタティック URL フィルタのリストは、上から順に照合されます。最初に一致した行のアクションが使われ、それより下の行は見ません。また、リストには暗黙の拒否がないので、どの行にも一致しない URL はそのまま通ります。
そのため「YouTube だけ許可して、ほかはブロック」にするには、1行目で youtube.com を許可し、最後の行ですべての URL(*)をブロックします。
スタティック URL フィルタの設定
プロファイルで URL フィルタを有効にする
セキュリティプロファイル ›› Webフィルタ で、ファイアウォールポリシーに適用しているプロファイル(今回は default)を開きます。今回は FortiGuard のカテゴリによるフィルタは使わないので、FortiGuardカテゴリベースのフィルタ を OFF にし、スタティックURLフィルタ の URLフィルタ を ON にします。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 名前 | default |
| 機能セット | ◉ フローベース○ プロキシベース |
| 1FortiGuardカテゴリベースのフィルタ | OFF |
| ユーザにブロックされたカテゴリのオーバーライドを許可する | OFF |
| 無効なURLをブロック | OFF | ||||||||
| 2URLフィルタ | ON
| ||||||||
| FortiSandboxにより検知された悪意のあるURLをブロック | OFF | ||||||||
| コンテンツフィルタ | OFF | ||||||||
| No. | 項目 | 設定する内容 |
|---|---|---|
| 1 | FortiGuardカテゴリベースのフィルタ | OFF にします。カテゴリでの判定は行いません。 |
| 2 | URLフィルタ | ON にすると、URL のリストが表示されます。 |
| 3 | 新規作成 | リストに URL を追加します。 |
youtube.com を許可する
新規作成 をクリックし、許可する URL を登録します。
| 1URL | youtube.com |
| 2タイプ | ◉ シンプル○ 正規表現○ ワイルドカード |
| 3アクション | ○ 除外(exempt)○ ブロック◉ 許可○ モニタ |
| ステータス | ◉ 有効○ 無効 |
| No. | 項目 | 設定する内容 |
|---|---|---|
| 1 | URL | 照合する URL です。今回は youtube.com を入力します。 |
| 2 | タイプ | シンプル を選びます。ほかに、正規表現とワイルドカードも使えます。 |
| 3 | アクション | 許可 を選びます。 |
アクションで選べる動作は、次のとおりです。
| アクション | 動作 |
|---|---|
| 除外(exempt) | 一致した通信は、このあとの FortiGuard Web フィルタ、Web コンテンツフィルタ、アンチウイルス、DLP などの検査をすべて飛ばして通します。 |
| ブロック | 一致した URL へのアクセスをブロックし、ブロック画面(置き換えメッセージ)を表示します。 |
| 許可 | 一致した通信を、このあとの FortiGuard Web フィルタやアンチウイルスなどの検査に回します。検査を通過すれば許可されます。 |
| モニタ | 許可と同じ動作で、一致するたびにログを記録します。 |
今回は FortiGuard のカテゴリによるフィルタを OFF にしているので、許可にした youtube.com は、そのまま通信が許可されます。OK をクリックすると、リストに登録されます。
| URL | タイプ | アクション | ステータス |
|---|---|---|---|
| 1youtube.com | シンプル | ✔ 許可 | ✔ 有効 |
この状態で、端末から YouTube とニコニコ動画にアクセスすると、どちらのサイトにもアクセスできます。
ニコニコ動画の URL はリストのどの行にも一致しません。URL フィルタのリストには暗黙の拒否がないので、一致しない URL はそのまま通ります。
最後にすべての URL をブロックする
許可した URL 以外を止めるには、明示的にブロックの行を足します。もう一度 新規作成 をクリックします。
| 1URL | * |
| 2タイプ | ○ シンプル○ 正規表現◉ ワイルドカード |
| 3アクション | ○ 除外(exempt)◉ ブロック○ 許可○ モニタ |
| ステータス | ◉ 有効○ 無効 |
| No. | 項目 | 設定する内容 |
|---|---|---|
| 1 | URL | すべての URL を対象にするため、* を入力します。 |
| 2 | タイプ | ワイルドカード を選びます。 |
| 3 | アクション | ブロック を選びます。 |
ブロックの行が、youtube.com の行の下に登録されます。OK をクリックして、プロファイルを保存します。
| URL | タイプ | アクション | ステータス |
|---|---|---|---|
| 1youtube.com | シンプル | ✔ 許可 | ✔ 有効 |
| 2* | ワイルドカード | ⊘ ブロック | ✔ 有効 |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | youtube.com | 1行目で照合されるので、YouTube へのアクセスは許可されます。 |
| 2 | * | 1行目に一致しなかった URL は、すべてここでブロックされます。 |
| 3 | OK | プロファイルを保存します。 |
リストは上から順に照合されるので、* のブロックは必ずリストの最後に置きます。* が許可の行より上にあると、許可したい URL も先にブロックの行に一致してしまいます。あとから許可する URL を足すときも、* の行より上に入れます。
動作確認
ブラウザでアクセスする
端末から YouTube とニコニコ動画にアクセスすると、YouTube だけが表示されます。ニコニコ動画は、FortiGate のブロック画面になります。
ブロック画面の URL Source が Local URLfilter Block になっており、スタティック URL フィルタ(図7 の * の行)でブロックされたことがわかります。すべての URL をブロックしているので、Google など、許可していないほかのサイトもブロックされます。
Web フィルタのログを確認する
ログ&レポート ›› Webフィルタ を開くと、たとえば Google へのアクセスが、URL フィルタのリストによってブロックされていることを確認できます。
| 送信元 | アクション | URL |
|---|---|---|
| (伏せています) | blocked | https://static.doubleclick.net/ |
| (伏せています) | blocked | 2https://i.ytimg.com/ |
| (伏せています) | blocked | https://yt3.ggpht.com/ |
| (伏せています) | blocked | 1https://www.google.com/ |
| (伏せています) | blocked | https://www.google.co.jp/ |
| (伏せています) | blocked | https://r5—sn-oguesnz7.googlevideo.com/ |
| ポリシーID | 2 |
| 脅威レベル | High(脅威スコア 30) |
| サービス | HTTPS |
| プロファイル名 | default |
| URLフィルタインデックス | 2 |
| URLフィルタリスト | Auto-webfilter-urlfilter_bfmykr9i5 |
| 3メッセージ | URL was blocked because it is in the URL filter list |
| No. | 表示 | 意味 |
|---|---|---|
| 1 | www.google.com | 許可していない Google へのアクセスが blocked になっています。 |
| 2 | i.ytimg.com など | YouTube の画像や動画を配信する別のドメインも、youtube.com には一致しないのでブロックされています。 |
| 3 | メッセージ | URL フィルタのリスト(インデックス 2 の行= * の行)に一致してブロックされたことを示します。 |
多くの Web サイトは、本体とは別のドメイン(画像や動画の配信用、広告など)からもデータを読み込みます。今回のログでも、i.ytimg.com、yt3.ggpht.com、googlevideo.com など YouTube が使うドメインがブロックされています。特定のサイトだけを許可するときは、ログを見ながら、必要なドメインも許可の行に足していきます。
まとめ
| 順 | URL | タイプ | アクション | 役割 |
|---|---|---|---|---|
| 1 | youtube.com | シンプル | 許可 | 許可したい URL(必要なドメインはこの位置に足す) |
| 2 | * | ワイルドカード | ブロック | それ以外をすべてブロック(必ず最後) |
スタティック URL フィルタは上から順に照合され、暗黙の拒否はありません。「特定の URL だけ許可」にするときは、許可の行を上に、* のブロックを最後に置きます。
コメント
とても参考なる記事をありがとうございます。運用の参考にさせていただいております。
ところで、youtube.com全体はブロックするが、特定のyoutube動画のみ許可する設定はどうすればよろしいでしょうか。記事を参考に試行錯誤しておりましたがなかなかうまく行きません。
ご教授いただければ幸いです。
よろしくお願いいたします。
blackair さん、コメントありがとうございます。
私も試してことはなく恐縮ですが、下記KB(少々古い記事ですが)を参考に、動作確認してみてはいかがでしょうか。
Technical Note: Allowing a specific YouTube video whilst blocking all other YouTube content
https://community.fortinet.com/t5/FortiGate/Technical-Note-Allowing-a-specific-YouTube-video-whilst-blocking/ta-p/195455
ポイントとしては、SSLインスペクションで、Deep-Inspectionを選択する必要がございます。
SSLインスペクションは、私も記事しておりますので、あわせて、ご参考いただければと思います。
https://hirotanoblog.com/fortigate-ssl-inspection/3376/
また、ポリシーを設定する際に、検査モードをフローベース (Flow-based) ではなく プロキシベース(Proxy-based) に変更する必要があるかもしれません。
ご不明点やフィードバックなどあれば、コメントいただけると幸いです。