# UTM / エンティティー定義

UTM機能では各種ルールの条件指定時に下記の要素を使います。

- エンティティー（通信主体）
  ゾーン（任意のネットワーク範囲）、ネットワーク（サブネットの集合）、ホスト（単一アドレスの集合）などMAC/IP/IPv6アドレスの集合として表現可能な情報。
  「ゾーン.ネットワーク.ホスト」の階層構造を持つ。
  ファイアウォール、NAT、Webコントロールの各機能において、送信元、宛先の指定に使う。
  （UTM以外では、QoS、ポリシーベースルーティング、OpenVPNでも使います）
- アプリケーション
  SMTP、SSH、HTTP、IMAPSのように、IPプロトコルタイプ、TCP/UDPポート、ICMPタイプ/コードの組み合わせで表現可能な情報。
  ファイアウォール、NATの各機能において、通信の種類（アプリケーション）を指定するために使う。
  （UTM以外では、QoS、ポリシーベースルーティングでも使います）

従来のファイアウォールでは、ルールの適用対象をインターフェース、アドレス、ポート、プロトコルなどで指定していましたが、本製品ではこれらを抽象化した前記の「エンティティー（通信主体）」と「アプリケーション」で指定します。
次に指定方法の違いをまとめます。

従来の指定方法 | 本製品の指定方法
始点MAC/IP/IPv6アドレス | 送信元エンティティー | エンティティー定義
終点IP/IPv6アドレス | 宛先エンティティー
DSCP値 | アプリケーション定義
IPプロトコル番号
始点TCP/UDPポート番号
終点TCP/UDPポート番号
ICMPタイプ/コード

Note

DSCP値はQoSおよびポリシーベースルーティング（PBR）でのみサポートです。各機能については「トラフィック制御」/「Quality of Service」、「トラフィック制御」/「ポリシーベースルーティング」をご覧ください。

ここでは、エンティティー（通信主体）の定義方法について解説します。
アプリケーションの定義方法については「UTM」/「アプリケーション定義」をご参照ください。
また、設定時にエンティティー定義を利用するファイアウォール、NAT、Webコントロール、QoS、ポリシーベースルーティング、OpenVpnの各機能については、「UTM」/「ファイアウォール」、「UTM」/「NAT」、「UTM」/「Webコントロール」、「トラフィック制御」/「Quality of Service」、「トラフィック制御」/「ポリシーベースルーティング」、「VPN」/「OpenVPN」をご覧ください。
さらに、より具体的なエンティティー定義の例については、「設定例集」をご覧ください。

## エンティティー定義のサンプル

次にエンティティー定義の一例を示します。

- ゾーン public
  - ネットワーク internet
    - ppp0インターフェース側の全IPv4サブネット
    - ppp1インターフェース側の全IPv6サブネット
    - ホスト myself
      - IPv4アドレス：10.1.1.1
    - ホスト vpngw
      - IPv4アドレス：10.2.2.2
- ゾーン dmz
  - ネットワーク servernet
    - IPv4サブネット：172.16.10.0/24
    - IPv6サブネット：2001:db8:1000:10::/64
    - ホスト web
      - IPv4アドレス：172.16.10.1
      - IPv6アドレス：2001:db8:1000:10::1
    - ホスト dns
      - IPv4アドレス：172.16.10.2
      - IPv6アドレス：2001:db8:1000:10::2
    - ホスト mail
      - IPv4アドレス：172.16.10.3
      - IPv6アドレス：2001:db8:1000:10::3
- ゾーン private
  - ネットワーク wired
    - IPv4サブネット：192.168.10.0/24
    - IPv6サブネット：2001:db8:10:10::/64
    - ホスト adminpc
      - IPv4アドレス：192.168.10.254
      - IPv6アドレス：2001:db8:10:10::fe
    - ホスト dbserver
      - IPv4アドレス：192.168.10.2
  - ネットワーク wireless
    - IPv4サブネット192.168.20.0/24
    - IPv6サブネット：2001:db8:10:20::/64
  - ネットワーク branch
    - IPv4サブネット192.168.100.0/24
  - ネットワーク vpn
    - IPv4サブネット192.168.254.0/24

