Hosting Equipo Avantys 9 min

Firewall en VPS: Guía Completa de UFW e iptables

Configura el firewall de tu VPS correctamente. UFW para principiantes, iptables para control total. Reglas, ejemplos y mejores prácticas.

// Compartir

Firewall en VPS: Guía Completa de UFW e iptables
Firewall en VPS: UFW e iptables

Un VPS expuesto a internet sin firewall es una invitación a los atacantes. Cada puerto abierto es una puerta potencial de entrada.

El firewall controla qué tráfico entra y sale de tu servidor. Bien configurado, bloquea el 99% de ataques automatizados antes de que lleguen a tus servicios.

Esta guía te enseña a configurar el firewall correctamente, desde UFW (fácil) hasta iptables (control total).

Por qué necesitas un firewall

Sin firewall

Internet → Todos los puertos abiertos → Tu VPS
           Puerto 22 (SSH) ✓
           Puerto 80 (HTTP) ✓
           Puerto 3306 (MySQL) ✓ ← ¡Peligro!
           Puerto 6379 (Redis) ✓ ← ¡Peligro!
           ... miles de intentos de conexión

Con firewall

Internet → Firewall filtra → Solo lo permitido → Tu VPS
           Puerto 22 (SSH) ✓
           Puerto 80 (HTTP) ✓
           Puerto 443 (HTTPS) ✓
           Todo lo demás ✗ BLOQUEADO

Qué bloquea un firewall

AmenazaSin firewallCon firewall
Escaneo de puertosExpuestoBloqueado
Ataques a MySQLVulnerableProtegido
Bots automatizadosLlegan todosMayoría bloqueados
Servicios internos expuestosAccesiblesOcultos

UFW vs iptables

UFW (Uncomplicated Firewall)

  • Qué es: Frontend simplificado para iptables
  • Para quién: Principiantes y uso general
  • Ventaja: Sintaxis simple y legible
  • Desventaja: Menos control granular

iptables

  • Qué es: El firewall nativo de Linux
  • Para quién: Administradores avanzados
  • Ventaja: Control total, muy potente
  • Desventaja: Sintaxis compleja

Recomendación: Empieza con UFW. Pasa a iptables solo si necesitas algo que UFW no puede hacer.

UFW: Guía completa

Comandos básicos de UFW

Instalar y activar

# Instalar (ya viene en Ubuntu)
sudo apt install ufw

# Ver estado
sudo ufw status

# Activar (¡CUIDADO! Lee la siguiente sección primero)
sudo ufw enable

⚠️ Antes de activar: permitir SSH

CRÍTICO: Si activas UFW sin permitir SSH, te quedarás fuera del servidor.

# SIEMPRE hacer esto primero
sudo ufw allow ssh
# O especificando puerto
sudo ufw allow 22/tcp

# Ahora sí, activar
sudo ufw enable

Política por defecto

# Bloquear todo el tráfico entrante por defecto
sudo ufw default deny incoming

# Permitir todo el tráfico saliente
sudo ufw default allow outgoing

Esta es la configuración más segura: solo entra lo que permites explícitamente.

Comandos básicos

# Ver estado y reglas
sudo ufw status
sudo ufw status verbose
sudo ufw status numbered

# Activar/desactivar
sudo ufw enable
sudo ufw disable

# Resetear a valores por defecto
sudo ufw reset

Permitir servicios

# Por nombre de servicio
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# Por número de puerto
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Rango de puertos
sudo ufw allow 6000:6007/tcp

Bloquear tráfico

# Bloquear puerto
sudo ufw deny 23/tcp

# Bloquear IP específica
sudo ufw deny from 192.168.1.100

# Bloquear subred
sudo ufw deny from 10.0.0.0/8

Reglas avanzadas

# Permitir desde IP específica
sudo ufw allow from 203.0.113.5

# Permitir desde IP a puerto específico
sudo ufw allow from 203.0.113.5 to any port 22

