¿Qué significan los números en las cadenas INPUT, FORWARD, OUTPUT en el archivo de configuración de iptables?


34

Encontré el siguiente archivo de configuración:

# 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 

¿Alguien sabe qué [368:102354], [0:0]y [92952:20764374]media?


1
Puede cambiarlos a 0si desea guardar su configuración en un archivo. Eso no hará daño, excepto que, por supuesto, restablecerá los valores cuando lo restaure.
Totor

@ Motor ¿Hay alguna diferencia si elimina los números completamente del archivo de configuración? parece que son un informe en lugar de una configuración, ¿por qué están en un archivo de configuración?
barlop

Respuestas:


34

Los dos valores corresponden al número de paquetes y al número de bytes a los que se ha aplicado la política predeterminada de la cadena hasta ahora (consulte esta otra respuesta para obtener más detalles).

Según el código fuente en iptables-save.csí mismo:

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

Y, la estructura xt_countersse define como sigue en include/linux/netfilter/x_tables.h:

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

Tenga en cuenta también que las cadenas que no están integradas están marcadas de [0:0]todos modos (es una peculiaridad en el código).


1
Me gusta su respuesta con la información del código fuente del proyecto. Muchas gracias.
Bodo Hugo Barwich

9

Los dos números son el número de paquetes y bytes respectivamente a los que se ha aplicado la política predeterminada (no el número total de paquetes / bytes vistos por la cadena). Se especifican junto con la política predeterminada para la cadena; esto se debe a que lógicamente pertenecen allí, no porque no haya un lugar mejor.

La política predeterminada es la acción que se realiza en el paquete cuando ninguna regla con un destino final coincide. Un objetivo final es aquel que detiene el procesamiento posterior de las reglas en la cadena de nivel superior actual. Por ejemplo, los objetivos como ACCEPT o DROP están terminando, mientras que LOG no.

En la configuración de ejemplo en esta pregunta, la última regla en la cadena INPUT es DROP todo, por lo que la política predeterminada nunca se aplicará y los contadores normalmente deberían permanecer en 0. Los valores distintos de cero (368 paquetes, 102354 bytes) pueden explicarse por el tráfico que tuvo lugar antes de que se añadiera a la cadena la regla de "descartar todo".

Las cadenas no integradas no pueden tener una política predeterminada por definición, ya que la acción predeterminada es siempre volver a la cadena desde la que fueron llamadas, es por eso que siempre tienen valores de contador de 0.


Puede considerar agregar esto a la documentación de iptables-save (página de manual) ... ¿No le parece? :-)
Perror

Guardé reglas en mis iptables usando iptables-savey obtuve: :INPUT DROP [0:0]y :OUTPUT ACCEPT [249529:173953830]. Entonces, creo que la persona que creó el archivo de configuración no prestó atención a esos números. Pero ahora, todo está bastante claro.
Mikhail Morfikov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.