Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
the-bastion — Autenticazione, autorizzazione, tracciabilità e verificabilità per gli accessi SSH. | Kitploit
Strumenti/GitHubGitHub/ovh/the-bastion
Autenticazione e AutorizzazioneAudit di ConfigurazioneSicurezza di RetePenetration TestingUtilità e FrameworkGestione Identità e Accessi (IAM)Red Teaming
GitHubovh/the-bastion

the-bastion

Autenticazione, autorizzazione, tracciabilità e verificabilità per gli accessi SSH.

Vedi Repository
2.2k131571 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Logo di The Bastion

🔒 The Bastion

Panoramica

I Bastion sono un cluster di macchine utilizzato come punto di ingresso unico dai team operativi (come sysadmin, sviluppatori, amministratori di database, ...) per connettersi in modo sicuro a dispositivi (server, macchine virtuali, istanze cloud, apparecchiature di rete, ...), solitamente tramite ssh.

The Bastion fornisce meccanismi per autenticazione, autorizzazione, tracciabilità e auditabilità per l'intera infrastruttura.

Posizionandosi tra i tuoi utenti e la tua infrastruttura, The Bastion aggiunge un livello di astrazione in modo che la tua infrastruttura non abbia bisogno di conoscere individualmente i membri del tuo team operativo.

Ogni membro del team ha un account individuale su The Bastion e può essere membro di uno o più gruppi del bastion che possono concedergli l'accesso a una o più infrastrutture. I dispositivi dell'infrastruttura devono solo conoscere e fidarsi del/dei gruppo/i del bastion di cui fanno parte.

Il RBAC granulare di The Bastion consente di delegare alcune responsabilità a qualsiasi account, con ambito gruppo o esteso a tutto il bastion, inclusi account che potrebbero essere utilizzati dalla tua automazione per, ad esempio, gestire il ciclo di vita degli account (collegato al tuo sistema di gestione delle risorse umane, al tuo LDAP o AD), garantire che l'ACL di un gruppo sia aggiornata (collegato al tuo CMDB), ecc. I processi automatizzati sono facili da implementare tramite l'API JSON su SSH.

Risorse di approfondimento

Vuoi saperne di più mentre guardi dei bei disegni? Ecco una serie di post del blog che approfondiscono le funzionalità principali e i principi di The Bastion:

  • Parte 1 - Genesi
  • Parte 2 - Vertigini di delega
  • Parte 3 - Sicurezza al centro
  • Parte 4 - Una nuova era

Altre risorse che potrebbero interessarti:

  • Documentazione online
  • (Video in francese, slide in inglese) The Bastion at the Very Tech Trip 2023, caso studio sulla gestione di un'infrastruttura con e senza The Bastion
  • (Video in francese, slide in inglese) The Bastion at the OSSIR, 2021, una rapida spiegazione dei principi fondamentali, poi un dettaglio sulla funzionalità realm e infine un approfondimento sul perché le scelte tecniche implementative migliorano la sicurezza (aggiungendo volontariamente una vulnerabilità di sicurezza nel codice per dimostrarlo!)
  • (Podcast in francese) The Bastion at NoLimitSecu, 2021, intervista con domande e risposte

♻️ Zero presupposizioni sul tuo ambiente

Non è necessario nulla di speciale né sul lato di ingresso né su quello di uscita di The Bastion per farlo funzionare.

Solo il tuo vecchio e buon client ssh è necessario per connetterti attraverso di esso, e dall'altro lato, qualsiasi server sshd standard farà al caso tuo. Ciò include, ad esempio, dispositivi di rete su cui potresti non avere la possibilità di installare software personalizzato.

I dispositivi obsoleti che supportano solo algoritmi crittografici a bassa sicurezza o telnet possono essere nascosti da Internet tramite firewall e consentendo solo The Bastion, evitando così un compromesso di bassa sicurezza permettendo comunque solo connessioni ad alta sicurezza sul lato di ingresso del bastion.

➰ Affidabilità

  • Vengono utilizzate solo poche librerie note, meno codice di terze parti significa una superficie di attacco più ridotta
  • The Bastion è progettato per essere autosufficiente: nessuna dipendenza come database, altri demoni, altre macchine o servizi cloud di terze parti, né per la fase di autenticazione né per quella di autorizzazione, statisticamente significa meno tempi di inattività
  • È possibile configurare l'alta disponibilità in modo che più istanze del bastion formino un cluster di diverse istanze, con qualsiasi istanza utilizzabile in qualsiasi momento (schema attivo/attivo)

