La mascota oso polar de NordBastion en una fragua de piedra nórdica soldando placas de armadura y candados de latón en una pequeña torre de servidor sobre un yunque, glifos protectores cian envolviendo su base, resplandor ámbar del hogar de la fragua y chispas de soldadura ámbar
Cómo hacerlo · Lista de verificación·10 min de lectura · 60 min prácticos

Hardening del VPS — la lista de comprobación OPSEC de la primera hora.
Ocho pasos. Ejecute esto en cada servidor nuevo.

La lista de comprobación universal previa al lanzamiento antes de que cualquier carga de trabajo vaya a un VPS nuevo. Solo clave SSH, puerto personalizado, cortafuegos, actualizaciones automáticas, fail2ban, instantánea, recuperación documentada. Probado en Debian 12 / Ubuntu 22-24 / Alpine.

Los ocho pasos
  1. 01

    SSH key auth

  2. 02

    Disable root + change port

  3. 03

    Firewall baseline

  4. 04

    Unattended-upgrades

  5. 05

    Fail2ban

  6. 06

    Time + swap

  7. 07

    Baseline snapshot

  8. 08

    Recovery doc

Paso 01-02 · SSH

Claves, no contraseñas. Puerto personalizado, no el 22.

En su portátil, genere un par de claves ed25519 (más pequeño, más rápido, moderno):

ssh-keygen -t ed25519 -C "you@laptop"
ssh-copy-id -p 22 root@<vps-ip>
ssh root@<vps-ip>     # should now work without password

En el VPS, edite /etc/ssh/sshd_config:

Port 54871                  # pick a random number 1024-65535
PermitRootLogin no          # use a non-root user with sudo
PasswordAuthentication no   # keys only
PubkeyAuthentication yes

Cree primero un usuario sudo sin privilegios de root (adduser bear; usermod -aG sudo bear; ssh-copy-id -p 22 bear@vps), pruebe el inicio de sesión, y LUEGO reinicie sshd: systemctl restart sshd. Si se bloquea el acceso, la consola del panel le proporciona acceso al shell sin SSH.

Paso 03 · Cortafuegos

Denegar entrante por defecto. Añada a la lista permitida lo que necesite.

apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 54871/tcp      # custom SSH port
ufw allow 80/tcp         # if running a web service
ufw allow 443/tcp        # if running TLS
ufw enable
ufw status verbose

Replique el mismo conjunto de reglas en el cortafuegos de nivel de bastión de NordBastion a través del panel (Red → Cortafuegos). El cortafuegos del bastión bloquea antes de que el paquete llegue al VPS, ahorrando CPU en el escaneo volumétrico. Defensa en profundidad.

Paso 04-05 · Actualizaciones automáticas + fail2ban

Dos paquetes, cinco minutos, impacto real.

apt install -y unattended-upgrades fail2ban
dpkg-reconfigure -plow unattended-upgrades   # accept defaults
systemctl enable --now fail2ban
fail2ban-client status                       # shows sshd jail

Unattended-upgrades aplica parches de seguridad automáticamente; fail2ban bloquea las IP que fallen 5 intentos de autenticación en 10 minutos durante 1 hora. Ninguno requiere configuración adicional para el caso de uso base — ambos son valores predeterminados agresivos que funcionan para todos.

Paso 06 · Hora + swap

Establezca la zona horaria UTC. Añada un swapfile.

timedatectl set-timezone UTC

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab
free -h                                       # confirm swap is active

UTC en el servidor simplifica la correlación de registros entre bastiones y clientes en cualquier zona horaria. Un archivo de intercambio de 2-4 GB protege contra picos de OOM-kill; en los niveles pequeños importa, en los niveles grandes es un seguro económico.

Paso 07-08 · Instantánea + documento de recuperación

Capture el estado limpio. Anote la ruta de recuperación.

Instantánea. En el panel: Servidores → su servidor → Instantáneas → Crear. Nómbrela baseline-hardened-YYYY-MM-DD. Las instantáneas de NordBastion son externas al host, cifradas y se realizan en segundos. Puede restaurar en aproximadamente 90 segundos — su yo futuro se lo agradecerá la primera vez que una actualización salga mal.

Documento de recuperación. En papel o en un gestor de contraseñas, anote:

  • Correo electrónico de cuenta NordBastion + (mnemónico de contraseña, no la contraseña en sí)
  • Dónde reside su clave privada SSH en el portátil
  • El número de puerto SSH personalizado
  • El nombre de usuario sudo sin privilegios de root en el VPS
  • El nombre de la instantánea base a la que restaurar
  • Una nota: «la consola del panel funciona sin SSH — úsela para recuperación de bloqueo»

OPSEC es la disciplina de escribir las cosas hoy para que el usted futuro pueda recuperarse cuando el usted actual haya olvidado. La forja se cierra cuando el documento está completo.

FAQ · Bastionado

Preguntas, respondidas.