ここでは、UTMが識別すべきネットワークを大きく3つに分け、それぞれにゾーン名「public」、「dmz」、「private」を付けています。
各ゾーンには、サブネットの集合として定義された「ネットワーク」が任意の数所属しており、さらに各ネットワークには、IP/IPv6アドレスの集合として定義された「ホスト」が任意の数所属しています。
このように定義したエンティティーは、ルール設定コマンドの条件指定部において、次のような形式で指定できます。
ゾーン、ネットワーク、ホストの階層構造はピリオド（.）で表します。
ゾーン「public」から、ゾーン「dmz」内のネットワーク「servernet」内のホスト「web」への通信

    from public to dmz.servernet.web

ゾーン「private」内のネットワーク「wireless」からネットワーク「wired」への通信

    from private.wireless to private.wired

ゾーン「private」内のネットワーク「wired」内のホスト「adminpc」から、ゾーン「dmz」への通信

    from private.wired.adminpc to dmz

## エンティティー定義の作成

ファイアウォール、NAT、Webコントロールの各機能では、送信元と宛先の指定に「エンティティー定義」を使います。
そのため、UTM機能の設定にあたっては、最初に必ずエンティティーを定義します。
エンティティーは、最初にトップレベルのゾーン（zone）を作成し、
その下にネットワーク（networkコマンド）と対応するサブネット（ip subnet / ipv6 subnet）を、
さらにその下にホスト（host）と対応するアドレス（mac-address / ip address / ipv6 address）を作成することで定義します。
Note

有効なゾーンには最低1つのネットワークが存在し、また、該当ネットワークには最低1つのサブネットアドレスを関連付けておく必要があります。

Note

エンティティー定義名（ゾーン、ネットワーク、ホスト定義名）は大文字小文字を区別します。

ゾーン「public」と配下のネットワーク「internet」、ホスト「myself」、「vpngw」

    awplus(config)# zone public

    awplus(config-zone)# network internet
    awplus(config-network)# ip subnet 0.0.0.0/0 interface ppp0
    awplus(config-network)# ipv6 subnet ::/0 interface ppp1

    awplus(config-network)# host myself
    awplus(config-host)# ip address 10.1.1.1
    awplus(config-host)# exit

    awplus(config-network)# host vpngw
    awplus(config-host)# ip address 10.2.2.2
    awplus(config-host)# exit
    awplus(config-network)# exit
    awplus(config-zone)# exit

ゾーン「dmz」と配下のネットワーク「servernet」、ホスト「web」、「dns」、「mail」

    awplus(config)# zone dmz

    awplus(config-zone)# network servernet
    awplus(config-network)# ip subnet 172.16.10.0/24
    awplus(config-network)# ipv6 subnet 2001:db8:1000:10::/64

    awplus(config-network)# host web
    awplus(config-host)# ip address 172.16.10.1
    awplus(config-host)# ipv6 address 2001:db8:1000:10::1
    awplus(config-host)# exit

    awplus(config-network)# host dns
    awplus(config-host)# ip address 172.16.10.2
    awplus(config-host)# ipv6 address 2001:db8:1000:10::2
    awplus(config-host)# exit

    awplus(config-network)# host mail
    awplus(config-host)# ip address 172.16.10.3
    awplus(config-host)# ipv6 address 2001:db8:1000:10::3
    awplus(config-host)# exit
    awplus(config-network)# exit
    awplus(config-zone)# exit

ゾーン「private」と配下のネットワーク「wired」、「wireless」、「branch」、「vpn」、ホスト「adminpc」、「dbserver」

    awplus(config)# zone private

    awplus(config-zone)# network wired
    awplus(config-network)# ip subnet 192.168.10.0/24
    awplus(config-network)# ipv6 subnet 2001:db8:10:10::/64

    awplus(config-network)# host adminpc
    awplus(config-host)# ip address 192.168.10.254
    awplus(config-host)# ipv6 address 2001:db8:10:10::fe
    awplus(config-host)# exit

    awplus(config-network)# host dbserver
    awplus(config-host)# ip address 192.168.10.2
    awplus(config-host)# exit
    awplus(config-network)# exit

    awplus(config-zone)# network wireless
    awplus(config-network)# ip subnet 192.168.20.0/24
    awplus(config-network)# ipv6 subnet 2001:db8:10:20::/64
    awplus(config-network)# exit

    awplus(config-zone)# network branch
    awplus(config-network)# ip subnet 192.168.100.0/24
    awplus(config-network)# exit

    awplus(config-zone)# network vpn
    awplus(config-network)# ip subnet 192.168.254.0/24
    awplus(config-network)# exit
    awplus(config-zone)# exit
    awplus(config)#

以下、ゾーン、ネットワーク、ホストの階層順に設定方法を詳述します。

### ゾーン

「ゾーン」は「エンティティー」を構成するトップレベル要素であり、zoneコマンドで作成します。
ゾーンの配下には任意の数の「ネットワーク」（network）を定義することができます。
Note

ゾーン定義名は大文字小文字を区別します。

ゾーン定義「private」を作成します。

    awplus(config)# zone private
    awplus(config-zone)#

ゾーン定義「private」を削除します。指定したゾーン配下のネットワーク定義、ホスト定義も削除される点に注意してください。

    awplus(config)# no zone private

### ネットワーク

「ネットワーク」は「エンティティー」を構成する第2レベル要素であり、networkコマンド（ゾーンモード）で作成します。
ネットワークは1個以上のIPv4/IPv6サブネットアドレス（＋インターフェース名）と関連付けることで機能するようになります（ip subnet/ipv6 subnet）。
また、「ネットワーク」の配下には任意の数の「ホスト」（host）を定義することができます。
Note

ネットワーク定義名は大文字小文字を区別します。

ゾーン「private」配下にネットワーク定義「wired」を作成し、IPv4/IPv6サブネットと関連付けます。ネットワーク定義には最低1個のサブネットアドレスを関連付ける必要があります。

    awplus(config)# zone private
    awplus(config-zone)# network wired
    awplus(config-network)# ip subnet 192.168.10.0/24
    awplus(config-network)# ipv6 subnet 2001:db8:10:10::/64

ゾーン「private」配下のネットワーク定義「wired」を削除します。指定したネットワーク配下のホスト定義も削除される点に注意してください。

    awplus(config)# zone private
    awplus(config-zone)# no network wired

#### GeoIPによるエンティティー定義

GeoIPのIPアドレスデータベースを使用し、国別ゾーンに割り当てられたIPサブネットをネットワークとして定義することもできます。定義されたエンティティーは、UTMの各種機能やNAT、ポリシーベースルーティングで使用することができます。
Note

本機能はhttps://www.ipdeny.comが提供する国別IPアドレスデータベースを使用します。なお、本データは正確性、信頼性が保証されるものではありません。

##### 基本設定

GeoIPは、ip subnetコマンド、ipv6 subnetコマンドのdynamic geoipに国名コードを指定することで各エンティティーを定義します。国別ゾーン名は、ISO 3166-1 alpha-2 国名コードの表記に従い指定します。
ゾーン「private」内のネットワーク「japan」を定義し、IPアドレスゾーン「jp.zone」のIPv4/IPv6サブネットを関連付ける設定例です。

    awplus(config)# zone private
    awplus(config-zone)# network japan
    awplus(config-network)# ip subnet dynamic geoip JP
    awplus(config-network)# ipv6 subnet dynamic geoip JP

以下のように複数のサブネットを一つのゾーンやネットワークに紐づけることも可能です。

    awplus(config)# zone pacific
    awplus(config-zone)# network fiji
    awplus(config-network)# ip subnet dynamic geoip FJ
    awplus(config-zone)# network samoa
    awplus(config-network)# ip subnet dynamic geoip AS
    awplus(config-network)# ip subnet dynamic geoip WS

Note

一つのゾーンやネットワークに紐づけるサブネットが増えるに従い、メモリー消費やパフォーマンスに対する影響が大きくなりますのでご注意ください。

