UTM / エンティティー定義
UTM機能では各種ルールの条件指定時に下記の要素を使います。- エンティティー(通信主体)
ゾーン(任意のネットワーク範囲)、ネットワーク(サブネットの集合)、ホスト(単一アドレスの集合)などMAC/IP/IPv6アドレスの集合として表現可能な情報。
「ゾーン.ネットワーク.ホスト」の階層構造を持つ。
ファイアウォール、NATの各機能において、送信元、宛先の指定に使う。
- アプリケーション
SMTP、SSH、HTTP、IMAPSのように、IPプロトコルタイプ、TCP/UDPポート、ICMPタイプ/コードの組み合わせで表現可能な情報。
ファイアウォール、NATの各機能において、通信の種類(アプリケーション)を指定するために使う。
従来のファイアウォールでは、ルールの適用対象をインターフェース、アドレス、ポート、プロトコルなどで指定していましたが、本製品ではこれらを抽象化した前記の「エンティティー(通信主体)」と「アプリケーション」で指定します。
次に指定方法の違いをまとめます。
| 始点MAC/IP/IPv6アドレス | 送信元エンティティー | エンティティー定義 |
| 終点IP/IPv6アドレス | 宛先エンティティー | |
| IPプロトコル番号 | ||
| 始点TCP/UDPポート番号 | ||
| 終点TCP/UDPポート番号 | ||
| ICMPタイプ/コード | ||
ここでは、エンティティー(通信主体)の定義方法について解説します。
アプリケーションの定義方法については「UTM」/「アプリケーション定義」をご参照ください。
また、設定時にエンティティー定義を利用するファイアウォール、NAT、OpenVPNの各機能については、「UTM」/「ファイアウォール」、「UTM」/「NAT」、「VPN」/「OpenVPN」をご覧ください。
さらに、より具体的なエンティティー定義の例については、「設定例集」をご覧ください。
エンティティー定義のサンプル
次にエンティティー定義の一例を示します。
- ゾーン public
- ネットワーク internet
- ppp0インターフェース側の全IPv4サブネット
- ppp1インターフェース側の全IPv6サブネット
- ホスト myself
- IPv4アドレス:10.1.1.1
- IPv4アドレス:10.1.1.1
- ホスト vpngw
- IPv4アドレス:10.2.2.2
- IPv4アドレス:10.2.2.2
- ppp0インターフェース側の全IPv4サブネット
- ネットワーク internet
- ゾーン private
- ネットワーク lan
- IPv4サブネット:192.168.10.0/24
- IPv6サブネット:2001:db8:10:10::/64
- ホスト adminpc
- IPv4アドレス:192.168.10.254
- IPv6アドレス:2001:db8:10:10::fe
- IPv4アドレス:192.168.10.254
- ホスト ap
- IPv4アドレス:192.168.10.2
- IPv4アドレス:192.168.10.2
- IPv4サブネット:192.168.10.0/24
- ネットワーク remotelan
- IPv4サブネット192.168.20.0/24
- IPv4サブネット192.168.20.0/24
- ネットワーク lan
各ゾーンには、サブネットの集合として定義された「ネットワーク」が任意の数所属しており、さらに各ネットワークには、IP/IPv6アドレスの集合として定義された「ホスト」が任意の数所属しています。
このように定義したエンティティーは、ルール設定コマンドの条件指定部において、次のような形式で指定できます。
ゾーン、ネットワーク、ホストの階層構造はピリオド(.)で表します。
ゾーン「private」から「public」への通信
from private to public
ゾーン「private」内のネットワーク「lan」からネットワーク「remotelan」への通信
from private.lan to private.remotelan
ゾーン「private」内のネットワーク「lan」内のホスト「adminpc」から「ap」への通信
from private.lan.adminpc to private.lan.ap
エンティティー定義の作成
ファイアウォール、NATの各機能では、送信元と宛先の指定に「エンティティー定義」を使います。そのため、UTM機能の設定にあたっては、最初に必ずエンティティーを定義します。
エンティティーは、最初にトップレベルのゾーン(zone)を作成し、
その下にネットワーク(networkコマンド)と対応するサブネット(ip subnet / ipv6 subnet)を、
さらにその下にホスト(host)と対応するアドレス(mac-address / ip address / ipv6 address)を作成することで定義します。
ゾーン「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
ゾーン「private」と配下のネットワーク「lan」、「remotelan」、ホスト「adminpc」、「ap」
awplus(config)# zone private awplus(config-zone)# network lan 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 ap awplus(config-host)# ip address 192.168.10.2 awplus(config-host)# exit awplus(config-network)# exit awplus(config-zone)# network remotelan awplus(config-network)# ip subnet 192.168.20.0/24 awplus(config-network)# exit awplus(config-zone)# exit awplus(config)#
以下、ゾーン、ネットワーク、ホストの階層順に設定方法を詳述します。
ゾーン
「ゾーン」は「エンティティー」を構成するトップレベル要素であり、zoneコマンドで作成します。ゾーンの配下には任意の数の「ネットワーク」(network)を定義することができます。
ゾーン定義「private」を作成します。
awplus(config)# zone private awplus(config-zone)#
ゾーン定義「private」を削除します。指定したゾーン配下のネットワーク定義、ホスト定義も削除される点に注意してください。
awplus(config)# no zone private
ネットワーク
「ネットワーク」は「エンティティー」を構成する第2レベル要素であり、networkコマンド(ゾーンモード)で作成します。ネットワークは1個以上のIPv4/IPv6サブネットアドレス(+インターフェース名)と関連付けることで機能するようになります(ip subnet/ipv6 subnet)。
また、「ネットワーク」の配下には任意の数の「ホスト」(host)を定義することができます。
ゾーン「private」配下にネットワーク定義「lan」を作成し、IPv4/IPv6サブネットと関連付けます。ネットワーク定義には最低1個のサブネットアドレスを関連付ける必要があります。
awplus(config)# zone private awplus(config-zone)# network lan awplus(config-network)# ip subnet 192.168.10.0/24 awplus(config-network)# ipv6 subnet 2001:db8:10:10::/64
ゾーン「private」配下のネットワーク定義「lan」を削除します。指定したネットワーク配下のホスト定義も削除される点に注意してください。
awplus(config)# zone private awplus(config-zone)# no network lan
GeoIPによるエンティティー定義
GeoIPのIPアドレスデータベースを使用し、国別ゾーンに割り当てられたIPサブネットをネットワークとして定義することもできます。定義されたエンティティーは、UTMの各種機能やNAT、ポリシーベースルーティングで使用することができます。基本設定
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
定義されたエンティティーは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)。
ゾーン「private」内のネットワーク「lan」配下にホスト定義「adminpc」を作成し、IPv4/IPv6アドレスと関連付けます。
awplus(config)# zone private awplus(config-zone)# network lan 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
ゾーン「private」内のネットワーク「lan」配下のホスト定義「adminpc」を削除します。
awplus(config)# zone private awplus(config-zone)# network lan awplus(config-network)# no host adminpc
FQDNによる指定
ホストをIPv4/IPv6アドレスではなく、FQDN(ドメイン名)で指定することも可能です。前提条件
ホストをFQDNで指定するためには、次の条件を満たす必要があります。- DNSリレー機能を併用し、配下の端末と本製品自身の両方がDNSリレーを利用して名前解決を行うよう設定すること。
そのために最低限必要な設定は次のとおりです。
- DNSリレー機能を有効にします。これには、ip dns forwardingコマンドを使います。
awplus(config)# ip dns forwarding
- DNSキャッシュを有効にします。これには、ip dns forwarding cacheコマンドを使います。
awplus(config)# ip dns forwarding cache size 1000
- 本製品自身が名前を解決するときにも、自身の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
この状態で、配下の端末が初めて app.example.com にアクセスするときには次のことが起こります。
- 端末は app.example.com に対するIPv4/IPv6アドレスを知るため、本製品(DNSリレー機能)に問い合わせます。
- 本製品はDNSキャッシュに app.example.com のIPv4/IPv6アドレスが登録されていないことを確認した上で、リレー先DNSサーバーに app.example.com のIPv4/IPv6アドレスを問い合わせます。
- 本製品は、DNSサーバーから取得した app.example.com のIPv4/IPv6アドレスをDNSキャッシュに登録するとともに、FQDNホスト定義のアドレスリストに該当IPv4/IPv6アドレスを追加します。
- 本製品のUTM機能でFQDNホスト定義が使われている場合、同UTM機能は該当ホスト定義のアドレスリストにもとづいて動作します。
設定の確認
エンティティーの設定はshow entityコマンドで確認します。すべてのエンティティーを表示する。
awplus# show entity
Zone: private
Network: private.lan
Subnet: 192.168.10.0/24
Subnet: 2001:db8:10:10::/64
Host: private.lan.adminpc
Address: 192.168.10.254
Address: 2001:db8:10:10::fe
Host: private.lan.ap
Address: 192.168.10.2
Network: private.remotelan
Subnet: 192.168.20.0/24
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.lan」(ゾーン「private」内のネットワーク「lan」)の情報を表示する。
awplus# show entity private.lan
Network: private.lan
Subnet: 192.168.10.0/24
Subnet: 2001:db8:10:10::/64
Host: private.lan.adminpc
Address: 192.168.10.254
Address: 2001:db8:10:10::fe
Host: private.lan.ap
Address: 192.168.10.2
エンティティー「private.lan.adminpc」(ゾーン「private」内のネットワーク「lan」内のホスト「adminpc」)の情報を表示する。
awplus# show entity private.lan.adminpc
Host: private.lan.adminpc
Address: 192.168.10.254
Address: 2001:db8:10:10::fe
エンティティー定義の使用
エンティティー定義は、ファイアウォール、NATの各機能でルールを作成するときや、OpenVPNクライアントに経路情報を通知するときに使用できます。ファイアウォールルールは、ファイアウォールモードのruleコマンドで作成します。
ファイアウォールルールでは、from xxxxで送信元のエンティティーを、to xxxxで宛先のエンティティーを指定します。
awplus(config)# firewall awplus(config-firewall)# rule permit any from private to public 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 publicNATの詳細については、「UTM」/「NAT」をご覧ください。
エンティティー定義に含まれるサブネット、ホストへの経路を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/24OpenVPNの詳細については、「VPN」/「OpenVPN」をご覧ください。