¿Por qué desaparecen las reglas de iptables al reiniciar mi sistema Debian?

48

Añado esta regla:

sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. Cuando se reinician las reglas de la computadora se eliminan. ¿Por qué?
  2. ¿Qué puedo hacer para que las reglas persistan?
Jhonathan
fuente

Respuestas:

45

No hay ninguna opción en iptables que haga que sus reglas sean permanentes. Pero puedes usar iptables-savey iptables-restorecumplir tu tarea.

Primero agregue la regla iptable usando el comando que le dio.

Luego guarde las reglas de iptables en algún archivo, como /etc/iptables.confusar el siguiente comando:

$  iptables-save > /etc/iptables.conf

Agregue el siguiente comando /etc/rc.localpara volver a cargar las reglas en cada reinicio.

$  iptables-restore < /etc/iptables.conf
Pradeepchhetri
fuente
15
En Debian existe el iptables-persistentpaquete que hará esto.
bahamat
77
Es una idea bastante mala colocarlo rc.localya que habría una brecha de ventana abierta entre el inicio de los servicios y la política de firewall. Yo prefiero usar pre-up el gancho para la interfaz de bucle de retorno de /etc/network/interfacessuperar esto.
Poige
@poige: estoy de acuerdo al 100%, rc.localpodría tener el efecto deseado, pero es un error en esta situación.
JM Becker
3
@bahamat: instalar ese paquete es la mejor solución, merece su propia respuesta.
JM Becker
1
@TechZilla: Listo.
bahamat
53

(Porque se sugirió hacer de esto una respuesta propia ...)

En la instalación de Debian iptables-persistent.

El paquete se cargará automáticamente /etc/iptables/rulesdurante el arranque.

Cada vez que modifique sus reglas, corra /sbin/iptables-save > /etc/iptables/rulespara guardarlas. También puede agregar eso a la secuencia de apagado si lo desea.

bahamat
fuente
12
Hay dos archivos de reglas diferentes: /etc/iptables/rules.v4y /etc/iptables/rules.v6para IPv4 e IPv6 respectivamente. Si desea que una tabla se aplique a ambos tipos de conexiones, debe guardarla en ambos archivos de reglas.
PetaspeedBeaver
11
¡No lo agregue a su secuencia de apagado! Si no cumple sus reglas durante los cambios / configuración, al menos un buen reinicio antiguo hará que las cosas vuelvan al estado de funcionamiento anterior.
VertigoRay
1

Después de la instalación iptables-persistentanterior, también puede guardar reglas con el siguiente comando más corto en Ubuntu 16.04+: sudo netfilter-persistent save

Y también se pueden restaurar a su estado anterior la última vez que los guardó con: sudo netfilter-persistent reload

Robin Wilson
fuente