[index] AT-AR2050V/AT-AR3050S/AT-AR4050S コマンドリファレンス 5.5.0

# UTM / アプリケーションコントロール（DPI）

検査タイミング
基本設定
判別されたアプリケーション定義の使用
ログ

アプリケーションコントロール（DPI = ディープパケットインスペクション）は、本製品を通過するパケットのデータ部分を検査し、通信内容（レイヤー7）にもとづいてどのアプリケーションのトラフィックであるかを判別する機能です。
最近は多くのアプリケーションが通信チャンネルとしてHTTPを使うようになっているため、L3/L4ヘッダーだけではこれらのアプリケーションがすべて「HTTP」としか判定できず、個々のアプリケーションを見分けることができませんが、アプリケーションコントロール（DPI）機能を使えば、アプリケーションシグネチャデータベースによって、各種アプリケーションに特有の通信パターンを検出し、個々のアプリケーションを判別することができるようになります。

> Note

> > 基本的には、HTTPSのように暗号化されたパケットは検査・判別できませんが、一部のアプリケーション（Skype、Facebook等）に関しては暗号化されたパケットでも検査・判別が可能です。

アプリケーションシグネチャデータベースは、製品内蔵のものを使えるほか、サンドバイン社が提供するデータベースを使用することもできます（どちらか一方を選択して使用します）。

> Note

> > アプリケーションコントロール（DPI）はAT-AR2050Vでは使用できません。

> Note

> > サンドバイン社が提供するアプリケーションシグネチャデータベースを使用するにはアニュアルライセンスが必要です。

> Note

> > サンドバイン社が提供するアプリケーションシグネチャデータベースがまだダウンロードされていない状態で、あらかじめDPIの設定を行い、アニュアルライセンスの更新を実行すると、以下のログが表示されますが、ライセンス、データベースともに正しく取得されます。

> >     local5.crit awplus streamd[512]: Could not open NAVL library
> >     local5.crit awplus streamd[512]: Failed to enable DPI provider

> Note

> > サンドバイン社が提供するアプリケーションシグネチャデータベースを使用する場合、サーバーからリソースファイルがダウンロードされると、リソースファイルの読み込みが開始されます。このリソースファイルの読み込み中は通信が破棄される可能性がありますのでご注意ください。

アプリケーションコントロール（DPI）機能自体はアプリケーションの判別を行うだけですが、その情報は動的な「アプリケーション定義」として、ファイアウォール、QoS、ポリシーベースルーティングのルール設定時に利用できます。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

アプリケーション定義については「UTM」/「アプリケーション定義」をご覧ください。
ファイアウォールについては「UTM」/「ファイアウォール」を、QoSについては「トラフィック制御」/「Quality of Service」をご覧ください。
また、サンドバイン社が提供するデータベースの更新をつかさどるアップデートマネージャーについては「UTM」/「アップデートマネージャー」をご覧ください。
アプリケーションコントロール（DPI）機能の具体的な使用例については、「設定例集」をご覧ください。

## 検査タイミング

本機能は下記のタイミングでサポート対象のパケットを検査します。

- Ethernetインターフェース（PPPoE、802.1Qを含む）での受信時
- VLANインターフェースでの受信時
- PPPインターフェース（USB型データ通信端末）での受信時
- トンネルインターフェースでの受信時 ※初期設定では検査しません。後述する設定が必要です。
- 本製品が生成したパケット（自装置発パケット）の送信前

> Note

> > 初期設定では、トンネルインターフェースで受信したパケットは検査されません。
> > トンネルインターフェースで受信したパケットに本機能を適用するには、グローバルコンフィグモードのtunnel security-reprocessingコマンドを有効にしてください。
> > 同コマンドの有効時は、すべてのトンネルインターフェースで受信パケットが検査対象になります（ただし、DS-Lite、LW4o6、MAP-E、IPv6 over IPv4トンネルインターフェースはサポート対象外）。

## 基本設定

アプリケーションコントロール（DPI)の設定は、DPIモード（dpiコマンド）で行います。
providerコマンドでシグネチャデータベースの提供元を指定した後、enableコマンドで有効化します。
以下、アプリケーションコントロール（DPI）機能の基本的な設定手順を示します。

