UTM / URLフィルター
URLフィルター(URLブラックリスト)は、ユーザーが定義したURLのブラックリスト、ホワイトリストにもとづいて、Webアクセスを拒否・許可する機能です。URLフィルターは、本製品のブリッジング用、ルーティング用インターフェースを通過するIPv4/IPv6パケット内のHTTP/HTTPSトラフィックを監視し、HTTPリクエストまたはHTTPSの接続開始時に送信されるTLS ClientHelloメッセージを検出すると、HTTPリクエストに含まれるURLや、TLS ClientHelloメッセージ内のSNI(Server Name Indication)フィールドに平文で含まれているサーバーのドメイン名をユーザー定義のホワイトリスト、ブラックリストと比較して該当パケットの拒否・許可を判断します。

検査タイミング
本機能は下記のタイミングでサポート対象のパケットを検査します。- Ethernetインターフェース(PPPoE、802.1Qを含む)での受信時
- VLANインターフェースでの受信時
- PPPインターフェース(USB型データ通信端末)での受信時
- トンネルインターフェースでの受信時 ※初期設定では検査しません。後述する設定が必要です。
- ブリッジインターフェースでの受信時
- 本製品が生成したパケット(自装置発パケット)の送信前
基本動作
HTTPリクエストやHTTPS SNI内にURLを検出したときの、URLフィルターの処理フローは次のとおりです。- ホワイトリストにマッチ → 許可
- ブラックリストにマッチ → 拒否
- どちらにもマッチしない → 許可
ここから、URLフィルターでは次の方針にしたがってブラックリスト、ホワイトリストを作成することになります。
- 拒否するURLのパターンをブラックリストに記述
- 本来ブラックリストで拒否されるURLのうち、例外的に許可したいものがあれば、そのパターンをホワイトリストに記述
基本設定
URLフィルターの設定は、次の流れで行います。- ブラックリスト、ホワイトリストのリストファイルを作成し、ローカルファイルシステムに保存。
- URLフィルターモードでリストファイルを指定し、URLフィルター機能を有効化。
リストファイルの作成
最初にブラックリスト、ホワイトリストそれぞれに対応するリストファイルを作成し、本製品のローカルファイルシステム(内臓フラッシュメモリー、SDカード、USBメモリー)上に保存してください。PC上で作成し本製品にダウンロードしても、本製品上でeditコマンドを使って作成してもかまいません。
リストファイルの仕様は以下のとおりです。
- リストファイルには、1行に1つURLパターンを記述します。
- シャープ記号(#)またはセミコロン(;)で始まる行はコメントとして無視されます。また、空行も無視されます。
- ファイル内におけるURLパターンの順序は意味を持ちません。どのような順序で記述しても動作は同じです。
- URLパターンはASCII文字だけで記述してください。
- URLパターン中にスペースを含めることはできません。
- URLパターンの記述にあたっては、URLフィルターが行うURLの事前変換(正規化)処理を考慮してください。
URLフィルターは、HTTPリクエスト、HTTPS SNIから抽出したURL、および、URLパターンに対して、次の変換を行った後で照合を行います。
- 英大文字をすべて小文字に変換します。
- URLに埋め込まれたユーザー名、パスワード(URLの先頭にある「username:password@」)を取り除きます。
- ドメイン名の先頭にある「www.」を取り除きます。
次に正規化処理の具体例を示します。
# 大文字を小文字に変換 SITE6.EXAMPLE.JP/products/list.html ↓ site6.example.jp/products/list.html # ユーザー名、パスワードを除去。大文字を小文字に変換 userA:passwordB@shop.example.com/MYPAGE/index.html ↓ shop.example.com/mypage/index.html # ドメイン名先頭の www. を除去 www.example.com/document/list ↓ example.com/document/list
URLとURLパターンの比較は、ともに変換後(各例の下段)の文字列で行われます。
リストファイル作成時には、これらの仕様にご注意ください。
- たとえば「www.example.com」というURLパターンは、正規化によって実際には「example.com」というパターンとして扱われるため、「www.example.com」だけでなく、「www2.example.com」、「www.jp.example.com」、「server1.example.com」、「example.com」などのURLにもマッチします。
- またこれとは逆に、「www.example.com」というURLは、正規化によって実際には「example.com」として扱われるため、URLパターン「*.example.com」にはマッチしません。
- 英大文字をすべて小文字に変換します。
- リストファイルに記述するURLパターンは、「ベースドメイン」と「ワイルドカード」の2種類があります。
- 次のようにアスタリスク(*)やスラッシュ(/)を含まない文字列はベースドメインとみなされ、該当ドメインとすべてのサブドメインにマッチします。
# com, example.com, www.example.com などにマッチ。com.example.jpにはマッチしない。 com # example.com、store.example.com、www.jp.example.com などにマッチ。example.com.auにはマッチしない。 example.com
- 次のようにアスタリスク(*)を使ったパターンはワイルドカードURLとみなされ、アクセス先サイトのドメイン名とパスを連結したURL全体と照合されます。その際、アスタリスクはURL内における0文字以上の任意の文字列にマッチします。
# xxxxという文字列を含むすべてのURL。www.xxxx.example.com, example.jp/file/xxxx.zip などにマッチ。 *xxxx* # example.net/viruses/ という文字列で始まるすべてのURL。 example.net/viruses/* # example.net/harmful/ という文字列を含むすべてのURL。 *example.net/harmful/* # /viruses/ という文字列を含むすべてのURL。 */viruses/*
- 次のようにアスタリスク(*)やスラッシュ(/)を含まない文字列はベースドメインとみなされ、該当ドメインとすべてのサブドメインにマッチします。
- すべてにマッチするURLパターンを使用したい場合は、「*」、「*.*」、「*/*」、「*.*.*」 を使用してください。
ただし、これらのパターンはブラックリストファイルでのみ使用可能です。
- リストファイルは、「b1.txt」「b2.txt」「w1.txt」「w2.txt」といったように複数のファイルに分けて記述することが可能ですが、サポートするパターンの数はブラックリスト、ホワイトリストそれぞれについて1000行までです。
URLフィルター機能の有効化
リストファイルの用意ができたら、URLフィルターモード(url-filterコマンド)でURLフィルター機能の設定を行います。- URLフィルターの設定を行うため、url-filterコマンドでURLフィルターモードに移動します。
awplus(config)# url-filter awplus(config-url-filter)#
- ホワイトリストファイルを指定します。これには、whitelistコマンドを使います。
リストファイルが複数ある場合は同コマンドを複数回実行してください。
awplus(config-url-filter)# whitelist flash:/w1.txt awplus(config-url-filter)# whitelist flash:/w2.txt
- ブラックリストファイルを指定します。これには、blacklistコマンドを使います。
リストファイルが複数ある場合は同コマンドを複数回実行してください。
awplus(config-url-filter)# blacklist flash:/b1.txt awplus(config-url-filter)# blacklist flash:/b2.txt
- URLフィルター機能を有効化します。これには、protectコマンドを使います。
awplus(config-url-filter)# protect
リストファイルを更新したとき
リストファイルを更新したときは、url-filter reload custom-listsコマンドを実行してリストファイルを再読み込みする必要があります。awplus# url-filter reload custom-lists
設定や状態の確認
URLフィルター機能の有効・無効、ブラックリスト・ホワイトリストの登録数は、show url-filterコマンドで確認できます。awplus# show url-filter
Status: Enabled (Active)
Events: 104
Provider: not set
Custom blacklists Entries
b1.txt 2
b2.txt 2
Custom whitelists Entries
w1.txt 3
w2.txt 2
ログ
URLフィルター(URLブラックリスト)のログを記録するには、以下のコマンド(log(filter))を実行してください。初期設定では本機能のログは記録されません。awplus(config)# log buffered level informational facility local5
前記の設定を行っても初期状態では拒否したURLしかログに記録されません。すべてのURLリクエストをログに記録したい場合はlog url-requestsコマンドで有効化してください。
awplus(config)# url-filter awplus(config-url-filter)# log url-requests