2.20. パケットフィルタの設定
パケットフィルタ(トラフィックフィルタ)は、インタフェースの入口あるいは出口で、パケット単位にフィルタリングを実行します。
以下にパケットフィルタ登録のための設定および基本的な動作を説明します。
通常の条件固定のスタティックフィルタの他に、パケットに応じて動的にアクセスを許可するダイナミックフィルタを設定することも可能です。
NetMeisterサーバー宛の通信はスタティックフィルタおよびダイナミックフィルタでフィルタリングされません。
2.20.1. スタティックフィルタ
スタティックフィルタは、インタフェースコンフィグモードで、ip filter/ipv6 filterコマンドを使用して設定します。1つでもフィルタを登録した場合、そのインタフェースでは、パケット検索に一致しないパケットは自動的に廃棄する設定となります。
注釈
スタティックフィルタは、UFSキャッシュを利用することにより、転送が高速化します。UFSキャッシュについては、UFSキャッシュの項目を参照してください。
評価条件(アクセスリストと同一となります)
送信元アドレス、プレフィックス指定
送信先アドレス、プレフィックス指定
プロトコル指定
送信元ポート指定(TCP, UDP, ICMPのみ)
送信先ポート指定(TCP, UDP, ICMPのみ)
TCPヘッダ制御フラグ
TOS/TRAFFIC-CLASSフィールド(PRECEDENCE/DSCP/TOS)
ICMP/ICMPv6メッセージ
パケット評価順は、フィルタコマンドにて登録された優先順位に基づいて、それぞれのフィルタコマンドから参照されているアクセスリストの登録順とおりにパケットを評価します。
以下にスタティックフィルタの評価ポイントおよび評価ポイントにおける処理を示します。
スタティックフィルタの設定は次のコマンドを使用します。
アクセスリストについては、アクセスリストの設定の節を参照してください。
グローバルコンフィグモード
項目
説明
ip access-list
IPv4パケットの評価ルールを設定
ipv6 access-list
IPv6パケットの評価ルールを設定
インタフェースコンフィグモード
項目
説明
ip filter
IPv4パケットフィルタの使用を設定
ipv6 filter
IPv6パケットフィルタの使用を設定
ip access-list access-1 permit ip src 192.168.0.0/24 dest any ! interface GigaEthernet0.0 ip address 10.0.0.1/8 ip filter access-1 100 in no shutdown
ipv6 access-list access-1 permit icmp neighbor-advertisement src any dest any ipv6 access-list access-1 permit icmp neighbor-solicitation src any dest any ipv6 access-list access-2 permit ip src 2001:db8:1::/64 dest any ! interface GigaEthernet0.0 ipv6 address 2001:db8:1::1/64 ipv6 filter access-1 100 in ipv6 filter access-2 200 in no shutdown
注釈
IPv6では、ICMPv6を使い近隣探索(ルータの検索、アドレス解決、近隣不能検知、リダイレクトなど)が行われているため、あらかじめNAとNSの通過フィルタを設定しておく必要があります。
2.20.2. ダイナミックフィルタ
ダイナミックフィルタとは、トリガとなるパケットを指定して、そのパケットがフィルタを通過する際に動的にフィルタを操作できるパケットフィルタです。
以下にダイナミックフィルタの処理を示します。
ダイナミックフィルタは2種類の設定方法があります。
1つはHTTPやFTPなど予約されているサービス名を指定して、内側からセッションを張った場合にのみ、これらのサービスを使用可能にする設定です。もう1つは、ダイナミックアクセスリストを使用して詳細に設定を行う方法です。
注釈
最後のフィルタがダイナミックフィルタで、すべてのフィルタにマッチしない時パケットは廃棄されます。
設定コマンドは次のとおりです。ダイナミックフィルタの設定には、スタティックフィルタと同様に、ip filter/ipv6 filterコマンドを使用します。スタティックフィルタの利用時には、通常のアクセスリストを指定していましたが、ダイナミックフィルタの場合には、ダイナミックアクセスリストを指定します。
グローバルコンフィグモード
項目
説明
ip access-list dynamic
IPv4アドレスとダイナミックなルールを設定
ipv6 access-list dynamic
IPv6アドレスとダイナミックなルールを設定
インタフェースコンフィグモード
項目
説明
ip filter
IPv4パケットフィルタの使用を設定
ipv6 filter
IPv6パケットフィルタの使用を設定
表示コマンド
項目
説明
show ip filter dynamic
IPv4ダイナミックフィルタの確認
show ipv6 filter dynamic
IPv6ダイナミックフィルタの確認
2.20.2.1. サービス指定の場合のダイナミックフィルタ
HTTPやFTPなど直接サービス名を指定して、内側からセッションを張った場合にのみ、これらのサービスを使用可能にする設定です。HTTPなどの場合にはそのセッションのみ外部からのパケットを受け付けるようにし、FTPの場合にはデータコネクション用の通信も可能にします。
指定可能なサービスには、以下があります。これ以外のサービスを指定する場合には、下記項目のアクセスリストを利用したダイナミックフィルタを参照してください。
HTTP
FTP
TFTP
DNS
Telnet
内側のネットワークからFTPで外部ネットワークにアクセスしたときのみ外側からFTPに関連するフィルタに穴を開ける場合には、以下のような設定を行います。
ip access-list access-1 deny ip src any dest any ip access-list dynamic dynamic-1 ftp src 192.168.0.0/24 dest any ! interface GigaEthernet1.0 ip address 10.0.0.1/8 ip filter dynamic-1 100 out ip filter access-1 200 in no shutdownipv6 access-list access-1 permit icmp neighbor-advertisement src any dest any ipv6 access-list access-1 permit icmp neighbor-solicitation src any dest any ipv6 access-list access-2 deny ip src any dest any ipv6 access-list dynamic dynamic-2 ftp src 2001:db8:1::/64 dest any ! interface GigaEthernet1.0 ipv6 address 2001:db8:1::1/64 ipv6 filter access-1 100 out ipv6 filter dynamic-2 200 out ipv6 filter access-1 100 in ipv6 filter access-2 200 in no shutdown
2.20.2.2. アクセスリストを利用したダイナミックフィルタ
ダイナミックアクセスリストの設定にアクセスリストを使用することにより、あらかじめ用意されたサービスだけでなく、内側から開始された通信のみを許可したり、特定の通信に連動して、動的に全く異なるパケットへのフィルタ条件を生成したりすることも可能です。
ダイナミックアクセスリストの設定の詳細は、アクセスリストの設定の節を参照してください。
ダイナミックフィルタは、フィルタを動的にdenyからpermitにすることが目的ですので、通常時はdenyとなるようスタティックフィルタで設定をしておく必要があります。
2.20.2.2.1. 内側からのみ通信を開始したい場合
ダイナミックフィルタに使用するアクセスリストの設定で、スタティックフィルタで外部からの通信を遮断し、トリガとなるaccessのアクセスリストを指定した場合、「内側からは通信を行うことができるが、外部から開始された場合にはすべての通信を遮断する」という設定となります。これは、外側からのパケットをスタティックフィルタにて特に穴を開けなくても、accessで指定したトリガパケットの通信は動的に許可されるためです。
accessに指定したダイナミックアクセスリストにパケットがマッチすることにより、外部より許可されるパケットは、以下の条件にすべてマッチするパケットのみとなります。
送信元アドレスと送信先アドレスを反転したパケット
同一プロトコル
送信元ポートと送信先ポートを反転したパケット(TCP, UDPの場合)
なお、アクセスリストを指定する方法でもFTPのパケットを検知した場合には、自動的に通信可能にします。別途サービス指定でFTPを設定したダイナミックフィルタを用意する必要はありません。FTPで使用するTCPのポート21番がトリガの範囲にある必要があります。
以下に、内側から接続を開始したフローだけを通過許可させる場合の設定例を示します。
ip access-list deny-all deny ip src any dest any ip access-list access1 permit ip src any dest any ip access-list dynamic dyn-access access access1 ! interface GigaEthernet1.0 ip address 10.0.0.1/8 ip filter dyn-access 100 out ip filter deny-all 100 in no shutdownipv6 access-list access-1 permit icmp neighbor-advertisement src any dest any ipv6 access-list access-1 permit icmp neighbor-solicitation src any dest any ipv6 access-list access-2 deny ip src any dest any ipv6 access-list access-3 permit ip src any dest any ipv6 access-list dynamic dynamic-1 access access-3 ! interface GigaEthernet1.0 ipv6 address 2001:db8:1::1/64 ipv6 filter dynamic-1 100 out ipv6 filter access-1 100 in ipv6 filter access-2 200 in no shutdown
2.20.2.2.2. 内側から開始された通信に応じて外部からの特定の通信を許可したい場合
ダイナミックフィルタに使用するアクセスリストの設定で、トリガとなるaccessのアクセスリストにパケットがヒットした場合に、逆方向または順方向にpermitのフィルタを動的に作成することができます。この際トリガパケットの通信も動的に許可されます。
accessに指定したダイナミックアクセスリストにパケットがマッチすることにより、IN/OUTアクセスリストの評価対象となるパケットは、以下の条件にすべてにマッチするパケットのみとなります。
送信元アドレスと送信先アドレスを反転したパケット
同一プロトコル
注釈
ip access-list dynamicコマンドでは、inに設定したアクセスリストが逆方向、outに設定したアクセスリストが順方向となるようにフィルタが作成されます。
以下に、内側から外側にTCPの5000番ポートを使用した場合にかぎりTCPの6000番ポートの通信を可能にする設定例を示します。
ip access-list access-1 deny ip src any dest any ip access-list dyn-access permit tcp src any sport eq 5000 dest any ip access-list dyn-in permit tcp src any dest any dport eq 6000 ip access-list dynamic dynamic-1 access dyn-access in dyn-in ! interface GigaEthernet0.0 ip address 10.0.0.1/8 ip filter dynamic-1 100 out ip filter access-1 200 in no shutdownipv6 access-list access-1 permit icmp neighbor-advertisement src any dest any ipv6 access-list access-1 permit icmp neighbor-solicitation src any dest any ipv6 access-list access-2 deny ip src any dest any ipv6 access-list dyn-access permit tcp src any sport eq 5000 dest any ipv6 access-list dyn-in permit tcp src any dest any dport eq 6000 ipv6 access-list dynamic dynamic-1 access dyn-access in dyn-in ! interface GigaEthernet0.0 ipv6 address 2001:db8:1::1/64 ipv6 filter dynamic-1 100 out ipv6 filter access-1 100 in ipv6 filter access-2 200 in no shutdown
2.20.2.3. IN/OUTアクセスリストの取り扱い
IN/OUT評価は、アクセスリストの評価方法と一致します。INもしくはOUTで指定したアクセスリストでpermitにマッチしたパケットに対して通過許可を行います。denyにマッチした場合、IN/OUTアクセスリストにはマッチしなかったこととなります。
注釈
評価条件の複数指定が可能です。
2.20.2.4. NAPTとの連係
NAPTとの連係を行う場合、NAPTは動的に外側にポートを開くことができませんので、NAPT側ではstaticあるいはserviceの設定を行っておいて、ダイナミックフィルタでパケットの通過または廃棄を決定するように設定を行ってください。
注釈
評価条件の複数指定ができません。
2.20.2.5. ダイナミックフィルタグループの設定
本設定は主に以下のような環境で使用します。
上の構成では、各拠点間でメッシュ上にIPsecトンネルを張っており、拠点ルータのトンネルインタフェースではSIPダイナミックフィルタを使用しています。拠点1ではIPsecトンネルとしてTunnel0.0とTunnel1.0が存在し、センタと接続しているTunnel0.0にはSIPのトラフィックが、拠点2と接続しているTunnel1.0にはRTPのトラフィックが流れます。
ここでSIPダイナミックフィルタはSIPパケットを解析し、RTPパケットが通過するためのピンホール(ダイナミックフィルタキャッシュ)の生成を行いますが、デフォルトの設定ではRTPパケット用のピンホールはSIPパケットが通過するインタフェースに生成されるため、SIPとRTPが通過するインタフェースが異なる場合、正常に通信できなくなります。
このような場合にダイナミックフィルタグループの設定を行うことで、異なるインタフェースから共通のダイナミックフィルタキャッシュの参照を行えるようになります。これによりSIPとRTPが通過するインタフェースが異なる場合でも、正常に通信が行えるようになります。
インタフェースコンフィグモード
項目
説明
ip dynamic-filter group
ダイナミックフィルタのグループ化
以下はダイナミックフィルタのグループ化を「行わない場合」の内部の動作イメージです。各インタフェースで生成されたダイナミックフィルタキャッシュは独立して管理され、そのインタフェース経由でのみ参照が可能です(グループ化の設定を行っていない場合、各インタフェースのみが所属する、各インタフェース名のグループが内部的に作られています)。
以下はダイナミックフィルタのグループ化を「行った場合」の内部の動作イメージです。GigaEthernet0.0とGigaEthernet1.0はグループ化されているため共通の場所にキャッシュを生成します。これにより、たとえばGigaEthernet0.0を通過したパケットにより生成されたダイナミックフィルタキャッシュがGigaEthernet1.0を通過するパケットも参照可能になります。
ip access-list acl1 permit ip src any dest any ip access-list dynamic dlist1 access acl1 ! interface GigaEthernet0.0 ip address 10.1.0.1/24 ip filter dlist1 100 out ip dynamic-filter group group1 no shutdown ! interface GigaEthernet1.0 ip address 10.2.0.1/24 ip filter dlist1 100 out ip dynamic-filter group group1 no shutdown
2.20.3. 強制リアセンブリ
以下のコマンドをグローバルコンフィグで行うことで、フラグメントパケットをリアセンブリしてからIPスタティックフィルタ、IPダイナミックフィルタの処理を行うことができます。
グローバルコンフィグモード
項目
説明
ip filter forced-reassembly
IPフィルタにおける強制リアセンブリの有効化
インタフェースコンフィグモード
項目
説明
ipv6 forced-reassembly
IPv6における強制リアセンブリの有効化
2.20.4. MACフィルタ
注意
UNIVERGE IX-V シリーズをクラウドで利用する場合は、MACフィルタは利用できません。
MACアクセスリストを使用することにより、レイヤ2情報でフィルタリングすることができます。評価条件が異なる以外は、通常のフィルタと同様な動作をします。
評価条件(MACアクセスリストと同一になります)
送信元MACアドレス指定
送信先MACアドレス指定
EthernetヘッダのTypeフィールド指定
VLANタグのTPIDフィールド指定
VLANタグのCOSフィールド指定
VLANタグのCFIフィールド指定
VLANタグのVLAN-ID指定
任意の位置(オフセット)指定
設定コマンドは以下のとおりです。
インタフェースコンフィグモード
項目
説明
filter
MACフィルタの設定
access-list access1 permit src 11:22:33:44:55:66 dest any ! interface GigaEthernet0.0 ip address 192.168.0.1/24 filter access1 100 in no shutdown
2.20.5. パケットフィルタのロギング
パケットフィルタ機能とロギングの機能を使用することにより、フィルタによりパケットが廃棄された場合のログを残すことが可能です。この機能により、簡易的な攻撃監視を行うことができます。
ログ出力のための設定コマンドは以下のとおりです。
グローバルコンフィグモード
項目
説明
syslog function
表示するログ種別の指定
syslog function ip-flt warn :通常のフィルタ(IP/IPv6フィルタ) syslog function mac-flt warn :MACフィルタ ! ip access-list access1 permit ip src 10.0.0.0/24 dest any ! interface GigaEthernet0.0 ip address 10.0.0.1/8 ip filter access1 100 in no shutdown
上記の設定例のように、トラフィックフィルタのイベントログのレベルを「warn」に設定して運用することで、遮断フィルタによるパケットの廃棄ログを取得することができます。
しかし、大量のパケットが遮断フィルタに引っかかるような環境の場合、遮断ログが大量に出力されてしまい運用上望ましくない場合もあります。そのような場合はパケット廃棄ログ抑制機能を使用することで指定したフィルタによるパケット遮断ログの出力を停止することができます。
インタフェースコンフィグモード
項目
説明
{ip | ipv6} filter FLT_NAME SEQ_NUM {in | out} suppress-logging
パケット廃棄ログを出力しない
本装置では、イベントログの設定を行うことでトラフィックフィルタに関する以下のような情報を取得できます。
ログの内容
イベントログのレベル
error
warn
notice
info
debug
a
各種内部処理(致命的なエラー)
○
○
○
○
○
b
各種内部処理(異常系)
×
○
○
○
○
c
遮断フィルタにマッチしたので廃棄
×
○
○
○
○
d
暗黙のdenyで廃棄
×
○
○
○
○
e
各種内部処理(正常系)
×
×
×
○
○
f
通過フィルタにマッチ
×
×
×
○
○
g
DNSキャッシュに変化が発生
×
×
×
×
○
h
フラグメントパケットの正常処理
×
×
×
×
○
○:情報が出力される ×:情報が出力されない
本設定を行うことで上記の「(c)遮断フィルタにマッチしたので廃棄」に関するログの出力を停止させることができます。
以下に、NetBIOSのパケットをLAN側インタフェース(GigaEthernet0.0)で遮断し、その際の遮断ログを出力しない設定例を示します。
ip access-list rej-netbios deny tcp src any dest any dport eq 137 ip access-list rej-netbios deny tcp src any dest any dport eq 138 ip access-list rej-netbios deny tcp src any dest any dport eq 139 ip access-list rej-netbios permit ip src any dest any ! interface GigaEthernet0.0 ip address 192.168.0.1/24 ip filter rej-netbios 100 in suppress-logging no shutdown ! interface GigaEthernet1.0 ip address 10.0.0.1/24 no shutdown
インタフェースで複数のフィルタリストを設定している場合、「suppress-logging」を指定していないフィルタに関しては「(c)遮断フィルタにマッチしたので廃棄」に関するログも出力されます。
パケット廃棄ログ抑制機能(suppress-logging)はMACフィルタでも使用することができます。
また、syslogを利用することにより、出力内容をsyslogサーバーへ送信することも可能です。詳しい設定方法は、ロギング機能の設定の節を参照してください。
ロギング機能はIX-R/IX-Vに負荷がかかりますので、全体的な転送性能は低下しますので注意してください。