GNU/Linux >> Linux Esercitazione >  >> Linux

Configurazione dell'autenticazione a più fattori su sistemi Linux

Con il numero crescente di violazioni e compromissioni delle password, abbiamo bisogno del maggior numero possibile di livelli di sicurezza.

Un modo per ottenere una maggiore sicurezza è aggiungere un ulteriore livello di autenticazione. Autenticazione a più fattori (MFA) è un metodo per richiedere più di una credenziale per provare la tua identità.

Cos'è l'AMF?

Di solito, quando accedi a un account o dispositivo, ti vengono richiesti un nome utente e una password. Quando esegui SSH in una macchina Linux, ti potrebbe essere richiesta una coppia di chiavi SSH. L'autenticazione a più fattori richiede agli utenti di fornire più di un'informazione per autenticarsi correttamente su un account o host Linux. Le informazioni aggiuntive possono essere una password monouso (OTP) inviata al tuo cellulare tramite SMS o credenziali da un'app come Google Authenticator, Twilio Authy o FreeOTP.

I Pluggable Authentication Modules (PAM) sono il meccanismo di autenticazione utilizzato in Linux. In questo articolo, utilizziamo il modulo Google PAM per abilitare l'autenticazione a più fattori in modo che gli utenti possano accedere utilizzando codici TOTP (One Time Password) basati sul tempo.

Implementare il modulo di autenticazione di Google

Innanzitutto, installa il modulo di autenticazione di Google su una macchina Linux. Per farlo, apri una finestra di Terminale ed esegui il seguente comando:

# sudo dnf install google-authenticator -y

Quindi, configura google-authenticator per generare codici OTP. Esegui il comando seguente per iniziare il processo di configurazione:

# google-authenticator

Questo strumento pone una serie di domande. Per la maggior parte di queste domande, rispondi sì (y ), a meno che tu non abbia bisogno di qualcosa di diverso da quello predefinito.

Do you want authentication tokens to be time-based (y/n) y

Questo genera un codice QR sullo schermo, una chiave segreta e codici di ripristino. Utilizzando un'app di autenticazione come Google Authenticator su uno smartphone, scansiona il codice QR generato dal comando sopra. Rispondi alle altre domande per completare il processo.

Do you want me to update your "/home/user/.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) y

By default, a new token is generated every 30 seconds by the mobile app. 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. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server.
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 three login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y

Configura SSH per richiedere il codice OTP

Modifica un paio di file di configurazione SSH per richiedere un codice OTP come autenticazione di secondo fattore.

Utilizzando il tuo editor di testo preferito, apri /etc/pam.d/sshd per la modifica:

# sudo vi /etc/pam.d/sshd

Aggiungi le seguenti righe di configurazione:

auth required pam_google_authenticator.so nullok

Questa linea di configurazione consente a PAM di utilizzare il modulo PAM di Google Authenticator, che abbiamo installato nel passaggio precedente.

Con il nullok voce sulla linea, SSH non richiederà un codice OTP per gli utenti sulla macchina che non sono configurati per MFA. Rimuovere completamente questa opzione per obbligare ogni utente a utilizzare l'autenticazione a più fattori su questo sistema.

Quindi, commenta la seguente riga per disabilitare l'autenticazione della password per gli accessi:

#auth substack password-auth

Salva e chiudi il file.

Nel passaggio successivo, modifica la configurazione SSH per visualizzare la richiesta del codice OTP dopo l'avvenuta autenticazione della coppia di chiavi SSH.

Usando il tuo editor di testo preferito apri /etc/ssh/sshd_config per la modifica:

# sudo vi /etc/ssh/sshd_config

Trova e commenta la riga ChallengeResponseAuthentication no e aggiungi una nuova riga di configurazione ChallengeResponseAuthentication sì . Questa riga consente a SSH di chiedere una Risposta alla sfida . Nel nostro caso, la risposta è un codice OTP dopo un'autenticazione basata su chiave SSH riuscita. Ecco la riga:

#ChallengeResponseAuthentication no

ChallengeResponseAuthentication yes

Infine, fai sapere a SSH di chiedere entrambi una chiave SSH e un codice di verifica per autenticarci. SSH verifica la presenza di una coppia di chiavi SSH (publickey ) e poi il codice OTP (keyboard-interactive ). In fondo al file, aggiungi:

AuthenticationMethods publickey,keyboard-interactive

Per abilitare la coppia di chiavi SSH e l'autenticazione OTP solo per un utente specifico, aggiungi invece qualcosa di simile a questo:

Match user <username>

           AuthenticationMethods publickey,keyboard-interactive

Salva il file ed esci. Riavvia il servizio SSH per rendere effettive le modifiche:

# sudo systemctl restart sshd

Verifica la configurazione

Proviamo la nostra configurazione. Apri una finestra Terminale e SSH nell'host Linux. Ti viene richiesto un codice OTP dall'app di autenticazione.

Per richiedere una password insieme a una coppia di chiavi SSH e un codice OTP, quindi aprire il /etc/pam.d/ssd file per la modifica e decommenta questa riga:

auth substack password-auth

Quindi, apri /etc/ssh/sshd_config file per la modifica e aggiungere un altro metodo di autenticazione:

AuthenticationMethods publickey,password publickay,keyboard-interactive

Non dimenticare di riavviare SSH dopo aver apportato queste modifiche.

Concludi

Con MFA, aggiungiamo un altro livello di autenticazione, rendendo i nostri sistemi più sicuri. Oltre alla tradizionale autenticazione basata su nome utente e password, utilizziamo metodi più sicuri come una coppia di chiavi SSH e TOTP (Google Authenticator) per accedere al sistema. Implementando queste misure, miglioriamo la sicurezza del sistema e rendiamo più difficile violare i dispositivi Linux.

[ Vuoi saperne di più sulla sicurezza? Consulta la checklist di sicurezza e conformità IT. ]


Linux
  1. 10 momenti che hanno plasmato la storia di Linux

  2. Sicurezza Sysadmin:8 controlli di blocco di Linux

  3. 13 tutorial sulla sicurezza di Linux

  4. Amministrazione di massa/remota Linux?

  5. Impostazione delle variabili di ambiente Linux

Installa il codice di Microsoft Visual Studio in Linux

Come impostare l'autenticazione a più fattori per SSH in Linux

Configurazione di logrotate in Linux

Installazione del codice di Microsoft Visual Studio su Linux

I 3 migliori sistemi operativi per server Linux nel 2021

Impostazione del fuso orario in Linux