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