Ubuntuを実行しているVPSサーバーでこのコマンドを実行すると、同様のiptables -nvL
出力が表示されます(出力が長くなり、興味深い部分のみが表示されました)。
$ sudo iptables -nvL
Chain INPUT (policy DROP 41439 packets, 2499K bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 91.234.36.0/24 0.0.0.0/0
0 0 DROP all -- * * 223.255.252.0/23 0.0.0.0/0
0 0 DROP all -- * * 1.0.1.0/24 0.0.0.0/0
3102 261K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
174K 54M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
495 26116 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
331 14756 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1723
26 1468 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 7 prefix "iptables denied: "
時々このコマンドを実行すると、次の結果が表示されます。
(policy DROP 41439 packets, 2499K bytes)
しかし、同じシェル内でデータがゼロにリセットされ、再計算が開始されるようです。例えば
(policy DROP 2 packets, 9K bytes)
別のシェルに切り替えると、最後のシェルから同じデータが得られます。
私の質問は
- iptablesはこの情報をどこで入手できますか?
- ログファイル?
- 最初の呼び出しから内部的に追跡されますか
iptables -nvL
?
- データがゼロにリセットされないようにするには?
答え1
Iptablesは処理されたパケット数(チェーンあたり)を保持します。次の2つのオプションを使用して数を変更できます。
-Z, --zero [chain [rulenum]] すべてのチェーンでパケットとバイトカウンタが 0 であるか、指定されたチェーンでのみ、またはチェーンで指定されたルールでのみ 0 です。
-c、--set-countersパケットバイトこれにより、管理者はルールのパケットとバイトカウンタを初期化できます(INSERT、APPEND、REPLACE操作中)。
INSERT、APPEND、またはREPLACE操作を実行するためにiptablesを呼び出す他のプロセスもパケット数を変更できることを理解してください。