Blog

Tutoriales, guías y novedades del producto.

Seguridad y copias de seguridad

Los primeros 10 pasos de seguridad en un VPS nuevo

3 noviembre 2026 6 min de lectura
Compartir este artículo

En un VPS nuevo, lo primero es actualizar el sistema, crear un usuario aparte que entre con clave en lugar de root, desactivar el acceso con contraseña, activar el cortafuegos y fail2ban, habilitar las actualizaciones de seguridad automáticas y comprobar que tus copias de seguridad funcionan. A continuación tienes los 10 pasos en el orden en que conviene hacerlos. Los comandos son para Ubuntu y Debian.

Todo servidor conectado a internet es un objetivo de escaneos automáticos y bots que prueban contraseñas, y puedes verlo en tu propio registro de SSH. El orden importa: confirma que los pasos 2 y 3 funcionan antes de hacer el 4, o puedes quedarte fuera. El sudo de los comandos también funciona si has entrado como root.

Sistema y cuentas

1. Actualiza el sistema

sudo apt update && sudo apt upgrade -y

En Ubuntu, el archivo /var/run/reboot-required aparece cuando una actualización necesita un reinicio. Si es así, reinicia el servidor una vez. Debian puede no crear este archivo, así que reinicia de todos modos tras una actualización del kernel.

2. Crea tu propio usuario

No uses root para el trabajo diario. Crea un usuario aparte con permisos de sudo. Cambia deploy por el nombre que quieras:

sudo adduser deploy

sudo usermod -aG sudo deploy

3. Entra con una clave SSH

Si tu ordenador aún no tiene un par de claves, crea uno con ssh-keygen -t ed25519. Después copia la clave pública al nuevo usuario y prueba el acceso:

ssh-copy-id [email protected]

ssh [email protected]

Si entraste sin que te pidiera contraseña, está todo listo. Windows no tiene ssh-copy-id. En PowerShell, este comando hace lo mismo:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Refuerza SSH

4. Desactiva el acceso con contraseña y el de root

Primero confirma que puedes entrar con el nuevo usuario y tu clave. Después averigua qué archivos definen estos ajustes. Cuando OpenSSH encuentra el mismo ajuste en varios sitios, usa el primer valor que lee. En Debian y Ubuntu, el archivo de configuración principal incluye la carpeta /etc/ssh/sshd_config.d/ justo al principio. Las imágenes de algunos proveedores pueden dejar en esa carpeta un archivo que activa el acceso con contraseña. Aunque escribas no en el archivo principal, el yes de ese archivo sigue en vigor:

sudo grep -rniE "^\s*(PasswordAuthentication|PermitRootLogin|KbdInteractiveAuthentication)" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/

Pon en no cada línea activa de la salida, en el archivo donde aparece: PasswordAuthentication no, PermitRootLogin no, KbdInteractiveAuthentication no. Añade al final de /etc/ssh/sshd_config cualquier ajuste que no aparezca en la salida. Luego prueba, aplica y comprueba los valores que están realmente en vigor:

sudo sshd -t && sudo systemctl reload ssh

sudo sshd -T | grep -E "^(passwordauthentication|permitrootlogin|kbdinteractiveauthentication)"

Las tres líneas deben acabar en no. No cierres tu sesión abierta. Abre un terminal nuevo y asegúrate de que el acceso con clave funciona antes de irte. Si aun así te quedas fuera, abre la consola VNC desde el panel. El acceso por consola no depende de los ajustes de SSH.

Estos ajustes pueden volver atrás sin que lo notes. Acciones en el panel del proveedor, como añadir una clave SSH o restablecer la contraseña, pueden hacer que el script de primer arranque del proveedor (cloud-init) se ejecute de nuevo en el siguiente arranque, y ese script puede volver a activar el acceso con contraseña. Después de cualquier acción así, ejecuta de nuevo el comando sshd -T de arriba y comprueba los valores.

Limita el acceso desde fuera

5. Activa el cortafuegos

En ufw, permite primero SSH y activa el cortafuegos después. Si lo haces al revés, se corta tu conexión. Si SSH usa un puerto distinto del 22, usa ese puerto en lugar del 22:

sudo ufw allow 22/tcp

sudo ufw enable

sudo ufw status verbose

Si vas a ejecutar un servidor web, permite también los puertos 80 y 443. De forma predeterminada, ufw rechaza las conexiones entrantes. El panel también tiene una herramienta de cortafuegos. Si usas Docker, ten cuidado: según la documentación de Docker, los puertos que publicas se saltan las reglas de ufw. Para servicios a los que solo debe llegar el propio servidor, publica el puerto solo en la dirección de loopback, por ejemplo 127.0.0.1:5432:5432 en un archivo de Docker Compose.

6. Instala fail2ban

fail2ban bloquea durante un tiempo las direcciones IP que fallan repetidamente al iniciar sesión:

sudo apt install -y fail2ban python3-systemd

printf '[sshd]\nenabled = true\nbackend = systemd\nmaxretry = 5\nbantime = 1h\n' | sudo tee /etc/fail2ban/jail.local

sudo systemctl enable fail2ban && sudo systemctl restart fail2ban

sudo fail2ban-client status sshd

En los servidores con aplicación de un clic de Seturack, ufw está activado y fail2ban se ejecuta. Si instalaste un sistema operativo limpio, comprueba su estado con sudo ufw status y systemctl is-active fail2ban.

7. Revisa los puertos abiertos

sudo ss -tulpn

El comando lista todos los servicios y puertos en escucha. Los servicios que no necesitan acceso desde fuera, como las bases de datos y las cachés, deben escuchar solo en 127.0.0.1. Apaga lo que no necesites: sudo systemctl disable --now service-name

Mantenerlo así

8. Automatiza las actualizaciones de seguridad

Según la documentación de Ubuntu, el paquete unattended-upgrades suele venir preinstalado y las actualizaciones de seguridad están activadas. Si falta, instálalo y actívalo:

sudo apt install -y unattended-upgrades

sudo dpkg-reconfigure -plow unattended-upgrades

El reinicio automático está desactivado de forma predeterminada, así que reinicia tú mismo el servidor tras las actualizaciones del kernel. Según las condiciones del servicio, mantener el sistema actualizado tras la configuración es responsabilidad tuya.

9. Haz copias de seguridad y prueba una restauración

En Seturack, tu servidor se copia cada noche y se conservan los últimos 7 días. Está incluido en el precio. En la pestaña Gestión, abre Copias de seguridad para verlas, recuperar un solo archivo o restaurar el servidor entero. Para probar una restauración, recupera un solo archivo: restaurar el servidor entero reemplaza todo el disco actual. Hacer un snapshot antes de un cambio grande es un buen hábito, pero un snapshot no es una copia de seguridad. Guarda también una copia de tus datos importantes fuera del servidor. Para más detalles, consulta el artículo sobre las copias diarias.

10. Refuerza tus contraseñas

La cuenta de tu panel es la llave del servidor. Usa ahí una contraseña larga que no uses en ningún otro sitio y guárdala en un gestor de contraseñas. Cambia con sudo passwd root la primera contraseña de root que copiaste del panel. Pon una frase de contraseña a tu clave privada SSH. Nunca pegues contraseñas ni claves en mensajes de soporte ni en chats.

Comentarios0

Todavía no hay comentarios

Sea la primera persona en compartir su opinión.

Participe en la conversación

Inicie sesión o regístrese para dejar un comentario.

No se pierda ningún artículo

Reciba nuestros últimos tutoriales, guías y novedades de productos en su correo.

Se ha suscrito a nuestro boletín.