UTM / アプリケーション定義
UTM機能では各種ルールの条件指定時に下記の要素を使います。- エンティティー(通信主体)
ゾーン(任意のネットワーク範囲)、ネットワーク(サブネットの集合)、ホスト(単一アドレスの集合)などIP/IPv6アドレスの集合として表現可能な情報。
「ゾーン.ネットワーク.ホスト」の階層構造を持つ。
ファイアウォール、NAT、Webコントロールの各機能において、送信元、宛先の指定に使う。
(UTM以外では、QoS、ポリシーベースルーティングでも使います)
- アプリケーション
SMTP、SSH、HTTP、IMAPSのように、IPプロトコルタイプ、TCP/UDPポート、ICMPタイプ/コードの組み合わせで表現可能な情報。
ファイアウォール、NATの各機能において、通信の種類(アプリケーション)を指定するために使う。
(UTM以外では、QoS、ポリシーベースルーティングでも使います)
従来のファイアウォールでは、ルールの適用対象をインターフェース、アドレス、ポート、プロトコルなどで指定していましたが、本製品ではこれらを抽象化した前記の「エンティティー(通信主体)」と「アプリケーション」で指定します。
次に指定方法の違いをまとめます。
| 始点IP/IPv6アドレス | 送信元エンティティー | エンティティー定義 |
| 終点IP/IPv6アドレス | 宛先エンティティー | |
| DSCP値 | ||
| IPプロトコル番号 | ||
| 始点TCP/UDPポート番号 | ||
| 終点TCP/UDPポート番号 | ||
| ICMPタイプ/コード | ||
ここでは、アプリケーションの定義方法について解説します。
エンティティー(通信主体)の定義方法については「UTM」/「エンティティー定義」をご参照ください。
また、設定時にアプリケーション定義を利用するファイアウォール、NAT、QoS、ポリシーベースルーティングの各機能については、「UTM」/「ファイアウォール」、「UTM」/「NAT」、「トラフィック制御」/「Quality of Service」、「トラフィック制御」/「ポリシーベースルーティング」をご覧ください。
さらに、より具体的なアプリケーション定義の例については、「設定例集」をご覧ください。
アプリケーション定義の種類
アプリケーション定義には次の3種類があります。以下それぞれについて解説します。- 事前定義済みアプリケーション
- カスタムアプリケーション定義
- アプリケーションコントロール(DPI)により判別可能なアプリケーション
事前定義済みアプリケーション
HTTP、FTP、SMTP、POP3、IMAPなどの主要なアプリケーションはあらかじめ定義されているため、特に設定を行うことなく各種ルールの作成時に使うことができます。事前定義済みのアプリケーションは下記コマンド実行例が示すとおりです。
アプリケーション定義名の一覧はshow applicationコマンドで確認できます。
awplus# show application
aim cvs dns ftp http https icq ident
imap imaps irc jabber l2tp ldap lisa msn
mysql news nfs-tcp nfs-udp ntp openvpn pcanywhere-tcp
pcanywhere
-udp
ping pop3 pop3s pptp rdp rsync samba-tcp samba-udp
smtp socks ssh syslog telnet traceroute
vnc whois
アプリケーション定義の内容はshow application detailコマンドで確認できます。
事前定義済みアプリケーションは、カスタムアプリケーション定義と同じように、プロトコルやポート番号の組み合わせとして定義されています。異なるポート番号を指定したい場合などには、事前定義済みアプリケーションと同名のカスタムアプリケーション定義を作成することで上書きが可能です。
awplus# show application detail
Name Protocol Detail
--------------------------------------------------------------------------
aim TCP sport=1024-65535 dport=9898
cvs TCP sport=1024-65535 dport=2401
dns UDP sport=1024-65535 dport=53
ftp TCP sport=1024-65535 dport=21
http TCP sport=1024-65535 dport=80
https TCP sport=1024-65535 dport=443
icq TCP sport=1024-65535 dport=5190
ident TCP sport=1024-65535 dport=113
imap TCP sport=1024-65535 dport=143
imaps TCP sport=1024-65535 dport=993
irc TCP sport=1024-65535 dport=6667
jabber TCP sport=1024-65535 dport=5222-5223
l2tp UDP sport=1701 dport=1701
ldap TCP sport=1024-65535 dport=389
lisa TCP sport=1024-65535 dport=7741
msn TCP sport=1024-65535 dport=1863
mysql TCP sport=1024-65535 dport=3306
news TCP sport=1024-65535 dport=119
nfs-tcp TCP sport=1024-65535 dport=2049
nfs-udp UDP sport=1024-65535 dport=2049
ntp UDP sport=123,1024-65535 dport=123
openvpn UDP sport=1024-65535 dport=1194
pcanywhere-tcp TCP sport=1024-65535 dport=5631
pcanywhere-udp UDP sport=1024-65535 dport=5631-5632
ping ICMP type=8 code=0
pop3 TCP sport=1024-65535 dport=110
pop3s TCP sport=1024-65535 dport=995
pptp TCP sport=1024-65535 dport=1723
rdp TCP sport=1024-65535 dport=3389
rsync TCP sport=1024-65535 dport=873
samba-tcp TCP sport=1024-65535 dport=139,445
samba-udp UDP sport=137-138,1024-65535 dport=137-138
smtp TCP sport=1024-65535 dport=25
socks TCP sport=1024-65535 dport=1080
ssh TCP sport=1024-65535 dport=22
syslog UDP sport=1024-65535 dport=514
telnet TCP sport=1024-65535 dport=23
traceroute UDP sport=1024-65535 dport=33434-33523
vnc TCP sport=1024-65535 dport=5900
whois TCP sport=1024-65535 dport=43
カスタムアプリケーション定義
事前定義されていないアプリケーションのトラフィックを制御する場合は、カスタムアプリケーションを定義する必要があります。カスタムアプリケーション定義は applicationコマンドで命名し、下記のコマンドで判別条件を指定します。条件のうち、protocolの指定は必須で、残りは任意です。
- protocolコマンド - IPプロトコルタイプ(必須。1つだけ)
- dscpコマンド - DSCP値(複数指定可)
- sportコマンド - TCP/UDP始点ポート番号(複数指定可)
- dportコマンド - TCP/UDP終点ポート番号(複数指定可)
- icmp-typeコマンド - ICMPタイプ(1つだけ)
- icmp-codeコマンド - ICMPコード(1つだけ)
TCPを利用するアプリケーション「mydb」の定義例。
awplus(config)# application mydb awplus(config-application)# protocol tcp awplus(config-application)# sport 1024 to 65535 awplus(config-application)# dport 8704 awplus(config-application)# exit
UDPを利用するアプリケーション「mystream」の定義例。
awplus(config)# application mydb awplus(config-application)# protocol udp awplus(config-application)# sport 1024 to max awplus(config-application)# dport 50000 to 50099 awplus(config-application)# dport 51024 awplus(config-application)# exit
ISAKMPパケットを判別するアプリケーション「isakmp」の定義例。
awplus(config)# application isakmp awplus(config-application)# protocol udp awplus(config-application)# sport 500 awplus(config-application)# dport 500 awplus(config-application)# exit
IPsecのESPパケットを判別するアプリケーション「esp」の定義例。
awplus(config)# application esp awplus(config-application)# protocol 50 awplus(config-application)# exit
ICMPを利用するアプリケーション「path-mtu-ipv4」の定義例。
awplus(config)# application path-mtu-ipv4 awplus(config-application)# protocol icmp awplus(config-application)# icmp-type 3 awplus(config-application)# icmp-code 4 awplus(config-application)# exit
ICMPv6を利用するアプリケーション「path-mtu-ipv6」の定義例。
awplus(config)# application path-mtu-ipv6 awplus(config-application)# protocol ipv6-icmp awplus(config-application)# icmp-type 2 awplus(config-application)# icmp-code 0 awplus(config-application)# exit
カスタムアプリケーション定義の内容を表示するには、show applicationコマンドのcustomオプションを使います。
awplus# show application detail custom
Name Protocol Detail
--------------------------------------------------------------------------
esp 50 -
isakmp UDP sport=500 dport=500
mydb TCP sport=1024-65535 dport=8704
mystream UDP sport=1024-65535 dport=50000-50099,51024
path-mtu-ipv4 ICMP type=3 code=4
path-mtu-ipv6 IPv6-ICMP type=2 code=0
アプリケーションコントロール(DPI)により判別可能なアプリケーション
これまでに述べたアプリケーション定義は、事前定義、カスタム定義のどちらとも、プロトコル番号やポート番号などのL3/L4ヘッダー情報にもとづいてアプリケーションを識別するものでした。本製品ではさらに、アプリケーションコントロール(DPI = ディープパケットインスペクション)機能を有効化することにより、パケットのデータ部分を検査し、通信内容(レイヤー7)にもとづいてどのアプリケーションに所属するトラフィックであるかを識別することも可能です。
最近は多くのアプリケーションが通信チャンネルとしてHTTP(80/tcp)を使うようになっているため、L3/L4ヘッダーだけではこれらのアプリケーションがすべて「HTTP」としか判定できず、個々のアプリケーションを見分けることができません。
アプリケーションコントロール(DPI)機能を使えば、アプリケーションシグネチャデータベースによって、各種アプリケーションに特有の通信パターンを検出し、個々のアプリケーションを判別することができるようになります。
アプリケーションコントロール(DPI)機能の設定は、DPIモード(dpiコマンド)で行います。
providerコマンドでシグネチャデータベースの提供元を指定した後、enableコマンドで有効化します。
awplus(config)# dpi awplus(config-dpi)# provider built-in または awplus(config-dpi)# provider procera awplus(config-dpi)# enable
アプリケーションコントロール(DPI)の詳細については、「UTM」/「アプリケーションコントロール(DPI)」をご覧ください。
アプリケーションコントロール(DPI)機能によって判別できるアプリケーションは、show application detailコマンドのdpiオプションで確認できます。
awplus# show application detail dpi
アプリケーション定義の使用
これまでに述べた各種アプリケーション定義は、ファイアウォール、NAT、QoS、ポリシーベースルーティング(PBR)の各機能でルールを作成するときに使用できます。ファイアウォールルールは、ファイアウォールモードのruleコマンドで作成します。
下の例では、アクション(permit)の直後に指定している「mydb」、「ssh」、「http」、「isakmp」、「esp」がアプリケーション定義名です。「any」は「すべての通信」を示す予約済みキーワードであり、アプリケーション定義名ではありません。
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コマンドで作成します。
下の例では、アクション(masq、portfwd)の直後に指定している「http」がアプリケーション定義名です。「any」は「すべての通信」を示す予約済みキーワードであり、アプリケーション定義名ではありません。
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.webNATの詳細については、「UTM」/「NAT」をご覧ください。
QoSルールは、トラフィックコントロールモードのruleコマンドで作成します。
下の例では、matchキーワードの直後に指定している「photostorage」がアプリケーション定義名です。
awplus(config)# traffic-control awplus(config-tc)# rule match photostorage from private to public.cloud rate 1 max 10000 priority 7QoSの詳細については、「トラフィック制御」/「Quality of Service」をご覧ください。
ポリシーベースルーティング(PBR)ルールは、ポリシーベースルーティングモードのip policy-routeコマンド、ipv6 policy-routeコマンドで作成します。
下の例では、matchキーワードの直後に指定している「highprio」、「lowprio」がアプリケーション定義名です。
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ポリシーベースルーティングの詳細については、「トラフィック制御」/「ポリシーベースルーティング」をご覧ください。