firewalld es el programa de firewall predeterminado que viene preinstalado en Red Hat Enterprise Linux y sus distribuciones derivadas de Linux, como AlmaLinux.
De manera predeterminada, el firewall está activado, lo que significa que un número muy limitado de servicios puede recibir tráfico entrante. Esta es una buena característica de seguridad, pero significa que el usuario debe tener los conocimientos suficientes para configurar el firewall siempre que instale un nuevo servicio en el sistema, como HTTPD o SSH, por ejemplo. De lo contrario, las conexiones de Internet no podrán acceder a estos servicios.
En lugar de deshabilitar el firewall en AlmaLinux por completo, podemos permitir ciertos puertos a través del firewall, lo que permite que las conexiones entrantes lleguen a nuestros servicios. En esta guía, veremos cómo permitir un puerto a través del firewall en AlmaLinux. Siéntase libre de seguir si acaba de instalar AlmaLinux o migró de CentOS a AlmaLinux.
En este tutorial aprenderás:
- Cómo permitir un puerto o servicio a través del firewall en AlmaLinux
- Cómo recargar el cortafuegos para que los cambios surtan efecto
- Cómo verificar qué puertos y servicios están abiertos en el firewall
- Cómo cerrar un puerto después de haberlo configurado como abierto
- Ejemplos de comandos para permitir los puertos más comunes a través del firewall

Permitir un puerto a través del firewall en AlmaLinux
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | AlmaLinux |
Software | cortafuegos |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Cómo permitir un puerto a través del firewall en AlmaLinux
Siga las instrucciones paso a paso a continuación para permitir puertos o servicios a través de firewalld en AlmaLinux. También verá cómo comprobar los puertos abiertos que ha configurado firewalld.
- Al verificar si hay puertos de firewall abiertos en RHEL 8/CentOS 8 Linux, es importante saber que los puertos de firewall se pueden abrir de dos maneras diferentes principales. En primer lugar, el puerto del cortafuegos se puede abrir como parte de un servicio preconfigurado. Tome este ejemplo donde abrimos el puerto para
HTTP
al public
zone.
# firewall-cmd --zone=public --add-service=http --permanent
Por supuesto, agregar el servicio HTTP a firewalld es el equivalente a abrir el puerto 80
.
- En segundo lugar, los puertos se pueden abrir directamente como puertos personalizados predefinidos por el usuario. Tome este ejemplo donde abrimos el puerto
8080
.
# firewall-cmd --zone=public --add-port 8080/tcp --permanent
Dado que 8080 no tiene un servicio asociado, es necesario que especifiquemos el número de puerto en lugar de un nombre de servicio si queremos abrir este puerto.
- Para verificar qué puertos de servicio están abiertos, ejecute el siguiente comando.
# firewall-cmd --zone=public --list-services
cockpit dhcpv6-client http https ssh
Los servicios anteriores (cabina, DHCP, HTTP, HTTPS y SSH) tienen abiertos sus números de puerto correspondientes.
- Para verificar qué números de puerto están abiertos, use este comando.
# firewall-cmd --zone=public --list-ports
20/tcp 8080/tcp
Los puertos anteriores, 20
y 8080
, están abiertos al tráfico entrante.
- Después de que haya permitido sus puertos y servicios a través del firewall, necesitaremos volver a cargar firewalld para que los cambios surtan efecto. Todas las reglas con
--permanent
La opción ahora se convertirá en parte de la configuración del tiempo de ejecución. Las reglas sin esta opción se descartarán.
# firewall-cmd --reload
- También podemos ver una lista de todos los servicios y puertos abiertos usando
--list-all
option.
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client http ssh
ports: 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
- Tenga en cuenta que firewalld funciona con zonas. Según la zona que utilicen sus interfaces de red, es posible que deba agregar su puerto permitido a esa zona en particular. El primer paso anterior muestra cómo agregar una regla a la zona "pública". Para ver las reglas para esa zona específicamente, continúe usando
--zone=
sintaxis.
# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client http ssh
ports: 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
- En caso de que necesite cerrar uno de los puertos abiertos previamente configurados, puede usar la siguiente sintaxis de comando. En este ejemplo, cerramos el puerto para HTTPS.
# firewall-cmd --zone=public --permanent --remove-service=https
Eso es todo al respecto. Para obtener más información sobre firewalld y firewall-cmd
Comando de Linux, consulte nuestra guía dedicada sobre la introducción a firewalld y firewall-cmd.
Ejemplos de puertos comunes
Use los comandos a continuación como una guía de referencia fácil para permitir que algunos de los servicios más comunes atraviesen el firewall en AlmaLinux.
- Permitir HTTP a través del cortafuegos.
# firewall-cmd --zone=public --add-service=http --permanent
- Permitir HTTPS a través del cortafuegos.
# firewall-cmd --zone=public --add-service=https --permanent
- Permitir MySQL a través del cortafuegos.
# firewall-cmd --zone=public --add-service=mysql --permanent
- Permitir SSH a través del cortafuegos.
# firewall-cmd --zone=public --add-service=ssh --permanent
- Permitir DNS a través del cortafuegos.
# firewall-cmd --zone=public --add-service=dns --permanent
- Permitir PostgreSQL a través del cortafuegos.
# firewall-cmd --zone=public --add-service=postgresql --permanent
- Permitir telnet a través del cortafuegos.
# firewall-cmd --zone=public --add-service=telnet --permanent
Pensamientos finales
En esta guía, vimos cómo permitir un puerto o servicio a través del firewall en AlmaLinux. Esto implicó usar el comando firewall-cmd asociado con firewalld, lo que facilita el proceso una vez que conocemos la sintaxis correcta que se debe usar. También vimos múltiples ejemplos para permitir muchos de los servicios más comunes a través del firewall. Recuerda prestar especial atención a la zona en la que aplicas tus nuevas reglas.