スポンサーリンク

ipftest

名称
書式
解説
オプション
関連項目
バグ

名称

ipftest − 任意の入力に対してパケットフィルタルールをテストする

書式

ipftest [ −vbdPRSTEHX ] [ −I interface ] −r <filename> [ −i <filename> ] [ −s <ipaddress> ]

解説

ipftest は、フィルタルール集合をあるべき場所に置かずにテストできるよ う に するために提供されています。これは動作して、フィルタルールの効果をテ ストします。安全な IP 環境を提供するに際し、混乱を最小にできればよい と いうことです。

ipftest は、ipf の標準ルールセットを解釈し、これを入力に対して適用し、 結果として出力を返します。しかし、フィルタを通過したパケットに 対 し て ipftest が 返 す の は、 次の 3 つの値のうちの 1 つです: pass, block, nomatch。これは、パケットがフィルタルールセットを通過するにあたって何が 発生しているのかに関し、オペレータの理解を助けることを意図しています。

−S, −T, −E のいずれのオプションも使用しない場合、 ipftest は固有のテキ スト入力フォーマットを使用し、「擬似」IP パケットを生成します。使用する フォーマットは次のとおりです:

"in"|"out" "on" if ["tcp"|"udp"|"icmp"]

srchost[,srcport] dsthost[,destport] [FSRPAU]

あるインタフェース (if) にて、入る ("in") または出る ("out") パケットを 生成できます。オプションとして主要プロトコル 3 つの中から 1 つを選択 で き ます。 TCP または UDP の場合、ポートパラメータの指定も必要です。 TCP が選択された場合、(オプションとして) 最後に TCP フラグを指定可能で す。 以下に例を数個示します:

# le0 に到着する UDP パケット

in on le0 udp 10.1.1.1,2210 10.2.1.5,23

# localhost から le0 に到着する IP パケット - うーむ :)

in on le0 localhost 10.4.12.1

# SYN フラグを設定されて le0 から出て行く TCP パケット

out on le0 tcp 10.4.12.1,2245 10.1.1.1,23 S

オプション

−v

冗長モード。通過したまたはしなかった入力パケットに対して ルールのどの部分がマッチしたのかに関し、より詳しい情報を提供 し ます。

−d

フィ ルタルールデバッグをオンにします。現在は、IP ヘッダ チェックにおいて、ルールがマッチしなかった理由を表示するだけ で す (アドレス/ネットマスクなど)。

−b

パケットをフィルタに通した結果の出力を、短いまとめ (1 語)、 すなわち "pass", "block", "nomatch" のいずれかにしま す。 リ グ レッションテストの際に使用します。

−I <interface>

(ルールのマッチに使用される) インタフェース名を、指定された名前 に設定します。この方法無しにはパケットとインタフェースとを関 連 付 けられない、 −P, −S, −T, −E の各オプションにおいて有用です。 通常の「テキストパケット」は、この設定に優先します。

−P

−i で指定される入力ファイルは、 libcap (すな わ ち tcpdump バー ジョン 3) が生成したバイナリファイルです。このファイルから 読まれたパケットは、(ルールに対する) 入力になりま す。 イ ン タ フェースは −I で指定可能です。

−R

ルールをロードするのではなく削除します。このオプションはト グルしませんので、一度設定したら -R をさらに使用しても解除で き ません。

−S

入力ファイルは「スヌープ」フォーマット (RFC 1761 参照) で す。パケットはこのファイルから読み取られ、任意のインタフェー ス か らの入力として使用されます。おそらく現在のところ、これが最も 有用な入力タイプでしょう。

−T

入力ファイルは tcpdump のテキスト出力です。現在サポートされ ているテキストフォーマットは、次の tcpdump オプションの組み合わ せの出力です:

tcpdump -n

tcpdump -nq

tcpdump -nqt

tcpdump -nqtt

tcpdump -nqte

−H

入力ファイルは 16 進数であり、パケットのバイナリ構造を表 現 す る必要があります。 IP ヘッダの長さが正しくなくても、長さは補 正されません。 1 個のパケットが複数行の 16 進数とパケット終端を 表 す空行とに分割されていてもかまいません。インタフェース名とパ ケッ ト の ( フィ ル タ リ ン グ に 対 す る) 方 向 と を、 [direction,interface] という形式で指定することができます。 le0 に到達するパケットを指定する場合は [in,le0] のように使います ( ここで、[] の文字は必要であり、入力の文法の一部です)。

−X

入力ファイルは IP パケットのテキスト記述からなります。

−E

入力ファイルは etherfind のテキスト出力です。現在サポートさ れているテキストフォーマットは、次の etherfind オプションの組み 合わせの出力です:

etherfind -n

etherfind -n -t

−i <filename>

入力を得るファイル名を指定します。デフォルトは標準入力です。

−r <filename>

フィルタルールを読み取るファイル名を指定します。

−s <ipaddress>

入力書式が ipftest に対してパケットが内向きなのか外向きなのかを 指定できない場合において、このオプションをある IP アドレスに 設 定 すると、始点アドレスがこのアドレスにマッチする場合には方向が 外向きになり、終点アドレスがこのアドレスにマッチする場合には 方 向が内向きになります。

関連項目

ipf(5), ipf(8), snoop(1m), tcpdump(8), etherfind(8c)

バグ

入 力形式によっては、テストに有用なことがらすべてをカバーできるほど十分 に多種多様なパケットを表現できません。

スポンサーリンク