Ghost AcademySecLearn// Seguridad Informática
🔒 Security Hardening · Debian / Ubuntu · 29 pasos · Nivel empresarial
Linux Security
Hardening Script
// Endurecimiento automático y completo para Debian y Ubuntu

Script de hardening listo para producción. Implementa automáticamente las mejores prácticas de seguridad, crea usuarios administradores seguros y configura herramientas de monitoreo empresarial en 29 pasos — sin interacción del usuario.

SSH hardening · Fail2Ban · sysctl AIDE · RKHunter · Lynis · auditd PAM · sudo · timeouts · banners SYN cookies · IPv6 · filtrado inverso 29 pasos · VPS-Safe · rollback SSH
🛡️
Linux Security Hardening Script
Script de endurecimiento completo y listo para producción para sistemas Debian/Ubuntu. Implementa automáticamente las mejores prácticas de seguridad, crea usuarios administradores seguros y configura herramientas de monitoreo de nivel empresarial.

Perfecto para servidores, estaciones de trabajo y máquinas virtuales. Trabaja de forma interactiva o totalmente automatizada según las necesidades.

29 pasos de hardening · Cada paso documentado en el log · Zero Dependencies
🐙
github.com/Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script
debian-ubuntu-hardening-script.sh · Repositorio oficial
⭐
10 Características Clave
Diseñado para ser seguro, reversible y agnóstico al entorno — funciona tanto en VPS como en máquinas virtuales locales.
🤖
Totalmente automatizado
Se ejecuta sin interacción del usuario (modo opcional).
👤
Creación automática de usuario
Crea un administrador seguro con nombre de usuario aleatorio.
🔒
Endurecimiento integral
29 pasos de hardening de seguridad cubriendo todas las capas.
🔍
Escaneo de seguridad
Integra Lynis, RKHunter y AIDE para detección continua.
📝
Registro detallado
Cada acción queda documentada en el log del sistema.
🔄
Seguro para volver a correr
Puede ejecutarse varias veces sin efectos adversos (idempotente).
🖥️
VPS-Safe
Prueba las cuentas antes de deshabilitar root para evitar bloqueos.
↩️
Rollback automático
Revierte la configuración de SSH si detecta errores de configuración.
📦
Zero Dependencies
Solo utiliza herramientas integradas del sistema.
📡
Works Offline
No se requiere Internet después de la instalación inicial de paquetes.
🔐
Seguridad del Sistema
Configuraciones que afectan al núcleo del sistema operativo, SSH, firewall y permisos de archivos críticos.
🔑 SSH Hardening
Deshabilitar inicio de sesión root por SSH
Autenticación de solo clave pública (deshabilita contraseña)
Restricciones de puerto y configuraciones avanzadas
🔥 Firewall
Fail2Ban — protección automática contra fuerza bruta SSH
Bloqueo de IPs con demasiados intentos fallidos de autenticación
⚙️ Kernel (sysctl)
Endurecimiento de parámetros del núcleo via sysctl
Prevención de volcado de núcleo (core dump)
📁 Permisos y Cuentas
Archivos sensibles protegidos con permisos mínimos
Políticas de envejecimiento de contraseñas
Requisitos de calidad de contraseña
Deshabilitar servicios y protocolos innecesarios
Restricciones de acceso del compilador
🔍
Monitoreo y Detección
Integración de herramientas de detección de intrusiones y auditoría para visibilidad continua del sistema.
🔏 AIDE — File Integrity
Monitorización de integridad de archivos con hashes criptográficos
Detecta modificaciones no autorizadas en archivos del sistema
🐛 RKHunter — Rootkits
Detección de rootkits, backdoors y exploits locales
Comparación de hashes de binarios del sistema contra base de datos conocida
📋 Auditd — Auditoría
Auditoría del sistema con reglas integrales
Registro de llamadas al sistema, accesos a archivos y cambios de privilegios
🔎 Lynis + Extras
Lynis — escaneo de seguridad y auditoría del sistema
Contabilidad de procesos (process accounting)
Monitorización y rotación de registros
👤
Control de Acceso
Configuración de PAM, políticas de sudo, restricciones de sesión y banners legales.
🔑 PAM
Calidad de contraseña — requisitos mínimos de complejidad
Historial de contraseñas — impide reutilización de contraseñas antiguas
⚡ sudo y su
Restricciones de grupo sudo — solo usuarios autorizados
Restricciones del comando su (grupo de ruedas/wheel)
⏱️ Sesiones y Banners
Tiempos de espera de sesión — cierre automático por inactividad
Banners legales en login (advertencia de acceso no autorizado)
🌐
Seguridad de la Red
Configuraciones de sysctl que endurecen la pila de red del kernel para prevenir ataques de red comunes.
🛡️ Protección TCP/IP
SYN Cookies — protección contra ataques de inundación SYN (DoS)
IP Forwarding desactivado — evita que el host actúe como router
Filtrado de ruta inversa — previene IP spoofing
📡 ICMP y Enrutamiento
Redirecciones ICMP deshabilitadas — previene ataques de routing
Enrutamiento de origen desactivado — impide source routing attacks
Endurecimiento IPv6 — configuración segura del stack IPv6
📋
Requisitos Previos
Verifica estos requisitos antes de ejecutar el script, especialmente en entornos VPS remotos.
💻 Sistema
OS: Debian 10+ o Ubuntu 18.04+
Usuario: Acceso root (sudo)
Disco: ~500 MB libres para logs y paquetes
🖥️ VPS remoto
SSH keys configuradas para root (obligatorio)
Sesión abierta durante las pruebas
Sin flag especial — verificación completa
🔵 VM local / Workstation
Sin requisitos especiales de SSH
Usar flag --local-vm
Omite la verificación de claves SSH
⚠️ En VPS: El paso 1 del script deshabilita la autenticación con contraseña para root por SSH. Si no tienes SSH keys configuradas en el servidor remoto, te bloquearás fuera del servidor. Configura siempre las claves SSH antes de ejecutar en producción.
⚙️
Instalación y Ejecución
Clona el repositorio, da permisos de ejecución y lanza el script con sudo.
bash — instalación y ejecución
# 1. Instalar git si no está disponible
sudo apt install git -y

# 2. Clonar el repositorio
git clone https://github.com/Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script.git
cd Debian-Ubuntu-Security-Hardening-Script

# 3. Dar permisos de ejecución
chmod +x debian-ubuntu-hardening-script.sh

# 4. Ejecutar el script (en VPS con SSH keys configuradas)
sudo ./debian-ubuntu-hardening-script.sh
🔵
Flag --local-vm — Para VirtualBox y VMs Locales
Si estás en un entorno de prueba local (VirtualBox, VMware, etc.), usa esta bandera para saltarte la verificación obligatoria de claves SSH.
⚑ ¿Por qué necesitas --local-vm?
El paso 1 de 29 deshabilita la autenticación con contraseña para root por SSH. En un VPS remoto sin SSH keys configuradas, esto bloquea el acceso al servidor. En una VirtualBox o VM local, puedes saltarte esta verificación de forma segura usando el flag --local-vm.
sudo ./debian-ubuntu-hardening-script.sh --local-vm
bash — ejecución en VirtualBox / VM local
# Para VirtualBox, VMware u otras VMs locales
# --local-vm omite la verificación de SSH keys para root
# y procede con los 28 pasos de endurecimiento restantes
sudo ./debian-ubuntu-hardening-script.sh --local-vm
Script de hardening ejecutándose con --local-vm mostrando el progreso de los pasos
Ejecución del script con --local-vm — progreso de los pasos de endurecimiento
✅ Resultado: Con --local-vm el script asume que no necesitas SSH keys para root y procede con los 28 pasos de endurecimiento restantes, aplicando todas las configuraciones de seguridad de forma segura en el entorno local.
📌 Resumen de flags: Sin flag = modo VPS (requiere SSH keys configuradas). Con --local-vm = modo local/VM (salta verificación SSH). El script siempre hace rollback automático si detecta un error en la configuración de SSH para no dejarte bloqueado.