Hace rato que vengo dándole vueltas a esto, tengo mil scripts que he hecho a lo largo de mi vida trabajando con Linux y se están perdiendo y desactualizando en mi disco duro, así que por fin me animé y a medida que los voy usando para mis tareas cotidianas, los voy subiendo a este Github, los ordené y maquillé y les puse el mismo formato porque eran un desorden (se nota como cambia la mano al scriptear a medida que uno va aprendiendo, hasta me di vergüenza a mi mismo al ver mis primeros scripts ajajaj.), además los actualicé para que sirvan con las distros nuevas y aquí se los comparto. Les presento el repo Linux-Hardening,

⚠️ Advertencia: No existe una máquina 100% segura, nada en el mundo les va a garantizar que un sistema es imposible de hackear, pero todos estos scripts siguen las recomendaciones de CIS y políticas de seguridad y buenas prácticas de más alto nivel y son parte del cumplimiento de certificaciones de seguridad como la ISO 27001. También incluyen todos los modales y buenas costumbres que me enseñó mi abuelita para llevar el nivel de seguridad de tus servidores Linux al infinito y más allá, pero… repito una vez más, nada es garantía de una seguridad absoluta e inviolable.

¿Qué es Linux-Hardening?

Es una colección de scripts en Bash para hacer hardening de seguridad en servidores Linux. Están basados en estándares CIS Benchmarks (y ayudan con la parte técnica de ISO 27001), son 100% open-source y los pueden usar, modificar y romper sin culpa.

Todo el código está acá:
github.com/OrangeBox-Labs/Linux-Hardening


Las dos joyitas del repositorio

1. Hardening SSH que cumple con ssh-audit

El script ssh-hardening.sh no es cualquier cosa. Está basado en las guías oficiales de ssh-audit.com, lo que significa que cumple completamente con las recomendaciones de la herramienta ssh-audit.

¿Qué implica eso?

  • Elimina algoritmos inseguros (como SHA-1, curvas NIST sospechosas)
  • Configura KEX, cifrados y MACs de primera
  • Protege contra ataques como Terrapin, DHEat y fuerza bruta
  • Deshabilita claves RSA cortas (exige mínimo 3072 bits)

En resumen: si pasas ssh-audit contra un servidor con este hardening, no te va a tirar ningún FAIL ni WARN molesto.

⚠️ Advertencia: No olviden bloquear el acceso de root, usen otro usuario para conectarse o habiliten la opción de usar el root, pero sólo con llaves.

2. Verificador CIS Benchmark sin instalación

El script cis-benchmark-check.sh es otra joyita. La gracia es que no necesita instalar nada. Corre con comandos estándar del sistema.

¿Para qué sirve?

  • Ejecuta ~150 tests basados en CIS Benchmark
  • Te muestra en pantalla qué está bien (verde), qué está mal (rojo) y qué es mejorable (amarillo)
  • Te dice EXACTAMENTE cómo arreglar cada problema
  • Genera un archivo de reporte automático

Es ideal para servidores donde no se puede instalar software (ambientes críticos, containers, clientes restrictivos). Lo copias, lo ejecutas y tenés un diagnóstico completo en segundos.


Lista completa de scripts

