Cómo configurar el firewall de un servidor Linux (UFW)
¿Qué es UFW y por qué deberías usarlo?
Si tienes un servidor Linux, una de las primeras cosas que debes hacer es protegerlo. Y no, no basta con tener una buena contraseña o actualizar el sistema. Necesitas un firewall Linux que actúe como portero de tu servidor: decide quién entra, quién sale y quién se queda en la puerta.
UFW (Uncomplicated Firewall) es la herramienta perfecta para esto. Su nombre lo dice todo: es un firewall sin complicaciones, diseñado para que cualquier persona, incluso sin experiencia previa en redes, pueda configurar firewall de forma rápida y segura. Está basado en iptables, pero lo envuelve en una capa de comandos mucho más amigable.
Piénsalo así: si tu servidor fuera una casa, UFW sería la cerradura de la puerta principal. Sin ella, cualquier persona podría entrar. Con ella, tú decides quién tiene llave y quién no.
En esta guía, aprenderás desde cero a instalar, configurar y proteger tu servidor con UFW. Vamos paso a paso, sin tecnicismos innecesarios y con ejemplos que puedes aplicar al momento.
Requisitos previos antes de empezar
Antes de lanzarte a proteger servidor Linux con UFW, asegúrate de tener lo siguiente:
- Acceso root o un usuario con permisos
sudoen tu servidor. - Conexión SSH activa (para no quedarte fuera de tu propio servidor).
- Un sistema operativo basado en Debian o Ubuntu (aunque también funciona en otras distros).
[WARNING] Si estás conectado por SSH a tu servidor, ten muchísimo cuidado al activar UFW. Si bloqueas el puerto 22 (SSH) por error, te quedarás fuera para siempre. Siempre verifica tus reglas antes de activar el firewall.
Instalación de UFW en tu servidor Linux
En la mayoría de las distribuciones modernas, UFW ya viene instalado. Pero si no es tu caso, instalarlo es pan comido.
Abre tu terminal y escribe:
sudo apt update
sudo apt install ufw -y
En sistemas con yum o dnf (como CentOS o Fedora), el comando sería:
sudo yum install ufw
Una vez instalado, verifica que esté disponible:
sudo ufw status
Si te aparece Status: inactive, estás listo para empezar.
Configuración inicial: los primeros pasos
1. Define una política por defecto
Lo primero que debes hacer es decidir qué hacer con el tráfico que no tiene reglas específicas. La opción más segura es:
- Denegar todo el tráfico entrante (nadie entra si no lo permites).
- Permitir todo el tráfico saliente (tu servidor puede comunicarse con el exterior sin problemas).
Esto se logra con:
sudo ufw default deny incoming
sudo ufw default allow outgoing
[INFO] Esta es la configuración recomendada para la mayoría de servidores. Bloqueas todo lo que no necesitas y solo abres los puertos imprescindibles.
2. Permite el acceso SSH (¡crítico!)
Antes de activar el firewall, asegúrate de permitir la conexión SSH. Si no lo haces, te quedarás sin acceso remoto.
sudo ufw allow ssh
O si usas un puerto SSH personalizado (por ejemplo, el 2222):
sudo ufw allow 2222/tcp
[WARNING] Repito: verifica esta regla antes de activar UFW. Un descuido aquí puede significar perder el acceso a tu servidor por completo.
3. Activa el firewall
Ahora sí, llega el momento de encenderlo:
sudo ufw enable
Verás un mensaje de advertencia. Escribe y y pulsa Enter. El firewall estará activo.
Comprueba el estado:
sudo ufw status verbose
Deberías ver algo así:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
Abrir puertos UFW: la guía práctica
Ahora que el firewall está activo, es hora de abrir puertos UFW para los servicios que necesitas. Aquí tienes los casos más comunes.
Puertos para servicios web (HTTP y HTTPS)
Si tienes un sitio web, necesitas permitir el tráfico en los puertos 80 y 443:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
También puedes usar los nombres de servicio:
sudo ufw allow http
sudo ufw allow https
Puertos para correo electrónico
Si gestionas tu propio servidor de correo, necesitarás abrir varios puertos:
sudo ufw allow 25/tcp # SMTP (envío)
sudo ufw allow 110/tcp # POP3
sudo ufw allow 143/tcp # IMAP
sudo ufw allow 587/tcp # SMTP con cifrado
Puertos para FTP
Si usas FTP para transferir archivos:
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
Si usas FTP pasivo, necesitas abrir un rango de puertos (por ejemplo, del 20000 al 30000):
sudo ufw allow 20000:30000/tcp
Puertos para bases de datos
Si tu servidor aloja una base de datos MySQL o MariaDB:
sudo ufw allow 3306/tcp
[WARNING] Ten mucho cuidado al exponer puertos de bases de datos a Internet. Lo ideal es restringirlos a IPs específicas (te enseñamos cómo más abajo).
Reglas avanzadas: controla quién accede a tu servidor
No basta con abrir puertos. Para proteger servidor Linux de verdad, necesitas controlar quién puede acceder. Aquí es donde UFW brilla.
Permitir acceso solo desde una IP específica
Imagina que solo quieres que tu oficina (con IP 203.0.113.10) pueda acceder al puerto 22 (SSH):
sudo ufw allow from 203.0.113.10 to any port 22
Bloquear una IP específica
Si detectas un atacante o un bot molesto:
sudo ufw deny from 198.51.100.7
Permitir acceso a un puerto solo desde una subred
Si quieres permitir acceso a tu panel de administración solo desde tu red local:
sudo ufw allow from 192.168.1.0/24 to any port 8080
Reglas para interfaces específicas
Si tienes varias interfaces de red (por ejemplo, eth0 y eth1), puedes aplicar reglas solo a una de ellas:
sudo ufw allow in on eth0 to any port 80
Eliminar reglas y hacer cambios
Cometer errores es humano. Por suerte, UFW también facilita corregirlos.
Eliminar una regla por número
Primero, lista las reglas con números:
sudo ufw status numbered
Verás algo así:
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
Para eliminar la regla número 2:
sudo ufw delete 2
Eliminar una regla por especificación
También puedes eliminar la regla escribiéndola de nuevo:
sudo ufw delete allow 80/tcp
Desactivar y reactivar el firewall
Si necesitas hacer cambios grandes, puedes apagarlo temporalmente:
sudo ufw disable
Y reactivarlo cuando termines:
sudo ufw enable
Proteger servidor Linux: buenas prácticas y consejos
Aquí van algunos consejos profesionales para sacarle el máximo partido a UFW.
1. Usa límites de velocidad para evitar ataques
UFW incluye una opción para limitar la tasa de conexiones. Esto es muy útil contra ataques de fuerza bruta:
sudo ufw limit ssh
Esta regla limita las conexiones SSH a 6 por minuto. Si alguien intenta más, se bloquea automáticamente.
2. Registra los intentos bloqueados
Activa el registro para saber quién está intentando entrar:
sudo ufw logging on
Los logs se guardan en /var/log/ufw.log. Revísalos periódicamente para detectar patrones sospechosos.
3. Configura Syspanel (HestiaCP) correctamente
Si usas el panel de control Syspanel (antes conocido como HestiaCP), debes tener en cuenta que el puerto de acceso es el 2106. Asegúrate de abrirlo en tu firewall para no quedarte fuera de tu panel:
sudo ufw allow 2106/tcp
[TIP] Syspanel es una excelente herramienta para gestionar tu servidor, pero necesita que su puerto esté abierto en el firewall para funcionar correctamente.
4. Revisa tus reglas periódicamente
Una regla que hoy es necesaria, mañana puede ser un agujero de seguridad. Revisa tu configuración cada mes:
sudo ufw status verbose
5. Combina UFW con otras medidas de seguridad
UFW es una capa de protección, pero no la única. Combínalo con:
- Fail2ban para bloquear IPs maliciosas automáticamente.
- Actualizaciones automáticas de seguridad.
- Autenticación SSH con claves en lugar de contraseñas.
Errores comunes y cómo solucionarlos
Me he quedado fuera de mi servidor
Si bloqueaste el puerto SSH por error, puedes solucionarlo de dos formas:
- Acceso físico o por consola: Si tienes acceso al servidor físicamente o a través de un panel de control del proveedor (como VNC), desactiva UFW con
sudo ufw disable. - Acceso por IPMI: Algunos servidores dedicados tienen IPMI, que te da acceso remoto a nivel de hardware.
[WARNING] Si no tienes ninguna de estas opciones, la única solución será contactar con tu proveedor de hosting. Por eso insisto tanto en verificar las reglas antes de activar el firewall.
No puedo abrir un puerto
Asegúrate de que el servicio está escuchando en ese puerto. Puedes comprobarlo con:
sudo netstat -tulpn | grep :PUERTO
Si el servicio no está activo, el puerto no aparecerá como abierto aunque UFW lo permita.
UFW no se activa
A veces, UFW da problemas en sistemas con Docker o con iptables personalizados. Prueba a reiniciar el servicio:
sudo systemctl restart ufw
Si el problema persiste, verifica que no haya conflictos con otras herramientas de firewall.
Preguntas frecuentes (FAQ)
¿UFW es suficiente para proteger mi servidor?
UFW es una excelente base, pero no es la única medida de seguridad que debes tomar. Combínalo con actualizaciones, contraseñas seguras, Fail2ban y copias de seguridad.
¿Puedo usar UFW en un servidor con Windows?
No, UFW es exclusivo de Linux. En Windows, el equivalente sería el Firewall de Windows Defender.
¿Qué pasa si activo UFW sin reglas?
Bloqueará todo el tráfico entrante, incluyendo SSH. Te quedarías sin acceso remoto. Por eso es fundamental configurar las reglas antes de activarlo.
¿Cómo sé qué puertos tengo abiertos?
Puedes usar sudo ufw status verbose para ver todas las reglas activas. También puedes escanear tu servidor con herramientas externas como nmap.
¿Puedo usar UFW en un servidor con Syspanel?
Sí, y de hecho es muy recomendable. Solo recuerda abrir el puerto 2106 para acceder a tu panel de administración.
Resumen final
Configurar el firewall Linux con UFW es una de las tareas más importantes que puedes hacer para proteger tu servidor. En esta guía has aprendido:
- Instalar UFW en tu servidor.
- Configurar las políticas por defecto.
- Abrir puertos UFW para servicios web, correo, FTP y bases de datos.
- Controlar quién puede acceder a tu servidor con reglas avanzadas.
- Eliminar reglas y hacer cambios cuando sea necesario.
- Proteger servidor Linux con buenas prácticas adicionales.
Recuerda siempre: verifica tus reglas antes de activar el firewall, mantén tu servidor actualizado y combina UFW con otras herramientas de seguridad.
Si tienes alguna duda, consulta la documentación oficial o tu proveedor de hosting. Y nunca subestimes el poder de un buen firewall: puede ser la diferencia entre un servidor seguro y uno comprometido.
Comandos rápidos de referencia
Aquí tienes una chuleta con los comandos más útiles para tu día a día:
| Comando | Función |
|---|---|
sudo ufw status | Ver el estado del firewall |
sudo ufw enable | Activar el firewall |
sudo ufw disable | Desactivar el firewall |
sudo ufw allow 80/tcp | Permitir tráfico en el puerto 80 |
sudo ufw deny 21/tcp | Bloquear tráfico en el puerto 21 |
sudo ufw allow from 203.0.113.10 | Permitir acceso desde una IP |
sudo ufw delete allow 80/tcp | Eliminar una regla |
sudo ufw status numbered | Ver reglas numeradas |
sudo ufw limit ssh | Limitar conexiones SSH |
sudo ufw logging on | Activar registro de eventos |
Guarda esta guía como referencia y no dudes en volver a ella cada vez que necesites configurar el firewall de tu servidor Linux. ¡Tu servidor te lo agradecerá!
