OSDN Git Service

Remove ip6tables* as they are now link pages
[linuxjm/iptables.git] / draft / man8 / iptables-extensions.8
1 .\"*******************************************************************
2 .\"
3 .\" This file was generated with po4a. Translate the source file.
4 .\"
5 .\"*******************************************************************
6 .\"
7 .\" Japanese Version Copyright (c) 2013 Akihiro MOTOKI
8 .\"         all rights reserved.
9 .\" Translated 2013-04-08, Akihiro MOTOKI <amotoki@gmail.com>
10 .\"
11 .TH iptables\-extensions 8 "" "iptables 1.4.21" "iptables 1.4.21"
12 .SH 名前
13 iptables\-extensions \(em 標準の iptables に含まれる拡張モジュールのリスト
14 .SH 書式
15 \fBip6tables\fP [\fB\-m\fP \fIname\fP [\fImodule\-options\fP...]] [\fB\-j\fP \fItarget\-name\fP
16 [\fItarget\-options\fP...]
17 .PP
18 \fBiptables\fP [\fB\-m\fP \fIname\fP [\fImodule\-options\fP...]] [\fB\-j\fP \fItarget\-name\fP
19 [\fItarget\-options\fP...]
20 .SH マッチングの拡張
21 iptables は拡張されたパケットマッチングモジュールを使うことができる。 使用するモジュールは \fB\-m\fP か \fB\-\-match\fP
22 の後ろにモジュール名に続けて指定する。 モジュール名の後ろには、 モジュールに応じて他のいろいろなコマンドラインオプションを指定することができる。
23 複数の拡張マッチングモジュールを一行で指定することができる。 モジュールの指定より後ろで \fB\-h\fP か \fB\-\-help\fP を指定すると、
24 モジュール固有のヘルプが表示される。 拡張マッチングモジュールはルールで指定された順序で評価される。
25 .PP
26 .\" @MATCH@
27 \fB\-p\fP か \fB\-\-protocol\fP が指定され、 かつ未知のオプションだけが指定されていた場合にのみ、 iptables
28 はプロトコルと同じ名前のマッチモジュールをロードし、 そのオプションを使えるようにしようとする。
29 .SS addrtype
30 このモジュールは、 アドレス種別 (\fBaddress type\fP) に基づいてパケットマッチングを行う。
31 アドレス種別はカーネルのネットワークスタック内で使われており、 アドレスはいくつかグループに分類される。 厳密なグループの定義は個々のレイヤ 3
32 プロトコルに依存する。
33 .PP
34 以下のアドレスタイプが利用できる。
35 .TP 
36 \fBUNSPEC\fP
37 アドレスを指定しない (つまりアドレス 0.0.0.0)
38 .TP 
39 \fBUNICAST\fP
40 ユニキャストアドレス
41 .TP 
42 \fBLOCAL\fP
43 ローカルアドレス
44 .TP 
45 \fBBROADCAST\fP
46 ブロードキャストアドレス
47 .TP 
48 \fBANYCAST\fP
49 エニーキャストアドレス
50 .TP 
51 \fBMULTICAST\fP
52 マルチキャストアドレス
53 .TP 
54 \fBBLACKHOLE\fP
55 ブラックホールアドレス
56 .TP 
57 \fBUNREACHABLE\fP
58 到達できないアドレス
59 .TP 
60 \fBPROHIBIT\fP
61 禁止されたアドレス
62 .TP 
63 \fBTHROW\fP
64 要修正
65 .TP 
66 \fBNAT\fP
67 要修正
68 .TP 
69 \fBXRESOLVE\fP
70 .TP 
71 [\fB!\fP] \fB\-\-src\-type\fP \fItype\fP
72 送信元アドレスが指定された種類の場合にマッチする。
73 .TP 
74 [\fB!\fP] \fB\-\-dst\-type\fP \fItype\fP
75 宛先アドレスが指定された種類の場合にマッチする。
76 .TP 
77 \fB\-\-limit\-iface\-in\fP
78 アドレス種別のチェックをそのパケットが受信されたインターフェースに限定する。 このオプションは \fBPREROUTING\fP, \fBINPUT\fP,
79 \fBFORWARD\fP チェインでのみ利用できる。 \fB\-\-limit\-iface\-out\fP オプションと同時に指定することはできない。
80 .TP 
81 \fB\-\-limit\-iface\-out\fP
82 アドレス種別のチェックをそのパケットが出力されるインターフェースに限定する。 このオプションは \fBPOSTROUTING\fP, \fBOUTPUT\fP,
83 \fBFORWARD\fP チェインでのみ利用できる。 \fB\-\-limit\-iface\-in\fP オプションと同時に指定することはできない。
84 .SS "ah (IPv6 のみ)"
85 このモジュールは IPsec パケットの認証ヘッダーのパラメータにマッチする。
86 .TP 
87 [\fB!\fP] \fB\-\-ahspi\fP \fIspi\fP[\fB:\fP\fIspi\fP]
88 SPI にマッチする。
89 .TP 
90 [\fB!\fP] \fB\-\-ahlen\fP \fIlength\fP
91 このヘッダーの全体の長さ (8進数)。
92 .TP 
93 \fB\-\-ahres\fP
94 予約フィールドが 0 で埋められている場合にマッチする。
95 .SS "ah (IPv4 の場合)"
96 このモジュールは IPsec パケットの認証ヘッダー (AH) の SPI 値にマッチする。
97 .TP 
98 [\fB!\fP] \fB\-\-ahspi\fP \fIspi\fP[\fB:\fP\fIspi\fP]
99 .SS bpf
100 Linux Socket Filter を使ってマッチを行う。 BPF プログラムを 10 進数形式で指定する。 これは
101 \fBnfbpf_compile\fP ユーティリティにより生成されるフォーマットである。
102 .TP 
103 \fB\-\-bytecode\fP \fIcode\fP
104 BPF バイトコードフォーマットを渡す (フォーマットについては下記の例で説明)。
105 .PP
106 コードのフォーマットは tcpdump の \-ddd コマンドの出力に似ている。 最初に命令数が入った行が 1 行あり、 1 行 1 命令がこれに続く。
107 命令行は 'u16 u8 u8 u32' のパターンで 10 進数で指定する。 各フィールドは、命令、 true 時のジャンプオフセット、 false
108 時のジャンプオフセット、 汎用で様々な用途に使用するフィールド 'K' である。 コメントはサポートされていない。
109 .PP
110 例えば 'ip proto 6' にマッチするパケットのみを読み込むには、以下を挿入すればよい (コムと末尾のホワイトスペースは含めずに)。
111 .IP
112 4 # 命令数
113 .br
114 48 0 0 9 # load byte ip\->proto
115 .br
116 21 0 1 6 # jump equal IPPROTO_TCP
117 .br
118 6 0 0 1 # return pass (non\-zero)
119 .br
120 6 0 0 0 # return fail (zero)
121 .PP
122 このフィルターを bpf マッチに渡すには以下のコマンドのようにする。
123 .IP
124 iptables \-A OUTPUT \-m bpf \-\-bytecode '4,48 0 0 9,21 0 1 6,6 0 0 1,6 0 0 0'
125 \-j ACCEPT
126 .PP
127 代わりに、 nfbpf_compile ユーティリティを使う方法もある。
128 .IP
129 iptables \-A OUTPUT \-m bpf \-\-bytecode "`nfbpf_compile RAW 'ip proto 6'`" \-j
130 ACCEPT
131 .PP
132 BPF についてもっと詳しく知るには FreeBSD の bpf(4) manpage を見るといいだろう。
133 .SS cluster
134 このモジュールを使うと、負荷分散装置なしで、ゲートウェイとバックエンドの負荷分散クラスターを配備できる。
135 .PP
136 This match requires that all the nodes see the same packets. Thus, the
137 cluster match decides if this node has to handle a packet given the
138 following options:
139 .TP 
140 \fB\-\-cluster\-total\-nodes\fP \fInum\fP
141 クラスターの総ノード数を設定する。
142 .TP 
143 [\fB!\fP] \fB\-\-cluster\-local\-node\fP \fInum\fP
144 ローカルノードの数字の ID を設定する。
145 .TP 
146 [\fB!\fP] \fB\-\-cluster\-local\-nodemask\fP \fImask\fP
147 ローカルノードの ID マスクを設定する。 このオプションは \fB\-\-cluster\-local\-node\fP の代わりに使うことができる。
148 .TP 
149 \fB\-\-cluster\-hash\-seed\fP \fIvalue\fP
150 Jenkins ハッシュのシード値を設定する。
151 .PP
152 例:
153 .IP
154 iptables \-A PREROUTING \-t mangle \-i eth1 \-m cluster \-\-cluster\-total\-nodes 2
155 \-\-cluster\-local\-node 1 \-\-cluster\-hash\-seed 0xdeadbeef \-j MARK \-\-set\-mark
156 0xffff
157 .IP
158 iptables \-A PREROUTING \-t mangle \-i eth2 \-m cluster \-\-cluster\-total\-nodes 2
159 \-\-cluster\-local\-node 1 \-\-cluster\-hash\-seed 0xdeadbeef \-j MARK \-\-set\-mark
160 0xffff
161 .IP
162 iptables \-A PREROUTING \-t mangle \-i eth1 \-m mark ! \-\-mark 0xffff \-j DROP
163 .IP
164 iptables \-A PREROUTING \-t mangle \-i eth2 \-m mark ! \-\-mark 0xffff \-j DROP
165 .PP
166 以下のコマンドで、 すべてのノードに同じパケットを届けることができる。
167 .IP
168 ip maddr add 01:00:5e:00:01:01 dev eth1
169 .IP
170 ip maddr add 01:00:5e:00:01:02 dev eth2
171 .IP
172 arptables \-A OUTPUT \-o eth1 \-\-h\-length 6 \-j mangle \-\-mangle\-mac\-s
173 01:00:5e:00:01:01
174 .IP
175 arptables \-A INPUT \-i eth1 \-\-h\-length 6 \-\-destination\-mac 01:00:5e:00:01:01
176 \-j mangle \-\-mangle\-mac\-d 00:zz:yy:xx:5a:27
177 .IP
178 arptables \-A OUTPUT \-o eth2 \-\-h\-length 6 \-j mangle \-\-mangle\-mac\-s
179 01:00:5e:00:01:02
180 .IP
181 arptables \-A INPUT \-i eth2 \-\-h\-length 6 \-\-destination\-mac 01:00:5e:00:01:02
182 \-j mangle \-\-mangle\-mac\-d 00:zz:yy:xx:5a:27
183 .PP
184 \fBNOTE\fP: the arptables commands above use mainstream syntax. If you are
185 using arptables\-jf included in some RedHat, CentOS and Fedora versions, you
186 will hit syntax errors. Therefore, you'll have to adapt these to the
187 arptables\-jf syntax to get them working.
188 .PP
189 TCP 接続の場合には、応答方向で受信した TCP ACK パケットが有効とマークされないようにするため、ピックアップ (pickup)
190 機能を無効する必要がある。
191 .IP
192 echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose
193 .SS comment
194 ルールにコメント (最大 256 文字) を付けることができる。
195 .TP 
196 \fB\-\-comment\fP \fIcomment\fP
197 .TP 
198 例:
199 iptables \-A INPUT \-i eth1 \-m comment \-\-comment "my local LAN"
200 .SS connbytes
201 一つのコネクション (もしくはそのコネクションを構成する 2 つのフローの一方) でそれまでに転送されたバイト数やパケット数、
202 もしくはパケットあたりの平均バイト数にマッチする。
203 .PP
204 カウンターは 64 ビットであり、したがってオーバーフローすることは考えられていない ;)
205 .PP
206 主な利用方法は、長時間存在するダウンロードを検出し、 これらに印を付けることで、
207 トラフィック制御において艇優先帯域を使うようにスケジューリングできるようにすることである。
208 .PP
209 コネクションあたりの転送バイト数は、 `conntrack \-L` 経由で見ることができ、 ctnetlink 経由でもアクセスすることもできる。
210 .PP
211 アカウント情報を持っていないコネクションでは、 このマッチングは常に false を返す点に注意すること。
212 "net.netfilter.nf_conntrack_acct" sysctl フラグで、
213 \fB新規\fPコネクションでバイト数/パケット数の計測が行われるかが制御できる。 sysctl フラグが変更されても、
214 既存のコネクションのアカウント情報は影響を受けない。
215 .TP 
216 [\fB!\fP] \fB\-\-connbytes\fP \fIfrom\fP[\fB:\fP\fIto\fP]
217 パケット数/バイト数/平均パケットサイズが FROM バイト/パケットより大きく TO バイト/パケットよりも小さいコネクションのパケットにマッチする。
218 TO が省略した場合は FROM のみがチェックされる。 "!" を使うと、 この範囲にないパケットにマッチする。
219 .TP 
220 \fB\-\-connbytes\-dir\fP {\fBoriginal\fP|\fBreply\fP|\fBboth\fP}
221 どのパケットを計測するかを指定する
222 .TP 
223 \fB\-\-connbytes\-mode\fP {\fBpackets\fP|\fBbytes\fP|\fBavgpkt\fP}
224 パケット総数、転送バイト数、これまでに受信した全パケットの平均サイズ (バイト単位) のどれをチェックするかを指定する。 "both" と
225 "avgpkt" を組み合わせて使った場合で、 (HTTP のように) データが (主に) 片方向でのみ転送される場合、
226 平均パケットサイズは実際のデータパケットの約半分になる点に注意すること。
227 .TP 
228 例:
229 iptables .. \-m connbytes \-\-connbytes 10000:100000 \-\-connbytes\-dir both
230 \-\-connbytes\-mode bytes ...
231 .SS connlimit
232 一つのサーバーに対する、 一つのクライアント IP アドレス (またはクライアントアドレスブロック) からの同時接続数を制限することができる。
233 .TP 
234 \fB\-\-connlimit\-upto\fP \fIn\fP
235 既存の接続数が \fIn\fP 以下の場合にマッチする。
236 .TP 
237 \fB\-\-connlimit\-above\fP \fIn\fP
238 既存の接続数が \fIn\fP より多い場合にマッチする。
239 .TP 
240 \fB\-\-connlimit\-mask\fP \fIprefix_length\fP
241 プレフィックス長を使ってホストのグルーピングを行う。 IPv4 の場合には、プレフィックス長は 0 以上 32 以下の値でなければならない。 IPv6
242 の場合には 0 以上 128 以下でなければならない。 指定しなかった場合、そのプロトコルで使われる最も長いプレフィックス長が使用される。
243 .TP 
244 \fB\-\-connlimit\-saddr\fP
245 送信元グループに対して制限を適用する。 これが \-\-connlimit\-daddr が指定されなかった場合のデフォルトである。
246 .TP 
247 \fB\-\-connlimit\-daddr\fP
248 宛先グループに対して制限を適用する。
249 .PP
250 例:
251 .TP 
252 # クライアントホストあたり 2 つの telnet 接続を許可する
253 iptables \-A INPUT \-p tcp \-\-syn \-\-dport 23 \-m connlimit \-\-connlimit\-above 2
254 \-j REJECT
255 .TP 
256 # 同じことのに行う別のマッチ方法
257 iptables \-A INPUT \-p tcp \-\-syn \-\-dport 23 \-m connlimit \-\-connlimit\-upto 2 \-j
258 ACCEPT
259 .TP 
260 # クラス C の送信元ネットワーク (ネットマスクが 24 ビット) あたりの同時 HTTP リクエスト数を 16 までに制限する
261 iptables \-p tcp \-\-syn \-\-dport 80 \-m connlimit \-\-connlimit\-above 16
262 \-\-connlimit\-mask 24 \-j REJECT
263 .TP 
264 # リンクローカルネットワークからの同時 HTTP リクエスト数を 16 までに制限する
265 (ipv6)  ip6tables \-p tcp \-\-syn \-\-dport 80 \-s fe80::/64 \-m connlimit
266 \-\-connlimit\-above 16 \-\-connlimit\-mask 64 \-j REJECT
267 .TP 
268 # 特定のホスト宛のコネクション数を制限する
269 ip6tables \-p tcp \-\-syn \-\-dport 49152:65535 \-d 2001:db8::1 \-m connlimit
270 \-\-connlimit\-above 100 \-j REJECT
271 .SS connmark
272 このモジュールはコネクションに関連づけられた netfilter の mark フィールドにマッチする (このフィールドは、 以下の
273 \fBCONNMARK\fP ターゲットで設定される)。
274 .TP 
275 [\fB!\fP] \fB\-\-mark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
276 指定された mark 値を持つコネクションのパケットにマッチする (mask が指定されると、 比較の前に mask との論理積 (AND)
277 がとられる)。
278 .SS conntrack
279 コネクション追跡 (connection tracking) と組み合わせて使用した場合に、 このモジュールを使うと、
280 パケットやコネクションの追跡状態を知ることができる。
281 .TP 
282 [\fB!\fP] \fB\-\-ctstate\fP \fIstatelist\fP
283 \fIstatelist\fP はマッチするコネクション状態 (connection state) のリストで、 コンマ区切りで指定する。
284 指定できる状態のリストは後述。
285 .TP 
286 [\fB!\fP] \fB\-\-ctproto\fP \fIl4proto\fP
287 指定されたレイヤ 4 のプロトコルにマッチする。 プロトコルは名前または数値で指定する。
288 .TP 
289 [\fB!\fP] \fB\-\-ctorigsrc\fP \fIaddress\fP[\fB/\fP\fImask\fP]
290 .TP 
291 [\fB!\fP] \fB\-\-ctorigdst\fP \fIaddress\fP[\fB/\fP\fImask\fP]
292 .TP 
293 [\fB!\fP] \fB\-\-ctreplsrc\fP \fIaddress\fP[\fB/\fP\fImask\fP]
294 .TP 
295 [\fB!\fP] \fB\-\-ctrepldst\fP \fIaddress\fP[\fB/\fP\fImask\fP]
296 順方向/反対方向のコネクションの送信元/宛先アドレスにマッチする。
297 .TP 
298 [\fB!\fP] \fB\-\-ctorigsrcport\fP \fIport\fP[\fB:\fP\fIport\fP]
299 .TP 
300 [\fB!\fP] \fB\-\-ctorigdstport\fP \fIport\fP[\fB:\fP\fIport\fP]
301 .TP 
302 [\fB!\fP] \fB\-\-ctreplsrcport\fP \fIport\fP[\fB:\fP\fIport\fP]
303 .TP 
304 [\fB!\fP] \fB\-\-ctrepldstport\fP \fIport\fP[\fB:\fP\fIport\fP]
305 順方向/反対方向のコネクションの (TCP/UDPなどの) 送信元/宛先ポートアドレス、 もしくは GRE キーにマッチする。
306 ポートの範囲指定はカーネル 2.6.38 以降でのみサポートされている。
307 .TP 
308 [\fB!\fP] \fB\-\-ctstatus\fP \fIstatelist\fP
309 \fIstatuslist\fP はマッチするコネクション状況 (connection status) のリストで、 コンマ区切りで指定する。
310 指定できる状況のリストは後述。
311 .TP 
312 [\fB!\fP] \fB\-\-ctexpire\fP \fItime\fP[\fB:\fP\fItime\fP]
313 有効期間の残り秒数、 またはその範囲(両端を含む)にマッチする。
314 .TP 
315 \fB\-\-ctdir\fP {\fBORIGINAL\fP|\fBREPLY\fP}
316 指定した方向に流れるパケットにマッチする。 このフラグが全く指定されなかった場合、 両方向のパケットがマッチする。
317 .PP
318 \fB\-\-ctstate\fP に指定できる状態は以下の通り。
319 .TP 
320 \fBINVALID\fP
321 そのパケットはどの既知のコネクションとも関連付けられていない。
322 .TP 
323 \fBNEW\fP
324 そのパケットが新しいコネクションを開始しようとしている。 もしくは、 両方の方向でパケットが観測されていないコネクションに関連付けられる。
325 .TP 
326 \fBESTABLISHED\fP
327 そのパケットが、 両方向のパケットが観測されたコネクションに関連付けられる。
328 .TP 
329 \fBRELATED\fP
330 そのパケットは、新しいコネクションを開始しようとしているが、 既存のコネクションと関連付けられる。 FTP データ転送や ICMP
331 エラーなどが該当する。
332 .TP 
333 \fBUNTRACKED\fP
334 そのパケットは全く追跡されていない。 この状態は、 raw テーブルで \-j CT \-\-notrack
335 を使って明示的にそのパケットを追跡しないようにしている場合に起こる。
336 .TP 
337 \fBSNAT\fP
338 元の送信元アドレスが応答の宛先アドレスと異なる場合にマッチする仮想的な状態。
339 .TP 
340 \fBDNAT\fP
341 元の宛先アドレスが応答の送信元アドレスと異なる場合にマッチする仮想的な状態。
342 .PP
343 \fB\-\-ctstatus\fP に指定できる値は以下の通り。
344 .TP 
345 \fBNONE\fP
346 以下のいずれでもない。
347 .TP 
348 \fBEXPECTED\fP
349 期待通りのコネクションである (つまり conntrack のヘルパーがコネクションをセットアップした)。
350 .TP 
351 \fBSEEN_REPLY\fP
352 conntrack が両方の方向でパケットを観測済である。
353 .TP 
354 \fBASSURED\fP
355 conntrack エントリが early\-expired されることはない。
356 .TP 
357 \fBCONFIRMED\fP
358 Connection is confirmed: originating packet has left box.
359 .SS cpu
360 .TP 
361 [\fB!\fP] \fB\-\-cpu\fP \fInumber\fP
362 このパケットを処理する CPU にマッチする。 CPU には 0 から NR_CPUS\-1 の番号が振られる。
363 ネットワークトラフィックを複数のキューに分散させるために RPS (Remote Packet Steering) やマルチキュー NIC
364 と組み合わせて使用できる。
365 .PP
366 例:
367 .PP
368 iptables \-t nat \-A PREROUTING \-p tcp \-\-dport 80 \-m cpu \-\-cpu 0 \-j REDIRECT
369 \-\-to\-port 8080
370 .PP
371 iptables \-t nat \-A PREROUTING \-p tcp \-\-dport 80 \-m cpu \-\-cpu 1 \-j REDIRECT
372 \-\-to\-port 8081
373 .PP
374 Linux 2.6.36 以降で利用可能。
375 .SS dccp
376 .TP 
377 [\fB!\fP] \fB\-\-source\-port\fP,\fB\-\-sport\fP \fIport\fP[\fB:\fP\fIport\fP]
378 .TP 
379 [\fB!\fP] \fB\-\-destination\-port\fP,\fB\-\-dport\fP \fIport\fP[\fB:\fP\fIport\fP]
380 .TP 
381 [\fB!\fP] \fB\-\-dccp\-types\fP \fImask\fP
382 DCCP パケットタイプが \fImask\fP のいずれかであればマッチする。 \fImask\fP はカンマ区切りのパケットタイプのリストである。
383 指定できるパケットタイプは \fBREQUEST RESPONSE DATA ACK DATAACK CLOSEREQ CLOSE RESET SYNC
384 SYNCACK INVALID\fP である。
385 .TP 
386 [\fB!\fP] \fB\-\-dccp\-option\fP \fInumber\fP
387 DCCP オプションが設定されている場合にマッチする。
388 .SS devgroup
389 パケットの受信/送信インターフェースのデバイスグループにマッチする。
390 .TP 
391 [\fB!\fP] \fB\-\-src\-group\fP \fIname\fP
392 受信デバイスのデバイスグループにマッチする
393 .TP 
394 [\fB!\fP] \fB\-\-dst\-group\fP \fIname\fP
395 送信デバイスのデバイスグループにマッチする
396 .SS dscp
397 このモジュールは、 IP ヘッダーの TOS フィールド内にある、 6 bit の DSCP フィールドにマッチする。 IETF では DSCP が
398 TOS に取って代わった。
399 .TP 
400 [\fB!\fP] \fB\-\-dscp\fP \fIvalue\fP
401 (10 進または 16 進の) 数値 [0\-63] にマッチする。
402 .TP 
403 [\fB!\fP] \fB\-\-dscp\-class\fP \fIclass\fP
404 DiffServ クラスにマッチする。 値は BE, EF, AFxx, CSx クラスのいずれかである。 対応する数値に変換される。
405 .SS "dst (IPv6 のみ)"
406 このモジュールは宛先オプションヘッダーのパラメータにマッチする。
407 .TP 
408 [\fB!\fP] \fB\-\-dst\-len\fP \fIlength\fP
409 このヘッダーの全体の長さ (8進数)。
410 .TP 
411 \fB\-\-dst\-opts\fP \fItype\fP[\fB:\fP\fIlength\fP][\fB,\fP\fItype\fP[\fB:\fP\fIlength\fP]...]
412 数値のオプションタイプとオプションデータのオクテット単位の長さ。
413 .SS ecn
414 IPv4/IPv6 と TCP ヘッダーの ECN ビットにマッチングを行う。 ECN とは RFC3168 で規定された Explicit
415 Congestion Notification (明示的な輻輳通知) 機構のことである。
416 .TP 
417 [\fB!\fP] \fB\-\-ecn\-tcp\-cwr\fP
418 TCP ECN CWR (Congestion Window Received) ビットがセットされている場合にマッチする。
419 .TP 
420 [\fB!\fP] \fB\-\-ecn\-tcp\-ece\fP
421 TCP ECN ECE (ECN Echo) ビットがセットされている場合にマッチする。
422 .TP 
423 [\fB!\fP] \fB\-\-ecn\-ip\-ect\fP \fInum\fP
424 特定の IPv4/IPv6 ECT (ECN\-Capable Transport) にマッチする。 `0' 以上 `3'
425 以下の値を指定しなければならない。
426 .SS esp
427 このモジュールは IPsec パケットの ESP ヘッダーの SPI 値にマッチする。
428 .TP 
429 [\fB!\fP] \fB\-\-espspi\fP \fIspi\fP[\fB:\fP\fIspi\fP]
430 .SS "eui64 (IPv6 のみ)"
431 このモジュールは stateless の自動で設定された IPv6 アドレスの EUI\-64 の部分にマッチする。 Ethernet の送信元 MAC
432 アドレスに基づく EUI\-64 と IPv6 送信元アドレスの下位 64 ビットの比較が行われる。 ただし "Universal/Local"
433 ビットは比較されない。 このモジュールは他のリンク層フレームにはマッチしない。 このモジュールは \fBPREROUTING\fP, \fBINPUT\fP,
434 \fBFORWARD\fP チェインでのみ有効である。
435 .SS "frag (IPv6 のみ)"
436 このモジュールはフラグメントヘッダーのパラメータにマッチする。
437 .TP 
438 [\fB!\fP] \fB\-\-fragid\fP \fIid\fP[\fB:\fP\fIid\fP]
439 指定された値もしくは範囲の ID にマッチする。
440 .TP 
441 [\fB!\fP] \fB\-\-fraglen\fP \fIlength\fP
442 このオプションはバージョン 2.6.10 以降のカーネルでは使用できない。 フラグメントヘッダー長は変化しないので、このオプションは意味を持たない。
443 .TP 
444 \fB\-\-fragres\fP
445 予約フィールドに 0 が入っている場合にマッチする。
446 .TP 
447 \fB\-\-fragfirst\fP
448 最初のフラグメントにマッチする。
449 .TP 
450 \fB\-\-fragmore\fP
451 さらにフラグメントが続く場合にマッチする。
452 .TP 
453 \fB\-\-fraglast\fP
454 最後のフラグメントの場合にマッチする。
455 .SS hashlimit
456 \fBhashlimit\fP uses hash buckets to express a rate limiting match (like the
457 \fBlimit\fP match) for a group of connections using a \fBsingle\fP iptables
458 rule. Grouping can be done per\-hostgroup (source and/or destination address)
459 and/or per\-port. It gives you the ability to express "\fIN\fP packets per time
460 quantum per group" or "\fIN\fP bytes per seconds" (see below for some
461 examples).
462 .PP
463 hash limit オプション (\fB\-\-hashlimit\-upto\fP, \fB\-\-hashlimit\-above\fP) と
464 \fB\-\-hashlimit\-name\fP は必須である。
465 .TP 
466 \fB\-\-hashlimit\-upto\fP \fIamount\fP[\fB/second\fP|\fB/minute\fP|\fB/hour\fP|\fB/day\fP]
467 単位時間あたりの平均マッチ回数の最大値。 数値で指定され、 添字 `/second', `/minute', `/hour', `/day'
468 を付けることもできる。 デフォルトは 3/hour である。
469 .TP 
470 \fB\-\-hashlimit\-above\fP \fIamount\fP[\fB/second\fP|\fB/minute\fP|\fB/hour\fP|\fB/day\fP]
471 レートが指定された区間での \fIamount\fP より大きい場合にマッチする。
472 .TP 
473 \fB\-\-hashlimit\-burst\fP \fIamount\fP
474 パケットがマッチする回数の最大初期値: 上のオプションで指定した制限に達しなければ、 マッチするごとに、 この数値になるまで 1 個ずつ増やされる。
475 デフォルトは 5 である。 バイトでのレート照合が要求された場合、 このオプションは指定レートを超過できるバイト数を規定する。
476 このオプションを使用する際には注意が必要である \-\- エントリがタイムアウトで削除される際に、バースト値もリセットされる。
477 .TP 
478 \fB\-\-hashlimit\-mode\fP {\fBsrcip\fP|\fBsrcport\fP|\fBdstip\fP|\fBdstport\fP}\fB,\fP...
479 対象とする要素のカンマ区切りのリスト。 \-\-hashlimit\-mode オプションが指定されなかった場合、 hashlimit は limit
480 と同じ動作をするが、 ハッシュの管理を行うコストがかかる。
481 .TP 
482 \fB\-\-hashlimit\-srcmask\fP \fIprefix\fP
483 When \-\-hashlimit\-mode srcip is used, all source addresses encountered will
484 be grouped according to the given prefix length and the so\-created subnet
485 will be subject to hashlimit. \fIprefix\fP must be between (inclusive) 0 and
486 32. Note that \-\-hashlimit\-srcmask 0 is basically doing the same thing as not
487 specifying srcip for \-\-hashlimit\-mode, but is technically more expensive.
488 .TP 
489 \fB\-\-hashlimit\-dstmask\fP \fIprefix\fP
490 Like \-\-hashlimit\-srcmask, but for destination addresses.
491 .TP 
492 \fB\-\-hashlimit\-name\fP \fIfoo\fP
493 /proc/net/ipt_hashlimit/foo エントリの名前。
494 .TP 
495 \fB\-\-hashlimit\-htable\-size\fP \fIbuckets\fP
496 ハッシュテーブルのバケット数。
497 .TP 
498 \fB\-\-hashlimit\-htable\-max\fP \fIentries\fP
499 ハッシュの最大エントリ数。
500 .TP 
501 \fB\-\-hashlimit\-htable\-expire\fP \fImsec\fP
502 ハッシュエントリが何ミリ秒後に削除されるか。
503 .TP 
504 \fB\-\-hashlimit\-htable\-gcinterval\fP \fImsec\fP
505 ガベージコレクションの間隔 (ミリ秒)。
506 .PP
507 例:
508 .TP 
509 送信元ホストに対するマッチ
510 "192.168.0.0/16 の各ホストに対して 1000 パケット/秒" => \-s 192.168.0.0/16
511 \-\-hashlimit\-mode srcip \-\-hashlimit\-upto 1000/sec
512 .TP 
513 送信元ポートに対するマッチ
514 "192.168.1.1 の各サービスに対して 100 パケット/秒" => \-s 192.168.1.1 \-\-hashlimit\-mode
515 srcport \-\-hashlimit\-upto 100/sec
516 .TP 
517 サブネットに対するマッチ
518 "10.0.0.0/8 内の /28 サブネット (アドレス 8 個のグループ) それぞれに対して 10000 パケット/秒" => \-s
519 10.0.0.0/8 \-\-hashlimit\-mask 28 \-\-hashlimit\-upto 10000/min
520 .TP 
521 バイト/秒によるマッチ
522 "512kbyte/s を超過したフロー" => \-\-hashlimit\-mode srcip,dstip,srcport,dstport
523 \-\-hashlimit\-above 512kb/s
524 .TP 
525 バイト/秒によるマッチ
526 "512kbyte/s を超過するとマッチするが、 1 メガバイトに達するまではマッチせず許可する" \-\-hashlimit\-mode dstip
527 \-\-hashlimit\-above 512kb/s \-\-hashlimit\-burst 1mb
528 .SS "hbh (IPv6 のみ)"
529 このモジュールは Hop\-by\-Hop オプションヘッダーのパラメータにマッチする。
530 .TP 
531 [\fB!\fP] \fB\-\-hbh\-len\fP \fIlength\fP
532 このヘッダーの全体の長さ (8進数)。
533 .TP 
534 \fB\-\-hbh\-opts\fP \fItype\fP[\fB:\fP\fIlength\fP][\fB,\fP\fItype\fP[\fB:\fP\fIlength\fP]...]
535 数値のオプションタイプとオプションデータのオクテット単位の長さ。
536 .SS helper
537 このモジュールは、 指定されたコネクション追跡ヘルパーモジュールに 関連するパケットにマッチする。
538 .TP 
539 [\fB!\fP] \fB\-\-helper\fP \fIstring\fP
540 指定されたコネクション追跡ヘルパーモジュールに 関連するパケットにマッチする。
541 .RS
542 .PP
543 デフォルトのポートを使った ftp\-セッションに関連するパケットでは、 string に "ftp" と書ける。 他のポートでは "\-ポート番号"
544 を値に付け加える。 すなわち "ftp\-2121" となる。
545 .PP
546 他のコネクション追跡ヘルパーでも同じルールが適用される。
547 .RE
548 .SS "hl (IPv6 のみ)"
549 このモジュールは IPv6 ヘッダーの Hop Limit フィールドにマッチする。
550 .TP 
551 [\fB!\fP] \fB\-\-hl\-eq\fP \fIvalue\fP
552 Hop Limit が \fIvalue\fP と同じ場合にマッチする。
553 .TP 
554 \fB\-\-hl\-lt\fP \fIvalue\fP
555 Hop Limit が \fIvalue\fP より小さい場合にマッチする。
556 .TP 
557 \fB\-\-hl\-gt\fP \fIvalue\fP
558 Hop Limit が \fIvalue\fP より大きい場合にマッチする。
559 .SS "icmp (IPv4 の場合)"
560 この拡張は `\-\-protocol icmp' が指定された場合に使用でき、 以下のオプションが提供される:
561 .TP 
562 [\fB!\fP] \fB\-\-icmp\-type\fP {\fItype\fP[\fB/\fP\fIcode\fP]|\fItypename\fP}
563 ICMP タイプを指定できる。 タイプ指定には、 数値の ICMP タイプ、 タイプ/コードの組、 または以下のコマンド で表示される ICMP
564 タイプ名を指定できる。
565 .nf
566  iptables \-p icmp \-h
567 .fi
568 .SS "icmp6 (IPv6 のみ)"
569 これらの拡張は `\-\-protocol ipv6\-icmp' または `\-\-protocol icmpv6' が指定された場合に使用でき、
570 以下のオプションが提供される:
571 .TP 
572 [\fB!\fP] \fB\-\-icmpv6\-type\fP \fItype\fP[\fB/\fP\fIcode\fP]|\fItypename\fP
573 ICMPv6 タイプを指定できる。 タイプ指定には、 数値の ICMP \fItype\fP、 \fItype\fP と \fIcode\fP、 または以下のコマンド
574 で表示される ICMPv6 タイプ名を指定できる。
575 .nf
576  ip6tables \-p ipv6\-icmp \-h
577 .fi
578 .SS iprange
579 このモジュールは指定された任意の範囲の IP アドレスにマッチする。
580 .TP 
581 [\fB!\fP] \fB\-\-src\-range\fP \fIfrom\fP[\fB\-\fP\fIto\fP]
582 指定された範囲の送信元 IP にマッチする。
583 .TP 
584 [\fB!\fP] \fB\-\-dst\-range\fP \fIfrom\fP[\fB\-\fP\fIto\fP]
585 指定された範囲の宛先 IP にマッチする。
586 .SS "ipv6header (IPv6 のみ)"
587 このモジュールは IPv6 拡張ヘッダー、 上位レイヤのヘッダー、もしくはその両方にマッチする。
588 .TP 
589 \fB\-\-soft\fP
590 パケットが \fB\-\-header\fP で指定されたヘッダーの\fBいずれか\fPを含む場合にマッチする。
591 .TP 
592 [\fB!\fP] \fB\-\-header\fP \fIheader\fP[\fB,\fP\fIheader\fP...]
593 Matches the packet which EXACTLY includes all specified headers. The headers
594 encapsulated with ESP header are out of scope.  Possible \fIheader\fP types can
595 be:
596 .TP 
597 \fBhop\fP|\fBhop\-by\-hop\fP
598 Hop\-by\-Hop オプションヘッダー
599 .TP 
600 \fBdst\fP
601 宛先オプションヘッダー
602 .TP 
603 \fBroute\fP
604 ルーティングヘッダー
605 .TP 
606 \fBfrag\fP
607 フラグメントヘッダー
608 .TP 
609 \fBauth\fP
610 認証ヘッダー (AH)
611 .TP 
612 \fBesp\fP
613 ESP (Encapsulating Security Payload) ヘッダー
614 .TP 
615 \fBnone\fP
616 No Next header which matches 59 in the 'Next Header field' of IPv6 header or
617 any IPv6 extension headers
618 .TP 
619 \fBproto\fP
620 which matches any upper layer protocol header. A protocol name from
621 /etc/protocols and numeric value also allowed. The number 255 is equivalent
622 to \fBproto\fP.
623 .SS ipvs
624 IPVS コネクション属性にマッチする。
625 .TP 
626 [\fB!\fP] \fB\-\-ipvs\fP
627 IPVS コネクションに属すパケット
628 .TP 
629 以下のオプションでは \-\-ipvs も暗黙のうちに指定される (否定の場合も含む)
630 .TP 
631 [\fB!\fP] \fB\-\-vproto\fP \fIprotocol\fP
632 マッチする VIP プロトコル (数値か名前 (例えば "tcp") で指定する)
633 .TP 
634 [\fB!\fP] \fB\-\-vaddr\fP \fIaddress\fP[\fB/\fP\fImask\fP]
635 マッチする VIP アドレス
636 .TP 
637 [\fB!\fP] \fB\-\-vport\fP \fIport\fP
638 マッチする VIP プロトコル (数値か名前 (例えば \"http\") で指定する)
639 .TP 
640 \fB\-\-vdir\fP {\fBORIGINAL\fP|\fBREPLY\fP}
641 パケットフローの方向
642 .TP 
643 [\fB!\fP] \fB\-\-vmethod\fP {\fBGATE\fP|\fBIPIP\fP|\fBMASQ\fP}
644 使用する IPVS の転送方法
645 .TP 
646 [\fB!\fP] \fB\-\-vportctl\fP \fIport\fP
647 マッチする制御用コネクションの VIP ポート (例えば FTP であれば 21)
648 .SS length
649 このモジュールは、 パケットのレイヤ 3 ペイロード (例えばレイヤ 4 パケット) の長さが、 指定された値、 または値の範囲にあればマッチする。
650 .TP 
651 [\fB!\fP] \fB\-\-length\fP \fIlength\fP[\fB:\fP\fIlength\fP]
652 .SS limit
653 このモジュールは、 トークンバケットフィルタを使って制限レートのマッチを行う。 この拡張を使ったルールは、指定された制限に達するまでマッチする。
654 例えば、 このモジュールはログ記録を制限するために \fBLOG\fP ターゲットと組み合わせて使うことができる。
655 .PP
656 xt_limit has no negation support \- you will have to use \-m hashlimit !
657 \-\-hashlimit \fIrate\fP in this case whilst omitting \-\-hashlimit\-mode.
658 .TP 
659 \fB\-\-limit\fP \fIrate\fP[\fB/second\fP|\fB/minute\fP|\fB/hour\fP|\fB/day\fP]
660 単位時間あたりの平均マッチ回数の最大値。 数値で指定され、 添字 `/second', `/minute', `/hour', `/day'
661 を付けることもできる。 デフォルトは 3/hour である。
662 .TP 
663 \fB\-\-limit\-burst\fP \fInumber\fP
664 パケットがマッチする回数の最大初期値: 上のオプションで指定した制限に達しなければ、 マッチするごとに、 この数値になるまで 1 個ずつ増やされる。
665 デフォルトは 5 である。
666 .SS mac
667 .TP 
668 [\fB!\fP] \fB\-\-mac\-source\fP \fIaddress\fP
669 送信元 MAC アドレスにマッチする。 \fIaddress\fP は XX:XX:XX:XX:XX:XX と
670 いう形式でなければならない。 イーサーネットデバイスから入ってくるパケッ
671 トで、 \fBPREROUTING\fP, \fBFORWARD\fP, \fBINPUT\fP チェインに入るパケットにしか
672 意味がない。
673 .SS mark
674 このモジュールはパケットに関連づけられた netfilter の mark フィールドにマッチする (このフィールドは、 以下の \fBMARK\fP
675 ターゲットで設定される)。
676 .TP 
677 [\fB!\fP] \fB\-\-mark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
678 指定された符号なしの mark 値を持つパケットにマッチする (\fImask\fP が指定されると、 比較の前に \fImask\fP との論理積 (AND)
679 がとられる)。
680 .SS "mh (IPv6 のみ)"
681 この拡張は `\-\-protocol ipv6\-mh' または `\-\-protocol mh' が指定された場合にロードされる。
682 以下のオプションが提供される。
683 .TP 
684 [\fB!\fP] \fB\-\-mh\-type\fP \fItype\fP[\fB:\fP\fItype\fP]
685 Mobility Header (MH) タイプを指定できる。 タイプ指定には、 数値の MH タイプか、 以下のコマンドで表示される MH
686 タイプ名を指定できる。
687 .nf
688  ip6tables \-p mh \-h
689 .fi
690 .SS multiport
691 このモジュールは送信元ポートや宛先ポートの集合にマッチする。 ポートは 15 個まで指定できる。 ポートの範囲指定 (port:port) は 2
692 ポートとカウントされる。 このモジュールが使用できるのは \fBtcp\fP, \fBudp\fP, \fBudplite\fP, \fBdccp\fP, \fBsctp\fP
693 のいずれかと組み合わせた場合だけである。
694 .TP 
695 [\fB!\fP] \fB\-\-source\-ports\fP,\fB\-\-sports\fP \fIport\fP[\fB,\fP\fIport\fP|\fB,\fP\fIport\fP\fB:\fP\fIport\fP]...
696 送信元ポートが指定されたポートのいずれにマッチする。 フラグ \fB\-\-sports\fP はこのオプションの便利な別名である。
697 複数のポートやポート範囲がカンマ区切りで指定できる。 ポート範囲はコロン区切りで指定する。 したがって \fB53,1024:65535\fP はポート 53
698 および 1024 から 65535 までの全ポートにマッチする。
699 .TP 
700 [\fB!\fP] \fB\-\-destination\-ports\fP,\fB\-\-dports\fP \fIport\fP[\fB,\fP\fIport\fP|\fB,\fP\fIport\fP\fB:\fP\fIport\fP]...
701 宛先ポートが指定されたポートのうちのいずれかであればマッチする。
702 フラグ \fB\-\-dports\fP は、 このオプションの便利な別名である。
703 .TP 
704 [\fB!\fP] \fB\-\-ports\fP \fIport\fP[\fB,\fP\fIport\fP|\fB,\fP\fIport\fP\fB:\fP\fIport\fP]...
705 送信元ポートと宛先ポートの一方が指定されたポートのいずれか一つと等しければ、 マッチする。
706 .SS nfacct
707 nfacct マッチングは iptable に拡張アカウンティング機構を提供する。 このマッチングモジュールはユーザー空間スタンドアロンユーティリティ
708 \fBnfacct\fP(8) と一緒に使う必要がある。
709 .PP
710 以下のオプションだけがこのマッチングで使用できる。
711 .TP 
712 \fB\-\-nfacct\-name\fP \fIname\fP
713 このルールセットがマッチするトラフィック量を記録するのに使用する既存のオブジェクト名を指定する。
714 .PP
715 この拡張を使用するには、アカウンティングオブジェクトを作成する必要があります。
716 .IP
717 nfacct add http\-traffic
718 .PP
719 それから、iptables を使ってアカウンティングオブジェクトにトラフィックを関連付けます。
720 .IP
721 iptables \-I INPUT \-p tcp \-\-sport 80 \-m nfacct \-\-nfacct\-name http\-traffic
722 .IP
723 iptables \-I OUTPUT \-p tcp \-\-dport 80 \-m nfacct \-\-nfacct\-name http\-traffic
724 .PP
725 そうすると、ルールにマッチしたトラフィック量をチェックできる。
726 .IP
727 nfacct get http\-traffic
728 .IP
729 { pkts = 00000000000000000156, bytes = 00000000000000151786 } =
730 http\-traffic;
731 .PP
732 \fBnfacct\fP(8) は http://www.netfilter.org もしくは git.netfilter.org リポジトリから入手できる。
733 .SS osf
734 osf モジュールは受動的な OS (オペレーティングシステム) フィンガープリンティングを行う。 このモジュールは SYN
735 ビットがセットされたパケットのいくつかのデータ (Window Size, MSS, オプションとその順序, TTL, DF など) を比較する。
736 .TP 
737 [\fB!\fP] \fB\-\-genre\fP \fIstring\fP
738 受動的フィンガープリンティングでマッチさせるオペレーティングシステムのジャンル。
739 .TP 
740 \fB\-\-ttl\fP \fIlevel\fP
741 パケットに対して、オペレーティングシステムを判定するための追加の TTL チェックを行う。 \fIlevel\fP には以下の値のいずれを指定できる。
742 .IP \(bu 4
743 0 \- 本当の IP アドレスとフィンガープリント TTL の比較を行う。 一般に LAN で有効である。
744 .IP \(bu 4
745 1 \- IP ヘッダーの TTL がフィンガープリント TTL より小さいかチェックする。 グローバルにルーティング可能なアドレスで有効である。
746 .IP \(bu 4
747 2 \- TTL の比較を全く行わない。
748 .TP 
749 \fB\-\-log\fP \fIlevel\fP
750 判別したジャンルが期待するものと違う場合でもロギングするかどうか。 \fIlevel\fP には以下のいずれかを指定できる。
751 .IP \(bu 4
752 マッチしたシグネチャーと不明なシグネチャーをすべて記録する
753 .IP \(bu 4
754 1 \- 最初にマッチしたもののみを記録する
755 .IP \(bu 4
756 2 \- マッチした既知のシグネチャーをすべて記録する
757 .PP
758 syslog に以下のようなメッセージが記録される。
759 .PP
760 Windows [2000:SP3:Windows XP Pro SP1, 2000 SP3]: 11.22.33.55:4024 \->
761 11.22.33.44:139 hops=3 Linux [2.5\-2.6:] : 1.2.3.4:42624 \-> 1.2.3.5:22
762 hops=4
763 .PP
764 OS フィンガープリントは \fBnfnl_osf\fP プログラムを使ってロードできる。 ファイルからフィンガープリントをロードするには以下のようにする。
765 .PP
766 \fBnfnl_osf \-f /usr/share/xtables/pf.os\fP
767 .PP
768 再度削除するには以下のようにする。
769 .PP
770 \fBnfnl_osf \-f /usr/share/xtables/pf.os \-d\fP
771 .PP
772 フィンガープリントデータベースは http://www.openbsd.org/cgi\-bin/cvsweb/src/etc/pf.os
773 からダウンロードできる。
774 .SS owner
775 このモジュールは、 ローカルで生成されたパケットに対して、 パケット生成者の様々な特性に対するマッチを行う。 このマッチは OUTPUT チェインか
776 POSTROUTING チェインでのみ有効である。 転送パケットはどのソケットとも関連付けられていない。
777 カーネルスレッドからのパケットには対応するソケットがあるが、 通常ソケットの所有者はいない。
778 .TP 
779 [\fB!\fP] \fB\-\-uid\-owner\fP \fIusername\fP
780 .TP 
781 [\fB!\fP] \fB\-\-uid\-owner\fP \fIuserid\fP[\fB\-\fP\fIuserid\fP]
782 そのパケットのソケットのファイル構造体が存在し、ソケットの所有者が指定されたユーザーの場合にマッチする。 数値の UID や UID
783 の範囲を指定することもできる。
784 .TP 
785 [\fB!\fP] \fB\-\-gid\-owner\fP \fIgroupname\fP
786 .TP 
787 [\fB!\fP] \fB\-\-gid\-owner\fP \fIgroupid\fP[\fB\-\fP\fIgroupid\fP]
788 そのパケットのソケットのファイル構造体の所有者が指定されたグループの場合にマッチする。 数値の GID や GID の範囲を指定することもできる。
789 .TP 
790 [\fB!\fP] \fB\-\-socket\-exists\fP
791 パケットがソケットに関連付けられている場合にマッチする。
792 .SS physdev
793 このモジュールは、 ブリッジデバイスのスレーブにされた、 ブリッジポートの入出力デバイスにマッチする。 このモジュールは、 ブリッジによる透過的な IP
794 ファイアウォールの基盤の一部であり、 カーネルバージョン 2.5.44 以降でのみ有効である。
795 .TP 
796 [\fB!\fP] \fB\-\-physdev\-in\fP \fIname\fP
797 パケットが受信されるブリッジのポート名 (\fBINPUT\fP, \fBFORWARD\fP, \fBPREROUTING\fP チェインに入るパケットのみ)。
798 インターフェース名が "+" で終っている場合、 その名前で始まる任意のインターフェース名にマッチする。
799 ブリッジデバイスを通して受け取られなかったパケットは、 \&'!' が指定されていない限り、 このオプションにマッチしない。
800 .TP 
801 [\fB!\fP] \fB\-\-physdev\-out\fP \fIname\fP
802 パケットを送信することになるブリッジのポート名 (\fBFORWARD\fP, \fBOUTPUT\fP, \fBPOSTROUTING\fP
803 チェインに入るパケットのみ)。 インターフェース名が "+" で終っている場合、 その名前で始まる任意のインターフェース名にマッチする。 \fBnat\fP
804 と \fBmangle\fP テーブルの \fBOUTPUT\fP チェインではブリッジの出力ポートにマッチさせることができないが、 \fBfilter\fP テーブルの
805 \fBOUPUT\fP チェインではマッチ可能である。 パケットがブリッジデバイスから送られなかった場合、 またはパケットの出力デバイスが不明であった場合は、
806 \&'!' が指定されていない限り、 パケットはこのオプションにマッチしない。
807 .TP 
808 [\fB!\fP] \fB\-\-physdev\-is\-in\fP
809 パケットがブリッジインターフェースに入った場合にマッチする。
810 .TP 
811 [\fB!\fP] \fB\-\-physdev\-is\-out\fP
812 パケットがブリッジインターフェースから出ようとした場合にマッチする。
813 .TP 
814 [\fB!\fP] \fB\-\-physdev\-is\-bridged\fP
815 パケットがブリッジされることにより、 ルーティングされなかった場合にマッチする。 これは FORWARD, POSTROUTING
816 チェインにおいてのみ役立つ。
817 .SS pkttype
818 このモジュールは、 リンク層のパケットタイプにマッチする。
819 .TP 
820 [\fB!\fP] \fB\-\-pkt\-type\fP {\fBunicast\fP|\fBbroadcast\fP|\fBmulticast\fP}
821 .SS policy
822 このモジュールはパケットを処理する IPsec が使用するポリシーにマッチする。
823 .TP 
824 \fB\-\-dir\fP {\fBin\fP|\fBout\fP}
825 復号 (decapsulation) に使用するポリシーにマッチするか、カプセル化 (encapsulation)
826 に使用するポリシーにマッチするかを指定する。 \fBin\fP はチェイン \fBPREROUTING, INPUT, FORWARD\fP で有効で、
827 \fBout\fP はチェイン \fBPOSTROUTING, OUTPUT, FORWARD\fP で有効である。
828 .TP 
829 \fB\-\-pol\fP {\fBnone\fP|\fBipsec\fP}
830 パケットが IPsec 処理対象であればマッチする。 \fB\-\-pol none\fP は \fB\-\-strict\fP と一緒に使用できない。
831 .TP 
832 \fB\-\-strict\fP
833 ポリシーが正確にマッチするか、指定したポリシーがポリシーのいずれかのルールにマッチするかを指定する。
834 .PP
835 それぞれのポリシー要素を定義するのに、以下のオプション (複数可) を使用することができる。 \fB\-\-strict\fP
836 が有効になっている場合、各要素につき少なくともオプションを一つ指定しなければならない。
837 .TP 
838 [\fB!\fP] \fB\-\-reqid\fP \fIid\fP
839 ポリシールールの reqid にマッチする。 reqid は \fBsetkey\fP(8) でレベルとして \fBunique:id\fP を使って指定できる。
840 .TP 
841 [\fB!\fP] \fB\-\-spi\fP \fIspi\fP
842 SA の SPI にマッチする。
843 .TP 
844 [\fB!\fP] \fB\-\-proto\fP {\fBah\fP|\fBesp\fP|\fBipcomp\fP}
845 カプセル化プロトコルにマッチする。
846 .TP 
847 [\fB!\fP] \fB\-\-mode\fP {\fBtunnel\fP|\fBtransport\fP}
848 カプセル化モードにマッチする。
849 .TP 
850 [\fB!\fP] \fB\-\-tunnel\-src\fP \fIaddr\fP[\fB/\fP\fImask\fP]
851 トンネルモード SA の送信元エンドポイントアドレスにマッチする。 \fB\-\-mode tunnel\fP との組み合わせでのみ有効。
852 .TP 
853 [\fB!\fP] \fB\-\-tunnel\-dst\fP \fIaddr\fP[\fB/\fP\fImask\fP]
854 トンネルモード SA の宛先エンドポイントアドレスにマッチする。 \fB\-\-mode tunnel\fP との組み合わせでのみ有効。
855 .TP 
856 \fB\-\-next\fP
857 ポリシー定義の次の要素から開始する。 \fB\-\-strict\fP との組み合わせでのみ使用できる。
858 .SS quota
859 Implements network quotas by decrementing a byte counter with each
860 packet. The condition matches until the byte counter reaches zero. Behavior
861 is reversed with negation (i.e. the condition does not match until the byte
862 counter reaches zero).
863 .TP 
864 [\fB!\fP] \fB\-\-quota\fP \fIbytes\fP
865 バイト単位のクォータ。
866 .SS rateest
867 レート推測器 (rate estimator) は RATEEST ターゲットで収集された推定レートにマッチする。 bps/pps
868 の絶対値に対するマッチング、 2 つのレート推測器の比較、 2 つのレート推測器の差分に対するマッチングをサポートしている。
869 .PP
870 .\" * Absolute:
871 利用可能なオプションが分かりやすいように、すべての可能な組み合わせを以下に示す。
872 .IP \(bu 4
873 \fBrateest\fP \fIoperator\fP \fBrateest\-bps\fP
874 .IP \(bu 4
875 .\" * Absolute + Delta:
876 \fBrateest\fP \fIoperator\fP \fBrateest\-pps\fP
877 .IP \(bu 4
878 (\fBrateest\fP minus \fBrateest\-bps1\fP) \fIoperator\fP \fBrateest\-bps2\fP
879 .IP \(bu 4
880 .\" * Relative:
881 (\fBrateest\fP minus \fBrateest\-pps1\fP) \fIoperator\fP \fBrateest\-pps2\fP
882 .IP \(bu 4
883 \fBrateest1\fP \fIoperator\fP \fBrateest2\fP \fBrateest\-bps\fP(without rate!)
884 .IP \(bu 4
885 .\" * Relative + Delta:
886 \fBrateest1\fP \fIoperator\fP \fBrateest2\fP \fBrateest\-pps\fP(without rate!)
887 .IP \(bu 4
888 (\fBrateest1\fP minus \fBrateest\-bps1\fP) \fIoperator\fP (\fBrateest2\fP minus
889 \fBrateest\-bps2\fP)
890 .IP \(bu 4
891 (\fBrateest1\fP minus \fBrateest\-pps1\fP) \fIoperator\fP (\fBrateest2\fP minus
892 \fBrateest\-pps2\fP)
893 .TP 
894 \fB\-\-rateest\-delta\fP
895 (絶対モードでも相対モードでも) 各レート推測器について、 レート推測器が推測したフローレートと BPS/PPS
896 オプションで指定された固定値の差分を計算する。 フローレートが指定された BPS/PPS よりも大きい場合、 負の値ではなく 0 が代わりに使用される。
897 つまり "max(0, rateest#_rate \- rateest#_bps)" が使用される。
898 .TP 
899 [\fB!\fP] \fB\-\-rateest\-lt\fP
900 レートが指定されたレートかレート推測器のレートよりも低い場合にマッチする。
901 .TP 
902 [\fB!\fP] \fB\-\-rateest\-gt\fP
903 レートが指定されたレートかレート推測器のレートよりも高い場合にマッチする。
904 .TP 
905 [\fB!\fP] \fB\-\-rateest\-eq\fP
906 レートが指定されたレートかレート推測器のレートと等しい場合にマッチする。
907 .PP
908 いわゆる「絶対モード」では、使用できるレート推測器は一つだけであり、固定値に対する比較だけができる。一方、「相対モード」では、2
909 つのレート推測器が使用でき、レート推測器どうしの比較ができる。
910 .TP 
911 \fB\-\-rateest\fP \fIname\fP
912 絶対モードで使用するレート推測器の名前
913 .TP 
914 \fB\-\-rateest1\fP \fIname\fP
915 .TP 
916 \fB\-\-rateest2\fP \fIname\fP
917 相対モードで使用する 2 つレート推測器の名前
918 .TP 
919 \fB\-\-rateest\-bps\fP [\fIvalue\fP]
920 .TP 
921 \fB\-\-rateest\-pps\fP [\fIvalue\fP]
922 .TP 
923 \fB\-\-rateest\-bps1\fP [\fIvalue\fP]
924 .TP 
925 \fB\-\-rateest\-bps2\fP [\fIvalue\fP]
926 .TP 
927 \fB\-\-rateest\-pps1\fP [\fIvalue\fP]
928 .TP 
929 \fB\-\-rateest\-pps2\fP [\fIvalue\fP]
930 レート推測器と指定した値を、秒間のバイト数またはパケット数で比較する。 どのオプションがどの場合に使用できるかは上の箇条書きのリストを見てほしい。
931 単位を示す接尾辞を付けることができる。 bit, [kmgt]bit, [KMGT]ibit, Bps, [KMGT]Bps, [KMGT]iBps
932 が使用できる。
933 .PP
934 例: この機能を、データコネクションの開始時に利用可能帯域に基づいて、 FTP サーバーからの出力データコネクションを 2
935 つの回線に振り分けるのに使用する場合。
936 .PP
937 # 出力レートを推定する
938 .PP
939 iptables \-t mangle \-A POSTROUTING \-o eth0 \-j RATEEST \-\-rateest\-name eth0
940 \-\-rateest\-interval 250ms \-\-rateest\-ewma 0.5s
941 .PP
942 iptables \-t mangle \-A POSTROUTING \-o ppp0 \-j RATEEST \-\-rateest\-name ppp0
943 \-\-rateest\-interval 250ms \-\-rateest\-ewma 0.5s
944 .PP
945 # 利用可能帯域に基づいてマーキングを行う
946 .PP
947 iptables \-t mangle \-A balance \-m conntrack \-\-ctstate NEW \-m helper \-\-helper
948 ftp \-m rateest \-\-rateest\-delta \-\-rateest1 eth0 \-\-rateest\-bps1 2.5mbit
949 \-\-rateest\-gt \-\-rateest2 ppp0 \-\-rateest\-bps2 2mbit \-j CONNMARK \-\-set\-mark 1
950 .PP
951 iptables \-t mangle \-A balance \-m conntrack \-\-ctstate NEW \-m helper \-\-helper
952 ftp \-m rateest \-\-rateest\-delta \-\-rateest1 ppp0 \-\-rateest\-bps1 2mbit
953 \-\-rateest\-gt \-\-rateest2 eth0 \-\-rateest\-bps2 2.5mbit \-j CONNMARK \-\-set\-mark 2
954 .PP
955 iptables \-t mangle \-A balance \-j CONNMARK \-\-restore\-mark
956 .SS "realm (IPv4 の場合)"
957 This matches the routing realm.  Routing realms are used in complex routing
958 setups involving dynamic routing protocols like BGP.
959 .TP 
960 [\fB!\fP] \fB\-\-realm\fP \fIvalue\fP[\fB/\fP\fImask\fP]
961 Matches a given realm number (and optionally mask). If not a number, value
962 can be a named realm from /etc/iproute2/rt_realms (mask can not be used in
963 that case).
964 .SS recent
965 IP アドレスのリストを動的に作成し、このリストに対するマッチングをいくつかの方法で行う。
966 .PP
967 例えば、 あなたのファイアウォールの 139 番ポートに接続しようとした「悪ガキ」リストを作成し、
968 そのアドレスからのこれ以降のすべてのパケットを「廃棄」する。
969 .PP
970 \fB\-\-set\fP, \fB\-\-rcheck\fP, \fB\-\-update\fP, \fB\-\-remove\fP は同時に使用できない。
971 .TP 
972 \fB\-\-name\fP \fIname\fP
973 コマンドで使用するリストを指定する。名前が指定されなかった場合 \fBDEFAULT\fP が使用される。
974 .TP 
975 [\fB!\fP] \fB\-\-set\fP
976 リストにパケットの送信元アドレスを追加する。 その送信元アドレスがすでにリストにある場合は、既存のエントリーを更新する。 常に成功を返す (\fB!\fP
977 が指定されている場合は常に失敗を返す)。
978 .TP 
979 \fB\-\-rsource\fP
980 recent リストのテーブルの照合/保存で、各パケットの送信元アドレスを使う。 これがデフォルトである。
981 .TP 
982 \fB\-\-rdest\fP
983 recent リストのテーブルの照合/保存で、各パケットの宛先アドレスを使う。
984 .TP 
985 \fB\-\-mask\fP \fInetmask\fP
986 この recent リストに適用するネットマスク。
987 .TP 
988 [\fB!\fP] \fB\-\-rcheck\fP
989 このパケットの送信元アドレスが現在リストに含まれるかをチェックする。
990 .TP 
991 [\fB!\fP] \fB\-\-update\fP
992 \fB\-\-rcheck\fP と同じだが、 このオプションではマッチした場合に "last seen" タイムスタンプを更新する。
993 .TP 
994 [\fB!\fP] \fB\-\-remove\fP
995 パケットの送信元アドレスが現在リストに含まれているかをチェックし、 含まれている場合、そのアドレスをリストから削除し、ルールは true を返す。
996 アドレスが含まれない場合、false を返す。
997 .TP 
998 \fB\-\-seconds\fP \fIseconds\fP
999 このオプションは \fB\-\-rcheck\fP か \fB\-\-update\fP との組み合わせでのみ使用できる。 使用された場合、
1000 アドレスがリストに含まれ、かつそのアドレスが直近の指定された秒数以内に観測された場合にのみ、 マッチするようになる。
1001 .TP 
1002 \fB\-\-reap\fP
1003 このオプションは \fB\-\-seconds\fP との組み合わせでのみ使用できる。 使用された場合、 最後に指定された秒数より古いエントリーを破棄する。
1004 .TP 
1005 \fB\-\-hitcount\fP \fIhits\fP
1006 このオプションは \fB\-\-rcheck\fP か \fB\-\-update\fP との組み合わせて使用しなければならない。 使用された場合、
1007 アドレスがリストに含まれ、受信されたパケット数が指定した値以上の場合にのみマッチするようになる。 このオプションは \fB\-\-seconds\fP
1008 と共に使用することもでき、 その場合は指定された時間内のヒット数に対して照合を行う。 hitcount パラメータの最大値は xt_recent
1009 カーネルモードの "ip_pkt_list_tot" パラメータで規定される。
1010 このコマンドリストでこの値よりも大きな値を指定すると、そのルールは拒否される。
1011 .TP 
1012 \fB\-\-rttl\fP
1013 このオプションは \fB\-\-rcheck\fP か \fB\-\-update\fP との組み合わせでのみ使用できる。 使用された場合、
1014 アドレスがリストに含まれ、かつ現在のパケットの TTL が \fB\-\-set\fP ルールにヒットしたパケットの TTL
1015 にマッチする場合にのみマッチするようになる。 このオプションは、
1016 送信元アドレスを偽装する人が偽りのパケットを送信して、このモジュールを使ってあなたのサイトへの他のアクセスができないようにする DoS
1017 攻撃がある場合などに役に立つかもしれない。
1018 .PP
1019 例:
1020 .IP
1021 iptables \-A FORWARD \-m recent \-\-name badguy \-\-rcheck \-\-seconds 60 \-j DROP
1022 .IP
1023 iptables \-A FORWARD \-p tcp \-i eth0 \-\-dport 139 \-m recent \-\-name badguy \-\-set
1024 \-j DROP
1025 .PP
1026 \fB/proc/net/xt_recent/*\fP は現在のアドレスのリストと各リストの各エントリーの情報である。
1027 .PP
1028 \fB/proc/net/xt_recent/\fP の各ファイルは、読み出して現在のリストを確認することができる。 また、以下のコマンドを使って、
1029 これらのファイルに書き込んでリストを変更することができる。
1030 .TP 
1031 \fBecho +\fP\fIaddr\fP\fB >/proc/net/xt_recent/DEFAULT\fP
1032 DEFAULT リストに \fIaddr\fP を追加する
1033 .TP 
1034 \fBecho \-\fP\fIaddr\fP\fB >/proc/net/xt_recent/DEFAULT\fP
1035 DEFAULT リストから \fIaddr\fP を削除する
1036 .TP 
1037 \fBecho / >/proc/net/xt_recent/DEFAULT\fP
1038 DEFAULT リストをフラッシュ (全エントリーを削除) する
1039 .PP
1040 モジュール自体もパラメーターを取り、デフォルトは以下の通りである。
1041 .TP 
1042 \fBip_list_tot\fP=\fI100\fP
1043 テーブル単位の記録アドレス数。
1044 .TP 
1045 \fBip_pkt_list_tot\fP=\fI20\fP
1046 アドレス単位の記録パケット数。
1047 .TP 
1048 \fBip_list_hash_size\fP=\fI0\fP
1049 ハッシュテーブルサイズ。 0 は ip_list_tot に基づいて計算することを意味する。 デフォルトは 512。
1050 .TP 
1051 \fBip_list_perms\fP=\fI0644\fP
1052 /proc/net/xt_recent/* ファイルのアクセス許可モード。
1053 .TP 
1054 \fBip_list_uid\fP=\fI0\fP
1055 /proc/net/xt_recent/* ファイルの数値 ID での所有者。
1056 .TP 
1057 \fBip_list_gid\fP=\fI0\fP
1058 /proc/net/xt_recent/* ファイルの数値 ID でのグループ所有者。
1059 .SS rpfilter
1060 パケットに対して reverse path フィルターテストを行う。
1061 パケットに対する応答がパケットが到着したインターフェースと同じインターフェースから送信される場合、そのパケットにマッチする。 カーネル内の
1062 rp_filter と異なり、 IPsec で保護されたパケットが特別扱いされない点に注意すること。
1063 必要な場合は、このマッチをポリシーマッチと組み合わせて使うこと。 また、ループバックインターフェース経由で到着したパケットは常に許可される。
1064 このマッチは raw テーブルまたは mangle テーブルの PREROUTING チェインでのみ使用できる。
1065 .TP 
1066 \fB\-\-loose\fP
1067 選択された出力デバイスが期待されたものではない場合であっても、 reverse path フィルターテストのマッチを行うことを指示する。
1068 .TP 
1069 \fB\-\-validmark\fP
1070 reverse path の経路検索実行時にそのパケットの nfmark 値も使用する。
1071 .TP 
1072 \fB\-\-accept\-local\fP
1073 ローカルマシンにも割り当てられている送信元アドレスを持つネットワークから到着したパケットを許可する。
1074 .TP 
1075 \fB\-\-invert\fP
1076 マッチの意味を逆にする。 reverse path フィルターテストに合格したパケットにマッチするのではなく、テストに失敗したパケットにマッチする。
1077 .PP
1078 reverse path フィルターテストに失敗したパケットをロギングし破棄する例
1079
1080 iptables \-t raw \-N RPFILTER
1081
1082 iptables \-t raw \-A RPFILTER \-m rpfilter \-j RETURN
1083
1084 iptables \-t raw \-A RPFILTER \-m limit \-\-limit 10/minute \-j NFLOG
1085 \-\-nflog\-prefix "rpfilter drop"
1086
1087 iptables \-t raw \-A RPFILTER \-j DROP
1088
1089 iptables \-t raw \-A PREROUTING \-j RPFILTER
1090
1091 失敗したパケットをドロップするが、ロギングを行わない例
1092
1093 iptables \-t raw \-A RPFILTER \-m rpfilter \-\-invert \-j DROP
1094 .SS "rt (IPv6 のみ)"
1095 IPv6 ルーティングヘッダーに対してマッチする。
1096 .TP 
1097 [\fB!\fP] \fB\-\-rt\-type\fP \fItype\fP
1098 指定したタイプ (数値) にマッチする。
1099 .TP 
1100 [\fB!\fP] \fB\-\-rt\-segsleft\fP \fInum\fP[\fB:\fP\fInum\fP]
1101 `segments left' フィールド (範囲) にマッチする。
1102 .TP 
1103 [\fB!\fP] \fB\-\-rt\-len\fP \fIlength\fP
1104 このヘッダーの長さにマッチする。
1105 .TP 
1106 \fB\-\-rt\-0\-res\fP
1107 予約フィールド (type=0) にもマッチする。
1108 .TP 
1109 \fB\-\-rt\-0\-addrs\fP \fIaddr\fP[\fB,\fP\fIaddr\fP...]
1110 type=0 のアドレス (リスト) にマッチする。
1111 .TP 
1112 \fB\-\-rt\-0\-not\-strict\fP
1113 type=0 のアドレスのリストは厳密なリストではない。
1114 .SS sctp
1115 .TP 
1116 [\fB!\fP] \fB\-\-source\-port\fP,\fB\-\-sport\fP \fIport\fP[\fB:\fP\fIport\fP]
1117 .TP 
1118 [\fB!\fP] \fB\-\-destination\-port\fP,\fB\-\-dport\fP \fIport\fP[\fB:\fP\fIport\fP]
1119 .TP 
1120 [\fB!\fP] \fB\-\-chunk\-types\fP {\fBall\fP|\fBany\fP|\fBonly\fP} \fIchunktype\fP[\fB:\fP\fIflags\fP] [...]
1121 大文字のフラグ文字はそのフラグがセットされている場合にマッチし、 小文字のフラグ文字はセットされていない場合にマッチすることを指示する。
1122
1123 チャンク種別: DATA INIT INIT_ACK SACK HEARTBEAT HEARTBEAT_ACK ABORT SHUTDOWN
1124 SHUTDOWN_ACK ERROR COOKIE_ECHO COOKIE_ACK ECN_ECNE ECN_CWR SHUTDOWN_COMPLETE
1125 ASCONF ASCONF_ACK FORWARD_TSN
1126
1127 チャンク種別で利用可能なフラグ
1128 .br
1129 DATA I U B E i u b e
1130 .br
1131 ABORT T t
1132 .br
1133 SHUTDOWN_COMPLETE T t
1134
1135 (小文字はフラグを「オフ」にすることを、大文字は「オン」にすることを意味する)
1136 .P
1137 例:
1138
1139 iptables \-A INPUT \-p sctp \-\-dport 80 \-j DROP
1140
1141 iptables \-A INPUT \-p sctp \-\-chunk\-types any DATA,INIT \-j DROP
1142
1143 iptables \-A INPUT \-p sctp \-\-chunk\-types any DATA:Be \-j ACCEPT
1144 .SS set
1145 このモジュールは \fBipsec\fP(8) で定義できる IP 集合にマッチする。
1146 .TP 
1147 [\fB!\fP] \fB\-\-match\-set\fP \fIsetname\fP \fIflag\fP[\fB,\fP\fIflag\fP]...
1148 where flags are the comma separated list of \fBsrc\fP and/or \fBdst\fP
1149 specifications and there can be no more than six of them. Hence the command
1150 .IP
1151  iptables \-A FORWARD \-m set \-\-match\-set test src,dst
1152 .IP
1153 will match packets, for which (if the set type is ipportmap) the source
1154 address and destination port pair can be found in the specified set. If the
1155 set type of the specified set is single dimension (for example ipmap), then
1156 the command will match packets for which the source address can be found in
1157 the specified set.
1158 .TP 
1159 \fB\-\-return\-nomatch\fP
1160 If the \fB\-\-return\-nomatch\fP option is specified and the set type supports the
1161 \fBnomatch\fP flag, then the matching is reversed: a match with an element
1162 flagged with \fBnomatch\fP returns \fBtrue\fP, while a match with a plain element
1163 returns \fBfalse\fP.
1164 .TP 
1165 \fB!\fP \fB\-\-update\-counters\fP
1166 If the \fB\-\-update\-counters\fP flag is negated, then the packet and byte
1167 counters of the matching element in the set won't be updated. Default the
1168 packet and byte counters are updated.
1169 .TP 
1170 \fB!\fP \fB\-\-update\-subcounters\fP
1171 If the \fB\-\-update\-subcounters\fP flag is negated, then the packet and byte
1172 counters of the matching element in the member set of a list type of set
1173 won't be updated. Default the packet and byte counters are updated.
1174 .TP 
1175 [\fB!\fP] \fB\-\-packets\-eq\fP \fIvalue\fP
1176 If the packet is matched an element in the set, match only if the packet
1177 counter of the element matches the given value too.
1178 .TP 
1179 \fB\-\-packets\-lt\fP \fIvalue\fP
1180 If the packet is matched an element in the set, match only if the packet
1181 counter of the element is less than the given value as well.
1182 .TP 
1183 \fB\-\-packets\-gt\fP \fIvalue\fP
1184 If the packet is matched an element in the set, match only if the packet
1185 counter of the element is greater than the given value as well.
1186 .TP 
1187 [\fB!\fP] \fB\-bytes\-eq\fP \fIvalue\fP
1188 If the packet is matched an element in the set, match only if the byte
1189 counter of the element matches the given value too.
1190 .TP 
1191 \fB\-\-bytes\-lt\fP \fIvalue\fP
1192 If the packet is matched an element in the set, match only if the byte
1193 counter of the element is less than the given value as well.
1194 .TP 
1195 \fB\-\-bytes\-gt\fP \fIvalue\fP
1196 If the packet is matched an element in the set, match only if the byte
1197 counter of the element is greater than the given value as well.
1198 .PP
1199 The packet and byte counters related options and flags are ignored when the
1200 set was defined without counter support.
1201 .PP
1202 The option \fB\-\-match\-set\fP can be replaced by \fB\-\-set\fP if that does not clash
1203 with an option of other extensions.
1204 .PP
1205 Use of \-m set requires that ipset kernel support is provided, which, for
1206 standard kernels, is the case since Linux 2.6.39.
1207 .SS socket
1208 This matches if an open TCP/UDP socket can be found by doing a socket lookup
1209 on the packet. It matches if there is an established or non\-zero bound
1210 listening socket (possibly with a non\-local address). The lookup is
1211 performed using the \fBpacket\fP tuple of TCP/UDP packets, or the original
1212 TCP/UDP header \fBembedded\fP in an ICMP/ICPMv6 error packet.
1213 .TP 
1214 \fB\-\-transparent\fP
1215 非透過 (non\-transparent) ソケットを無視する。
1216 .TP 
1217 \fB\-\-nowildcard\fP
1218 Do not ignore sockets bound to 'any' address.  The socket match won't accept
1219 zero\-bound listeners by default, since then local services could intercept
1220 traffic that would otherwise be forwarded.  This option therefore has
1221 security implications when used to match traffic being forwarded to redirect
1222 such packets to local machine with policy routing.  When using the socket
1223 match to implement fully transparent proxies bound to non\-local addresses it
1224 is recommended to use the \-\-transparent option instead.
1225 .PP
1226 Example (assuming packets with mark 1 are delivered locally):
1227 .IP
1228 \-t mangle \-A PREROUTING \-m socket \-\-transparent \-j MARK \-\-set\-mark 1
1229 .SS state
1230 "state" 拡張は "conntrack" モジュールのサブセットである。 "state" を使うと、
1231 パケットについてのコネクション追跡状態を参照できる。
1232 .TP 
1233 [\fB!\fP] \fB\-\-state\fP \fIstate\fP
1234 state はマッチするコネクション状態のカンマ区切りのリストである。 "conntrack" が理解できる状態の一部だけが指定できる。 指定できるのは
1235 \fBINVALID\fP, \fBESTABLISHED\fP, \fBNEW\fP, \fBRELATED\fP, \fBUNTRACKED\fP である。
1236 これらの説明はこのマニュアルページの "conntrack" の説明を参照のこと。
1237 .SS statistic
1238 このモジュールは統計的な条件に基づいたパケットのマッチングを行う。 二つのモードがサポートされており、 \fB\-\-mode\fP オプションで設定できる。
1239 .PP
1240 サポートされているオプション:
1241 .TP 
1242 \fB\-\-mode\fP \fImode\fP
1243 マッチングルールのマッチングモードを設定する。 サポートされているモードは \fBrandom\fP と \fBnth\fP である。
1244 .TP 
1245 [\fB!\fP] \fB\-\-probability\fP \fIp\fP
1246 ランダムにパケットがマッチする確率を設定する。 \fBrandom\fP モードでのみ機能する。 \fIp\fP は 0.0 と 1.0 の範囲でなければならない。
1247 サポートされている粒度は 1/2147483648 である。
1248 .TP 
1249 [\fB!\fP] \fB\-\-every\fP \fIn\fP
1250 n パケットに 1 つマッチする。 \fBnth\fP モードでのみ機能する (\fB\-\-packet\fP オプションも参照)。
1251 .TP 
1252 \fB\-\-packet\fP \fIp\fP
1253 \fBnth\fP モードでカウンターの初期値を設定する (0 <= p <= n\-1, デフォルトは 0)。
1254 .SS string
1255 このモジュールは、いくつかのパターンマッチ手法を用いて指定された文字列とのマッチを行う。 Linux カーネル 2.6.14 以上が必要である。
1256 .TP 
1257 \fB\-\-algo\fP {\fBbm\fP|\fBkmp\fP}
1258 パターンマッチング手法を選択する (bm = Boyer\-Moore, kmp = Knuth\-Pratt\-Morris)
1259 .TP 
1260 \fB\-\-from\fP \fIoffset\fP
1261 マッチングの検索を開始するオフセットを設定する。 指定されなかった場合のデフォルトは 0 である。
1262 .TP 
1263 \fB\-\-to\fP \fIoffset\fP
1264 検索を終了するオフセットを設定する。 バイト \fIoffset\fP\-1 (バイト番号は 0 から開始) が検索範囲の最終バイトとなる。
1265 指定されなかった場合、デフォルトはパケットサイズである。
1266 .TP 
1267 [\fB!\fP] \fB\-\-string\fP \fIpattern\fP
1268 指定されたパターンにマッチする。
1269 .TP 
1270 [\fB!\fP] \fB\-\-hex\-string\fP \fIpattern\fP
1271 指定された 16 進表記のパターンにマッチする。
1272 .TP 
1273 例:
1274 .IP
1275 # 文字列パターンは単純なテキスト文字を探すのに使用できる。
1276 .br
1277 iptables \-A INPUT \-p tcp \-\-dport 80 \-m string \-\-algo bm \-\-string 'GET
1278 /index.html' \-j LOG
1279 .IP
1280 16 進数文字列のパターンは表示可能文字以外を検索するのに使用できる。 |0D 0A| や |0D0A| など。
1281 .br
1282 iptables \-p udp \-\-dport 53 \-m string \-\-algo bm \-\-from 40 \-\-to 57
1283 \-\-hex\-string '|03|www|09|netfilter|03|org|00|'
1284 .SS tcp
1285 これらの拡張は `\-\-protocol tcp' が指定され場合に使用できる。 以下のオプションが提供される:
1286 .TP 
1287 [\fB!\fP] \fB\-\-source\-port\fP,\fB\-\-sport\fP \fIport\fP[\fB:\fP\fIport\fP]
1288 送信元ポートまたはポート範囲の指定。 サービス名またはポート番号を指定できる。 \fIfirst\fP\fB:\fP\fIlast\fP という形式で、 2
1289 つの番号を含む範囲を指定することもできる。 最初のポートを省略した場合、 "0" を仮定する。 最後のポートを省略した場合、 "65535"
1290 を仮定する。 最初のポートが最後のポートより大きい場合、 2 つは入れ換えられる。 フラグ \fB\-\-sport\fP は、
1291 このオプションの便利な別名である。
1292 .TP 
1293 [\fB!\fP] \fB\-\-destination\-port\fP,\fB\-\-dport\fP \fIport\fP[\fB:\fP\fIport\fP]
1294 宛先ポートまたはポート範囲の指定。 フラグ \fB\-\-dport\fP は、 このオプションの便利な別名である。
1295 .TP 
1296 [\fB!\fP] \fB\-\-tcp\-flags\fP \fImask\fP \fIcomp\fP
1297 TCP フラグが指定されたものと等しい場合にマッチする。 第 1 引き数 \fImask\fP は評価対象とするフラグで、 コンマ区切りのリストである。 第
1298 2 引き数 \fIcomp\fP は必ず設定しなければならないフラグで、 コンマ区切りのリストである。 指定できるフラグは \fBSYN ACK FIN RST
1299 URG PSH ALL NONE\fP である。 よって、 コマンド
1300 .nf
1301  iptables \-A FORWARD \-p tcp \-\-tcp\-flags SYN,ACK,FIN,RST SYN
1302 .fi
1303 は、 SYN フラグが設定され ACK, FIN, RST フラグが設定されていない パケットにのみマッチする。
1304 .TP 
1305 [\fB!\fP] \fB\-\-syn\fP
1306 SYN ビットが設定され ACK, RST, FIN ビットがクリアされている TCP パケットにのみマッチする。 このようなパケットは TCP
1307 コネクションの開始要求に使われる。 例えば、 あるインターフェースに入ってくるこのようなパケットをブロックすれば、 内側への TCP
1308 コネクションは禁止されるが、 外側への TCP コネクションには影響しない。 これは \fB\-\-tcp\-flags SYN,RST,ACK,FIN
1309 SYN\fP と等しい。 "\-\-syn" の前に "!" フラグ
1310 を置くと、 SYN ビットがクリアされ ACK と RST ビットが設定されている
1311 TCP パケットにのみマッチする。
1312 .TP 
1313 [\fB!\fP] \fB\-\-tcp\-option\fP \fInumber\fP
1314 TCP オプションが設定されている場合にマッチする。
1315 .SS tcpmss
1316 TCP ヘッダーの TCP MSS (maximum segment size) フィールドにマッチする。 TCP の SYN パケットか
1317 SYN/ACK パケットに対してのみ利用できる。 MSS のネゴシエーションはコネクション開始時の TCP ハンドシェイク中だけだからである。
1318 .TP 
1319 [\fB!\fP] \fB\-\-mss\fP \fIvalue\fP[\fB:\fP\fIvalue\fP]
1320 指定された TCP MSS 値か範囲にマッチする。
1321 .SS time
1322 このモジュールはパケットの到着時刻/日付が指定された範囲内の場合にマッチする。 すべてのオプションが任意オプションで、 複数指定した場合は AND
1323 と解釈される。 デフォルトではすべての時刻は UTC と解釈される。
1324 .TP 
1325 \fB\-\-datestart\fP \fIYYYY\fP[\fB\-\fP\fIMM\fP[\fB\-\fP\fIDD\fP[\fBT\fP\fIhh\fP[\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]]]]]
1326 .TP 
1327 \fB\-\-datestop\fP \fIYYYY\fP[\fB\-\fP\fIMM\fP[\fB\-\fP\fIDD\fP[\fBT\fP\fIhh\fP[\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]]]]]
1328 指定された時刻 (日付も含む) の範囲にある場合にマッチする。 時刻は ISO 8601 "T" 表記でなければならない。 指定可能な範囲は
1329 1970\-01\-01T00:00:00 から 2038\-01\-19T04:17:07 である。
1330 .IP
1331 \-\-datestart と \-\-datestop は、指定されなかった場合、それぞれ 1970\-01\-01 と 2038\-01\-19 とみなされます。
1332 .TP 
1333 \fB\-\-timestart\fP \fIhh\fP\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]
1334 .TP 
1335 \fB\-\-timestop\fP \fIhh\fP\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]
1336 指定された時刻 (日付は含まない) の範囲にある場合にマッチする。 指定可能な範囲は 00:00:00 から 23:59:59 である。
1337 ("06:03" のように) 先頭に 0 を付けてもよい。 この場合も 10 進数として正しく解釈される。
1338 .TP 
1339 [\fB!\fP] \fB\-\-monthdays\fP \fIday\fP[\fB,\fP\fIday\fP...]
1340 指定された月の日付にマッチする。 指定可能な値は \fB1\fP から \fB31\fP である。 もちろん \fB31\fP を指定した場合 31
1341 日がない月ではマッチしない。 同じことが 2 月 29 日についても言える。
1342 .TP 
1343 [\fB!\fP] \fB\-\-weekdays\fP \fIday\fP[\fB,\fP\fIday\fP...]
1344 指定した曜日にマッチする。 指定可能な値は \fBMon\fP, \fBTue\fP, \fBWed\fP, \fBThu\fP, \fBFri\fP, \fBSat\fP, \fBSun\fP
1345 および \fB1\fP から \fB7\fP の値である。 また、2 文字の曜日指定 (\fBMo\fP, \fBTu\fP など) も使用できる。
1346 .TP 
1347 \fB\-\-contiguous\fP
1348 \fB\-\-timestop\fP が \fB\-\-timestart\fP よりも小さい場合、複数の期間ではなく、一つの時間帯としてマッチするようにする。 例を参照。
1349 .TP 
1350 \fB\-\-kerneltz\fP
1351 パケットが時刻指定にマッチするかを判定する際に UTC ではなくカーネルタイムゾーンを使用する。
1352 .PP
1353 About kernel timezones: Linux keeps the system time in UTC, and always does
1354 so.  On boot, system time is initialized from a referential time
1355 source. Where this time source has no timezone information, such as the x86
1356 CMOS RTC, UTC will be assumed. If the time source is however not in UTC,
1357 userspace should provide the correct system time and timezone to the kernel
1358 once it has the information.
1359 .PP
1360 Local time is a feature on top of the (timezone independent) system
1361 time. Each process has its own idea of local time, specified via the TZ
1362 environment variable. The kernel also has its own timezone offset
1363 variable. The TZ userspace environment variable specifies how the UTC\-based
1364 system time is displayed, e.g. when you run date(1), or what you see on your
1365 desktop clock.  The TZ string may resolve to different offsets at different
1366 dates, which is what enables the automatic time\-jumping in userspace. when
1367 DST changes. The kernel's timezone offset variable is used when it has to
1368 convert between non\-UTC sources, such as FAT filesystems, to UTC (since the
1369 latter is what the rest of the system uses).
1370 .PP
1371 The caveat with the kernel timezone is that Linux distributions may ignore
1372 to set the kernel timezone, and instead only set the system time. Even if a
1373 particular distribution does set the timezone at boot, it is usually does
1374 not keep the kernel timezone offset \- which is what changes on DST \- up to
1375 date.  ntpd will not touch the kernel timezone, so running it will not
1376 resolve the issue. As such, one may encounter a timezone that is always
1377 +0000, or one that is wrong half of the time of the year. As such, \fBusing
1378 \-\-kerneltz is highly discouraged.\fP
1379 .PP
1380 例をいくつか。 週末にマッチさせる場合:
1381 .IP
1382 \-m time \-\-weekdays Sa,Su
1383 .PP
1384 国の祝日に (一度だけ) マッチさせる場合:
1385 .IP
1386 \-m time \-\-datestart 2007\-12\-24 \-\-datestop 2007\-12\-27
1387 .PP
1388 終了時刻も実際には含まれるので、新年の最初の 1 秒にマッチしないように終了時刻を以下のように指定する必要がある:
1389 .IP
1390 \-m time \-\-datestart 2007\-01\-01T17:00 \-\-datestop 2007\-01\-01T23:59:59
1391 .PP
1392 昼御飯の時間帯:
1393 .IP
1394 \-m time \-\-timestart 12:30 \-\-timestop 13:30
1395 .PP
1396 第 4 金曜日:
1397 .IP
1398 \-m time \-\-weekdays Fr \-\-monthdays 22,23,24,25,26,27,28
1399 .PP
1400 (これは数学的な性質を利用している点に留意すること。 一つのルールで「第 4 木曜日 または 第 4 金曜日」と指定することはできない。
1401 複数ルールで指定することはできるが。)
1402 .PP
1403 日をまたぐマッチングは期待するようには動かないだろう。例えば、
1404 .IP
1405 \-m time \-\-weekdays Mo \-\-timestart 23:00 \-\-timestop 01:00 は、月曜日の 0 時から午前 1 時の
1406 1 時間にマッチし、 その後さらに 23 時からの 1 時間にもマッチする。 これが希望通りでない場合、例えば、月曜日 23 時から 2
1407 時間にマッチさせたい場合は、 上記に追加で \-\-contiguous オプションも指定する必要がある。
1408 .SS tos
1409 このモジュールは IPv4 ヘッダーの 8 ビットの Type of Service フィールド (すなわち上位ビットを含まれる) もしくは IPv6
1410 ヘッダーの (8 ビットの) Priority フィールドにマッチする。
1411 .TP 
1412 [\fB!\fP] \fB\-\-tos\fP \fIvalue\fP[\fB/\fP\fImask\fP]
1413 指定された TOS マーク値を持つパケットにマッチする。 mask が指定されると、 比較の前に TOS マーク値との論理積 (AND) がとられる)。
1414 .TP 
1415 [\fB!\fP] \fB\-\-tos\fP \fIsymbol\fP
1416 IPv4 の tos フィールドに対するマッチを指定する際にシンボル名を使うことができる。 iptables を \fB\-m tos \-h\fP
1417 で呼び出すと、利用可能な TOS 名の一覧を得ることができる。
1418 シンボル名を使った場合、 mask として 0x3F が使用される (0x3F は ECN ビット以外の全ビットである)。
1419 .SS "ttl (IPv4 の場合)"
1420 このモジュールは IP ヘッダーの time to live フィールドにマッチする。
1421 .TP 
1422 [\fB!\fP] \fB\-\-ttl\-eq\fP \fIttl\fP
1423 指定された TTL 値にマッチする。
1424 .TP 
1425 \fB\-\-ttl\-gt\fP \fIttl\fP
1426 TTL が指定された TTL 値より大きければマッチする。
1427 .TP 
1428 \fB\-\-ttl\-lt\fP \fIttl\fP
1429 TTL が指定された TTL 値より小さければマッチする。
1430 .SS u32
1431 U32 は、パケットから最大 4 バイトの数値を取り出して、指定した値を持つかの検査を行う。 どこを取り出すかの指定は汎用的になっており、TCP
1432 ヘッダーやペイロードから指定したオフセットのデータを取り出すことができる。
1433 .TP 
1434 [\fB!\fP] \fB\-\-u32\fP \fItests\fP
1435 引き数は、以下で説明する小さな言語のプログラムになる。
1436 .IP
1437 tests := location "=" value | tests "&&" location "=" value
1438 .IP
1439 value := range | value "," range
1440 .IP
1441 range := number | number ":" number
1442 .PP
1443 数字 1 個 \fIn\fP は \fIn:n\fP と同じものと解釈される。 \fIn:m\fP は \fB>=n\fP かつ \fB<=m\fP
1444 の範囲の数字と解釈される。
1445 .IP "" 4
1446 location := number | location operator number
1447 .IP "" 4
1448 operator := "&" | "<<" | ">>" | "@"
1449 .PP
1450 オペレーター \fB&\fP, \fB<<\fP, \fB>>\fP, \fB&&\fP は C と同じ意味である。 \fB=\fP
1451 は集合の所属を検査するオペレーターで、値は集合として記述する。 \fB@\fP オペレーターは、次のヘッダーへの移動に使うオペレーターで、後で詳しく説明する。
1452 .PP
1453 現在のところ、テストの大きさにはいくつか実装から来る制約がある。
1454 .IP "    *"
1455 u32 引き数あたりの "\fB=\fP" は最大 10 個まで ("\fB&&\fP" は 9 個まで)
1456 .IP "    *"
1457 value あたりの range は 10 個まで (カンマは 9 個まで)
1458 .IP "    *"
1459 一つの location あたりの number は最大 10 個まで (operator は 9 個まで)
1460 .PP
1461 location の意味を説明するために、 location を解釈する以下のようなマシンを考えてみる。 3 つのレジスターがある。
1462 .IP
1463 A は \fBchar *\fP 型で、最初は IP ヘッダーのアドレスが入っている。
1464 .IP
1465 B と C は 32 ビット整数で、最初は 0 である。
1466 .PP
1467 命令は以下の通り。
1468 .IP
1469 number B = number;
1470 .IP
1471 C = (*(A+B)<<24) + (*(A+B+1)<<16) + (*(A+B+2)<<8) +
1472 *(A+B+3)
1473 .IP
1474 &number C = C & number
1475 .IP
1476 << number C = C << number
1477 .IP
1478 >> number C = C >> number
1479 .IP
1480 @number A = A + C; この後、命令の数字を実行する
1481 .PP
1482 [skb\->data,skb\->end] 以外へのメモリアクセスはすべてマッチ失敗となる。 それ以外の場合、計算の結果が C
1483 の最終的な値となる。
1484 .PP
1485 ホワイトスペースを入れることはできるが、テストでは必須ではない。 しただし、テストに含まれる文字はシェルでのクォートが必要な場合もよくあるので、
1486 引き数全体をクォートで囲んでおくとよいだろう。
1487 .PP
1488 例:
1489 .IP
1490 トータル長が 256 以上の IP パケットにマッチする
1491 .IP
1492 IP ヘッダーではバイト 2\-3 にトータル長フィールドがある。
1493 .IP
1494 \-\-u32 "\fB0 & 0xFFFF = 0x100:0xFFFF\fP"
1495 .IP
1496 バイト 0\-3 を読み出し、
1497 .IP
1498 0xFFFF (バイト 2\-3 に対応) の論理積 (AND) を取り、 その値が範囲 [0x100:0xFFFF] にあるか検査する。
1499 .PP
1500 例: (もっと実用的な、したがってもっと複雑な例)
1501 .IP
1502 ICMP タイプが 0 の ICMP パケットにマッチする
1503 .IP
1504 まず ICMP パケットかどうか検査する。 バイト 9 (プロトコル) = 1 であれば真。
1505 .IP
1506 \-\-u32 "\fB6 & 0xFF = 1 &&\fP ...
1507 .IP
1508 バイト 6\-9 を読み出し、 \fB&\fP を使ってバイト 6\-8 を取り除き、 得られた値を 1 と比較する。 次に、フラグメントではないことを検査する
1509 (フラグメントの場合、パケットは ICMP パケットの一部かもしれないが、 常にそうだとは言えない)。 \fB注意\fP: 一般的に IP
1510 ヘッダーより先にあるものとマッチを行う場合にはこの検査は必要である。 このパケットが (フラグメントではない) 完全なパケットであれば、バイト 6
1511 の最後の 6 ビットとバイト 7 の全ビットが 0 である。 代わりに、 バイト 6 の最後の 5
1512 ビットを検査するだけで最初のフラグメントを許可することができる。
1513 .IP
1514 \&... \fB4 & 0x3FFF = 0 &&\fP ...
1515 .IP
1516 最後の検査として、 IP ヘッダー直後のバイト (ICMP タイプ) が 0 かを確認する。 ここで @ 記法を使う必要がある。 IP ヘッダーの長さ
1517 (IHL) は IP ヘッダー自身のバイト 0 の右半分に 32 ビットワードで格納されている。
1518 .IP
1519 \&... \fB0 >> 22 & 0x3C @ 0 >> 24 = 0\fP"
1520 .IP
1521 最初の 0 はバイト 0\-3 を読み出し、 \fB>>22\fP はその値を 22 ビット右にシフトすることを意味する。 24
1522 ビットシフトすると最初のバイトが得られるので、 22 ビットだけシフトすると (少し余計なビットが付いているが) その 4 倍の値が得られる。
1523 \fB&3C\fP で右側の余計な 2 ビットと最初のバイトの先頭 4 ビットを取り除く。 例えば、 IHL が 5 の場合 IP ヘッダーは 20 バイト
1524 (4 x 5) である。 この場合、バイト 0\-1 は (バイナリで) xxxx0101 yyzzzzzz であり、 \fB>>22\fP
1525 により 10 ビットの値 xxxx0101yy が得られ、 \fB&3C\fP で 010100 が得られる。 \fB@\fP
1526 は、この数字をパケットの新しいオフセットとして使用し、 この地点から始まる 4 バイトを読み出すことを意味する。 この 4 バイトは ICMP
1527 ペイロードの最初の 4 バイトであり、 バイト 0 が ICMP タイプである。 したがって、この値を 24
1528 ビット右にシフトして、最初のバイト以外をすべて取り除き、 その結果を 0 と比較するだけでよい。
1529 .PP
1530 例:
1531 .IP
1532 TCP ペイロードのバイト 8\-12 が 1, 2, 5, 8 のいずれかかを検査する
1533 .IP
1534 まず、パケットが TCP パケットであるかを検査する (ICMP と同様)。
1535 .IP
1536 \-\-u32 "\fB6 & 0xFF = 6 &&\fP ...
1537 .IP
1538 次に、フラグメントでないことを検査する (上記と同じ)。
1539 .IP
1540 \&... \fB0 >> 22 & 0x3C @ 12 >> 26 & 0x3C @ 8 = 1,2,5,8\fP"
1541 .IP
1542 上で説明した通り \fB0>>22&3C\fP で IP ヘッダーのバイト数を計算する。 \fB@\fP
1543 でこの値をパケットの新しいオフセットとし、これは TCP ヘッダーの先頭である。 TCP ヘッダー長 (これも 32 ビットワード) は TCP
1544 ヘッダーのバイト 12 の左半分にある。 \fB12>>26&3C\fP で TCP ヘッダーのバイト数を計算する (IP
1545 ヘッダーの場合と同様)。 "@" を使ってこれを新しいオフセットに設定する。この時点で TCP ペイロードの先頭を指している。 最後に、8
1546 でペイロードのバイト 8\-12 を読み出し、 \fB=\fP を使って取り出した値が 1, 2, 5, 8 のいずれかであるかチェックする。
1547 .SS udp
1548 これらの拡張は `\-\-protocol udp' が指定された場合に利用できる。 以下のオプションが提供される。
1549 .TP 
1550 [\fB!\fP] \fB\-\-source\-port\fP,\fB\-\-sport\fP \fIport\fP[\fB:\fP\fIport\fP]
1551 送信元ポートまたはポート範囲の指定。 詳細は TCP 拡張の \fB\-\-source\-port\fP オプションの説明を参照すること。
1552 .TP 
1553 [\fB!\fP] \fB\-\-destination\-port\fP,\fB\-\-dport\fP \fIport\fP[\fB:\fP\fIport\fP]
1554 宛先ポートまたはポート範囲の指定。 詳細は TCP 拡張の \fB\-\-destination\-port\fP オプションの説明を参照すること。
1555 .SS "unclean (IPv4 の場合)"
1556 このモジュールにはオプションがないが、 おかしく正常でないように見えるパケットにマッチする。 これは実験的なものとして扱われている。
1557 .SH ターゲットの拡張
1558 .\" @TARGET@
1559 iptables は拡張ターゲットモジュールを使うことができる: 以下のものが、 標準的なディストリビューションに含まれている。
1560 .SS AUDIT
1561 このターゲットを使うと、このターゲットにヒットしたパケットに対する監査 (audit) レコードを作成することができる。
1562 許可/廃棄/拒否されたパケットを記録するのに使用できる。 詳細については auditd(8) を参照。
1563 .TP 
1564 \fB\-\-type\fP {\fBaccept\fP|\fBdrop\fP|\fBreject\fP}
1565 監査レコード種別を設定する。
1566 .PP
1567 例:
1568 .IP
1569 iptables \-N AUDIT_DROP
1570 .IP
1571 iptables \-A AUDIT_DROP \-j AUDIT \-\-type drop
1572 .IP
1573 iptables \-A AUDIT_DROP \-j DROP
1574 .SS CHECKSUM
1575 このターゲットは、 おかしいアプリケーションや古いアプリケーションに対する選択的な対処を可能にする。 mangle テーブルでのみ使用できる。
1576 .TP 
1577 \fB\-\-checksum\-fill\fP
1578 Compute and fill in the checksum in a packet that lacks a checksum.  This is
1579 particularly useful, if you need to work around old applications such as
1580 dhcp clients, that do not work well with checksum offloads, but don't want
1581 to disable checksum offload in your device.
1582 .SS CLASSIFY
1583 このモジュールを使うと skb\->priority の値を設定できる (その結果、そのパケットを特定の CBQ クラスに分類できる)。
1584 .TP 
1585 \fB\-\-set\-class\fP \fImajor\fP\fB:\fP\fIminor\fP
1586 メジャークラスとマイナークラスの値を設定する。値は常に 16 進数として解釈される。  0x が前に付いていない場合であっても 16 進数と解釈される。
1587 .SS "CLUSTERIP (IPv4 の場合)"
1588 このモジュールを使うと、 ノードの前段に明示的に負荷分散装置を置かずに、 特定の IP アドレスと MAC
1589 アドレスを共有するノードの簡単なクラスターを構成することができる。 コネクションは、このクラスターのノード間で静的に分散される。
1590 .TP 
1591 \fB\-\-new\fP
1592 新しい ClusterIP を作成する。 このオプションは、ここで指定する ClusterIP を使うルールの中で一番最初に設定しなければならない。
1593 .TP 
1594 \fB\-\-hashmode\fP \fImode\fP
1595 ハッシュモードを指定する。 \fBsourceip\fP, \fBsourceip\-sourceport\fP,
1596 \fBsourceip\-sourceport\-destport\fP のいずれかでなければならない。
1597 .TP 
1598 \fB\-\-clustermac\fP \fImac\fP
1599 ClusterIP の MAC アドレスを指定する。 リンク層のマルチキャストアドレスでなければならない。
1600 .TP 
1601 \fB\-\-total\-nodes\fP \fInum\fP
1602 このクラスターの総ノード数。
1603 .TP 
1604 \fB\-\-local\-node\fP \fInum\fP
1605 このクラスターのローカルノード番号。
1606 .TP 
1607 \fB\-\-hash\-init\fP \fIrnd\fP
1608 ハッシュの初期化に使用される乱数シード値を指定する。
1609 .SS CONNMARK
1610 このモジュールは、 コネクションに関連付けられた netfilter の mark 値を設定する。 mark は 32 ビット幅である。
1611 .TP 
1612 \fB\-\-set\-xmark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
1613 \fImask\fP で指定されたビットを 0 にし、 \fIvalue\fP と ctmark の XOR を取る。
1614 .TP 
1615 \fB\-\-save\-mark\fP [\fB\-\-nfmask\fP \fInfmask\fP] [\fB\-\-ctmask\fP \fIctmask\fP]
1616 指定されたマスクを使って、 パケットマーク (nfmark) をコネクションマーク (ctmark) にコピーする。 新しい ctmark
1617 値は以下のように決定される。
1618 .IP
1619 ctmark = (ctmark & ~ctmask) ^ (nfmark & nfmask)
1620 .IP
1621 \fIctmask\fP はどのビットをクリアするかを規定し、 \fInfmask\fP は nfmark のどのビットを ctmark と XOR
1622 するかを規定する。 \fIctmask\fP と \fInfmask\fP のデフォルト値は 0xFFFFFFFF である。
1623 .TP 
1624 \fB\-\-restore\-mark\fP [\fB\-\-nfmask\fP \fInfmask\fP] [\fB\-\-ctmask\fP \fIctmask\fP]
1625 指定されたマスクを使って、 コネクションマーク (ctmark) をパケットマーク (nfmark) にコピーする。 新しい nfmark
1626 値は以下のように決定される。
1627 .IP
1628 nfmark = (nfmark & ~\fInfmask\fP) ^ (ctmark & \fIctmask\fP);
1629 .IP
1630 \fInfmask\fP はどのビットをクリアするかを規定し、 \fIctmask\fP は ctmark のどのビットを nfmark と XOR
1631 するかを規定する。 \fIctmask\fP と \fInfmask\fP のデフォルト値は 0xFFFFFFFF である。
1632 .IP
1633 \fB\-\-restore\-mark\fP は \fBmangle\fP テーブルでのみ有効である。
1634 .PP
1635 以下の簡易表現が \fB\-\-set\-xmark\fP の代わりに利用できる。
1636 .TP 
1637 \fB\-\-and\-mark\fP \fIbits\fP
1638 ctmark と \fIbits\fP のビット論理積 (AND) を取る (\fB\-\-set\-xmark 0/\fP\fIinvbits\fP の簡易表現、
1639 \fIinvbits\fP は \fIbits\fP のビット単位の否定である)。
1640 .TP 
1641 \fB\-\-or\-mark\fP \fIbits\fP
1642 ctmark と \fIbits\fP のビット論理和 (OR) を取る (\fB\-\-set\-xmark\fP \fIbits\fP\fB/\fP\fIbits\fP の簡易表現)。
1643 .TP 
1644 \fB\-\-xor\-mark\fP \fIbits\fP
1645 ctmark と \fIbits\fP のビット XOR を取る (\fB\-\-set\-xmark\fP \fIbits\fP\fB/0\fP の簡易表現)。
1646 .TP 
1647 \fB\-\-set\-mark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
1648 コネクションマークを設定する。 mask が指定された場合、 mask で指定されたビットだけが変更される。
1649 .TP 
1650 \fB\-\-save\-mark\fP [\fB\-\-mask\fP \fImask\fP]
1651 nfmark を ctmark へコピーする。 mask が指定された場合、そのビットだけがコピーされる。
1652 .TP 
1653 \fB\-\-restore\-mark\fP [\fB\-\-mask\fP \fImask\fP]
1654 ctmark を nfmark にコピーする。 mask が指定されると、 指定されたビットだけがコピーされる。 \fBmangle\fP
1655 テーブルのみで有効である。
1656 .SS CONNSECMARK
1657 This module copies security markings from packets to connections (if
1658 unlabeled), and from connections back to packets (also only if unlabeled).
1659 Typically used in conjunction with SECMARK, it is valid in the \fBsecurity\fP
1660 table (for backwards compatibility with older kernels, it is also valid in
1661 the \fBmangle\fP table).
1662 .TP 
1663 \fB\-\-save\fP
1664 If the packet has a security marking, copy it to the connection if the
1665 connection is not marked.
1666 .TP 
1667 \fB\-\-restore\fP
1668 If the packet does not have a security marking, and the connection does,
1669 copy the security marking from the connection to the packet.
1670
1671 .SS CT
1672 The CT target allows to set parameters for a packet or its associated
1673 connection. The target attaches a "template" connection tracking entry to
1674 the packet, which is then used by the conntrack core when initializing a new
1675 ct entry. This target is thus only valid in the "raw" table.
1676 .TP 
1677 \fB\-\-notrack\fP
1678 このパケットに対するコネクション追跡を無効にする。
1679 .TP 
1680 \fB\-\-helper\fP \fIname\fP
1681 \fIname\fP で指定されるヘルパーをこのコネクションで使用する。 この方法は、あらかじめ設定したポートに対して conntrack
1682 ヘルパーモジュールをロードするよりも柔軟性がある。
1683 .TP 
1684 \fB\-\-ctevents\fP \fIevent\fP[\fB,\fP...]
1685 Only generate the specified conntrack events for this connection. Possible
1686 event types are: \fBnew\fP, \fBrelated\fP, \fBdestroy\fP, \fBreply\fP, \fBassured\fP,
1687 \fBprotoinfo\fP, \fBhelper\fP, \fBmark\fP (this refers to the ctmark, not nfmark),
1688 \fBnatseqinfo\fP, \fBsecmark\fP (ctsecmark).
1689 .TP 
1690 \fB\-\-expevents\fP \fIevent\fP[\fB,\fP...]
1691 Only generate the specified expectation events for this connection.
1692 Possible event types are: \fBnew\fP.
1693 .TP 
1694 \fB\-\-zone\fP \fIid\fP
1695 Assign this packet to zone \fIid\fP and only have lookups done in that zone.
1696 By default, packets have zone 0.
1697 .TP 
1698 \fB\-\-timeout\fP \fIname\fP
1699 Use the timeout policy identified by \fIname\fP for the connection. This is
1700 provides more flexible timeout policy definition than global timeout values
1701 available at /proc/sys/net/netfilter/nf_conntrack_*_timeout_*.
1702 .SS DNAT
1703 このターゲットは \fBnat\fP テーブルの \fBPREROUTING\fP, \fBOUTPUT\fP チェイン、 これらのチェインから呼び出される
1704 ユーザー定義チェインのみで有効である。 このターゲットはパケットの宛先アドレスを修正する (このコネクションの以降のパケットも修正して分からなく
1705 (mangle) する)。 さらに、 ルールによるチェックを止めさせる。 このターゲットは以下のオプションを取る。
1706 .TP 
1707 \fB\-\-to\-destination\fP [\fIipaddr\fP[\fB\-\fP\fIipaddr\fP]][\fB:\fP\fIport\fP[\fB\-\fP\fIport\fP]]
1708 1 つの新しい宛先 IP アドレス、 または IP アドレスの範囲が指定できる。 また、ルールでプロトコルとして \fBtcp\fP, \fBudp\fP,
1709 \fBdccp\fP, \fBsctp\fP のいずれが指定されている場合は、ポートの範囲を指定することもできる。 ポートの範囲が指定されていない場合、
1710 宛先ポートは変更されない。 IP アドレスが指定されなかった場合は、 宛先ポートだけが変更される。 2.6.10 以前のカーネルでは、 複数の
1711 \-\-to\-destination オプションを指定することができる。 これらのカーネルでは、 アドレスの範囲指定や \-\-to\-destination
1712 オプションの複数回指定により 2 つ以上の宛先アドレスを指定した場合、 それらのアドレスを使った単純なラウンドロビンによる負荷分散が行われる。
1713 それ以降のカーネル (>= 2.6.11\-rc1) には複数の範囲を NAT する機能は存在しない。
1714 .TP 
1715 \fB\-\-random\fP
1716 \fB\-\-random\fP オプションを使用すると、 ポートマッピングがランダム化される (カーネル 2.6.22 以降)。
1717 .TP 
1718 \fB\-\-persistent\fP
1719 クライアントの各コネクションに同じ送信元アドレス/宛先アドレスを割り当てる。 これは SAME ターゲットよりも優先される。 persistent
1720 マッピングのサポートは 2.6.29\-rc2 以降で利用可能である。
1721 .TP 
1722 IPv6 サポートは Linux カーネル 3.7 以降で利用可能である。
1723 .SS "DNPT (IPv6 のみ)"
1724 (RFC 6296 で説明されている) ステートレス IPv6\-to\-IPv6 宛先ネットワークプレフィックス変換を提供する。
1725 .PP
1726 このターゲットは \fBnat\fP テーブルではなく \fBmangle\fP テーブルで使わなければならない。 以下のオプションを取る。
1727 .TP 
1728 \fB\-\-src\-pfx\fP [\fIprefix/\fP\fIlength]\fP
1729 変換を行う送信元プレフィックスとその長さを設定する。
1730 .TP 
1731 \fB\-\-dst\-pfx\fP [\fIprefix/\fP\fIlength]\fP
1732 変換を行う宛先プレフィックスとその長さを設定する。
1733 .PP
1734 変換を取り消すには SNPT ターゲットを使わなければならない。 例:
1735 .IP
1736 ip6tables \-t mangle \-I POSTROUTING \-s fd00::/64 \! \-o vboxnet0 \-j SNPT
1737 \-\-src\-pfx fd00::/64 \-\-dst\-pfx 2001:e20:2000:40f::/64
1738 .IP
1739 ip6tables \-t mangle \-I PREROUTING \-i wlan0 \-d 2001:e20:2000:40f::/64 \-j DNPT
1740 \-\-src\-pfx 2001:e20:2000:40f::/64 \-\-dst\-pfx fd00::/64
1741 .PP
1742 IPv6 neighbor proxy を有効にする必要があるかもしれない。
1743 .IP
1744 sysctl \-w net.ipv6.conf.all.proxy_ndp=1
1745 .PP
1746 また、変換されたフローに対するコネクション追跡を無効にするには \fBNOTRACK\fP ターゲットを使用する必要がある。
1747 .SS DSCP
1748 このターゲットは、 IPv4 パケットの TOS ヘッダーにある DSCP ビットの値の書き換えを可能にする。 これはパケットを操作するので、
1749 mangle テーブルでのみ使用できる。
1750 .TP 
1751 \fB\-\-set\-dscp\fP \fIvalue\fP
1752 DSCP フィールドの数値を設定する (10 進または 16 進)。
1753 .TP 
1754 \fB\-\-set\-dscp\-class\fP \fIclass\fP
1755 DSCP フィールドの DiffServ クラスを設定する。
1756 .SS "ECN (IPv4 の場合)"
1757 このターゲットは ECN ブラックホール問題への対処を可能にする。 mangle テーブルでのみ使用できる。
1758 .TP 
1759 \fB\-\-ecn\-tcp\-remove\fP
1760 TCP ヘッダーから全ての ECN ビット (訳注: ECE/CWR フラグ) を取り除く。 当然、 \fB\-p tcp\fP
1761 オプションとの組合わせでのみ使用できる。
1762 .SS "HL (IPv6 のみ)"
1763 このターゲットを使うと IPv6 ヘッダーの Hop Limit フィールドを変更することができる。 Hop Limit フィールドは IPv4 の
1764 TTL 値と同じようなものである。 Hop Limit フィールドを設定したり増やすのは、 危険性を非常にはらんでいる。
1765 したがって、可能な限り避けるべきである。 このターゲットは \fBmangle\fP テーブルでのみ有効である。
1766 .PP
1767 \fB決してローカルネットワーク内に留まるパケットのフィールド値を設定したり増やしたりしないこと!\fP
1768 .TP 
1769 \fB\-\-hl\-set\fP \fIvalue\fP
1770 Hop Limit を `value' に設定する。
1771 .TP 
1772 \fB\-\-hl\-dec\fP \fIvalue\fP
1773 Hop Limit を `value' 回減算する。
1774 .TP 
1775 \fB\-\-hl\-inc\fP \fIvalue\fP
1776 Hop Limit を `value' 回加算する。
1777 .SS HMARK
1778 Like MARK, i.e. set the fwmark, but the mark is calculated from hashing
1779 packet selector at choice. You have also to specify the mark range and,
1780 optionally, the offset to start from. ICMP error messages are inspected and
1781 used to calculate the hashing.
1782 .PP
1783 Existing options are:
1784 .TP 
1785 \fB\-\-hmark\-tuple\fP tuple
1786 Possible tuple members are: \fBsrc\fP meaning source address (IPv4, IPv6
1787 address), \fBdst\fP meaning destination address (IPv4, IPv6 address), \fBsport\fP
1788 meaning source port (TCP, UDP, UDPlite, SCTP, DCCP), \fBdport\fP meaning
1789 destination port (TCP, UDP, UDPlite, SCTP, DCCP), \fBspi\fP meaning Security
1790 Parameter Index (AH, ESP), and \fBct\fP meaning the usage of the conntrack
1791 tuple instead of the packet selectors.
1792 .TP 
1793 \fB\-\-hmark\-mod\fP \fIvalue (must be > 0)\fP
1794 Modulus for hash calculation (to limit the range of possible marks)
1795 .TP 
1796 \fB\-\-hmark\-offset\fP \fIvalue\fP
1797 Offset to start marks from.
1798 .TP 
1799 For advanced usage, instead of using \-\-hmark\-tuple, you can specify custom
1800 prefixes and masks:
1801 .TP 
1802 \fB\-\-hmark\-src\-prefix\fP \fIcidr\fP
1803 The source address mask in CIDR notation.
1804 .TP 
1805 \fB\-\-hmark\-dst\-prefix\fP \fIcidr\fP
1806 The destination address mask in CIDR notation.
1807 .TP 
1808 \fB\-\-hmark\-sport\-mask\fP \fIvalue\fP
1809 A 16 bit source port mask in hexadecimal.
1810 .TP 
1811 \fB\-\-hmark\-dport\-mask\fP \fIvalue\fP
1812 A 16 bit destination port mask in hexadecimal.
1813 .TP 
1814 \fB\-\-hmark\-spi\-mask\fP \fIvalue\fP
1815 A 32 bit field with spi mask.
1816 .TP 
1817 \fB\-\-hmark\-proto\-mask\fP \fIvalue\fP
1818 An 8 bit field with layer 4 protocol number.
1819 .TP 
1820 \fB\-\-hmark\-rnd\fP \fIvalue\fP
1821 A 32 bit random custom value to feed hash calculation.
1822 .PP
1823 \fI例\fP:
1824 .PP
1825 iptables \-t mangle \-A PREROUTING \-m conntrack \-\-ctstate NEW
1826  \-j HMARK \-\-hmark\-tuple ct,src,dst,proto \-\-hmark\-offset 10000
1827 \-\-hmark\-mod 10 \-\-hmark\-rnd 0xfeedcafe
1828 .PP
1829 iptables \-t mangle \-A PREROUTING \-j HMARK \-\-hmark\-offset 10000 \-\-hmark\-tuple
1830 src,dst,proto \-\-hmark\-mod 10 \-\-hmark\-rnd 0xdeafbeef
1831 .SS IDLETIMER
1832 This target can be used to identify when interfaces have been idle for a
1833 certain period of time.  Timers are identified by labels and are created
1834 when a rule is set with a new label.  The rules also take a timeout value
1835 (in seconds) as an option.  If more than one rule uses the same timer label,
1836 the timer will be restarted whenever any of the rules get a hit.  One entry
1837 for each timer is created in sysfs.  This attribute contains the timer
1838 remaining for the timer to expire.  The attributes are located under the
1839 xt_idletimer class:
1840 .PP
1841 /sys/class/xt_idletimer/timers/<label>
1842 .PP
1843 When the timer expires, the target module sends a sysfs notification to the
1844 userspace, which can then decide what to do (eg. disconnect to save power).
1845 .TP 
1846 \fB\-\-timeout\fP \fIamount\fP
1847 This is the time in seconds that will trigger the notification.
1848 .TP 
1849 \fB\-\-label\fP \fIstring\fP
1850 This is a unique identifier for the timer.  The maximum length for the label
1851 string is 27 characters.
1852 .SS LED
1853 This creates an LED\-trigger that can then be attached to system indicator
1854 lights, to blink or illuminate them when certain packets pass through the
1855 system. One example might be to light up an LED for a few minutes every time
1856 an SSH connection is made to the local machine. The following options
1857 control the trigger behavior:
1858 .TP 
1859 \fB\-\-led\-trigger\-id\fP \fIname\fP
1860 This is the name given to the LED trigger. The actual name of the trigger
1861 will be prefixed with "netfilter\-".
1862 .TP 
1863 \fB\-\-led\-delay\fP \fIms\fP
1864 This indicates how long (in milliseconds) the LED should be left illuminated
1865 when a packet arrives before being switched off again. The default is 0
1866 (blink as fast as possible.) The special value \fIinf\fP can be given to leave
1867 the LED on permanently once activated. (In this case the trigger will need
1868 to be manually detached and reattached to the LED device to switch it off
1869 again.)
1870 .TP 
1871 \fB\-\-led\-always\-blink\fP
1872 Always make the LED blink on packet arrival, even if the LED is already on.
1873 This allows notification of new packets even with long delay values (which
1874 otherwise would result in a silent prolonging of the delay time.)
1875 .TP 
1876 例:
1877 .TP 
1878 Create an LED trigger for incoming SSH traffic:
1879 iptables \-A INPUT \-p tcp \-\-dport 22 \-j LED \-\-led\-trigger\-id ssh
1880 .TP 
1881 Then attach the new trigger to an LED:
1882 echo netfilter\-ssh >/sys/class/leds/\fIledname\fP/trigger
1883 .SS LOG
1884 マッチしたパケットをカーネルログに記録する。 このオプションがルールに対して設定されると、 Linux
1885 カーネルはマッチしたパケットについての何らかの情報 (多くの IP/IPv6 ヘッダーフィールドなど) を カーネルログに表示する (カーネルログは
1886 \fIdmesg\fP(1) や syslog で参照できる)。
1887 .PP
1888 これは "非終了ターゲット" である。 すなわち、 ルールの探索は次のルールへと継続される。 よって、 拒否するパケットをログ記録したければ、
1889 同じマッチング判断基準を持つ 2 つのルールを使用し、 最初のルールで LOG ターゲットを、 次のルールで DROP (または REJECT)
1890 ターゲットを指定する。
1891 .TP 
1892 \fB\-\-log\-level\fP \fIlevel\fP
1893 ロギングレベル。 (システム固有の) 数値かシンボル名を指定する。 指定できる値は (優先度が高い順に)  \fBemerg\fP, \fBalert\fP,
1894 \fBcrit\fP, \fBerror\fP, \fBwarning\fP, \fBnotice\fP, \fBinfo\fP, \fBdebug\fP である。
1895 .TP 
1896 \fB\-\-log\-prefix\fP \fIprefix\fP
1897 指定したプレフィックスをログメッセージの前に付ける。
1898 プレフィックスは 29 文字までの長さで、
1899 ログの中でメッセージを区別するのに役立つ。
1900 .TP 
1901 \fB\-\-log\-tcp\-sequence\fP
1902 TCP シーケンス番号をログに記録する。 ログがユーザーから読める場合、 セキュリティ上の危険がある。
1903 .TP 
1904 \fB\-\-log\-tcp\-options\fP
1905 TCP パケットヘッダーのオプションをログに記録する。
1906 .TP 
1907 \fB\-\-log\-ip\-options\fP
1908 IP/IPv6 パケットヘッダーのオプションをログに記録する。
1909 .TP 
1910 \fB\-\-log\-uid\fP
1911 パケットを生成したプロセスのユーザー ID をログに記録する。
1912 .SS MARK
1913 このターゲットを使うと、 そのパケットに関連付けられる Netfilter マーク値を設定する。 例えば、 fwmark に基づくルーティング
1914 (iproute2 が必要) と組み合わせて使うことができる。 そうする場合には、 ルーティング時に考慮されるようにするには、 mangle テーブルの
1915 PREROUTING チェインでマークを設定する必要がある。 マークフィールドは 32 ビット幅である。
1916 .TP 
1917 \fB\-\-set\-xmark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
1918 \fImask\fP で指定されたビットを 0 にし、 \fIvalue\fP と packet mark ("nfmark") の XOR を取る。
1919 \fImask\fP が省略された場合は 0xFFFFFFFF とみなされる。
1920 .TP 
1921 \fB\-\-set\-mark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
1922 \fImask\fP で指定されたビットを 0 にし、 \fIvalue\fP と packet mark の OR を取る。 \fImask\fP が省略された場合は
1923 0xFFFFFFFF とみなされる。
1924 .PP
1925 以下の簡易表現が利用できる。
1926 .TP 
1927 \fB\-\-and\-mark\fP \fIbits\fP
1928 nfmark と \fIbits\fP のビット論理積 (AND) を取る (\fB\-\-set\-xmark 0/\fP\fIinvbits\fP の簡易表現、
1929 \fIinvbits\fP は \fIbits\fP のビット単位の否定である)。
1930 .TP 
1931 \fB\-\-or\-mark\fP \fIbits\fP
1932 nfmark と \fIbits\fP のビット論理和 (OR) を取る (\fB\-\-set\-xmark\fP \fIbits\fP\fB/\fP\fIbits\fP の簡易表現)。
1933 .TP 
1934 \fB\-\-xor\-mark\fP \fIbits\fP
1935 nfmark と \fIbits\fP のビット XOR を取る (\fB\-\-set\-xmark\fP \fIbits\fP\fB/0\fP の簡易表現)。
1936 .SS MASQUERADE
1937 このターゲットは \fBnat\fP テーブルの \fBPOSTROUTING\fP チェインのみで有効である。 動的割り当て IP (ダイヤルアップ)
1938 コネクションの場合にのみ使うべきである。 固定 IP アドレスならば、 SNAT ターゲットを使うべきである。 マスカレーディングは、
1939 パケットが送信されるインターフェースの IP アドレスへのマッピングを指定するのと同じであるが、
1940 インターフェースが停止した場合にコネクションを\fI忘れる\fPという効果がある。 次のダイヤルアップでは同じインターフェースアドレスになる可能性が低い
1941 (そのため、 前回確立されたコネクションは失われる) 場合、 この動作は正しい。
1942 .TP 
1943 \fB\-\-to\-ports\fP \fIport\fP[\fB\-\fP\fIport\fP]
1944 このオプションは、 使用する送信元ポートの範囲を指定し、 デフォルトの \fBSNAT\fP 送信元ポートの選択方法 (上記) よりも優先される。
1945 ルールがプロトコルとして \fBtcp\fP, \fBudp\fP, \fBdccp\fP, \fBsctp\fP を指定している場合にのみ有効である。
1946 .TP 
1947 \fB\-\-random\fP
1948 送信元ポートのマッピングをランダム化する。 \fB\-\-random\fP オプションを使用すると、 ポートマッピングがランダム化される (カーネル
1949 2.6.21 以降)。
1950 .TP 
1951 IPv6 サポートは Linux カーネル 3.7 以降で利用可能である。
1952 .SS "MIRROR (IPv4 の場合)"
1953 実験的なデモンストレーション用のターゲットであり、 IP ヘッダーの送信元と宛先フィールドを入れ換え、 パケットを再送信するものである。 これは
1954 \fBINPUT\fP, \fBFORWARD\fP, \fBPREROUTING\fP チェインと、 これらのチェインから呼び出される
1955 ユーザー定義チェインだけで有効である。 ループ等の問題を回避するため、 外部に送られるパケットは
1956 いかなるパケットフィルタリングチェイン・コネクション追跡・NAT からも 監視\fBされない\fP。
1957 .SS NETMAP
1958 このターゲットを使うと、あるアドレスネットワーク全体を別のネットワークアドレスに静的にマッピングできる。 このターゲットは \fBnat\fP
1959 テーブルでルールでのみ使用できる。
1960 .TP 
1961 \fB\-\-to\fP \fIaddress\fP[\fB/\fP\fImask\fP]
1962 マッピング先のネットワークアドレス。 変換後のアドレスは以下のようにして構築される。 mask で '1' になっているビットは新しいアドレスが使われ、
1963 mask で '0' になっているビットは元のアドレスが使われる。
1964 .TP 
1965 IPv6 サポートは Linux カーネル 3.7 以降で利用可能である。
1966 .SS NFLOG
1967 このターゲットは、 マッチしたパケットをログに記録する機能を提供する。 このターゲットがルールに設定されると、 Linux
1968 カーネルはそのログに記録するためにそのパケットをロードされたロギングバックエンドに渡す。 このターゲットは通常は nfnetlink_log
1969 をロギングバックエンドとして使う組み合わせで使用される。 nfnetlink_log はそのパケットを \fInetlink\fP
1970 ソケット経由で指定されたマルチキャストグループにマルチキャストする。 1
1971 つ以上のユーザー空間プロセスがマルチキャストグループを購読しパケットを受信することができる。 LOG と同様に、
1972 このターゲットは非終了ターゲットであり、 ルールの探索は次のルールへと継続される。
1973 .TP 
1974 \fB\-\-nflog\-group\fP \fInlgroup\fP
1975 パケットを送信する netlink グループ (0 \- 2^16\-1) を指定する (nfnetlink_log の場合のみ利用できる)。
1976 デフォルトの値は 0 である。
1977 .TP 
1978 \fB\-\-nflog\-prefix\fP \fIprefix\fP
1979 ログメッセージの前に付けるプレフィックス文字列。 最大 64 文字までの指定できる。 ログの中でメッセージを区別するのに役に立つ。
1980 .TP 
1981 \fB\-\-nflog\-range\fP \fIsize\fP
1982 ユーザー空間にコピーするバイト数 (nfnetlink_log の場合のみ利用できる)。 nfnetlink_log
1983 のインスタンスは自身でコピーする範囲を指定できるが、 このオプションはそれを上書きする。
1984 .TP 
1985 \fB\-\-nflog\-threshold\fP \fIsize\fP
1986 ユーザー空間にパケットを送信する前に、カーネル内部のキューに入れるパケット数 (nfnetlink_log の場合のみ利用できる)。
1987 大きめの値を指定するほどパケット単位のオーバヘッドは少なくなるが、 パケットがユーザー空間に届くまでの遅延が大きくなる。 デフォルト値は 1 である。
1988 .SS NFQUEUE
1989 このターゲットは、 \fBnfnetlink_queue\fP ハンドラーを使ってそのパケットをユーザー空間に渡す。 パケットは 16
1990 ビットのキュー番号で指定されたキューに入れられる。 ユーザー空間では好きなようにパケットを検査し変更できる。
1991 ユーザー空間側では、必ずそのパケットを破棄するかカーネルに戻すかのどちらかをしなければならない。 詳細は libnetfilter_queue
1992 を参照のこと。
1993 \fBnfnetlink_queue\fP は Linux 2.6.14 で追加された。 \fBqueue\-balance\fP オプションは Linux
1994 2.6.31 で、 \fBqueue\-bypass\fP は Linux 2.6.39 で追加された。
1995 .TP 
1996 \fB\-\-queue\-num\fP \fIvalue\fP
1997 使用する QUEUE 番号を指定する。 有効なキュー番号は 0 から 65535 である。 デフォルトは 0 である。
1998 .PP
1999 .TP 
2000 \fB\-\-queue\-balance\fP \fIvalue\fP\fB:\fP\fIvalue\fP
2001 使用するキューの範囲を指定する。 パケットは指定された範囲のキューに分散される。 これはマルチコアシステムで有用である。
2002 ユーザー空間プログラムの複数インスタンスをキュー x, x+1, .. x+n で開始し、 "\-\-queue\-balance
2003 \fIx\fP\fB:\fP\fIx+n\fP" を使用する。 同じコネクションに所属するパケットは同じ nfqueue に入れられる。
2004 .PP
2005 .TP 
2006 \fB\-\-queue\-bypass\fP
2007 デフォルトでは、 どのユーザー空間プログラムも NFQUEUE をリッスンしていない場合、 キューされるはずのすべてのパケットが破棄される。
2008 このオプションを使うと、 NFQUEUE ルールは ACCEPT のような動作となり、 パケットは次のテーブルに進む。
2009 .PP
2010 .TP 
2011 \fB\-\-queue\-cpu\-fanout\fP
2012 Linux カーネル 3.10 以降で利用可能。 \fB\-\-queue\-balance\fP
2013 とともに使用されると、このオプションはパケットをキューにマッピングする際のインデックスとして CPU ID を使用する。 これは、 CPU
2014 ごとにキューがある場合に性能を向上させようというものである。 このオプションを使うには \fB\-\-queue\-balance\fP を指定する必要がある。
2015 .SS NOTRACK
2016 このターゲットを使うと、そのルールにマッチした全てのパケットでコネクション追跡が無効になる。 これは \-j CT \-\-notrack と等価である。
2017 CT と同様、 NOTRACK は \fBraw\fP テーブルでのみ使用できる。
2018 .SS RATEEST
2019 The RATEEST target collects statistics, performs rate estimation calculation
2020 and saves the results for later evaluation using the \fBrateest\fP match.
2021 .TP 
2022 \fB\-\-rateest\-name\fP \fIname\fP
2023 Count matched packets into the pool referred to by \fIname\fP, which is freely
2024 choosable.
2025 .TP 
2026 \fB\-\-rateest\-interval\fP \fIamount\fP{\fBs\fP|\fBms\fP|\fBus\fP}
2027 Rate measurement interval, in seconds, milliseconds or microseconds.
2028 .TP 
2029 \fB\-\-rateest\-ewmalog\fP \fIvalue\fP
2030 Rate measurement averaging time constant.
2031 .SS REDIRECT
2032 このターゲットは、 \fBnat\fP テーブルの \fBPREROUTING\fP チェインと \fBOUTPUT\fP チェイン、
2033 およびこれらチェインから呼び出されるユーザー定義チェインでのみ有効である。 このターゲットは、 宛先 IP
2034 をパケットを受信したインタフェースの最初のアドレスに変更することで、 パケットをそのマシン自身にリダイレクトする
2035 (ローカルで生成されたパケットはローカルホストのアドレス、 IPv4 では 127.0.0.1、 IPv6 では ::1 にマップされる)。
2036 .TP 
2037 \fB\-\-to\-ports\fP \fIport\fP[\fB\-\fP\fIport\fP]
2038 このオプションは使用される宛先ポート・ポート範囲・複数ポートを指定する。 このオプションが指定されない場合、 宛先ポートは変更されない。
2039 ルールがプロトコルとして \fBtcp\fP, \fBudp\fP, \fBdccp\fP, \fBsctp\fP を指定している場合にのみ有効である。
2040 .TP 
2041 \fB\-\-random\fP
2042 \fB\-\-random\fP オプションを使用すると、 ポートマッピングがランダム化される (カーネル 2.6.22 以降)。
2043 .TP 
2044 IPv6 サポートは Linux カーネル 3.7 以降で利用可能である。
2045 .SS "REJECT (IPv6 のみ)"
2046 マッチしたパケットの応答としてエラーパケットを送信するために使われる。
2047 エラーパケットを送らなければ、 \fBDROP\fP と同じであり、 TARGET を終了し、
2048 ルールの探索を終了する。 このターゲットは、 \fBINPUT\fP, \fBFORWARD\fP,
2049 \fBOUTPUT\fP チェインと、 これらのチェインから呼ばれる ユーザー定義チェイン
2050 だけで有効である。 以下のオプションは、 返されるエラーパケットの特性を
2051 制御する。
2052 .TP 
2053 \fB\-\-reject\-with\fP \fItype\fP
2054 指定できるタイプは \fBicmp6\-no\-route\fP, \fBno\-route\fP, \fBicmp6\-adm\-prohibited\fP,
2055 \fBadm\-prohibited\fP, \fBicmp6\-addr\-unreachable\fP, \fBaddr\-unreach\fP,
2056 \fBicmp6\-port\-unreachable\fP である。 指定したタイプの適切な IPv6 エラーメッセージが返される
2057 (\fBicmp6\-port\-unreachable\fP がデフォルトである)。 さらに、 TCP プロトコルにのみマッチするルールに対して、 オプション
2058 \fBtcp\-reset\fP を使うことができる。 このオプションを使うと、 TCP RST パケットが送り返される。 主として \fIident\fP
2059 (113/tcp) による探査を阻止するのに役立つ。 \fIident\fP による探査は、 壊れている (メールを受け取らない) メールホストに
2060 メールが送られる場合に頻繁に起こる。 \fBtcp\-reset\fP はバージョン 2.6.14 以降のカーネルでのみ使用できる。
2061 .SS "REJECT (IPv4 の場合)"
2062 マッチしたパケットの応答としてエラーパケットを送信するために使われる。
2063 エラーパケットを送らなければ、 \fBDROP\fP と同じであり、 TARGET を終了し、
2064 ルールの探索を終了する。 このターゲットは、 \fBINPUT\fP, \fBFORWARD\fP,
2065 \fBOUTPUT\fP チェインと、 これらのチェインから呼ばれる ユーザー定義チェイン
2066 だけで有効である。 以下のオプションは、 返されるエラーパケットの特性を
2067 制御する。
2068 .TP 
2069 \fB\-\-reject\-with\fP \fItype\fP
2070 指定できるタイプは \fBicmp\-net\-unreachable\fP, \fBicmp\-host\-unreachable\fP,
2071 \fBicmp\-port\-unreachable\fP, \fBicmp\-proto\-unreachable\fP, \fBicmp\-net\-prohibited\fP,
2072 \fBicmp\-host\-prohibited\fP, \fBicmp\-admin\-prohibited\fP (*) である。指定したタイプの適切な ICMP
2073 エラーメッセージを返す (\fBicmp\-port\-unreachable\fP がデフォルトである)。 TCP プロトコルにのみマッチするルールに対して、
2074 オプション \fBtcp\-reset\fP を使うことができる。 このオプションを使うと、 TCP RST パケットが送り返される。 主として
2075 \fIident\fP (113/tcp) による探査を阻止するのに役立つ。 \fIident\fP による探査は、 壊れている (メールを受け取らない)
2076 メールホストに メールが送られる場合に頻繁に起こる。
2077 .PP
2078 (*) icmp\-admin\-prohibited をサポートしないカーネルで、 icmp\-admin\-prohibited を使用すると、
2079 REJECT ではなく単なる DROP になる。
2080 .SS "SAME (IPv4 の場合)"
2081 Similar to SNAT/DNAT depending on chain: it takes a range of addresses
2082 (`\-\-to 1.2.3.4\-1.2.3.7') and gives a client the same
2083 source\-/destination\-address for each connection.
2084 .PP
2085 N.B.: The DNAT target's \fB\-\-persistent\fP option replaced the SAME target.
2086 .TP 
2087 \fB\-\-to\fP \fIipaddr\fP[\fB\-\fP\fIipaddr\fP]
2088 Addresses to map source to. May be specified more than once for multiple
2089 ranges.
2090 .TP 
2091 \fB\-\-nodst\fP
2092 Don't use the destination\-ip in the calculations when selecting the new
2093 source\-ip
2094 .TP 
2095 \fB\-\-random\fP
2096 Port mapping will be forcibly randomized to avoid attacks based on port
2097 prediction (kernel >= 2.6.21).
2098 .SS SECMARK
2099 This is used to set the security mark value associated with the packet for
2100 use by security subsystems such as SELinux.  It is valid in the \fBsecurity\fP
2101 table (for backwards compatibility with older kernels, it is also valid in
2102 the \fBmangle\fP table). The mark is 32 bits wide.
2103 .TP 
2104 \fB\-\-selctx\fP \fIsecurity_context\fP
2105 .SS SET
2106 このモジュールは \fBipsec\fP(8) で定義できる IP 集合のエントリの追加、削除、その両方を行う。
2107 .TP 
2108 \fB\-\-add\-set\fP \fIsetname\fP \fIflag\fP[\fB,\fP\fIflag\fP...]
2109 集合に指定されたアドレス/ポート (複数可) を追加する
2110 .TP 
2111 \fB\-\-del\-set\fP \fIsetname\fP \fIflag\fP[\fB,\fP\fIflag\fP...]
2112 集合から指定されたアドレス/ポート (複数可) を削除する
2113 .IP
2114 \fIflag\fP は \fBsrc\fP や \fBdst\fP の指定であり、 指定できるのは 6 個までである。
2115 .TP 
2116 \fB\-\-timeout\fP \fIvalue\fP
2117 エントリを追加する際に、 集合定義のデフォルト値ではなく指定したタイムアウト値を使用する
2118 .TP 
2119 \fB\-\-exist\fP
2120 エントリを追加する際に、 エントリが存在する場合、 タイムアウト値を、 指定された値か集合定義のデフォルト値にリセットする
2121 .PP
2122 \-j SET を使用するには ipset のカーネルサポートが必要である。 標準のカーネルでは、 Linux 2.6.39 以降で提供されている。
2123 .SS SNAT
2124 このターゲットは \fBnat\fP テーブルの \fBPOSTROUTING\fP, \fBINPUT\fP チェイン、 これらのチェインから呼び出される
2125 ユーザー定義チェインのみで有効である。 このターゲットはパケットの送信元アドレスを修正する (このコネクションの以降のパケットも修正して分からなく
2126 (mangle) する)。 さらに、 ルールによるチェックを止めさせる。 このターゲットには以下のオプションがある:
2127 .TP 
2128 \fB\-\-to\-source\fP [\fIipaddr\fP[\fB\-\fP\fIipaddr\fP]][\fB:\fP\fIport\fP[\fB\-\fP\fIport\fP]]
2129 1 つの新しい送信元 IP アドレス、 または IP アドレスの範囲が指定できる。 ルールでプロトコルとして \fBtcp\fP, \fBudp\fP,
2130 \fBdccp\fP, \fBsctp\fP が指定されている場合、 ポートの範囲を指定することもできる。 ポートの範囲が指定されていない場合、 512
2131 未満の送信元ポートは、 他の 512 未満のポートにマッピングされる。 512 〜 1023 までのポートは、 1024
2132 未満のポートにマッピングされる。 それ以外のポートは、 1024 以上のポートにマッピングされる。 可能であれば、 ポートの変換は起こらない。
2133 2.6.10 以前のカーネルでは、 複数の \-\-to\-source オプションを指定することができる。 これらのカーネルでは、 アドレスの範囲指定や
2134 \-\-to\-source オプションの複数回指定により 2 つ以上の送信元アドレスを指定した場合、
2135 それらのアドレスを使った単純なラウンド・ロビンが行われる。 それ以降のカーネル (>= 2.6.11\-rc1) には複数の範囲を NAT
2136 する機能は存在しない。
2137 .TP 
2138 \fB\-\-random\fP
2139 \fB\-\-random\fP オプションが使用されると、ポートマッピングはランダム化される (カーネル 2.6.21 以降)。
2140 .TP 
2141 \fB\-\-persistent\fP
2142 クライアントの各コネクションに同じ送信元アドレス/宛先アドレスを割り当てる。 これは SAME ターゲットよりも優先される。 persistent
2143 マッピングのサポートは 2.6.29\-rc2 以降で利用可能である。
2144 .PP
2145 2.6.36\-rc1 より前のカーネルでは \fBINPUT\fP チェインで \fBSNAT\fP を使用できない。
2146 .TP 
2147 IPv6 サポートは Linux カーネル 3.7 以降で利用可能である。
2148 .SS "SNPT (IPv6 のみ)"
2149 (RFC 6296 で説明されている) ステートレス IPv6\-to\-IPv6 送信元ネットワークプレフィックス変換を提供する。
2150 .PP
2151 このターゲットは \fBnat\fP テーブルではなく \fBmangle\fP テーブルで使わなければならない。 以下のオプションを取る。
2152 .TP 
2153 \fB\-\-src\-pfx\fP [\fIprefix/\fP\fIlength]\fP
2154 変換を行う送信元プレフィックスとその長さを設定する。
2155 .TP 
2156 \fB\-\-dst\-pfx\fP [\fIprefix/\fP\fIlength]\fP
2157 変換を行う宛先プレフィックスとその長さを設定する。
2158 .PP
2159 変換を取り消すには DNPT ターゲットを使わなければならない。 例:
2160 .IP
2161 ip6tables \-t mangle \-I POSTROUTING \-s fd00::/64 \! \-o vboxnet0 \-j SNPT
2162 \-\-src\-pfx fd00::/64 \-\-dst\-pfx 2001:e20:2000:40f::/64
2163 .IP
2164 ip6tables \-t mangle \-I PREROUTING \-i wlan0 \-d 2001:e20:2000:40f::/64 \-j DNPT
2165 \-\-src\-pfx 2001:e20:2000:40f::/64 \-\-dst\-pfx fd00::/64
2166 .PP
2167 IPv6 neighbor proxy を有効にする必要があるかもしれない。
2168 .IP
2169 sysctl \-w net.ipv6.conf.all.proxy_ndp=1
2170 .PP
2171 また、変換されたフローに対するコネクション追跡を無効にするには \fBNOTRACK\fP ターゲットを使用する必要がある。
2172 .SS TCPMSS
2173 このターゲットを用いると、 TCP の SYN パケットの MSS 値を書き換え、 そのコネクションでの最大サイズを制御できる (通常は、
2174 送信インターフェースの MTU から IPv4 では 40 を、 IPv6 では 60 を引いた値に制限する)。 もちろん \fB\-p tcp\fP
2175 との組み合わせでしか使えない。
2176 .PP
2177 このターゲットは、 "ICMP Fragmentation Needed" や "ICMPv6 Packet Too Big"
2178 パケットをブロックしている犯罪的に頭のいかれた ISP やサーバーを乗り越えるために使用される。 Linux
2179 ファイアウォール/ルーターでは何も問題がないのに、 そこにぶら下がるマシンでは以下のように大きなパケットをやりとりできないというのが、
2180 この問題の兆候である。
2181 .IP 1. 4
2182 ウェブ・ブラウザで接続しようとすると、 何のデータも受け取らずにハングする
2183 .IP 2. 4
2184 短いメールは問題ないが、 長いメールがハングする
2185 .IP 3. 4
2186 ssh は問題ないが、 scp は最初のハンドシェーク後にハングする
2187 .PP
2188 回避方法: このオプションを有効にし、 以下のようなルールを ファイアウォールの設定に追加する。
2189 .IP
2190  iptables \-t mangle \-A FORWARD \-p tcp \-\-tcp\-flags SYN,RST SYN
2191              \-j TCPMSS \-\-clamp\-mss\-to\-pmtu
2192 .TP 
2193 \fB\-\-set\-mss\fP \fIvalue\fP
2194 Explicitly sets MSS option to specified value. If the MSS of the packet is
2195 already lower than \fIvalue\fP, it will \fBnot\fP be increased (from Linux 2.6.25
2196 onwards) to avoid more problems with hosts relying on a proper MSS.
2197 .TP 
2198 \fB\-\-clamp\-mss\-to\-pmtu\fP
2199 Automatically clamp MSS value to (path_MTU \- 40 for IPv4; \-60 for IPv6).
2200 This may not function as desired where asymmetric routes with differing path
2201 MTU exist \(em the kernel uses the path MTU which it would use to send
2202 packets from itself to the source and destination IP addresses. Prior to
2203 Linux 2.6.25, only the path MTU to the destination IP address was considered
2204 by this option; subsequent kernels also consider the path MTU to the source
2205 IP address.
2206 .PP
2207 これらのオプションはどちらか 1 つしか指定できない。
2208 .SS TCPOPTSTRIP
2209 このターゲットは TCP パケットから TCP オプションを削除する (実際には TCPオプションを NO\-OP で置き換える)。
2210 このターゲットを使うには \fB\-p tcp\fP パラメーターを使う必要があるだろう。
2211 .TP 
2212 \fB\-\-strip\-options\fP \fIoption\fP[\fB,\fP\fIoption\fP...]
2213 指定されたオプション (複数可) を削除する。 オプションは TCP オプション番号かシンボル名で指定する。 iptables を \fB\-j
2214 TCPOPTSTRIP \-h\fP で呼び出すと、指定できるオプションのシンボル名を取得できる。
2215 .SS TEE
2216 \fBTEE\fP ターゲットは、 パケットのクローンを作成し、
2217 クローンしたパケットを\fBローカル\fPネットワークセグメントにある別のマシンにリダイレクトする。
2218 言い換えると、ネクストホップがターゲットでなければならないということだ。
2219 つまり、必要に応じてネクストホップがさらにパケットを転送するように設定する必要があるということだ。
2220 .TP 
2221 \fB\-\-gateway\fP \fIipaddr\fP
2222 クローンしたパケットを指定した IP アドレスで届くホストに送信する。 (IPv4 の場合) 0.0.0.0、 (IPv6 の場合) ::
2223 は無効である。
2224 .PP
2225 eth0 に届いたすべての入力トラフィックをネットワーク層のロギングボックスに転送する。
2226 .PP
2227 \-t mangle \-A PREROUTING \-i eth0 \-j TEE \-\-gateway 2001:db8::1
2228 .SS TOS
2229 このモジュールは IPv4 ヘッダーの Type of Service フィールド (上位ビットも含む) や IPv6 ヘッダーの Priority
2230 フィールドを設定する。 TOS は DSCP と ECN と同じビットを共有する点に注意すること。 TOS ターゲットは \fBmangle\fP
2231 テーブルでのみ有効である。
2232 .TP 
2233 \fB\-\-set\-tos\fP \fIvalue\fP[\fB/\fP\fImask\fP]
2234 \fImask\fP で指定されたビットを 0 にし (下の「注意」を参照)、 \fIvalue\fP と TOS/Priority フィールド の XOR
2235 を取る。 \fImask\fP が省略された場合は 0xFF とみなされる。
2236 .TP 
2237 \fB\-\-set\-tos\fP \fIsymbol\fP
2238 IPv4 の TOS ターゲットを使用する際にはシンボル名を指定することができる。 暗黙のうち 0xFF が mask として使用される
2239 (下の「注意」を参照)。 使用できる TOS 名のリストは iptables を \fB\-j TOS \-h\fP で呼び出すと取得できる。
2240 .PP
2241 以下の簡易表現が利用できる。
2242 .TP 
2243 \fB\-\-and\-tos\fP \fIbits\fP
2244 TOS 値と \fIbits\fP のビット論理積 (AND) を取る (\fB\-\-set\-tos 0/\fP\fIinvbits\fP の簡易表現、
2245 \fIinvbits\fP は \fIbits\fP のビット単位の否定である。 下の「注意」を参照)
2246 .TP 
2247 \fB\-\-or\-tos\fP \fIbits\fP
2248 TOS 値と \fIbits\fP のビット論理和 (OR) を取る (\fB\-\-set\-tos\fP \fIbits\fP\fB/\fP\fIbits\fP
2249 の簡易表現。下の「注意」を参照)
2250 .TP 
2251 \fB\-\-xor\-tos\fP \fIbits\fP
2252 TOS 値と \fIbits\fP の XOR を取る (\fB\-\-set\-tos\fP \fIbits\fP\fB/0\fP の簡易表現。下の「注意」を参照)
2253 .PP
2254 注意: 2.6.38 以前の Linux カーネル (ただし、長期間サポートのリリース 2.6.32 (>=.42), 2.6.33
2255 (>=.15), 2.6.35 (>=.14) 以外) では、 IPv6 TOS mangling
2256 がドキュメントに書かれている通りに動作せず、IPv4 バージョンの場合と異なる動作をするというバグがある。 TOS mask はビットが 1
2257 の場合に対応するビットが 0 にすることを指示するので、 元の TOS フィールドに mask を適用する前に反転する必要がある。 しかしながら、
2258 上記のカーネルではこの反転が抜けており \-\-set\-tos と関連する簡易表現が正しく動作しない。
2259 .SS TPROXY
2260 このターゲットは、 \fBmangle\fP テーブルで、 \fBPREROUTING\fP チェインと、 \fBPREROUTING\fP チェインから呼び出される
2261 ユーザー定義チェインでのみ有効である。 このターゲットは、 そのパケットをパケットヘッダーを変更せずにそのままローカルソケットにリダイレクトする。
2262 また、 mark 値を変更することもでき、 この mark 値は後で高度なルーティングルールで使用することができる。 このターゲットにはオプションが 3
2263 つある:
2264 .TP 
2265 \fB\-\-on\-port\fP \fIport\fP
2266 このオプションは使用する宛先ポートを指定する。 このオプションは必須で、 0 は宛先ポートが元々の宛先ポートと同じであることを意味する。 ルールが
2267 \fB\-p tcp\fP または \fB\-p udp\fP を指定している場合にのみ有効である。
2268 .TP 
2269 \fB\-\-on\-ip\fP \fIaddress\fP
2270 このオプションは使用する宛先アドレスを指定する。 デフォルトでは、 パケットが到着したインタフェースの IP アドレスが使用される。 ルールが \fB\-p
2271 tcp\fP または \fB\-p udp\fP を指定している場合にのみ有効である。
2272 .TP 
2273 \fB\-\-tproxy\-mark\fP \fIvalue\fP[\fB/\fP\fImask\fP]
2274 Marks packets with the given value/mask. The fwmark value set here can be
2275 used by advanced routing. (Required for transparent proxying to work:
2276 otherwise these packets will get forwarded, which is probably not what you
2277 want.)
2278 .SS TRACE
2279 This target marks packets so that the kernel will log every rule which match
2280 the packets as those traverse the tables, chains, rules.
2281 .PP
2282 A logging backend, such as ip(6)t_LOG or nfnetlink_log, must be loaded for
2283 this to be visible.  The packets are logged with the string prefix: "TRACE:
2284 tablename:chainname:type:rulenum " where type can be "rule" for plain rule,
2285 "return" for implicit rule at the end of a user defined chain and "policy"
2286 for the policy of the built in chains.
2287 .br
2288 It can only be used in the \fBraw\fP table.
2289 .SS "TTL (IPv4 の場合)"
2290 このターゲットを使うと、 IPv4 の TTL ヘッダーフィールドを変更できる。 TTL フィールドにより、 TTL
2291 がなくなるまでに、パケットが何ホップ (何個のルータ) を通過できるかが決定される。
2292 .PP
2293 TTL フィールドを設定したり増やすのは、 危険性を非常にはらんでいる。 したがって、可能な限り避けるべきである。 このターゲットは \fBmangle\fP
2294 テーブルでのみ有効である。
2295 .PP
2296 \fB決してローカルネットワーク内に留まるパケットのフィールド値を設定したり増やしたりしないこと!\fP
2297 .TP 
2298 \fB\-\-ttl\-set\fP \fIvalue\fP
2299 TTL 値を `value' に設定する。
2300 .TP 
2301 \fB\-\-ttl\-dec\fP \fIvalue\fP
2302 TTL 値を `value' 回減算する。
2303 .TP 
2304 \fB\-\-ttl\-inc\fP \fIvalue\fP
2305 TTL 値を `value' 回加算する。
2306 .SS "ULOG (IPv4 の場合)"
2307 このターゲットは NFLOG ターゲットの前身で IPv4 専用である。現在は非推奨となっている。 マッチしたパケットを
2308 ユーザー空間でログ記録する機能を提供する。 このターゲットがルールに設定されると、 Linux カーネルは、 そのパケットを \fInetlink\fP
2309 ソケットを用いてマルチキャストする。 そして、 1 つ以上のユーザー空間プロセスが いろいろなマルチキャストグループに登録をおこない、
2310 パケットを受信する。 LOG と同様、 これは "非終了ターゲット" であり、 ルールの探索は次のルールへと継続される。
2311 .TP 
2312 \fB\-\-ulog\-nlgroup\fP \fInlgroup\fP
2313 パケットを送信する netlink グループ (1\-32) を指定する。 デフォルトの値は 1 である。
2314 .TP 
2315 \fB\-\-ulog\-prefix\fP \fIprefix\fP
2316 指定したプレフィックスをログメッセージの前に付ける。 32 文字までの指定できる。 ログの中でメッセージを区別するのに便利である。
2317 .TP 
2318 \fB\-\-ulog\-cprange\fP \fIsize\fP
2319 ユーザー空間にコピーするパケットのバイト数。 値が 0 の場合、 サイズに関係なく全パケットをコピーする。 デフォルトは 0 である。
2320 .TP 
2321 \fB\-\-ulog\-qthreshold\fP \fIsize\fP
2322 カーネル内部のキューに入れられるパケットの数。 例えば、 この値を 10 にした場合、 カーネル内部で 10 個のパケットをまとめ、 1 つの
2323 netlink マルチパートメッセージとしてユーザー空間に送る。 (過去のものとの互換性のため) デフォルトは 1 である。
2324 .br