Problema: o iptables é redefinido para as configurações padrão após a reinicialização do servidor.
Estou tentando definir regras como esta:
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
depois disso eu faço:
service iptables save
e escreve de volta algo como isto
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
e depois disso eu apenas corri (isso foi feito uma vez):
chkconfig iptables on
(Li que isso deve ser feito para restaurar as configurações após a reinicialização)
Depois disso, reinicializo e executei este comando:
systemctl list-unit-files | grep iptables
e vejo que o iptables.service está ativado, no entanto, a regra (para abrir a porta 3000) não funciona mais.
Como persisto essas configurações?
Respostas:
O CentOS 7 está usando o FirewallD agora!
Exemplo:
recarregar regras:
fonte
--zone=trusted
) com firewalld-cmd, mas ele não funciona (ele funciona em--zone=public
) Fazer isso com iptablessudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8180 ; sudo /sbin/iptables -t nat -I OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8180
obras (mas cada umfirewalld --reload
perde desfaz este)Desative o firewalld pelo seguinte comando:
Em seguida, instale o iptables-service, seguindo o comando:
Ative o iptables como serviços:
Agora você pode salvar suas regras de iptable seguindo o comando:
fonte
No CentOS 7 Minimal, você pode precisar instalar o
iptables-services
pacote (obrigado a @RichieACC pela sugestão ):E habilite o serviço usando
systemd
:E execute o initscript para salvar suas regras de firewall:
fonte
Talvez um script como este tivesse sido útil para alguém?
Lembre-se de que você perderá qualquer coisa configurada atualmente porque remove o firewalld e libera quaisquer regras atuais na tabela INPUT :
Eu acho que você quer o mesmo caso o seu sistema possa ser alcançado (agora ou a qualquer momento depois) pelo tráfego IPv6:
fonte
Você pode modificar diretamente o arquivo / etc / sysconfig / iptables. Recarregue o serviço iptables para recarregar as regras desse arquivo. No entanto, como já foi dito, o firewalld é o novo sistema de firewall padrão do Centos, e esta é uma boa chance de aprender a usá-lo, não acha?
fonte
/etc/sysconfig/iptables
também não existe para mim. No entanto,/etc/sysconfig/iptables-config
existe. Mas ele não possui regras de firewalls, como oiptables
arquivo tinha antes.