iptables -vオプションのソースデータを管理する方法は?

iptables -vオプションのソースデータを管理する方法は?

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を呼び出す他のプロセスもパケット数を変更できることを理解してください。

おすすめ記事