Note

本機能で指定可能なエンティティーは、https://www.ipdeny.comに記載のゾーン名で指定可能な国や地域のみとなります。特定の位置情報を指定することはできません。

定義されたエンティティーはshow entityコマンドで確認できます。

    awplus# show entity
    Zone:        private
     Network:    japan
      Subnet:    xx.xx.xx.xx/x
      Subnet:    xx:xx:xx:xx::/xx

geoip update-intervalコマンドを使用し、国別IPアドレスデータベースへの問い合わせ間隔を変更することができます。

    awplus(config)# geoip update-interval weeks 1

データベースへの問い合わせ状況は、show resourceコマンドで確認できます。

    awplus# show resource

### ホスト

「ホスト」は「エンティティー」を構成する第3レベル（最下位）要素であり、hostコマンド（ゾーン・ネットワークモード）で作成します。
ホストは1個以上のMAC/IPv4/IPv6アドレスと関連付けて使用します（mac-address/ip address/ipv6 address）。
Note

ホスト定義名は大文字小文字を区別します。

ゾーン「dmz」内のネットワーク「servernet」配下にホスト定義「web」を作成し、IPv4/IPv6アドレスと関連付けます。

    awplus(config)# zone dmz
    awplus(config-zone)# network servernet
    awplus(config-network)# ip subnet 172.16.10.0/24
    awplus(config-network)# ipv6 subnet 2001:db8:1000:10::/64
    awplus(config-network)# host web
    awplus(config-host)# ip address 172.16.10.1
    awplus(config-host)# ipv6 address 2001:db8:1000:10::1

ゾーン「dmz」内のネットワーク「servernet」配下のホスト定義「web」を削除します。

    awplus(config)# zone dmz
    awplus(config-zone)# network servernet
    awplus(config-network)# no host web

#### FQDNによる指定

ホストをIPv4/IPv6アドレスではなく、FQDN（ドメイン名）で指定することも可能です。
Note

FQDN指定のホスト定義は、ファイアウォール、NAT、QoS、ポリシーベースルーティング（PBR）、OpenVPNで使用できます。Webコントロールでは使用できません。

##### 前提条件

ホストをFQDNで指定するためには、次の条件を満たす必要があります。

- DNSリレー機能を併用し、配下の端末と本製品自身の両方がDNSリレーを利用して名前解決を行うよう設定すること。
- VRF-Lite機能を併用する場合は、FQDNで指定するホストとDNSリレー機能の転送先DNSサーバーが、ともにグローバルVRFインスタンス上に存在していること。

Note

これらの条件を満たしていない状態でFQDNホスト定義を使用することはサポート対象外です。

そのために最低限必要な設定は次のとおりです。

1. DNSリレー機能を有効にします。これには、ip dns forwardingコマンドを使います。

       awplus(config)# ip dns forwarding

2. DNSキャッシュを有効にします。これには、ip dns forwarding cacheコマンドを使います。

       awplus(config)# ip dns forwarding cache size 1000

3. 本製品自身が名前を解決するときにも、自身のDNSリレー機能を使用するよう設定します。これには、ip domain-lookupコマンドのvia-relayオプションを使います。

       awplus(config)# ip domain-lookup via-relay

その他、必要に応じて以下の設定を行ってください。

- DNSサーバーアドレスを手動設定する場合は、ip name-serverコマンドで設定します。
  PPPやDHCPでDNSサーバーアドレスを動的に取得している場合は手動設定の必要はありません。
- 配下の端末がDNSサーバーとして本製品（DNSリレー機能）を使用するよう設定します。
  端末のIP設定をDHCPで行っている場合は、DHCPサーバーがDNSサーバーアドレスとして本製品のIPアドレスを通知するよう設定してください。
  本製品のDHCPサーバー機能では、通知するDNSサーバーアドレスはdns-serverコマンドで設定します。

##### FQDNホスト定義

