iptables配置文件中INPUT,FORWARD,OUTPUT链中的数字意味着什么?


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如果要将配置保存到文件中,可以将其更改为。除了会在您还原它时重置值之外,这不会有任何伤害。
Totor 2014年

如果您从配置文件中完全删除数字,@ Totor会有所不同吗?听起来好像它们是报告而不是配置,所以为什么将它们放在配置文件中?
barlop

Answers:


34

这两个值对应于数据包数字节数,该链的默认策略已被应用到至今(见这个答案的其他详细信息)。

根据源代码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
我喜欢您从Project Source Code中获得的Insight答案。非常感谢你。
Bodo Hugo Barwich '18

9

这两个数字分别是已应用默认策略的包数和字节数(不是链中看到的包数/字节总数)。它们与链的默认策略一起指定-这是因为它们在逻辑上属于该位置,而不是因为没有更好的位置。

默认策略是在没有匹配目标的规则时对数据包执行的操作。终止目标是停止进一步处理当前顶级链中的规则的目标。例如,诸如ACCEPT或DROP之类的目标正在终止,而LOG未终止。

在此问题的示例配置中,INPUT链中的最后一条规则是丢弃所有内容,因此将永远不会应用默认策略,并且计数器通常应保持为0。可以解释非零值(368个数据包,102354字节)通过将“全部丢弃”规则添加到链之前发生的流量。

根据定义,非内置链不能具有默认策略,因为默认操作始终是返回到从其调用的链,这就是为什么它们始终具有0的计数器值的原因。


您可以考虑将其添加到iptables-save(手册页)的文档中。:-)
perror

我使用将规则保存在iptables中,iptables-save并且得到了:INPUT DROP [0:0]:OUTPUT ACCEPT [249529:173953830]。因此,我认为创建配置文件的人并没有注意这些数字。但是现在,一切都非常清楚了。
Mikhail Morfikov 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.