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=
firewall-cmd --permanent --zone=
Puede verificar si el puerto realmente se ha abierto ejecutando:
firewall-cmd --zone=
firewall-cmd --zone=
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
:
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