Seguí este tutorial para configurar las reglas de IP en ubuntu 12.04. Todo funcionó bien en la configuración, pero ahora he realizado cambios en el firewall que no persisten al reiniciar. No entiendo por qué es eso. Aquí hay una demostración de cómo estoy usando iptables-persistent. ¿Qué estoy haciendo mal?
$ sudo service iptables-persistent start
* Loading iptables rules... * IPv4... * IPv6...
$ sudo iptables -L //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L //shows rule has been deleted
$ sudo service iptables-persistent restart
* Loading iptables rules... * IPv4... * IPv6... [ OK ]
$ sudo iptables -L //rule is back
iptables
iptables-persistent
bernie2436
fuente
fuente

iptables -D INPUTregla no está dentrosudo¿Estás seguro de que en realidad está reportando un éxito? ¿Cambia el comportamiento si lo ejecutas dentrosudo?Respuestas:
iptables-persistentno funciona de esa manera Reiniciar eliptables-persistent"servicio" no captura el estado actual de las tablas ip y lo guarda; todo lo que hace es restablecer las reglas de iptables que se guardaron la última vez que se configuró el paquete.Para configurar
iptables-persistent, debe informarle sobre su conjunto de reglas actual de iptables.Una forma de lograrlo es la siguiente:
O, de manera equivalente, el
iptables-persistentpaquete también proporciona lo siguiente:(Deberá responder que sí a las preguntas sobre si guardar las reglas).
Después de eso, la próxima vez que
iptables-persistentse inicie / reinicie, se cargarán los conjuntos de reglas de iptables que espera.fuente
Una manera muy simple de guardar las reglas actuales de iptables es usar el comando:
sudo service netfilter-persistent saveEl uso de lo anterior, que funciona al menos en Ubuntu después de instalar el
netfilter-persistent(yiptables-persistentel paquete), no hay necesidad de ejecutar manualmente los comandos de iptables o reconfigurar el paquete (como se sugiere en la respuesta aceptada incluso por encima).fuente
sudo service netfilter-persistent saveosudo service netfilter-persistent save .? (Punto al final.)Eso no es lo que
DROPsignifica o hace. Deman iptables:Entonces, lo que has hecho es agregar una nueva regla. Puede reemplazar efectivamente cualquier cantidad de otras reglas, pero esas reglas aún existen.
Al verificar cosas como esta (su
iptables -Lsalida), lo alimentaría engrep "string unique to this rule"lugar de usar sus ojos. Es más fácil y rápido de hacer, y menos propenso a errores.Si desea eliminar una regla, use el
-Dinterruptor; la página del manual describe dos formas de esto:fuente
-Dsignifica "eliminar", no "DROP". Usar el término "DROP" para referirse a cualquier cosa que no sea un objetivo de salto cuando se hablaiptableses confuso.Como explicó @ steven-monday , puede guardar su conjunto de reglas usted mismo en el directorio apropiado (a saber:
/etc/iptables/rules.v{4,6}.Sin embargo, @OpenITeX tiene razón: llamando a la
saveacción deservice netfilter-persistentes mejor.A partir de hoy (en 18.10), iptables-save está integrado, pero no
iptables-persistentestá instalado. Por lo tanto, el directorio de complementos llamado por está vacío y el servicio imprime que el conjunto de reglas se guardó, mientras que no.service netfilter-persistentTLDR: instalar
iptables-persistenty verificar que el directorio de complementos/usr/share/netfilter-persistent/plugins.dcontenga complementos.Así es como lo descubrí:
Luego verifique el
/usr/sbin/netfilter-persistentguión, observe que invoca guiones externos:Entonces noté que
/usr/share/netfilter-persistent/plugins.destaba vacío.fuente
Instalar iptables-persistent:
guardar reglas después de hacer los cambios deseados:
fuente