# 2.26. URLフィルタリング

URLフィルタリング機能は、HTTP/HTTPSパケットのURLを参照してフィルタを行う機能です。
IX-R/IX-Vでは、内部URLフィルタリング機能のみサポートしています。
URLフィルタリング機能の設定およびフィルタ時にユーザーに表示するブロック画面の設定はWebコンソール機能に対応しており、設定画面や独自のブロック画面を用意することも可能です。
Webコンソール機能による設定の説明はWeb設定マニュアルを参照してください。

> 図 2.26.1 URLフィルタリング概念図

## 2.26.1. 注意事項

- HTTPSのURLフィルタリングは以下の制限があります。

  - ドメイン名のみ参照します（パスやクエリは参照できません）。

  - ブラウザやアプリケーションによってはドメイン名が取得できない場合があります。その場合、宛先IPアドレスによる判定のみを行います。

  - ブロック画面を表示できません。TCPのRST送信によってセッションそのものを切断します。セッション切断時の動作はブラウザやアプリケーションに依存します（ブラウザ上にエラーメッセージが表示される等）。

- HTTP(80)、HTTPS(443)以外のポートを利用する通信には対応していません。

- IPv6通信のURLフィルタリングには対応していません。

- ルータ自身の通信はURLフィルタリング機能の対象になりません。

- IPフィルタと併用する場合は、IPフィルタでのHTTP(80)、HTTPS(443)の廃棄は行わないでください。

## 2.26.2. 内部URLフィルタリング機能

装置単体で利用可能なURLフィルタリング機能です。対象となるURLをURLリストとして装置内に直接登録して通信の透過、廃棄を制御します。
内部URLフィルタリング機能ではドメイン名のみを参照します。パスやクエリ部分は無視しますので、URLリストにはドメイン名のみを設定してください。

### 2.26.2.1. 基本設定

内部URLフィルタリング機能は以下のコマンドを使用します。

- グローバルコンフィグモード

  項目 | 説明
  --- | ---
  url-list | URLリストの設定

- インタフェースコンフィグモード

  項目 | 説明
  --- | ---
  url-filter | 内部URLフィルタリング機能の設定

  リスト 2.26.1 設定例

      URL末尾がexample1.comまたはexample2.comの通信とドメイン名にIPアドレスを指定したすべての通信を廃棄します。
      それ以外の通信は透過します。

      url-list urll1 deny domain *example1.com
      url-list urll1 deny domain *example2.com
      url-list urll1 deny ip any

      interface GigaEthernet0.0
       url-filter urll1 1 out
       no shutdown

注釈

ドメイン名に「*」を記述しない場合は完全一致、先頭のみに記述した場合は後方一致、先頭と末尾に記述した場合は部分一致となります。それ以外の条件で「*」は記述できません。

ドメイン名の記述例は以下のとおりです。

> 指定方法 | 設定例 | 一致するURL
> --- | --- | ---
> 完全一致 | www.example.com | www.example.comに完全に一致するURL
> 後方一致 | *example.com | 末尾がexample.comに一致するURL
> 部分一致 | *example* | ドメイン名に exampleを含むURL

注釈

- http://203.0.113.212/login/ のようにドメイン名部分にIPアドレスを指定した通信はドメイン名でフィルタすることができません。このような方法でURLフィルタリング機能をすり抜けることができないようにしたい場合は、設定例のとおりすべてのIPアドレスを廃棄してください。

- 内部URLフィルタリング機能の条件にマッチしない通信は透過（暗黙のpermit）になります。

### 2.26.2.2. Webコンソールからの設定

Webコンソール機能から内部URLフィルタリング機能を設定したい場合、url-filterコマンドのシーケンス番号には65535を使用します。
コマンドラインから設定する際にシーケンス番号として65535を指定することで、Webコンソールからも設定の参照や編集が可能になります。

## 2.26.3. URLフィルタリング対象外の設定

URLフィルタリング機能の対象外にする条件をアクセスリストで設定できます。
特定の端末をURLフィルタリング機能の対象外とする、HTTPS通信だけをURLフィルタリング機能の対象外とするなど特定の条件でURLフィルタリング機能の例外を設定できます。
設定した条件は内部URLフィルタリング機能で対象外となります。

- グローバルコンフィグモード

  項目 | 説明
  --- | ---
  url-filter ignore | 対象外のアクセスリストの設定
  ip access-list | アクセスリスト

  リスト 2.26.2 設定例

      192.168.0.0/24を送信元とする通信とHTTPS通信はいずれもURLフィルタリング機能の対象外とする。

      ip access-list ignore-list permit ip src 192.168.0.0/24 dest any
      ip access-list ignore-list permit tcp src any sport any dest any dport eq 443

      url-filter ignore ip access-list ignore-list

注釈

- アクセスリストでは、除外する条件をpermitで指定します。なお、Webコンソールからは除外端末の設定しかできません。

## 2.26.4. ブロック画面の設定

内部URLフィルタリング機能で廃棄と判定した場合に、ブロック画面で廃棄理由などを利用者に表示することができます。
以下のコマンドで設定します。

- グローバルコンフィグモード

  項目 | 説明
  --- | ---
  url-filter reject-action | 廃棄動作設定（ブロック画面表示設定）

  リスト 2.26.3 設定例

      装置内のブロック画面を指定（通常LAN側インタフェースを指定してください）
      url-filter reject-action local GigaEtheret1.0

      他装置のブロック画面を表示
      url-filter reject-action redirect http://example.com/block.html

あらかじめ装置内に用意されているブロック画面を利用したい場合は廃棄動作設定にlocalを指定してください。
通常はLAN側のインタフェースを指定します。
なお、装置内のブロック画面を表示するためには端末側からWebコンソール画面にアクセスできる必要があります。
Webコンソール機能のアクセス制御でアクセス端末を制限している場合は、それ以外の端末にはブロック画面が表示されませんのでご注意ください。
また、HTTPS通信を廃棄した場合、ブロック画面は表示されません。利用者側ではブラウザ上に通信エラーなどのエラーメッセージが表示されます。

## 2.26.5. URLフィルタキャッシュの設定

URLフィルタリング機能は、キャッシュ機能を実装しています。同一のURLへの通信が多い場合や再送された通信を処理を高速化します。
デフォルト設定で有効になっているので、通常はそのままご利用ください。
通信中にURLリストを変更した場合、キャッシュが残っていると即時反映されない場合があります。キャッシュが消えるまで待つか、キャッシュをクリアしてください。

## 2.26.6. URLフィルタリング機能の処理順序

以下の順番で処理されます。

1. 対象外の条件の判定

2. 内部URLフィルタリング機能の処理

注釈

- パケット分割によるURL照合の失敗を無くすため、IPリアセンブル、HTTPリアセンブルに対応しています。