# Permitir desde subred
sudo ufw allow from 192.168.1.0/24

# Permitir a interfaz específica
sudo ufw allow in on eth0 to any port 80

Eliminar reglas

# Ver reglas numeradas
sudo ufw status numbered

# Eliminar por número
sudo ufw delete 3

# Eliminar por regla
sudo ufw delete allow 80/tcp

Logging

# Activar logging
sudo ufw logging on

# Niveles: off, low, medium, high, full
sudo ufw logging medium

# Ver logs
sudo tail -f /var/log/ufw.log

Configuración recomendada para VPS web

Reglas de firewall recomendadas para VPS

VPS con web + SSH

# Resetear
sudo ufw reset

# Política por defecto
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH (cambia 22 si usas otro puerto)
sudo ufw allow 22/tcp

# HTTP y HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Activar
sudo ufw enable

# Verificar
sudo ufw status verbose

VPS con base de datos (acceso local)

MySQL y Redis no deben estar expuestos a internet:

# NO hagas esto:
# sudo ufw allow 3306/tcp  ← MySQL expuesto
# sudo ufw allow 6379/tcp  ← Redis expuesto

# MySQL y Redis solo escuchan en localhost por defecto
# Si necesitas acceso remoto, usa SSH tunnel

VPS con FTP (si realmente lo necesitas)

# FTP pasivo
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

# Mejor alternativa: usa SFTP (puerto 22)

VPS con servidor de correo

# SMTP
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp

# IMAP/POP3
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp
sudo ufw allow 110/tcp
sudo ufw allow 995/tcp

iptables: Control total

Conceptos básicos

iptables usa cadenas (chains) y tablas:

Cadenas principales:

  • INPUT: Tráfico que entra al servidor
  • OUTPUT: Tráfico que sale del servidor
  • FORWARD: Tráfico que pasa a través (routing)

Acciones:

  • ACCEPT: Permitir
  • DROP: Descartar silenciosamente
  • REJECT: Rechazar con respuesta

Ver reglas actuales

sudo iptables -L -n -v
sudo iptables -L -n -v --line-numbers

Reglas básicas

# Permitir tráfico establecido (importante)
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Permitir loopback
sudo iptables -A INPUT -i lo -j ACCEPT

# Permitir SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Permitir HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Bloquear todo lo demás
sudo iptables -A INPUT -j DROP

Bloquear IP

# Bloquear IP específica
sudo iptables -A INPUT -s 192.168.1.100 -j DROP

# Bloquear subred
sudo iptables -A INPUT -s 10.0.0.0/8 -j DROP

Rate limiting (anti-DDoS básico)

# Limitar conexiones SSH (máx 3 por minuto)
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

Guardar reglas

Las reglas de iptables se pierden al reiniciar. Para hacerlas persistentes:

# Instalar iptables-persistent
sudo apt install iptables-persistent

# Guardar reglas actuales
sudo netfilter-persistent save

# Las reglas se guardan en:
# /etc/iptables/rules.v4
# /etc/iptables/rules.v6

Eliminar reglas

# Ver con números de línea
sudo iptables -L INPUT --line-numbers

# Eliminar regla por número
sudo iptables -D INPUT 3

# Eliminar todas las reglas
sudo iptables -F

Casos especiales

SSH en puerto no estándar

Si cambias SSH al puerto 2222:

# UFW
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp

# iptables
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

Permitir ping (ICMP)

# UFW no bloquea ping por defecto

# iptables - permitir ping
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# iptables - bloquear ping
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Docker y firewall

Docker modifica iptables directamente. UFW puede no funcionar como esperas:

# Para que UFW funcione con Docker, edita /etc/ufw/after.rules
# Y añade al final:

*filter
:DOCKER-USER - [0:0]
-A DOCKER-USER -j RETURN
COMMIT

O usa las opciones de red de Docker para controlar exposición.

Fail2ban + firewall

Fail2ban trabaja con el firewall para bloquear IPs automáticamente:

