Firewall básico en Linux con UFW
Dedicados & VPS
22

Qué es UFW

UFW (Uncomplicated Firewall) es una capa de abstracción sobre iptables/nftables que hace mucho más sencillo configurar reglas de firewall en servidores Linux. Viene preinstalado en Ubuntu y Debian, y se instala fácilmente en CentOS con yum install ufw o dnf install ufw.

Ver el estado actual

sudo ufw status verbose

Si dice Status: inactive el firewall no está filtrando aún. Si dice active verás una lista de reglas vigentes.

Reglas iniciales recomendadas

Antes de activar UFW, define las políticas por defecto y abre los puertos que sí necesitas — de lo contrario podrías dejarte fuera al activarlo.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Esto significa: "bloquea todo lo que entra a menos que lo permita explícitamente, permite todo lo que el servidor envía hacia afuera". Es la configuración más restrictiva segura.

Abrir los puertos esenciales

SSH (fundamental — nunca lo olvides)

sudo ufw allow 22/tcp

Si cambiaste el puerto SSH a otro número, usa ese. Esta regla es la más importante de todas — si cierras el puerto SSH sin tener otro acceso al servidor, te quedas fuera.

HTTP y HTTPS para servir web

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

cPanel / WHM

sudo ufw allow 2082/tcp  # cPanel HTTP
sudo ufw allow 2083/tcp  # cPanel HTTPS
sudo ufw allow 2086/tcp  # WHM HTTP
sudo ufw allow 2087/tcp  # WHM HTTPS
sudo ufw allow 2095/tcp  # Webmail HTTP
sudo ufw allow 2096/tcp  # Webmail HTTPS

Correo electrónico

sudo ufw allow 25/tcp    # SMTP
sudo ufw allow 465/tcp   # SMTPS
sudo ufw allow 587/tcp   # Submission
sudo ufw allow 110/tcp   # POP3
sudo ufw allow 995/tcp   # POP3S
sudo ufw allow 143/tcp   # IMAP
sudo ufw allow 993/tcp   # IMAPS

FTP pasivo (si usas FTP)

sudo ufw allow 21/tcp
sudo ufw allow 49152:65534/tcp

Activar el firewall

Una vez definidas las reglas, activa:

sudo ufw enable

Te pregunta si estás seguro — confirma con y. UFW arrancará y aplicará las reglas. Recuérdalo: ya debes haber abierto SSH antes de este paso.

Reglas más finas

Permitir solo desde una IP específica

Si administras desde una IP fija (oficina, home), puedes restringir el acceso SSH a esa IP únicamente:

sudo ufw delete allow 22/tcp
sudo ufw allow from 203.0.113.50 to any port 22 proto tcp

Reemplaza 203.0.113.50 por tu IP real. Verifícala en https://api.ipify.org.

Bloquear una IP maliciosa

sudo ufw deny from 198.51.100.7

Limitar intentos de conexión (anti brute-force)

sudo ufw limit 22/tcp

Con limit, UFW bloquea una IP que intente conectarse más de 6 veces en 30 segundos. Es una protección útil si no puedes restringir por IP fija.

Ver y borrar reglas

Listar con números

sudo ufw status numbered

Borrar una regla específica

sudo ufw delete 3

Donde 3 es el número de la lista numerada.

Restablecer todo

sudo ufw reset

Qué NO bloquear nunca

  • El puerto SSH donde estás conectado actualmente.
  • Los puertos 80/443 si tu servidor hostea sitios web accesibles.
  • El puerto de tu panel de control (2083 para cPanel, 8443 para Plesk, etc.).
  • Puertos de correo si gestionas emails desde el servidor.

Alternativas a UFW

  • firewalld — el equivalente en CentOS/RHEL/Rocky. Mismo concepto, comandos distintos.
  • CSF (ConfigServer Firewall) — muy popular en servidores con cPanel, añade protección anti-DDoS básica.
  • iptables directo — más control pero curva de aprendizaje mayor.

Si tu servidor tiene cPanel, CSF suele ser mejor opción — integra con WHM y tiene más features específicas para hosting compartido.