Guías y tutoriales

Cientos de tutoriales y guías paso a paso cuidadosamente escritas por nuestro equipo de soporte.

¿Qué es el firewall UFW y cómo configurarlo en Linux?

En este tutorial te explicaremos de forma sencilla y directa cómo configurar el Firewall "ufw" para tu servidor Linux. De esta forma podrás configurar fácilmente las conexiones entrantes que desees habilitar, pudiendo mejorar drásticamente la seguridad de tu servidor.

Antes de empezar con el tutorial, ¿no tienes un servidor Cloud con Linux? ¡No te preocupes! Con solo un clic, puedes desplegarlo fácilmente con SW Hosting.

cta:cloud_so

¿Qué es UFW?

Las siglas "UFW" significan "Uncomplicated Firewall" y hacen referencia a una aplicación que tiene como objetivo establecer reglas en "iptables", las tablas de firewall nativas en Linux. Puesto que iptables tiene una sintaxis relativamente compleja, utilizar UFW para realizar su configuración es una alternativa útil sin escatimar en seguridad.

Instalar UFW

La instalación del paquete "ufw" es muy sencilla y, de hecho, se encuentra instalado por defecto en muchas distribuciones. En este caso te indicaremos las instrucciones para una distribución basada en Debian, como por ejemplo, Ubuntu. En otras distribuciones, los comandos a seguir pueden ser distintos.

  • sudo apt update // Para actualizar la lista de paquetes.
  • sudo apt install ufw // Para instalar el paquete "ufw".

info ¡Recuerda! Necesitarás privilegios de superusuario para realizar esta operación.

Configurar y habilitar UFW

Una vez instalado y configurado el firewall, explicaremos la sintaxis básica para empezar a establecer reglas.

1. Definición del comportamiento por defecto

En primer lugar, deberemos determinar si queremos que UFW, por defecto, permita o deniegue el tráfico entrante y el tráfico saliente.

Esto lo podemos lograr del siguiente modo:

  • ufw default deny incoming // Deniega conexiones entrantes que no coincidan con ninguna regla.
  • ufw default allow incoming // Permite conexiones entrantes que no coincidan con ninguna regla.

Para conexiones salientes:

  • ufw default deny outgoing // Deniega conexiones salientes que no coincidan con ninguna regla.
  • ufw default allow outgoing // Permite conexiones salientes que no coincidan con ninguna regla.

Nuestra recomendación es denegar las conexiones entrantes y permitir las conexiones salientes para una configuración básica. Después, deberás crear reglas para permitir el acceso de aquellas conexiones, protocolos o equipos que consideres oportuno.

2. Ver la configuración actual del firewall

Ahora que ya has creado tu primera regla, podrás ver la configuración actual con el siguiente comando:

ufw status

3. Permitir las conexiones SSH (¡IMPORTANTE!)

Para evitar que quedes excluido de tu propio servidor una vez habilites el firewall, es importante que crees una regla que permita conectarte a través del puerto 22 (o cualquiera que hayas designado para el servicio SSH).

Puedes crear tu primera regla para permitir tráfico entrante de la siguiente manera:

ufw allow 22

Por supuesto, deberás especificar el puerto que el servicio utiliza.

4. Permitir otras conexiones entrantes según protocolo, IP de origen y otros parámetros

A continuación te exponemos varios ejemplos que te demostrarán cuál es la sintaxis de UFW, pudiendo adaptar cada una de ellas según tus necesidades.

  • ufw allow 80 // Permite las conexiones entrantes por el puerto 80.
  • ufw allow http // Permite las conexiones entrantes por el puerto 80, utilizando el alias "http" en vez del puerto numérico.
  • ufw allow 80/tcp // Permite solo las conexiones entrantes con el protocolo TCP por el puerto 80.
  • ufw allow 1000-2000 // Permite las conexiones entrantes en un rango de puertos.
  • ufw allow from 10.0.0.30 // Permite conexiones entrantes a cualquier puerto y protocolo a la IP 10.0.0.30.
  • ufw allow from 10.0.0.0/24 // Permite conexiones entrantes a cualquier puerto y protocolo desde un rango de IPs usando la notación CIDR (de 10.0.0.0 a 10.0.0.255 en este caso).
  • ufw allow from 10.0.0.30 to any port 22 // Permite las conexiones entrantes al puerto 22 a la IP 10.0.0.30.
  • ufw allow from 10.0.0.30 to any port 22 proto tcp // Permite las conexiones entrantes al puerto 22, con protocolo TCP a la IP 10.0.0.30.

Esta es solo una muestra de las incontables combinaciones que permite UFW. Por supuesto, recuerda que también puedes utilizar deny para lograr el efecto contrario.

5. Eliminar reglas

Para eliminar una regla, conviene primero mostrarlas de forma numerada. Puedes lograrlo con el siguiente comando:

ufw status numbered

Una vez se muestran las reglas precedidas por un número que las identifique, podrás eliminarlas del siguiente modo:

ufw delete 3 // Eliminar la regla número "3".

6. Insertar reglas con un número específico

Puedes utilizar la siguiente sintaxis para especificar reglas en un lugar específico, consiguiendo que esa regla tenga prioridad sobre las que le suceden.

ufw insert 3 allow 22 // Inserta una regla para permitir las conexiones entrantes en la posición 3.

7. Activar o desactivar los registros

UFW tiene la opción de registrar todas las acciones que toma y todos los intentos de acceso. Puedes activar o desactivar el registro de UFW del siguiente modo:

  • ufw logging on // Habilita los registros.
  • ufw logging off // Deshabilita los registros.

8. Activar / Desactivar el firewall

Finalmente, te mostraremos cómo activar el firewall una vez hayas establecido la configuración necesaria para tu servidor:

  • ufw enable // Activa el firewall y pone en funcionamiento todas las reglas establecidas.
  • ufw disable // Deshabilita (pausa) el firewall.
  • ufw reset // Elimina todas las reglas y te permite comenzar desde cero, a excepción del comportamiento por defecto, que definiste en el paso 1.

¡Ya está!

Si has seguido los pasos correctamente, ahora podrás configurar exitosamente UFW y utilizarlo en tu servidor. En caso de que no dispongas de un servidor, no te preocupes. Nuestra infraestructura cloud con datacenter propio está aquí para cubrir todas tus necesidades.

cta:cloud_so