Cada vez que reinicio, pierdo las reglas de iptables que me tomaron tanto tiempo ingresar. Sé que puedo guardarlos y restaurarlos en el arranque , pero ¿hay alguna forma de guardarlos para siempre? ¿Realmente necesito restaurarlos en el arranque cada vez? ¿Seriamente?
El problema es que tengo una ENORME lista de IP en las que uso un ciclo while para cargarlas. Esto puede llevar más de 10 minutos.
Este es el servidor FTP de mi casa. Es una pequeña máquina virtual con 1 gb de ram y muy poca potencia de procesamiento. Hay tantas IP porque me he rendido en el continente asiático. No necesito que golpeen mi servidor FTP todos los días con fuerza bruta. También bloqueo al gobierno. monitores, rastreadores y spammers.
Este es el ciclo while que uso para cargar en la lista.
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
Respuestas:
Primero, cree un archivo con el contenido de
iptables-save
:Realmente no importa dónde coloque el archivo, todo lo que tiene que hacer es asegurarse de que la siguiente línea se refiera al mismo archivo. A continuación, abra
/etc/rc.local
y agregue esta línea:A partir de ahora, cada vez que su computadora se encienda o reinicie, iptables cargará las reglas del archivo que especificó.
fuente
-bash: /etc/iptables_rules: Permission denied
en el primer comando. Lo cual es extraño usar sudo y todo.sudo sh -c '/sbin/iptables-save > /etc/iptables.save'
para evitar elPermission denied
error. Referencia/etc/rc.local
para esto. Se ejecuta más tarde que el resto del inicio de su sistema y potencialmente deja su sistema en un estado sin firewall. Sugeriría colocar este script de una línea en/etc/network/if-up.d/firewall
(nuevo archivo). Esto asegura que se ejecutará cada vez que habilite sus interfaces de red.En la instalación, debe guardar su configuración actual de iptables. De lo contrario, puede guardarlos en estos archivos (dependiendo de v4 o v6) e iptables-persistent los cargará en el arranque :)
fuente
Si tiene muchas reglas, también debería considerar usar ipset junto con iptables. Ipset utiliza una tabla de base de datos indexada y es mucho más rápido que iptables cuando busca una dirección para decidir si acepta o rechaza.
http://ipset.netfilter.org/index.html
fuente