Por qué configurar UFW en su VPS
Por defecto, muchas imágenes de VPS dejan servicios a la escucha y no aplican ninguna política de firewall coherente. iptables es potente, pero verboso y fácil de configurar mal; UFW ofrece por encima una capa legible en la que se razona en términos de «puertos autorizados» en lugar de cadenas y objetivos. El principio rector es simple: se bloquea todo el tráfico entrante por defecto y solo se abre explícitamente lo necesario (SSH, HTTP, HTTPS). Gestionar usted mismo el firewall del VPS, en lugar de confiar únicamente en un posible filtrado del proveedor, le da una defensa en profundidad independiente y auditada por usted. Es el primer ladrillo de un endurecimiento serio.
Lo que UFW le permite hacer
- Adoptar una política de «denegar por defecto» en entrada, abriendo solo los puertos realmente utilizados.
- Limitar el ritmo de los intentos SSH (
ufw limit) para frenar el brute-force. - Restringir un puerto a una única IP de origen (su back-office, su equipo) con un solo comando.
- Leer y auditar sus reglas de un vistazo con
ufw status numbered, sin descifrar iptables. - Aprovechar perfiles de aplicaciones predefinidos (
ufw app list) para Nginx, OpenSSH, etc. - Registrar el tráfico rechazado para detectar escaneos e intentos de intrusión.
Requisitos previos para este despliegue
UFW es de una ligereza total: funciona en el más modesto de los VPS (bastan 1 vCPU y 512 MB de RAM), ya que solo genera reglas iptables/nftables. Necesita un acceso root o sudo, el paquete ufw (presente o instalable con apt install ufw) y, punto crucial, conocer su puerto SSH antes de cualquier manipulación para no quedarse fuera. Aquí no se requiere ni Docker ni dominio. Si sus servicios se ejecutan en contenedores Docker, tenga presente que Docker manipula iptables directamente y puede eludir UFW: en ese caso hace falta una atención particular.
Configurar UFW paso a paso
Autorizar SSH ANTES que cualquier otra regla
Es el paso que evita quedarse bloqueado fuera. Incluso antes de activar el firewall, autorice su puerto SSH:
sudo ufw allow 22/tcp(o su puerto personalizado). No active nunca UFW sin esta regla, so pena de perder el acceso a su VPS.Definir las políticas por defecto
Ponga la base deny-by-default:
sudo ufw default deny incomingysudo ufw default allow outgoing. Todo el tráfico entrante no autorizado explícitamente será rechazado a partir de ese momento, mientras que sus servicios pueden seguir iniciando conexiones salientes.Abrir los puertos de los servicios expuestos
Autorice únicamente lo que debe ser público. Para un servidor web:
sudo ufw allow 80/tcpysudo ufw allow 443/tcp, o directamente el perfilsudo ufw allow 'Nginx Full'. Deje cerrado todo puerto que no deba ser accesible desde Internet.Activar el rate limiting en SSH
Sustituya la regla SSH simple por
sudo ufw limit 22/tcp: UFW bloquea entonces temporalmente una IP que intenta más de 6 conexiones en 30 segundos, lo que ralentiza mucho los ataques por fuerza bruta sin bloquear sus accesos legítimos.Restringir los puertos sensibles por IP de origen
Para un panel de administración o una base de datos, abra el puerto solo a su dirección:
sudo ufw allow from 203.0.113.10 to any port 5432 proto tcp. Ninguna otra fuente podrá alcanzar ese servicio, aunque esté a la escucha.Activar UFW y comprobar las reglas
Active el firewall con
sudo ufw enable, confirme y luego audite el conjunto consudo ufw status numbered. Mantenga una sesión SSH abierta durante la prueba para poder corregir una regla si se corta el acceso.
Si sus servicios se ejecutan en Docker, sepa que Docker inserta sus propias reglas iptables por delante de las de UFW: un contenedor lanzado con -p 5432:5432 es accesible desde Internet aunque UFW «bloquee» el puerto 5432. Dos soluciones robustas: vincule explícitamente el puerto a la loopback (-p 127.0.0.1:5432:5432) para los servicios no destinados al público, o instale el proyecto ufw-docker, que reconcilia las cadenas de Docker y las de UFW. Active también sudo ufw logging on y vigile /var/log/ufw.log para detectar los escaneos antes de que se conviertan en intrusiones.