Descripción General
firewall-cmd interactúa con el servicio firewalld para controlar el tráfico de red del sistema. Permite aplicar reglas permanentes y reglas en tiempo de ejecución de forma separada, y proporciona políticas de seguridad flexibles a través de diversas zonas de red (zones). Esto ayuda a mejorar la seguridad del servidor y a permitir o bloquear el acceso a servicios específicos.
Funciones Principales
- Gestión de puertos y servicios (agregar/eliminar)
- Configuración y gestión de zonas de red (Zones)
- Reglas basadas en direcciones IP y redes (Rich Rules)
- Aplicación de reglas en tiempo de ejecución y permanentes
- Configuración de enmascaramiento (Masquerading) y reenvío de puertos
Opciones Principales
firewall-cmd permite consultar y configurar reglas de firewall a través de diversas opciones.
Aplicación y Gestión de Reglas
Consulta de Información
Comando generado:
Combina los comandos.
Descripción:
`firewall-cmd` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de Uso
Diversos ejemplos para configurar y administrar reglas de firewall usando firewall-cmd.
Verificar Zona Activa Actual y Reglas
firewall-cmd --list-all
Verifica toda la configuración en tiempo de ejecución de la zona predeterminada (public).
Verificar Toda la Configuración de una Zona Específica
firewall-cmd --zone=internal --list-all
Verifica toda la configuración de una zona especificada (ej: internal).
Agregar Servicio HTTP (Tiempo de Ejecución)
sudo firewall-cmd --zone=public --add-service=http
Permite temporalmente el servicio HTTP en la zona public. Desaparecerá al reiniciar.
Agregar Servicio HTTP (Permanente)
sudo firewall-cmd --zone=public --add-service=http --permanent
Permite permanentemente el servicio HTTP en la zona public. Se requiere --reload para aplicar los cambios.
Recargar Reglas del Firewall
sudo firewall-cmd --reload
Aplica todas las reglas configuradas permanentemente al firewall en tiempo de ejecución actual.
Agregar Puerto 8080/tcp (Permanente)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
Permite permanentemente el puerto TCP 8080 en la zona public. Se requiere recargar después de aplicar.
Eliminar Servicio SSH (Permanente)
sudo firewall-cmd --zone=public --remove-service=ssh --permanent
Elimina permanentemente el servicio SSH de la zona public. Se requiere recargar después de aplicar.
Aplicar Todas las Reglas Permanentes
sudo firewall-cmd --reload
Aplica inmediatamente todas las reglas modificadas permanentemente.
Instalación
firewall-cmd es parte del paquete firewalld. Está preinstalado en la mayoría de las distribuciones Linux modernas o se puede instalar fácilmente.
CentOS/RHEL/Fedora
sudo dnf install firewalld
Instala firewalld en sistemas Linux basados en Red Hat.
Ubuntu/Debian
sudo apt install firewalld
Instala firewalld en sistemas Linux basados en Debian.
Iniciar y Habilitar Servicio
sudo systemctl start firewalld
sudo systemctl enable firewalld
Después de la instalación, inicia el servicio firewalld y habilítalo para que se ejecute automáticamente al arrancar el sistema.
Consejos y Precauciones
Puntos a tener en cuenta y consejos útiles al usar firewall-cmd.
Reglas en Tiempo de Ejecución vs. Permanentes
- Sin la opción `--permanent`, las reglas solo se aplican a la sesión actual y desaparecen al reiniciar.
- Para aplicar permanentemente, usa `--permanent` y luego aplica los cambios con el comando `firewall-cmd --reload`.
Entendiendo las Zonas (Zones)
- firewalld administra las interfaces de red asignándolas a varias zonas de seguridad. Cada zona puede tener un nivel de seguridad diferente.
- La zona predeterminada es `public` y se utiliza para la mayoría de las conexiones externas. Existen varias zonas como `home`, `internal`, `trusted`, etc.
Uso de Nombres de Servicio
- Es preferible usar nombres de servicio predefinidos como `http`, `https`, `ssh` en lugar de números de puerto (ej: 80/tcp) para una mejor legibilidad y facilidad de gestión.
- Puedes verificar la lista de servicios disponibles con el comando `firewall-cmd --get-services`.
Copia de Seguridad y Pruebas
- Antes de realizar cambios importantes, es recomendable registrar la configuración actual con el comando `firewall-cmd --list-all --zone=<zone>`.
- Después de aplicar los cambios, asegúrate de probar que el servicio correspondiente funcione correctamente.