1. アプリケーションコントロール（DPI）機能の設定を行うため、DPIモードに移行します。これにはdpiコマンドを使います。

       awplus(config)# dpi ↓

2. アプリケーションシグネチャデータベースの提供元を指定します。これにはproviderコマンドを使います。
   [製品内蔵のデータベースを使う場合]

       awplus(config-dpi)# provider built-in ↓

   [サンドバイン社が提供するデータベースを使う場合]

       awplus(config-dpi)# provider procera ↓

   > Note

   > > アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、サンドバイン社の提供するアプリケーションシグネチャデータベースを使用する場合は、データベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可する必要があります。

   3．アプリケーションコントロール（DPI）機能を有効化します。これにはenableコマンドを使います。

       awplus(config-dpi)# enable ↓

設定は以上です。
■ アプリケーションコントロール（DPI）機能によって判別できるアプリケーションは、show application detailコマンドのdpiオプションで確認できます。

    awplus# show application detail dpi ↓

■ サンドバイン社が提供するアプリケーションシグネチャデータベースの更新チェック間隔は、update-intervalコマンドで変更可能です。初期値は1時間です。

    awplus(config)# dpi ↓
    awplus(config-dpi)# update-interval days 1 ↓

■ サンドバイン社が提供するアプリケーションシグネチャデータベースは通常自動更新されますが、update nowコマンドで手動更新することも可能です。

    awplus# update dpi_procera_app_db now ↓

■ サンドバイン社が提供するアプリケーションシグネチャデータベースの更新ステータスはshow resourceコマンドで確認できます。

    awplus# show resource dpi_procera_app_db ↓
    --------------------------------------------------------------------------------
    Resource Name          Status       Version   Interval  Last Download
                                                            Next Download Check
    --------------------------------------------------------------------------------
    dpi_procera_app_db     unknown      -         10        None
                                                  minutes   N/A

■ アプリケーションコントロール（DPI）機能の有効・無効とアプリケーションシグネチャデータベースの提供元、バージョン、更新チェック間隔は、show dpiコマンドで確認できます。
（バージョン、更新チェック間隔は、サンドバイン社が提供するアプリケーションシグネチャデータベースを使用しているときのみ表示）

    awplus# show dpi ↓
    Status:      unlicensed
    Provider:    procera
    Resource version:         not set
    Resource update interval: 1 hour

■ アプリケーションコントロール（DPI）機能によって判別されたアプリケーションの統計情報は、show dpi statisticsコマンドで確認できます。
初期状態では、DPI機能の全体統計（アプリケーションごとのパケット数とバイト数）のみが表示可能ですが、設定を追加することでエンティティー別詳細統計（アプリケーションごとの送信パケット数、受信パケット数、送信バイト数、受信バイト数）を有効にすることもできます。

- 全体統計は「show dpi statistics」で表示できます。全体統計はつねに有効です。

      awplus# show dpi statistics ↓
      Application  Packets            Bytes
      -------------------------------------------------
      arp          1741               170618
      http         27                 3299
      mdns         15                 2017
      netbios      479                78911
      ssdp         12                 2616
      dhcp         16                 6080
      ssl_no_cert  6415               6327945
      ssh          245                46526
      dhcpv6       151                28087
      llmnr        18                 2038

- エンティティー別詳細統計はcounters detailedコマンドで有効化します。初期設定は無効です。

      awplus(config-dpi)# counters detailed ↓

- エンティティー別詳細統計を表示するには、show dpi statisticsコマンド実行時にエンティティー名を指定してください。

      awplus# show dpi statistics private ↓
      Statistics for entity: private
      Application       TX Packets       RX Packets         TX Bytes         RX Bytes
      -------------------------------------------------------------------------------
      ssl_no_cert             6470             6470          6092823          6092823
      ssh                      201              201            29037            29037
      http                      32               32             2978             2978

## 判別されたアプリケーション定義の使用

アプリケーションコントロール（DPI）機能によって判別されたアプリケーションの情報は、動的な「アプリケーション定義」として、ファイアウォール、QoS、ポリシーベースルーティングのルール設定時に利用できます。

> Note

> > NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

> Note

> > アプリケーションコントロール（DPI）機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要があります。判別が完了していないトラフィック（判別中のトラフィック）は、特殊なアプリケーション名「undecided」で表されます。

> Note

> > アプリケーションシグネチャデータベースを使用する場合は、以下の点にご注意ください。
> > - レイヤー4レベルの情報で検知可能なアプリケーションであっても、一部のアプリケーションに関しては、上位レイヤー（レイヤー5以上）の情報を検知することにより、意図しないアプリケーションとして検知する場合があります。また、アプリケーションが持つ情報の形式によっては、正常に検知できない場合があります。
> >   これらのアプリケーションを意図したアプリケーションとして検知させるには、カスタムアプリケーション定義を使用してください。
> > - 製品内蔵データベースをファイアウォール機能と併用する構成では、本製品が送信するパケットをすべて許可（permit any）するよう設定してください。
> > - 製品内蔵データベースは、ファームウェアのバージョンアップ時をのぞきアップデートされません。
> > - 製品内蔵データベースを使用する場合、TCPストリームの再構築や並べ替えはサポートされません。そのため、本来ならシグネチャとマッチするはずのデータが複数パケットにまたがった場合は、該当アプリケーションを正しく検知できません。

アプリケーション定義の詳細については、「UTM」/「アプリケーション定義」をご覧ください。
■ ファイアウォールルールは、ファイアウォールモードのruleコマンドで作成します。
アプリケーションコントロール（DPI）機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要がありますが、ファイアウォールはその仕様として初期設定ですべてのパケットを破棄するため、ファイアウォールとアプリケーションコントロール（DPI）を併用する場合は注意が必要です。

- DPIによって判別された特定のアプリケーションのみ許可し、その他は拒否する場合（デフォルト拒否）
  ファイアウォールを「デフォルト拒否」の設定とし、アプリケーションコントロール（DPI）によって判別されたアプリケーションだけを許可したい場合は、該当アプリケーションだけでなく、未判別のトラフィック（undecided）も許可する必要があります。
  たとえば、外部ゾーン「public」から内部ゾーン「private」への通信について、DPIによってアプリケーション「X」と判別されたトラフィックだけを許可し、その他はすべて拒否したい場合、次のようにアプリケーション「X」と、未判別のトラフィックを示す「undecided」の両方を許可するよう設定してください（ルール「10」と「20」。順序は逆でもかまいません）。

      awplus(config)# firewall ↓
      awplus(config-firewall)# rule 10 permit X from public to private ↓
      awplus(config-firewall)# rule 20 permit undecided from public to private ↓
      awplus(config-firewall)# rule 30 permit dns from public.internet.myself to public ↓
      awplus(config-firewall)# rule 40 permit https from public.internet.myself to public ↓
      awplus(config-firewall)# rule 50 permit ssl from public.internet.myself to public ↓
      awplus(config-firewall)# rule 60 permit TCP from public.internet.myself to public ↓
      awplus(config-firewall)# rule 70 permit undecided from public.internet.myself to public ↓
      awplus(config-firewall)# protect ↓

  > Note

  > > ここでの「X」は説明のための架空のアプリケーション名です（本マニュアル執筆時点）。実際に使用するときは適切なアプリケーション名に置き換えてください。

  ここで「undecided」を許可しないと（ルール「20」を設定しないと）、ファイアウォールの基本動作によって外部ゾーンから内部ゾーンへのトラフィックがすべて破棄されてしまうため、アプリケーションコントロール（DPI）エンジンに検査すべきパケットが届かず、結果的にアプリケーション「X」が判別されることもなくなってしまうためご注意ください。

  > Note

  > > アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、サンドバイン社の提供するアプリケーションシグネチャデータベースを使用する場合は、データベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可する必要があります。

  > Note

  > > ルール「30」～「60」は、アプリケーションシグネチャデータベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可するものですが、DPI機能の有効時には事前定義済みアプリケーション「dns」よりもDPIアプリケーション「dns」が優先されるため、ルール「30」を機能させるために本製品からインターネットへの通信についても、未判別のトラフィック（undecided）を許可する必要があります（ルール「70」）。

