Eu adiciono esta regra:
sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
--dport 1723 -j DNAT --to-destination a.b.c.d:10000
- Quando reiniciar, as regras do computador são excluídas. Por quê?
- O que posso fazer para manter as regras?
Não há opção no iptables que tornará suas regras permanentes. Mas você pode usar iptables-save
e iptables-restore
cumprir sua tarefa.
Primeiro adicione a regra iptable usando o comando que você deu.
Em seguida, salve as regras do iptables em algum arquivo, como o /etc/iptables.conf
seguinte comando:
$ iptables-save > /etc/iptables.conf
Adicione o seguinte comando /etc/rc.local
para recarregar as regras em cada reinicialização.
$ iptables-restore < /etc/iptables.conf
iptables-persistent
pacote que fará isso.rc.local
pois haveria uma lacuna de janela aberta entre o início dos serviços e a política de firewall. Eu prefiro usarpre-up
gancho para interface de auto-retorno em/etc/network/interfaces
superar isso.rc.local
pode ter o efeito pretendido, mas é um problema nesta situação.(Porque foi sugerido fazer disso uma resposta própria ...)
Na instalação do debian
iptables-persistent
.O pacote será carregado automaticamente
/etc/iptables/rules
durante a inicialização.Sempre que você modificar suas regras, execute
/sbin/iptables-save > /etc/iptables/rules
para salvá-las. Você também pode adicionar isso à sequência de desligamento, se quiser.fonte
/etc/iptables/rules.v4
e/etc/iptables/rules.v6
para IPv4 e IPv6, respectivamente. Se você deseja que uma tabela se aplique aos dois tipos de conexões, salve-a nos dois arquivos de regras.Após a instalação
iptables-persistent
acima, você também pode salvar regras com o seguinte comando mais curto no Ubuntu 16.04+:sudo netfilter-persistent save
E eles também podem ser restaurados como estavam na última vez em que você os salvou:
sudo netfilter-persistent reload
fonte