Ghost AcademySecLearn// Seguridad Informática
🔒 Linux · Hardening · Seguridad del Sistema
Bastille Linux

Herramienta de endurecimiento (hardening) de sistemas Unix/Linux. Desactiva servicios innecesarios, aplica configuraciones seguras y verifica permisos de archivos mediante un asistente interactivo guiado.

hardeningSUIDpermisos firewallbastille -rLynis apt install bastilleGitHub

¿Qué es Bastille Linux?

Bastille Linux es una herramienta de endurecimiento (hardening) de sistemas operativos Unix/Linux. Su objetivo es mejorar la seguridad del sistema desactivando servicios innecesarios, aplicando configuraciones seguras y verificando permisos de archivos.

A diferencia de las herramientas de auditoría, Bastille hace cambios directos en el sistema para hacerlo más seguro. Opera mediante un asistente interactivo que guía al administrador sección por sección, explicando cada decisión antes de aplicarla.

⚠️ Versiones: Bastille está diseñado para versiones antiguas de sistemas Linux/Unix. Para sistemas modernos (Ubuntu 22.04+, Debian 12+) se recomienda usar Lynis como alternativa actualizada.

Características principales

  • Hardening directo: Aplica cambios de configuración reales al sistema, no solo reporta problemas.
  • Asistente interactivo: Guía al administrador con explicaciones detalladas de cada cambio propuesto.
  • Copia de seguridad automática: Antes de modificar cualquier archivo, guarda una copia de respaldo para poder revertir.
  • Reversión integrada: El comando bastille -r revierte los últimos cambios aplicados.
  • Cobertura amplia: Permisos, cuentas de usuario, dispositivos, sistema de archivos, logs y red/firewall.

Bastille vs Lynis

Comprender la diferencia entre estas dos herramientas ayuda a elegir la correcta según el objetivo.

🔒 Bastille Linux
TipoHardening activo
AcciónAplica cambios directamente al sistema
ModoAsistente interactivo pregunta a pregunta
ReversiónSí — bastille -r
SistemasVersiones antiguas Unix/Linux
Ideal paraAplicar hardening rápido y guiado
🔍 Lynis
TipoAuditoría y análisis
AcciónReporta problemas, no los corrige
ModoEscaneo automático con informe
ReversiónNo aplica (solo audita)
SistemasSistemas modernos, activamente mantenido
Ideal paraAuditar y conocer el estado de seguridad
💡 Recomendación: Para sistemas modernos usa Lynis para auditar y herramientas de hardening específicas para corregir. Bastille sigue siendo útil en entornos legacy o para aprender los conceptos de hardening de forma guiada.

Instalación Vía GitHub

Método recomendado para obtener la versión más reciente del repositorio oficial.

PASO 1 — Instalar dependencias

Bastille es un script de Perl, por lo que necesita el intérprete de Perl, git para descargar el código, y perl-tk para la interfaz interactiva.

bash
# Actualizar la lista de paquetes
sudo apt update

# Instalar git, perl y la librería Tk (interfaz gráfica)
sudo apt install git perl libtk-perl -y
sudo apt install wget unzip -y
PASO 2 — Clonar el repositorio
bash
# Navegar a la carpeta de inicio
cd ~

# Clonar el repositorio de Bastille Linux
git clone https://github.com/discogestalt/bastille-linux.git
PASO 3 — Instalar Bastille
bash
# Entrar al directorio clonado y dar permisos
cd bastille-linux
chmod +x install.sh

# Ejecutar el script de instalación con sudo
sudo ./install.sh
ℹ️ Durante la instalación: El script preguntará dónde deseas instalar Bastille. La ruta por defecto es /usr/local/bastille. Presiona Enter para confirmar.
PASO 4 — Ejecutar Bastille
bash
sudo bastille

Instalación Vía apt (Ubuntu)

Bastille está disponible en los repositorios de Ubuntu, lo que simplifica enormemente la instalación.

PASO 1 — Actualizar e instalar
bash
sudo apt update
sudo add-apt-repository universe

# Instalar Bastille y sus dependencias
sudo apt install bastille -y

Ubicaciones tras la instalación

ElementoRutaDescripción
Ejecutable/usr/sbin/bastillePrograma principal de endurecimiento.
Configuración/etc/bastille/Archivos de configuración y estado de políticas aplicadas.
Logs/var/log/bastille/bastille.logRegistro de todos los cambios realizados por Bastille.
Config aplicada/etc/bastille/bastille.confRegistro de todas las políticas que han sido aplicadas.

Ejecutar el Proceso de Endurecimiento

El proceso de Bastille es interactivo y guiado. Presta atención a cada pregunta, ya que tus respuestas determinarán los cambios de seguridad que se aplicarán al sistema.

bash — Iniciar el asistente interactivo
sudo bastille
💡 Copia de seguridad automática: Bastille realiza automáticamente una copia de seguridad de los archivos de configuración originales antes de hacer cualquier cambio. Esto permite revertir si algo falla.

Secciones del Asistente Interactivo

Bastille guía al administrador a través de seis secciones de hardening, cada una enfocada en un área de seguridad distinta.

