GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Gestione delle chiavi SSH con privacyIDEA


di weinstock @ pixabay

In questo tutorial mostrerò come puoi gestire le tue chiavi SSH per tutti i tuoi server e diversi account utente. Questo è importante, se hai più di una chiave SSH ed è ancora più importante, se sei responsabile di molti utenti diversi con chiavi SSH diverse. Sai ancora, chi sono le chiavi si trovano su quali server? Cosa farai se devi revocare le chiavi dell'utente?

Useremo privacyIDEA come sistema per gestire le chiavi SSH. Originariamente privacyIDEA è un sistema per gestire i token One Time Password. Ma qualche tempo fa è stato migliorato con un nuovo concetto in modo che possa essere utilizzato per gestire molti tipi diversi di elementi di autenticazione, in questo caso le chiavi SSH. (Ne ho parlato in tedesco alla conferenza tedesca OpenRheinRuhr).

Prerequisiti

Presumo che tu abbia installato un sistema privacyIDEA e connesso il tuo database utente. Puoi farlo facilmente seguendo questo tutorial che ti fornirà un sistema simile a un'appliance basato su Ubuntu LTS.

Quello che faremo ora è

  1. carica le chiavi SSH per gli utenti
  2. configura, quale chiave SSH può essere utilizzata su quale server SSH
  3. e infine adattare la configurazione SSH sui server SSH, in modo che le chiavi SSH gestite da privacyIDEA vengano utilizzate per autenticarsi sul server SSH.

Carica chiavi SSH

Per prima cosa dobbiamo caricare le chiavi SSH degli utenti.

Nota: Abbiamo solo bisogno di caricare la chiave pubblica SSH. Non caricare mai una chiave privata!

Quando si carica una chiave SSH, un nuovo oggetto token di tipo Chiave SSH è creato. Al momento solo l'amministratore può caricare la chiave SSH di un utente. L'amministratore deve effettuare il login e selezionare l'utente corrispondente.

Quindi fare clic sul pulsante Registrati e seleziona il tipo Token SSH e copia e incolla la chiave pubblica SSH.

La descrizione del token verrà compilata automaticamente con il commento della chiave SSH.

Ora puoi passare al Token view e puoi vedere il nuovo token creato di tipo sshkey

Assegna la chiave SSH al server SSH

L'idea di utilizzare i token per determinate macchine è originariamente descritta su github e anche nella documentazione online.

È necessario definire quale token è autorizzato ad autenticarsi su quale applicazione su quale macchina. (In questo modo è possibile anche l'autenticazione offline con LUKS) Questo può essere fatto in Macchine visualizza.

In privacyIDEA 1.5 è inoltre necessario definire la macchina (il server SSH) con l'indirizzo IP. Questo cambierà in privacyIDEA 2.x.

In questo modo creiamo una definizione di macchina che dice che il token ssh SSHK00018FD9 può essere utilizzato per accedere tramite SSH sul server 172.16.200.1. Se la chiave dell'opzione viene lasciata vuota, questo token SSH può essere utilizzato per accedere come utente root. Potresti anche inserire un'opzione "utente" con il nome utente come valore per poter accedere come un altro utente.

Configura il server SSH

Ora il server SSH deve sapere che la chiave, che è stata definita centralmente in privacyIDEA, può essere utilizzata per accedere tramite SSH. Ci sono due modi alternativi per raggiungere questo obiettivo.

Possiamo usare saltstack per distribuire le chiavi SSH a tutti i server SSH. Per questo abbiamo bisogno di configurare ed eseguire saltstack, il che ci dà un po' di sovraccarico. Ecco perché in questo tutorial scegliamo la seconda alternativa.

La seconda alternativa utilizza la chiave di configurazione SSH AuthorizedKeysCommand . Può essere utilizzato in /etc/ssh/sshd_config per definire un comando, che viene eseguito ogni volta che qualcuno tenta di accedere tramite SSH. Tale comando deve prendere il nome utente come parametro e deve restituire un elenco di chiavi SSH consentite.

Per ottenere ciò, utilizziamo il comando privacyidea-authorizedkeys che viene fornito con il client di amministrazione privacyidea. Quindi devi installare il client di amministrazione di privacyidea su ciascuno dei tuoi server SSH. Puoi farlo usando il pacchetto ubuntu già pronto dal launchpad o il pacchetto python dall'indice del pacchetto Python.

Per installare il client di amministrazione di privacyidea nel tuo sistema principale esegui:

pip install privacyideaadm

chiavi autorizzate idea-privacy non è consentito accettare parametri aggiuntivi tranne il nome utente. Questo è il motivo per cui è necessario creare un file di configurazione /etc/privacyidea/authorizedkeyscommand che assomiglia a questo:

[Default]
url = https://your.privacyidea.server
admin = low_rights_admin
adminrealm = admin_realm
password = secret

Assicurati di limitare i diritti di accesso di questo file. In un ambiente produttivo dovresti anche assicurarti che l'amministratore del token menzionato in questo file di configurazione non sia autorizzato a eseguire attività aggiuntive come l'eliminazione o la creazione di token.

Se tutto è impostato correttamente dovresti essere in grado di eseguire

privacyidea-authorizedkeys root

...e dovresti vedere la chiave pubblica ssh che hai caricato su privacyIDEA.

Infine è necessario riconfigurare il demone SSH e riavviarlo. Il tuo /etc/ssh/sshd_config dovrebbe avere una sezione simile a questa:

AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys
# You also should run the command with lower privileges.
# The low_priv_user needs to have read access to /etc/privacyidea/authorizedkeyscommand.
# AuthorizedKeysCommandUser low_priv_user

Autentica!

Dopo aver riavviato il demone SSH dovresti essere in grado di accedere tramite SSH con la chiave SSH caricata. Non appena elimini il token SSH o addirittura disabiliti il ​​token SSH in privacyIDEA, l'utente non può più accedere con questa chiave SSH.

In questo modo hai il pieno controllo su tutte le chiavi di tutti i tuoi utenti. Puoi disabilitare una chiave SSH in un punto centrale e un utente non sarà più in grado di accedere a nessun server SSH.


Ubuntu
  1. Come utilizzare le chiavi SSH con Plesk

  2. Come generare una coppia di chiavi SSH (con esempi)

  3. SSH – Generazione e utilizzo di chiavi ssh

  4. Errore chiave Ssh non valido in Juju quando lo si utilizza con Maas?

  5. come aggiornare homebrew con Cron su Mac os

Come configurare le chiavi SSH su Ubuntu 20.04

Gestione dei pacchetti Ubuntu con apt

Come utilizzare una chiave SSH con utenti non root

Genera chiavi RSA con SSH usando PuTTYgen

Accedi a un server Linux con una chiave privata SSH su un client Windows

Accedi con una chiave privata SSH su Linux e macOS