Recargar iptables


29

Hice cambios en el archivo de configuración de iptables /etc/iptables/filteren Ubuntu y quiero volver a cargarlos. Leí la página de manual y también busqué en Google pero no pude encontrar la información. Cualquier ayuda será apreciada.


No ha proporcionado ninguna información sobre la versión de Ubuntu que está utilizando, ni ha buscado bien en la web, antes de publicar esta pregunta.

Respuestas:


28

La forma más fácil es reiniciar (también si a continuación no funciona, reiniciar, verificar si eso hizo el cambio).

La segunda más fácil es reiniciar los demonios usando configuraciones de iptables (google: restart daemon ubuntu).

ejemplos (depende de su configuración):

/etc/init.d/iptables restart  

/etc/init.d/networking restart  

/etc/init.d/firewall restart

55
No hay archivo por nombre /etc/init.d/iptables

1
¿Qué red relacionada existe en /etc/init.d? intenta reiniciar eso.

2
/etc/init.d/networking restart?

1
El enlace muerto está muerto.
Dustin Graham

@DustinGraham gracias, el enlace roto se elimina.
Juha

37

Normalmente sus reglas de firewall están en el archivo de configuración /etc/iptables.firewall.rules

Para activar las reglas definidas en su archivo, debe enviarlas a iptables-restore(puede usar otro archivo si lo desea):

sudo iptables-restore < /etc/iptables.firewall.rules

Y puede verificar que estén activados con:

sudo iptables -L

Si desea activar las mismas reglas cada vez que inicie la computadora, cree este archivo:

sudo nano /etc/network/if-pre-up.d/firewall

Con este contenido:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

Y dale permiso de ejecución:

sudo chmod +x /etc/network/if-pre-up.d/firewall

Espero que te ayude =)

Archivo de ejemplo para /etc/iptables.firewall.rules:

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

44
En Ubuntu 14.10 no tengo /etc/iptables.firewall.rulespero sudo iptables-restore < /etc/iptables/rules.v4funcionó para mí.
timbo

4

Si ha ejecutado sus reglas, ya se están ejecutando y no es necesario volver a cargarlas. En el caso de que tenga un archivo de configuración pero no se haya ejecutado de la mejor manera que he visto hasta ahora es usar iptables-apply(una extensión de iptables).

iptables-apply -t 60 your_rules_file

Esto aplicará las reglas durante 60 segundos (10 por defecto) y las revertirá si no las confirma. Esto lo salvará en caso de que sea expulsado del sistema debido a las reglas (por ejemplo, si está operando a través de ssh).

Puede usar lo siguiente como reemplazo:

iptables-restore < your_rules_file; sleep 60; iptables-restore < clean_rules

No, la recarga es absolutamente necesaria para la resolución de host DDNS. Si la IP de cualquier host al que se hace referencia cambia, entonces iptables debe recargarse. Lo ideal sería hacer esto cada 30 minutos desde cron. No es conveniente reiniciar cada 30 minutos.
mckenzm


0

Después de buscar un poco en Google, esto es lo que encontré para reiniciar iptables. . . sudo /etc/init.d/firewall restart


3
No hay ningún archivo por nombre /etc/init.d/firewall

0

Si desea volver a cargar IPtables para validar los cambios que acaba de hacer; También puede reiniciar Apache con las siguientes líneas de comando:

/etc/init.d/apache2 stop

/etc/init.d/apache2 start

Estos comandos pueden variar según su sabor de Ubuntu, y eventuales modificaciones que se hayan realizado anteriormente.

Espero que esto ayude.

Pierre

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.