Volver al blog
VPS e Infraestructura2026-10-01

VPS administrado: primeros comandos en un VPS KVM

VPS administrado con KVM: confirme la virtualización, cree el usuario con clave SSH, cierre root y active firewall, fail2ban y actualizaciones.

Un VPS administrado con KVM es una máquina virtual con kernel propio y CPU, memoria y disco aislados de los vecinos, con el setup de seguridad hecho antes de que entre la aplicación. Quien recibe acceso root todavía tiene que validar el entorno y cerrar SSH. Estos son los primeros comandos, en Ubuntu 22.04 o 24.04.

La comparación con el hosting compartido está en VPS administrado o compartido. El plan con ese setup hecho por ingeniería está en VPS KVM.

1. Confirmar que el hipervisor es KVM

systemd-detect-virt
free -h
nproc
lsblk

systemd-detect-virt debe imprimir kvm. free -h y nproc muestran la RAM y las vCPU del plan. lsblk lista el disco. Si el comando imprime openvz o lxc, el servidor no tiene kernel propio y varios pasos de abajo no aplican.

2. Actualizar y crear el usuario de operación

Entre como root solo en esta primera sesión.

apt update && apt upgrade -y
adduser deploy
usermod -aG sudo deploy

En su equipo, genere una clave si todavía no existe y cópiela al servidor:

ssh-keygen -t ed25519 -C "deploy@empresa"
ssh-copy-id deploy@IP_DEL_VPS

Abra una segunda terminal y confirme que ssh deploy@IP_DEL_VPS entra sin contraseña. Solo entonces siga. Cerrar root antes de esa prueba bloquea el servidor.

3. Desactivar el login de root y la contraseña

sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sshd -t && sudo systemctl reload ssh

sshd -t valida el archivo. Si reporta un error, no recargue el servicio. Mantenga la sesión actual abierta y pruebe la clave en otra terminal.

4. Firewall, fail2ban y actualización automática

sudo apt install -y ufw fail2ban unattended-upgrades
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

El jail de SSH en Ubuntu no viene activado. Cree /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
bantime = 1h
sudo systemctl enable --now fail2ban
printf 'APT::Periodic::Update-Package-Lists "1";\nAPT::Periodic::Unattended-Upgrade "1";\n' | sudo tee /etc/apt/apt.conf.d/20auto-upgrades
sudo systemctl enable --now unattended-upgrades
sudo timedatectl set-timezone America/Sao_Paulo

ufw status tiene que mostrar la regla de OpenSSH como ALLOW. Sin ella, el siguiente login no entra.

5. Qué revisar antes de subir la aplicación

df -h
timedatectl
sudo fail2ban-client status sshd

Disco con margen, zona horaria correcta y el jail sshd activo. La aplicación viene después: usuario de servicio sin sudo, puerto de la app detrás de Nginx y copia de seguridad fuera de esta máquina. El monitoreo de CPU y disco está en Grafana en un VPS.

Conclusión

Estos comandos dejan el VPS KVM con un usuario, una clave, firewall y actualización de seguridad. Es el mínimo antes de publicar cualquier sitio. En un VPS gestionado ese primer día ya sale hecho, y el equipo sigue con root para la aplicación.

Servidor VPS KVM gestionado

ExpertCore levanta y administra el VPS: KVM aislado, copias de seguridad y soporte de ingeniería.

Ver planes de VPS