【Fortigate】URLフィルタのスタティック設定と動作確認 FortiOS6.4.3

FortiGate の Web フィルタでは、FortiGuard のカテゴリで判定するだけでなく、URL を静的に(スタティックに)登録して、その URL だけ通信を許可することもできます。この設定は、Web フィルタのプロファイルの「スタティック URL フィルタ」で行います。

この記事では、YouTube へのアクセスだけを許可し、それ以外の URL をブロックする設定と動作を確認します。検証時の FortiOS は 6.4.3 です。

前提の記事

この記事は、次の記事の内容(SSL インスペクションと Web フィルタの基本)を前提にしています。先に読んでおくことをおすすめします。

この記事でわかること
  1. スタティック URL フィルタで、特定の URL を許可する設定
  2. URL フィルタのアクション(除外・ブロック・許可・モニタ)の違い
  3. リストに暗黙の拒否がないため、最後に「* をブロック」を足す理由
  4. ブロック画面と Web フィルタのログの確認

URL フィルタの照合のしかた

スタティック URL フィルタのリストは、上から順に照合されます。最初に一致した行のアクションが使われ、それより下の行は見ません。また、リストには暗黙の拒否がないので、どの行にも一致しない URL はそのまま通ります。

そのため「YouTube だけ許可して、ほかはブロック」にするには、1行目で youtube.com を許可し、最後の行ですべての URL(*)をブロックします。

Web アクセスURL を照合URL フィルタのリスト(上から順に照合)1 youtube.comシンプル/許可2 *ワイルドカード/ブロック一致しない一致許可www.youtube.com など一致ブロックwww.nicovideo.jp、Google など最後の * がないと、どの行にも一致しない URL はそのまま通る(暗黙の拒否はない)
図1 URL フィルタのリストは上から順に照合され、最初に一致した行のアクションが使われる

スタティック URL フィルタの設定

プロファイルで URL フィルタを有効にする

セキュリティプロファイル ›› Webフィルタ で、ファイアウォールポリシーに適用しているプロファイル(今回は default)を開きます。今回は FortiGuard のカテゴリによるフィルタは使わないので、FortiGuardカテゴリベースのフィルタ を OFF にし、スタティックURLフィルタ の URLフィルタ を ON にします。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