Ocho preguntas que un cliente VPS por primera vez hace al ejecutar la lista de verificación.

¿La autenticación con clave SSH es realmente más segura que una contraseña sólida?

Sí, con amplia diferencia. Una contraseña — incluso una aleatoria de 16 caracteres — es susceptible de ataque por fuerza bruta en algún modelo de amenaza realista; una clave SSH ed25519 tiene 256 bits de entropía y no lo es. Una clave también está ligada al dispositivo en el que reside, por lo que un atacante necesita tanto el archivo de clave COMO la frase de contraseña que lo descifra. Deshabilite PasswordAuthentication completamente en sshd_config y la superficie de ataque por fuerza bruta queda en cero.

¿Cambiar el puerto SSH del 22 a uno aleatorio realmente ayuda?

No detiene a un atacante determinado — escaneará los 65.535 puertos. SÍ reduce el volumen de ruido automatizado de bots que solo intentan el puerto 22, lo que significa registros más limpios y fail2ban con menos estrés. Elija un puerto aleatorio entre 1024 y 65535, anótelo en algún lugar que no perderá, actualice el cortafuegos para permitirlo. Ganancia neta: aproximadamente un 90% menos de ruido en los registros.

UFW o nftables — ¿cuál elegir?

UFW para quien está aprendiendo o gestiona un único VPS — es un envoltorio amigable, la sintaxis es legible por humanos y se sitúa sobre iptables o nftables por debajo. nftables directamente si desea una composición de reglas más estricta, conjuntos anónimos, o gestiona más de unos pocos servidores y quiere consistencia. Ambos producen el mismo resultado a nivel de kernel.

¿Debo ejecutar unattended-upgrades también para el kernel?

Los parches de seguridad sí — corrigen CVEs críticos y la alternativa es dejarlos abiertos. Las actualizaciones completas de paquetes del kernel son más arriesgadas porque necesitan un reinicio para surtir efecto; unattended-upgrades no reiniciará por usted por defecto. Lea /etc/apt/apt.conf.d/50unattended-upgrades y decida: la mayoría de los clientes de NordBastion dejan la configuración desatendida en «solo seguridad» y reinician manualmente cada mes en una ventana tranquila.

¿Es necesario fail2ban si ya deshabilito la autenticación por contraseña?

Estrictamente necesario, no — una vez desactivada la autenticación por contraseña, el ataque por fuerza bruta sobre SSH no puede tener éxito. Fail2ban sigue siendo útil para otros servicios (correo, páginas de inicio de sesión de aplicaciones web, cualquier cosa con una capa de credenciales). Seguro económico: apt install fail2ban, acepte los valores predeterminados y siga adelante. Los 30 segundos que tarda en instalarse merecen los registros más limpios y la protección adicional de servicios que proporciona.

¿Qué hay del cifrado completo del disco?

No es parte de la primera hora — el cifrado de disco completo con clave en manos del usuario requiere o bien una instalación ISO personalizada (montar LUKS en el arranque con una frase de contraseña que alguien tiene que escribir) o la próxima opción de LUKS-on-provision de NordBastion (hoja de ruta del panel). Por ahora, trate el disco como legible por NordBastion (en el improbable caso de una citación judicial) y trate la protección jurisdiccional de NordBastion como la capa que lo mantiene seguro. Si su modelo de amenaza requiere FDE antes del lanzamiento, instale Debian a través del ISO de rescate en un volumen raíz LUKS y desbloquee a través de la consola del panel en cada arranque — viable pero un cambio significativo en la carga operativa.

¿Con qué frecuencia debo tomar instantáneas?

Tres cadencias útiles. (1) Antes de cada cambio significativo (actualización de paquetes, edición de configuración, actualización del SO). (2) Con una planificación — una vez a la semana es un valor predeterminado razonable para cualquier carga de trabajo en producción. (3) Antes de cada ejercicio de verificación de copia de seguridad, para poder demostrar que la restauración funciona. Las instantáneas de NordBastion son externas al host y están cifradas; no consumen el disco de su VPS y pueden restaurarse en aproximadamente 90 segundos.

¿Debo monitorizar el VPS y cómo?

Para la primera hora: todavía no — termine el bastionado, ponga en marcha la carga de trabajo, luego añada monitoreo una vez que tenga algo que valga la pena monitorear. Opciones ligeras: node_exporter + Prometheus + Grafana en un segundo VPS pequeño, Netdata como panel de control autoalojado de un solo binario, o más sencillo aún, un verificador de tiempo de actividad externo de nivel gratuito (UptimeRobot, BetterStack) que haga ping a los puertos públicos. Elija uno, configúrelo y olvídese — el monitoreo es más útil cuando permanece silencioso.

Siguiente

Servidor endurecido. Ahora construya algo sobre él.

Última revisión · 2026-05-20 · Probado · Debian 12 · Ubuntu 22.04 / 24.04 · Alpine 3.19+