Abra el puerto del firewall en CentOS 7

Estoy usando CentOS 7 y debo asegurarme de que los puertos 2888 y 3888 estén abiertos.

Leí este artículo, pero esto no funcionó porque en CentOS 7 OS no hay ningún comando de iptables save .

Alguien me dijo que la URL anterior no es válida para CentOS 7. Y debería seguir esto . Pero este artículo no está claro para mí exactamente qué comando necesito ejecutar.

También encontré

 firewall-cmd --zone=public --add-port=2888/tcp 

pero esto no sobrevive al reinicio.

Entonces, ¿cómo puedo abrir los puertos y hacerlo sobrevivir a los reinicios?

Use este comando para encontrar su (s) zona (s) activa (s):

 firewall-cmd --get-active-zones 

Dirá o public, dmz, o algo más. Solo debe aplicar a las zonas requeridas.

En el caso de prueba pública:

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

Luego, recuerde volver a cargar el firewall para que los cambios surtan efecto.

 firewall-cmd --reload 

De lo contrario, sustituya al público por su zona, por ejemplo, si su zona es dmz:

 firewall-cmd --zone=dmz --add-port=2888/tcp --permanent 

La respuesta de Ganeshragav es correcta, pero también es útil saber que puedes usar:

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

pero si es un servicio conocido, puede usar:

 firewall-cmd --permanent --zone=public --add-service=http 

y luego recarga el firewall

 firewall-cmd --reload 

[Respuesta modificada para reflejar el comentario de Martin Peter, la respuesta original tenía --permanent al final de la línea de comando]

CentOS (RHEL) 7, ha cambiado el cortafuegos para usar firewall-cmd que tiene una noción de zonas que es como una versión de Windows de Public, Home y Private Networks. Deberías mirar aquí para descubrir cuál crees que deberías usar. EL7 usa public por defecto, así que eso es lo que usan mis ejemplos a continuación.

Puede verificar qué zona está utilizando con firewall-cmd --list-all y cambiarla con firewall-cmd --set-default-zone= .

A continuación, sabrá en qué zona permitir un servicio (o puerto):

firewall-cmd --permanent --zone= --add-service=http

firewall-cmd --permanent --zone= --add-port=80/tcp

Puede verificar si el puerto realmente se ha abierto ejecutando:

firewall-cmd --zone= --query-port=80/tcp

firewall-cmd --zone= --query-service=http

De acuerdo con la documentación ,

Al realizar cambios en la configuración del firewall en el modo Permanente, su selección solo tendrá efecto cuando recargue el firewall o el sistema se reinicie.

Puede volver a cargar la configuración del firewall con: firewall-cmd --reload .

Fedora, lo hizo a través de iptables

 sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT sudo service iptables save 

Parece funcionar

Si bien ganeshragav y Sotsir proporcionan enfoques correctos y directamente aplicables, es útil tener en cuenta que puede agregar sus propios servicios a /etc/firewalld/services . Para obtener inspiración, consulte /usr/lib/firewalld/services/ , donde se encuentran los servicios predefinidos de firewalld.

La ventaja de este enfoque es que más adelante sabrá por qué estos puertos están abiertos, como lo ha descrito en el archivo de servicio. Además, ahora puede aplicarlo a cualquier zona sin riesgo de errores tipográficos. Además, los cambios en el servicio no tendrán que aplicarse a todas las zonas por separado, sino solo al archivo de servicio.

Por ejemplo, puede crear /etc/firewalld/services/foobar.xml :

 < ?xml version="1.0" encoding="utf-8"?>  FooBar  This option allows you to create FooBar connections between your computer and mobile device. You need to have FooBar installed on both sides for this option to be useful.     

(Para obtener información acerca de la syntax, haz man firewalld.service ).

Una vez que se crea este archivo, puede firewall-cmd --reload para tenerlo disponible y luego agregarlo permanentemente a alguna zona con

 firewall-cmd --permanent --zone= --add-service=foobar 

seguido de firewall-cmd --reload para firewall-cmd --reload de inmediato.

Para ver los puertos abiertos, use el siguiente comando.

 firewall-cmd --list-ports 

Usamos lo siguiente para ver los servicios cuyos puertos están abiertos.

 firewall-cmd --list-services 

Usamos lo siguiente para ver servicios cuyos puertos están abiertos y ver puertos abiertos

 firewall-cmd --list-all 

Para agregar un servicio al firewall, usamos el siguiente comando, en cuyo caso el servicio usará cualquier puerto para abrirlo en el firewall.

 firewall-cmd --add-services=ntp 

Para que este servicio esté permanentemente abierto usamos el siguiente comando.

 firewall-cmd -add-service=ntp --permanent 

Para agregar un puerto, use el siguiente comando

 firewall-cmd --add-port=132/tcp --permanent 

Para ejecutar el firewall se debe volver a cargar con el siguiente comando.

 firewall-cmd --reload 

Ya Ali

Las respuestas principales aquí funcionan, pero encontré algo más elegante en la respuesta de Michael Hampton a una pregunta relacionada. La opción “nueva” (firewalld-0.3.9-11 +) --runtime-to-permanent para firewall-cmd permite crear reglas de tiempo de ejecución y probarlas antes de hacerlas permanentes:

 $ firewall-cmd --zone= --add-port=2888/tcp  $ firewall-cmd --runtime-to-permanent 

O para revertir los cambios solo de tiempo de ejecución:

 $ firewall-cmd --reload 

También vea el comentario de Antony Nguyen . Aparentemente firewall-cmd –reload puede no funcionar correctamente en algunos casos donde se han eliminado las reglas. En ese caso, sugiere reiniciar el servicio firewalld:

 $ systemctl restart firewalld 

Para ver los puertos abiertos, use el siguiente comando.

firewall-cmd –list-ports Usamos lo siguiente para ver los servicios cuyos puertos están abiertos.

firewall-cmd –list-services Usamos lo siguiente para ver servicios cuyos puertos están abiertos y ver puertos abiertos

firewall-cmd –list-all Para agregar un servicio al firewall, usamos el siguiente comando, en cuyo caso el servicio usará cualquier puerto para abrirlo en el firewall.

firewall-cmd –add-services = ntp Para que este servicio se abra permanentemente usamos el siguiente comando.

firewall-cmd -add-service = ntp –permanent Para agregar un puerto, use el siguiente comando

firewall-cmd –add-port = 132 / tcp –permanente

Si está familiarizado con el servicio de iptables como en centos 6 o anterior, aún puede usar el servicio de iptables mediante instalación manual:

paso 1 => instalar epel repo

yum instalar epel-release

paso 2 => instalar el servicio de iptables

yum install iptables-services

paso 3 => detener el servicio firewalld

systemctl stop firewalld

paso 4 => desactivar el servicio firewalld al inicio

systemctl disable firewalld

paso 5 => iniciar el servicio de iptables

systemctl start iptables

paso 6 => habilitar iptables al inicio

systemctl enable iptables

finalmente ahora puede editar su configuración de iptables en / etc / sysconfig / iptables.

Entonces -> editar regla -> volver a cargar / reiniciar.

hacer como centos más viejo con la misma función como firewalld.

Firewalld es un poco no intuitivo para el veterano de iptables. Para aquellos que prefieren un firewall impulsado por iptables con syntax similar a iptables en un árbol configurable fácil, intente reemplazar firewalld con fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ y luego Haz lo siguiente:

  echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule systemctl reload fwtree