ホストをFQDNで指定するときは、ゾーン・ネットワーク・ホストモードのip address / ipv6 addressコマンドの実行時に、IPv4/IPv6アドレスの代わりに dynamic fqdnパラメーターでFQDNを指定します。
たとえば、ホスト定義「appsite」に対応するIPv4/IPv6アドレスとして、FQDN「app.example.com」を指定するには次のようにします。

    awplus(config)# zone public
    awplus(config-zone)# network eth1
    awplus(config-network)# ip subnet 0.0.0.0/0
    awplus(config-network)# ipv6 subnet 2000::/3
    awplus(config-network)# host appsite
    awplus(config-host)# ip address dynamic fqdn app.example.com
    awplus(config-host)# ipv6 address dynamic fqdn app.example.com

Note

ここでは ip subnet、ipv6 subnetの両方のコマンドを使用していますが、実際にはルールで使用したいIPバージョン（IPv4、IPv6）に対応するものだけでかまいません。

この状態で、配下の端末が初めて app.example.com にアクセスするときには次のことが起こります。

1. 端末は app.example.com に対するIPv4/IPv6アドレスを知るため、本製品（DNSリレー機能）に問い合わせます。
2. 本製品はDNSキャッシュに app.example.com のIPv4/IPv6アドレスが登録されていないことを確認した上で、リレー先DNSサーバーに app.example.com のIPv4/IPv6アドレスを問い合わせます。
3. 本製品は、DNSサーバーから取得した app.example.com のIPv4/IPv6アドレスをDNSキャッシュに登録するとともに、FQDNホスト定義のアドレスリストに該当IPv4/IPv6アドレスを追加します。
4. 本製品のUTM機能でFQDNホスト定義が使われている場合、同UTM機能は該当ホスト定義のアドレスリストにもとづいて動作します。

Note

配下の端末が本製品のDNSリレー機能を使わず、他のDNSサーバーに直接問い合わせを行った場合はアドレスリストが作成されないため、FQDNホスト定義を使ったルールは無効（存在しない）状態になります。

### 設定の確認

エンティティーの設定はshow entityコマンドで確認します。
すべてのエンティティーを表示する。

    awplus# show entity
    Zone:        dmz
     Network:    dmz.servernet
      Subnet:    172.16.10.0/24
      Subnet:    2001:db8:1000:10::/64
      Host:      dmz.servernet.dns
       Address:  172.16.10.2
       Address:  2001:db8:1000:10::2
      Host:      dmz.servernet.mail
       Address:  172.16.10.3
       Address:  2001:db8:1000:10::3
      Host:      dmz.servernet.web
       Address:  172.16.10.1
       Address:  2001:db8:1000:10::1

    Zone:        private
     Network:    private.branch
      Subnet:    192.168.100.0/24
     Network:    private.vpn
      Subnet:    192.168.254.0/24
     Network:    private.wired
      Subnet:    192.168.10.0/24
      Subnet:    2001:db8:10:10::/64
      Host:      private.wired.adminpc
       Address:  192.168.10.254
       Address:  2001:db8:10:10::fe
      Host:      private.wired.dbserver
       Address:  192.168.10.2
     Network:    private.wireless
      Subnet:    192.168.20.0/24
      Subnet:    2001:db8:10:20::/64

    Zone:        public
     Network:    public.internet
      Subnet:    0.0.0.0/0 via ppp0
      Subnet:    ::/0 via ppp1
      Host:      public.internet.vpngw
       Address:  10.2.2.2
      Host:      public.internet.myself
       Address:  10.1.1.1

エンティティー「private.wired」（ゾーン「private」内のネットワーク「wired」）の情報を表示する。

    awplus# show entity private.wired
    Network:     private.wired
     Subnet:     192.168.10.0/24
     Subnet:     2001:db8:10:10::/64
     Host:       private.wired.adminpc
      Address:   192.168.10.254
      Address:   2001:db8:10:10::fe
     Host:       private.wired.dbserver
      Address:   192.168.10.2

エンティティー「dmz.servernet.mail」（ゾーン「dmz」内のネットワーク「servernet」内のホスト「mail」）の情報を表示する。

    awplus# show entity dmz.servernet.mail
    Host:        dmz.servernet.mail
     Address:    172.16.10.3
     Address:    2001:db8:1000:10::3

