Articulo de ayuda
Cómo Configurar el Firewall de tu VPS: UFW e iptables
Configura el firewall de tu VPS con UFW, firewalld o iptables: abrir puertos, permitir SSH, HTTP y HTTPS y buenas prácticas de seguridad.
Introducción
El firewall es la primera línea de defensa de tu VPS. Controla qué conexiones entran y salen del servidor: lo que no está permitido explícitamente, se rechaza. Sin un firewall activado, tu servidor está expuesto a cualquier conexión de internet.
En este artículo vas a ver cómo configurar el firewall de tu VPS con las herramientas más habituales: UFW (Ubuntu y Debian), firewalld (AlmaLinux y Rocky Linux) e iptables (para casos avanzados).
Qué es un firewall y por qué lo necesitas
Un firewall (cortafuegos) es como un portero que decide quién puede entrar a tu servidor y por qué puerta (puerto). Funciona con reglas simples:
- Permitir conexiones a ciertos puertos (SSH, web, correo).
- Denegar el resto.
Sin firewall, cualquier servicio instalado en tu servidor es accesible desde internet. Con firewall, solo lo que tú decidas.
[Imagen sugerida: esquema de un firewall permitiendo solo SSH, HTTP y HTTPS]
El firewall es tan importante que la mayoría de VPS lo llevan activado por defecto. Pero conviene revisar y personalizar las reglas.
Qué puertos necesitas abrir
Antes de configurar nada, ten claro qué puertos vas a necesitar:
| Puerto | Para qué | ¿Hay que abrirlo? |
|---|---|---|
| 22 (o el que uses) | SSH | Sí, obligatorio |
| 80 | HTTP (web) | Sí, si tienes web |
| 443 | HTTPS (web segura) | Sí, si tienes web con SSL |
| 25 | Correo SMTP | Solo si gestionas correo |
| 465 | Correo SMTPS | Solo si gestionas correo |
| 587 | Correo envío | Solo si gestionas correo |
| 110 / 995 | Correo POP3 | Solo si gestionas correo |
| 143 / 993 | Correo IMAP | Solo si gestionas correo |
| 3306 | MySQL | No (solo si necesitas acceso remoto) |
| 8090 / 8888 | Panel (CyberPanel, aaPanel) | Solo si usas ese panel |
La regla de oro: abre solo lo que necesites. Cuantos menos puertos abiertos, más seguro.
Configurar UFW (Ubuntu y Debian)
UFW (Uncomplicated Firewall) es el firewall más sencillo de usar. Viene incluido en Ubuntu y Debian.
Paso 1: Definir las políticas por defecto
Lo más seguro es denegar todo lo que entra y permitir todo lo que sale:
ufw default deny incoming
ufw default allow outgoing
Paso 2: Abrir el puerto SSH (¡antes de activarlo!)
Si no abres el puerto SSH antes de activar el firewall, te quedarás fuera del servidor.
ufw allow 22/tcp
Si cambiaste el puerto SSH (por ejemplo a 2222), abre ese:
ufw allow 2222/tcp
Paso 3: Abrir los puertos web
ufw allow 80/tcp
ufw allow 443/tcp
Paso 4: Abrir puertos adicionales si los necesitas
Por ejemplo, para un panel de control:
ufw allow 8090/tcp
Paso 5: Activar el firewall
ufw enable
Te pedirá confirmación. Escribe y y pulsa Enter.
Paso 6: Comprobar el estado
ufw status verbose
Verás la lista de reglas activas.
[Imagen sugerida: captura del comando ufw status mostrando las reglas]
Configurar firewalld (AlmaLinux, Rocky Linux, CentOS)
Firewalld es el firewall que viene en las distribuciones basadas en Red Hat.
Paso 1: Verificar que está activo
systemctl status firewalld
Si no está activo, arráncalo:
systemctl start firewalld
systemctl enable firewalld
Paso 2: Abrir los puertos necesarios
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
Si cambiaste el puerto SSH, abre ese en lugar del 22.
Paso 3: Aplicar los cambios
firewall-cmd --reload
Paso 4: Comprobar las reglas
firewall-cmd --list-all
Configurar iptables (avanzado)
iptables es el firewall más antiguo y potente de Linux, pero su sintaxis es más compleja. UFW y firewalld lo usan por debajo.
Si necesitas usar iptables directamente (caso poco habitual hoy):
Ver las reglas actuales
iptables -L -n -v
Abrir el puerto SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Abrir los puertos web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Guardar las reglas
Para que se mantengan tras reiniciar:
apt install iptables-persistent -y
netfilter-persistent save
iptables es potente pero fácil de configurar mal. Si no tienes experiencia, usa UFW o firewalld.
Consejos útiles
- Abre el puerto SSH antes de activar el firewall. Si no, te quedarás fuera.
- Abre solo lo que necesites. Cuantos menos puertos, más seguro.
- No abras el puerto de la base de datos (3306) a internet. Si necesitas acceso remoto, restringe por IP.
- Revisa las reglas periódicamente. Puedes haber abierto puertos que ya no necesitas.
- Combina el firewall con fail2ban. El firewall controla conexiones; fail2ban bloquea IPs maliciosas.
Problemas frecuentes
Me he quedado fuera del servidor tras activar el firewall
Olvidaste abrir el puerto SSH. Usa la consola de recuperación del panel del VPS para entrar y abrirlo, o contacta con soporte.
Una web no carga tras activar el firewall
Probablemente no abriste el puerto 80 o 443. Añádelos con ufw allow 80/tcp y ufw allow 443/tcp.
No sé qué puertos están abiertos
Comprueba con ufw status (UFW) o firewall-cmd --list-all (firewalld). También puedes ver qué servicios escuchan con ss -tulpn.
El firewall va lentísimo
Un firewall bien configurado no afecta al rendimiento. Si notas lentitud, puede que tengas miles de reglas o un error de configuración.
He configurado una regla mal y todo falla
Puedes resetear el firewall:
ufw reset
Ojo: esto borra todas las reglas. Tendrás que volver a abrirlas (empieza por SSH).
Preguntas frecuentes
¿UFW, firewalld o iptables?
Para principiantes, UFW (Ubuntu/Debian) o firewalld (AlmaLinux/Rocky). iptables solo para casos avanzados.
¿El firewall afecta a la velocidad de mi web?
No, si está bien configurado. El procesamiento de reglas es casi instantáneo.
¿Puedo bloquear un país entero?
Sí, con herramientas adicionales como ipset o extensiones de firewalld. Pero no suele ser necesario si configuras bien fail2ban.
¿Necesito firewall si tengo un panel de control?
Sí. Los paneles suelen abrir automáticamente los puertos que necesitan, pero conviene revisar y asegurar los que no uses.
¿El firewall protege de ataques web (como SQL injection)?
No directamente. Para eso necesitas un WAF (Web Application Firewall) como ModSecurity o Wordfence. El firewall de red controla conexiones, no el contenido de las peticiones.
Tu VPS, protegido con un buen firewall
Un firewall bien configurado es la base de la seguridad de tu VPS. Abre solo los puertos que necesitas (SSH, web y correo si aplica), deniega el resto y combina con fail2ban para una protección sólida.
Si tienes un VPS administrado de miHosting, nosotros configuramos y mantenemos el firewall por ti. Si tienes un VPS autogestionado, esta guía te sirve para dejarlo protegido desde el primer día. Abre un ticket desde tu panel de cliente si necesitas ayuda.