Configuración del firewall UFW

LinuxBeginner
Practicar Ahora

Introducción

Imagine que su computadora es una casa. De forma predeterminada, las puertas y ventanas podrían estar abiertas y permitir la entrada de cualquiera. Para protegerla, necesita un guardia de seguridad que controle el acceso según un conjunto de reglas.

En Linux, UFW (Uncomplicated Firewall) actúa como ese guardia de seguridad. Está diseñado para ofrecer una interfaz más sencilla sobre sistemas de firewall de nivel inferior. UFW le permite definir quién puede conectarse a su sistema y quién no.

Esta distinción es importante: UFW es una capa de administración, no el motor del firewall. Proporciona a los principiantes una interfaz de políticas más sencilla para controlar el acceso de red sin escribir directamente reglas de filtrado de paquetes de nivel inferior.

Sin embargo, configurar un firewall en un entorno en la nube como LabEx requiere precaución. Si bloquea de forma predeterminada todas las conexiones entrantes —una práctica de seguridad habitual—, podría desconectarse accidentalmente del entorno del laboratorio.

En este laboratorio, adoptará un enfoque seguro:

  1. Establecer la política predeterminada como Allow Incoming para evitar quedar bloqueado.
  2. Permitir explícitamente el tráfico del puerto 8080 para una aplicación web.
  3. Activar el firewall.

Este proceso le permitirá aprender a administrar las reglas de UFW sin perder el acceso a su espacio de trabajo.

Comprobar el estado del firewall

Antes de realizar cambios, es importante conocer el estado actual tanto de la aplicación como del firewall.

Hay un servidor web sencillo ejecutándose en el puerto 8080. Primero, compruebe que la aplicación sea accesible.

Ejecute el siguiente comando:

curl -I 127.0.0.1:8080

Debería ver una respuesta HTTP similar a esta:

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
...

Esto confirma que la aplicación web está ejecutándose y que se puede acceder a ella localmente.

Comprobar el servicio antes de cambiar el firewall ayuda a distinguir dos problemas diferentes: problemas de la aplicación y problemas de la política de red. Si el servicio ya falla localmente, el firewall no es el primer elemento al que debe atribuir el problema.

A continuación, compruebe el estado de UFW para saber si está activo.

sudo ufw status

Probablemente verá:

Status: inactive

Esto indica que UFW está instalado, pero que actualmente no está aplicando ninguna regla. Todo el tráfico puede atravesarlo libremente.

Un conjunto de reglas de firewall es, en realidad, una política de acceso de red. El estado «inactivo» no significa que el software esté averiado; significa que la política no se está aplicando actualmente.

Configurar la política predeterminada y las reglas

Ahora configurará cómo debe gestionar el firewall el tráfico.

Establecer la política predeterminada como Allow

De forma predeterminada, UFW suele estar configurado para rechazar todas las conexiones entrantes. En una máquina local, esto es seguro. Sin embargo, en el entorno en línea de LabEx, bloquear todas las conexiones entrantes puede interrumpir la conexión entre su navegador y el laboratorio.

Para evitarlo, establezca la política predeterminada del tráfico entrante como ALLOW:

sudo ufw default allow incoming

Salida:

Default incoming policy changed to 'allow'
(be sure to update your rules accordingly)

Permitir el puerto 8080

A continuación, cree una regla específica para garantizar que se permita explícitamente el tráfico dirigido a nuestra aplicación web en el puerto 8080. Es una buena práctica incluso cuando la política predeterminada es «allow», porque documenta su intención y prepara la configuración para un futuro en el que podría cambiar la política predeterminada a «deny».

Esta intención explícita es importante en materia de seguridad. Una regla clara facilita comprender más adelante por qué un puerto está abierto y si esa exposición sigue siendo necesaria.

sudo ufw allow 8080

El sistema confirmará la operación:

Rules updated
Rules updated (v6)

Ahora hemos establecido una configuración base segura y hemos añadido una regla específica para nuestra aplicación.

Activar el firewall

Con las reglas configuradas, es momento de activar el firewall.

Ejecute el siguiente comando para activar UFW:

sudo ufw enable

Como establecimos la política predeterminada como ALLOW, UFW se activa inmediatamente sin advertirle que la conexión SSH podría interrumpirse, una advertencia habitual cuando la política predeterminada es «deny».

Debería ver:

Firewall is active and enabled on system startup

Esto «enciende» el guardia de seguridad.

A partir de este momento, UFW ya no se limita a almacenar reglas: las está aplicando. La diferencia entre una política configurada y una política activa es un concepto de seguridad habitual en muchos sistemas.

Verificar la configuración del firewall

Por último, compruebe que el firewall esté activo y que las reglas se hayan aplicado correctamente.

Vuelva a comprobar el estado:

sudo ufw status

Ahora debería ver el estado active, junto con las reglas que creó:

Status: active

To                         Action      From
--                         ------      ----
8080                       ALLOW       Anywhere
8080 (v6)                  ALLOW       Anywhere (v6)

Probar la conectividad

Asegúrese de que la aplicación web siga siendo accesible con el firewall activado.

curl -I 127.0.0.1:8080

Debería recibir la misma respuesta HTTP/1.0 200 OK que antes.

Esto confirma que:

  1. El firewall está activo.
  2. Las reglas funcionan según lo esperado.
  3. La aplicación sigue siendo accesible.

Resumen

En este laboratorio, configuró y activó correctamente el firewall UFW.

Aprendió a:

  1. Comprobar el estado del firewall: usar sudo ufw status para saber si el firewall está activo.
  2. Configurar valores predeterminados seguros: usar sudo ufw default allow incoming para evitar bloqueos accidentales en entornos en la nube.
  3. Añadir reglas: usar sudo ufw allow 8080 para permitir el tráfico en puertos específicos.
  4. Activar el firewall: usar sudo ufw enable para activar las reglas.

En un entorno de producción, normalmente establecería la política predeterminada para denegar el tráfico entrante y permitiría explícitamente solo los puertos necesarios, como el 22 para SSH o el 80 para HTTP. Sin embargo, comprender cómo administrar estas reglas de forma segura es el primer paso para proteger su sistema.