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 INPUT
regla no está dentrosudo
¿Estás seguro de que en realidad está reportando un éxito? ¿Cambia el comportamiento si lo ejecutas dentrosudo
?Respuestas:
iptables-persistent
no 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-persistent
paquete 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-persistent
se 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 save
El uso de lo anterior, que funciona al menos en Ubuntu después de instalar el
netfilter-persistent
(yiptables-persistent
el 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 save
osudo service netfilter-persistent save .
? (Punto al final.)Eso no es lo que
DROP
significa 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 -L
salida), 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
-D
interruptor; la página del manual describe dos formas de esto:fuente
-D
significa "eliminar", no "DROP". Usar el término "DROP" para referirse a cualquier cosa que no sea un objetivo de salto cuando se hablaiptables
es 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
save
acción deservice netfilter-persistent
es mejor.A partir de hoy (en 18.10), iptables-save está integrado, pero no
iptables-persistent
está 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-persistent
TLDR: instalar
iptables-persistent
y verificar que el directorio de complementos/usr/share/netfilter-persistent/plugins.d
contenga complementos.Así es como lo descubrí:
Luego verifique el
/usr/sbin/netfilter-persistent
guión, observe que invoca guiones externos:Entonces noté que
/usr/share/netfilter-persistent/plugins.d
estaba vacío.fuente
Instalar iptables-persistent:
guardar reglas después de hacer los cambios deseados:
fuente