Sección I
Archivos y Permisos
Permisos de archivos sensibles, eliminación de SUID inseguros y restricción de acceso a directorios.
Alta
Sección II
Cuentas de Usuario
Deshabilitar cuentas innecesarias (nobody, sync) y establecer políticas de contraseña.
Media/Alta
Sección III
Dispositivos
Desactivar USB, CD-ROM o disquetes para usuarios comunes, previniendo carga de malware físico.
Media
Sección IV
Sistema de Archivos
Montajes seguros — evitar que ejecutables se carguen desde /tmp, protegiendo contra exploits.
Alta
Sección V
Registro de Logs
Configurar syslog para asegurar que toda la actividad del sistema quede auditada correctamente.
Alta
Sección VI
Red y Firewall
Desactivar servicios de red inseguros (ICMP redirects) y configurar políticas básicas de firewall.
Alta

Detalle de cada sección

SecciónFunciónImportancia
I. Archivos y Permisos Elimina bits SUID peligrosos y restringe permisos de archivos sensibles como /etc/shadow. Alta — Los permisos incorrectos son la causa más común de escalada de privilegios.
II. Cuentas de Usuario Deshabilita cuentas sin uso (nobody, sync) y endurece políticas de contraseña. Media/Alta — Reduce la superficie de ataque al eliminar cuentas innecesarias.
III. Dispositivos Restringe el acceso de usuarios comunes a dispositivos USB, CD-ROM y disquetes. Media — Importante para la seguridad física del equipo.
IV. Sistema de Archivos Configura opciones de montaje seguras para evitar ejecución de código en /tmp y similares. Alta — Protege contra exploits que utilizan directorios temporales.
V. Registro de Logs Asegura que syslog esté correctamente configurado para capturar toda la actividad relevante. Alta — Crucial para la detección de intrusiones posterior al evento.
VI. Red y Firewall Desactiva ICMP redirects y otros comportamientos inseguros de la pila TCP/IP, configura firewall básico. Alta — Reduce el riesgo de ataques a la pila de red.

Proceso Clave Durante el Asistente

  1. LEE CADA PREGUNTA: Bastille presenta una explicación detallada de cada cambio propuesto. Si no estás seguro, lee la explicación completa o escoge la opción por defecto (generalmente la más segura).
  2. APLICAR CAMBIOS: Al final de cada sección, Bastille preguntará si deseas aplicar los cambios sugeridos. Si respondes Yes, los cambios se escribirán inmediatamente en los archivos de configuración del sistema.
  3. VERIFICAR TRAS CADA SECCIÓN: Después de aplicar cambios, comprueba que los servicios esenciales siguen funcionando antes de continuar con la siguiente sección.
⚠️ Entorno de prueba primero: Bastille es una herramienta poderosa que realiza cambios fundamentales. Úsala siempre primero en un entorno de prueba (VirtualBox, VM) antes de aplicarla a un servidor de producción.

Verificación Tras el Endurecimiento

Después de que Bastille ejecute los cambios, verifica que todo funcione correctamente revisando los logs y el archivo de estado.

Revisar el log de Bastille

bash — Ver todos los cambios aplicados
cat /var/log/bastille/bastille.log
bash — Seguir el log en tiempo real durante la ejecución
tail -f /var/log/bastille/bastille.log

Revisar el archivo de estado

Bastille mantiene un registro de todas las políticas que han sido aplicadas al sistema.

bash — Ver políticas aplicadas
cat /etc/bastille/bastille.conf
💡 Qué buscar en los logs: Comprueba que no haya líneas de error (ERROR o FAILED). Las entradas de éxito aparecerán con el cambio aplicado y el archivo modificado. Si un servicio falla después del hardening, el log te indicará exactamente qué archivo fue modificado.

Reversión de Cambios

Si un cambio aplicado por Bastille rompe la funcionalidad del sistema, puedes revertir mediante el modo de reversión integrado.

ComandoAcción
sudo bastille -rRevertir el último conjunto de cambios — vuelve a los archivos de respaldo creados automáticamente antes de aplicar.
sudo bastille -r <versión>Revertir a un punto específico — si deseas volver a una configuración anterior, especifica el número de versión.
Iniciar modo reversión
bash
# Revertir el último conjunto de cambios
sudo bastille -r

# Revertir a una versión específica de configuración
sudo bastille -r <versión_anterior>
⚠️ Bastille es una herramienta poderosa que realiza cambios fundamentales en el sistema. Sigue siempre este orden de trabajo: entorno de prueba → verificación → producción. La reversión es posible pero puede no cubrir el 100% de los casos si los cambios son muy extensos.
🔍 Flujo de trabajo recomendado:
  1. Ejecutar en VM de prueba primero, documentar qué cambia.
  2. Verificar servicios críticos (SSH, web, bases de datos) tras el hardening.
  3. Revisar logs en /var/log/bastille/bastille.log.
  4. Si todo funciona, replicar en producción.
  5. Mantener acceso de emergencia (consola física o VNC) por si SSH queda bloqueado.