UFWFirewallPuertos4 min de lectura

Configurar firewall con UFW

Reglas básicas de UFW para proteger tu servidor: permitir solo puertos necesarios y bloquear el resto.


¿Qué es UFW?

UFW (Uncomplicated Firewall) es una interfaz simplificada para iptables que viene incluida en Ubuntu. Permite configurar reglas de firewall de forma intuitiva sin necesidad de conocer la sintaxis compleja de iptables.

Paso 1: Instalar y verificar UFW

bash
sudo apt install -y ufw
sudo ufw status

Si muestra Status: inactive, el firewall no está activo todavía.

Paso 2: Configurar políticas por defecto

La regla de oro: bloquear todo el tráfico entrante y permitir todo el saliente:

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

Paso 3: Permitir SSH (CRÍTICO)

Antes de activar UFW, asegurate de permitir SSH para no quedarte afuera:

bash
# Puerto estándar
sudo ufw allow ssh

# Si cambiaste el puerto SSH
sudo ufw allow 2222/tcp

Paso 4: Permitir servicios comunes

bash
# Web server (HTTP y HTTPS)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# O usando el perfil de aplicación
sudo ufw allow 'Nginx Full'

# Base de datos (solo si necesitás acceso externo)
# sudo ufw allow 3306/tcp  # MySQL
# sudo ufw allow 5432/tcp  # PostgreSQL

# Game servers
sudo ufw allow 25565/tcp   # Minecraft
sudo ufw allow 25565/udp
sudo ufw allow 30120/tcp   # FiveM
sudo ufw allow 30120/udp

Paso 5: Activar el firewall

bash
sudo ufw enable

Confirmá con y. Verificá el estado:

bash
sudo ufw status verbose

Reglas avanzadas

Permitir acceso desde una IP específica

bash
# Permitir todo desde una IP de confianza
sudo ufw allow from 203.0.113.50

# Permitir solo un puerto desde una IP
sudo ufw allow from 203.0.113.50 to any port 3306

Permitir un rango de puertos

bash
sudo ufw allow 6000:6100/tcp

Permitir una subred

bash
sudo ufw allow from 192.168.1.0/24 to any port 22

Denegar una IP específica

bash
sudo ufw deny from 198.51.100.0/24

Limitar conexiones (anti brute-force)

bash
# Limita a 6 conexiones en 30 segundos
sudo ufw limit ssh
sudo ufw limit 2222/tcp

Gestionar reglas

bash
# Ver reglas numeradas
sudo ufw status numbered

# Eliminar una regla por número
sudo ufw delete 3

# Eliminar una regla por definición
sudo ufw delete allow 8080/tcp

# Resetear todas las reglas
sudo ufw reset

Ver logs del firewall

Activá el logging:

bash
sudo ufw logging on
sudo ufw logging medium

Los logs se guardan en /var/log/ufw.log:

bash
# Ver intentos bloqueados
sudo tail -f /var/log/ufw.log | grep BLOCK

Perfiles de aplicación

UFW incluye perfiles predefinidos:

bash
# Ver perfiles disponibles
sudo ufw app list

# Ver detalles de un perfil
sudo ufw app info 'Nginx Full'

# Usar un perfil
sudo ufw allow 'OpenSSH'

Ejemplo: Configuración para web server

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp      # SSH personalizado
sudo ufw allow 80/tcp        # HTTP
sudo ufw allow 443/tcp       # HTTPS
sudo ufw limit 2222/tcp      # Rate limit SSH
sudo ufw enable

Recomendaciones

  • Siempre permití SSH antes de activar UFW
  • Usá ufw limit en el puerto SSH para prevenir brute-force
  • No abras puertos de base de datos al público; usá túneles SSH
  • Revisá las reglas periódicamente y eliminá las que ya no necesités
  • Combiná UFW con fail2ban para protección completa

¿Te resultó útil esta guía?