Problema: o iptables redefine para as configurações padrão após a reinicialização do servidor.
Estou tentando definir a regra assim:
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
depois disso eu faço:
service iptables save
e ele escreve de volta algo assim
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
e depois disso eu apenas corri (isso foi feito uma vez):
chkconfig iptables on
(Eu li que isso deve ser feito para restaurar as configurações após a reinicialização)
Depois disso eu reinicio e executo este comando:
systemctl list-unit-files | grep iptables
e vejo que o iptables.service está habilitado, porém, a regra (para abrir a porta 3000) não funciona mais.
Como faço para persistir essas configurações?
Desative o firewalld com o seguinte comando:
Em seguida, instale o iptables-service seguindo o comando:
Em seguida, habilite o iptables como serviços:
Agora você pode salvar suas regras do iptable seguindo o comando:
O CentOS 7 está usando o FirewallD agora! Use o
--permanent
sinalizador para salvar as configurações.Exemplo:
Em seguida, recarregue as regras:
No CentOS 7 Minimal, você pode precisar instalar o
iptables-services
pacote (obrigado a @RichieACC pela sugestão ):E então habilite o serviço usando
systemd
:E execute o initscript para salvar suas regras de firewall:
irá salvar a configuração atual sem a necessidade de instalar quaisquer outras bibliotecas ou serviços.
Você pode modificar diretamente o
/etc/sysconfig/iptables
arquivo. Recarregue oiptables
serviço para recarregar as regras desse arquivo.No entanto, como já foi informado,
firewalld
é o novo sistema de firewall padrão para Centos, e esta é uma boa chance de aprender a usá-lo, você não acha?Talvez um script como este teria sido útil para alguém?
Cuidado, você perderá qualquer coisa atualmente configurada porque remove o firewalld e libera todas as regras atuais na tabela INPUT :
Eu acho que você quer o mesmo caso seu sistema possa ser alcançado (agora ou a qualquer momento) pelo tráfego IPv6: