Uso la instancia amazon EC2 que funciona a través de ubuntu. De manera predeterminada, de acuerdo con las restricciones de seguridad, no puedo vincular mi aplicación al puerto 80, así que solo lo ato al puerto 8080 y luego configuro la redirección de enrutamiento desde el puerto 80 al 8080 mediante el siguiente comando:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
Pero descubrí que cuando reinicio el servidor, esta configuración ya no está activa hasta que invoco este comando nuevamente.
Entonces, mi pregunta es cómo habilitar el trabajo de redireccionamiento del puerto incluso si se reinicia el sistema.
Utilice el comando iptables-save en su lugar. Las reglas de firewall nunca deben entrar en el script rc.local. rc.local es lo último que se ejecutará. Si se ha colocado una regla de bloqueo en rc.local, hay un pequeño período de tiempo en el que un atacante puede explotar una regla que no está en su lugar. Si bien es probable que no importe con esta situación, es mejor no tener un mal hábito que pueda morderlo más tarde.
fuente
iptables-save > some-file-path
guarda las reglas y luego las restauraría a través deiptables-restore < some-file-path
inrc.local
. O instale loiptables-persistent
que hace esto durante el arranque como servicio.Así es como nos enseña la documentación oficial de ipttable. Mira aquí
Agregue estas dos líneas en / etc / network / interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules
La línea "post-down iptables-save> /etc/iptables.rules" guardará las reglas que se utilizarán en el próximo arranque.
fuente
Descubrí un conjunto de directorios en Ubuntu 16.04
/etc/network
que ejecutará scripts en varios momentos durante la inicialización y el apagado de la red:Entonces descubrí que podía volcar la configuración como de costumbre:
Luego creé un archivo `/etc/network/if-pre-up.d/restore:
... y lo marcó como ejecutable
fuente