Que signifient les nombres dans les chaînes INPUT, FORWARD, OUTPUT dans le fichier de configuration iptables?

34

Je suis tombé sur le fichier de configuration suivant:

# 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 

Est -ce que quelqu'un sait ce que [368:102354], [0:0]et cela [92952:20764374]signifie?

Mikhail Morfikov
la source
1
Vous pouvez les changer 0si vous voulez enregistrer votre configuration dans un fichier. Cela ne fera pas mal, sauf qu'il sera bien sûr réinitialiser les valeurs lorsque vous le restaurez.
Totor
@Totor fait-il une différence si vous supprimez complètement les numéros du fichier de configuration? cela ressemble à un rapport plutôt qu'à une configuration, alors pourquoi sont-ils dans un fichier de configuration?
Barlop

Réponses:

34

Les deux valeurs correspondent au nombre de paquets et au nombre d'octets auxquels la stratégie par défaut de la chaîne a été appliquée jusqu'à présent (voir cette autre réponse pour plus de détails).

Selon le code source en iptables-save.clui-même:

/* 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");
    }
}

Et, la structure xt_countersest définie comme suit dans include/linux/netfilter/x_tables.h:

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

Notez également que les chaînes qui ne sont pas intégrées sont marquées avec de [0:0]toute façon (c'est une bizarrerie dans le code).

perror
la source
1
J'aime votre réponse avec l'insight du code source du projet. Merci beaucoup.
Bodo Hugo Barwich
9

Les deux nombres représentent respectivement le nombre de paquets et d'octets auxquels la stratégie par défaut a été appliquée (et non le nombre total de paquets / octets vus par la chaîne). Ils sont spécifiés avec la politique par défaut pour la chaîne - c'est parce qu'ils y appartiennent logiquement, pas parce qu'il n'y avait pas de meilleur endroit.

La politique par défaut est l'action qui est effectuée sur le paquet lorsqu'aucune règle avec une cible de terminaison ne correspond. Une cible de terminaison est une cible qui arrête le traitement ultérieur des règles dans la chaîne de niveau supérieur en cours. Par exemple, des cibles telles que ACCEPT ou DROP se terminent, contrairement à LOG.

Dans l'exemple de configuration de cette question, la dernière règle de la chaîne INPUT consiste à tout annuler, de sorte que la stratégie par défaut ne sera jamais appliquée et que les compteurs doivent normalement rester à 0. Des valeurs non nulles (368 paquets, 102354 octets) peuvent être expliquées. par le trafic qui a eu lieu avant que la règle "drop-all" a été ajoutée à la chaîne.

Par définition, les chaînes non intégrées ne peuvent pas avoir de stratégie par défaut, car l'action par défaut consiste toujours à revenir à la chaîne depuis laquelle elles ont été appelées. C'est pourquoi elles ont toujours des valeurs de compteur égales à 0.

utilisateur56143
la source
Vous pouvez envisager d’ajouter ceci à la documentation de iptables-save (manpage) ... Vous ne pensez pas? :-)
perror le
J'ai sauvegardé des règles dans mon iptables en utilisant iptables-saveet j'ai: :INPUT DROP [0:0]et :OUTPUT ACCEPT [249529:173953830]. Donc, je pense que la personne qui a créé le fichier de configuration n'a pas fait attention à ces chiffres. Mais maintenant, tout est assez clair.
Mikhail Morfikov