# Fail2ban añade reglas a iptables automáticamente
sudo iptables -L f2b-sshd

Herramientas de diagnóstico

Ver puertos abiertos

# Puertos escuchando
sudo ss -tlnp
sudo netstat -tlnp

# Puertos abiertos desde fuera
nmap -p- tu-ip

Ver conexiones activas

sudo ss -tn
sudo netstat -tn

Ver reglas de firewall

# UFW
sudo ufw status verbose

# iptables
sudo iptables -L -n -v

Probar conectividad

# Desde otro servidor
nc -zv tu-ip 80
telnet tu-ip 80

Errores comunes

Error 1: Activar firewall sin permitir SSH

Te quedas fuera del servidor. Solución: acceso por consola desde el panel del proveedor.

Prevención:

# SIEMPRE primero
sudo ufw allow ssh
# DESPUÉS
sudo ufw enable

Error 2: Bloquear tráfico establecido

Si bloqueas todo sin permitir conexiones establecidas, las respuestas no llegan:

# iptables - SIEMPRE incluir esto
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

UFW lo hace automáticamente.

Error 3: No guardar reglas iptables

sudo apt install iptables-persistent
sudo netfilter-persistent save

Error 4: Exponer servicios internos

MySQL, Redis, Memcached deben escuchar solo en localhost:

# Verificar que MySQL solo escucha local
sudo ss -tlnp | grep 3306
# Debe mostrar 127.0.0.1:3306, NO 0.0.0.0:3306

Error 5: Reglas demasiado permisivas

# ❌ Mal - permite todo desde cualquier sitio
sudo ufw allow from any to any

# ✅ Bien - solo lo necesario
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Checklist de seguridad firewall

Configuración básica

TareaComando verificación
Firewall activosudo ufw status
SSH permitidoVerificar en reglas
Política deny por defectosudo ufw status verbose
Solo puertos necesariossudo ss -tlnp

Servicios protegidos

ServicioPuertoExpuesto
SSH22Sí (necesario)
HTTP80Sí (web)
HTTPS443Sí (web)
MySQL3306NO (localhost)
Redis6379NO (localhost)

Firewall + otras capas de seguridad

El firewall es la primera línea de defensa, pero no la única:

  1. Firewall: Bloquea puertos innecesarios
  2. Fail2ban: Bloquea IPs con comportamiento sospechoso
  3. SSH hardening: Claves, puerto no estándar
  4. Actualizaciones: Parchea vulnerabilidades
  5. Monitorización: Detecta anomalías

Preguntas frecuentes

¿UFW o iptables?

UFW para el 90% de casos. iptables solo si necesitas control muy específico o ya lo conoces.

¿Puedo usar ambos?

UFW es un frontend de iptables, así que técnicamente los usas juntos. Pero gestiona todo desde UFW para evitar conflictos.

¿El firewall afecta el rendimiento?

Mínimamente. El impacto es despreciable comparado con la seguridad que aporta.

¿Qué pasa si me bloqueo?

Accede por consola VNC/KVM desde el panel de tu proveedor y corrige las reglas.

Nuestra recomendación

Configuración mínima para cualquier VPS:

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

Con esto bloqueas el 99% de ataques automatizados.

¿No quieres complicarte? La administración gestionada incluye configuración de firewall profesional y monitorización de seguridad.


Conclusión

El firewall es la primera y más importante línea de defensa de tu VPS. UFW hace que configurarlo sea simple: unos pocos comandos y tu servidor está protegido.

No dejes tu VPS sin firewall. Configúralo hoy, tarda 5 minutos y la diferencia en seguridad es enorme.

¿Quieres un VPS con seguridad preconfigurada? Explora los VPS de Avantys con configuración profesional.


Guías relacionadas


¿Quieres la guía completa con todos los casos de uso?

→ Volver a la guía maestra: Mejor VPS en España 2026

¿Quieres que lo hagamos por ti?

En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.

Hablar con Avantys
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.