Man page - iptables-extensions(8)
Packages contains this manual
- ip6tables-legacy(8)
- ip6tables-restore-translate(8)
- ip6tables-restore(8)
- nfnl_osf(8)
- iptables-xml(1)
- ebtables-nft-restore(8)
- arptables-nft-save(8)
- ebtables-translate(8)
- iptables-nft-save(8)
- ip6tables-nft-restore(8)
- iptables-nft-restore(8)
- xtables-legacy(8)
- iptables-restore(8)
- xtables-nft(8)
- ip6tables-legacy-save(8)
- ebtables-nft-save(8)
- iptables-restore-translate(8)
- iptables-translate(8)
- ip6tables-apply(8)
- arptables-nft-restore(8)
- iptables-extensions(8)
- xtables-translate(8)
- ip6tables-nft-save(8)
- ip6tables-legacy-restore(8)
- ebtables-nft(8)
- ip6tables-nft(8)
- xtables-nft-multi(8)
- ip6tables-translate(8)
- iptables-save(8)
- arptables-translate(8)
- iptables-legacy-save(8)
- iptables-legacy-restore(8)
- ip6tables-save(8)
- iptables(8)
- xtables-legacy-multi(8)
- arptables-nft(8)
- ip6tables(8)
- iptables-nft(8)
- iptables-apply(8)
- iptables-legacy(8)
- xtables-monitor(8)
apt-get install iptables
Available languages:
en fr ja ru roManual
iptables-extensions
名 前書 式
マ ッ チ ン グ の 拡 張
addrtype
ah (IPv6 の み )
ah (IPv4 の 場 合 )
bpf
cluster
comment
connbytes
connlimit
connmark
conntrack
cpu
dccp
devgroup
dscp
dst (IPv6 の み )
ecn
esp
eui64 (IPv6 の み )
frag (IPv6 の み )
hashlimit
hbh (IPv6 の み )
helper
hl (IPv6 の み )
icmp (IPv4 の 場 合 )
icmp6 (IPv6 の み )
iprange
ipv6header (IPv6 の み )
ipvs
length
limit
mac
mark
mh (IPv6 の み )
multiport
nfacct
osf
owner
physdev
pkttype
policy
quota
rateest
realm (IPv4 の 場 合 )
recent
rpfilter
rt (IPv6 の み )
sctp
set
socket
state
statistic
string
tcp
tcpmss
time
tos
ttl (IPv4 の 場 合 )
u32
udp
unclean (IPv4 の 場 合 )
タ ー ゲ ッ ト の 拡 張
AUDIT
CHECKSUM
CLASSIFY
CLUSTERIP (IPv4 の 場 合 )
CONNMARK
CONNSECMARK
CT
DNAT
DNPT (IPv6 の み )
DSCP
ECN (IPv4 の 場 合 )
HL (IPv6 の み )
HMARK
IDLETIMER
LED
LOG
MARK
MASQUERADE
MIRROR (IPv4 の 場 合 )
NETMAP
NFLOG
NFQUEUE
NOTRACK
RATEEST
REDIRECT
REJECT (IPv6 の み )
REJECT (IPv4 の 場 合 )
SAME (IPv4 の 場 合 )
SECMARK
SET
SNAT
SNPT (IPv6 の み )
TCPMSS
TCPOPTSTRIP
TEE
TOS
TPROXY
TRACE
TTL (IPv4 の 場 合 )
ULOG (IPv4 の 場 合 )
名 前
iptables-extensions — 標 準 の iptables に 含 ま れ る 拡 張 モ ジ ュ ー ル の リ ス ト
書 式
ip6tables [ -m name [ module-options ...]] [ -j target-name [ target-options ...]
iptables [ -m name [ module-options ...]] [ -j target-name [ target-options ...]
マ ッ チ ン グ の 拡 張
iptables は 拡 張 さ れ た パ ケ ッ ト マ ッ チ ン グ モ ジ ュ ー ル を 使 う こ と が で き る 。 使 用 す る モ ジ ュ ー ル は -m か --match の 後 ろ に モ ジ ュ ー ル 名 に 続 け て 指 定 す る 。 モ ジ ュ ー ル 名 の 後 ろ に は 、 モ ジ ュ ー ル に 応 じ て 他 の い ろ い ろ な コ マ ン ド ラ イ ン オ プ シ ョ ン を 指 定 す る こ と が で き る 。 複 数 の 拡 張 マ ッ チ ン グ モ ジ ュ ー ル を 一 行 で 指 定 す る こ と が で き る 。 モ ジ ュ ー ル の 指 定 よ り 後 ろ で -h か --help を 指 定 す る と 、 モ ジ ュ ー ル 固 有 の ヘ ル プ が 表 示 さ れ る 。 拡 張 マ ッ チ ン グ モ ジ ュ ー ル は ル ー ル で 指 定 さ れ た 順 序 で 評 価 さ れ る 。
-p か --protocol が 指 定 さ れ 、 か つ 未 知 の オ プ シ ョ ン だ け が 指 定 さ れ て い た 場 合 に の み 、 iptables は プ ロ ト コ ル と 同 じ 名 前 の マ ッ チ モ ジ ュ ー ル を ロ ー ド し 、 そ の オ プ シ ョ ン を 使 え る よ う に し よ う と す る 。
addrtype
こ の モ ジ ュ ー ル は 、 ア ド レ ス 種 別 ( address type ) に 基 づ い て パ ケ ッ ト マ ッ チ ン グ を 行 う 。 ア ド レ ス 種 別 は カ ー ネ ル の ネ ッ ト ワ ー ク ス タ ッ ク 内 で 使 わ れ て お り 、 ア ド レ ス は い く つ か グ ル ー プ に 分 類 さ れ る 。 厳 密 な グ ル ー プ の 定 義 は 個 々 の レ イ ヤ 3 プ ロ ト コ ル に 依 存 す る 。
以 下 の ア ド レ ス タ イ プ が 利 用 で き る 。
|
UNSPEC |
ア ド レ ス を 指 定 し な い (つ ま り ア ド レ ス 0.0.0.0) |
UNICAST
ユ ニ キ ャ ス ト ア ド レ ス
|
LOCAL |
ロ ー カ ル ア ド レ ス |
BROADCAST
ブ ロ ー ド キ ャ ス ト ア ド レ ス
ANYCAST
エ ニ ー キ ャ ス ト ア ド レ ス
MULTICAST
マ ル チ キ ャ ス ト ア ド レ ス
BLACKHOLE
ブ ラ ッ ク ホ ー ル ア ド レ ス
UNREACHABLE
到 達 で き な い ア ド レ ス
PROHIBIT
禁 止 さ れ た ア ド レ ス
|
THROW |
要 修 正 |
|||
|
NAT |
要 修 正 |
XRESOLVE
[
!
]
--src-type
type
送 信 元 ア ド レ ス が 指 定 さ れ た 種 類 の 場 合 に マ ッ チ す る 。
[ ! ] --dst-type type
宛 先 ア ド レ ス が 指 定 さ れ た 種 類 の 場 合 に マ ッ チ す る 。
--limit-iface-in
ア ド レ ス 種 別 の チ ェ ッ ク を そ の パ ケ ッ ト が 受 信 さ れ た イ ン タ ー フ ェ ー ス に 限 定 す る 。 こ の オ プ シ ョ ン は PREROUTING , INPUT , FORWARD チ ェ イ ン で の み 利 用 で き る 。 --limit-iface-out オ プ シ ョ ン と 同 時 に 指 定 す る こ と は で き な い 。
--limit-iface-out
ア ド レ ス 種 別 の チ ェ ッ ク を そ の パ ケ ッ ト が 出 力 さ れ る イ ン タ ー フ ェ ー ス に 限 定 す る 。 こ の オ プ シ ョ ン は POSTROUTING , OUTPUT , FORWARD チ ェ イ ン で の み 利 用 で き る 。 --limit-iface-in オ プ シ ョ ン と 同 時 に 指 定 す る こ と は で き な い 。
ah (IPv6 の み )
こ
の モ ジ ュ ー ル
は IPsec パ ケ ッ ト の
認 証 ヘ ッ ダ ー
の パ ラ メ ー タ
に マ ッ チ す る
。
[
!
]
--ahspi
spi
[
:
spi
]
SPI に マ ッ チ す る 。
[ ! ] --ahlen length
こ の ヘ ッ ダ ー の 全 体 の 長 さ (8進 数 )。
--ahres
予 約 フ ィ ー ル ド が 0 で 埋 め ら れ て い る 場 合 に マ ッ チ す る 。
ah (IPv4 の 場 合 )
こ
の モ ジ ュ ー ル
は IPsec パ ケ ッ ト の
認 証 ヘ ッ ダ ー (AH)
の SPI 値 に マ ッ チ
す る 。
[
!
]
--ahspi
spi
[
:
spi
]
bpf
Linux Socket
Filter を 使 っ て マ ッ
チ を 行 う 。 BPF プ
ロ グ ラ ム を 10 進
数 形 式 で 指 定
す る 。 こ れ は
nfbpf_compile
ユ ー テ ィ
リ テ ィ に よ り
生 成 さ れ る フ
ォ ー マ ッ ト で
あ る 。
--bytecode
code
BPF バ イ ト コ ー ド フ ォ ー マ ッ ト を 渡 す (フ ォ ー マ ッ ト に つ い て は 下 記 の 例 で 説 明 )。
コ ー ド の フ ォ ー マ ッ ト は tcpdump の -ddd コ マ ン ド の 出 力 に 似 て い る 。 最 初 に 命 令 数 が 入 っ た 行 が 1 行 あ り 、 1 行 1 命 令 が こ れ に 続 く 。 命 令 行 は ’u16 u8 u8 u32’ の パ タ ー ン で 10 進 数 で 指 定 す る 。 各 フ ィ ー ル ド は 、 命 令 、 true 時 の ジ ャ ン プ オ フ セ ッ ト 、 false 時 の ジ ャ ン プ オ フ セ ッ ト 、 汎 用 で 様 々 な 用 途 に 使 用 す る フ ィ ー ル ド ’K’ で あ る 。 コ メ ン ト は サ ポ ー ト さ れ て い な い 。
例 え ば ’ip proto 6’ に マ ッ チ す る パ ケ ッ ト の み を 読 み 込 む に は 、 以 下 を 挿 入 す れ ば よ い (コ ム と 末 尾 の ホ ワ イ ト ス ペ ー ス は 含 め ず に )。
4 # 命
令 数
48 0 0 9 # load byte ip->proto
21 0 1 6 # jump equal IPPROTO_TCP
6 0 0 1 # return pass (non-zero)
6 0 0 0 # return fail (zero)
こ の フ ィ ル タ ー を bpf マ ッ チ に 渡 す に は 以 下 の コ マ ン ド の よ う に す る 。
iptables -A OUTPUT -m bpf --bytecode ’4,48 0 0 9,21 0 1 6,6 0 0 1,6 0 0 0’ -j ACCEPT
代 わ り に 、 nfbpf_compile ユ ー テ ィ リ テ ィ を 使 う 方 法 も あ る 。
iptables -A OUTPUT -m bpf --bytecode "‘nfbpf_compile RAW ’ip proto 6’‘" -j ACCEPT
BPF に つ い て も っ と 詳 し く 知 る に は FreeBSD の bpf(4) manpage を 見 る と い い だ ろ う 。
cluster
こ の モ ジ ュ ー ル を 使 う と 、 負 荷 分 散 装 置 な し で 、 ゲ ー ト ウ ェ イ と バ ッ ク エ ン ド の 負 荷 分 散 ク ラ ス タ ー を 配 備 で き る 。
This match
requires that all the nodes see the same packets. Thus, the
cluster match decides if this node has to handle a packet
given the following options:
--cluster-total-nodes
num
ク ラ ス タ ー の 総 ノ ー ド 数 を 設 定 す る 。
[ ! ] --cluster-local-node num
ロ ー カ ル ノ ー ド の 数 字 の ID を 設 定 す る 。
[ ! ] --cluster-local-nodemask mask
ロ ー カ ル ノ ー ド の ID マ ス ク を 設 定 す る 。 こ の オ プ シ ョ ン は --cluster-local-node の 代 わ り に 使 う こ と が で き る 。
--cluster-hash-seed value
Jenkins ハ ッ シ ュ の シ ー ド 値 を 設 定 す る 。
例 :
iptables -A PREROUTING -t mangle -i eth1 -m cluster --cluster-total-nodes 2 --cluster-local-node 1 --cluster-hash-seed 0xdeadbeef -j MARK --set-mark 0xffff
iptables -A PREROUTING -t mangle -i eth2 -m cluster --cluster-total-nodes 2 --cluster-local-node 1 --cluster-hash-seed 0xdeadbeef -j MARK --set-mark 0xffff
iptables -A PREROUTING -t mangle -i eth1 -m mark ! --mark 0xffff -j DROP
iptables -A PREROUTING -t mangle -i eth2 -m mark ! --mark 0xffff -j DROP
以 下 の コ マ ン ド で 、 す べ て の ノ ー ド に 同 じ パ ケ ッ ト を 届 け る こ と が で き る 。
ip maddr add 01:00:5e:00:01:01 dev eth1
ip maddr add 01:00:5e:00:01:02 dev eth2
arptables -A OUTPUT -o eth1 --h-length 6 -j mangle --mangle-mac-s 01:00:5e:00:01:01
arptables -A INPUT -i eth1 --h-length 6 --destination-mac 01:00:5e:00:01:01 -j mangle --mangle-mac-d 00:zz:yy:xx:5a:27
arptables -A OUTPUT -o eth2 --h-length 6 -j mangle --mangle-mac-s 01:00:5e:00:01:02
arptables -A INPUT -i eth2 --h-length 6 --destination-mac 01:00:5e:00:01:02 -j mangle --mangle-mac-d 00:zz:yy:xx:5a:27
NOTE : the arptables commands above use mainstream syntax. If you are using arptables-jf included in some RedHat, CentOS and Fedora versions, you will hit syntax errors. Therefore, you’ll have to adapt these to the arptables-jf syntax to get them working.
TCP 接 続 の 場 合 に は 、 応 答 方 向 で 受 信 し た TCP ACK パ ケ ッ ト が 有 効 と マ ー ク さ れ な い よ う に す る た め 、 ピ ッ ク ア ッ プ (pickup) 機 能 を 無 効 す る 必 要 が あ る 。
echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose
comment
ル
ー ル に コ メ ン
ト (最 大 256 文 字 ) を
付 け る こ と が
で き る 。
--comment
comment
|
例 : |
iptables -A INPUT -i eth1 -m comment --comment "my local LAN" |
connbytes
一 つ の コ ネ ク シ ョ ン (も し く は そ の コ ネ ク シ ョ ン を 構 成 す る 2 つ の フ ロ ー の 一 方 ) で そ れ ま で に 転 送 さ れ た バ イ ト 数 や パ ケ ッ ト 数 、 も し く は パ ケ ッ ト あ た り の 平 均 バ イ ト 数 に マ ッ チ す る 。
カ ウ ン タ ー は 64 ビ ッ ト で あ り 、 し た が っ て オ ー バ ー フ ロ ー す る こ と は 考 え ら れ て い な い ;)
主 な 利 用 方 法 は 、 長 時 間 存 在 す る ダ ウ ン ロ ー ド を 検 出 し 、 こ れ ら に 印 を 付 け る こ と で 、 ト ラ フ ィ ッ ク 制 御 に お い て 艇 優 先 帯 域 を 使 う よ う に ス ケ ジ ュ ー リ ン グ で き る よ う に す る こ と で あ る 。
コ ネ ク シ ョ ン あ た り の 転 送 バ イ ト 数 は 、 ‘conntrack -L‘ 経 由 で 見 る こ と が で き 、 ctnetlink 経 由 で も ア ク セ ス す る こ と も で き る 。
ア
カ ウ ン ト 情 報
を 持 っ て い な
い コ ネ ク シ ョ
ン で は 、 こ の
マ ッ チ ン グ は
常 に false を 返 す 点
に 注 意 す る こ
と 。
"net.netfilter.nf_conntrack_acct" sysctl フ
ラ グ で 、
新 規
コ ネ ク シ ョ ン
で バ イ ト 数 /パ
ケ ッ ト 数 の 計
測 が 行 わ れ る
か が 制 御 で き
る 。 sysctl フ ラ グ が
変 更 さ れ て も
、 既 存 の コ ネ
ク シ ョ ン の ア
カ ウ ン ト 情 報
は 影 響 を 受 け
な い 。
[
!
]
--connbytes
from
[
:
to
]
パ ケ ッ ト 数 /バ イ ト 数 /平 均 パ ケ ッ ト サ イ ズ が FROM バ イ ト /パ ケ ッ ト よ り 大 き く TO バ イ ト /パ ケ ッ ト よ り も 小 さ い コ ネ ク シ ョ ン の パ ケ ッ ト に マ ッ チ す る 。 TO が 省 略 し た 場 合 は FROM の み が チ ェ ッ ク さ れ る 。 "!" を 使 う と 、 こ の 範 囲 に な い パ ケ ッ ト に マ ッ チ す る 。
--connbytes-dir { original | reply | both }
ど の パ ケ ッ ト を 計 測 す る か を 指 定 す る
--connbytes-mode { packets | bytes | avgpkt }
パ ケ ッ ト 総 数 、 転 送 バ イ ト 数 、 こ れ ま で に 受 信 し た 全 パ ケ ッ ト の 平 均 サ イ ズ (バ イ ト 単 位 ) の ど れ を チ ェ ッ ク す る か を 指 定 す る 。 "both" と "avgpkt" を 組 み 合 わ せ て 使 っ た 場 合 で 、 (HTTP の よ う に ) デ ー タ が (主 に ) 片 方 向 で の み 転 送 さ れ る 場 合 、 平 均 パ ケ ッ ト サ イ ズ は 実 際 の デ ー タ パ ケ ッ ト の 約 半 分 に な る 点 に 注 意 す る こ と 。
|
例 : |
iptables .. -m connbytes --connbytes 10000:100000 --connbytes-dir both --connbytes-mode bytes ... |
connlimit
一
つ の サ ー バ ー
に 対 す る 、 一
つ の ク ラ イ ア
ン ト IP ア ド レ ス
(ま た は ク ラ イ
ア ン ト ア ド レ
ス ブ ロ ッ ク ) か
ら の 同 時 接 続
数 を 制 限 す る
こ と が で き る
。
--connlimit-upto
n
既 存 の 接 続 数 が n 以 下 の 場 合 に マ ッ チ す る 。
--connlimit-above n
既 存 の 接 続 数 が n よ り 多 い 場 合 に マ ッ チ す る 。
--connlimit-mask prefix_length
プ レ フ ィ ッ ク ス 長 を 使 っ て ホ ス ト の グ ル ー ピ ン グ を 行 う 。 IPv4 の 場 合 に は 、 プ レ フ ィ ッ ク ス 長 は 0 以 上 32 以 下 の 値 で な け れ ば な ら な い 。 IPv6 の 場 合 に は 0 以 上 128 以 下 で な け れ ば な ら な い 。 指 定 し な か っ た 場 合 、 そ の プ ロ ト コ ル で 使 わ れ る 最 も 長 い プ レ フ ィ ッ ク ス 長 が 使 用 さ れ る 。
--connlimit-saddr
送 信 元 グ ル ー プ に 対 し て 制 限 を 適 用 す る 。 こ れ が --connlimit-daddr が 指 定 さ れ な か っ た 場 合 の デ フ ォ ル ト で あ る 。
--connlimit-daddr
宛 先 グ ル ー プ に 対 し て 制 限 を 適 用 す る 。
例 :
# ク ラ イ ア ン ト
ホ ス ト あ た り 2
つ の telnet 接 続 を 許
可 す る
iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT
# 同 じ こ と の に 行 う 別 の マ ッ チ 方 法
iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-upto 2 -j ACCEPT
# ク ラ ス C
の 送 信 元 ネ ッ
ト ワ ー ク (ネ ッ
ト マ ス ク が 24 ビ
ッ ト ) あ た り の
同 時
HTTP リ ク エ ス ト 数
を 16 ま で に 制 限
す る
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT
# リ ン ク
ロ ー カ ル ネ ッ
ト ワ ー ク か ら
の 同 時 HTTP リ ク エ
ス ト 数 を 16
ま で に 制 限 す
る
(ipv6) ip6tables -p tcp --syn --dport 80 -s fe80::/64 -m connlimit --connlimit-above 16 --connlimit-mask 64 -j REJECT
# 特 定 の ホ ス ト 宛 の コ ネ ク シ ョ ン 数 を 制 限 す る
ip6tables -p tcp --syn --dport 49152:65535 -d 2001:db8::1 -m connlimit --connlimit-above 100 -j REJECT
connmark
こ
の モ ジ ュ ー ル
は コ ネ ク シ ョ
ン に 関 連 づ け
ら れ た netfilter の mark フ
ィ ー ル ド に マ
ッ チ す る (こ の
フ ィ ー ル ド は
、 以 下 の
CONNMARK
タ
ー ゲ ッ ト で 設
定 さ れ る )。
[
!
]
--mark
value
[
/
mask
]
指 定 さ れ た mark 値 を 持 つ コ ネ ク シ ョ ン の パ ケ ッ ト に マ ッ チ す る (mask が 指 定 さ れ る と 、 比 較 の 前 に mask と の 論 理 積 (AND) が と ら れ る )。
conntrack
コ
ネ ク シ ョ ン 追
跡 (connection tracking) と 組 み
合 わ せ て 使 用
し た 場 合 に 、
こ の モ ジ ュ ー
ル を 使 う と 、
パ ケ ッ ト や コ
ネ ク シ ョ ン の
追 跡 状 態 を 知
る こ と が で き
る 。
[
!
]
--ctstate
statelist
statelist は マ ッ チ す る コ ネ ク シ ョ ン 状 態 (connection state) の リ ス ト で 、 コ ン マ 区 切 り で 指 定 す る 。 指 定 で き る 状 態 の リ ス ト は 後 述 。
[ ! ] --ctproto l4proto
指 定 さ れ た レ イ ヤ 4 の プ ロ ト コ ル に マ ッ チ す る 。 プ ロ ト コ ル は 名 前 ま た は 数 値 で 指 定 す る 。
[
!
]
--ctorigsrc
address
[
/
mask
]
[
!
]
--ctorigdst
address
[
/
mask
]
[
!
]
--ctreplsrc
address
[
/
mask
]
[
!
]
--ctrepldst
address
[
/
mask
]
順 方 向 /反 対 方 向 の コ ネ ク シ ョ ン の 送 信 元 /宛 先 ア ド レ ス に マ ッ チ す る 。
[
!
]
--ctorigsrcport
port
[
:
port
]
[
!
]
--ctorigdstport
port
[
:
port
]
[
!
]
--ctreplsrcport
port
[
:
port
]
[
!
]
--ctrepldstport
port
[
:
port
]
順 方 向 /反 対 方 向 の コ ネ ク シ ョ ン の (TCP/UDPな ど の ) 送 信 元 /宛 先 ポ ー ト ア ド レ ス 、 も し く は GRE キ ー に マ ッ チ す る 。 ポ ー ト の 範 囲 指 定 は カ ー ネ ル 2.6.38 以 降 で の み サ ポ ー ト さ れ て い る 。
[ ! ] --ctstatus statelist
statuslist は マ ッ チ す る コ ネ ク シ ョ ン 状 況 (connection status) の リ ス ト で 、 コ ン マ 区 切 り で 指 定 す る 。 指 定 で き る 状 況 の リ ス ト は 後 述 。
[ ! ] --ctexpire time [ : time ]
有 効 期 間 の 残 り 秒 数 、 ま た は そ の 範 囲 (両 端 を 含 む )に マ ッ チ す る 。
--ctdir { ORIGINAL | REPLY }
指 定 し た 方 向 に 流 れ る パ ケ ッ ト に マ ッ チ す る 。 こ の フ ラ グ が 全 く 指 定 さ れ な か っ た 場 合 、 両 方 向 の パ ケ ッ ト が マ ッ チ す る 。
--ctstate
に 指 定 で き る
状 態 は 以 下 の
通 り 。
INVALID
そ の パ ケ ッ ト は ど の 既 知 の コ ネ ク シ ョ ン と も 関 連 付 け ら れ て い な い 。
|
NEW |
そ の パ ケ ッ ト が 新 し い コ ネ ク シ ョ ン を 開 始 し よ う と し て い る 。 も し く は 、 両 方 の 方 向 で パ ケ ッ ト が 観 測 さ れ て い な い コ ネ ク シ ョ ン に 関 連 付 け ら れ る 。 |
ESTABLISHED
そ の パ ケ ッ ト が 、 両 方 向 の パ ケ ッ ト が 観 測 さ れ た コ ネ ク シ ョ ン に 関 連 付 け ら れ る 。
RELATED
そ の パ ケ ッ ト は 、 新 し い コ ネ ク シ ョ ン を 開 始 し よ う と し て い る が 、 既 存 の コ ネ ク シ ョ ン と 関 連 付 け ら れ る 。 FTP デ ー タ 転 送 や ICMP エ ラ ー な ど が 該 当 す る 。
UNTRACKED
そ の パ ケ ッ ト は 全 く 追 跡 さ れ て い な い 。 こ の 状 態 は 、 raw テ ー ブ ル で -j CT --notrack を 使 っ て 明 示 的 に そ の パ ケ ッ ト を 追 跡 し な い よ う に し て い る 場 合 に 起 こ る 。
|
SNAT |
元 の 送 信 元 ア ド レ ス が 応 答 の 宛 先 ア ド レ ス と 異 な る 場 合 に マ ッ チ す る 仮 想 的 な 状 態 。 |
||
|
DNAT |
元 の 宛 先 ア ド レ ス が 応 答 の 送 信 元 ア ド レ ス と 異 な る 場 合 に マ ッ チ す る 仮 想 的 な 状 態 。 |
--ctstatus に 指 定 で き る 値 は 以 下 の 通 り 。
|
NONE |
以 下 の い ず れ で も な い 。 |
EXPECTED
期 待 通 り の コ ネ ク シ ョ ン で あ る (つ ま り conntrack の ヘ ル パ ー が コ ネ ク シ ョ ン を セ ッ ト ア ッ プ し た )。
SEEN_REPLY
conntrack が 両 方 の 方 向 で パ ケ ッ ト を 観 測 済 で あ る 。
ASSURED
conntrack エ ン ト リ が early-expired さ れ る こ と は な い 。
CONFIRMED
Connection is confirmed: originating packet has left box.
cpu
[ ! ] --cpu number
こ の パ ケ ッ ト を 処 理 す る CPU に マ ッ チ す る 。 CPU に は 0 か ら NR_CPUS-1 の 番 号 が 振 ら れ る 。 ネ ッ ト ワ ー ク ト ラ フ ィ ッ ク を 複 数 の キ ュ ー に 分 散 さ せ る た め に RPS (Remote Packet Steering) や マ ル チ キ ュ ー NIC と 組 み 合 わ せ て 使 用 で き る 。
例 :
iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 1 -j REDIRECT --to-port 8081
Linux 2.6.36 以 降 で 利 用 可 能 。
dccp
[
!
]
--source-port
,
--sport
port
[
:
port
]
[
!
]
--destination-port
,
--dport
port
[
:
port
]
[
!
]
--dccp-types
mask
DCCP パ ケ ッ ト タ イ プ が mask の い ず れ か で あ れ ば マ ッ チ す る 。 mask は カ ン マ 区 切 り の パ ケ ッ ト タ イ プ の リ ス ト で あ る 。 指 定 で き る パ ケ ッ ト タ イ プ は REQUEST RESPONSE DATA ACK DATAACK CLOSEREQ CLOSE RESET SYNC SYNCACK INVALID で あ る 。
[ ! ] --dccp-option number
DCCP オ プ シ ョ ン が 設 定 さ れ て い る 場 合 に マ ッ チ す る 。
devgroup
パ
ケ ッ ト の 受 信
/送 信 イ ン タ ー
フ ェ ー ス の デ
バ イ ス グ ル ー
プ に マ ッ チ す
る 。
[
!
]
--src-group
name
受 信 デ バ イ ス の デ バ イ ス グ ル ー プ に マ ッ チ す る
[ ! ] --dst-group name
送 信 デ バ イ ス の デ バ イ ス グ ル ー プ に マ ッ チ す る
dscp
こ
の モ ジ ュ ー ル
は 、 IP ヘ ッ ダ ー
の TOS フ ィ ー ル ド
内 に あ る 、 6 bit の
DSCP フ ィ ー ル ド に
マ ッ チ す る 。 IETF
で は DSCP が TOS に 取
っ て 代 わ っ た
。
[
!
]
--dscp
value
(10 進 ま た は 16 進 の ) 数 値 [0-63] に マ ッ チ す る 。
[ ! ] --dscp-class class
DiffServ ク ラ ス に マ ッ チ す る 。 値 は BE, EF, AFxx, CSx ク ラ ス の い ず れ か で あ る 。 対 応 す る 数 値 に 変 換 さ れ る 。
dst (IPv6 の み )
こ
の モ ジ ュ ー ル
は 宛 先 オ プ シ
ョ ン ヘ ッ ダ ー
の パ ラ メ ー タ
に マ ッ チ す る
。
[
!
]
--dst-len
length
こ の ヘ ッ ダ ー の 全 体 の 長 さ (8進 数 )。
--dst-opts type [ : length ][ , type [ : length ]...]
数 値 の オ プ シ ョ ン タ イ プ と オ プ シ ョ ン デ ー タ の オ ク テ ッ ト 単 位 の 長 さ 。
ecn
IPv4/IPv6
と TCP ヘ ッ ダ ー の
ECN ビ ッ ト に マ ッ
チ ン グ を 行 う
。 ECN と は RFC3168 で 規
定 さ れ た Explicit Congestion
Notification (明 示 的 な 輻
輳 通 知 ) 機 構 の
こ と で あ る 。
[
!
]
--ecn-tcp-cwr
TCP ECN CWR (Congestion Window Received) ビ ッ ト が セ ッ ト さ れ て い る 場 合 に マ ッ チ す る 。
[ ! ] --ecn-tcp-ece
TCP ECN ECE (ECN Echo) ビ ッ ト が セ ッ ト さ れ て い る 場 合 に マ ッ チ す る 。
[ ! ] --ecn-ip-ect num
特 定 の IPv4/IPv6 ECT (ECN-Capable Transport) に マ ッ チ す る 。 ‘0’ 以 上 ‘3’ 以 下 の 値 を 指 定 し な け れ ば な ら な い 。
esp
こ
の モ ジ ュ ー ル
は IPsec パ ケ ッ ト の
ESP ヘ ッ ダ ー の SPI
値 に マ ッ チ す
る 。
[
!
]
--espspi
spi
[
:
spi
]
eui64 (IPv6 の み )
こ の モ ジ ュ ー ル は stateless の 自 動 で 設 定 さ れ た IPv6 ア ド レ ス の EUI-64 の 部 分 に マ ッ チ す る 。 Ethernet の 送 信 元 MAC ア ド レ ス に 基 づ く EUI-64 と IPv6 送 信 元 ア ド レ ス の 下 位 64 ビ ッ ト の 比 較 が 行 わ れ る 。 た だ し "Universal/Local" ビ ッ ト は 比 較 さ れ な い 。 こ の モ ジ ュ ー ル は 他 の リ ン ク 層 フ レ ー ム に は マ ッ チ し な い 。 こ の モ ジ ュ ー ル は PREROUTING , INPUT , FORWARD チ ェ イ ン で の み 有 効 で あ る 。
frag (IPv6 の み )
こ
の モ ジ ュ ー ル
は フ ラ グ メ ン
ト ヘ ッ ダ ー の
パ ラ メ ー タ に
マ ッ チ す る 。
[
!
]
--fragid
id
[
:
id
]
指 定 さ れ た 値 も し く は 範 囲 の ID に マ ッ チ す る 。
[ ! ] --fraglen length
こ の オ プ シ ョ ン は バ ー ジ ョ ン 2.6.10 以 降 の カ ー ネ ル で は 使 用 で き な い 。 フ ラ グ メ ン ト ヘ ッ ダ ー 長 は 変 化 し な い の で 、 こ の オ プ シ ョ ン は 意 味 を 持 た な い 。
--fragres
予 約 フ ィ ー ル ド に 0 が 入 っ て い る 場 合 に マ ッ チ す る 。
--fragfirst
最 初 の フ ラ グ メ ン ト に マ ッ チ す る 。
--fragmore
さ ら に フ ラ グ メ ン ト が 続 く 場 合 に マ ッ チ す る 。
--fraglast
最 後 の フ ラ グ メ ン ト の 場 合 に マ ッ チ す る 。
hashlimit
hashlimit uses hash buckets to express a rate limiting match (like the limit match) for a group of connections using a single iptables rule. Grouping can be done per-hostgroup (source and/or destination address) and/or per-port. It gives you the ability to express " N packets per time quantum per group" or " N bytes per seconds" (see below for some examples).
hash limit
オ プ シ ョ ン
(
--hashlimit-upto
,
--hashlimit-above
) と
--hashlimit-name
は 必 須 で
あ る 。
--hashlimit-upto
amount
[
/second
|
/minute
|
/hour
|
/day
]
単 位 時 間 あ た り の 平 均 マ ッ チ 回 数 の 最 大 値 。 数 値 で 指 定 さ れ 、 添 字 ‘/second’, ‘/minute’, ‘/hour’, ‘/day’ を 付 け る こ と も で き る 。 デ フ ォ ル ト は 3/hour で あ る 。
--hashlimit-above amount [ /second | /minute | /hour | /day ]
レ ー ト が 指 定 さ れ た 区 間 で の amount よ り 大 き い 場 合 に マ ッ チ す る 。
--hashlimit-burst amount
パ ケ ッ ト が マ ッ チ す る 回 数 の 最 大 初 期 値 : 上 の オ プ シ ョ ン で 指 定 し た 制 限 に 達 し な け れ ば 、 マ ッ チ す る ご と に 、 こ の 数 値 に な る ま で 1 個 ず つ 増 や さ れ る 。 デ フ ォ ル ト は 5 で あ る 。 バ イ ト で の レ ー ト 照 合 が 要 求 さ れ た 場 合 、 こ の オ プ シ ョ ン は 指 定 レ ー ト を 超 過 で き る バ イ ト 数 を 規 定 す る 。 こ の オ プ シ ョ ン を 使 用 す る 際 に は 注 意 が 必 要 で あ る -- エ ン ト リ が タ イ ム ア ウ ト で 削 除 さ れ る 際 に 、 バ ー ス ト 値 も リ セ ッ ト さ れ る 。
--hashlimit-mode { srcip | srcport | dstip | dstport } , ...
対 象 と す る 要 素 の カ ン マ 区 切 り の リ ス ト 。 --hashlimit-mode オ プ シ ョ ン が 指 定 さ れ な か っ た 場 合 、 hashlimit は limit と 同 じ 動 作 を す る が 、 ハ ッ シ ュ の 管 理 を 行 う コ ス ト が か か る 。
--hashlimit-srcmask prefix
When --hashlimit-mode srcip is used, all source addresses encountered will be grouped according to the given prefix length and the so-created subnet will be subject to hashlimit. prefix must be between (inclusive) 0 and 32. Note that --hashlimit-srcmask 0 is basically doing the same thing as not specifying srcip for --hashlimit-mode, but is technically more expensive.
--hashlimit-dstmask prefix
Like --hashlimit-srcmask, but for destination addresses.
--hashlimit-name foo
/proc/net/ipt_hashlimit/foo エ ン ト リ の 名 前 。
--hashlimit-htable-size buckets
ハ ッ シ ュ テ ー ブ ル の バ ケ ッ ト 数 。
--hashlimit-htable-max entries
ハ ッ シ ュ の 最 大 エ ン ト リ 数 。
--hashlimit-htable-expire msec
ハ ッ シ ュ エ ン ト リ が 何 ミ リ 秒 後 に 削 除 さ れ る か 。
--hashlimit-htable-gcinterval msec
ガ ベ ー ジ コ レ ク シ ョ ン の 間 隔 (ミ リ 秒 )。
例 :
送 信 元 ホ ス ト
に 対 す る マ ッ
チ
"192.168.0.0/16 の 各 ホ ス ト に 対 し て 1000 パ ケ ッ ト /秒 " => -s 192.168.0.0/16 --hashlimit-mode srcip --hashlimit-upto 1000/sec
送 信 元 ポ ー ト に 対 す る マ ッ チ
"192.168.1.1 の 各 サ ー ビ ス に 対 し て 100 パ ケ ッ ト /秒 " => -s 192.168.1.1 --hashlimit-mode srcport --hashlimit-upto 100/sec
サ ブ ネ ッ ト に 対 す る マ ッ チ
"10.0.0.0/8 内 の /28 サ ブ ネ ッ ト (ア ド レ ス 8 個 の グ ル ー プ ) そ れ ぞ れ に 対 し て 10000 パ ケ ッ ト /秒 " => -s 10.0.0.0/8 --hashlimit-mask 28 --hashlimit-upto 10000/min
バ イ ト /秒 に よ る マ ッ チ
"512kbyte/s を 超 過 し た フ ロ ー " => --hashlimit-mode srcip,dstip,srcport,dstport --hashlimit-above 512kb/s
バ イ ト /秒 に よ る マ ッ チ
"512kbyte/s を 超 過 す る と マ ッ チ す る が 、 1 メ ガ バ イ ト に 達 す る ま で は マ ッ チ せ ず 許 可 す る " --hashlimit-mode dstip --hashlimit-above 512kb/s --hashlimit-burst 1mb
hbh (IPv6 の み )
こ
の モ ジ ュ ー ル
は Hop-by-Hop オ プ シ ョ
ン ヘ ッ ダ ー の
パ ラ メ ー タ に
マ ッ チ す る 。
[
!
]
--hbh-len
length
こ の ヘ ッ ダ ー の 全 体 の 長 さ (8進 数 )。
--hbh-opts type [ : length ][ , type [ : length ]...]
数 値 の オ プ シ ョ ン タ イ プ と オ プ シ ョ ン デ ー タ の オ ク テ ッ ト 単 位 の 長 さ 。
helper
こ
の モ ジ ュ ー ル
は 、 指 定 さ れ
た コ ネ ク シ ョ
ン 追 跡 ヘ ル パ
ー モ ジ ュ ー ル
に 関 連 す る パ
ケ ッ ト に マ ッ
チ す る 。
[
!
]
--helper
string
指 定 さ れ た コ ネ ク シ ョ ン 追 跡 ヘ ル パ ー モ ジ ュ ー ル に 関 連 す る パ ケ ッ ト に マ ッ チ す る 。
デ フ ォ ル ト の ポ ー ト を 使 っ た ftp-セ ッ シ ョ ン に 関 連 す る パ ケ ッ ト で は 、 string に "ftp" と 書 け る 。 他 の ポ ー ト で は "-ポ ー ト 番 号 " を 値 に 付 け 加 え る 。 す な わ ち "ftp-2121" と な る 。
他 の コ ネ ク シ ョ ン 追 跡 ヘ ル パ ー で も 同 じ ル ー ル が 適 用 さ れ る 。
hl (IPv6 の み )
こ
の モ ジ ュ ー ル
は IPv6 ヘ ッ ダ ー の
Hop Limit フ ィ ー ル ド
に マ ッ チ す る
。
[
!
]
--hl-eq
value
Hop Limit が value と 同 じ 場 合 に マ ッ チ す る 。
--hl-lt value
Hop Limit が value よ り 小 さ い 場 合 に マ ッ チ す る 。
--hl-gt value
Hop Limit が value よ り 大 き い 場 合 に マ ッ チ す る 。
icmp (IPv4 の 場 合 )
こ
の 拡 張 は ‘--protocol
icmp’ が 指 定 さ れ
た 場 合 に 使 用
で き 、 以 下 の
オ プ シ ョ ン が
提 供 さ れ る :
[
!
]
--icmp-type
{
type
[
/
code
]|
typename
}
ICMP タ イ プ
を 指 定 で き る
。 タ イ プ 指 定
に は 、 数 値 の ICMP
タ イ プ 、 タ イ
プ /コ ー ド の 組
、 ま た は 以 下
の コ マ ン ド で
表 示 さ れ る ICMP タ
イ プ 名 を 指 定
で き る 。
iptables -p icmp -h
icmp6 (IPv6 の み )
こ
れ ら の 拡 張 は
‘--protocol ipv6-icmp’ ま た
は ‘--protocol icmpv6’ が 指
定 さ れ た 場 合
に 使 用 で き 、
以 下 の オ プ シ
ョ ン が 提 供 さ
れ る :
[
!
]
--icmpv6-type
type
[
/
code
]|
typename
ICMPv6 タ イ
プ を 指 定 で き
る 。 タ イ プ 指
定 に は 、 数 値
の ICMP
type
、
type
と
code
、 ま た は 以
下 の コ マ ン ド
で 表 示 さ れ る ICMPv6
タ イ プ 名 を 指
定 で き る 。
ip6tables -p ipv6-icmp -h
iprange
こ
の モ ジ ュ ー ル
は 指 定 さ れ た
任 意 の 範 囲 の IP
ア ド レ ス に マ
ッ チ す る 。
[
!
]
--src-range
from
[
-
to
]
指 定 さ れ た 範 囲 の 送 信 元 IP に マ ッ チ す る 。
[ ! ] --dst-range from [ - to ]
指 定 さ れ た 範 囲 の 宛 先 IP に マ ッ チ す る 。
ipv6header (IPv6 の み )
こ の モ ジ ュ ー ル は IPv6 拡 張 ヘ ッ ダ ー 、 上 位 レ イ ヤ の ヘ ッ ダ ー 、 も し く は そ の 両 方 に マ ッ チ す る 。
|
--soft |
パ ケ ッ ト が --header で 指 定 さ れ た ヘ ッ ダ ー の い ず れ か を 含 む 場 合 に マ ッ チ す る 。 |
[ ! ] --header header [ , header ...]
Matches the packet which EXACTLY includes all specified headers. The headers encapsulated with ESP header are out of scope. Possible header types can be:
hop | hop-by-hop
Hop-by-Hop オ プ シ ョ ン ヘ ッ ダ ー
|
dst |
宛 先 オ プ シ ョ ン ヘ ッ ダ ー |
||
|
route |
ル ー テ ィ ン グ ヘ ッ ダ ー |
||
|
frag |
フ ラ グ メ ン ト ヘ ッ ダ ー |
||
|
auth |
認 証 ヘ ッ ダ ー (AH) |
||
|
esp |
ESP (Encapsulating Security Payload) ヘ ッ ダ ー |
||
|
none |
No Next header which matches 59 in the ’Next Header field’ of IPv6 header or any IPv6 extension headers |
||
|
proto |
which matches any upper layer protocol header. A protocol name from /etc/protocols and numeric value also allowed. The number 255 is equivalent to proto . |
ipvs
IPVS コ
ネ ク シ ョ ン 属
性 に マ ッ チ す
る 。
[
!
]
--ipvs
IPVS コ ネ ク シ ョ ン に 属 す パ ケ ッ ト
以 下 の
オ プ シ ョ ン で
は --ipvs も 暗 黙 の う
ち に 指 定 さ れ
る (否 定 の 場 合
も 含 む )
[
!
]
--vproto
protocol
マ ッ チ す る VIP プ ロ ト コ ル (数 値 か 名 前 (例 え ば "tcp") で 指 定 す る )
[ ! ] --vaddr address [ / mask ]
マ ッ チ す る VIP ア ド レ ス
[ ! ] --vport port
マ ッ チ す る VIP プ ロ ト コ ル (数 値 か 名 前 (例 え ば
--vdir { ORIGINAL | REPLY }
パ ケ ッ ト フ ロ ー の 方 向
[ ! ] --vmethod { GATE | IPIP | MASQ }
使 用 す る IPVS の 転 送 方 法
[ ! ] --vportctl port
マ ッ チ す る 制 御 用 コ ネ ク シ ョ ン の VIP ポ ー ト (例 え ば FTP で あ れ ば 21)
length
こ
の モ ジ ュ ー ル
は 、 パ ケ ッ ト
の レ イ ヤ 3 ペ イ
ロ ー ド (例 え ば
レ イ ヤ 4 パ ケ ッ
ト ) の 長 さ が 、
指 定 さ れ た 値
、 ま た は 値 の
範 囲 に あ れ ば
マ ッ チ す る 。
[
!
]
--length
length
[
:
length
]
limit
こ の モ ジ ュ ー ル は 、 ト ー ク ン バ ケ ッ ト フ ィ ル タ を 使 っ て 制 限 レ ー ト の マ ッ チ を 行 う 。 こ の 拡 張 を 使 っ た ル ー ル は 、 指 定 さ れ た 制 限 に 達 す る ま で マ ッ チ す る 。 例 え ば 、 こ の モ ジ ュ ー ル は ロ グ 記 録 を 制 限 す る た め に LOG タ ー ゲ ッ ト と 組 み 合 わ せ て 使 う こ と が で き る 。
xt_limit has no
negation support - you will have to use -m hashlimit !
--hashlimit
rate
in this case whilst omitting
--hashlimit-mode.
--limit
rate
[
/second
|
/minute
|
/hour
|
/day
]
単 位 時 間 あ た り の 平 均 マ ッ チ 回 数 の 最 大 値 。 数 値 で 指 定 さ れ 、 添 字 ‘/second’, ‘/minute’, ‘/hour’, ‘/day’ を 付 け る こ と も で き る 。 デ フ ォ ル ト は 3/hour で あ る 。
--limit-burst number
パ ケ ッ ト が マ ッ チ す る 回 数 の 最 大 初 期 値 : 上 の オ プ シ ョ ン で 指 定 し た 制 限 に 達 し な け れ ば 、 マ ッ チ す る ご と に 、 こ の 数 値 に な る ま で 1 個 ず つ 増 や さ れ る 。 デ フ ォ ル ト は 5 で あ る 。
mac
[ ! ] --mac-source address
送 信 元 MAC ア ド レ ス に マ ッ チ す る 。 address は XX:XX:XX:XX:XX:XX と い う 形 式 で な け れ ば な ら な い 。 イ ー サ ー ネ ッ ト デ バ イ ス か ら 入 っ て く る パ ケ ッ ト で 、 PREROUTING , FORWARD , INPUT チ ェ イ ン に 入 る パ ケ ッ ト に し か 意 味 が な い 。
mark
こ
の モ ジ ュ ー ル
は パ ケ ッ ト に
関 連 づ け ら れ
た netfilter の mark フ ィ ー
ル ド に マ ッ チ
す る (こ の フ ィ
ー ル ド は 、 以
下 の
MARK
タ ー ゲ
ッ ト で 設 定 さ
れ る )。
[
!
]
--mark
value
[
/
mask
]
指 定 さ れ た 符 号 な し の mark 値 を 持 つ パ ケ ッ ト に マ ッ チ す る ( mask が 指 定 さ れ る と 、 比 較 の 前 に mask と の 論 理 積 (AND) が と ら れ る )。
mh (IPv6 の み )
こ
の 拡 張 は ‘--protocol
ipv6-mh’ ま た は ‘--protocol
mh’ が 指 定 さ れ
た 場 合 に ロ ー
ド さ れ る 。 以
下 の オ プ シ ョ
ン が 提 供 さ れ
る 。
[
!
]
--mh-type
type
[
:
type
]
Mobility Header (MH) タ
イ プ を 指 定 で
き る 。 タ イ プ
指 定 に は 、 数
値 の MH タ イ プ か
、 以 下 の コ マ
ン ド で 表 示 さ
れ る MH タ イ プ 名
を 指 定 で き る
。
ip6tables -p mh -h
multiport
こ
の モ ジ ュ ー ル
は 送 信 元 ポ ー
ト や 宛 先 ポ ー
ト の 集 合 に マ
ッ チ す る 。 ポ
ー ト は 15 個 ま で
指 定 で き る 。
ポ ー ト の 範 囲
指 定 (port:port) は 2 ポ ー
ト と カ ウ ン ト
さ れ る 。 こ の
モ ジ ュ ー ル が
使 用 で き る の
は
tcp
,
udp
,
udplite
,
dccp
,
sctp
の い ず れ
か と 組 み 合 わ
せ た 場 合 だ け
で あ る 。
[
!
]
--source-ports
,
--sports
port
[
,
port
|
,
port
:
port
]...
送 信 元 ポ ー ト が 指 定 さ れ た ポ ー ト の い ず れ に マ ッ チ す る 。 フ ラ グ --sports は こ の オ プ シ ョ ン の 便 利 な 別 名 で あ る 。 複 数 の ポ ー ト や ポ ー ト 範 囲 が カ ン マ 区 切 り で 指 定 で き る 。 ポ ー ト 範 囲 は コ ロ ン 区 切 り で 指 定 す る 。 し た が っ て 53,1024:65535 は ポ ー ト 53 お よ び 1024 か ら 65535 ま で の 全 ポ ー ト に マ ッ チ す る 。
[ ! ] --destination-ports , --dports port [ , port | , port : port ]...
宛 先 ポ ー ト が 指 定 さ れ た ポ ー ト の う ち の い ず れ か で あ れ ば マ ッ チ す る 。 フ ラ グ --dports は 、 こ の オ プ シ ョ ン の 便 利 な 別 名 で あ る 。
[ ! ] --ports port [ , port | , port : port ]...
送 信 元 ポ ー ト と 宛 先 ポ ー ト の 一 方 が 指 定 さ れ た ポ ー ト の い ず れ か 一 つ と 等 し け れ ば 、 マ ッ チ す る 。
nfacct
nfacct マ ッ チ ン グ は iptable に 拡 張 ア カ ウ ン テ ィ ン グ 機 構 を 提 供 す る 。 こ の マ ッ チ ン グ モ ジ ュ ー ル は ユ ー ザ ー 空 間 ス タ ン ド ア ロ ン ユ ー テ ィ リ テ ィ nfacct (8) と 一 緒 に 使 う 必 要 が あ る 。
以
下 の オ プ シ ョ
ン だ け が こ の
マ ッ チ ン グ で
使 用 で き る 。
--nfacct-name
name
こ の ル ー ル セ ッ ト が マ ッ チ す る ト ラ フ ィ ッ ク 量 を 記 録 す る の に 使 用 す る 既 存 の オ ブ ジ ェ ク ト 名 を 指 定 す る 。
こ の 拡 張 を 使 用 す る に は 、 ア カ ウ ン テ ィ ン グ オ ブ ジ ェ ク ト を 作 成 す る 必 要 が あ り ま す 。
nfacct add http-traffic
そ れ か ら 、 iptables を 使 っ て ア カ ウ ン テ ィ ン グ オ ブ ジ ェ ク ト に ト ラ フ ィ ッ ク を 関 連 付 け ま す 。
iptables -I INPUT -p tcp --sport 80 -m nfacct --nfacct-name http-traffic
iptables -I OUTPUT -p tcp --dport 80 -m nfacct --nfacct-name http-traffic
そ う す る と 、 ル ー ル に マ ッ チ し た ト ラ フ ィ ッ ク 量 を チ ェ ッ ク で き る 。
nfacct get http-traffic
{ pkts = 00000000000000000156, bytes = 00000000000000151786 } = http-traffic;
nfacct (8) は http://www.netfilter.org も し く は git.netfilter.org リ ポ ジ ト リ か ら 入 手 で き る 。
osf
osf モ
ジ ュ ー ル は 受
動 的 な OS (オ ペ レ
ー テ ィ ン グ シ
ス テ ム ) フ ィ ン
ガ ー プ リ ン テ
ィ ン グ を 行 う
。 こ の モ ジ ュ
ー ル は SYN ビ ッ ト
が セ ッ ト さ れ
た パ ケ ッ ト の
い く つ か の デ
ー タ (Window Size, MSS, オ プ
シ ョ ン と そ の
順 序 , TTL, DF な ど ) を
比 較 す る 。
[
!
]
--genre
string
受 動 的 フ ィ ン ガ ー プ リ ン テ ィ ン グ で マ ッ チ さ せ る オ ペ レ ー テ ィ ン グ シ ス テ ム の ジ ャ ン ル 。
--ttl level
パ ケ ッ ト に 対 し て 、 オ ペ レ ー テ ィ ン グ シ ス テ ム を 判 定 す る た め の 追 加 の TTL チ ェ ッ ク を 行 う 。 level に は 以 下 の 値 の い ず れ を 指 定 で き る 。
|
• |
0 - 本 当 の IP ア ド レ ス と フ ィ ン ガ ー プ リ ン ト TTL の 比 較 を 行 う 。 一 般 に LAN で 有 効 で あ る 。 |
||
|
• |
1 - IP ヘ ッ ダ ー の TTL が フ ィ ン ガ ー プ リ ン ト TTL よ り 小 さ い か チ ェ ッ ク す る 。 グ ロ ー バ ル に ル ー テ ィ ン グ 可 能 な ア ド レ ス で 有 効 で あ る 。 |
||
|
• |
2 - TTL の 比 較 を 全 く 行 わ な い 。 |
--log level
判 別 し た ジ ャ ン ル が 期 待 す る も の と 違 う 場 合 で も ロ ギ ン グ す る か ど う か 。 level に は 以 下 の い ず れ か を 指 定 で き る 。
|
• |
マ ッ チ し た シ グ ネ チ ャ ー と 不 明 な シ グ ネ チ ャ ー を す べ て 記 録 す る |
|||
|
• |
1 - 最 初 に マ ッ チ し た も の の み を 記 録 す る |
|||
|
• |
2 - マ ッ チ し た 既 知 の シ グ ネ チ ャ ー を す べ て 記 録 す る |
syslog に 以 下 の よ う な メ ッ セ ー ジ が 記 録 さ れ る 。
Windows [2000:SP3:Windows XP Pro SP1, 2000 SP3]: 11.22.33.55:4024 -> 11.22.33.44:139 hops=3 Linux [2.5-2.6:] : 1.2.3.4:42624 -> 1.2.3.5:22 hops=4
OS フ ィ ン ガ ー プ リ ン ト は nfnl_osf プ ロ グ ラ ム を 使 っ て ロ ー ド で き る 。 フ ァ イ ル か ら フ ィ ン ガ ー プ リ ン ト を ロ ー ド す る に は 以 下 の よ う に す る 。
nfnl_osf -f /usr/share/xtables/pf.os
再 度 削 除 す る に は 以 下 の よ う に す る 。
nfnl_osf -f /usr/share/xtables/pf.os -d
フ ィ ン ガ ー プ リ ン ト デ ー タ ベ ー ス は http://www.openbsd.org/cgi-bin/cvsweb/src/etc/pf.os か ら ダ ウ ン ロ ー ド で き る 。
owner
こ
の モ ジ ュ ー ル
は 、 ロ ー カ ル
で 生 成 さ れ た
パ ケ ッ ト に 対
し て 、 パ ケ ッ
ト 生 成 者 の 様
々 な 特 性 に 対
す る マ ッ チ を
行 う 。 こ の マ
ッ チ は OUTPUT チ ェ イ
ン か POSTROUTING チ ェ イ
ン で の み 有 効
で あ る 。 転 送
パ ケ ッ ト は ど
の ソ ケ ッ ト と
も 関 連 付 け ら
れ て い な い 。
カ ー ネ ル ス レ
ッ ド か ら の パ
ケ ッ ト に は 対
応 す る ソ ケ ッ
ト が あ る が 、
通 常 ソ ケ ッ ト
の 所 有 者 は い
な い 。
[
!
]
--uid-owner
username
[
!
]
--uid-owner
userid
[
-
userid
]
そ の パ ケ ッ ト の ソ ケ ッ ト の フ ァ イ ル 構 造 体 が 存 在 し 、 ソ ケ ッ ト の 所 有 者 が 指 定 さ れ た ユ ー ザ ー の 場 合 に マ ッ チ す る 。 数 値 の UID や UID の 範 囲 を 指 定 す る こ と も で き る 。
[
!
]
--gid-owner
groupname
[
!
]
--gid-owner
groupid
[
-
groupid
]
そ の パ ケ ッ ト の ソ ケ ッ ト の フ ァ イ ル 構 造 体 の 所 有 者 が 指 定 さ れ た グ ル ー プ の 場 合 に マ ッ チ す る 。 数 値 の GID や GID の 範 囲 を 指 定 す る こ と も で き る 。
[ ! ] --socket-exists
パ ケ ッ ト が ソ ケ ッ ト に 関 連 付 け ら れ て い る 場 合 に マ ッ チ す る 。
physdev
こ
の モ ジ ュ ー ル
は 、 ブ リ ッ ジ
デ バ イ ス の ス
レ ー ブ に さ れ
た 、 ブ リ ッ ジ
ポ ー ト の 入 出
力 デ バ イ ス に
マ ッ チ す る 。
こ の モ ジ ュ ー
ル は 、 ブ リ ッ
ジ に よ る 透 過
的 な IP フ ァ イ ア
ウ ォ ー ル の 基
盤 の 一 部 で あ
り 、 カ ー ネ ル
バ ー ジ ョ ン 2.5.44 以
降 で の み 有 効
で あ る 。
[
!
]
--physdev-in
name
パ ケ ッ ト が 受 信 さ れ る ブ リ ッ ジ の ポ ー ト 名 ( INPUT , FORWARD , PREROUTING チ ェ イ ン に 入 る パ ケ ッ ト の み )。 イ ン タ ー フ ェ ー ス 名 が "+" で 終 っ て い る 場 合 、 そ の 名 前 で 始 ま る 任 意 の イ ン タ ー フ ェ ー ス 名 に マ ッ チ す る 。 ブ リ ッ ジ デ バ イ ス を 通 し て 受 け 取 ら れ な か っ た パ ケ ッ ト は 、 ’!’ が 指 定 さ れ て い な い 限 り 、 こ の オ プ シ ョ ン に マ ッ チ し な い 。
[ ! ] --physdev-out name
パ ケ ッ ト を 送 信 す る こ と に な る ブ リ ッ ジ の ポ ー ト 名 ( FORWARD , OUTPUT , POSTROUTING チ ェ イ ン に 入 る パ ケ ッ ト の み )。 イ ン タ ー フ ェ ー ス 名 が "+" で 終 っ て い る 場 合 、 そ の 名 前 で 始 ま る 任 意 の イ ン タ ー フ ェ ー ス 名 に マ ッ チ す る 。 nat と mangle テ ー ブ ル の OUTPUT チ ェ イ ン で は ブ リ ッ ジ の 出 力 ポ ー ト に マ ッ チ さ せ る こ と が で き な い が 、 filter テ ー ブ ル の OUPUT チ ェ イ ン で は マ ッ チ 可 能 で あ る 。 パ ケ ッ ト が ブ リ ッ ジ デ バ イ ス か ら 送 ら れ な か っ た 場 合 、 ま た は パ ケ ッ ト の 出 力 デ バ イ ス が 不 明 で あ っ た 場 合 は 、 ’!’ が 指 定 さ れ て い な い 限 り 、 パ ケ ッ ト は こ の オ プ シ ョ ン に マ ッ チ し な い 。
[ ! ] --physdev-is-in
パ ケ ッ ト が ブ リ ッ ジ イ ン タ ー フ ェ ー ス に 入 っ た 場 合 に マ ッ チ す る 。
[ ! ] --physdev-is-out
パ ケ ッ ト が ブ リ ッ ジ イ ン タ ー フ ェ ー ス か ら 出 よ う と し た 場 合 に マ ッ チ す る 。
[ ! ] --physdev-is-bridged
パ ケ ッ ト が ブ リ ッ ジ さ れ る こ と に よ り 、 ル ー テ ィ ン グ さ れ な か っ た 場 合 に マ ッ チ す る 。 こ れ は FORWARD, POSTROUTING チ ェ イ ン に お い て の み 役 立 つ 。
pkttype
こ
の モ ジ ュ ー ル
は 、 リ ン ク 層
の パ ケ ッ ト タ
イ プ に マ ッ チ
す る 。
[
!
]
--pkt-type
{
unicast
|
broadcast
|
multicast
}
policy
こ
の モ ジ ュ ー ル
は パ ケ ッ ト を
処 理 す る IPsec が 使
用 す る ポ リ シ
ー に マ ッ チ す
る 。
--dir
{
in
|
out
}
復 号 (decapsulation) に 使 用 す る ポ リ シ ー に マ ッ チ す る か 、 カ プ セ ル 化 (encapsulation) に 使 用 す る ポ リ シ ー に マ ッ チ す る か を 指 定 す る 。 in は チ ェ イ ン PREROUTING, INPUT, FORWARD で 有 効 で 、 out は チ ェ イ ン POSTROUTING, OUTPUT, FORWARD で 有 効 で あ る 。
--pol { none | ipsec }
パ ケ ッ ト が IPsec 処 理 対 象 で あ れ ば マ ッ チ す る 。 --pol none は --strict と 一 緒 に 使 用 で き な い 。
--strict
ポ リ シ ー が 正 確 に マ ッ チ す る か 、 指 定 し た ポ リ シ ー が ポ リ シ ー の い ず れ か の ル ー ル に マ ッ チ す る か を 指 定 す る 。
そ
れ ぞ れ の ポ リ
シ ー 要 素 を 定
義 す る の に 、
以 下 の オ プ シ
ョ ン (複 数 可 ) を
使 用 す る こ と
が で き る 。
--strict
が 有 効 に な っ
て い る 場 合 、
各 要 素 に つ き
少 な く と も オ
プ シ ョ ン を 一
つ 指 定 し な け
れ ば な ら な い
。
[
!
]
--reqid
id
ポ リ シ ー ル ー ル の reqid に マ ッ チ す る 。 reqid は setkey (8) で レ ベ ル と し て unique:id を 使 っ て 指 定 で き る 。
[ ! ] --spi spi
SA の SPI に マ ッ チ す る 。
[ ! ] --proto { ah | esp | ipcomp }
カ プ セ ル 化 プ ロ ト コ ル に マ ッ チ す る 。
[ ! ] --mode { tunnel | transport }
カ プ セ ル 化 モ ー ド に マ ッ チ す る 。
[ ! ] --tunnel-src addr [ / mask ]
ト ン ネ ル モ ー ド SA の 送 信 元 エ ン ド ポ イ ン ト ア ド レ ス に マ ッ チ す る 。 --mode tunnel と の 組 み 合 わ せ で の み 有 効 。
[ ! ] --tunnel-dst addr [ / mask ]
ト ン ネ ル モ ー ド SA の 宛 先 エ ン ド ポ イ ン ト ア ド レ ス に マ ッ チ す る 。 --mode tunnel と の 組 み 合 わ せ で の み 有 効 。
|
--next |
ポ リ シ ー 定 義 の 次 の 要 素 か ら 開 始 す る 。 --strict と の 組 み 合 わ せ で の み 使 用 で き る 。 |
quota
Implements
network quotas by decrementing a byte counter with each
packet. The condition matches until the byte counter reaches
zero. Behavior is reversed with negation (i.e. the condition
does not match until the byte counter reaches zero).
[
!
]
--quota
bytes
バ イ ト 単 位 の ク ォ ー タ 。
rateest
レ ー ト 推 測 器 (rate estimator) は RATEEST タ ー ゲ ッ ト で 収 集 さ れ た 推 定 レ ー ト に マ ッ チ す る 。 bps/pps の 絶 対 値 に 対 す る マ ッ チ ン グ 、 2 つ の レ ー ト 推 測 器 の 比 較 、 2 つ の レ ー ト 推 測 器 の 差 分 に 対 す る マ ッ チ ン グ を サ ポ ー ト し て い る 。
利 用 可 能 な オ プ シ ョ ン が 分 か り や す い よ う に 、 す べ て の 可 能 な 組 み 合 わ せ を 以 下 に 示 す 。
|
• |
rateest operator rateest-bps |
||
|
• |
rateest operator rateest-pps |
||
|
• |
( rateest minus rateest-bps1 ) operator rateest-bps2 |
||
|
• |
( rateest minus rateest-pps1 ) operator rateest-pps2 |
||
|
• |
rateest1 operator rateest2 rateest-bps (without rate!) |
||
|
• |
rateest1 operator rateest2 rateest-pps (without rate!) |
||
|
• |
( rateest1 minus rateest-bps1 ) operator ( rateest2 minus rateest-bps2 ) |
||
|
• |
( rateest1 minus rateest-pps1 ) operator ( rateest2 minus rateest-pps2 ) |
--rateest-delta
(絶 対 モ ー ド で も 相 対 モ ー ド で も ) 各 レ ー ト 推 測 器 に つ い て 、 レ ー ト 推 測 器 が 推 測 し た フ ロ ー レ ー ト と BPS/PPS オ プ シ ョ ン で 指 定 さ れ た 固 定 値 の 差 分 を 計 算 す る 。 フ ロ ー レ ー ト が 指 定 さ れ た BPS/PPS よ り も 大 き い 場 合 、 負 の 値 で は な く 0 が 代 わ り に 使 用 さ れ る 。 つ ま り "max(0, rateest#_rate - rateest#_bps)" が 使 用 さ れ る 。
[ ! ] --rateest-lt
レ ー ト が 指 定 さ れ た レ ー ト か レ ー ト 推 測 器 の レ ー ト よ り も 低 い 場 合 に マ ッ チ す る 。
[ ! ] --rateest-gt
レ ー ト が 指 定 さ れ た レ ー ト か レ ー ト 推 測 器 の レ ー ト よ り も 高 い 場 合 に マ ッ チ す る 。
[ ! ] --rateest-eq
レ ー ト が 指 定 さ れ た レ ー ト か レ ー ト 推 測 器 の レ ー ト と 等 し い 場 合 に マ ッ チ す る 。
い
わ ゆ る 「 絶 対
モ ー ド 」 で は
、 使 用 で き る
レ ー ト 推 測 器
は 一 つ だ け で
あ り 、 固 定 値
に 対 す る 比 較
だ け が で き る
。 一 方 、 「 相
対 モ ー ド 」 で
は 、 2 つ の レ ー
ト 推 測 器 が 使
用 で き 、 レ ー
ト 推 測 器 ど う
し の 比 較 が で
き る 。
--rateest
name
絶 対 モ ー ド で 使 用 す る レ ー ト 推 測 器 の 名 前
--rateest1
name
--rateest2
name
相 対 モ ー ド で 使 用 す る 2 つ レ ー ト 推 測 器 の 名 前
--rateest-bps
[
value
]
--rateest-pps
[
value
]
--rateest-bps1
[
value
]
--rateest-bps2
[
value
]
--rateest-pps1
[
value
]
--rateest-pps2
[
value
]
レ ー ト 推 測 器 と 指 定 し た 値 を 、 秒 間 の バ イ ト 数 ま た は パ ケ ッ ト 数 で 比 較 す る 。 ど の オ プ シ ョ ン が ど の 場 合 に 使 用 で き る か は 上 の 箇 条 書 き の リ ス ト を 見 て ほ し い 。 単 位 を 示 す 接 尾 辞 を 付 け る こ と が で き る 。 bit, [kmgt]bit, [KMGT]ibit, Bps, [KMGT]Bps, [KMGT]iBps が 使 用 で き る 。
例 : こ の 機 能 を 、 デ ー タ コ ネ ク シ ョ ン の 開 始 時 に 利 用 可 能 帯 域 に 基 づ い て 、 FTP サ ー バ ー か ら の 出 力 デ ー タ コ ネ ク シ ョ ン を 2 つ の 回 線 に 振 り 分 け る の に 使 用 す る 場 合 。
# 出 力 レ ー ト を 推 定 す る
iptables -t mangle -A POSTROUTING -o eth0 -j RATEEST --rateest-name eth0 --rateest-interval 250ms --rateest-ewma 0.5s
iptables -t mangle -A POSTROUTING -o ppp0 -j RATEEST --rateest-name ppp0 --rateest-interval 250ms --rateest-ewma 0.5s
# 利 用 可 能 帯 域 に 基 づ い て マ ー キ ン グ を 行 う
iptables -t mangle -A balance -m conntrack --ctstate NEW -m helper --helper ftp -m rateest --rateest-delta --rateest1 eth0 --rateest-bps1 2.5mbit --rateest-gt --rateest2 ppp0 --rateest-bps2 2mbit -j CONNMARK --set-mark 1
iptables -t mangle -A balance -m conntrack --ctstate NEW -m helper --helper ftp -m rateest --rateest-delta --rateest1 ppp0 --rateest-bps1 2mbit --rateest-gt --rateest2 eth0 --rateest-bps2 2.5mbit -j CONNMARK --set-mark 2
iptables -t mangle -A balance -j CONNMARK --restore-mark
realm (IPv4 の 場 合 )
This matches the
routing realm. Routing realms are used in complex routing
setups involving dynamic routing protocols like BGP.
[
!
]
--realm
value
[
/
mask
]
Matches a given realm number (and optionally mask). If not a number, value can be a named realm from /etc/iproute2/rt_realms (mask can not be used in that case).
recent
IP ア ド レ ス の リ ス ト を 動 的 に 作 成 し 、 こ の リ ス ト に 対 す る マ ッ チ ン グ を い く つ か の 方 法 で 行 う 。
例 え ば 、 あ な た の フ ァ イ ア ウ ォ ー ル の 139 番 ポ ー ト に 接 続 し よ う と し た 「 悪 ガ キ 」 リ ス ト を 作 成 し 、 そ の ア ド レ ス か ら の こ れ 以 降 の す べ て の パ ケ ッ ト を 「 廃 棄 」 す る 。
--set
,
--rcheck
,
--update
,
--remove
は
同 時 に 使 用 で
き な い 。
--name
name
コ マ ン ド で 使 用 す る リ ス ト を 指 定 す る 。 名 前 が 指 定 さ れ な か っ た 場 合 DEFAULT が 使 用 さ れ る 。
[ ! ] --set
リ ス ト に パ ケ ッ ト の 送 信 元 ア ド レ ス を 追 加 す る 。 そ の 送 信 元 ア ド レ ス が す で に リ ス ト に あ る 場 合 は 、 既 存 の エ ン ト リ ー を 更 新 す る 。 常 に 成 功 を 返 す ( ! が 指 定 さ れ て い る 場 合 は 常 に 失 敗 を 返 す )。
--rsource
recent リ ス ト の テ ー ブ ル の 照 合 /保 存 で 、 各 パ ケ ッ ト の 送 信 元 ア ド レ ス を 使 う 。 こ れ が デ フ ォ ル ト で あ る 。
--rdest
recent リ ス ト の テ ー ブ ル の 照 合 /保 存 で 、 各 パ ケ ッ ト の 宛 先 ア ド レ ス を 使 う 。
--mask netmask
こ の recent リ ス ト に 適 用 す る ネ ッ ト マ ス ク 。
[ ! ] --rcheck
こ の パ ケ ッ ト の 送 信 元 ア ド レ ス が 現 在 リ ス ト に 含 ま れ る か を チ ェ ッ ク す る 。
[ ! ] --update
--rcheck と 同 じ だ が 、 こ の オ プ シ ョ ン で は マ ッ チ し た 場 合 に "last seen" タ イ ム ス タ ン プ を 更 新 す る 。
[ ! ] --remove
パ ケ ッ ト の 送 信 元 ア ド レ ス が 現 在 リ ス ト に 含 ま れ て い る か を チ ェ ッ ク し 、 含 ま れ て い る 場 合 、 そ の ア ド レ ス を リ ス ト か ら 削 除 し 、 ル ー ル は true を 返 す 。 ア ド レ ス が 含 ま れ な い 場 合 、 false を 返 す 。
--seconds seconds
こ の オ プ シ ョ ン は --rcheck か --update と の 組 み 合 わ せ で の み 使 用 で き る 。 使 用 さ れ た 場 合 、 ア ド レ ス が リ ス ト に 含 ま れ 、 か つ そ の ア ド レ ス が 直 近 の 指 定 さ れ た 秒 数 以 内 に 観 測 さ れ た 場 合 に の み 、 マ ッ チ す る よ う に な る 。
|
--reap |
こ の オ プ シ ョ ン は --seconds と の 組 み 合 わ せ で の み 使 用 で き る 。 使 用 さ れ た 場 合 、 最 後 に 指 定 さ れ た 秒 数 よ り 古 い エ ン ト リ ー を 破 棄 す る 。 |
--hitcount hits
こ の オ プ シ ョ ン は --rcheck か --update と の 組 み 合 わ せ て 使 用 し な け れ ば な ら な い 。 使 用 さ れ た 場 合 、 ア ド レ ス が リ ス ト に 含 ま れ 、 受 信 さ れ た パ ケ ッ ト 数 が 指 定 し た 値 以 上 の 場 合 に の み マ ッ チ す る よ う に な る 。 こ の オ プ シ ョ ン は --seconds と 共 に 使 用 す る こ と も で き 、 そ の 場 合 は 指 定 さ れ た 時 間 内 の ヒ ッ ト 数 に 対 し て 照 合 を 行 う 。 hitcount パ ラ メ ー タ の 最 大 値 は xt_recent カ ー ネ ル モ ー ド の "ip_pkt_list_tot" パ ラ メ ー タ で 規 定 さ れ る 。 こ の コ マ ン ド リ ス ト で こ の 値 よ り も 大 き な 値 を 指 定 す る と 、 そ の ル ー ル は 拒 否 さ れ る 。
|
--rttl |
こ の オ プ シ ョ ン は --rcheck か --update と の 組 み 合 わ せ で の み 使 用 で き る 。 使 用 さ れ た 場 合 、 ア ド レ ス が リ ス ト に 含 ま れ 、 か つ 現 在 の パ ケ ッ ト の TTL が --set ル ー ル に ヒ ッ ト し た パ ケ ッ ト の TTL に マ ッ チ す る 場 合 に の み マ ッ チ す る よ う に な る 。 こ の オ プ シ ョ ン は 、 送 信 元 ア ド レ ス を 偽 装 す る 人 が 偽 り の パ ケ ッ ト を 送 信 し て 、 こ の モ ジ ュ ー ル を 使 っ て あ な た の サ イ ト へ の 他 の ア ク セ ス が で き な い よ う に す る DoS 攻 撃 が あ る 場 合 な ど に 役 に 立 つ か も し れ な い 。 |
例 :
iptables -A FORWARD -m recent --name badguy --rcheck --seconds 60 -j DROP
iptables -A FORWARD -p tcp -i eth0 --dport 139 -m recent --name badguy --set -j DROP
/proc/net/xt_recent/* は 現 在 の ア ド レ ス の リ ス ト と 各 リ ス ト の 各 エ ン ト リ ー の 情 報 で あ る 。
/proc/net/xt_recent/
の 各 フ ァ イ ル
は 、 読 み 出 し
て 現 在 の リ ス
ト を 確 認 す る
こ と が で き る
。 ま た 、 以 下
の コ マ ン ド を
使 っ て 、 こ れ
ら の フ ァ イ ル
に 書 き 込 ん で
リ ス ト を 変 更
す る こ と が で
き る 。
echo +
addr
>/proc/net/xt_recent/DEFAULT
DEFAULT リ ス ト に addr を 追 加 す る
echo - addr >/proc/net/xt_recent/DEFAULT
DEFAULT リ ス ト か ら addr を 削 除 す る
echo / >/proc/net/xt_recent/DEFAULT
DEFAULT リ ス ト を フ ラ ッ シ ュ (全 エ ン ト リ ー を 削 除 ) す る
モ
ジ ュ ー ル 自 体
も パ ラ メ ー タ
ー を 取 り 、 デ
フ ォ ル ト は 以
下 の 通 り で あ
る 。
ip_list_tot
=
100
テ ー ブ ル 単 位 の 記 録 ア ド レ ス 数 。
ip_pkt_list_tot = 20
ア ド レ ス 単 位 の 記 録 パ ケ ッ ト 数 。
ip_list_hash_size = 0
ハ ッ シ ュ テ ー ブ ル サ イ ズ 。 0 は ip_list_tot に 基 づ い て 計 算 す る こ と を 意 味 す る 。 デ フ ォ ル ト は 512。
ip_list_perms = 0644
/proc/net/xt_recent/* フ ァ イ ル の ア ク セ ス 許 可 モ ー ド 。
ip_list_uid = 0
/proc/net/xt_recent/* フ ァ イ ル の 数 値 ID で の 所 有 者 。
ip_list_gid = 0
/proc/net/xt_recent/* フ ァ イ ル の 数 値 ID で の グ ル ー プ 所 有 者 。
rpfilter
パ
ケ ッ ト に 対 し
て reverse path フ ィ ル タ
ー テ ス ト を 行
う 。 パ ケ ッ ト
に 対 す る 応 答
が パ ケ ッ ト が
到 着 し た イ ン
タ ー フ ェ ー ス
と 同 じ イ ン タ
ー フ ェ ー ス か
ら 送 信 さ れ る
場 合 、 そ の パ
ケ ッ ト に マ ッ
チ す る 。 カ ー
ネ ル 内 の rp_filter と
異 な り 、 IPsec で 保
護 さ れ た パ ケ
ッ ト が 特 別 扱
い さ れ な い 点
に 注 意 す る こ
と 。 必 要 な 場
合 は 、 こ の マ
ッ チ を ポ リ シ
ー マ ッ チ と 組
み 合 わ せ て 使
う こ と 。 ま た
、 ル ー プ バ ッ
ク イ ン タ ー フ
ェ ー ス 経 由 で
到 着 し た パ ケ
ッ ト は 常 に 許
可 さ れ る 。 こ
の マ ッ チ は raw テ
ー ブ ル ま た は mangle
テ ー ブ ル の PREROUTING
チ ェ イ ン で の
み 使 用 で き る
。
--loose
選 択 さ れ た 出 力 デ バ イ ス が 期 待 さ れ た も の で は な い 場 合 で あ っ て も 、 reverse path フ ィ ル タ ー テ ス ト の マ ッ チ を 行 う こ と を 指 示 す る 。
--validmark
reverse path の 経 路 検 索 実 行 時 に そ の パ ケ ッ ト の nfmark 値 も 使 用 す る 。
--accept-local
ロ ー カ ル マ シ ン に も 割 り 当 て ら れ て い る 送 信 元 ア ド レ ス を 持 つ ネ ッ ト ワ ー ク か ら 到 着 し た パ ケ ッ ト を 許 可 す る 。
--invert
マ ッ チ の 意 味 を 逆 に す る 。 reverse path フ ィ ル タ ー テ ス ト に 合 格 し た パ ケ ッ ト に マ ッ チ す る の で は な く 、 テ ス ト に 失 敗 し た パ ケ ッ ト に マ ッ チ す る 。
reverse path フ ィ ル タ ー テ ス ト に 失 敗 し た パ ケ ッ ト を ロ ギ ン グ し 破 棄 す る 例
iptables -t raw -N RPFILTER
iptables -t raw -A RPFILTER -m rpfilter -j RETURN
iptables -t raw -A RPFILTER -m limit --limit 10/minute -j NFLOG --nflog-prefix "rpfilter drop"
iptables -t raw -A RPFILTER -j DROP
iptables -t raw -A PREROUTING -j RPFILTER
失 敗 し た パ ケ ッ ト を ド ロ ッ プ す る が 、 ロ ギ ン グ を 行 わ な い 例
iptables -t raw -A RPFILTER -m rpfilter --invert -j DROP
rt (IPv6 の み )
IPv6 ル
ー テ ィ ン グ ヘ
ッ ダ ー に 対 し
て マ ッ チ す る
。
[
!
]
--rt-type
type
指 定 し た タ イ プ (数 値 ) に マ ッ チ す る 。
[ ! ] --rt-segsleft num [ : num ]
‘segments left’ フ ィ ー ル ド (範 囲 ) に マ ッ チ す る 。
[ ! ] --rt-len length
こ の ヘ ッ ダ ー の 長 さ に マ ッ チ す る 。
--rt-0-res
予 約 フ ィ ー ル ド (type=0) に も マ ッ チ す る 。
--rt-0-addrs addr [ , addr ...]
type=0 の ア ド レ ス (リ ス ト ) に マ ッ チ す る 。
--rt-0-not-strict
type=0 の ア ド レ ス の リ ス ト は 厳 密 な リ ス ト で は な い 。
sctp
[
!
]
--source-port
,
--sport
port
[
:
port
]
[
!
]
--destination-port
,
--dport
port
[
:
port
]
[
!
]
--chunk-types
{
all
|
any
|
only
}
chunktype
[
:
flags
] [...]
大 文 字 の フ ラ グ 文 字 は そ の フ ラ グ が セ ッ ト さ れ て い る 場 合 に マ ッ チ し 、 小 文 字 の フ ラ グ 文 字 は セ ッ ト さ れ て い な い 場 合 に マ ッ チ す る こ と を 指 示 す る 。
チ ャ ン ク 種 別 : DATA INIT INIT_ACK SACK HEARTBEAT HEARTBEAT_ACK ABORT SHUTDOWN SHUTDOWN_ACK ERROR COOKIE_ECHO COOKIE_ACK ECN_ECNE ECN_CWR SHUTDOWN_COMPLETE ASCONF ASCONF_ACK FORWARD_TSN
チ
ャ ン ク 種 別 で
利 用 可 能 な フ
ラ グ
DATA I U B E i u b e
ABORT T t
SHUTDOWN_COMPLETE T t
(小 文 字 は フ ラ グ を 「 オ フ 」 に す る こ と を 、 大 文 字 は 「 オ ン 」 に す る こ と を 意 味 す る )
例 :
iptables -A INPUT -p sctp --dport 80 -j DROP
iptables -A INPUT -p sctp --chunk-types any DATA,INIT -j DROP
iptables -A INPUT -p sctp --chunk-types any DATA:Be -j ACCEPT
set
こ
の モ ジ ュ ー ル
は
ipsec
(8) で 定 義 で
き る IP 集 合 に マ
ッ チ す る 。
[
!
]
--match-set
setname
flag
[
,
flag
]...
where flags are the comma separated list of src and/or dst specifications and there can be no more than six of them. Hence the command
iptables -A FORWARD -m set --match-set test src,dst
will match packets, for which (if the set type is ipportmap) the source address and destination port pair can be found in the specified set. If the set type of the specified set is single dimension (for example ipmap), then the command will match packets for which the source address can be found in the specified set.
--return-nomatch
If the --return-nomatch option is specified and the set type supports the nomatch flag, then the matching is reversed: a match with an element flagged with nomatch returns true , while a match with a plain element returns false .
! --update-counters
If the --update-counters flag is negated, then the packet and byte counters of the matching element in the set won’t be updated. Default the packet and byte counters are updated.
! --update-subcounters
If the --update-subcounters flag is negated, then the packet and byte counters of the matching element in the member set of a list type of set won’t be updated. Default the packet and byte counters are updated.
[ ! ] --packets-eq value
If the packet is matched an element in the set, match only if the packet counter of the element matches the given value too.
--packets-lt value
If the packet is matched an element in the set, match only if the packet counter of the element is less than the given value as well.
--packets-gt value
If the packet is matched an element in the set, match only if the packet counter of the element is greater than the given value as well.
[ ! ] -bytes-eq value
If the packet is matched an element in the set, match only if the byte counter of the element matches the given value too.
--bytes-lt value
If the packet is matched an element in the set, match only if the byte counter of the element is less than the given value as well.
--bytes-gt value
If the packet is matched an element in the set, match only if the byte counter of the element is greater than the given value as well.
The packet and byte counters related options and flags are ignored when the set was defined without counter support.
The option --match-set can be replaced by --set if that does not clash with an option of other extensions.
Use of -m set requires that ipset kernel support is provided, which, for standard kernels, is the case since Linux 2.6.39.
socket
This matches if
an open TCP/UDP socket can be found by doing a socket lookup
on the packet. It matches if there is an established or
non-zero bound listening socket (possibly with a non-local
address). The lookup is performed using the
packet
tuple of TCP/UDP packets, or the original TCP/UDP header
embedded
in an ICMP/ICPMv6 error packet.
--transparent
非 透 過 (non-transparent) ソ ケ ッ ト を 無 視 す る 。
--nowildcard
Do not ignore sockets bound to ’any’ address. The socket match won’t accept zero-bound listeners by default, since then local services could intercept traffic that would otherwise be forwarded. This option therefore has security implications when used to match traffic being forwarded to redirect such packets to local machine with policy routing. When using the socket match to implement fully transparent proxies bound to non-local addresses it is recommended to use the --transparent option instead.
Example (assuming packets with mark 1 are delivered locally):
-t mangle -A PREROUTING -m socket --transparent -j MARK --set-mark 1
state
"state"
拡 張 は "conntrack" モ
ジ ュ ー ル の サ
ブ セ ッ ト で あ
る 。 "state" を 使
う と 、 パ ケ ッ
ト に つ い て の
コ ネ ク シ ョ ン
追 跡 状 態 を 参
照 で き る 。
[
!
]
--state
state
state は マ ッ チ す る コ ネ ク シ ョ ン 状 態 の カ ン マ 区 切 り の リ ス ト で あ る 。 "conntrack" が 理 解 で き る 状 態 の 一 部 だ け が 指 定 で き る 。 指 定 で き る の は INVALID , ESTABLISHED , NEW , RELATED , UNTRACKED で あ る 。 こ れ ら の 説 明 は こ の マ ニ ュ ア ル ペ ー ジ の "conntrack" の 説 明 を 参 照 の こ と 。
statistic
こ の モ ジ ュ ー ル は 統 計 的 な 条 件 に 基 づ い た パ ケ ッ ト の マ ッ チ ン グ を 行 う 。 二 つ の モ ー ド が サ ポ ー ト さ れ て お り 、 --mode オ プ シ ョ ン で 設 定 で き る 。
サ
ポ ー ト さ れ て
い る オ プ シ ョ
ン :
--mode
mode
マ ッ チ ン グ ル ー ル の マ ッ チ ン グ モ ー ド を 設 定 す る 。 サ ポ ー ト さ れ て い る モ ー ド は random と nth で あ る 。
[ ! ] --probability p
ラ ン ダ ム に パ ケ ッ ト が マ ッ チ す る 確 率 を 設 定 す る 。 random モ ー ド で の み 機 能 す る 。 p は 0.0 と 1.0 の 範 囲 で な け れ ば な ら な い 。 サ ポ ー ト さ れ て い る 粒 度 は 1/2147483648 で あ る 。
[ ! ] --every n
n パ ケ ッ ト に 1 つ マ ッ チ す る 。 nth モ ー ド で の み 機 能 す る ( --packet オ プ シ ョ ン も 参 照 )。
--packet p
nth モ ー ド で カ ウ ン タ ー の 初 期 値 を 設 定 す る (0 <= p <= n-1, デ フ ォ ル ト は 0)。
string
こ
の モ ジ ュ ー ル
は 、 い く つ か
の パ タ ー ン マ
ッ チ 手 法 を 用
い て 指 定 さ れ
た 文 字 列 と の
マ ッ チ を 行 う
。 Linux カ ー ネ ル 2.6.14
以 上 が 必 要 で
あ る 。
--algo
{
bm
|
kmp
}
パ タ ー ン マ ッ チ ン グ 手 法 を 選 択 す る (bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)
--from offset
マ ッ チ ン グ の 検 索 を 開 始 す る オ フ セ ッ ト を 設 定 す る 。 指 定 さ れ な か っ た 場 合 の デ フ ォ ル ト は 0 で あ る 。
--to offset
検 索 を 終 了 す る オ フ セ ッ ト を 設 定 す る 。 バ イ ト offset -1 (バ イ ト 番 号 は 0 か ら 開 始 ) が 検 索 範 囲 の 最 終 バ イ ト と な る 。 指 定 さ れ な か っ た 場 合 、 デ フ ォ ル ト は パ ケ ッ ト サ イ ズ で あ る 。
[ ! ] --string pattern
指 定 さ れ た パ タ ー ン に マ ッ チ す る 。
[ ! ] --hex-string pattern
指 定 さ れ た 16 進 表 記 の パ タ ー ン に マ ッ チ す る 。
|
例 : |
# 文
字 列 パ タ ー ン
は 単 純 な テ キ
ス ト 文 字 を 探
す の に 使 用 で
き る 。
iptables -A INPUT -p tcp --dport 80 -m string --algo bm
--string ’GET /index.html’ -j LOG
16 進
数 文 字 列 の パ
タ ー ン は 表 示
可 能 文 字 以 外
を 検 索 す る の
に 使 用 で き る
。 |0D 0A| や |0D0A| な ど 。
iptables -p udp --dport 53 -m string --algo bm --from 40
--to 57 --hex-string
’|03|www|09|netfilter|03|org|00|’
tcp
こ
れ ら の 拡 張 は
‘--protocol tcp’ が 指 定
さ れ 場 合 に 使
用 で き る 。 以
下 の オ プ シ ョ
ン が 提 供 さ れ
る :
[
!
]
--source-port
,
--sport
port
[
:
port
]
送 信 元 ポ ー ト ま た は ポ ー ト 範 囲 の 指 定 。 サ ー ビ ス 名 ま た は ポ ー ト 番 号 を 指 定 で き る 。 first : last と い う 形 式 で 、 2 つ の 番 号 を 含 む 範 囲 を 指 定 す る こ と も で き る 。 最 初 の ポ ー ト を 省 略 し た 場 合 、 "0" を 仮 定 す る 。 最 後 の ポ ー ト を 省 略 し た 場 合 、 "65535" を 仮 定 す る 。 最 初 の ポ ー ト が 最 後 の ポ ー ト よ り 大 き い 場 合 、 2 つ は 入 れ 換 え ら れ る 。 フ ラ グ --sport は 、 こ の オ プ シ ョ ン の 便 利 な 別 名 で あ る 。
[ ! ] --destination-port , --dport port [ : port ]
宛 先 ポ ー ト ま た は ポ ー ト 範 囲 の 指 定 。 フ ラ グ --dport は 、 こ の オ プ シ ョ ン の 便 利 な 別 名 で あ る 。
[ ! ] --tcp-flags mask comp
TCP フ ラ グ
が 指 定 さ れ た
も の と 等 し い
場 合 に マ ッ チ
す る 。 第 1 引 き
数
mask
は 評 価 対
象 と す る フ ラ
グ で 、 コ ン マ
区 切 り の リ ス
ト で あ る 。 第 2
引 き 数
comp
は 必
ず 設 定 し な け
れ ば な ら な い
フ ラ グ で 、 コ
ン マ 区 切 り の
リ ス ト で あ る
。 指 定 で き る
フ ラ グ は
SYN ACK FIN RST URG
PSH ALL NONE
で あ る 。
よ っ て 、 コ マ
ン ド
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN
は 、 SYN フ ラ グ が
設 定 さ れ ACK, FIN, RST フ
ラ グ が 設 定 さ
れ て い な い パ
ケ ッ ト に の み
マ ッ チ す る 。
[ ! ] --syn
SYN ビ ッ ト が 設 定 さ れ ACK, RST, FIN ビ ッ ト が ク リ ア さ れ て い る TCP パ ケ ッ ト に の み マ ッ チ す る 。 こ の よ う な パ ケ ッ ト は TCP コ ネ ク シ ョ ン の 開 始 要 求 に 使 わ れ る 。 例 え ば 、 あ る イ ン タ ー フ ェ ー ス に 入 っ て く る こ の よ う な パ ケ ッ ト を ブ ロ ッ ク す れ ば 、 内 側 へ の TCP コ ネ ク シ ョ ン は 禁 止 さ れ る が 、 外 側 へ の TCP コ ネ ク シ ョ ン に は 影 響 し な い 。 こ れ は --tcp-flags SYN,RST,ACK,FIN SYN と 等 し い 。 "--syn" の 前 に "!" フ ラ グ を 置 く と 、 SYN ビ ッ ト が ク リ ア さ れ ACK と RST ビ ッ ト が 設 定 さ れ て い る TCP パ ケ ッ ト に の み マ ッ チ す る 。
[ ! ] --tcp-option number
TCP オ プ シ ョ ン が 設 定 さ れ て い る 場 合 に マ ッ チ す る 。
tcpmss
TCP ヘ
ッ ダ ー の TCP MSS (maximum segment
size) フ ィ ー ル ド に
マ ッ チ す る 。 TCP
の SYN パ ケ ッ ト か
SYN/ACK パ ケ ッ ト に
対 し て の み 利
用 で き る 。 MSS の
ネ ゴ シ エ ー シ
ョ ン は コ ネ ク
シ ョ ン 開 始 時
の TCP ハ ン ド シ ェ
イ ク 中 だ け だ
か ら で あ る 。
[
!
]
--mss
value
[
:
value
]
指 定 さ れ た TCP MSS 値 か 範 囲 に マ ッ チ す る 。
time
こ
の モ ジ ュ ー ル
は パ ケ ッ ト の
到 着 時 刻 /日 付
が 指 定 さ れ た
範 囲 内 の 場 合
に マ ッ チ す る
。 す べ て の オ
プ シ ョ ン が 任
意 オ プ シ ョ ン
で 、 複 数 指 定
し た 場 合 は AND と
解 釈 さ れ る 。
デ フ ォ ル ト で
は す べ て の 時
刻 は UTC と 解 釈 さ
れ る 。
--datestart
YYYY
[
-
MM
[
-
DD
[
T
hh
[
:
mm
[
:
ss
]]]]]
--datestop
YYYY
[
-
MM
[
-
DD
[
T
hh
[
:
mm
[
:
ss
]]]]]
指 定 さ れ た 時 刻 (日 付 も 含 む ) の 範 囲 に あ る 場 合 に マ ッ チ す る 。 時 刻 は ISO 8601 "T" 表 記 で な け れ ば な ら な い 。 指 定 可 能 な 範 囲 は 1970-01-01T00:00:00 か ら 2038-01-19T04:17:07 で あ る 。
--datestart と --datestop は 、 指 定 さ れ な か っ た 場 合 、 そ れ ぞ れ 1970-01-01 と 2038-01-19 と み な さ れ ま す 。
--timestart
hh
:
mm
[
:
ss
]
--timestop
hh
:
mm
[
:
ss
]
指 定 さ れ た 時 刻 (日 付 は 含 ま な い ) の 範 囲 に あ る 場 合 に マ ッ チ す る 。 指 定 可 能 な 範 囲 は 00:00:00 か ら 23:59:59 で あ る 。 ("06:03" の よ う に ) 先 頭 に 0 を 付 け て も よ い 。 こ の 場 合 も 10 進 数 と し て 正 し く 解 釈 さ れ る 。
[ ! ] --monthdays day [ , day ...]
指 定 さ れ た 月 の 日 付 に マ ッ チ す る 。 指 定 可 能 な 値 は 1 か ら 31 で あ る 。 も ち ろ ん 31 を 指 定 し た 場 合 31 日 が な い 月 で は マ ッ チ し な い 。 同 じ こ と が 2 月 29 日 に つ い て も 言 え る 。
[ ! ] --weekdays day [ , day ...]
指 定 し た 曜 日 に マ ッ チ す る 。 指 定 可 能 な 値 は Mon , Tue , Wed , Thu , Fri , Sat , Sun お よ び 1 か ら 7 の 値 で あ る 。 ま た 、 2 文 字 の 曜 日 指 定 ( Mo , Tu な ど ) も 使 用 で き る 。
--contiguous
--timestop が --timestart よ り も 小 さ い 場 合 、 複 数 の 期 間 で は な く 、 一 つ の 時 間 帯 と し て マ ッ チ す る よ う に す る 。 例 を 参 照 。
--kerneltz
パ ケ ッ ト が 時 刻 指 定 に マ ッ チ す る か を 判 定 す る 際 に UTC で は な く カ ー ネ ル タ イ ム ゾ ー ン を 使 用 す る 。
About kernel timezones: Linux keeps the system time in UTC, and always does so. On boot, system time is initialized from a referential time source. Where this time source has no timezone information, such as the x86 CMOS RTC, UTC will be assumed. If the time source is however not in UTC, userspace should provide the correct system time and timezone to the kernel once it has the information.
Local time is a feature on top of the (timezone independent) system time. Each process has its own idea of local time, specified via the TZ environment variable. The kernel also has its own timezone offset variable. The TZ userspace environment variable specifies how the UTC-based system time is displayed, e.g. when you run date(1), or what you see on your desktop clock. The TZ string may resolve to different offsets at different dates, which is what enables the automatic time-jumping in userspace. when DST changes. The kernel’s timezone offset variable is used when it has to convert between non-UTC sources, such as FAT filesystems, to UTC (since the latter is what the rest of the system uses).
The caveat with the kernel timezone is that Linux distributions may ignore to set the kernel timezone, and instead only set the system time. Even if a particular distribution does set the timezone at boot, it is usually does not keep the kernel timezone offset - which is what changes on DST - up to date. ntpd will not touch the kernel timezone, so running it will not resolve the issue. As such, one may encounter a timezone that is always +0000, or one that is wrong half of the time of the year. As such, using --kerneltz is highly discouraged.
例 を い く つ か 。 週 末 に マ ッ チ さ せ る 場 合 :
-m time --weekdays Sa,Su
国 の 祝 日 に (一 度 だ け ) マ ッ チ さ せ る 場 合 :
-m time --datestart 2007-12-24 --datestop 2007-12-27
終 了 時 刻 も 実 際 に は 含 ま れ る の で 、 新 年 の 最 初 の 1 秒 に マ ッ チ し な い よ う に 終 了 時 刻 を 以 下 の よ う に 指 定 す る 必 要 が あ る :
-m time --datestart 2007-01-01T17:00 --datestop 2007-01-01T23:59:59
昼 御 飯 の 時 間 帯 :
-m time --timestart 12:30 --timestop 13:30
第 4 金 曜 日 :
-m time --weekdays Fr --monthdays 22,23,24,25,26,27,28
(こ れ は 数 学 的 な 性 質 を 利 用 し て い る 点 に 留 意 す る こ と 。 一 つ の ル ー ル で 「 第 4 木 曜 日 ま た は 第 4 金 曜 日 」 と 指 定 す る こ と は で き な い 。 複 数 ル ー ル で 指 定 す る こ と は で き る が 。 )
日 を ま た ぐ マ ッ チ ン グ は 期 待 す る よ う に は 動 か な い だ ろ う 。 例 え ば 、
-m time --weekdays Mo --timestart 23:00 --timestop 01:00 は 、 月 曜 日 の 0 時 か ら 午 前 1 時 の 1 時 間 に マ ッ チ し 、 そ の 後 さ ら に 23 時 か ら の 1 時 間 に も マ ッ チ す る 。 こ れ が 希 望 通 り で な い 場 合 、 例 え ば 、 月 曜 日 23 時 か ら 2 時 間 に マ ッ チ さ せ た い 場 合 は 、 上 記 に 追 加 で --contiguous オ プ シ ョ ン も 指 定 す る 必 要 が あ る 。
tos
こ
の モ ジ ュ ー ル
は IPv4 ヘ ッ ダ ー の 8
ビ ッ ト の Type of Service フ
ィ ー ル ド (す な
わ ち 上 位 ビ ッ
ト を 含 ま れ る )
も し く は IPv6 ヘ ッ
ダ ー の (8 ビ ッ ト
の ) Priority フ ィ ー ル
ド に マ ッ チ す
る 。
[
!
]
--tos
value
[
/
mask
]
指 定 さ れ た TOS マ ー ク 値 を 持 つ パ ケ ッ ト に マ ッ チ す る 。 mask が 指 定 さ れ る と 、 比 較 の 前 に TOS マ ー ク 値 と の 論 理 積 (AND) が と ら れ る )。
[ ! ] --tos symbol
IPv4 の tos フ ィ ー ル ド に 対 す る マ ッ チ を 指 定 す る 際 に シ ン ボ ル 名 を 使 う こ と が で き る 。 iptables を -m tos -h で 呼 び 出 す と 、 利 用 可 能 な TOS 名 の 一 覧 を 得 る こ と が で き る 。 シ ン ボ ル 名 を 使 っ た 場 合 、 mask と し て 0x3F が 使 用 さ れ る (0x3F は ECN ビ ッ ト 以 外 の 全 ビ ッ ト で あ る )。
ttl (IPv4 の 場 合 )
こ
の モ ジ ュ ー ル
は IP ヘ ッ ダ ー の
time to live フ ィ ー ル ド
に マ ッ チ す る
。
[
!
]
--ttl-eq
ttl
指 定 さ れ た TTL 値 に マ ッ チ す る 。
--ttl-gt ttl
TTL が 指 定 さ れ た TTL 値 よ り 大 き け れ ば マ ッ チ す る 。
--ttl-lt ttl
TTL が 指 定 さ れ た TTL 値 よ り 小 さ け れ ば マ ッ チ す る 。
u32
U32 は
、 パ ケ ッ ト か
ら 最 大 4 バ イ ト
の 数 値 を 取 り
出 し て 、 指 定
し た 値 を 持 つ
か の 検 査 を 行
う 。 ど こ を 取
り 出 す か の 指
定 は 汎 用 的 に
な っ て お り 、 TCP
ヘ ッ ダ ー や ペ
イ ロ ー ド か ら
指 定 し た オ フ
セ ッ ト の デ ー
タ を 取 り 出 す
こ と が で き る
。
[
!
]
--u32
tests
引 き 数 は 、 以 下 で 説 明 す る 小 さ な 言 語 の プ ロ グ ラ ム に な る 。
tests := location "=" value | tests "&&" location "=" value
value := range | value "," range
range := number | number ":" number
数 字 1 個 n は n:n と 同 じ も の と 解 釈 さ れ る 。 n:m は >=n か つ <=m の 範 囲 の 数 字 と 解 釈 さ れ る 。
|
location := number | location operator number |
||
|
operator := "&" | "<<" | ">>" | "@" |
オ ペ レ ー タ ー & , << , >> , && は C と 同 じ 意 味 で あ る 。 = は 集 合 の 所 属 を 検 査 す る オ ペ レ ー タ ー で 、 値 は 集 合 と し て 記 述 す る 。 @ オ ペ レ ー タ ー は 、 次 の ヘ ッ ダ ー へ の 移 動 に 使 う オ ペ レ ー タ ー で 、 後 で 詳 し く 説 明 す る 。
現 在 の と こ ろ 、 テ ス ト の 大 き さ に は い く つ か 実 装 か ら 来 る 制 約 が あ る 。
|
* |
u32 引 き 数 あ た り の " = " は 最 大 10 個 ま で (" && " は 9 個 ま で ) |
||
|
* |
value あ た り の range は 10 個 ま で (カ ン マ は 9 個 ま で ) |
||
|
* |
一 つ の location あ た り の number は 最 大 10 個 ま で (operator は 9 個 ま で ) |
location の 意 味 を 説 明 す る た め に 、 location を 解 釈 す る 以 下 の よ う な マ シ ン を 考 え て み る 。 3 つ の レ ジ ス タ ー が あ る 。
A は char * 型 で 、 最 初 は IP ヘ ッ ダ ー の ア ド レ ス が 入 っ て い る 。
B と C は 32 ビ ッ ト 整 数 で 、 最 初 は 0 で あ る 。
命 令 は 以 下 の 通 り 。
number B = number;
C = (*(A+B)<<24) + (*(A+B+1)<<16) + (*(A+B+2)<<8) + *(A+B+3)
&number C = C & number
<< number C = C << number
>> number C = C >> number
@number A = A + C; こ の 後 、 命 令 の 数 字 を 実 行 す る
[skb->data,skb->end] 以 外 へ の メ モ リ ア ク セ ス は す べ て マ ッ チ 失 敗 と な る 。 そ れ 以 外 の 場 合 、 計 算 の 結 果 が C の 最 終 的 な 値 と な る 。
ホ ワ イ ト ス ペ ー ス を 入 れ る こ と は で き る が 、 テ ス ト で は 必 須 で は な い 。 し た だ し 、 テ ス ト に 含 ま れ る 文 字 は シ ェ ル で の ク ォ ー ト が 必 要 な 場 合 も よ く あ る の で 、 引 き 数 全 体 を ク ォ ー ト で 囲 ん で お く と よ い だ ろ う 。
例 :
ト ー タ ル 長 が 256 以 上 の IP パ ケ ッ ト に マ ッ チ す る
IP ヘ ッ ダ ー で は バ イ ト 2-3 に ト ー タ ル 長 フ ィ ー ル ド が あ る 。
--u32 " 0 & 0xFFFF = 0x100:0xFFFF "
バ イ ト 0-3 を 読 み 出 し 、
0xFFFF (バ イ ト 2-3 に 対 応 ) の 論 理 積 (AND) を 取 り 、 そ の 値 が 範 囲 [0x100:0xFFFF] に あ る か 検 査 す る 。
例 : (も っ と 実 用 的 な 、 し た が っ て も っ と 複 雑 な 例 )
ICMP タ イ プ が 0 の ICMP パ ケ ッ ト に マ ッ チ す る
ま ず ICMP パ ケ ッ ト か ど う か 検 査 す る 。 バ イ ト 9 (プ ロ ト コ ル ) = 1 で あ れ ば 真 。
--u32 " 6 & 0xFF = 1 && ...
バ イ ト 6-9 を 読 み 出 し 、 & を 使 っ て バ イ ト 6-8 を 取 り 除 き 、 得 ら れ た 値 を 1 と 比 較 す る 。 次 に 、 フ ラ グ メ ン ト で は な い こ と を 検 査 す る (フ ラ グ メ ン ト の 場 合 、 パ ケ ッ ト は ICMP パ ケ ッ ト の 一 部 か も し れ な い が 、 常 に そ う だ と は 言 え な い )。 注 意 : 一 般 的 に IP ヘ ッ ダ ー よ り 先 に あ る も の と マ ッ チ を 行 う 場 合 に は こ の 検 査 は 必 要 で あ る 。 こ の パ ケ ッ ト が (フ ラ グ メ ン ト で は な い ) 完 全 な パ ケ ッ ト で あ れ ば 、 バ イ ト 6 の 最 後 の 6 ビ ッ ト と バ イ ト 7 の 全 ビ ッ ト が 0 で あ る 。 代 わ り に 、 バ イ ト 6 の 最 後 の 5 ビ ッ ト を 検 査 す る だ け で 最 初 の フ ラ グ メ ン ト を 許 可 す る こ と が で き る 。
... 4 & 0x3FFF = 0 && ...
最 後 の 検 査 と し て 、 IP ヘ ッ ダ ー 直 後 の バ イ ト (ICMP タ イ プ ) が 0 か を 確 認 す る 。 こ こ で @ 記 法 を 使 う 必 要 が あ る 。 IP ヘ ッ ダ ー の 長 さ (IHL) は IP ヘ ッ ダ ー 自 身 の バ イ ト 0 の 右 半 分 に 32 ビ ッ ト ワ ー ド で 格 納 さ れ て い る 。
... 0 >> 22 & 0x3C @ 0 >> 24 = 0 "
最 初 の 0 は バ イ ト 0-3 を 読 み 出 し 、 >>22 は そ の 値 を 22 ビ ッ ト 右 に シ フ ト す る こ と を 意 味 す る 。 24 ビ ッ ト シ フ ト す る と 最 初 の バ イ ト が 得 ら れ る の で 、 22 ビ ッ ト だ け シ フ ト す る と (少 し 余 計 な ビ ッ ト が 付 い て い る が ) そ の 4 倍 の 値 が 得 ら れ る 。 &3C で 右 側 の 余 計 な 2 ビ ッ ト と 最 初 の バ イ ト の 先 頭 4 ビ ッ ト を 取 り 除 く 。 例 え ば 、 IHL が 5 の 場 合 IP ヘ ッ ダ ー は 20 バ イ ト (4 x 5) で あ る 。 こ の 場 合 、 バ イ ト 0-1 は (バ イ ナ リ で ) xxxx0101 yyzzzzzz で あ り 、 >>22 に よ り 10 ビ ッ ト の 値 xxxx0101yy が 得 ら れ 、 &3C で 010100 が 得 ら れ る 。 @ は 、 こ の 数 字 を パ ケ ッ ト の 新 し い オ フ セ ッ ト と し て 使 用 し 、 こ の 地 点 か ら 始 ま る 4 バ イ ト を 読 み 出 す こ と を 意 味 す る 。 こ の 4 バ イ ト は ICMP ペ イ ロ ー ド の 最 初 の 4 バ イ ト で あ り 、 バ イ ト 0 が ICMP タ イ プ で あ る 。 し た が っ て 、 こ の 値 を 24 ビ ッ ト 右 に シ フ ト し て 、 最 初 の バ イ ト 以 外 を す べ て 取 り 除 き 、 そ の 結 果 を 0 と 比 較 す る だ け で よ い 。
例 :
TCP ペ イ ロ ー ド の バ イ ト 8-12 が 1, 2, 5, 8 の い ず れ か か を 検 査 す る
ま ず 、 パ ケ ッ ト が TCP パ ケ ッ ト で あ る か を 検 査 す る (ICMP と 同 様 )。
--u32 " 6 & 0xFF = 6 && ...
次 に 、 フ ラ グ メ ン ト で な い こ と を 検 査 す る (上 記 と 同 じ )。
... 0 >> 22 & 0x3C @ 12 >> 26 & 0x3C @ 8 = 1,2,5,8 "
上 で 説 明 し た 通 り 0>>22&3C で IP ヘ ッ ダ ー の バ イ ト 数 を 計 算 す る 。 @ で こ の 値 を パ ケ ッ ト の 新 し い オ フ セ ッ ト と し 、 こ れ は TCP ヘ ッ ダ ー の 先 頭 で あ る 。 TCP ヘ ッ ダ ー 長 (こ れ も 32 ビ ッ ト ワ ー ド ) は TCP ヘ ッ ダ ー の バ イ ト 12 の 左 半 分 に あ る 。 12>>26&3C で TCP ヘ ッ ダ ー の バ イ ト 数 を 計 算 す る (IP ヘ ッ ダ ー の 場 合 と 同 様 )。 "@" を 使 っ て こ れ を 新 し い オ フ セ ッ ト に 設 定 す る 。 こ の 時 点 で TCP ペ イ ロ ー ド の 先 頭 を 指 し て い る 。 最 後 に 、 8 で ペ イ ロ ー ド の バ イ ト 8-12 を 読 み 出 し 、 = を 使 っ て 取 り 出 し た 値 が 1, 2, 5, 8 の い ず れ か で あ る か チ ェ ッ ク す る 。
udp
こ
れ ら の 拡 張 は
‘--protocol udp’ が 指 定
さ れ た 場 合 に
利 用 で き る 。
以 下 の オ プ シ
ョ ン が 提 供 さ
れ る 。
[
!
]
--source-port
,
--sport
port
[
:
port
]
送 信 元 ポ ー ト ま た は ポ ー ト 範 囲 の 指 定 。 詳 細 は TCP 拡 張 の --source-port オ プ シ ョ ン の 説 明 を 参 照 す る こ と 。
[ ! ] --destination-port , --dport port [ : port ]
宛 先 ポ ー ト ま た は ポ ー ト 範 囲 の 指 定 。 詳 細 は TCP 拡 張 の --destination-port オ プ シ ョ ン の 説 明 を 参 照 す る こ と 。
unclean (IPv4 の 場 合 )
こ の モ ジ ュ ー ル に は オ プ シ ョ ン が な い が 、 お か し く 正 常 で な い よ う に 見 え る パ ケ ッ ト に マ ッ チ す る 。 こ れ は 実 験 的 な も の と し て 扱 わ れ て い る 。
タ ー ゲ ッ ト の 拡 張
iptables は 拡 張 タ ー ゲ ッ ト モ ジ ュ ー ル を 使 う こ と が で き る : 以 下 の も の が 、 標 準 的 な デ ィ ス ト リ ビ ュ ー シ ョ ン に 含 ま れ て い る 。
AUDIT
こ
の タ ー ゲ ッ ト
を 使 う と 、 こ
の タ ー ゲ ッ ト
に ヒ ッ ト し た
パ ケ ッ ト に 対
す る 監 査 (audit) レ
コ ー ド を 作 成
す る こ と が で
き る 。 許 可 /廃
棄 /拒 否 さ れ た
パ ケ ッ ト を 記
録 す る の に 使
用 で き る 。 詳
細 に つ い て は
auditd(8) を 参 照 。
--type
{
accept
|
drop
|
reject
}
監 査 レ コ ー ド 種 別 を 設 定 す る 。
例 :
iptables -N AUDIT_DROP
iptables -A AUDIT_DROP -j AUDIT --type drop
iptables -A AUDIT_DROP -j DROP
CHECKSUM
こ
の タ ー ゲ ッ ト
は 、 お か し い
ア プ リ ケ ー シ
ョ ン や 古 い ア
プ リ ケ ー シ ョ
ン に 対 す る 選
択 的 な 対 処 を
可 能 に す る 。 mangle
テ ー ブ ル で の
み 使 用 で き る
。
--checksum-fill
Compute and fill in the checksum in a packet that lacks a checksum. This is particularly useful, if you need to work around old applications such as dhcp clients, that do not work well with checksum offloads, but don’t want to disable checksum offload in your device.
CLASSIFY
こ
の モ ジ ュ ー ル
を 使 う と skb->priority
の 値 を 設 定 で
き る (そ の 結 果
、 そ の パ ケ ッ
ト を 特 定 の CBQ ク
ラ ス に 分 類 で
き る )。
--set-class
major
:
minor
メ ジ ャ ー ク ラ ス と マ イ ナ ー ク ラ ス の 値 を 設 定 す る 。 値 は 常 に 16 進 数 と し て 解 釈 さ れ る 。 0x が 前 に 付 い て い な い 場 合 で あ っ て も 16 進 数 と 解 釈 さ れ る 。
CLUSTERIP (IPv4 の 場 合 )
こ の モ ジ ュ ー ル を 使 う と 、 ノ ー ド の 前 段 に 明 示 的 に 負 荷 分 散 装 置 を 置 か ず に 、 特 定 の IP ア ド レ ス と MAC ア ド レ ス を 共 有 す る ノ ー ド の 簡 単 な ク ラ ス タ ー を 構 成 す る こ と が で き る 。 コ ネ ク シ ョ ン は 、 こ の ク ラ ス タ ー の ノ ー ド 間 で 静 的 に 分 散 さ れ る 。
|
--new |
新 し い ClusterIP を 作 成 す る 。 こ の オ プ シ ョ ン は 、 こ こ で 指 定 す る ClusterIP を 使 う ル ー ル の 中 で 一 番 最 初 に 設 定 し な け れ ば な ら な い 。 |
--hashmode mode
ハ ッ シ ュ モ ー ド を 指 定 す る 。 sourceip , sourceip-sourceport , sourceip-sourceport-destport の い ず れ か で な け れ ば な ら な い 。
--clustermac mac
ClusterIP の MAC ア ド レ ス を 指 定 す る 。 リ ン ク 層 の マ ル チ キ ャ ス ト ア ド レ ス で な け れ ば な ら な い 。
--total-nodes num
こ の ク ラ ス タ ー の 総 ノ ー ド 数 。
--local-node num
こ の ク ラ ス タ ー の ロ ー カ ル ノ ー ド 番 号 。
--hash-init rnd
ハ ッ シ ュ の 初 期 化 に 使 用 さ れ る 乱 数 シ ー ド 値 を 指 定 す る 。
CONNMARK
こ
の モ ジ ュ ー ル
は 、 コ ネ ク シ
ョ ン に 関 連 付
け ら れ た netfilter の mark
値 を 設 定 す る
。 mark は 32 ビ ッ ト
幅 で あ る 。
--set-xmark
value
[
/
mask
]
mask で 指 定 さ れ た ビ ッ ト を 0 に し 、 value と ctmark の XOR を 取 る 。
--save-mark [ --nfmask nfmask ] [ --ctmask ctmask ]
指 定 さ れ た マ ス ク を 使 っ て 、 パ ケ ッ ト マ ー ク (nfmark) を コ ネ ク シ ョ ン マ ー ク (ctmark) に コ ピ ー す る 。 新 し い ctmark 値 は 以 下 の よ う に 決 定 さ れ る 。
ctmark = (ctmark & ˜ctmask) ˆ (nfmark & nfmask)
ctmask は ど の ビ ッ ト を ク リ ア す る か を 規 定 し 、 nfmask は nfmark の ど の ビ ッ ト を ctmark と XOR す る か を 規 定 す る 。 ctmask と nfmask の デ フ ォ ル ト 値 は 0xFFFFFFFF で あ る 。
--restore-mark [ --nfmask nfmask ] [ --ctmask ctmask ]
指 定 さ れ た マ ス ク を 使 っ て 、 コ ネ ク シ ョ ン マ ー ク (ctmark) を パ ケ ッ ト マ ー ク (nfmark) に コ ピ ー す る 。 新 し い nfmark 値 は 以 下 の よ う に 決 定 さ れ る 。
nfmark = (nfmark & ˜ nfmask ) ˆ (ctmark & ctmask );
nfmask は ど の ビ ッ ト を ク リ ア す る か を 規 定 し 、 ctmask は ctmark の ど の ビ ッ ト を nfmark と XOR す る か を 規 定 す る 。 ctmask と nfmask の デ フ ォ ル ト 値 は 0xFFFFFFFF で あ る 。
--restore-mark は mangle テ ー ブ ル で の み 有 効 で あ る 。
以
下 の 簡 易 表 現
が
--set-xmark
の 代 わ
り に 利 用 で き
る 。
--and-mark
bits
ctmark と bits の ビ ッ ト 論 理 積 (AND) を 取 る ( --set-xmark 0/ invbits の 簡 易 表 現 、 invbits は bits の ビ ッ ト 単 位 の 否 定 で あ る )。
--or-mark bits
ctmark と bits の ビ ッ ト 論 理 和 (OR) を 取 る ( --set-xmark bits / bits の 簡 易 表 現 )。
--xor-mark bits
ctmark と bits の ビ ッ ト XOR を 取 る ( --set-xmark bits /0 の 簡 易 表 現 )。
--set-mark value [ / mask ]
コ ネ ク シ ョ ン マ ー ク を 設 定 す る 。 mask が 指 定 さ れ た 場 合 、 mask で 指 定 さ れ た ビ ッ ト だ け が 変 更 さ れ る 。
--save-mark [ --mask mask ]
nfmark を ctmark へ コ ピ ー す る 。 mask が 指 定 さ れ た 場 合 、 そ の ビ ッ ト だ け が コ ピ ー さ れ る 。
--restore-mark [ --mask mask ]
ctmark を nfmark に コ ピ ー す る 。 mask が 指 定 さ れ る と 、 指 定 さ れ た ビ ッ ト だ け が コ ピ ー さ れ る 。 mangle テ ー ブ ル の み で 有 効 で あ る 。
CONNSECMARK
This module copies security markings from packets to connections (if unlabeled), and from connections back to packets (also only if unlabeled). Typically used in conjunction with SECMARK, it is valid in the security table (for backwards compatibility with older kernels, it is also valid in the mangle table).
|
--save |
If the packet has a security marking, copy it to the connection if the connection is not marked. |
--restore
If the packet does not have a security marking, and the connection does, copy the security marking from the connection to the packet.
CT
The CT target
allows to set parameters for a packet or its associated
connection. The target attaches a "template"
connection tracking entry to the packet, which is then used
by the conntrack core when initializing a new ct entry. This
target is thus only valid in the "raw" table.
--notrack
こ の パ ケ ッ ト に 対 す る コ ネ ク シ ョ ン 追 跡 を 無 効 に す る 。
--helper name
name で 指 定 さ れ る ヘ ル パ ー を こ の コ ネ ク シ ョ ン で 使 用 す る 。 こ の 方 法 は 、 あ ら か じ め 設 定 し た ポ ー ト に 対 し て conntrack ヘ ル パ ー モ ジ ュ ー ル を ロ ー ド す る よ り も 柔 軟 性 が あ る 。
--ctevents event [ , ...]
Only generate the specified conntrack events for this connection. Possible event types are: new , related , destroy , reply , assured , protoinfo , helper , mark (this refers to the ctmark, not nfmark), natseqinfo , secmark (ctsecmark).
--expevents event [ , ...]
Only generate the specified expectation events for this connection. Possible event types are: new .
--zone id
Assign this packet to zone id and only have lookups done in that zone. By default, packets have zone 0.
--timeout name
Use the timeout policy identified by name for the connection. This is provides more flexible timeout policy definition than global timeout values available at /proc/sys/net/netfilter/nf_conntrack_*_timeout_*.
DNAT
こ
の タ ー ゲ ッ ト
は
nat
テ ー ブ ル
の
PREROUTING
,
OUTPUT
チ ェ
イ ン 、 こ れ ら
の チ ェ イ ン か
ら 呼 び 出 さ れ
る ユ ー ザ ー 定
義 チ ェ イ ン の
み で 有 効 で あ
る 。 こ の タ ー
ゲ ッ ト は パ ケ
ッ ト の 宛 先 ア
ド レ ス を 修 正
す る (こ の コ ネ
ク シ ョ ン の 以
降 の パ ケ ッ ト
も 修 正 し て 分
か ら な く (mangle) す
る )。 さ ら に 、
ル ー ル に よ る
チ ェ ッ ク を 止
め さ せ る 。 こ
の タ ー ゲ ッ ト
は 以 下 の オ プ
シ ョ ン を 取 る
。
--to-destination
[
ipaddr
[
-
ipaddr
]][
:
port
[
-
port
]]
1 つ の 新 し い 宛 先 IP ア ド レ ス 、 ま た は IP ア ド レ ス の 範 囲 が 指 定 で き る 。 ま た 、 ル ー ル で プ ロ ト コ ル と し て tcp , udp , dccp , sctp の い ず れ が 指 定 さ れ て い る 場 合 は 、 ポ ー ト の 範 囲 を 指 定 す る こ と も で き る 。 ポ ー ト の 範 囲 が 指 定 さ れ て い な い 場 合 、 宛 先 ポ ー ト は 変 更 さ れ な い 。 IP ア ド レ ス が 指 定 さ れ な か っ た 場 合 は 、 宛 先 ポ ー ト だ け が 変 更 さ れ る 。 2.6.10 以 前 の カ ー ネ ル で は 、 複 数 の --to-destination オ プ シ ョ ン を 指 定 す る こ と が で き る 。 こ れ ら の カ ー ネ ル で は 、 ア ド レ ス の 範 囲 指 定 や --to-destination オ プ シ ョ ン の 複 数 回 指 定 に よ り 2 つ 以 上 の 宛 先 ア ド レ ス を 指 定 し た 場 合 、 そ れ ら の ア ド レ ス を 使 っ た 単 純 な ラ ウ ン ド ロ ビ ン に よ る 負 荷 分 散 が 行 わ れ る 。 そ れ 以 降 の カ ー ネ ル (>= 2.6.11-rc1) に は 複 数 の 範 囲 を NAT す る 機 能 は 存 在 し な い 。
--random
--random オ プ シ ョ ン を 使 用 す る と 、 ポ ー ト マ ッ ピ ン グ が ラ ン ダ ム 化 さ れ る (カ ー ネ ル 2.6.22 以 降 )。
--persistent
ク ラ イ ア ン ト の 各 コ ネ ク シ ョ ン に 同 じ 送 信 元 ア ド レ ス /宛 先 ア ド レ ス を 割 り 当 て る 。 こ れ は SAME タ ー ゲ ッ ト よ り も 優 先 さ れ る 。 persistent マ ッ ピ ン グ の サ ポ ー ト は 2.6.29-rc2 以 降 で 利 用 可 能 で あ る 。
IPv6 サ ポ ー ト は Linux カ ー ネ ル 3.7 以 降 で 利 用 可 能 で あ る 。
DNPT (IPv6 の み )
(RFC 6296 で 説 明 さ れ て い る ) ス テ ー ト レ ス IPv6-to-IPv6 宛 先 ネ ッ ト ワ ー ク プ レ フ ィ ッ ク ス 変 換 を 提 供 す る 。
こ
の タ ー ゲ ッ ト
は
nat
テ ー ブ ル
で は な く
mangle
テ
ー ブ ル で 使 わ
な け れ ば な ら
な い 。 以 下 の
オ プ シ ョ ン を
取 る 。
--src-pfx
[
prefix/length]
変 換 を 行 う 送 信 元 プ レ フ ィ ッ ク ス と そ の 長 さ を 設 定 す る 。
--dst-pfx [ prefix/length]
変 換 を 行 う 宛 先 プ レ フ ィ ッ ク ス と そ の 長 さ を 設 定 す る 。
変 換 を 取 り 消 す に は SNPT タ ー ゲ ッ ト を 使 わ な け れ ば な ら な い 。 例 :
ip6tables -t mangle -I POSTROUTING -s fd00::/64 -o vboxnet0 -j SNPT --src-pfx fd00::/64 --dst-pfx 2001:e20:2000:40f::/64
ip6tables -t mangle -I PREROUTING -i wlan0 -d 2001:e20:2000:40f::/64 -j DNPT --src-pfx 2001:e20:2000:40f::/64 --dst-pfx fd00::/64
IPv6 neighbor proxy を 有 効 に す る 必 要 が あ る か も し れ な い 。
sysctl -w net.ipv6.conf.all.proxy_ndp=1
ま た 、 変 換 さ れ た フ ロ ー に 対 す る コ ネ ク シ ョ ン 追 跡 を 無 効 に す る に は NOTRACK タ ー ゲ ッ ト を 使 用 す る 必 要 が あ る 。
DSCP
こ
の タ ー ゲ ッ ト
は 、 IPv4 パ ケ ッ ト
の TOS ヘ ッ ダ ー に
あ る DSCP ビ ッ ト の
値 の 書 き 換 え
を 可 能 に す る
。 こ れ は パ ケ
ッ ト を 操 作 す
る の で 、 mangle テ ー
ブ ル で の み 使
用 で き る 。
--set-dscp
value
DSCP フ ィ ー ル ド の 数 値 を 設 定 す る (10 進 ま た は 16 進 )。
--set-dscp-class class
DSCP フ ィ ー ル ド の DiffServ ク ラ ス を 設 定 す る 。
ECN (IPv4 の 場 合 )
こ
の タ ー ゲ ッ ト
は ECN ブ ラ ッ ク ホ
ー ル 問 題 へ の
対 処 を 可 能 に
す る 。 mangle テ ー ブ
ル で の み 使 用
で き る 。
--ecn-tcp-remove
TCP ヘ ッ ダ ー か ら 全 て の ECN ビ ッ ト (訳 注 : ECE/CWR フ ラ グ ) を 取 り 除 く 。 当 然 、 -p tcp オ プ シ ョ ン と の 組 合 わ せ で の み 使 用 で き る 。
HL (IPv6 の み )
こ の タ ー ゲ ッ ト を 使 う と IPv6 ヘ ッ ダ ー の Hop Limit フ ィ ー ル ド を 変 更 す る こ と が で き る 。 Hop Limit フ ィ ー ル ド は IPv4 の TTL 値 と 同 じ よ う な も の で あ る 。 Hop Limit フ ィ ー ル ド を 設 定 し た り 増 や す の は 、 危 険 性 を 非 常 に は ら ん で い る 。 し た が っ て 、 可 能 な 限 り 避 け る べ き で あ る 。 こ の タ ー ゲ ッ ト は mangle テ ー ブ ル で の み 有 効 で あ る 。
決
し て ロ ー カ ル
ネ ッ ト ワ ー ク
内 に 留 ま る パ
ケ ッ ト の フ ィ
ー ル ド 値 を 設
定 し た り 増 や
し た り し な い
こ と !
--hl-set
value
Hop Limit を ‘value’ に 設 定 す る 。
--hl-dec value
Hop Limit を ‘value’ 回 減 算 す る 。
--hl-inc value
Hop Limit を ‘value’ 回 加 算 す る 。
HMARK
Like MARK, i.e. set the fwmark, but the mark is calculated from hashing packet selector at choice. You have also to specify the mark range and, optionally, the offset to start from. ICMP error messages are inspected and used to calculate the hashing.
Existing options
are:
--hmark-tuple
tuple
Possible tuple members are: src meaning source address (IPv4, IPv6 address), dst meaning destination address (IPv4, IPv6 address), sport meaning source port (TCP, UDP, UDPlite, SCTP, DCCP), dport meaning destination port (TCP, UDP, UDPlite, SCTP, DCCP), spi meaning Security Parameter Index (AH, ESP), and ct meaning the usage of the conntrack tuple instead of the packet selectors.
--hmark-mod value (must be > 0)
Modulus for hash calculation (to limit the range of possible marks)
--hmark-offset value
Offset to start marks from.
For advanced usage, instead of
using --hmark-tuple, you can specify
custom
prefixes and masks:
--hmark-src-prefix cidr
The source address mask in CIDR notation.
--hmark-dst-prefix cidr
The destination address mask in CIDR notation.
--hmark-sport-mask value
A 16 bit source port mask in hexadecimal.
--hmark-dport-mask value
A 16 bit destination port mask in hexadecimal.
--hmark-spi-mask value
A 32 bit field with spi mask.
--hmark-proto-mask value
An 8 bit field with layer 4 protocol number.
--hmark-rnd value
A 32 bit random custom value to feed hash calculation.
例 :
iptables -t
mangle -A PREROUTING -m conntrack --ctstate NEW
-j HMARK --hmark-tuple ct,src,dst,proto --hmark-offset 10000
--hmark-mod 10 --hmark-rnd 0xfeedcafe
iptables -t mangle -A PREROUTING -j HMARK --hmark-offset 10000 --hmark-tuple src,dst,proto --hmark-mod 10 --hmark-rnd 0xdeafbeef
IDLETIMER
This target can be used to identify when interfaces have been idle for a certain period of time. Timers are identified by labels and are created when a rule is set with a new label. The rules also take a timeout value (in seconds) as an option. If more than one rule uses the same timer label, the timer will be restarted whenever any of the rules get a hit. One entry for each timer is created in sysfs. This attribute contains the timer remaining for the timer to expire. The attributes are located under the xt_idletimer class:
/sys/class/xt_idletimer/timers/<label>
When the timer
expires, the target module sends a sysfs notification to the
userspace, which can then decide what to do (eg. disconnect
to save power).
--timeout
amount
This is the time in seconds that will trigger the notification.
--label string
This is a unique identifier for the timer. The maximum length for the label string is 27 characters.
LED
This creates an
LED-trigger that can then be attached to system indicator
lights, to blink or illuminate them when certain packets
pass through the system. One example might be to light up an
LED for a few minutes every time an SSH connection is made
to the local machine. The following options control the
trigger behavior:
--led-trigger-id
name
This is the name given to the LED trigger. The actual name of the trigger will be prefixed with "netfilter-".
--led-delay ms
This indicates how long (in milliseconds) the LED should be left illuminated when a packet arrives before being switched off again. The default is 0 (blink as fast as possible.) The special value inf can be given to leave the LED on permanently once activated. (In this case the trigger will need to be manually detached and reattached to the LED device to switch it off again.)
--led-always-blink
Always make the LED blink on packet arrival, even if the LED is already on. This allows notification of new packets even with long delay values (which otherwise would result in a silent prolonging of the delay time.)
|
例 : |
Create an LED trigger for incoming SSH traffic:
iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh
Then attach the new trigger to an LED:
echo netfilter-ssh >/sys/class/leds/ ledname /trigger
LOG
マ ッ チ し た パ ケ ッ ト を カ ー ネ ル ロ グ に 記 録 す る 。 こ の オ プ シ ョ ン が ル ー ル に 対 し て 設 定 さ れ る と 、 Linux カ ー ネ ル は マ ッ チ し た パ ケ ッ ト に つ い て の 何 ら か の 情 報 (多 く の IP/IPv6 ヘ ッ ダ ー フ ィ ー ル ド な ど ) を カ ー ネ ル ロ グ に 表 示 す る (カ ー ネ ル ロ グ は dmesg (1) や syslog で 参 照 で き る )。
こ
れ は "非 終 了 タ
ー ゲ ッ ト " で あ
る 。 す な わ ち
、 ル ー ル の 探
索 は 次 の ル ー
ル へ と 継 続 さ
れ る 。 よ っ て
、 拒 否 す る パ
ケ ッ ト を ロ グ
記 録 し た け れ
ば 、 同 じ マ ッ
チ ン グ 判 断 基
準 を 持 つ 2 つ の
ル ー ル を 使 用
し 、 最 初 の ル
ー ル で LOG タ ー ゲ
ッ ト を 、 次 の
ル ー ル で DROP (ま た
は REJECT) タ ー ゲ ッ
ト を 指 定 す る
。
--log-level
level
ロ ギ ン グ レ ベ ル 。 (シ ス テ ム 固 有 の ) 数 値 か シ ン ボ ル 名 を 指 定 す る 。 指 定 で き る 値 は (優 先 度 が 高 い 順 に ) emerg , alert , crit , error , warning , notice , info , debug で あ る 。
--log-prefix prefix
指 定 し た プ レ フ ィ ッ ク ス を ロ グ メ ッ セ ー ジ の 前 に 付 け る 。 プ レ フ ィ ッ ク ス は 29 文 字 ま で の 長 さ で 、 ロ グ の 中 で メ ッ セ ー ジ を 区 別 す る の に 役 立 つ 。
--log-tcp-sequence
TCP シ ー ケ ン ス 番 号 を ロ グ に 記 録 す る 。 ロ グ が ユ ー ザ ー か ら 読 め る 場 合 、 セ キ ュ リ テ ィ 上 の 危 険 が あ る 。
--log-tcp-options
TCP パ ケ ッ ト ヘ ッ ダ ー の オ プ シ ョ ン を ロ グ に 記 録 す る 。
--log-ip-options
IP/IPv6 パ ケ ッ ト ヘ ッ ダ ー の オ プ シ ョ ン を ロ グ に 記 録 す る 。
--log-uid
パ ケ ッ ト を 生 成 し た プ ロ セ ス の ユ ー ザ ー ID を ロ グ に 記 録 す る 。
MARK
こ
の タ ー ゲ ッ ト
を 使 う と 、 そ
の パ ケ ッ ト に
関 連 付 け ら れ
る Netfilter マ ー ク 値
を 設 定 す る 。
例 え ば 、 fwmark に 基
づ く ル ー テ ィ
ン グ (iproute2 が 必 要 )
と 組 み 合 わ せ
て 使 う こ と が
で き る 。 そ う
す る 場 合 に は
、 ル ー テ ィ ン
グ 時 に 考 慮 さ
れ る よ う に す
る に は 、 mangle テ ー
ブ ル の PREROUTING チ ェ
イ ン で マ ー ク
を 設 定 す る 必
要 が あ る 。 マ
ー ク フ ィ ー ル
ド は 32 ビ ッ ト 幅
で あ る 。
--set-xmark
value
[
/
mask
]
mask で 指 定 さ れ た ビ ッ ト を 0 に し 、 value と packet mark ("nfmark") の XOR を 取 る 。 mask が 省 略 さ れ た 場 合 は 0xFFFFFFFF と み な さ れ る 。
--set-mark value [ / mask ]
mask で 指 定 さ れ た ビ ッ ト を 0 に し 、 value と packet mark の OR を 取 る 。 mask が 省 略 さ れ た 場 合 は 0xFFFFFFFF と み な さ れ る 。
以
下 の 簡 易 表 現
が 利 用 で き る
。
--and-mark
bits
nfmark と bits の ビ ッ ト 論 理 積 (AND) を 取 る ( --set-xmark 0/ invbits の 簡 易 表 現 、 invbits は bits の ビ ッ ト 単 位 の 否 定 で あ る )。
--or-mark bits
nfmark と bits の ビ ッ ト 論 理 和 (OR) を 取 る ( --set-xmark bits / bits の 簡 易 表 現 )。
--xor-mark bits
nfmark と bits の ビ ッ ト XOR を 取 る ( --set-xmark bits /0 の 簡 易 表 現 )。
MASQUERADE
こ
の タ ー ゲ ッ ト
は
nat
テ ー ブ ル
の
POSTROUTING
チ ェ イ
ン の み で 有 効
で あ る 。 動 的
割 り 当 て IP (ダ イ
ヤ ル ア ッ プ ) コ
ネ ク シ ョ ン の
場 合 に の み 使
う べ き で あ る
。 固 定 IP ア ド レ
ス な ら ば 、 SNAT タ
ー ゲ ッ ト を 使
う べ き で あ る
。 マ ス カ レ ー
デ ィ ン グ は 、
パ ケ ッ ト が 送
信 さ れ る イ ン
タ ー フ ェ ー ス
の IP ア ド レ ス へ
の マ ッ ピ ン グ
を 指 定 す る の
と 同 じ で あ る
が 、 イ ン タ ー
フ ェ ー ス が 停
止 し た 場 合 に
コ ネ ク シ ョ ン
を
忘 れ る
と い
う 効 果 が あ る
。 次 の ダ イ ヤ
ル ア ッ プ で は
同 じ イ ン タ ー
フ ェ ー ス ア ド
レ ス に な る 可
能 性 が 低 い (そ
の た め 、 前 回
確 立 さ れ た コ
ネ ク シ ョ ン は
失 わ れ る ) 場 合
、 こ の 動 作 は
正 し い 。
--to-ports
port
[
-
port
]
こ の オ プ シ ョ ン は 、 使 用 す る 送 信 元 ポ ー ト の 範 囲 を 指 定 し 、 デ フ ォ ル ト の SNAT 送 信 元 ポ ー ト の 選 択 方 法 (上 記 ) よ り も 優 先 さ れ る 。 ル ー ル が プ ロ ト コ ル と し て tcp , udp , dccp , sctp を 指 定 し て い る 場 合 に の み 有 効 で あ る 。
--random
送 信 元 ポ ー ト の マ ッ ピ ン グ を ラ ン ダ ム 化 す る 。 --random オ プ シ ョ ン を 使 用 す る と 、 ポ ー ト マ ッ ピ ン グ が ラ ン ダ ム 化 さ れ る (カ ー ネ ル 2.6.21 以 降 )。
IPv6 サ ポ ー ト は Linux カ ー ネ ル 3.7 以 降 で 利 用 可 能 で あ る 。
MIRROR (IPv4 の 場 合 )
実 験 的 な デ モ ン ス ト レ ー シ ョ ン 用 の タ ー ゲ ッ ト で あ り 、 IP ヘ ッ ダ ー の 送 信 元 と 宛 先 フ ィ ー ル ド を 入 れ 換 え 、 パ ケ ッ ト を 再 送 信 す る も の で あ る 。 こ れ は INPUT , FORWARD , PREROUTING チ ェ イ ン と 、 こ れ ら の チ ェ イ ン か ら 呼 び 出 さ れ る ユ ー ザ ー 定 義 チ ェ イ ン だ け で 有 効 で あ る 。 ル ー プ 等 の 問 題 を 回 避 す る た め 、 外 部 に 送 ら れ る パ ケ ッ ト は い か な る パ ケ ッ ト フ ィ ル タ リ ン グ チ ェ イ ン ・ コ ネ ク シ ョ ン 追 跡 ・ NAT か ら も 監 視 さ れ な い 。
NETMAP
こ
の タ ー ゲ ッ ト
を 使 う と 、 あ
る ア ド レ ス ネ
ッ ト ワ ー ク 全
体 を 別 の ネ ッ
ト ワ ー ク ア ド
レ ス に 静 的 に
マ ッ ピ ン グ で
き る 。 こ の タ
ー ゲ ッ ト は
nat
テ ー ブ ル で ル
ー ル で の み 使
用 で き る 。
--to
address
[
/
mask
]
マ ッ ピ ン グ 先 の ネ ッ ト ワ ー ク ア ド レ ス 。 変 換 後 の ア ド レ ス は 以 下 の よ う に し て 構 築 さ れ る 。 mask で ’1’ に な っ て い る ビ ッ ト は 新 し い ア ド レ ス が 使 わ れ 、 mask で ’0’ に な っ て い る ビ ッ ト は 元 の ア ド レ ス が 使 わ れ る 。
IPv6 サ ポ ー ト は Linux カ ー ネ ル 3.7 以 降 で 利 用 可 能 で あ る 。
NFLOG
こ
の タ ー ゲ ッ ト
は 、 マ ッ チ し
た パ ケ ッ ト を
ロ グ に 記 録 す
る 機 能 を 提 供
す る 。 こ の タ
ー ゲ ッ ト が ル
ー ル に 設 定 さ
れ る と 、 Linux カ ー
ネ ル は そ の ロ
グ に 記 録 す る
た め に そ の パ
ケ ッ ト を ロ ー
ド さ れ た ロ ギ
ン グ バ ッ ク エ
ン ド に 渡 す 。
こ の タ ー ゲ ッ
ト は 通 常 は nfnetlink_log
を ロ ギ ン グ バ
ッ ク エ ン ド と
し て 使 う 組 み
合 わ せ で 使 用
さ れ る 。 nfnetlink_log は
そ の パ ケ ッ ト
を
netlink
ソ ケ ッ ト
経 由 で 指 定 さ
れ た マ ル チ キ
ャ ス ト グ ル ー
プ に マ ル チ キ
ャ ス ト す る 。 1
つ 以 上 の ユ ー
ザ ー 空 間 プ ロ
セ ス が マ ル チ
キ ャ ス ト グ ル
ー プ を 購 読 し
パ ケ ッ ト を 受
信 す る こ と が
で き る 。 LOG と 同
様 に 、 こ の タ
ー ゲ ッ ト は 非
終 了 タ ー ゲ ッ
ト で あ り 、 ル
ー ル の 探 索 は
次 の ル ー ル へ
と 継 続 さ れ る
。
--nflog-group
nlgroup
パ ケ ッ ト を 送 信 す る netlink グ ル ー プ (0 - 2ˆ16-1) を 指 定 す る (nfnetlink_log の 場 合 の み 利 用 で き る )。 デ フ ォ ル ト の 値 は 0 で あ る 。
--nflog-prefix prefix
ロ グ メ ッ セ ー ジ の 前 に 付 け る プ レ フ ィ ッ ク ス 文 字 列 。 最 大 64 文 字 ま で の 指 定 で き る 。 ロ グ の 中 で メ ッ セ ー ジ を 区 別 す る の に 役 に 立 つ 。
--nflog-range size
ユ ー ザ ー 空 間 に コ ピ ー す る バ イ ト 数 (nfnetlink_log の 場 合 の み 利 用 で き る )。 nfnetlink_log の イ ン ス タ ン ス は 自 身 で コ ピ ー す る 範 囲 を 指 定 で き る が 、 こ の オ プ シ ョ ン は そ れ を 上 書 き す る 。
--nflog-threshold size
ユ ー ザ ー 空 間 に パ ケ ッ ト を 送 信 す る 前 に 、 カ ー ネ ル 内 部 の キ ュ ー に 入 れ る パ ケ ッ ト 数 (nfnetlink_log の 場 合 の み 利 用 で き る )。 大 き め の 値 を 指 定 す る ほ ど パ ケ ッ ト 単 位 の オ ー バ ヘ ッ ド は 少 な く な る が 、 パ ケ ッ ト が ユ ー ザ ー 空 間 に 届 く ま で の 遅 延 が 大 き く な る 。 デ フ ォ ル ト 値 は 1 で あ る 。
NFQUEUE
こ
の タ ー ゲ ッ ト
は 、
nfnetlink_queue
ハ ン
ド ラ ー を 使 っ
て そ の パ ケ ッ
ト を ユ ー ザ ー
空 間 に 渡 す 。
パ ケ ッ ト は 16 ビ
ッ ト の キ ュ ー
番 号 で 指 定 さ
れ た キ ュ ー に
入 れ ら れ る 。
ユ ー ザ ー 空 間
で は 好 き な よ
う に パ ケ ッ ト
を 検 査 し 変 更
で き る 。 ユ ー
ザ ー 空 間 側 で
は 、 必 ず そ の
パ ケ ッ ト を 破
棄 す る か カ ー
ネ ル に 戻 す か
の ど ち ら か を
し な け れ ば な
ら な い 。 詳 細
は libnetfilter_queue を 参 照
の こ と 。
nfnetlink_queue
は Linux 2.6.14 で 追 加 さ
れ た 。
queue-balance
オ
プ シ ョ ン は Linux 2.6.31
で 、
queue-bypass
は Linux 2.6.39
で 追 加 さ れ た
。
--queue-num
value
使 用 す る QUEUE 番 号 を 指 定 す る 。 有 効 な キ ュ ー 番 号 は 0 か ら 65535 で あ る 。 デ フ ォ ル ト は 0 で あ る 。
--queue-balance value : value
使 用 す る キ ュ ー の 範 囲 を 指 定 す る 。 パ ケ ッ ト は 指 定 さ れ た 範 囲 の キ ュ ー に 分 散 さ れ る 。 こ れ は マ ル チ コ ア シ ス テ ム で 有 用 で あ る 。 ユ ー ザ ー 空 間 プ ロ グ ラ ム の 複 数 イ ン ス タ ン ス を キ ュ ー x, x+1, .. x+n で 開 始 し 、 "--queue-balance x : x+n " を 使 用 す る 。 同 じ コ ネ ク シ ョ ン に 所 属 す る パ ケ ッ ト は 同 じ nfqueue に 入 れ ら れ る 。
--queue-bypass
デ フ ォ ル ト で は 、 ど の ユ ー ザ ー 空 間 プ ロ グ ラ ム も NFQUEUE を リ ッ ス ン し て い な い 場 合 、 キ ュ ー さ れ る は ず の す べ て の パ ケ ッ ト が 破 棄 さ れ る 。 こ の オ プ シ ョ ン を 使 う と 、 NFQUEUE ル ー ル は ACCEPT の よ う な 動 作 と な り 、 パ ケ ッ ト は 次 の テ ー ブ ル に 進 む 。
--queue-cpu-fanout
Linux カ ー ネ ル 3.10 以 降 で 利 用 可 能 。 --queue-balance と と も に 使 用 さ れ る と 、 こ の オ プ シ ョ ン は パ ケ ッ ト を キ ュ ー に マ ッ ピ ン グ す る 際 の イ ン デ ッ ク ス と し て CPU ID を 使 用 す る 。 こ れ は 、 CPU ご と に キ ュ ー が あ る 場 合 に 性 能 を 向 上 さ せ よ う と い う も の で あ る 。 こ の オ プ シ ョ ン を 使 う に は --queue-balance を 指 定 す る 必 要 が あ る 。
NOTRACK
こ の タ ー ゲ ッ ト を 使 う と 、 そ の ル ー ル に マ ッ チ し た 全 て の パ ケ ッ ト で コ ネ ク シ ョ ン 追 跡 が 無 効 に な る 。 こ れ は -j CT --notrack と 等 価 で あ る 。 CT と 同 様 、 NOTRACK は raw テ ー ブ ル で の み 使 用 で き る 。
RATEEST
The RATEEST
target collects statistics, performs rate estimation
calculation and saves the results for later evaluation using
the
rateest
match.
--rateest-name
name
Count matched packets into the pool referred to by name , which is freely choosable.
--rateest-interval amount { s | ms | us }
Rate measurement interval, in seconds, milliseconds or microseconds.
--rateest-ewmalog value
Rate measurement averaging time constant.
REDIRECT
こ
の タ ー ゲ ッ ト
は 、
nat
テ ー ブ
ル の
PREROUTING
チ ェ
イ ン と
OUTPUT
チ ェ
イ ン 、 お よ び
こ れ ら チ ェ イ
ン か ら 呼 び 出
さ れ る ユ ー ザ
ー 定 義 チ ェ イ
ン で の み 有 効
で あ る 。 こ の
タ ー ゲ ッ ト は
、 宛 先 IP を パ ケ
ッ ト を 受 信 し
た イ ン タ フ ェ
ー ス の 最 初 の
ア ド レ ス に 変
更 す る こ と で
、 パ ケ ッ ト を
そ の マ シ ン 自
身 に リ ダ イ レ
ク ト す る (ロ ー
カ ル で 生 成 さ
れ た パ ケ ッ ト
は ロ ー カ ル ホ
ス ト の ア ド レ
ス 、 IPv4 で は 127.0.0.1、
IPv6 で は ::1 に マ ッ
プ さ れ る )。
--to-ports
port
[
-
port
]
こ の オ プ シ ョ ン は 使 用 さ れ る 宛 先 ポ ー ト ・ ポ ー ト 範 囲 ・ 複 数 ポ ー ト を 指 定 す る 。 こ の オ プ シ ョ ン が 指 定 さ れ な い 場 合 、 宛 先 ポ ー ト は 変 更 さ れ な い 。 ル ー ル が プ ロ ト コ ル と し て tcp , udp , dccp , sctp を 指 定 し て い る 場 合 に の み 有 効 で あ る 。
--random
--random オ プ シ ョ ン を 使 用 す る と 、 ポ ー ト マ ッ ピ ン グ が ラ ン ダ ム 化 さ れ る (カ ー ネ ル 2.6.22 以 降 )。
IPv6 サ ポ ー ト は Linux カ ー ネ ル 3.7 以 降 で 利 用 可 能 で あ る 。
REJECT (IPv6 の み )
マ
ッ チ し た パ ケ
ッ ト の 応 答 と
し て エ ラ ー パ
ケ ッ ト を 送 信
す る た め に 使
わ れ る 。 エ ラ
ー パ ケ ッ ト を
送 ら な け れ ば
、
DROP
と 同 じ で
あ り 、 TARGET を 終 了
し 、 ル ー ル の
探 索 を 終 了 す
る 。 こ の タ ー
ゲ ッ ト は 、
INPUT
,
FORWARD
,
OUTPUT
チ ェ イ
ン と 、 こ れ ら
の チ ェ イ ン か
ら 呼 ば れ る ユ
ー ザ ー 定 義 チ
ェ イ ン だ け で
有 効 で あ る 。
以 下 の オ プ シ
ョ ン は 、 返 さ
れ る エ ラ ー パ
ケ ッ ト の 特 性
を 制 御 す る 。
--reject-with
type
指 定 で き る タ イ プ は icmp6-no-route , no-route , icmp6-adm-prohibited , adm-prohibited , icmp6-addr-unreachable , addr-unreach , icmp6-port-unreachable で あ る 。 指 定 し た タ イ プ の 適 切 な IPv6 エ ラ ー メ ッ セ ー ジ が 返 さ れ る ( icmp6-port-unreachable が デ フ ォ ル ト で あ る )。 さ ら に 、 TCP プ ロ ト コ ル に の み マ ッ チ す る ル ー ル に 対 し て 、 オ プ シ ョ ン tcp-reset を 使 う こ と が で き る 。 こ の オ プ シ ョ ン を 使 う と 、 TCP RST パ ケ ッ ト が 送 り 返 さ れ る 。 主 と し て ident (113/tcp) に よ る 探 査 を 阻 止 す る の に 役 立 つ 。 ident に よ る 探 査 は 、 壊 れ て い る (メ ー ル を 受 け 取 ら な い ) メ ー ル ホ ス ト に メ ー ル が 送 ら れ る 場 合 に 頻 繁 に 起 こ る 。 tcp-reset は バ ー ジ ョ ン 2.6.14 以 降 の カ ー ネ ル で の み 使 用 で き る 。
REJECT (IPv4 の 場 合 )
マ
ッ チ し た パ ケ
ッ ト の 応 答 と
し て エ ラ ー パ
ケ ッ ト を 送 信
す る た め に 使
わ れ る 。 エ ラ
ー パ ケ ッ ト を
送 ら な け れ ば
、
DROP
と 同 じ で
あ り 、 TARGET を 終 了
し 、 ル ー ル の
探 索 を 終 了 す
る 。 こ の タ ー
ゲ ッ ト は 、
INPUT
,
FORWARD
,
OUTPUT
チ ェ イ
ン と 、 こ れ ら
の チ ェ イ ン か
ら 呼 ば れ る ユ
ー ザ ー 定 義 チ
ェ イ ン だ け で
有 効 で あ る 。
以 下 の オ プ シ
ョ ン は 、 返 さ
れ る エ ラ ー パ
ケ ッ ト の 特 性
を 制 御 す る 。
--reject-with
type
指 定 で き る タ イ プ は icmp-net-unreachable , icmp-host-unreachable , icmp-port-unreachable , icmp-proto-unreachable , icmp-net-prohibited , icmp-host-prohibited , icmp-admin-prohibited (*) で あ る 。 指 定 し た タ イ プ の 適 切 な ICMP エ ラ ー メ ッ セ ー ジ を 返 す ( icmp-port-unreachable が デ フ ォ ル ト で あ る )。 TCP プ ロ ト コ ル に の み マ ッ チ す る ル ー ル に 対 し て 、 オ プ シ ョ ン tcp-reset を 使 う こ と が で き る 。 こ の オ プ シ ョ ン を 使 う と 、 TCP RST パ ケ ッ ト が 送 り 返 さ れ る 。 主 と し て ident (113/tcp) に よ る 探 査 を 阻 止 す る の に 役 立 つ 。 ident に よ る 探 査 は 、 壊 れ て い る (メ ー ル を 受 け 取 ら な い ) メ ー ル ホ ス ト に メ ー ル が 送 ら れ る 場 合 に 頻 繁 に 起 こ る 。
(*) icmp-admin-prohibited を サ ポ ー ト し な い カ ー ネ ル で 、 icmp-admin-prohibited を 使 用 す る と 、 REJECT で は な く 単 な る DROP に な る 。
SAME (IPv4 の 場 合 )
Similar to SNAT/DNAT depending on chain: it takes a range of addresses (‘--to 1.2.3.4-1.2.3.7’) and gives a client the same source-/destination-address for each connection.
N.B.: The DNAT
target’s
--persistent
option replaced the SAME
target.
--to
ipaddr
[
-
ipaddr
]
Addresses to map source to. May be specified more than once for multiple ranges.
--nodst
Don’t use the destination-ip in the calculations when selecting the new source-ip
--random
Port mapping will be forcibly randomized to avoid attacks based on port prediction (kernel >= 2.6.21).
SECMARK
This is used to
set the security mark value associated with the packet for
use by security subsystems such as SELinux. It is valid in
the
security
table (for backwards compatibility with
older kernels, it is also valid in the
mangle
table).
The mark is 32 bits wide.
--selctx
security_context
SET
こ
の モ ジ ュ ー ル
は
ipsec
(8) で 定 義 で
き る IP 集 合 の エ
ン ト リ の 追 加
、 削 除 、 そ の
両 方 を 行 う 。
--add-set
setname
flag
[
,
flag
...]
集 合 に 指 定 さ れ た ア ド レ ス /ポ ー ト (複 数 可 ) を 追 加 す る
--del-set setname flag [ , flag ...]
集 合 か ら 指 定 さ れ た ア ド レ ス /ポ ー ト (複 数 可 ) を 削 除 す る
flag は src や dst の 指 定 で あ り 、 指 定 で き る の は 6 個 ま で で あ る 。
--timeout value
エ ン ト リ を 追 加 す る 際 に 、 集 合 定 義 の デ フ ォ ル ト 値 で は な く 指 定 し た タ イ ム ア ウ ト 値 を 使 用 す る
--exist
エ ン ト リ を 追 加 す る 際 に 、 エ ン ト リ が 存 在 す る 場 合 、 タ イ ム ア ウ ト 値 を 、 指 定 さ れ た 値 か 集 合 定 義 の デ フ ォ ル ト 値 に リ セ ッ ト す る
-j SET を 使 用 す る に は ipset の カ ー ネ ル サ ポ ー ト が 必 要 で あ る 。 標 準 の カ ー ネ ル で は 、 Linux 2.6.39 以 降 で 提 供 さ れ て い る 。
SNAT
こ
の タ ー ゲ ッ ト
は
nat
テ ー ブ ル
の
POSTROUTING
,
INPUT
チ ェ
イ ン 、 こ れ ら
の チ ェ イ ン か
ら 呼 び 出 さ れ
る ユ ー ザ ー 定
義 チ ェ イ ン の
み で 有 効 で あ
る 。 こ の タ ー
ゲ ッ ト は パ ケ
ッ ト の 送 信 元
ア ド レ ス を 修
正 す る (こ の コ
ネ ク シ ョ ン の
以 降 の パ ケ ッ
ト も 修 正 し て
分 か ら な く (mangle)
す る )。 さ ら に
、 ル ー ル に よ
る チ ェ ッ ク を
止 め さ せ る 。
こ の タ ー ゲ ッ
ト に は 以 下 の
オ プ シ ョ ン が
あ る :
--to-source
[
ipaddr
[
-
ipaddr
]][
:
port
[
-
port
]]
1 つ の 新 し い 送 信 元 IP ア ド レ ス 、 ま た は IP ア ド レ ス の 範 囲 が 指 定 で き る 。 ル ー ル で プ ロ ト コ ル と し て tcp , udp , dccp , sctp が 指 定 さ れ て い る 場 合 、 ポ ー ト の 範 囲 を 指 定 す る こ と も で き る 。 ポ ー ト の 範 囲 が 指 定 さ れ て い な い 場 合 、 512 未 満 の 送 信 元 ポ ー ト は 、 他 の 512 未 満 の ポ ー ト に マ ッ ピ ン グ さ れ る 。 512 〜 1023 ま で の ポ ー ト は 、 1024 未 満 の ポ ー ト に マ ッ ピ ン グ さ れ る 。 そ れ 以 外 の ポ ー ト は 、 1024 以 上 の ポ ー ト に マ ッ ピ ン グ さ れ る 。 可 能 で あ れ ば 、 ポ ー ト の 変 換 は 起 こ ら な い 。 2.6.10 以 前 の カ ー ネ ル で は 、 複 数 の --to-source オ プ シ ョ ン を 指 定 す る こ と が で き る 。 こ れ ら の カ ー ネ ル で は 、 ア ド レ ス の 範 囲 指 定 や --to-source オ プ シ ョ ン の 複 数 回 指 定 に よ り 2 つ 以 上 の 送 信 元 ア ド レ ス を 指 定 し た 場 合 、 そ れ ら の ア ド レ ス を 使 っ た 単 純 な ラ ウ ン ド ・ ロ ビ ン が 行 わ れ る 。 そ れ 以 降 の カ ー ネ ル (>= 2.6.11-rc1) に は 複 数 の 範 囲 を NAT す る 機 能 は 存 在 し な い 。
--random
--random オ プ シ ョ ン が 使 用 さ れ る と 、 ポ ー ト マ ッ ピ ン グ は ラ ン ダ ム 化 さ れ る (カ ー ネ ル 2.6.21 以 降 )。
--persistent
ク ラ イ ア ン ト の 各 コ ネ ク シ ョ ン に 同 じ 送 信 元 ア ド レ ス /宛 先 ア ド レ ス を 割 り 当 て る 。 こ れ は SAME タ ー ゲ ッ ト よ り も 優 先 さ れ る 。 persistent マ ッ ピ ン グ の サ ポ ー ト は 2.6.29-rc2 以 降 で 利 用 可 能 で あ る 。
2.6.36-rc1
よ り 前 の カ ー
ネ ル で は
INPUT
チ
ェ イ ン で
SNAT
を
使 用 で き な い
。
IPv6 サ ポ ー ト は Linux
カ ー ネ ル 3.7 以 降
で 利 用 可 能 で
あ る 。
SNPT (IPv6 の み )
(RFC 6296 で 説 明 さ れ て い る ) ス テ ー ト レ ス IPv6-to-IPv6 送 信 元 ネ ッ ト ワ ー ク プ レ フ ィ ッ ク ス 変 換 を 提 供 す る 。
こ
の タ ー ゲ ッ ト
は
nat
テ ー ブ ル
で は な く
mangle
テ
ー ブ ル で 使 わ
な け れ ば な ら
な い 。 以 下 の
オ プ シ ョ ン を
取 る 。
--src-pfx
[
prefix/length]
変 換 を 行 う 送 信 元 プ レ フ ィ ッ ク ス と そ の 長 さ を 設 定 す る 。
--dst-pfx [ prefix/length]
変 換 を 行 う 宛 先 プ レ フ ィ ッ ク ス と そ の 長 さ を 設 定 す る 。
変 換 を 取 り 消 す に は DNPT タ ー ゲ ッ ト を 使 わ な け れ ば な ら な い 。 例 :
ip6tables -t mangle -I POSTROUTING -s fd00::/64 -o vboxnet0 -j SNPT --src-pfx fd00::/64 --dst-pfx 2001:e20:2000:40f::/64
ip6tables -t mangle -I PREROUTING -i wlan0 -d 2001:e20:2000:40f::/64 -j DNPT --src-pfx 2001:e20:2000:40f::/64 --dst-pfx fd00::/64
IPv6 neighbor proxy を 有 効 に す る 必 要 が あ る か も し れ な い 。
sysctl -w net.ipv6.conf.all.proxy_ndp=1
ま た 、 変 換 さ れ た フ ロ ー に 対 す る コ ネ ク シ ョ ン 追 跡 を 無 効 に す る に は NOTRACK タ ー ゲ ッ ト を 使 用 す る 必 要 が あ る 。
TCPMSS
こ の タ ー ゲ ッ ト を 用 い る と 、 TCP の SYN パ ケ ッ ト の MSS 値 を 書 き 換 え 、 そ の コ ネ ク シ ョ ン で の 最 大 サ イ ズ を 制 御 で き る (通 常 は 、 送 信 イ ン タ ー フ ェ ー ス の MTU か ら IPv4 で は 40 を 、 IPv6 で は 60 を 引 い た 値 に 制 限 す る )。 も ち ろ ん -p tcp と の 組 み 合 わ せ で し か 使 え な い 。
こ の タ ー ゲ ッ ト は 、 "ICMP Fragmentation Needed" や "ICMPv6 Packet Too Big" パ ケ ッ ト を ブ ロ ッ ク し て い る 犯 罪 的 に 頭 の い か れ た ISP や サ ー バ ー を 乗 り 越 え る た め に 使 用 さ れ る 。 Linux フ ァ イ ア ウ ォ ー ル /ル ー タ ー で は 何 も 問 題 が な い の に 、 そ こ に ぶ ら 下 が る マ シ ン で は 以 下 の よ う に 大 き な パ ケ ッ ト を や り と り で き な い と い う の が 、 こ の 問 題 の 兆 候 で あ る 。
|
1. |
ウ ェ ブ ・ ブ ラ ウ ザ で 接 続 し よ う と す る と 、 何 の デ ー タ も 受 け 取 ら ず に ハ ン グ す る |
|||
|
2. |
短 い メ ー ル は 問 題 な い が 、 長 い メ ー ル が ハ ン グ す る |
|||
|
3. |
ssh は 問 題 な い が 、 scp は 最 初 の ハ ン ド シ ェ ー ク 後 に ハ ン グ す る |
回 避 方 法 : こ の オ プ シ ョ ン を 有 効 に し 、 以 下 の よ う な ル ー ル を フ ァ イ ア ウ ォ ー ル の 設 定 に 追 加 す る 。
iptables -t
mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN
-j TCPMSS --clamp-mss-to-pmtu
--set-mss value
Explicitly sets MSS option to specified value. If the MSS of the packet is already lower than value , it will not be increased (from Linux 2.6.25 onwards) to avoid more problems with hosts relying on a proper MSS.
--clamp-mss-to-pmtu
Automatically clamp MSS value to (path_MTU - 40 for IPv4; -60 for IPv6). This may not function as desired where asymmetric routes with differing path MTU exist — the kernel uses the path MTU which it would use to send packets from itself to the source and destination IP addresses. Prior to Linux 2.6.25, only the path MTU to the destination IP address was considered by this option; subsequent kernels also consider the path MTU to the source IP address.
こ れ ら の オ プ シ ョ ン は ど ち ら か 1 つ し か 指 定 で き な い 。
TCPOPTSTRIP
こ
の タ ー ゲ ッ ト
は TCP パ ケ ッ ト か
ら TCP オ プ シ ョ ン
を 削 除 す る (実
際 に は TCPオ プ シ
ョ ン を NO-OP で 置 き
換 え る )。 こ の
タ ー ゲ ッ ト を
使 う に は
-p tcp
パ
ラ メ ー タ ー を
使 う 必 要 が あ
る だ ろ う 。
--strip-options
option
[
,
option
...]
指 定 さ れ た オ プ シ ョ ン (複 数 可 ) を 削 除 す る 。 オ プ シ ョ ン は TCP オ プ シ ョ ン 番 号 か シ ン ボ ル 名 で 指 定 す る 。 iptables を -j TCPOPTSTRIP -h で 呼 び 出 す と 、 指 定 で き る オ プ シ ョ ン の シ ン ボ ル 名 を 取 得 で き る 。
TEE
TEE
タ ー ゲ ッ ト は
、 パ ケ ッ ト の
ク ロ ー ン を 作
成 し 、 ク ロ ー
ン し た パ ケ ッ
ト を
ロ ー カ ル
ネ ッ ト ワ ー ク
セ グ メ ン ト に
あ る 別 の マ シ
ン に リ ダ イ レ
ク ト す る 。 言
い 換 え る と 、
ネ ク ス ト ホ ッ
プ が タ ー ゲ ッ
ト で な け れ ば
な ら な い と い
う こ と だ 。 つ
ま り 、 必 要 に
応 じ て ネ ク ス
ト ホ ッ プ が さ
ら に パ ケ ッ ト
を 転 送 す る よ
う に 設 定 す る
必 要 が あ る と
い う こ と だ 。
--gateway
ipaddr
ク ロ ー ン し た パ ケ ッ ト を 指 定 し た IP ア ド レ ス で 届 く ホ ス ト に 送 信 す る 。 (IPv4 の 場 合 ) 0.0.0.0、 (IPv6 の 場 合 ) :: は 無 効 で あ る 。
eth0 に 届 い た す べ て の 入 力 ト ラ フ ィ ッ ク を ネ ッ ト ワ ー ク 層 の ロ ギ ン グ ボ ッ ク ス に 転 送 す る 。
-t mangle -A PREROUTING -i eth0 -j TEE --gateway 2001:db8::1
TOS
こ
の モ ジ ュ ー ル
は IPv4 ヘ ッ ダ ー の
Type of Service フ ィ ー ル ド
(上 位 ビ ッ ト も
含 む ) や IPv6 ヘ ッ ダ
ー の Priority フ ィ ー
ル ド を 設 定 す
る 。 TOS は DSCP と ECN と
同 じ ビ ッ ト を
共 有 す る 点 に
注 意 す る こ と
。 TOS タ ー ゲ ッ ト
は
mangle
テ ー ブ ル
で の み 有 効 で
あ る 。
--set-tos
value
[
/
mask
]
mask で 指 定 さ れ た ビ ッ ト を 0 に し (下 の 「 注 意 」 を 参 照 )、 value と TOS/Priority フ ィ ー ル ド の XOR を 取 る 。 mask が 省 略 さ れ た 場 合 は 0xFF と み な さ れ る 。
--set-tos symbol
IPv4 の TOS タ ー ゲ ッ ト を 使 用 す る 際 に は シ ン ボ ル 名 を 指 定 す る こ と が で き る 。 暗 黙 の う ち 0xFF が mask と し て 使 用 さ れ る (下 の 「 注 意 」 を 参 照 )。 使 用 で き る TOS 名 の リ ス ト は iptables を -j TOS -h で 呼 び 出 す と 取 得 で き る 。
以
下 の 簡 易 表 現
が 利 用 で き る
。
--and-tos
bits
TOS 値 と bits の ビ ッ ト 論 理 積 (AND) を 取 る ( --set-tos 0/ invbits の 簡 易 表 現 、 invbits は bits の ビ ッ ト 単 位 の 否 定 で あ る 。 下 の 「 注 意 」 を 参 照 )
--or-tos bits
TOS 値 と bits の ビ ッ ト 論 理 和 (OR) を 取 る ( --set-tos bits / bits の 簡 易 表 現 。 下 の 「 注 意 」 を 参 照 )
--xor-tos bits
TOS 値 と bits の XOR を 取 る ( --set-tos bits /0 の 簡 易 表 現 。 下 の 「 注 意 」 を 参 照 )
注 意 : 2.6.38 以 前 の Linux カ ー ネ ル (た だ し 、 長 期 間 サ ポ ー ト の リ リ ー ス 2.6.32 (>=.42), 2.6.33 (>=.15), 2.6.35 (>=.14) 以 外 ) で は 、 IPv6 TOS mangling が ド キ ュ メ ン ト に 書 か れ て い る 通 り に 動 作 せ ず 、 IPv4 バ ー ジ ョ ン の 場 合 と 異 な る 動 作 を す る と い う バ グ が あ る 。 TOS mask は ビ ッ ト が 1 の 場 合 に 対 応 す る ビ ッ ト が 0 に す る こ と を 指 示 す る の で 、 元 の TOS フ ィ ー ル ド に mask を 適 用 す る 前 に 反 転 す る 必 要 が あ る 。 し か し な が ら 、 上 記 の カ ー ネ ル で は こ の 反 転 が 抜 け て お り --set-tos と 関 連 す る 簡 易 表 現 が 正 し く 動 作 し な い 。
TPROXY
こ
の タ ー ゲ ッ ト
は 、
mangle
テ ー ブ
ル で 、
PREROUTING
チ
ェ イ ン と 、
PREROUTING
チ ェ イ ン
か ら 呼 び 出 さ
れ る ユ ー ザ ー
定 義 チ ェ イ ン
で の み 有 効 で
あ る 。 こ の タ
ー ゲ ッ ト は 、
そ の パ ケ ッ ト
を パ ケ ッ ト ヘ
ッ ダ ー を 変 更
せ ず に そ の ま
ま ロ ー カ ル ソ
ケ ッ ト に リ ダ
イ レ ク ト す る
。 ま た 、 mark 値 を
変 更 す る こ と
も で き 、 こ の mark
値 は 後 で 高 度
な ル ー テ ィ ン
グ ル ー ル で 使
用 す る こ と が
で き る 。 こ の
タ ー ゲ ッ ト に
は オ プ シ ョ ン
が 3 つ あ る :
--on-port
port
こ の オ プ シ ョ ン は 使 用 す る 宛 先 ポ ー ト を 指 定 す る 。 こ の オ プ シ ョ ン は 必 須 で 、 0 は 宛 先 ポ ー ト が 元 々 の 宛 先 ポ ー ト と 同 じ で あ る こ と を 意 味 す る 。 ル ー ル が -p tcp ま た は -p udp を 指 定 し て い る 場 合 に の み 有 効 で あ る 。
--on-ip address
こ の オ プ シ ョ ン は 使 用 す る 宛 先 ア ド レ ス を 指 定 す る 。 デ フ ォ ル ト で は 、 パ ケ ッ ト が 到 着 し た イ ン タ フ ェ ー ス の IP ア ド レ ス が 使 用 さ れ る 。 ル ー ル が -p tcp ま た は -p udp を 指 定 し て い る 場 合 に の み 有 効 で あ る 。
--tproxy-mark value [ / mask ]
Marks packets with the given value/mask. The fwmark value set here can be used by advanced routing. (Required for transparent proxying to work: otherwise these packets will get forwarded, which is probably not what you want.)
TRACE
This target marks packets so that the kernel will log every rule which match the packets as those traverse the tables, chains, rules.
A logging
backend, such as ip(6)t_LOG or nfnetlink_log, must be loaded
for this to be visible. The packets are logged with the
string prefix: "TRACE: tablename:chainname:type:rulenum
" where type can be "rule" for plain rule,
"return" for implicit rule at the end of a user
defined chain and "policy" for the policy of the
built in chains.
It can only be used in the
raw
table.
TTL (IPv4 の 場 合 )
こ の タ ー ゲ ッ ト を 使 う と 、 IPv4 の TTL ヘ ッ ダ ー フ ィ ー ル ド を 変 更 で き る 。 TTL フ ィ ー ル ド に よ り 、 TTL が な く な る ま で に 、 パ ケ ッ ト が 何 ホ ッ プ (何 個 の ル ー タ ) を 通 過 で き る か が 決 定 さ れ る 。
TTL フ ィ ー ル ド を 設 定 し た り 増 や す の は 、 危 険 性 を 非 常 に は ら ん で い る 。 し た が っ て 、 可 能 な 限 り 避 け る べ き で あ る 。 こ の タ ー ゲ ッ ト は mangle テ ー ブ ル で の み 有 効 で あ る 。
決
し て ロ ー カ ル
ネ ッ ト ワ ー ク
内 に 留 ま る パ
ケ ッ ト の フ ィ
ー ル ド 値 を 設
定 し た り 増 や
し た り し な い
こ と !
--ttl-set
value
TTL 値 を ‘value’ に 設 定 す る 。
--ttl-dec value
TTL 値 を ‘value’ 回 減 算 す る 。
--ttl-inc value
TTL 値 を ‘value’ 回 加 算 す る 。
ULOG (IPv4 の 場 合 )
こ
の タ ー ゲ ッ ト
は NFLOG タ ー ゲ ッ ト
の 前 身 で IPv4 専 用
で あ る 。 現 在
は 非 推 奨 と な
っ て い る 。 マ
ッ チ し た パ ケ
ッ ト を ユ ー ザ
ー 空 間 で ロ グ
記 録 す る 機 能
を 提 供 す る 。
こ の タ ー ゲ ッ
ト が ル ー ル に
設 定 さ れ る と
、 Linux カ ー ネ ル は
、 そ の パ ケ ッ
ト を
netlink
ソ ケ ッ
ト を 用 い て マ
ル チ キ ャ ス ト
す る 。 そ し て
、 1 つ 以 上 の ユ
ー ザ ー 空 間 プ
ロ セ ス が い ろ
い ろ な マ ル チ
キ ャ ス ト グ ル
ー プ に 登 録 を
お こ な い 、 パ
ケ ッ ト を 受 信
す る 。 LOG と 同 様
、 こ れ は "非 終
了 タ ー ゲ ッ ト "
で あ り 、 ル ー
ル の 探 索 は 次
の ル ー ル へ と
継 続 さ れ る 。
--ulog-nlgroup
nlgroup
パ ケ ッ ト を 送 信 す る netlink グ ル ー プ (1-32) を 指 定 す る 。 デ フ ォ ル ト の 値 は 1 で あ る 。
--ulog-prefix prefix
指 定 し た プ レ フ ィ ッ ク ス を ロ グ メ ッ セ ー ジ の 前 に 付 け る 。 32 文 字 ま で の 指 定 で き る 。 ロ グ の 中 で メ ッ セ ー ジ を 区 別 す る の に 便 利 で あ る 。
--ulog-cprange size
ユ ー ザ ー 空 間 に コ ピ ー す る パ ケ ッ ト の バ イ ト 数 。 値 が 0 の 場 合 、 サ イ ズ に 関 係 な く 全 パ ケ ッ ト を コ ピ ー す る 。 デ フ ォ ル ト は 0 で あ る 。
--ulog-qthreshold size
カ ー ネ ル 内 部 の キ ュ ー に 入 れ ら れ る パ ケ ッ ト の 数 。 例 え ば 、 こ の 値 を 10 に し た 場 合 、 カ ー ネ ル 内 部 で 10 個 の パ ケ ッ ト を ま と め 、 1 つ の netlink マ ル チ パ ー ト メ ッ セ ー ジ と し て ユ ー ザ ー 空 間 に 送 る 。 (過 去 の も の と の 互 換 性 の た め ) デ フ ォ ル ト は 1 で あ る 。