v0.2.0 • Script Bash Open Source para Debian & Ubuntu

De VPS en blanco a servidor blindado en 60 segundos.

hpsr.sh es el asistente interactivo en Bash que aplica un bootstrap técnico sólido en servidores recién creados: usuario administrativo no-root, SSH por llave criptográfica, firewall UFW default-deny, Fail2ban y parches automáticos sin la fricción pesada de Ansible ni los descuidos del setup manual.

curl -fsSL https://sh.hpsr.dev/setup.sh | bash

Pega este comando en tu terminal como root para iniciar el asistente interactivo:

0 dependencias fuera de Bash estándar. No se aplican cambios hasta tu confirmación explícita.

< 60s Puesta a punto guiada
0 deps Solo Bash nativo y apt
6 capas Hardening automatizado
100% Audit Logs, backups y reporte
Listo para proveedores cloud y hardware bare-metal:
Debian 11 & 12Ubuntu 20, 22 & 24 LTSDigitalOceanHetzner CloudAWS EC2VultrLinode / AkamaiProxmox VE
HARDENING BLUEPRINT

Las 6 capas de seguridad que hpsr.sh aplica en tu máquina

Cada decisión está calculada para neutralizar los vectores de ataque más comunes en servidores expuestos a Internet sin romper la ergonomía de desarrollo.

CAPA 01 · IDENTIDAD 01

Usuario administrativo & sudo aislado

Crea un nuevo usuario administrativo dedicado con shell limpia, membresía en sudoers y directorio ~/.ssh configurado con permisos estrictos (700 en carpeta, 600 en llaves).

Elimina el uso diario de root y establece un principio de mínimo privilegio desde el minuto cero.
CAPA 02 · ACCESO 02

Hardening SSH asimétrico & puerto custom

Deshabilita PermitRootLogin y PasswordAuthentication. Instala llaves Ed25519 con comentarios administrados por hpsr.sh, valida sshd_config con sshd -t antes de recargar y mueve el puerto estándar a 666 (o el que tú elijas).

Elimina el 99% del ruido generado por escáneres masivos al puerto 22 y bloquea ataques de contraseña.
CAPA 03 · RED 03

Firewall UFW con política Default Deny

Activa el firewall del kernel con política default deny incoming y allow outgoing. Abre de forma estricta únicamente tu nuevo puerto SSH y los puertos web estándar (80/tcp y 443/tcp), permitiendo añadir puertos adicionales en el asistente.

Cierra cualquier puerto residual o servicio interno que pudiera quedar expuesto a la red pública.
CAPA 04 · DEFENSA 04

Fail2ban Anti-Fuerza Bruta para SSH

Instala y aprovisiona Fail2ban con una cárcel SSH ajustada a parámetros pragmáticos: 1 hora de ban tras 5 intentos fallidos dentro de una ventana de 10 minutos (findtime: 10m, bantime: 1h, maxretry: 5).

Neutraliza ataques de diccionario continuos y bots que intenten adivinar llaves o nombres de usuario.
CAPA 05 · MANTENIMIENTO 05

Parches automáticos con Unattended-Upgrades

Configura unattended-upgrades para que Debian o Ubuntu descargue e instale parches de seguridad críticos del kernel y librerías base de forma desatendida y segura sin reinicios destructivos.

Protección continua frente a CVEs de día cero sin requerir que entres por SSH a correr apt upgrade a diario.
CAPA 06 · AUDITORÍA 06

Trazabilidad total, backup de sshd y reporte Resend

Genera backup timestamped de sshd_config antes de editarlo, un log detallado de cada comando ejecutado, un reporte final en Markdown, paquete cifrado de credenciales y envío opcional por correo vía Resend.

Sabes con exactitud quirúrgica qué cambió, tienes backup para rollback y conservas tus credenciales a salvo.
TABLA COMPARATIVA

¿Por qué hpsr.sh frente a otras alternativas?

Ni la fragilidad del trabajo manual a ciegas, ni el sobrecoste operacional de orquestadores corporativos para servidores individuales.

Criterio Setup manual a mano RECOMENDADO hpsr.sh Ansible / CIS Benchmark
Tiempo promedio de setup 30 a 60 minutos 2 a 4 horas (crear/ajustar playbooks)
Dependencias requeridas Ninguna (comandos sueltos) Python, Ansible, nodo de control, SSH Agent
Curva de aprendizaje Media (recordar flags y sintaxis) Alta (YAML, roles, inventarios, vault)
Prevención de bloqueo SSH Nula (fácil cometer typo y perder acceso) Requiere pruebas en staging previo
Firewall + Fail2ban integrados Paso manual frecuentemente olvidado Requiere escribir tareas y handlers
Backups y auditoría de cambios Inexistente en la mayoría de casos Depende de la calidad del playbook
SIMULACIÓN INTERACTIVA

