Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
the-bastion — Autenticación, autorización, trazabilidad y auditabilidad para accesos SSH. | Kitploit
Herramientas/GitHubGitHub/ovh/the-bastion
Autenticación y AutorizaciónAuditoría de ConfiguraciónSeguridad de RedesPruebas de PenetraciónUtilidades y FrameworksGestión de Identidad y Acceso (IAM)Red Teaming
GitHubovh/the-bastion

the-bastion

Autenticación, autorización, trazabilidad y auditabilidad para accesos SSH.

Ver Repositorio
2.2k1312hace 24 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

The Bastion Logo

🔒 The Bastion

Resumen

Los bastiones son un clúster de máquinas utilizadas como punto de entrada único por los equipos operativos (como administradores de sistemas, desarrolladores, administradores de bases de datos, ...) para conectarse de forma segura a dispositivos (servidores, máquinas virtuales, instancias en la nube, equipos de red, ...), usualmente usando ssh.

The Bastion proporciona mecanismos de autenticación, autorización, trazabilidad y auditabilidad para toda tu infraestructura.

Al estar entre tus usuarios y tu infraestructura, The Bastion agrega una capa de abstracción intermedia para que tu infraestructura no necesite conocer a los miembros de tu equipo operativo individualmente.

Cada miembro de tu equipo tiene una cuenta individual en The Bastion, y puede ser miembro de uno o varios grupos bastión que pueden darle acceso a una o más infraestructuras. Los dispositivos de la infraestructura solo necesitan conocer y confiar en los grupos bastión a los que puedan pertenecer.

El RBAC granular de The Bastion permite delegar algunas responsabilidades a cualquier cuenta, ya sea a nivel de grupo o de todo el bastión, incluyendo cuentas que podrían ser utilizadas por tu automatización para, por ejemplo, gestionar el ciclo de vida de las cuentas (vinculado a tu sistema de gestión de recursos humanos, tu LDAP o AD), asegurar que las ACL de un grupo estén actualizadas (vinculado a tu CMDB), etc. Los procesos automatizados son fáciles de implementar a través de la API JSON sobre SSH.

Recursos de conocimiento

¿Quieres saber más mientras ves algunos dibujos bonitos? Aquí tienes una serie de publicaciones de blog que profundizan en las funcionalidades y principios básicos de The Bastion:

  • Parte 1 - Génesis
  • Parte 2 - Mareo de delegación
  • Parte 3 - Seguridad en el núcleo
  • Parte 4 - Una nueva era

Otros recursos que pueden ser de interés:

  • Documentación en línea
  • (Video en francés, diapositivas en inglés) The Bastion en el Very Tech Trip 2023, caso práctico de gestión de una infraestructura con y sin The Bastion
  • (Video en francés, diapositivas en inglés) The Bastion en el OSSIR, 2021, explicando rápidamente los principios básicos, luego detallando la funcionalidad de los reinos, y finalmente enfocándose en por qué las elecciones técnicas de implementación realizadas mejoran la seguridad (¡agregando voluntariamente una vulnerabilidad de seguridad en el código para demostrarlo!)
  • (Podcast en francés) The Bastion en NoLimitSecu, 2021, entrevista con preguntas y respuestas

♻️ Sin suposiciones sobre tu entorno

No se necesita nada sofisticado ni en el lado de entrada ni en el de salida de The Bastion para que funcione.

Solo necesitas tu viejo y conocido cliente ssh para conectarte a través de él, y del otro lado, cualquier servidor sshd estándar funcionará. Esto incluye, por ejemplo, dispositivos de red en los que quizás no tengas la posibilidad de instalar ningún software personalizado.

Los dispositivos antiguos que solo admiten algoritmos criptográficos de baja seguridad o telnet pueden ocultarse de Internet mediante firewalls y permitir solo The Bastion, evitando así un compromiso de baja seguridad al permitir solo conexiones de alta seguridad en el lado de entrada del bastión.

➰ Fiabilidad

  • Solo se utilizan unas pocas bibliotecas conocidas; menos código de terceros significa una superficie de ataque más reducida
  • The Bastion está diseñado para ser autosuficiente: sin dependencias como bases de datos, otros demonios, otras máquinas o servicios en la nube de terceros, ni para la fase de autenticación ni de autorización, lo que estadísticamente significa menos tiempo de inactividad
  • Se puede configurar alta disponibilidad para que múltiples instancias del bastión formen un clúster de varias instancias, con cualquier instancia utilizable en todo momento (esquema activo/activo)