:godmode: Elenco di funzionalità non esaustivo

  • Schemi di accesso personali e di gruppo con delega dei ruoli di gruppo per garantire l'autonomia dei team senza compromessi sulla sicurezza
  • Interruzione del protocollo SSH tra le connessioni di ingresso e di uscita
  • Registrazione interattiva delle sessioni (in file ttyrec standard)
  • Registrazione non interattiva delle sessioni (stdout e stderr tramite ttyrec)
  • Ampio supporto per logging tramite syslog per un facile consumo da parte dei SIEM
  • Le funzionalità di autenticazione includono il supporto per MFA/2FA (password, TOTP) in aggiunta all'autenticazione con chiave pubblica
  • Supporta la verifica e l'imposizione dell'attestazione delle chiavi Yubico PIV sul lato della connessione in ingresso
  • Supporta mosh sul lato della connessione in ingresso
  • Supporta il passaggio di scp, sftp e rsync per caricare e/o scaricare file da/server remoti
  • Supporta il passaggio del sottosistema SSH netconf
  • Supporta i realm, per creare una fiducia tra due bastion di due aziende possibilmente diverse, suddividendo le fasi di autenticazione e autorizzazione pur continuando ad applicare le policy locali
  • Supporta l'autologin tramite password SSH sul lato di uscita per dispositivi legacy che non supportano l'autenticazione con chiave pubblica, pur forzando una corretta autenticazione con chiave pubblica sul lato di ingresso
  • Supporta l'autologin tramite password telnet sul lato di uscita per dispositivi antichi che non supportano SSH, pur forzando una corretta autenticazione con chiave pubblica SSH sul lato di ingresso
  • Supporta il proxy HTTPS con gestione dell'autenticazione e autorizzazione man-in-the-middle, per il disaccoppiamento delle password di ingresso e uscita (utile principalmente per le API dei dispositivi di rete)

🔧 Installazione, aggiornamento, utilizzo di The Bastion

Consulta la documentazione online o la corrispondente versione testuale nella cartella doc/.

🎥 Esempio rapido di connessione e riproduzione

asciicast

⚡ TL;DR: testalo: sandbox usa e getta con Docker

Questo è un buon modo per testare The Bastion in pochi secondi, ma leggi le FAQ se sei seriamente intenzionato a usare la containerizzazione in produzione.

L'immagine sandbox è disponibile per le seguenti architetture: linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/ppc64le, linux/s390x.

Eseguiamo l'immagine docker:

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

Tieni a portata di mano la tua chiave pubblica SSH, quindi configura il primo account amministratore:

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

Ora siamo attivi con la configurazione predefinita! Impostiamo un alias comodo per il bastion e testiamo il comando info:

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

Dovrebbe salutarti come amministratore del bastion, il che significa che hai accesso a tutti i comandi. Entriamo in modalità interattiva:

root@kitploit:~
bastion -i

Questo è utile per chiamare più plugin --osh in sequenza. Ora possiamo chiedere aiuto per vedere tutti i plugin:

root@kitploit:~
$> help

Se hai una macchina remota a cui vuoi connetterti tramite il bastion, recupera la tua chiave di uscita:

root@kitploit:~
$> selfListEgressKeys

Copia questa chiave pubblica nella authorized_keys della macchina remota nella cartella .ssh/ dell'account a cui vuoi connetterti, quindi:

root@kitploit:~
$> selfAddPersonalAccess --host <host_remoto> --user <nome_account_remoto> --port-any
$> ssh <nome_account_remoto>@<host_remoto>

Nota che puoi connetterti direttamente senza usare la modalità interattiva, con:

root@kitploit:~
bastion <nome_account_remoto>@<host_o_ip_macchina_remota>

Questo è tutto! Ovviamente c'è molto di più; la documentazione è disponibile nella cartella doc/ e online. Assicurati di controllare l'aiuto del bastion (bastion --help) e l'aiuto di ogni plugin osh (bastion --osh comando --help). Inoltre, non dimenticare di personalizzare il tuo file bastion.conf, che si trova in /etc/bastion/bastion.conf (per Linux).

🔀 Sistemi operativi supportati per l'installazione

Le distribuzioni Linux riportate di seguito vengono testate con ogni rilascio, ma poiché si tratta di un prodotto di sicurezza, ti consigliamo caldamente di eseguirlo sull'ultima versione stabile aggiornata del tuo sistema operativo preferito:

  • 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

Qualsiasi altra versione di Linux cosiddetta "moderna" non viene testata con ogni rilascio, ma dovrebbe funzionare con aggiustamenti minimi o nulli.

I seguenti sistemi operativi sono anche testati con ogni rilascio:

  • FreeBSD 15.1, 15.0, 14.4

FreeBSD ha un supporto parziale per MFA, a causa del suo set ridotto di plugin pam disponibili. È possibile configurare il supporto per un fattore aggiuntivo (password o TOTP), ma non entrambi contemporaneamente.

🆗 Qualità del codice

  • Il codice viene eseguito con perltidy
  • Il codice viene anche eseguito con perlcritic
  • I test funzionali vengono utilizzati prima di ogni rilascio

🛂 Sicurezza al centro

