centos - puerto - iptables
Abra el puerto del cortafuegos en CentOS 7 (10)
CentOS (RHEL) 7, ha cambiado el firewall para usar firewall-cmd
que tiene una noción de zonas que es como una versión de Windows de redes públicas, domésticas y privadas. Debes mirar here para averiguar cuál crees que deberías usar. EL7 usa el public
por defecto, así que eso es lo que usan mis ejemplos a continuación.
Puede verificar qué zona está usando con firewall-cmd --list-all
y cambiarlo con firewall-cmd --set-default-zone=<zone>
.
Entonces sabrá en qué zona se permite un servicio (o puerto) en:
firewall-cmd --permanent --zone=<zone> --add-service=http
firewall-cmd --permanent --zone=<zone> --add-port=80/tcp
Puede verificar si el puerto se ha abierto ejecutando:
firewall-cmd --zone=<zone> --query-port=80/tcp
firewall-cmd --zone=<zone> --query-service=http
Según la documentation ,
Al realizar cambios en la configuración del firewall en el modo Permanente, su selección solo tendrá efecto cuando vuelva a cargar el firewall o se reinicie el sistema.
Puede volver a cargar la configuración del firewall con: firewall-cmd --reload
.
Estoy usando CentOS 7 y tengo que asegurarme de que los puertos 2888 y 3888 estén abiertos.
Leí este artículo pero esto no funcionó porque en el sistema operativo CentOS 7 no hay iptables save
comando de iptables save
.
Alguien me dijo que la URL anterior no es válida para CentOS 7. y debo seguir this . Pero este artículo no me queda claro exactamente qué comando necesito ejecutar.
Tambien encontre
firewall-cmd --zone=public --add-port=2888/tcp
Pero esto no sobrevive a los reinicios.
Entonces, ¿cómo puedo abrir los puertos y hacer que sobrevivan a los reinicios?
Fedora, lo hizo vía iptables
sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
sudo service iptables save
Parece funcionar
Firewalld es un poco no intuitivo para el veterano de iptables. Para aquellos que prefieren un firewall controlado por iptables con una sintaxis 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
La respuesta de ganeshragav es correcta, pero también es útil saber que puede usar:
firewall-cmd --permanent --zone=public --add-port=2888/tcp
pero si es un servicio conocido, puedes usar:
firewall-cmd --permanent --zone=public --add-service=http
y luego vuelva a cargar 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]
Las respuestas principales aquí funcionan, pero encontré algo más elegante en la respuesta de Michael Hampton a una pregunta relacionada. La opción "nuevo" (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=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent
O para revertir los cambios de solo ejecución:
$ firewall-cmd --reload
Véase también el comentario de Antony Nguyen . Al parecer, 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 los servicios cuyos puertos están abiertos y ver los 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 abrir 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 --permanent
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 abrir en el firewall.
firewall-cmd --add-services=ntp
Para que este servicio esté abierto 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 --permanent
Para ejecutar el firewall se debe recargar usando el siguiente comando.
firewall-cmd --reload
Ya Ali
Si bien ganeshragav y Sotsir proporcionan Sotsir correctos y directamente aplicables, es útil tener en cuenta que puede agregar sus propios servicios a /etc/firewalld/services
. Para inspirarse, 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, tal como lo describió en el archivo de servicio. Además, ahora puede aplicarlo a cualquier zona sin el 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"?>
<service>
<short>FooBar</short>
<description>
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.
</description>
<port protocol="tcp" port="2888"/>
<port protocol="tcp" port="3888"/>
</service>
(Para obtener información sobre la sintaxis, ejecute man firewalld.service
).
Una vez que se crea este archivo, puede firewall-cmd --reload
para que esté disponible y luego agregarlo permanentemente a alguna zona con
firewall-cmd --permanent --zone=<zone> --add-service=foobar
seguido de firewall-cmd --reload
para firewall-cmd --reload
de inmediato.
Si está familiarizado con el servicio de iptables como en centos 6 o anterior, aún puede usar el servicio de iptables mediante la 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 => deshabilitar el servicio firewalld en el inicio
systemctl desactivar firewalld
paso 5 => iniciar el servicio de iptables
systemctl start iptables
paso 6 => habilitar iptables en el inicio
systemctl habilitar iptables
finalmente, ahora puede editar la configuración de iptables en / etc / sysconfig / iptables.
Entonces -> editar regla -> recargar / reiniciar.
haz como centos más viejos con la misma función que firewalld.
Use este comando para encontrar su (s) zona (s) activa (s):
firewall-cmd --get-active-zones
Se dirá ya sea público, dmz, o algo más. Solo debes 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 public por su zona, por ejemplo, si su zona es dmz:
firewall-cmd --zone=dmz --add-port=2888/tcp --permanent