## エンティティー定義の使用

エンティティー定義は、ファイアウォール、NAT、Webコントロール、QoS、ポリシーベースルーティング（PBR）の各機能でルールを作成するときや、OpenVPNクライアントに経路情報を通知するときに使用できます。
Note

アプリケーション定義名は大文字小文字を区別しませんが、エンティティー定義名（ゾーン、ネットワーク、ホスト定義名）は大文字小文字を区別しますので、ルールで指定するときはエンティティー定義名の大文字小文字を間違えないようにご注意ください。

ファイアウォールルールは、ファイアウォールモードのruleコマンドで作成します。
ファイアウォールルールでは、from xxxxで送信元のエンティティーを、to xxxxで宛先のエンティティーを指定します。

    awplus(config)# firewall
    awplus(config-firewall)# rule permit any from private to public
    awplus(config-firewall)# rule permit mydb from private to private.wired.dbserver
    awplus(config-firewall)# rule permit ssh from private.wired.adminpc to dmz.servernet
    awplus(config-firewall)# rule permit http from public to dmz.servernet.web log
    awplus(config-firewall)# rule permit isakmp from public.internet.vpngw to public.internet.myself
    awplus(config-firewall)# rule permit esp from public.internet.vpngw to public.internet.myself

ファイアウォールの詳細については、「UTM」/「ファイアウォール」をご覧ください。
NATルールは、NATモードのruleコマンドで作成します。
ダイナミックENATルール（masq）では、from xxxxで送信元のエンティティーを、to xxxxで宛先のエンティティーを指定します。
スタティックENATルール（portfwd）では、from xxxxで送信元のエンティティーを、with dst xxxxで転送先のエンティティーを指定します。

    awplus(config)# nat
    awplus(config-nat)# rule masq any from private to public
    awplus(config-nat)# rule portfwd http from public with dst dmz.servernet.web

NATの詳細については、「UTM」/「NAT」をご覧ください。
Webコントロールルールは、Webコントロールモードのruleコマンドで作成します。
Webコントロールルールでは、from xxxxで送信元のエンティティーを指定します。

    awplus(config)# web-control
    awplus(config-web-control)# rule permit Work from private
    awplus(config-web-control)# rule deny Blogs from private
    awplus(config-web-control)# rule deny Chat from private
    awplus(config-web-control)# rule deny "Crime, Weapons" from private

Webコントロールの詳細については、「UTM」/「Webコントロール」をご覧ください。
QoSルールは、トラフィックコントロールモードのruleコマンドで作成します。
QoSルールでは、from xxxxで送信元のエンティティーを、to xxxxで宛先のエンティティーを指定します。

    awplus(config)# traffic-control
    awplus(config-tc)# rule match photostorage from private to public.cloud policy MYQOS.LOW.A

QoSの詳細については、「トラフィック制御」/「Quality of Service」をご覧ください。
ポリシーベースルーティング（PBR）ルールは、ポリシーベースルーティングモードのip policy-routeコマンド、ipv6 policy-routeコマンドで作成します。
PBRルールでは、from xxxxで送信元のエンティティーを、to xxxxで宛先のエンティティーを指定します。

    awplus(config)# policy-based-routing
    awplus(config-pbr)# ip policy-route match highprio from local.net to remote.net nexthop tunnel0
    awplus(config-pbr)# ip policy-route match lowprio from local.net to remote.net nexthop tunnel1

ポリシーベースルーティングの詳細については、「トラフィック制御」/「ポリシーベースルーティング」をご覧ください。
エンティティー定義に含まれるサブネット、ホストへの経路をOpenVPNクライアントに通知するときは、tunnel openvpn routeコマンドでOpenVPNトンネルインターフェースとエンティティーを関連付けます。

    awplus(config)# interface tunnel0
    awplus(config-if)# tunnel mode openvpn tun
    awplus(config-if)# tunnel openvpn route ovpn_routes
    awplus(config-if)# ip address 192.168.254.1/24

OpenVPNの詳細については、「VPN」/「OpenVPN」をご覧ください。