Anche con il processo di codifica più conservativo, prudente e paranoico, il codice contiene bug, quindi non ci si dovrebbe fidare ciecamente. Pertanto, il bastion non si fida del proprio codice. Sfrutta le primitive di sicurezza del sistema operativo per ottenere sicurezza aggiuntiva, come visto di seguito.

  • Utilizza il ben noto e affidabile Controllo di Accesso Discrezionale UNIX:

    • Gli utenti del bastion sono mappati a utenti di sistema reali
    • I gruppi del bastion sono mappati a gruppi di sistema reali
    • Tutto il codice controlla costantemente i diritti prima di consentire qualsiasi azione
    • Il DAC UNIX viene utilizzato come cintura di sicurezza per impedire che un'azione abbia successo anche se il codice viene ingannato per consentirla
  • Lo script principale del bastion è dichiarato come shell di sistema dell'utente del bastion:

    • Nessun utente ha accesso reale alla shell (tipo bash) sul sistema
    • Tutto il codice viene eseguito con i diritti dell'account di sistema dell'utente non privilegiato
    • Anche se un utente riuscisse a evadere in una shell reale, non sarebbe in grado di connettersi alle macchine a cui non ha accesso, perché non ha accesso in lettura a livello di filesystem alle chiavi SSH
  • Il codice è modulare

    • Il codice principale principalmente controlla i diritti, registra le azioni e abilita l'accesso ssh ad altre macchine
    • Tutti i comandi secondari, chiamati plugin, sono in moduli separati dal codice principale
    • I moduli possono essere aperti o ristretti
      • Solo gli account a cui è stato specificamente concesso l'accesso in base alle necessità possono eseguire un plugin ristretto specifico
      • Questo viene verificato dal codice e anche imposto dal DAC UNIX (il plugin è leggibile ed eseguibile solo dal gruppo di sistema specifico per il plugin)
  • Tutto il codice che necessita di privilegi di sistema estesi è separato dal codice principale, in moduli chiamati helper

    • Gli helper vengono eseguiti esclusivamente sotto sudo
    • La configurazione sudoers è allegata a un gruppo di sistema specifico per il comando, che viene concesso agli account in base alle necessità
    • Gli helper sono leggibili ed eseguibili solo dal gruppo di sistema specifico per il comando

🔍 Auditabilità

  • Gli amministratori del bastion devono utilizzare la logica del bastion per connettersi ad esso per amministrarlo (o meglio, utilizzare un altro bastion per farlo), questo garantisce l'auditabilità in tutti i casi
  • Ogni accesso e azione (che siano consentiti o negati) viene registrato con:
    • syslog, che dovrebbe anche essere inviato a un server syslog remoto per garantire che nemmeno gli amministratori del bastion possano manomettere le loro tracce, e/o
    • database locali sqlite3 per ricerche facili
  • Ogni sessione viene registrata con ttyrec, sono forniti script di supporto per crittografare e inviare questi record a un archivio di escrow remoto
  • Questo codice è utilizzato in produzione in diversi ambienti certificati PCI-DSS, ISO 27001, SOC1 e SOC2

🔗 Correlati

Dipendenze

  • ovh-ttyrec - una versione migliorata ma compatibile di ttyrec, un registratore di terminale (tty)

Strumenti opzionali

  • yubico-piv-checker - un binario go autonomo per verificare la validità delle chiavi e dei certificati PIV. Opzionale, per abilitare le funzionalità PIV-aware di The Bastion
  • puppet-thebastion (GitHub) - un modulo Puppet per automatizzare e mantenere la configurazione delle macchine The Bastion
  • the-bastion-ansible-wrapper - un wrapper per consentire l'esecuzione di playbook Ansible tramite The Bastion
  • debian-cis - uno script per applicare e monitorare l'hardening degli host Debian secondo le raccomandazioni CIS

Strumenti della comunità

Un elenco non esaustivo di strumenti correlati mantenuti dalla comunità:

  • chef-cookbook - un cookbook chef per installare the-bastion e configurare la sua configurazione predefinita
  • ansible role - un ruolo ansible per installare e configurare the-bastion

📝 Licenza

Concesso in licenza secondo i termini della Apache License, Versione 2.0 (la "Licenza"); non puoi utilizzare questo file se non in conformità con la Licenza. Puoi ottenere una copia della Licenza all'indirizzo

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

Salvo diversamente previsto dalla legge applicabile o concordato per iscritto, il software distribuito sotto la Licenza è distribuito "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, espresse o implicite. Vedi la Licenza per il linguaggio specifico che regola le autorizzazioni e le limitazioni previste dalla Licenza.

Scarica lo strumento
  • Il percorso degli helper e alcuni dei loro parametri immutabili sono codificati nella configurazione sudoers
  • La modalità tainted di Perl (-T) viene utilizzata per tutto il codice eseguito sotto sudo, impedendo a qualsiasi input dell'utente di interferire con la logica, interrompendo immediatamente l'esecuzione
  • Il codice eseguito sotto sudo non si fida del chiamante e ricontrolla ogni input
  • La comunicazione tra codice non privilegiato e codice privilegiato avviene tramite JSON
  • Viene operata un'interruzione del protocollo tra il lato di ingresso e quello di uscita, rendendo inefficaci la maggior parte delle vulnerabilità basate sul protocollo