Eu uso a instância do Amazon EC2 que funciona via ubuntu. Por padrão, de acordo com as restrições de segurança, não posso binar meu aplicativo na porta 80, então apenas a vinculo à porta 8080 e, em seguida, defino o redirecionamento de roteamento da porta 80 a 8080 através do seguinte comando:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
Mas descobri que, quando reinicializo o servidor, essas configurações não ficam mais ativas até que eu chame esse comando novamente.
Então, minha pergunta é como habilitar o trabalho de redirecionamento de porta, mesmo que o sistema tenha sido reiniciado?
Use o comando iptables-save. As regras do firewall nunca devem entrar no script rc.local. rc.local é a última coisa a ser executada. Se uma regra de bloqueio foi colocada no rc.local, há um pequeno período de tempo em que um invasor pode explorar uma regra que não está em vigor. Embora provavelmente não importe com esta situação, ainda é melhor não adotar um mau hábito que pode morder você mais tarde.
fonte
iptables-save > some-file-path
salva as regras e você as restaura viaiptables-restore < some-file-path
inrc.local
. Ou instale oiptables-persistent
que faz isso durante a inicialização como um serviço.Aqui está como a documentação oficial do ipttable nos ensina. Veja aqui
Adicione estas duas linhas em / etc / network / interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules
A linha "post-down iptables-save> /etc/iptables.rules" salvará as regras a serem usadas na próxima inicialização.
fonte
Eu descobri um conjunto de diretórios no Ubuntu 16.04
/etc/network
que executará scripts em vários momentos durante a inicialização e o desligamento da rede:Então, descobri que poderia despejar a configuração como de costume:
Então eu criei um arquivo `/etc/network/if-pre-up.d/restore:
... e sinalizou como executável
fonte