Come posso utilizzare un generatore di passcode per l'autenticazione per accessi remoti?


55

Vorrei rafforzare l'autenticazione dei miei accessi SSH aggiungendo un altro fattore: un dispositivo generatore di passcode o un'applicazione di generazione di passcode sul mio telefono cellulare. Le uniche opzioni ovvie nell'impostazione predefinita sono una password fissa e una coppia di chiavi. Come posso fare questo?

(Se utilizzo una password più un generatore di passcode, questo fornisce un'autenticazione a due fattori (2FA): la password è "quello che so" e il passcode è "quello che ho".

Risposte:


49

Un modo per farlo è con uno strumento fornito da Google chiamato Google Authenticator .

  1. Installa libpam-google-authenticator Installa libpam-google-authenticator

    • o solo sudo apt-get install libpam-google-authenticator
  2. Modifica /etc/pam.d/sshdper includere il modulo:

    • sudoedit /etc/pam.d/sshd
    • e quindi includere questa riga nella parte superiore del file e salvare:

      auth required pam_google_authenticator.so
      
  3. Modifica il tuo file di configurazione SSH per attivare la sfida:

    • sudoedit /etc/ssh/sshd_config e quindi modificare l'autenticazione della risposta da:

      ChallengeResponseAuthentication no 
      

      per

      ChallengeResponseAuthentication yes
      

      e quindi salva il file.

  4. sudo restart ssh per riavviare SSH

  5. Correre google-authenticator

    • Questo ti fornirà la chiave segreta, il codice di verifica e i codici di emergenza. Ti farà anche alcune domande limitanti.

Applicazioni mobili:

Avrai bisogno di uno di questi per ricevere il codice di autenticazione su un altro dispositivo.

Correlato e utile:

Nota che combinare una password con passcode monouso è un'autenticazione a due fattori: combina "ciò che sai" (una password) con "ciò che hai" (il dispositivo generatore di passcode). D'altra parte, se si combinano passcode monouso con una coppia di chiavi SSH, si tratta solo di "ciò che si possiede". Quando due fattori di autenticazione sono dello stesso tipo, non si dispone di un'autenticazione a due fattori; questo è talvolta chiamato "autenticazione a un fattore e mezzo".


12

Google Authenticator va bene per i tuoi server personali ma potresti scoprire che non si adatta bene alla tua infrastruttura di identità esistente. Se vuoi esplorare altre opzioni, pensa all'utilizzo di RADIUS come protocollo di autenticazione e del plugin pam-radius. Tutti i sistemi di autenticazione a due fattori orientati all'azienda supportano il raggio. Abbiamo scritto un documento su come aggiungere l' autenticazione a due fattori WiKID tramite pam-radius su Ubuntu .

L'uso di radius consente di collegare altri sistemi oltre a SSH allo stesso server di autenticazione. Puoi anche instradare le richieste di autenticazione tramite freeradius a LDAP e quindi al tuo server 2FA per separare l'autorizzazione dall'autenticazione. Puoi fare lo stesso con AD btw.


1

Esorto tutti a mettere la seguente linea in alto e non in basso di /etc/pam.d/sshdquanto sopra descritto precedentemente (ora corretto):

auth required pam_google_authenticator.so

Altrimenti il ​​tuo sistema rimarrà aperto agli attacchi di forza bruta sulla tua password, compresa la prima parte dell'autenticazione a due fattori: la tua password.

Ti verrà chiesto prima il tuo codice di verifica e poi la tua password (indipendentemente dal fatto che il codice fosse corretto). Se uno dei due ha torto, è necessario inserire nuovamente entrambi. Puoi configurarlo al contrario, ma è un cambiamento un po 'più difficile da descrivere nella configurazione sshd ubuntu (15.04) predefinita corrente.

Per i dettagli sul motivo per cui è necessario, controlla questo problema:

https://github.com/google/google-authenticator/issues/514

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.