Inicio > Gestión de red > firewall-cmd

firewall-cmd: Gestión del Firewall Firewalld

firewall-cmd es el cliente de línea de comandos para el demonio firewalld. Permite administrar dinámicamente las reglas del firewall de un sistema. Realiza diversas tareas de firewall como abrir puertos, agregar servicios y configurar zonas de red, y puede aplicar reglas en tiempo de ejecución y reglas permanentes de forma separada.

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.


Comandos de la misma categoría