Firewalld es un gestor dinámico de firewall para Linux que permite controlar qué conexiones de red están permitidas o bloqueadas sin necesidad de modificar manualmente las reglas del firewall del kernel.
En lugar de trabajar directamente con iptables o nftables, firewalld proporciona una capa de administración más sencilla y flexible. En las distribuciones modernas (Fedora, RHEL, CentOS Stream, Rocky Linux, AlmaLinux, etc.), firewalld utiliza nftables como backend por defecto.
¿Para qué sirve?
Su principal función es proteger el sistema de accesos no autorizados mediante reglas que controlan el tráfico de red entrante y saliente.
Por ejemplo, con firewalld puedes:
- Permitir conexiones SSH (puerto 22).
- Permitir HTTP (puerto 80) y HTTPS (puerto 443).
- Bloquear direcciones IP específicas.
- Abrir o cerrar puertos.
- Restringir el acceso a determinados servicios.
- Asignar diferentes políticas según la red a la que esté conectado el equipo.
¿Cómo funciona entonces un Firewall?

Conceptos principales
1. Zonas (Zones)
Una zona representa el nivel de confianza de una conexión de red.
Las zonas más comunes son:
| Zona | Descripción |
|---|---|
public | Redes públicas (cafeterías, hoteles, Internet). Es la más utilizada. |
home | Red doméstica confiable. |
work | Red de oficina. |
internal | Red interna protegida. |
trusted | Todo el tráfico está permitido. |
block | Todo el tráfico entrante es descartado. |
drop | Similar a block, pero sin responder al origen. |
dmz | Para servidores expuestos a Internet. |
Servicios en el Firewall
En lugar de recordar números de puertos, firewalld utiliza servicios.
| Servicio | Puerto |
|---|---|
| SSH | 22 |
| HTTP | 80 |
| HTTPS | 443 |
| DNS | 53 |
| FTP | 21 |
| Samba | 445 |
Por eso suele ser preferible ejecutar:
firewall-cmd --add-service=http
en vez de ejecutar
firewall-cmd --add-port=80/tcp
Puertos
También es posible abrir puertos específicos.
sudo firewall-cmd --add-port=8080/tcp
Rich Rules
Las rich rules permiten crear reglas avanzadas.
Por ejemplo:
- Bloquear una IP.
- Permitir únicamente una subred.
- Registrar conexiones.
- Limitar conexiones.
- Filtrar por protocolo.
Ejemplo:
sudo firewall-cmd --permanent \ --add-rich-rule='rule family="ipv4" source address="192.168.1.50" drop'
Configuración temporal y permanente
Una característica importante de firewalld es que diferencia entre:
Configuración temporal
Se pierde al reiniciar el sistema.
sudo firewall-cmd --add-service=http
Configuración permanente
Permanece después de reiniciar.
sudo firewall-cmd –permanent –add-service=http
sudo firewall-cmd –reload
Ventajas de firewalld
- Administración sencilla mediante comandos.
- Cambios sin reiniciar el firewall.
- Uso de zonas para distintos niveles de confianza.
- Compatibilidad con IPv4 e IPv6.
- Integración con NetworkManager.
- Basado en
nftables, más moderno y eficiente queiptables. - Soporte para reglas avanzadas mediante rich rules.
¿Dónde se utiliza?
Es habitual encontrar firewalld en:
- Fedora
- RHEL (Red Hat Enterprise Linux)
- CentOS Stream
- Rocky Linux
- AlmaLinux
- Oracle Linux
Comandos útiles para trabajar en el proyecto
| Nº | Comando | Descripción |
|---|---|---|
| 1 | sudo systemctl status firewalld | Ver el estado del servicio. |
| 2 | sudo systemctl start firewalld | Iniciar firewalld. |
| 3 | sudo systemctl stop firewalld | Detener firewalld. |
| 4 | sudo systemctl restart firewalld | Reiniciar firewalld. |
| 5 | sudo systemctl enable firewalld | Habilitar al iniciar el sistema. |
| 6 | sudo systemctl disable firewalld | Deshabilitar el inicio automático. |
| 7 | sudo firewall-cmd --state | Mostrar si firewalld está ejecutándose. |
| 8 | sudo firewall-cmd --reload | Recargar la configuración sin reiniciar el servicio. |
| 9 | sudo firewall-cmd --complete-reload | Recarga completa del firewall. |
| 10 | sudo firewall-cmd --get-default-zone | Mostrar la zona predeterminada. |
| 11 | sudo firewall-cmd --set-default-zone=public | Cambiar la zona predeterminada. |
| 12 | sudo firewall-cmd --get-active-zones | Mostrar las zonas activas. |
| 13 | sudo firewall-cmd --list-all | Mostrar la configuración de la zona activa. |
| 14 | sudo firewall-cmd --list-all-zones | Mostrar todas las zonas. |
| 15 | sudo firewall-cmd --get-services | Listar todos los servicios disponibles. |
| 16 | sudo firewall-cmd --list-services | Mostrar los servicios permitidos. |
| 17 | sudo firewall-cmd --add-service=http | Permitir HTTP temporalmente. |
| 18 | sudo firewall-cmd --permanent --add-service=http | Permitir HTTP permanentemente. |
| 19 | sudo firewall-cmd --permanent --add-service=https | Permitir HTTPS permanentemente. |
| 20 | sudo firewall-cmd --permanent --remove-service=http | Eliminar HTTP de los servicios permitidos. |
| 21 | sudo firewall-cmd --add-port=8080/tcp | Abrir un puerto temporalmente. |
| 22 | sudo firewall-cmd --permanent --add-port=8080/tcp | Abrir un puerto permanentemente. |
| 23 | sudo firewall-cmd --permanent --remove-port=8080/tcp | Cerrar un puerto. |
| 24 | sudo firewall-cmd --list-ports | Mostrar los puertos abiertos. |
| 25 | sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" drop' | Bloquear una IP. |
| 26 | sudo firewall-cmd --list-rich-rules | Mostrar las reglas avanzadas. |
| 27 | sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.10" drop' | Eliminar una regla de bloqueo. |
| 28 | sudo firewall-cmd --zone=public --add-interface=enp0s3 | Asociar una interfaz a una zona. |
| 29 | sudo firewall-cmd --zone=public --list-interfaces | Mostrar las interfaces de una zona. |
| 30 | sudo firewall-cmd --panic-on / sudo firewall-cmd --panic-off | Activar o desactivar el modo pánico (bloquea todo el tráfico). |
En resumen, firewalld es la herramienta que administra las reglas del firewall de Linux de forma dinámica y sencilla, actuando como intermediario entre el administrador del sistema y el motor de filtrado del kernel (nftables en la mayoría de las distribuciones actuales). Permite proteger el sistema controlando qué tráfico de red puede entrar o salir, sin necesidad de editar reglas complejas directamente.







Deja una respuesta