FortiGate 管理画面画面イメージ
Webフィルタ ›› Webフィルタプロファイルの編集
名前default
機能セット◉ フローベース○ プロキシベース
1FortiGuardカテゴリベースのフィルタOFF
ユーザにブロックされたカテゴリのオーバーライドを許可するOFF
スタティックURLフィルタ
無効なURLをブロックOFF
2URLフィルタON
URLタイプアクションステータス
エントリがありません
FortiSandboxにより検知された悪意のあるURLをブロックOFF
コンテンツフィルタOFF
3+ 新規作成編集削除
図2 Web フィルタのプロファイル(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定する内容
1FortiGuardカテゴリベースのフィルタOFF にします。カテゴリでの判定は行いません。
2URLフィルタON にすると、URL のリストが表示されます。
3新規作成リストに URL を追加します。

youtube.com を許可する

新規作成 をクリックし、許可する URL を登録します。

FortiGate 管理画面画面イメージ
Webフィルタプロファイルの編集 ›› 新規URLフィルタ
1URLyoutube.com
2タイプ◉ シンプル○ 正規表現○ ワイルドカード
3アクション○ 除外(exempt)○ ブロック◉ 許可○ モニタ
ステータス◉ 有効○ 無効
OKキャンセル
図3 youtube.com を許可する URL フィルタ(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定する内容
1URL照合する URL です。今回は youtube.com を入力します。
2タイプシンプル を選びます。ほかに、正規表現とワイルドカードも使えます。
3アクション許可 を選びます。

アクションで選べる動作は、次のとおりです。

アクション動作
除外(exempt)一致した通信は、このあとの FortiGuard Web フィルタ、Web コンテンツフィルタ、アンチウイルス、DLP などの検査をすべて飛ばして通します。
ブロック一致した URL へのアクセスをブロックし、ブロック画面(置き換えメッセージ)を表示します。
許可一致した通信を、このあとの FortiGuard Web フィルタやアンチウイルスなどの検査に回します。検査を通過すれば許可されます。
モニタ許可と同じ動作で、一致するたびにログを記録します。

今回は FortiGuard のカテゴリによるフィルタを OFF にしているので、許可にした youtube.com は、そのまま通信が許可されます。OK をクリックすると、リストに登録されます。

FortiGate 管理画面画面イメージ
Webフィルタプロファイルの編集 ›› スタティックURLフィルタ
URLタイプアクションステータス
1youtube.comシンプル✔ 許可✔ 有効
図4 youtube.com だけを登録したリスト(実際の画面ではなく、表示のポイントを示したイメージです)

この状態で、端末から YouTube とニコニコ動画にアクセスすると、どちらのサイトにもアクセスできます。

端末のブラウザ画面イメージ
https://www.youtube.com/
YouTube表示される
https://www.nicovideo.jp/
ニコニコ動画表示される
図5 youtube.com だけを許可したときの結果。ほかのサイトも表示される(実際の画面ではなく、表示結果のイメージです)

ニコニコ動画の URL はリストのどの行にも一致しません。URL フィルタのリストには暗黙の拒否がないので、一致しない URL はそのまま通ります。

最後にすべての URL をブロックする

許可した URL 以外を止めるには、明示的にブロックの行を足します。もう一度 新規作成 をクリックします。

FortiGate 管理画面画面イメージ
Webフィルタプロファイルの編集 ›› 新規URLフィルタ
1URL*
2タイプ○ シンプル○ 正規表現◉ ワイルドカード
3アクション○ 除外(exempt)◉ ブロック○ 許可○ モニタ
ステータス◉ 有効○ 無効
OKキャンセル
図6 すべての URL をブロックする URL フィルタ(実際の画面ではなく、設定する項目を示したイメージです)
No.項目設定する内容
1URLすべての URL を対象にするため、* を入力します。
2タイプワイルドカード を選びます。
3アクションブロック を選びます。

ブロックの行が、youtube.com の行の下に登録されます。OK をクリックして、プロファイルを保存します。

FortiGate 管理画面画面イメージ
Webフィルタプロファイルの編集 ›› スタティックURLフィルタ
URLタイプアクションステータス
1youtube.comシンプル✔ 許可✔ 有効
2*ワイルドカード⊘ ブロック✔ 有効
3OKキャンセル
図7 許可の行の下にブロックの行を足したリスト(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1youtube.com1行目で照合されるので、YouTube へのアクセスは許可されます。
2*1行目に一致しなかった URL は、すべてここでブロックされます。
3OKプロファイルを保存します。
補足

リストは上から順に照合されるので、* のブロックは必ずリストの最後に置きます。* が許可の行より上にあると、許可したい URL も先にブロックの行に一致してしまいます。あとから許可する URL を足すときも、* の行より上に入れます。

動作確認

ブラウザでアクセスする

端末から YouTube とニコニコ動画にアクセスすると、YouTube だけが表示されます。ニコニコ動画は、FortiGate のブロック画面になります。

端末のブラウザ画面イメージ
https://www.youtube.com/
YouTube表示される
https://www.nicovideo.jp/
Web Page BlockedThe page you have requested has been blocked because the URL is banned.URL:https://www.nicovideo.jp/1URL Source:Local URLfilter Block
図8 * のブロックを足したあとの結果(実際の画面ではなく、表示結果のイメージです)

ブロック画面の URL Source が Local URLfilter Block になっており、スタティック URL フィルタ(図7 の * の行)でブロックされたことがわかります。すべての URL をブロックしているので、Google など、許可していないほかのサイトもブロックされます。

Web フィルタのログを確認する

ログ&レポート ›› Webフィルタ を開くと、たとえば Google へのアクセスが、URL フィルタのリストによってブロックされていることを確認できます。

FortiGate 管理画面画面イメージ
ログ&レポート ›› Webフィルタ
送信元アクションURL
(伏せています)blockedhttps://static.doubleclick.net/
(伏せています)blocked2https://i.ytimg.com/
(伏せています)blockedhttps://yt3.ggpht.com/
(伏せています)blocked1https://www.google.com/
(伏せています)blockedhttps://www.google.co.jp/
(伏せています)blockedhttps://r5—sn-oguesnz7.googlevideo.com/
ログ詳細(https://www.google.com/ の行)
ポリシーID2
脅威レベルHigh(脅威スコア 30)
サービスHTTPS
プロファイル名default
URLフィルタインデックス2
URLフィルタリストAuto-webfilter-urlfilter_bfmykr9i5
3メッセージURL was blocked because it is in the URL filter list
図9 Web フィルタのログ(実際の画面ではなく、表示のポイントを示したイメージです。送信元の IP アドレスは伏せ、一部の行は省いています)
No.表示意味
1www.google.com許可していない Google へのアクセスが blocked になっています。
2i.ytimg.com などYouTube の画像や動画を配信する別のドメインも、youtube.com には一致しないのでブロックされています。
3メッセージURL フィルタのリスト(インデックス 2 の行= * の行)に一致してブロックされたことを示します。
注意

多くの Web サイトは、本体とは別のドメイン(画像や動画の配信用、広告など)からもデータを読み込みます。今回のログでも、i.ytimg.com、yt3.ggpht.com、googlevideo.com など YouTube が使うドメインがブロックされています。特定のサイトだけを許可するときは、ログを見ながら、必要なドメインも許可の行に足していきます。

まとめ

順URLタイプアクション役割
1youtube.comシンプル許可許可したい URL(必要なドメインはこの位置に足す)
2*ワイルドカードブロックそれ以外をすべてブロック(必ず最後)

スタティック URL フィルタは上から順に照合され、暗黙の拒否はありません。「特定の URL だけ許可」にするときは、許可の行を上に、* のブロックを最後に置きます。

コメント

  1. blackair より:

    とても参考なる記事をありがとうございます。運用の参考にさせていただいております。

    ところで、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) に変更する必要があるかもしれません。

      ご不明点やフィードバックなどあれば、コメントいただけると幸いです。