Problema: iptables se restablece a la configuración predeterminada después de reiniciar el servidor.
Estoy tratando de establecer una regla como esta:
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
después de eso hago:
service iptables save
y escribe algo como esto
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
y después de esto simplemente corrí (esto se hizo una vez):
chkconfig iptables on
(He leído que esto debe hacerse para restaurar la configuración después de reiniciar)
Después de eso reinicio y ejecuto este comando:
systemctl list-unit-files | grep iptables
y veo que iptables.service está habilitado, sin embargo, la regla (para abrir el puerto 3000) ya no funciona.
¿Cómo persisto esta configuración?
Respuestas:
¡CentOS 7 está usando FirewallD ahora!
Ejemplo:
recargar reglas:
fuente
--zone=trusted
) con firewalld-cmd pero no funciona (funciona--zone=public
) Hacerlo con 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
funciona (pero cada unofirewalld --reload
pierde deshace esto)Deshabilita firewalld con el siguiente comando:
Luego instale iptables-service siguiendo el comando:
Luego habilite iptables como servicios:
Ahora puede guardar sus reglas de iptable siguiendo el comando:
fuente
En CentOS 7 Minimal puede que necesite instalar el
iptables-services
paquete (gracias a @RichieACC por la sugerencia ):Y luego habilite el servicio usando
systemd
:Y ejecute el initscript para guardar sus reglas de firewall:
fuente
¿Quizás un guión como este hubiera sido útil para alguien?
Tenga en cuenta que perderá todo lo que esté configurado actualmente porque elimina firewalld y elimina las reglas actuales en la tabla INPUT :
Supongo que quiere lo mismo en caso de que su sistema pueda ser alcanzado (ahora o en cualquier momento después) por el tráfico IPv6:
fuente
Puede modificar directamente el archivo / etc / sysconfig / iptables. Vuelva a cargar el servicio de iptables para volver a cargar las reglas de ese archivo. Sin embargo, como ya le dijeron, firewalld es el nuevo sistema de firewall predeterminado para Centos, y esta es una buena oportunidad para aprender cómo usarlo, ¿no cree?
fuente
/etc/sysconfig/iptables
, tampoco existe para mí. Sin embargo,/etc/sysconfig/iptables-config
existe. Pero no tiene reglas de cortafuegos en su interior como loiptables
tenía antes el archivo.