:godmode: Lista de características no exhaustiva

  • Esquemas de acceso personales y de grupo con delegación de roles de grupo para garantizar la autonomía de los equipos sin comprometer la seguridad
  • Ruptura del protocolo SSH entre las conexiones de entrada y salida
  • Grabación de sesiones interactivas (en archivos ttyrec estándar)
  • Grabación de sesiones no interactivas (stdout y stderr a través de ttyrec)
  • Soporte extenso de registro a través de syslog para un consumo fácil por parte del SIEM
  • Las funciones de autenticación incluyen soporte para MFA/2FA (contraseña, TOTP) además de la autenticación mediante clave pública
  • Soporta verificación y aplicación de atestación de claves PIV de Yubico en el lado de la conexión de entrada
  • Soporta mosh en el lado de la conexión de entrada
  • Soporta paso a través de scp, sftp y rsync, para cargar y/o descargar archivos desde/hacia servidores remotos
  • Soporta paso a través del subsistema SSH netconf
  • Soporta reinos, para crear una confianza entre dos bastiones de posiblemente dos empresas diferentes, dividiendo las fases de autenticación y autorización mientras se siguen aplicando políticas locales
  • Soporta autoinicio de sesión por contraseña SSH en el lado de salida para dispositivos heredados que no admiten autenticación por clave pública, mientras se fuerza la autenticación adecuada por clave pública en el lado de entrada
  • Soporta autoinicio de sesión por contraseña telnet en el lado de salida para dispositivos antiguos que no admiten SSH, mientras se fuerza la autenticación adecuada por clave pública SSH en el lado de entrada
  • Soporta proxy HTTPS con manejo de autenticación y autorización man-in-the-middle, para desacoplar contraseñas de entrada y salida (principalmente útil para APIs de dispositivos de red)

🔧 Instalación, actualización y uso de The Bastion

Consulta la documentación en línea, o la versión de texto correspondiente que se encuentra en la carpeta doc/.

🎥 Ejemplo rápido de conexión y reproducción

asciicast

⚡ TL;DR: pruébalo: entorno aislado desechable usando Docker

Esta es una buena manera de probar The Bastion en cuestión de segundos, pero lee las preguntas frecuentes si hablas en serio sobre el uso de contenedores en producción.

La imagen del entorno aislado está disponible para las siguientes arquitecturas: linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/ppc64le, linux/s390x.

Ejecutemos la imagen de Docker:

root@kitploit:~
docker run -d -p 22 --name bastiontest ovhcom/the-bastion:sandbox

Ten a mano tu clave pública SSH y luego configura la primera cuenta de administrador:

root@kitploit:~
docker exec -it bastiontest /opt/bastion/bin/admin/setup-first-admin-account.sh poweruser auto

¡Ya estamos en funcionamiento con la configuración predeterminada! Configuremos un alias práctico del bastión y probemos el comando info:

root@kitploit:~
PORT=$(docker port bastiontest | cut -d: -f2)
alias bastion="ssh [email protected] -tp $PORT -- "
bastion --osh info

Debería saludarte como administrador del bastión, lo que significa que tienes acceso a todos los comandos. Entremos en el modo interactivo:

root@kitploit:~
bastion -i

Esto es útil para llamar a varios plugins --osh en secuencia. Ahora podemos pedir ayuda para ver todos los plugins:

root@kitploit:~
$> help

Si tienes una máquina remota a la que quieras conectarte a través del bastión, obtén tu clave de salida:

root@kitploit:~
$> selfListEgressKeys

Copia esta clave pública en el archivo authorized_keys de la máquina remota, dentro de la carpeta .ssh/ de la cuenta a la que deseas conectarte, luego:

root@kitploit:~
$> selfAddPersonalAccess --host <remote_host> --user <remote_account_name> --port-any
$> ssh <remote_account_name>@<remote_host>

Ten en cuenta que puedes conectarte directamente sin usar el modo interactivo, con:

root@kitploit:~
bastion <remote_account_name>@<remote_machine_host_or_ip>

¡Eso es todo! Por supuesto, hay mucho más. La documentación está disponible en la carpeta doc/ y en línea. Asegúrate de revisar la ayuda del bastión (bastion --help) y la ayuda de cada plugin de osh (bastion --osh command --help). Además, no olvides personalizar tu archivo bastion.conf, que se encuentra en /etc/bastion/bastion.conf (para Linux).

🔀 Sistemas operativos compatibles para la instalación

Las distribuciones de Linux a continuación se prueban con cada versión, pero como se trata de un producto de seguridad, se recomienda encarecidamente ejecutarlo en la última versión estable actualizada de tu sistema operativo favorito:

  • Debian 13 (Trixie), 12 (Bookworm), 11 (Bullseye)
  • RockyLinux 10.x, 9.x, 8.x
  • Ubuntu LTS 26.04, 24.04, 22.04
  • OpenSUSE Leap 16.0

Cualquier otra versión de Linux llamada "moderna" no se prueba con cada versión, pero debería funcionar sin ajustes o con ajustes menores.

Los siguientes sistemas operativos también se prueban con cada versión:

  • FreeBSD 15.1, 15.0, 14.4

FreeBSD tiene soporte parcial de MFA, debido a su conjunto reducido de plugins pam disponibles. Se puede configurar el soporte para un factor adicional de contraseña o TOTP, pero no ambos al mismo tiempo.

🆗 Calidad del código

  • El código se ejecuta bajo perltidy
  • El código también se ejecuta bajo perlcritic
  • Se utilizan pruebas funcionales antes de cada lanzamiento

🛂 Seguridad en el núcleo

Incluso con el proceso de codificación más conservador, cuidadoso y paranoico, el código tiene errores, por lo que no se debe confiar ciegamente en él. Por eso, el bastión no confía en su propio código. Aprovecha las primitivas de seguridad del sistema operativo para obtener seguridad adicional, como se ve a continuación.

  • Utiliza el conocido y confiable Control de Acceso Discrecional UNIX:

    • Los usuarios del bastión se asignan a usuarios reales del sistema
    • Los grupos del bastión se asignan a grupos reales del sistema
    • Todo el código verifica constantemente los permisos antes de permitir cualquier acción
    • El DAC UNIX se utiliza como un cinturón de seguridad para evitar que una acción tenga éxito incluso si el código es engañado para permitirla
  • El script principal del bastión se declara como el shell del sistema del usuario del bastión:

    • Ningún usuario tiene acceso a un shell real (tipo bash) en el sistema
    • Todo el código se ejecuta bajo los derechos de la cuenta del usuario no privilegiado
    • Incluso si un usuario pudiera escapar a un shell real, no podría conectarse a máquinas a las que no tiene acceso porque no tienen permisos de lectura a nivel de sistema de archivos para las claves SSH
  • El código es modular

    • El código principal principalmente verifica permisos, registra acciones y permite el acceso ssh a otras máquinas
    • Todos los comandos secundarios, llamados plugins, están en módulos separados del código principal
    • Los módulos pueden ser abiertos o restringidos
      • Solo las cuentas que han recibido permisos específicos por necesidad pueden ejecutar un plugin restringido en particular
      • Esto es verificado por el código y también reforzado por el DAC UNIX (el plugin solo es legible y ejecutable por el grupo del sistema específico del plugin)
  • Todo el código que necesita privilegios extendidos del sistema está separado del código principal, en módulos llamados helpers

    • Los helpers se ejecutan exclusivamente bajo sudo
    • La configuración de sudoers está vinculada a un grupo del sistema específico del comando, que se otorga a las cuentas según la necesidad
    • Los helpers solo son legibles y ejecutables por el grupo del sistema específico del comando

🔍 Auditabilidad

  • Los administradores del bastión deben usar la lógica del bastión para conectarse a él mismo para administrarlo (o mejor, usar otro bastión para hacerlo), esto garantiza la auditabilidad en todos los casos
  • Cada acceso y acción (sea permitida o denegada) se registra con:
    • syslog, que también debe enviarse a un servidor syslog remoto para garantizar que incluso los administradores del bastión no puedan alterar sus registros, y/o
    • bases de datos locales sqlite3 para búsqueda fácil
  • Cada sesión se graba con ttyrec; se proporcionan scripts auxiliares para cifrar y enviar estos registros a un archivador de depósito remoto
  • Este código se utiliza en producción en varios entornos certificados PCI-DSS, ISO 27001, SOC1 y SOC2

🔗 Relacionados

Dependencias

  • ovh-ttyrec - una versión mejorada pero compatible de ttyrec, un grabador de terminal (tty)

Herramientas opcionales

  • yubico-piv-checker - un binario Go autónomo para verificar la validez de claves y certificados PIV. Opcional, para habilitar las funcionalidades conscientes de PIV de The Bastion
  • puppet-thebastion (GitHub) - un módulo de Puppet para automatizar y mantener la configuración de las máquinas The Bastion
  • the-bastion-ansible-wrapper - un envoltorio para hacer posible ejecutar playbooks de Ansible a través de The Bastion
  • debian-cis - un script para aplicar y monitorear el endurecimiento de hosts Debian según las recomendaciones CIS

Herramientas de la comunidad

Una lista no exhaustiva de herramientas relacionadas que son mantenidas por la comunidad:

  • chef-cookbook - una receta de chef para instalar the-bastion y configurar su configuración predeterminada
  • ansible role - un rol de ansible para instalar y configurar the-bastion

📝 Licencia

Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puedes usar este archivo excepto en cumplimiento con la Licencia. Puedes obtener una copia de la Licencia en

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

A menos que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para el idioma específico que rige los permisos y limitaciones bajo la Licencia.

Descargar herramienta
  • La ruta de los helpers y algunos de sus parámetros inmutables están codificados en la configuración de sudoers
  • El modo de contaminación de Perl (-T) se utiliza para todo el código que se ejecuta bajo sudo, evitando que cualquier entrada del usuario interfiera con la lógica, deteniendo la ejecución de inmediato
  • El código que se ejecuta bajo sudo no confía en quien lo llama y vuelve a verificar cada entrada
  • La comunicación entre el código no privilegiado y el privilegiado se realiza mediante JSON
  • Se opera una ruptura de protocolo entre los lados de entrada y salida, lo que hace que la mayoría de las vulnerabilidades basadas en protocolos sean ineficaces