INPUT、FORWARD、OUTPUTチェーンの数字は、iptables構成ファイルで何を意味しますか?


34

私は次の設定ファイルに出会いました:

# Generated by iptables-save v1.3.1 on Sun Apr 23 06:19:53 2006
*filter
:INPUT ACCEPT [368:102354]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [92952:20764374]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
COMMIT
# Completed on Sun Apr 23 06:19:53 2006 

誰が何を知っています[368:102354][0:0]そして[92952:20764374]平均値を?


1
0設定をファイルに保存する場合は、これらを変更できます。もちろん、それを復元すると値がリセットされることを除いて、問題はありません。
トーター14年

構成ファイルから数字を完全に削除すると、@ Totorは違いを生じますか?構成ではなくレポートであるように聞こえますが、なぜ構成ファイルにあるのですか?
-barlop

回答:


34

2つの値は、パケット数とチェーンのデフォルトポリシーがこれまでに適用されたバイト数に対応します(詳細については、この他の回答を参照してください)。

ソースコードiptables-save.c自体によると:

/* Dump out chain names first,
 * thereby preventing dependency conflicts */
for (chain = iptc_first_chain(h);
     chain;
     chain = iptc_next_chain(h)) {

    printf(":%s ", chain);
    if (iptc_builtin(chain, h)) {
        struct xt_counters count;
        printf("%s ", iptc_get_policy(chain, &count, h));
        printf("[%llu:%llu]\n", 
               (unsigned long long)count.pcnt, 
               (unsigned long long)count.bcnt);
    } else {
        printf("- [0:0]\n");
    }
}

そして、構造xt_countersは次のように定義されますinclude/linux/netfilter/x_tables.h

struct xt_counters {
    __u64 pcnt, bcnt; /* Packet and byte counters */
};

また、組み込みではないチェーンには[0:0]とにかくマークが付けられていることにも注意してください(コードの奇妙な点です)。


1
プロジェクトソースコードからの洞察での回答が気に入っています。どうもありがとうございました。
ボードーヒューゴバーウィッチ

9

2つの数字は、それぞれデフォルトポリシーが適用されたパケット数とバイト数です(チェーンで認識されるパケット/バイトの総数ではありません)。それらは、チェーンのデフォルトポリシーと一緒に指定されます。これは、より良い場所がなかったためではなく、論理的にそこに属しているためです。

デフォルトのポリシーは、終了ターゲットを持つルールが一致しなかった場合にパケットに対して実行されるアクションです。終了ターゲットは、現在の最上位チェーン内のルールのさらなる処理を停止するターゲットです。たとえば、ACCEPTやDROPなどのターゲットは終了しますが、LOGは終了しません。

この質問の設定例では、INPUTチェーンの最後のルールはすべてを削除するため、デフォルトポリシーは適用されず、カウンターは通常0のままです。ゼロ以外の値(368パケット、102354バイト)を説明できます。 「すべてドロップ」ルールがチェーンに追加される前に発生したトラフィックによって。

デフォルトのアクションは常に呼び出し元のチェーンに戻ることであるため、非組み込みチェーンは定義によりデフォルトポリシーを持つことができません。そのため、常に0のカウンター値があります。


これをiptables-save(manpage)のドキュメントに追加することを検討するかもしれません...思いませんか?:-)
恐怖14年

私が使用して私のiptablesのルールを保存iptables-saveし、私が得た::INPUT DROP [0:0]:OUTPUT ACCEPT [249529:173953830]。ですから、設定ファイルを作成した人はそれらの数字に注意を払っていなかったと思います。しかし今、すべてがかなり明確になっています。
ミハイルモルフィコフ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.