Warpgate MFA tramite TOTP
Warpgate è una soluzione open source di accesso sicuro con funzioni di bastion host per server SSH, database, Kubernetes e servizi web, centralizzando autenticazione, autorizzazioni e auditing. Non è jump host, ma si comporta come un gateway intermedio tra utenti e infrastruttura interna: autentica gli utenti tramite SSO/MFA, applica policy di accesso granulari, registra le sessioni e inoltra le connessioni verso le risorse autorizzate senza esporre direttamente la rete interna o richiedere connessioni VPN. In poche parole, è un’ottima soluzione per concedere accesso a risorse che non sono esposte direttamente su Internet.
Per tutti i dettagli di installazione e configurazione iniziale vi rimando alla documentazione ufficiale di warpgate, qui invece vedremo come attivare l’autenticazione MFA tramite OTP per connessioni SSH.
Breve descrizione della mia architettura
Il bastion host Warpgate è installato su un server Ubuntu esposto su Internet dietro firewall con ACL opportunamente configurate, e permette l’accesso SSH a server che si trovano all’interno di una rete privata. Come metodo primario di autenticazione ho configurato l’accesso tramite private key; quindi, Warpgate autentica l’utente tramite la chiave pubblica presente sul server senza la necessità utilizzare password, cosa che ci aiuta a prevenire attacchi di tipo brute-force.
Aggiungere l’autenticazione multifattore
Dalla console di amministrazione andiamo in Config, scegliamo Users e selezioniamo l’utente.

Quindi scegliendo Add OTP si apre il QR Code da inquadrare con il dispositivo sul quale è installato l’Authenticator (es. Microsoft Authenticator, Google Authenticator…)

Inquadriamo il QR Code per aggiungere il dispositivo di autenticazione MFA e confermiamo inserendo il codice OTP generato dal Authenticator scelto. Completata l’operazione assicuriamoci che l’utente abbia attiva sia l’autenticazione di tipo Key sia quella OTP, come nella figura seguente.

Testare la login multifattore
Se tutto è andato a buon fine, al prossimo tentativo di accesso SSH, il sistema chiederà di inserire il codice OTP prima di concedere l’accesso al server finale.

Lo stesso meccanismo di autenticazione è applicato anche usando un client tipo MobaXterm, con il plus che se è configurato anche il browser SSH per il trasferimento file in SFTP, il codice OTP ci verrà richiesto 2 volte, sia per l’attivazione della sessione relativa al browser SSH sia per la sessione CLI.
