Cómo configurar un firewall (UFW) en su VPS Linux

Introducción

UFW (Uncomplicated Firewall) es una interfaz amigable para gestionar reglas de firewall iptables en Linux. Es la herramienta de firewall recomendada para servidores basados en Ubuntu y Debian. Configurar un firewall es uno de los primeros pasos de seguridad que debe tomar después de desplegar un nuevo VPS.

Requisitos previos

  • Un VPS Linux con Ubuntu o Debian instalado
  • Acceso root o sudo a través de SSH

Instalar UFW

UFW viene preinstalado en la mayoría de sistemas Ubuntu. Si no está instalado:

sudo apt update
sudo apt install ufw -y

Configurar políticas predeterminadas

Comience configurando las políticas predeterminadas. Esto deniega todas las conexiones entrantes y permite todas las salientes:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Permitir servicios esenciales

SSH (obligatorio antes de habilitar UFW)

Importante: Siempre permita SSH antes de habilitar el firewall, o se bloqueará el acceso al servidor.

sudo ufw allow ssh

Si su servidor SSH usa un puerto personalizado (ej.: 7722):

sudo ufw allow 7722/tcp

HTTP y HTTPS (servidor web)

sudo ufw allow http
sudo ufw allow https

O equivalentemente:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Otros servicios comunes

Servicio Comando Puerto
FTP sudo ufw allow 21/tcp 21
SMTP sudo ufw allow 25/tcp 25
DNS sudo ufw allow 53 53
MySQL sudo ufw allow 3306/tcp 3306
PostgreSQL sudo ufw allow 5432/tcp 5432

Permitir conexiones desde IPs específicas

Para permitir acceso a un puerto solo desde una dirección IP específica:

sudo ufw allow from 203.0.113.50 to any port 3306

Esto es especialmente útil para puertos de bases de datos, que nunca deberían estar abiertos al público.

Habilitar UFW

Una vez configuradas las reglas:

sudo ufw enable

Verá una advertencia de que las conexiones SSH existentes pueden interrumpirse. Escriba y para confirmar.

Verificar el estado

sudo ufw status verbose

Esto muestra todas las reglas activas y las políticas predeterminadas.

Eliminar reglas

Para eliminar una regla específica:

sudo ufw status numbered
sudo ufw delete [número_de_regla]

O eliminar por especificación:

sudo ufw delete allow 3306/tcp

Deshabilitar UFW

Para deshabilitar temporalmente el firewall sin eliminar las reglas:

sudo ufw disable

Para restablecer todas las reglas a los valores predeterminados:

sudo ufw reset

Configuración mínima recomendada para un servidor web

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable