iptables detecta DENEGAR pero no ACEPTAR lugar anterior a él en la cadena

iptables detecta DENEGAR pero no ACEPTAR lugar anterior a él en la cadena

Tengo un problema extraño con mi firewall iptables: si configuro dos reglas idénticas consecutivas, la primera es ACCEPTy la segunda es DENY, el paquete entrante se rechaza (y se registra como tal).

¿Cómo es posible que la primera regla ignore el paquete entrante y la segunda lo capture?

La vista del fwbuilder está aquí: ingrese la descripción de la imagen aquí

Aquí está el iptablesbasurero:

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state     RELATED,ESTABLISHED
In_RULE_0  all  --  0.0.0.0/0            0.0.0.0/0            state NEW
In_RULE_1  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
In_RULE_0  all  --  0.0.0.0/0            0.0.0.0/0            state NEW
In_RULE_1  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

Chain In_RULE_0 (2 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0     level 6 prefix "FW RULE 0 -- ACCEPT "
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain In_RULE_1 (2 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "FW RULE 1 -- DENY "
DROP       all  --  0.0.0.0/0            0.0.0.0/0  

También probé ACCEPTsolo con la regla y no pilla.

La única diferencia que veo es que la DENYregla no es state NEW, pero es la misma para las decenas de firewalls que ya configuré y que funcionan bien.

Respuesta1

Necesita saber que: Una regla con la -Iopción de iptables coloca una regla al PRINCIPIO de la lista; Una regla con la -Aopción coloca una regla al final de la lista.

En su caso: creo que podría haber usado "-I" en sus dos reglas de iptables (casi idénticas), la segunda regla se inserta al principio de la lista antes de la primera regla y, por lo tanto, creó una lista de reglas. con las reglas en el orden:

match -s x.x.x.x action DROP
match -s x.x.x.x action ACCEPT

Debido a que su paquete coincide con ambas reglas, la primera ( DROP) en el orden de la tabla operativa real (que reside en la RAM) entrará en vigor. El orden no tiene nada que ver con el orden en su archivo de configuración de iptable.

Cambie el orden y el resultado será diferente.

Respuesta2

Bien, lo encontré. Resulta que mi FW estaba perfectamente bien, pero el host virtual estaba mal configurado. No tuve ningún error pero no se permitieron iptables. Cuando lo permití, el FW quedó operativo... No es de extrañar por qué no pudimos encontrar el error en el nivel de iptables... Gracias por toda la ayuda :)

Respuesta3

Tus iptables In_RULE_0solo se aplican a conexiones NUEVAS cuando usas state NEW.

También está configurado en su cadena FORWARD (paquetes a través del servidor), no en su cadena INPUT (paquetes al servidor).

¿Cómo estás probando? ¿Está haciendo ping a una interfaz particular del servidor?

¿Puedes publicar el resultado completo de:

iptables -vnL

Pruebe la siguiente regla para registrar el tráfico en la cadena de ENTRADA (pings a la interfaz del servidor)

iptables -I INPUT 1 -j In_RULE_0

información relacionada