Un flujo en consola claro, interactivo y predecible

Sin magia negra ni archivos ocultos. hpsr.sh te muestra un snapshot del sistema, te permite seleccionar tus opciones paso a paso y te pide confirmación explícita antes de ejecutar ningún cambio.

root@ubuntu:~ — hpsr.sh v0.2.0
SIMULACIÓN ACTIVA BASH 5.2 · DEBIAN/UBUNTU
POST-SETUP CHEATSHEET

Comandos para auditar tu servidor recién blindado

Una vez completada la ejecución, puedes verificar en 10 segundos el estado del firewall, las cárceles de Fail2ban y tu nueva sesión SSH:

01

1. Verificar estado y reglas del firewall UFW

sudo ufw status verbose

Comprueba que el estado sea "active", default deny incoming y solo los puertos autorizados (SSH custom, 80, 443).

02

2. Verificar la cárcel activa de Fail2ban en SSH

sudo fail2ban-client status sshd

Revisa cuántas IPs han sido bloqueadas y el estado del filtro en tiempo real.

03

3. Probar conexión en una nueva terminal antes de salir

ssh -p 666 -i ~/.ssh/tu_llave adminops@TU_IP

Verifica el acceso con tu nuevo usuario y puerto antes de cerrar la sesión original de root.

04

4. Comprobar servicio de parches automáticos

sudo systemctl status unattended-upgrades

Confirma que el servicio de seguridad desatendida esté corriendo activamente en segundo plano.

PREGUNTAS FRECUENTES

Todo lo que necesitas saber antes de ejecutarlo

Respuestas técnicas y transparentes a las dudas más comunes sobre el funcionamiento interno de hpsr.sh.

¿Qué pasa si cometo un error y pierdo acceso al servidor?

hpsr.sh valida la sintaxis completa de la configuración de OpenSSH con el comando `sshd -t` antes de reiniciar o recargar cualquier servicio. Además, el script insiste en que abras una nueva pestaña de terminal para probar la conexión con tu nuevo usuario y llave antes de cerrar la sesión root activa. Si algo no conecta, tu sesión actual sigue abierta.

¿Por qué sugiere cambiar el puerto SSH al 666 por defecto?

Cambiar el puerto estándar no es una medida criptográfica, pero es una excelente técnica de reducción de ruido: elimina más del 98% de los escaneos automatizados y bots que bombardean el puerto 22 continuamente en Internet. Si prefieres otro puerto o mantener el 22, el asistente te permite escribir cualquier valor que desees.

¿Funciona en servidores que ya tienen Docker o aplicaciones corriendo?

hpsr.sh está pensado y optimizado principalmente para servidores nuevos o recién restaurados (entornos Greenfield). Si ya tienes Docker instalado, UFW puede interferir con las cadenas de iptables que Docker manipula automáticamente. Recomendamos ejecutar hpsr.sh como primer paso en un servidor limpio antes de desplegar tus contenedores.

¿Dónde se guardan las llaves SSH y cómo se transfieren?

Si eliges que hpsr.sh genere un par de llaves Ed25519 en el servidor, la llave pública se agrega a authorized_keys dentro de un bloque claramente administrado por el script. La llave privada se imprime en consola con aviso de confirmación y puede empaquetarse en un zip encriptado o enviarse a tu correo con Resend. Los temporales sensibles se eliminan al finalizar.

¿Requiere conexión permanente o instalar agentes en segundo plano?

No. hpsr.sh no instala demonios propietarios, agentes de telemetría ni software de terceros. Solo instala paquetes oficiales de los repositorios de Debian/Ubuntu mediante apt (ufw, fail2ban, unattended-upgrades, curl, zip). Una vez terminado, el script no queda corriendo en memoria.

¿Cómo puedo inspeccionar el código antes de ejecutarlo?

El código de hpsr.sh es 100% abierto, transparente y auditable. Puedes ver el archivo completo ejecutando `curl -fsSL https://sh.hpsr.dev/setup.sh | less` o revisando el repositorio en GitHub en https://github.com/hopsersmerk/hpsr.sh.

Deja de improvisar el setup de tus servidores.

Un solo comando te separa de un servidor Debian o Ubuntu con acceso seguro, firewall activo y parches automáticos desde el minuto uno.

curl -fsSL https://sh.hpsr.dev/setup.sh | bash