- DPIによって判別された特定のアプリケーションのみ拒否し、その他は許可する場合（デフォルト許可）
  ファイアウォールを「デフォルト許可」の設定にする場合は、すべてを許可する「permit any」ルールを設定するため、未判別のトラフィックを表す「undecided」を別途許可する必要はありません（明示的に設定してもかまいません）。
  次の例では、アプリケーションコントロール（DPI）によってファイル共有ソフト「Share」と「Winny」であると判別された内部ゾーン「private」から外部ゾーン「public」への通信を禁止しています。同じ向きの未判別トラフィックはルール「30」の「permit any from private to public」によって許可されるため、「permit undecided」ルールは不要です。

      awplus(config)# firewall ↓
      awplus(config-firewall)# rule 10 deny sharep2p from private to public ↓
      awplus(config-firewall)# rule 20 deny winny from private to public ↓
      awplus(config-firewall)# rule 30 permit any from private to public ↓
      awplus(config-firewall)# rule 40 permit any from private to private ↓
      awplus(config-firewall)# rule 50 permit dns from public.internet.myself to public ↓
      awplus(config-firewall)# rule 60 permit https from public.internet.myself to public ↓
      awplus(config-firewall)# rule 70 permit ssl from public.internet.myself to public ↓
      awplus(config-firewall)# rule 80 permit TCP from public.internet.myself to public ↓
      awplus(config-firewall)# rule 90 permit undecided from public.internet.myself to public ↓
      awplus(config-firewall)# protect ↓

  > Note

  > > アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、サンドバイン社の提供するアプリケーションシグネチャデータベースを使用する場合は、データベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可する必要があります。

  > Note

  > > ルール「50」～「80」は、アプリケーションシグネチャデータベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可するものですが、DPI機能の有効時には事前定義済みアプリケーション「dns」よりもDPIアプリケーション「dns」が優先されるため、ルール「50」を機能させるために本製品からインターネットへの通信についても、未判別のトラフィック（undecided）を許可する必要があります（ルール「90」）。

ファイアウォールの詳細については、「UTM」/「ファイアウォール」をご覧ください。
■ QoSルールは、トラフィックコントロールモードのruleコマンドで作成します。
QoSとアプリケーションコントロール（DPI）を併用する場合は、ファイアウォールでデフォルト拒否の設定をするときのように「permit undecided」ルールを作成する必要はありません。未判別のトラフィックはデフォルトキューで処理され、判別後は該当アプリケーションに対応するルールにしたがって処理されます。
QoSの詳細については、「トラフィック制御」/「Quality of Service」をご覧ください。

## ログ

■ アプリケーションコントロール（DPI）のログを記録するには、以下のコマンド（log(filter)）を実行してください。初期設定では本機能のログは記録されません。

    awplus(config)# log buffered level informational facility local5 ↓

■ DPIによって判別されたアプリケーションの情報は、ファイアウォールログの「MARK」欄に出力されます。

- 製品内蔵データベースを使用している場合
  次に示すファイアウォールログの例では、「MARK=0x1013」がこの情報です。
  この数値（16進数）の下2桁（ここでは「13」）をキーとして、「show application detail dpi」の出力から具体的なアプリケーション名や概要を検索することができます。

      2017 Oct 24 10:59:37 kern.info awplus kernel: Firewall: DENY in policy IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:a4:ba:db:15:e9:d3:08:00 SRC=172.16.1.2 DST=172.16.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=49384 PROTO=UDP SPT=137 DPT=137 LEN=58 MARK=0x1013

- サンドバイン社のデータベースを使用している場合
  次に示すファイアウォールログの例では、「MARK=0x1053」がこの情報です。
  この数値（16進数）の下3桁（ここでは「053」）をキーとして、弊社ホームページ掲載の資料から具体的なアプリケーション名や概要を検索することができます。また、「show application detail dpi」の出力から具体的なアプリケーション名を検索することもできます。

      2016 Nov 25 18:38:36 kern.info awplus kernel: Firewall rule 20: PERMIT IN=eth1 OUT=vlan1 MAC=00:00:cd:38:00:96:52:54:78:36:8f:a6:08:00 SRC=172.16.1.2 DST=192.168.1.1 LEN=239 TOS=0x00 PREC=0x00 TTL=63 ID=20563 DF PROTO=TCP SPT=80 DPT=46254 WINDOW=905 RES=000 ACK PSH URGP=0 MARK=0x1053

ファイアウォールのログを出力するための設定については、「UTM」/「ファイアウォール」をご覧ください。

(C) 2015 - 2020 アライドテレシスホールディングス株式会社

PN: 613-002107 Rev.AK_1