Servidores y VPS

Cómo asegurar tu VPS: firewall, SSH y buenas prácticas

Aprende a proteger tu servidor VPS con un firewall bien configurado, acceso SSH endurecido y las buenas prácticas esenciales de seguridad.

A modern server room featuring network equipment with blue illumination. Ideal for technology themes.

Para asegurar un servidor VPS necesitas como mínimo tres capas: un firewall que bloquee puertos innecesarios, una configuración SSH endurecida y actualizaciones regulares del sistema operativo. Con estas tres medidas eliminas la gran mayoría de los ataques automatizados.

Un VPS mal configurado puede ser comprometido en minutos: los bots escanean Internet continuamente en busca de credenciales débiles y puertos abiertos. Esta guía te muestra cómo cerrar esas puertas de forma sistemática. Consulta también otros recursos en la sección de servidores VPS.

Por Qué la Seguridad de un VPS Es Tu Responsabilidad

A diferencia del hosting compartido, donde el proveedor gestiona el servidor, en un VPS —salvo que sea administrado— tú eres el administrador. Eso significa que la configuración del firewall, los parches y las contraseñas son trabajo tuyo.

Los vectores de ataque más comunes contra VPS son:

  • Ataques de fuerza bruta al puerto SSH (22).
  • Servicios expuestos innecesariamente (bases de datos, paneles de control).
  • Software desactualizado con vulnerabilidades conocidas.
  • Contraseñas débiles o reutilizadas.

Paso 1: Configura el Firewall (UFW o iptables)

El firewall es la primera línea de defensa. Solo deben estar abiertos los puertos que realmente necesitas.

Opción A: UFW (recomendado para Ubuntu/Debian)

UFW (Uncomplicated Firewall) ofrece una interfaz sencilla sobre iptables:

# Política por defecto: denegar todo el tráfico entrante
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Permitir SSH, HTTP y HTTPS
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Activar el firewall
sudo ufw enable
sudo ufw status verbose

Si usas un puerto SSH diferente al 22 (lo veremos en el siguiente paso), ajusta la regla correspondiente antes de activar UFW para no bloquearte tú mismo.

Opción B: firewall-cmd (AlmaLinux / Rocky Linux)

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Puertos que casi nunca deberían estar abiertos al público

Puerto Servicio Recomendación
3306 MySQL / MariaDB Solo localhost o IP específica
5432 PostgreSQL Solo localhost o IP específica
6379 Redis Solo localhost
8080, 8443 Paneles alternativos Limitar a IP de administración

Paso 2: Endurece el Acceso SSH

SSH es la puerta de entrada al servidor. Asegúrala bien y eliminarás la mayoría de los intentos de intrusión.

Cambia el puerto por defecto

Edita /etc/ssh/sshd_config y cambia el puerto 22 a uno no estándar (por ejemplo, 2222 o cualquier número entre 1024 y 65535):

Port 2222

Esto no es seguridad real por sí solo, pero reduce drásticamente el ruido de los bots que escanean el puerto 22.

Desactiva el acceso por contraseña, usa claves SSH

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no

Primero asegúrate de haber subido tu clave pública al servidor con ssh-copy-id. Después reinicia el servicio:

sudo systemctl restart sshd

Genera un par de claves SSH (en tu máquina local)

ssh-keygen -t ed25519 -C "mi_vps_$(date +%Y-%m-%d)"
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@IP_VPS

Usa el algoritmo ed25519: es más corto, más rápido y más seguro que RSA de 2048 bits.

Configura Fail2Ban

Fail2Ban monitorea los logs y banea automáticamente las IPs que acumulan demasiados intentos fallidos:

sudo apt install fail2ban -y
sudo systemctl enable fail2ban --now

La configuración por defecto ya protege SSH. Para ajustar el umbral, crea /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
bantime = 3600

Paso 3: Gestión de Usuarios y Privilegios

Nunca trabajes como root en el día a día. Crea un usuario normal con acceso sudo:

sudo adduser miusuario
sudo usermod -aG sudo miusuario

Principios básicos de gestión de usuarios:

  • Una cuenta por persona —nunca compartas credenciales.
  • Elimina cuentas de usuarios que ya no necesitan acceso.
  • Revisa periódicamente el contenido de /etc/passwd y /etc/sudoers.
  • Usa sudo solo cuando sea imprescindible; sale del modo root tan pronto como termines.

Paso 4: Mantén el Sistema Actualizado y Monitorea

Actualizaciones automáticas de seguridad

En Ubuntu/Debian instala unattended-upgrades para aplicar parches de seguridad automáticamente:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Monitorea los logs del sistema

Revisa periódicamente los intentos de acceso fallidos:

sudo journalctl -u ssh --since "24 hours ago" | grep "Failed"
sudo grep "Accepted" /var/log/auth.log

Herramientas como Logwatch o GoAccess envían resúmenes diarios por correo, ahorrándote tener que revisar logs manualmente.

Instala un escáner de rootkits

sudo apt install rkhunter -y
sudo rkhunter --update
sudo rkhunter --check

Programa el escaneo semanal con cron para detectar cambios sospechosos en archivos del sistema.

Si buscas un VPS con capa de seguridad gestionada incluida, en elenlace.com encontrarás opciones administradas donde el equipo técnico aplica estas configuraciones por ti.

Conclusiones clave

  • Activa el firewall desde el primer minuto y cierra todo puerto que no uses.
  • Desactiva la autenticación por contraseña en SSH y usa siempre claves ed25519.
  • Cambia el puerto SSH y activa Fail2Ban para reducir el ruido de los bots.
  • Trabaja con un usuario sin privilegios y reserva root/sudo para tareas administrativas.
  • Aplica parches de seguridad de forma regular (idealmente automática).

Implementar estas medidas toma menos de una hora y convierte tu VPS en un objetivo mucho menos atractivo para los atacantes. Para ayuda especializada en configuración y auditoría de seguridad, contacta al equipo de elenlace.com.

Preguntas frecuentes

¿UFW o iptables? ¿Cuál es mejor para asegurar un VPS?

UFW es una capa de abstracción sobre iptables diseñada para ser más fácil de usar. Para la mayoría de los VPS de propósito general, UFW es suficiente y mucho menos propenso a errores de configuración. Si necesitas reglas muy granulares (NAT, redirección de puertos complejas), iptables ofrece más control.

¿Debo deshabilitar el acceso root por SSH?

Sí, siempre. Configura PermitRootLogin no en /etc/ssh/sshd_config y usa un usuario con sudo para las tareas administrativas. El acceso root directo por SSH es uno de los vectores de ataque más explotados.

¿Cómo sé si mi VPS ya fue comprometido?

Señales de alerta: uso anormal de CPU o RAM, tráfico de red inusual, usuarios desconocidos en /etc/passwd, procesos extraños al ejecutar ps aux y entradas raras en los logs de autenticación. Herramientas como rkhunter y chkrootkit automatizan gran parte de esta detección.

¿Con qué frecuencia debo actualizar el servidor?

Los parches de seguridad deben aplicarse en cuanto están disponibles, idealmente mediante unattended-upgrades para paquetes críticos. Las actualizaciones de versión mayor del sistema operativo (por ejemplo, de Ubuntu 22.04 a 24.04) se planifican con más cuidado, generalmente una vez al año en entornos de producción.

Recursos útiles

Otros proveedores y guías que vale la pena comparar:

← Todos