GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration de l'authentification multifacteur sur les systèmes Linux

Avec le nombre croissant de violations et de compromissions de mots de passe, nous avons besoin d'autant de couches de sécurité que possible.

Une façon d'obtenir une sécurité accrue consiste à ajouter une couche supplémentaire d'authentification. Authentification multi-facteurs (MFA) est une méthode qui exige plusieurs informations d'identification pour prouver votre identité.

Qu'est-ce que l'AMF ?

Généralement, lorsque vous vous connectez à un compte ou à un appareil, un nom d'utilisateur et un mot de passe vous sont demandés. Lorsque vous vous connectez en SSH à une machine Linux, une paire de clés SSH peut vous être demandée. L'authentification multifacteur oblige les utilisateurs à fournir plusieurs informations pour s'authentifier avec succès auprès d'un compte ou d'un hôte Linux. Les informations supplémentaires peuvent être un mot de passe à usage unique (OTP) envoyé sur votre téléphone portable par SMS ou des informations d'identification d'une application comme Google Authenticator, Twilio Authy ou FreeOTP.

Les modules d'authentification enfichables (PAM) sont le mécanisme d'authentification utilisé sous Linux. Dans cet article, nous utilisons le module Google PAM pour activer MFA afin que les utilisateurs puissent se connecter à l'aide de codes de mot de passe à usage unique basés sur le temps (TOTP).

Mettre en œuvre le module d'authentification Google

Tout d'abord, installez le module Google Authentication sur une machine Linux. Pour ce faire, ouvrez une fenêtre Terminal et exécutez la commande suivante :

# sudo dnf install google-authenticator -y

Ensuite, configurez google-authenticator pour générer des codes OTP. Exécutez la commande suivante pour commencer le processus de configuration :

# google-authenticator

Cet outil pose une série de questions. Pour la plupart de ces questions, répondez oui (y ), sauf si vous avez besoin d'autre chose que la valeur par défaut.

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

Cela génère un code QR à l'écran, une clé secrète et des codes de récupération. À l'aide d'une application d'authentification telle que Google Authenticator sur un smartphone, scannez le code QR généré à partir de la commande ci-dessus. Répondez au reste des questions pour terminer le processus.

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

Configurer SSH pour demander le code OTP

Modifiez quelques fichiers de configuration SSH pour demander un code OTP comme authentification à second facteur.

À l'aide de votre éditeur de texte préféré, ouvrez /etc/pam.d/sshd pour l'édition :

# sudo vi /etc/pam.d/sshd

Ajoutez les lignes de configuration suivantes :

auth required pam_google_authenticator.so nullok

Cette ligne de configuration permet à PAM d'utiliser le module Google Authenticator PAM, que nous avons installé à l'étape précédente.

Avec le nullok entrée sur la ligne, SSH ne nécessitera pas de code OTP pour les utilisateurs de la machine qui ne sont pas configurés pour MFA. Supprimez complètement cette option pour forcer chaque utilisateur à utiliser MFA sur ce système.

Ensuite, commentez la ligne suivante pour désactiver l'authentification par mot de passe pour les connexions :

#auth substack password-auth

Enregistrez et fermez le fichier.

À l'étape suivante, modifiez la configuration SSH pour afficher l'invite du code OTP après l'authentification réussie de la paire de clés SSH.

À l'aide de votre éditeur de texte préféré, ouvrez /etc/ssh/sshd_config pour l'édition :

# sudo vi /etc/ssh/sshd_config

Recherchez et commentez la ligne ChallengeResponseAuthentication no et ajoutez une nouvelle ligne de configuration ChallengeResponseAuthentication yes . Cette ligne permet à SSH de demander une réponse au défi . Dans notre cas, la réponse est un code OTP après une authentification réussie basée sur une clé SSH. Voici la ligne :

#ChallengeResponseAuthentication no

ChallengeResponseAuthentication yes

Enfin, faites savoir à SSH de demander les deux une clé SSH et un code de vérification pour nous authentifier. SSH recherche une paire de clés SSH (publickey ) puis le code OTP (keyboard-interactive ). En bas du fichier, ajoutez :

AuthenticationMethods publickey,keyboard-interactive

Pour activer la paire de clés SSH et l'authentification OTP pour un utilisateur spécifique uniquement, ajoutez plutôt quelque chose comme ceci :

Match user <username>

           AuthenticationMethods publickey,keyboard-interactive

Enregistrez le fichier et quittez. Redémarrez le service SSH pour que les modifications prennent effet :

# sudo systemctl restart sshd

Tester la configuration

Testons notre configuration. Ouvrez une fenêtre de terminal et connectez-vous en SSH à l'hôte Linux. Un code OTP vous est demandé depuis l'application d'authentification.

Pour qu'on vous demande un mot de passe avec une paire de clés SSH et un code OTP, ouvrez ensuite le /etc/pam.d/ssd fichier à éditer et décommentez cette ligne :

auth substack password-auth

Ensuite, ouvrez /etc/ssh/sshd_config fichier à modifier et ajoutez une autre méthode d'authentification :

AuthenticationMethods publickey,password publickay,keyboard-interactive

N'oubliez pas de redémarrer SSH après avoir effectué ces modifications.

Récapitulez

Avec MFA, nous ajoutons une autre couche d'authentification, ce qui rend nos systèmes plus sûrs. En plus de l'authentification traditionnelle basée sur le nom d'utilisateur et le mot de passe, nous utilisons des méthodes plus sécurisées comme une paire de clés SSH et TOTP (Google Authenticator) pour se connecter au système. En mettant en œuvre ces mesures, nous améliorons la sécurité du système et rendons les appareils Linux plus difficiles à pénétrer.

[ Vous voulez en savoir plus sur la sécurité ? Consultez la liste de vérification de la sécurité informatique et de la conformité. ]


Linux
  1. Une introduction à l'espace d'échange sur les systèmes Linux

  2. 10 moments qui ont façonné l'histoire de Linux

  3. 4 outils pour construire des systèmes Linux embarqués

  4. 13 tutoriels de sécurité Linux

  5. Définition des variables d'environnement Linux

Installer le code Microsoft Visual Studio sous Linux

Comment configurer l'authentification multifacteur pour SSH sous Linux

Configuration de logrotate sous Linux

Installation de Microsoft Visual Studio Code sur Linux

Les 3 meilleurs systèmes d'exploitation pour serveurs Linux en 2021

Réglage du fuseau horaire sous Linux