71 votos

Centos 7 guarda la configuración de iptables

Problema: iptables restablece la configuración por defecto después de reiniciar el servidor.

Estoy tratando de establecer reglas como estas:

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

después de eso lo hago:

service iptables save

y me devuelve algo como esto

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

y después de esto sólo corrí (esto se hizo una vez):

chkconfig iptables on (He leído que hay que hacerlo para restablecer la configuración tras el reinicio)

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 puedo persistir en estos ajustes?

0 votos

¿Por qué no usaste firewalld? Es probable que siga funcionando.

1 votos

Probablemente porque firewalld no es adecuado para entornos de servidores...

93voto

Per Puntos 1

Desactive firewalld con el siguiente comando:

systemctl disable firewalld

A continuación, instale iptables-service con el siguiente comando:

yum install iptables-services

Luego habilite iptables como servicios:

systemctl enable iptables

Ahora puede guardar sus reglas iptable con el siguiente comando:

service iptables save

0 votos

Funciona muy bien, gracias

73voto

roothahn Puntos 347

CentOS 7 utiliza FirewallD ¡ahora! Utiliza el --permanent para guardar la configuración.

Ejemplo:

firewall-cmd --zone=public --add-port=3000/tcp --permanent

A continuación, recargue las reglas:

firewall-cmd --reload

2 votos

alguna idea de por qué la imagen de centos7 de AWS AMI no tiene firewallD.

6 votos

O puede desactivar firewalld e instalar el paquete "iptables-services" para lograr una compatibilidad casi nativa con iptables :)

1 votos

He probado a configurar el reenvío de puertos 80 -> 8180 para lo ( --zone=trusted ) con firewalld-cmd pero no funciona (funciona en --zone=public ) Hacerlo con iptables sudo /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 firewalld --reload pierde deshace esto)

30voto

qris Puntos 252

En CentOS 7 Minimal es posible que tenga que instalar el iptables-services (gracias a @RichieACC para el sugerencia ):

sudo yum install -y iptables-services

Y luego habilitar el servicio utilizando systemd :

sudo systemctl enable iptables.service

Y ejecuta el initscript para guardar tus reglas de firewall:

sudo /usr/libexec/iptables/iptables.init save

6voto

stormdrain Puntos 470
iptables-save > /etc/sysconfig/iptables

guardará la configuración actual sin necesidad de instalar ninguna otra biblioteca o servicio.

1 votos

Desde su manpage : iptables-save — dump iptables rules to stdout . No guarda nada a menos que lo redirijas a algún archivo.

2voto

stoned Puntos 618

Puede modificar directamente el archivo /etc/sysconfig/iptables. Recargue el servicio iptables para recargar las reglas de ese archivo. Sin embargo, como ya te han dicho, firewalld es el nuevo sistema de firewall por defecto para Centos, y esta es una buena oportunidad para aprender a usarlo, ¿no crees?

7 votos

en CentOS7 ya no existe el archivo /etc/sysconfig/iptables

1 votos

Lo siento @roothahn , pero definitivamente existe... a no ser que te falte algún paquete por supuesto. Desde /usr/lib/systemd/system/iptables.service puedes ver que lo que se lanza en realidad es "/usr/libexec/iptables/iptables.init start", que es el viejo y querido scriptque busca el viejo archivo de configuración habitual en /etc/sysconfig

1 votos

/etc/sysconfig/iptables tampoco existe para mí. Sin embargo, /etc/sysconfig/iptables-config existe. Pero no tiene reglas de cortafuegos dentro de él como el iptables archivo tenía antes.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: