// VPS

Cómo asegurar un VPS: los primeros 30 minutos

Cómo asegurar un VPS: los primeros 30 minutos

Lo mejor es asegurar un VPS justo después de la entrega, porque los bots escanean muy pronto una IP nueva en busca de puertos abiertos y contraseñas débiles. En media hora dejas lista la base: actualizaciones, un usuario propio, claves SSH, inicio de sesión con contraseña y como root desactivado, un firewall con ufw, fail2ban y actualizaciones de seguridad automáticas.

Asegurar el VPS es tarea tuya: lo que debes saber antes

Un VPS de MC-Node es autogestionado: tienes acceso root y te encargas tú de las actualizaciones y la seguridad, aunque nuestro soporte te echa una mano con ideas si te atascas. Los pasos de abajo parten de Ubuntu, que en el VPS KVM y el VDS eliges al contratar y en el VPS Premium instalas tú mismo desde el panel VPS. Sirven para cualquier VPS Linux, desde el VPS barato hasta el VPS Premium con Ryzen 9. Ejecuta los comandos como root, o con sudo delante en cuanto trabajes con tu propio usuario. Si usas Windows Server, ve a la parte sobre RDP.

Asegurar un VPS en ocho pasos: actualizaciones, usuario propio, clave SSH, sin inicio con contraseña, ufw, fail2ban, actualizaciones automáticas y copias de seguridad
Los primeros 30 minutos tras el pedido: ocho pasos que dejan bien cerrado un VPS nuevo.

Paso 1: actualizaciones y un usuario propio

Entra con los datos de tu correo de entrega (consulta conectarse por SSH) y actualiza primero todo:

apt update && apt upgrade -y
[ -f /var/run/reboot-required ] && reboot

La segunda línea solo reinicia el VPS si una actualización lo pide, normalmente después de un kernel nuevo. Después cambia la contraseña de root con passwd (o desde el panel VPS, consulta cambiar la contraseña de root) y crea un usuario propio con permisos de administración:

adduser tunombre
usermod -aG sudo tunombre

A partir de ahora trabajas como tunombre y pones sudo delante de los comandos de administración. Así root ya no necesita entrar directamente, y esa puerta la cierras en el paso 3.

Paso 2: claves SSH en lugar de contraseñas

Una clave SSH es un par de claves: la parte privada se queda en tu propio ordenador y la parte pública la pones en el servidor. Adivinarla es imposible, por muchas veces que lo intente un bot. Crea el par en tu propio ordenador; Windows 10 y 11, macOS y Linux traen ssh-keygen integrado:

ssh-keygen -t ed25519

Elige una frase de contraseña; así un archivo de clave robado no basta por sí solo. Después pon la parte pública en el VPS. En macOS y Linux:

ssh-copy-id tunombre@tu-ip

En Windows no existe ssh-copy-id; en PowerShell haces lo mismo con:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh tunombre@tu-ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Si prefieres trabajar con PuTTY, sigue configurar claves SSH con PuTTYgen. Prueba en una ventana nueva: ssh tunombre@tu-ip debería entrar ahora sin la contraseña de tu cuenta, solo con la frase de contraseña de tu clave.

Paso 3: desactivar el inicio de sesión con contraseña y como root

Ahora que la clave funciona, ya puedes cerrar la puerta a las contraseñas. Crea un archivo de ajustes propio:

sudo nano /etc/ssh/sshd_config.d/00-seguridad.conf

con estas dos líneas:

PasswordAuthentication no
PermitRootLogin no

¿Por qué ese 00- en el nombre? OpenSSH usa para cada ajuste el primer valor que encuentra, y los archivos de sshd_config.d se leen por orden alfabético, antes que el resto de sshd_config. En las imágenes cloud a veces hay un archivo como 50-cloud-init.conf con PasswordAuthentication yes; con 00-, el tuyo va primero. Comprueba y reinicia:

sudo sshd -t && sudo systemctl restart ssh
sudo sshd -T | grep -Ei '^(passwordauthentication|permitrootlogin)'

La última línea debería mostrar passwordauthentication no y permitrootlogin no. No cierres tu sesión actual hasta haber podido entrar de nuevo en una segunda ventana.

Paso 4: firewall con ufw (¡OpenSSH primero!)

ufw cierra todo lo que no abras de forma explícita. El orden es importante: permite SSH antes de activar el firewall; si no, te quedas fuera.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verbose

La línea con 25565 es un ejemplo para un servidor de Minecraft; abre solo los puertos que de verdad uses. Para FiveM es el puerto 30120 por TCP y UDP (consulta Servidor FiveM en tu propio VPS); los puertos de los juegos de Steam los encontrarás en Servidor de juegos en VPS con SteamCMD. Un puerto de administración, como el de txAdmin (40120), ábrelo solo para tu propia IP: sudo ufw allow from ip-de-tu-casa to any port 40120.

Cuidado con Docker, y por tanto también con Pterodactyl Wings: según la documentación de Docker, los puertos que publicas con Docker se saltan las reglas de ufw. Esos puertos los gestionas, por tanto, en Docker o en tu panel de juegos, no solo en ufw. Y en el VPS barato compartes el kernel con el host a través de OpenVZ: ahí, después de activarlo, comprueba con sudo ufw status verbose si el firewall está realmente activo.

Paso 5: fail2ban contra la fuerza bruta

fail2ban lee tus archivos de log y bloquea temporalmente una dirección IP tras demasiados intentos fallidos de inicio de sesión. En Ubuntu, la protección para SSH queda activa nada más instalarlo:

