2012-02-17 30 views
37

Estoy tratando de redirigir el tráfico http al puerto 8080 en la misma máquina y tengo las reglas de las iptables a continuación.Cómo actualizar permanentemente iptables

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080 

estoy tratando de encontrar la manera de hacer este cambio permanente en caso de un reinicio del sistema.

Estoy usando el servidor Ubuntu 11.10.

+0

http://askubuntu.com/questions/66890/how-can-i -make-a-specific-set-of-iptables-rules-permanent – azerafati

Respuesta

18

Una forma de hacer esto sería:

vim /etc/network/interfaces 

añadir una línea a continuación junto con sus directivas LO:

Ahora ejecuta el siguiente comando

iptables-save > /etc/iptables-up.rules 

I espero que esto ayude.

+10

Quien encuentre esto debería considerar la respuesta mucho mejor sobre 'iptables-persistent' por yomimono a continuación. – zakx

+1

Nunca lo use de esta manera, que deja una ventana abierta, al menos por un momento, la conexión incorrecta puede considerarse 'ESTABLECIDA'. La interfaz debe ser 'lo' (loopback) en lugar de' eth0' y 'pre-up' en lugar de' post-up'. – poige

+0

Obtengo un permiso denegado al intentar escribir en '/ etc', incluso en el modo raíz – puk

2

Agrégalos a /etc/ufw/before.rules. La sintaxis es un poco diferente, pero verás cómo funciona.

UFW es la interfaz de firewall de Ubuntu para iptables. Es posible que necesite habilitar UFW usando sudo ufw enable, pero simplemente no puede establecer ninguna regla dentro de ufw.

6

no podemos hacer lo mismo con rc.local pero realice los siguientes pasos

iptables-save > current_iptables_rules 

Entonces entra en /etc/rc.local y escriba el siguiente

iptables-restore < current_iptables_rules 

Won' t que logran lo mismo? Me podría estar perdiendo algo.

+0

Sí, esto debería funcionar también. –

132

Ubuntu (y Debian) ofrecen el paquete iptables-persistent (Debian: http://packages.debian.org/wheezy/iptables-persistent, Ubuntu: http://packages.ubuntu.com/saucy/iptables-persistent), que hace exactamente lo que usted desea. Como root, o por medio de sudo:

apt-get install iptables-persistent 
iptables-save > /etc/iptables/rules.v4 

Si está trabajando con ip6tables, usted querrá también ip6tables-save > /etc/iptables/rules.v6.

debe guardar las tablas de nuevo (iptables-save > /etc/iptables/rules.v4, ip6tables-save > /etc/iptables/rules.v6) después de cualquier cambio que realice.

En las versiones más antiguas (antes de iptables-0.5, y antes de Debian Wheezy) tendrá que escribir en un archivo diferente:

iptables-save > /etc/iptables/rules 
+12

En caso de que ayude a alguien más ... me tomó un tiempo rastrear que realmente necesitaba hacer esto: iptables-save> /etc/iptables/rules.v4 – mdahlman

+9

Si está usando IPv6 también, puede ser un dolor para asegurarse de que las reglas lleguen al lugar correcto. Puede ejecutar lo siguiente para que esto suceda, automágicamente: 'invoke-rc.d iptables-persistent save' –

+1

@mdahlman depende de la versión de Debian/Ubuntu. Creo que Debian <7 requiere '>/etc/iptables/rules' y 7+ requiere'>/etc/iptables/rules.v4' –

Cuestiones relacionadas