YAMAHAルータで学ぶネットワーク構築術 > 動的フィルタリングの定義方法(その1)
当サイト概要学習環境の準備プライバシーポリシーリンクについてリンクの申込お問い合せ
◆スポンサードリンク

◆Amazon
◆動的フィルタリングの定義方法(その1)
◇スポンサードリンク

◆動的フィルタリングの定義方法(その1)

動的フィルタリングを定義するには、大きく分けて次の2通りあります。

@ユーザがアクセス制御のルールを記述する方法
A事前にルーターに登録されているアプリケーション名を指定する方法

 Aの方が設定が簡単で扱いやすいのですが、まずは、@の方法について説明してゆきます。@は、トリガーを静的フィルタを定義して動的フィルタを適用する方法です。

具体的な例を挙げて説明してゆきます。

・トリガーとなる、制御コネクションは、172.33.0.1の6000番宛である。
・2本あるデータコネクションのうち準方向は、UDPの7001番宛である。
・2本あるデータコネクションのうち逆方向は、UDPの7002番宛である。


このルールを適用した設定は、次のようになります。

# ip filter 10 pass * * tcp * 6000
# ip filter 11 pass * * udp * 7001
# ip filter 12 pass * * udp * 7002
# ip filter dynamic 1 * 172.33.0.1 filter 10 in 12 out 11
# pp select1
pp1# ip ppsecure filter in 100
pp1# ip pp secure filter out dynamic 1

 10は、トリガーを指定し、「in」の12はトリガーと逆方法のコネクション、「out」の11はトリガーと準方向のコネクションを指定しています。

 フィルタ10に合致するパケットを検出したら、フィルタ11、フィルタ12に合致するパケットを一定時間通過させます。この通過フィルタは、デフォルトで、30秒間保持差ます。

「ip pp secure filter out dynamic 1」で動的フィルタをppのout方向に適用します。

 上の設定例では、シンプルなトリガーの定義でしたが、もっと詳細に定義したい場合や、コネクションが複雑なアプリケーションの場合、動的フィルタリングの定義が複雑になってきます。

 例えば、内部(192.168.1.0/28)から172.33.0.1の6000番宛のアクセスをトリガーとして、として、定義する場合は、以下のようになります。

#ip filter 10 pass 192.168.1.0/28 * tcpflag=0x0002/0x0017 * 6000

 「tcpflag=0x0002/0x0017」の部分は、TCPパケットのSYNフラグだけが立っているパケットを指定しています。この静的フィルタで、HTTPコネクションの最初のパケットを捉えます。

設定値 URG ACK PSH PST SYN FYN
Value(0x0020) 0 0 0 0 1 0
mask(0x0017) 0 1 0 1 1 1

「tcpflag=0x0002/0x0017」にマッチするパケットのパターンは、以下のパターンにもマッチしそうです。

 TCPコネクションの最初のパケットであるSYNを通過させるフィルタであれば、マスク値は、単純にい考えて、オール1となるマスク値でもよさそうなものですが、コマンドリファレンスや設定例集にもサンプルとなるマスク値が掲載されていません。

 そこで、ネット上でよく見かける設定例で、「tcpflag=0x0002/0x0017」となっていますので、ここでもそれに従うこととします。

動的フィルタリングの適用」 ← 前項 | 次項 → 「動的フィルタリングの定義方法(その2)



Copyright(c)2012〜 YAMAHAルータで学ぶネットワーク構築術 All rights reserved.