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 アドレスに 設 定 すると、始点アドレスがこのアドレスにマッチする場合には方向が 外向きになり、終点アドレスがこのアドレスにマッチする場合には 方 向が内向きになります。 |
入 力形式によっては、テストに有用なことがらすべてをカバーできるほど十分 に多種多様なパケットを表現できません。 |