¿Iptables -F elimina permanentemente todas las reglas de iptables?

8

En un documento de capacitación de RHEL, el autor dice:

... ejecute el siguiente comando para deshabilitar el firewall en el sistema actual: iptables -F

Él usa explícitamente la palabra "deshabilitar" que para mí sugiere que será fácil volver a habilitar. Al leer la página del manual para iptables, veo esto:

Vaciar la cadena seleccionada (todas las cadenas de la tabla si no se proporciona ninguna). Esto es equivalente a eliminar todas las reglas una por una.

¿Puedo obtener aclaraciones sobre el comportamiento esperado?

Mike B
fuente
2
Tenga en cuenta que iptables -Felimina todas las reglas en la tabla de "filtro", no elimina las otras tablas (nat, mangle ...) y no restaura las políticas a sus valores predeterminados, por lo que no se puede decir que realmente deshabiliten El cortafuegos .
Stéphane Chazelas

Respuestas:

13

Las iptablesreglas se almacenan en dos lugares en los sistemas Red Hat:

  • En la memoria dentro del núcleo en ejecución, donde el código del firewall los verifica en la E / S de la red. El vaciado de las reglas solo iptables -Felimina este conjunto de reglas.

  • En /etc/sysconfig/iptablesel que se cargan en el arranque. Puede forzar una recarga sin reiniciar con service iptables reloado ...restart.

Entonces, la respuesta es no, limpiar las reglas iptables -Fno es permanente.

Cuando entra setupy modifica las reglas del firewall, las guarda /etc/sysconfig/iptables. Se supone que no debe editar ese archivo directamente, pero si conoce el iptablesformato de la línea de comandos, puede averiguar fácilmente el formato de este archivo.

Warren Young
fuente
Fantástica respuesta. Agradezco los detalles y aclaraciones. Gracias Warren
Mike B
9

Además, como punto de referencia, aquí se explica cómo vaciar TODAS las reglas actuales de iptables:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
Steve Dibb
fuente
44
En realidad hay más tablas que eso. Al menos -t rawy -t security. En lugar de codificación rígida, use/proc/net/ip_tables_names
derobert