Seguridad

Tus primeros 15 minutos con un servidor nuevo: una lista de verificación de seguridad

Un VDS recién creado queda expuesto al mundo con inicio de sesión de root mediante contraseña. Repasemos el conjunto mínimo de pasos que cierra el 90 % de los ataques automatizados, sin configuraciones complejas ni agentes de terceros.

Cuando solicitas un VDS en Cybeward, la máquina se crea en un par de minutos y queda accesible de inmediato por SSH. Eso es cómodo y, al mismo tiempo, el momento de mayor riesgo: los bots escanean el puerto 22 de forma continua y empiezan a adivinar la contraseña de root en los primeros minutos. La buena noticia es que puedes cerrar los principales vectores de ataque en una sola sesión.

Todos los comandos que siguen se ejecutan en un sistema Ubuntu/Debian recién instalado. Para otras distribuciones, solo cambian el gestor de paquetes y el nombre del servicio del cortafuegos.

1. Claves SSH en lugar de contraseña

La autenticación por contraseña es el objetivo principal de los ataques de fuerza bruta. Reemplázala por claves. En tu propia máquina, genera un par (si aún no tienes uno) y copia la clave pública al servidor:

 terminal local
# crea una clave (Ed25519 — rápida y confiable)
$ ssh-keygen -t ed25519 -C "me@cybeward"

# copia la clave pública al servidor
$ ssh-copy-id root@203.0.113.10

Ahora deshabilita el inicio de sesión por contraseña. Abre /etc/ssh/sshd_config y configura:

 /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes

Reinicia el servicio con systemctl restart ssh. No cierres tu sesión actual hasta que hayas verificado el inicio de sesión en una ventana nueva; de lo contrario corres el riesgo de quedar fuera.

Consejo. Mantén una sesión SSH paralela abierta y toma un snapshot antes de los cambios; en Cybeward puedes revertir con un solo clic.

2. Un usuario aparte en lugar de root

Hacer el trabajo diario como root es peligroso: cualquier error o proceso comprometido obtiene acceso total. Crea un usuario normal con privilegios de sudo:

 en el servidor
$ adduser deploy
$ usermod -aG sudo deploy
# traslada la clave para que inicies sesión como el nuevo usuario de inmediato
$ rsync --archive ~/.ssh /home/deploy/ && chown -R deploy: /home/deploy/.ssh

3. Cortafuegos: abre solo lo que necesitas

Por defecto, puede haber más servicios de los necesarios mirando hacia afuera. Activa ufw y deja solo SSH, HTTP y HTTPS:

 en el servidor
$ ufw default deny incoming
$ ufw default allow outgoing
$ ufw allow OpenSSH
$ ufw allow 80,443/tcp
$ ufw enable

Un buen cortafuegos es una lista de lo que está permitido, no una lista de lo que está prohibido.

La protección DDoS de base de Cybeward, de hasta 10 Gbit/s en la red, actúa antes de que el tráfico llegue siquiera a tu ufw; pero el filtro en el propio servidor sigue siendo tu segunda línea de defensa.

Cómo comprobar qué se ve desde afuera

Compara la expectativa con la realidad: escanea la máquina desde el exterior:

Fig. 1. Ejemplo de verificación del cortafuegos que muestra solo los puertos 22/80/443 abiertos.

4. Actualizaciones de seguridad automáticas

La mayoría de las brechas explotan vulnerabilidades conocidas desde hace tiempo. Activa la instalación automática de actualizaciones de seguridad:

 en el servidor
$ apt install unattended-upgrades
$ dpkg-reconfigure --priority=low unattended-upgrades

Lista de verificación final

Si todo te tomó unos quince minutos, lo hiciste bien. Antes de instalar tu aplicación, asegúrate de que cada punto esté cubierto:

A partir de aquí puedes desplegar tu stack con tranquilidad. Las copias de seguridad y los snapshots merecen su propia guía.

#security#ssh#vds

Andrés Rojas

SRE en Cybeward. Construye infraestructura en Santiago y escribe sobre cómo mantener los servidores seguros sin magia innecesaria.

Sigue leyendo

Útil, una vez al mes

Nuevas guías y notas honestas sobre hosting. Cancela cuando quieras.