ターゲット (target) とジャンプ (jump) は、ルールの条件部に完全に合致するパケットを、どう処すべきかをルールに指示する。基本的なターゲットとしては、まず、最初に説明する ACCEPT と DROP がある。しかしその前に、ジャンプがどのようなものか簡単に見ておくことにしよう。
ジャンプとターゲットの指定方法は、まったく同じだ。ただし、ジャンプの場合には、ジャンプ先のチェーンが同じテーブル内に存在している必要がある。既に述べたように、ユーザ定義チェーンは -N コマンドで作成する。例を示そう。 filter テーブルに tcp_packets という名前のチェーンを作るとすれば、このようにする:
iptables -N tcp_packets
その後、下記のようにすれば、そこへ飛ぶジャンプターゲットが指定できる:
iptables -A INPUT -p tcp -j tcp_packets
こうすると、 INPUT チェーンから tcp_packets チェーンにジャンプして、 tcp_packets チェーンの中を巡ることができる。もし仮に tcp_packets チェーンの終端に達したら、パケットは INPUT チェーンに戻り、他のチェーン (この場合 tcp_packets) へジャンプさせられた項目の次から先を引き続き進んでいく。パケットがサブチェーンのひとつで ACCEPT された場合には、それは親チェーンでも ACCEPT されたことになり、もう親チェーンの中を進むことはない。ただし、他のテーブルのチェーンは通常通り通っていくことに注意しなければならない。テーブルとチェーンの流れについてのより詳しい説明は、チャプター テーブルとチェーンの道のり を参照していただきたい。
かたや、ターゲットは、当該のパケットに対して起こすアクションを定義する。その例が、目的に応じて使い分ける ACCEPT と DROP だ。施したい処理はこの他にもいろいろあるとは思うが、そうしたアクションについては、このセクションで詳しく述べてゆく。ターゲットへのジャンプは、ターゲットが異なれば、伴う結果も自ずと異なる。一部のターゲットでは、パケットは前述のようにチェーンとその親チェーンの進行をやめる。そうしたルールの例が、 DROP と ACCEPT だ。進行をストップしたルールは、もう、そのチェーンのルールも、親チェーンのルールも巡らない。一方、別のターゲットでは、パケットにしかるべきアクションを起こした後も、パケットは残りのルールを進んでいく。この種の例としては LOG, ULOG, TOS といったターゲットがある。これらのターゲットは、パケットをログ・改変した後、現在のチェーンにおける次のルールへパケットを渡す。このような動作をさせたくなるのは、例えば、あるパケット/ストリームの TTL と TOS をともに変えたい場合だ。一部のターゲットでは追加オプション (TOS の値の設定など) も指定できる一方、どんなオプションも必要としないターゲットも存在する -- ただし必要なら使うこともできる (ログ接頭辞、マスカレード先ポートなど)。これからターゲットを解説していく中で、そういった点についてもできるだけカバーしていく。では、どんな種類のターゲットがあるのか見ていくことにしよう。