sudo apt install fail2ban
sudo fail2ban-client status sshd

Si quieres reglas más estrictas, crea /etc/fail2ban/jail.local. No modifiques jail.conf, porque ese archivo puede sobrescribirse con una actualización.

[sshd]
maxretry = 5
bantime = 1h

Después, sudo systemctl restart fail2ban. Con solo claves SSH ya nadie adivina tu contraseña, pero fail2ban mantiene tus logs limpios y frena a los bots. Si te has bloqueado a ti mismo, por ejemplo tras usar varias veces la clave equivocada, quita tu IP desde la consola con sudo fail2ban-client set sshd unbanip tu-ip.

Paso 6: actualizaciones de seguridad automáticas

En Ubuntu Server, unattended-upgrades viene instalado de serie e instala solo las actualizaciones de seguridad. Comprueba que está activado:

cat /etc/apt/apt.conf.d/20auto-upgrades

Si ves APT::Periodic::Unattended-Upgrade "1";, está bien. Si no, instálalo con sudo apt install unattended-upgrades y actívalo con sudo dpkg-reconfigure -plow unattended-upgrades. Un kernel nuevo solo funciona tras un reinicio, y el reinicio automático viene desactivado por defecto. Si lo quieres, pon Unattended-Upgrade::Automatic-Reboot "true"; en /etc/apt/apt.conf.d/50unattended-upgrades, con una hora tranquila mediante Automatic-Reboot-Time. Si tienes un servidor de juegos, asegúrate de que vuelve a arrancar solo con systemd.

Windows Server: cerrar RDP

En un VPS Windows, el Escritorio remoto (RDP, puerto 3389) es la puerta a la que llaman los bots. Lo básico:

  • Una contraseña larga y única para Administrator, y ninguna cuenta extra con contraseñas débiles.
  • Dejar Windows Update activado, y terminar de verdad las actualizaciones con un reinicio.
  • En el Firewall de Windows Defender, limitar la regla de Escritorio remoto a tu propia IP, en la pestaña Ámbito (Scope) de esa regla.
  • Dejar activada la Network Level Authentication: así alguien tiene que iniciar sesión antes de que empiece una sesión.

Más sobre la licencia, RDP y cuándo Linux es más inteligente en Alquilar un VPS Windows; el inicio de sesión en sí está en conectarse con Escritorio remoto.

Qué hace y qué no hace la protección DDoS

Todos los VPS de MC-Node tienen protección DDoS a través de la red de PletX, siempre activa e incluida en el precio (consulta cómo funciona la protección DDoS). Filtra los ataques que quieren tumbar tu conexión con una avalancha de tráfico. Pero un filtro DDoS mira el tráfico, no quién inicia sesión: no frena una contraseña adivinada, un token filtrado ni una vulnerabilidad en un plugin desactualizado. Para eso están los pasos de arriba. Para servidores de juegos, encontrarás más en qué es un ataque DDoS y proteger tu servidor de Minecraft.

Tu red de seguridad: la consola y una copia de seguridad

¿Has activado ufw sin regla para SSH, o hay una errata en los ajustes de SSH? Entonces tu VPS no está roto, solo inaccesible por SSH. En el panel VPS tienes una consola: trabajas como si estuvieras delante de la pantalla del servidor, sin depender de SSH ni del firewall. Entra ahí y deshaz el cambio, por ejemplo con sudo ufw disable o borrando 00-seguridad.conf.

Organiza además copias de seguridad, idealmente antes de hacer cambios grandes: guarda una copia de tu configuración y tus datos en un lugar distinto del propio VPS, para que un error o un hackeo no sea el final de tu proyecto.

Preguntas frecuentes

¿Cómo debo asegurar un VPS nuevo?

Actualiza primero todo y crea un usuario propio con permisos de sudo. Después entra con una clave SSH, desactiva el inicio de sesión con contraseña y como root, cierra con ufw todos los puertos salvo SSH y lo que de verdad uses, e instala fail2ban. Por último, comprueba que las actualizaciones de seguridad automáticas están activadas.

¿Tengo que cambiar el puerto de SSH?

Puedes, pero no es seguridad de verdad. Otro puerto reduce el ruido en tus logs, porque lo encuentran menos bots; quien busca a propósito lo encuentra igual. Las claves SSH, desactivar el inicio de sesión con contraseña y fail2ban hacen el trabajo de verdad. Si cambias el puerto, abre antes el nuevo puerto en ufw.

¿Qué hago si me he quedado fuera?

Usa la consola del panel VPS. Funciona sin depender de SSH ni del firewall, así que puedes entrar ahí y deshacer el cambio, por ejemplo con ufw disable o borrando tu nuevo archivo de ajustes de SSH.

¿La protección DDoS protege contra hackers?

No, no contra intrusiones. La protección DDoS filtra los ataques que quieren saturar tu conexión con tráfico, y en MC-Node está siempre activa en cada VPS. Contra contraseñas adivinadas y vulnerabilidades del software ayudan las actualizaciones, las claves SSH, un firewall y fail2ban.

¿Un VPS de MC-Node es gestionado o no gestionado?

Autogestionado: tienes acceso root o de Administrador y te encargas tú de las actualizaciones y la seguridad. Nuestro soporte te echa una mano con ideas si te atascas. Si prefieres no encargarte de esa gestión, un servidor de juegos listo para usar suele ser la mejor opción.

Sigue leyendo

// PRUÉBALO TÚ MISMO
Tu servidor de Minecraft en línea en 60 segundos
Ver los planes →