Borrar y restablecer iptables en Debian

Borrar y restablecer iptables en Debian

Para borrar todas las reglas en iptables uso esto

#!/bin/bash
echo "clearing iptables ... "
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Esto funciona hasta el momento en que ya no haya entradas en iptables, lo cual se verifica con

sudo iptables -L

o

sudo iptables -S

Sin embargo, el tráfico que se ha reenviado a un destino diferente todavía se enruta a ese destino.

¡Parece que las iptables borradas todavía están activas después de borrarlas!

Hasta ahora mi única manera de deshacerme de esas reglas es reiniciar el sistema, lo cual no es muy elegante.

EnDebianiptables no parece ejecutarse como un servicio, por lo que iniciar o detener ese servicio no funciona.

¿Cómo borro o restablezco totalmente iptables con el efecto de que las reglas previamente definidas se desactiven?

Respuesta1

  1. El vaciado de las reglas de iptables no afecta a las conexiones ya establecidas a las que se ha redirigido DNAT. Está relacionado porque la entrada conntrack para paquetes UDP contiene la información de redireccionamiento, que se usa además de las reglas de iptables.

  2. Verifique las entradas de conntrack existentes con conntrack -Ly monitoree los eventos de conntrack con el conntrack -Ecomando.

  3. Utilice el conntrack -Fcomando para borrar las entradas de conntrack. Los nuevos paquetes UDP ya no serán redirigidos.

  4. Para gestionar las reglas de iptables como servicio utilice los paquetes netfilter-persistentand iptables-persistent.

  5. Es mejor usar iptables-save/ iptables-restorecomandos en lugar de ejecutar manualmente el archivo iptables. Es más seguro y atómico.

  6. Para administrar las reglas de iptables en un host remoto, use el iptables-applycomando, que permite revertir el conjunto de reglas si no se ha confirmado.

Respuesta2

sudo ufw status verbose; sudo iptables -L; 

¿Tal vez hay ufw ejecutándose? Intenta parar.

¿Podría contarnos un poco más sobre su sistema, su red y qué tráfico aún se enruta?

1-2 ejemplos están bien incl. la regla de firewall inicial.

EDITAR:

Comprobado por algunos de mis scripts... También lave las cadenas.

sudo iptables -F INPUT
sudo iptables -F FORWARD 
sudo iptables -F OUTPUT

Respuesta3

Su script para borrar las reglas de iptables es suficiente para vaciar todas las reglas y establecer la política predeterminada en ACEPTAR. Esto efectivamente desactiva el firewall ya que no hay reglas y todo está permitido.

Sabemos, por sus comentarios, que está enviando paquetes UDP. Puede sentir que las reglas antiguas todavía están activas por un tiempo, especialmente cuando hay un flujo continuo de paquetes UDP atravesando su máquina firewall. Esto se debe principalmente a que UDP no tiene una forma de cerrar la conexión y, por lo tanto, el firewall no sabe cuándo finaliza el flujo activo actual. La única forma es utilizar un tiempo de espera de inactividad para vaciar las "conexiones" activas cuando no se vean más paquetes.

Tienes dos opciones:

  1. Espere un tiempo antes de volver a intentarlo. Esto requiere detener cualquier "conexión" activa actual. Puede encontrar el tiempo de espera de UDP en /proc/sys/net/netfilter/nf_conntrack_udp_timeout.
  2. Utilice conntrackla herramienta para eliminar las "conexiones" existentes manualmente.

Tenga en cuenta que el firewall de Linux realiza un seguimiento de los sockets activos para TCP/UDP incluso si UDP es un protocolo sin conexión.

información relacionada