Ubuntu: usare Google Authenticator per il login SSH

Di - 5 June 2013 - in
Ubuntu Google Authenticator

La sicurezza dei nostri sistemi è un fattore importante, in modo particolare quando dobbiamo connetterci in remoto ad un altro sistema. Un ambiente protetto ci viene fornito dalla Secure SHell (SSH), ma questo livello di sicurezza viene reso inutile se un malintenzionato riesce ad ottenerne l’accesso. Dobbiamo quindi rafforzare il login, in modo da essere tranquilli in tutto ciò che facciamo.

La sicurezza al momento dell’autenticazione può essere migliorata con Google Authenticator anche su sistemi GNU/Linux. Noi ci riferiremo in particolar modo ad Ubuntu. Quale vantaggio ci offre questo nuovo approccio? Oltre alla sola password dovremo inserire anche il codice di verifica di Google Authenticator, rendendo molto più difficile il lavoro di eventuali malintenzionati.

Per preparare questo ambiente dobbiamo lavorare un po’ con il terminale, quindi apriamolo e prepariamoci a digitare i comandi che seguono. In primo luogo installiamo Google Authenticator:

sudo apt-get install libpam-google-authenticator

Ora dobbiamo collegarci con il nostro account al server desiderato e lanciare il seguente comando:

google-authenticator

Ci verrà mostrato un QR Code come quello in figura. Prendiamo il nostro dispositivo mobile (può essere Android, ma anche iOS o BlackBerry) e inquadriamo il codice (usando un’applicazione adatta allo scopo) per aggiungere la chiave all’archivio (o apriamo l’URL che ci viene indicato per aggiungere la chiave). È importante salvare anche i codici di emergenza, nel caso in cui dovessimo accedere al server senza il telefono.

È giunto quindi il momento di rispondere alle domande che ci vengono proposte. Io vi consiglio di dare le risposte che seguono, ma potete ovviamente cambiarle.

Do you want me to update your "~/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) n

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Ora apriamo il file /etc/pam.d/sshd e inseriamo questa riga alla fine:

auth required pam_google_authenticator.so

E verifichiamo che ChallengeResponseAuthentication sia impostata a “yes” in /etc/ssh/sshd_config:

ChallengeResponseAuthentication yes

Infine dobbiamo riavviare SSH per vedere applicate le nostre modifiche:

sudo /etc/init.d/ssh restart

Ora possiamo effettuare il login al server tramite SSH con l’autenticazione in due passaggi (password + Google Authenticator). Possiamo subito notare quanto questo sia vantaggioso per la nostra sicurezza.

stmiller@brahms:~$ ssh stmiller@172.16.1.148
 Password:
 Verification code:
 Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic x86_64)

* Documentation:  https://help.ubuntu.com/

Last login: Sun Jun  2 13:20:22 2013 from 172.16.1.202
 stmiller@ubuntu1304:~$

Via | scottlinux.com

Leave a Reply

Mattia Migliorini Articolo scritto da

Studente di informatica presso l'Università di Padova, web designer, amante di Linux e dell'open source in generale. Membro di Ubuntu e di 2viLUG, da gennaio 2012 è collaboratore di Engeene.

Contatta l'autore

Previous post:

Next post: