Ricerca nel sito web

Come impostare l'autenticazione a due fattori per SSH su Fedora


Ogni giorno sembrano essere segnalate numerose violazioni della sicurezza in cui i nostri dati sono in pericolo. Nonostante il fatto che SSH sia un modo sicuro per stabilire una connessione remota a un sistema Linux, un utente sconosciuto può comunque accedere alla tua macchina Linux se ruba le tue chiavi SSH, anche se disabiliti le password o consenti solo connessioni SSH su chiavi pubbliche e private.

In questo articolo spiegheremo come impostare l'autenticazione a due fattori (2FA) per SSH sulla distribuzione Linux Fedora utilizzando Google Authenticator per accedere un sistema Linux remoto in modo più sicuro fornendo un numero TOTP (The Time-based One-time Password) generato casualmente da un'applicazione di autenticazione su un dispositivo mobile.

Leggi anche: Come impostare l'autenticazione a due fattori per gli accessi SSH in CentOS e Debian

Tieni presente che puoi utilizzare qualsiasi applicazione di autenticazione bidirezionale per il tuo dispositivo mobile compatibile con l'algoritmo TOTP. Sono disponibili numerose app gratuite per Android o IOS che supportano TOTP e Google Authenticator, ma questo articolo utilizza Google Authenticator come esempio.

Installazione di Google Authenticator su Fedora

Innanzitutto, installa l'applicazione Google Authenticator sul tuo server Fedora utilizzando il seguente comando dnf.

sudo dnf install -y google-authenticator

Una volta installato Google Authenticator, ora puoi eseguire l'applicazione.

google-authenticator

L'applicazione ti propone una serie di domande. I seguenti frammenti mostrano come rispondere per una configurazione ragionevolmente sicura.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

L'applicazione fornisce una chiave segreta, un codice di verifica e codici di ripristino. Conserva queste chiavi in un luogo sicuro e sicuro, poiché rappresentano l'unico modo per accedere al tuo server in caso di smarrimento del dispositivo mobile.

Configurazione dell'autenticazione del telefono cellulare

Sul tuo telefono cellulare, vai all'app store Google Play o iTunes e cerca Google Authenticator e installa l'applicazione.

Ora apri l'applicazione Google Authenticator sul tuo cellulare e scansiona il codice QR visualizzato sullo schermo del terminale Fedora. Una volta completata la scansione del codice QR, otterrai un numero generato casualmente dall'applicazione di autenticazione e utilizzerai questo numero ogni volta che ti connetterai al tuo server Fedora da remoto.

Completa la configurazione di Google Authenticator

L'applicazione Google Authenticator richiede ulteriori domande e l'esempio seguente mostra come rispondere per impostare una configurazione sicura.

Ora devi configurare SSH per utilizzare la nuova autenticazione bidirezionale come spiegato di seguito.

Configura SSH per utilizzare Google Authenticator

Per configurare SSH per utilizzare l'applicazione autenticatore, devi prima disporre di una connessione SSH funzionante utilizzando chiavi SSH pubbliche, poiché disabiliteremo le connessioni con password.

Apri il file /etc/pam.d/sshd sul tuo server.

sudo vi /etc/pam.d/sshd

Commenta la riga auth substack password-auth nel file.

#auth       substack     password-auth

Successivamente, posiziona la riga seguente alla fine del file.

auth sufficient pam_google_authenticator.so

Salva e chiudi il file.

Successivamente, apri e modifica il file /etc/ssh/sshd_config.

sudo vi /etc/ssh/sshd_config

Cerca la riga ChallengeResponseAuthentication e modificala in yes.

ChallengeResponseAuthentication yes

Cerca la riga PasswordAuthentication e modificala in no.

PasswordAuthentication no

Successivamente, posiziona la riga seguente alla fine del file.

AuthenticationMethods publickey,password publickey,keyboard-interactive

Salvare e chiudere il file, quindi riavviare SSH.

sudo systemctl restart sshd

Testare l'autenticazione a due fattori su Fedora

Ora prova a connetterti al tuo server da remoto, ti chiederà di inserire un codice di verifica.

ssh [email 

Verification code:

Il codice di verifica viene generato in modo casuale sul tuo cellulare dalla tua applicazione di autenticazione. Poiché il codice generato cambia ogni pochi secondi, è necessario inserirlo rapidamente prima che ne crei uno nuovo.

Se inserisci il codice di verifica errato, non sarai in grado di connetterti al sistema e riceverai un errore di autorizzazione negata.

ssh [email 

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
Conclusione

Implementando questa semplice autenticazione bidirezionale, hai aggiunto un ulteriore livello di sicurezza al tuo sistema e inoltre questo rende più difficile per un utente sconosciuto ottenere l'accesso al tuo server.