Script ¿Qué hace?
post-install.sh Ejecutar primero, son los primeros pasos después de instalar un Linux, software basico
bash-hardening.sh historial con fecha, auditoría a syslog, historial por usuario, deshabilita Ctrl+Alt+Del
ssh-hardening.sh Hardening SSH que cumple con ssh-audit (RSA 4096, ED25519, algoritmos seguros)
password-hardening.sh Políticas de contraseñas: longitud, complejidad, lockout, hash SHA-512, reuso
selinux-secure-setup.sh Configura SELinux en modo permisivo (seguro, no bloquea nada, solo aprende)
FS-hardening.sh Particiones separadas y opciones de montaje seguras (noexec, nodev, nosuid)
sudo-hardening.sh Timeout, logging, restricción de comandos y archivo de log propio
auditd-hardening.sh Reglas de auditoría para comandos críticos (sudoers, usuario/grupo, etc.)
kernel-hardening.sh Parámetros de red y sysctl seguros (rp_filter, syncookies, martians log)
network-hardening.sh Hardening de red: deshabilita módulos peligrosos (TIPC, DCCP, SCTP, RDS)
cron-hardening.sh Restringe acceso a cron y at, permisos 640 en cron.allow / at.allow
disable-usb-storage.sh Deshabilita almacenamiento USB (reduce superficie de ataque física)
cpu-hardening.sh Mitigaciones para vulnerabilidades de CPU (Spectre, Meltdown)
rsyslog-hardening.sh Configuración segura de rsyslog y journald (compresión, persistencia, permisos)
remove-xinetd.sh Elimina xinetd y servicios legacy (telnet, rsh, tftp, chargen, etc.)
remove-gui-hardening.sh Elimina paquetes de interfaz gráfica en servidores
desintalar-paquetes-sin-usar.sh Limpieza interactiva de paquetes innecesarios con visualización de dependencias
desintalar-servicios-sin-usar.sh Deshabilitación interactiva de servicios no necesarios
configure-login-banners.sh Configura banners de advertencia legales (/etc/issue, /etc/issue.net, /etc/motd)
configure-time-sync.sh Configura sincronización horaria con chrony
aide-install.sh Instala y configura AIDE (monitor de integridad de archivos)
generate-iptables-rules.sh Genera reglas de firewall iptables según servicios expuestos
audit-listening-services.sh Auditoría de servicios en escucha (puertos abiertos)
cis-benchmark-check.sh Verificador de cumplimiento CIS Benchmark (NO necesita instalación)
ssh-hardening-complete.sh Hardening SSH completo basado en ssh-audit (detecta la distro automáticamente)
grub-hardening.sh Contraseña de bootloader y parámetros de seguridad del kernel (audit=1, etc.)

¿Cómo se usa?

git clone https://github.com/OrangeBox-Labs/Linux-Hardening.git
cd Linux-Hardening
chmod +x *.sh

Modo verificación (no cambia nada, solo muestra lo que hay que corregir):

./ssh-hardening.sh

Modo aplicación (hace los cambios):

./ssh-hardening.sh --fix

Todos los scripts crean backups automáticos en /root/ con fecha y hora. Si algo sale mal, se vuelve sin problema.


¿Para quién es esto?

  • Sysadmins que quieren asegurar servidores RHEL, CentOS, Rocky o AlmaLinux
  • PyMEs que no tienen presupuesto para herramientas comerciales
  • Estudiantes que quieren aprender hardening viendo código real
  • Auditores que necesitan verificar cumplimiento sin instalar nada
  • Cualquiera que tenga un Linux en producción y quiera dormir más tranquilo

¿Qué viene después?

Vamos a seguir agregando:

  • Scripts para Zabbix (configuración del server, agentes, proxies,etc.) https://github.com/OrangeBox-Labs/Zabbix
  • Scripts para VMware (configuración segura del hypervisor)
  • Para cloud (AWS, GCP con hardening específico)
  • Para Kubernetes (seguridad en pods, namespaces, RBAC)
  • Seguridad perimetral (firewalls, proxies, IDS/IPS)
  • Automatización (playbooks de Ansible, pipelines CI/CD)

¿Quieres pedir un script?

¿Tienes una necesidad puntual? ¿Algún servicio mal documentado? ¿Un dolor de cabeza recurrente?

Pídelo. Deja un comentario en el canal de YouTube o abre un issue en GitHub. Si es útil para varios, lo hacemos.


Recursos relacionados

  • Blog técnico — Artículos de hardening y buenas prácticas
  • YouTube — Ataques reales y defensas paso a paso
  • GitHub — Todo el código abierto

Si llegaste hasta acá, ya eres parte de la comunidad. Comparte el repo, úsalo, rómpelo, mejóralo. Entre más seamos, más seguro (y divertido) es el camino.

— Felipe Román
www.orangebox.cl