Configurez Kodi IPTV m3u en moins de 2 minutes et regardez des chaînes illimitées

authentification

Comment configurer l’authentification multifacteur sur Ubuntu 18.04

Vues : 37

Introduction

L’authentification à deux facteurs (2FA) est une méthode d’authentification qui nécessite la saisie de plusieurs informations pour se connecter avec succès à un compte ou à un appareil. En plus de saisir une combinaison nom d’utilisateur et mot de passe, 2FA exige que l’utilisateur saisisse une information supplémentaire telle qu’un mot de passe à usage unique (OTP), comme un code de vérification à six chiffres.

En général, 2FA oblige l’utilisateur à saisir des informations de différents types:

  • Quelque chose que l’utilisateur sait , comme un mot de passe
  • Quelque chose que l’utilisateur a , comme le code de vérification généré à partir d’une application d’authentification

2FA est un sous-ensemble d’ authentification multi-facteur (MFA), qui, en plus de quelque chose que l’utilisateur sait et de quelque chose qu’il possède, nécessite quelque chose que l’utilisateur est . C’est le cas de la biométrie, qui utilise des technologies telles que l’empreinte digitale ou la reconnaissance vocale.

2FA permet de renforcer le processus d’authentification à un certain service ou appareil: même si le mot de passe était compromis, un attaquant devrait également avoir accès à l’appareil de l’utilisateur qui contient l’application d’authentification utilisée pour générer les codes de sécurité. Pour cette raison, de nombreux services en ligne ( y compris Milbako ) offrent la possibilité d’activer 2FA pour les comptes d’utilisateurs afin d’augmenter la sécurité des comptes en ce qui concerne la phase d’authentification.

Dans ce guide, vous allez configurer 2FA pour un utilisateur sudoer non root sur une installation Ubuntu 18.04 avec le module Google PAM. Puisque vous configurez 2FA sur l’utilisateur non root, vous pourrez toujours accéder à la machine depuis votre compte root en cas de verrouillage. Le didacticiel sera suffisamment général pour être appliqué à la fois au serveur et aux installations de bureau, à la fois locales et distantes.

Conditions préalables

Avant de commencer ce guide, vous aurez besoin des éléments suivants:

  • Un serveur Ubuntu 18.04 ou un environnement de bureau. Si vous utilisez un serveur Ubuntu, configurez-le en suivant le guide de configuration initiale du serveur Ubuntu 18.04 , y compris un utilisateur non root avec les privilèges sudo et un pare-feu.
  • Une application d’authentification installée sur votre appareil mobile, avec laquelle vous pouvez numériser des codes QR 2FA, tels que Google Authenticator ou Authy .

Étape 1 – Installation du module Google PAM

Afin de configurer 2FA sur Ubuntu 18.04, vous devez installer le module PAM de Google pour Linux. Le module d’authentification enfichable (PAM) est le mécanisme d’authentification utilisé par Linux. Vous utiliserez le module PAM de Google pour que votre utilisateur s’authentifie sur 2FA à l’aide de codes OTP générés par Google.

Tout d’abord, connectez-vous en tant qu’utilisateur non root que vous avez configuré dans les conditions préalables:

ssh suuser@ip_de_votre_serveur

Mettez à jour les référentiels Ubuntu pour télécharger la dernière version de l’authentificateur:

sudo apt-get update

Maintenant que vos référentiels sont à jour, installez la dernière version du module PAM:

sudo apt-get install libpam-google-authenticator

Il s’agit d’un très petit package sans dépendances, son installation prendra donc quelques secondes. Dans la section suivante, vous allez configurer 2FA pour l’utilisateur non root sur le système.

Étape 2 – Configuration de 2FA pour un utilisateur

Maintenant que vous avez installé le module PAM, vous l’exécuterez pour générer un code QR pour l’utilisateur connecté. Cela créera le code, mais l’environnement Ubuntu ne nécessitera pas 2FA jusqu’à ce que vous l’ayez activé plus tard dans ce didacticiel.

Exécutez la google-authenticatorcommande pour démarrer et configurer le module PAM:

  • google-authenticator

La commande présentera une invite qui vous posera plusieurs questions de configuration. La première question vous demandera si vous souhaitez que les jetons soient basés sur le temps. Les jetons d’authentification basés sur le temps expireront après un laps de temps défini, qui par défaut est de 30 secondes sur la plupart des systèmes. Les jetons temporels sont plus sécurisés que les jetons non temporels, et la plupart des implémentations 2FA les utilisent. Vous pouvez choisir l’une ou l’autre option ici, mais ce didacticiel choisira “Yes” d’utiliser des jetons d’authentification basés sur le temps:

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

Après avoir répondu y à cette question, vous verrez plusieurs lignes sorties sur votre console:

  • Un code QR: c’est le code que vous devez scanner à l’aide de votre application d’authentification. Une fois que vous l’avez scanné, il se transformera immédiatement en un appareil générateur de code qui créera un nouveau OTP toutes les 30 secondes.
  • Votre clé secrète: il s’agit d’une méthode alternative pour configurer votre application d’authentification. Si vous utilisez une application qui ne prend pas en charge le scan QR, vous pouvez entrer la clé secrète pour configurer votre application d’authentification.
  • Votre code de vérification: il s’agit du premier code de vérification à six chiffres généré par ce code QR spécifique.
  • Vos codes à gratter d’urgence: également appelés codes de sauvegarde, ces jetons à usage unique vous permettront de passer l’authentification 2FA si vous perdez votre appareil d’authentification. Conservez ces codes dans un endroit sûr pour éviter d’être verrouillé du compte.

Après avoir configuré votre application d’authentification et enregistré vos codes de sauvegarde dans un endroit sûr, l’invite vous demandera si vous souhaitez mettre à jour le fichier de configuration. Si vous le souhaitez “n“, vous devrez réexécuter le programme de configuration. Vous entrerez “y” pour enregistrer vos modifications et avancer:

Sortie:

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

La question suivante vous demandera si vous souhaitez interdire l’utilisation des codes d’authentification plusieurs fois. Par défaut, vous ne pouvez utiliser chaque code qu’une seule fois, même s’il reste valide pendant 30 secondes. C’est le choix le plus sûr car il empêche les attaques de relecture d’un attaquant qui a réussi à obtenir votre code de vérification après l’avoir utilisé. Pour cette raison, il est plus sûr de ne pas autoriser les codes à être utilisés plusieurs fois. Réponse “y” pour interdire plusieurs utilisations du même jeton:

Sortie:

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

La question suivante vous demande si vous souhaitez que les jetons d’authentification soient acceptés peu de temps avant ou après leur heure de validité normale. Les codes de vérification sont très sensibles au temps, ce qui signifie que vos jetons peuvent être refusés si vos appareils ne sont pas synchronisés. Cette option vous permet de contourner ce problème en prolongeant la durée de validité par défaut des codes de vérification afin que, même si vos appareils étaient temporairement désynchronisés, vos codes d’authentification soient acceptés de toute façon. Veiller à ce que l’heure soit la même sur tous vos appareils est la meilleure option, car le choix “Yes” diminuera la sécurité de votre système. Répondez “n” à cette question pour ne pas autoriser un délai de grâce:

Sortie:
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) n

La dernière question vous demande si vous souhaitez activer la limitation de débit pour les tentatives de connexion. Cela ne permettra pas plus de trois tentatives de connexion échouées toutes les 30 secondes, ce qui est une bonne technique de renforcement de la sécurité. Activez-le en répondant “y“:

Sortie:
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

Vous avez maintenant configuré et généré des codes 2FA pour l’utilisateur non root avec le module PAM. Maintenant que vos codes sont générés, vous devez activer 2FA dans votre environnement.

Étape 3 – Activer 2FA dans Ubuntu

Le module Google PAM génère maintenant des codes 2FA pour votre utilisateur, mais Ubuntu ne sait pas encore qu’il doit utiliser les codes dans le cadre du processus d’authentification de l’utilisateur. Dans cette étape, vous mettrez à jour la configuration d’Ubuntu pour exiger des jetons 2FA en plus de la méthode d’authentification régulière.

Vous avez deux options différentes à ce stade:

  • Vous pouvez exiger 2FA chaque fois qu’un utilisateur se connecte au système et chaque fois qu’un utilisateur demande des sudoprivilèges.
  • Vous ne pouvez exiger 2FA que lors de la connexion, les sudotentatives d’authentification ultérieures nécessitant uniquement le mot de passe utilisateur.

La première option sera idéale pour un environnement partagé, où vous voudrez peut-être protéger toutes les actions qui nécessitent des sudoautorisations. La deuxième approche est plus pratique pour un environnement de bureau local, où vous êtes le seul utilisateur du système.

Remarque: Si vous activez 2FA sur une machine distante à laquelle vous accédez via SSH, comme une gouttelette MilBako, vous devez suivre les étapes deux et trois du guide Comment configurer l’authentification multifacteur pour SSH sur Ubuntu 16.04 avant de continuer Didacticiel. Les étapes restantes de ce didacticiel s’appliquent à toutes les installations Ubuntu, mais les environnements distants nécessitent des mises à jour supplémentaires pour rendre le service SSH conscient de 2FA.

Si vous n’utilisez pas SSH pour accéder à votre installation Ubuntu, vous pouvez immédiatement passer aux étapes restantes du didacticiel.

Exiger 2FA pour les demandes de connexion et sudo

Pour être invité à entrer 2FA lors de la connexion et des demandes ultérieures d’élévation de privilèges, vous devez modifier le /etc/pam.d/common-auth fichier en ajoutant une ligne à la fin du fichier existant.

Le common-authfichier s’applique à tous les mécanismes d’authentification du système, quel que soit l’environnement de bureau utilisé. Il s’applique également aux demandes d’authentification qui se produisent après la connexion de l’utilisateur au système, comme lors d’une sudodemande d’escalade lors de l’installation d’un nouveau package à partir du terminal.

Ouvrez ce fichier avec la commande suivante:

sudo nano /etc/pam.d/common-auth

Ajoutez la ligne en surbrillance à la fin du fichier:

/etc/pam.d/common-auth
...
# and here are more per-package modules (the "Additional" block)
session required    pam_unix.so
session optional    pam_systemd.so
# end of pam-auth-update config
auth required pam_google_authenticator.so nullok

Cette ligne indique au système d’authentification Ubuntu d’exiger 2FA lors de la connexion via le module Google PAM. L’ nullokoption permet aux utilisateurs existants de se connecter au système même s’ils n’ont pas configuré l’authentification 2FA pour leur compte. En d’autres termes, les utilisateurs qui ont configuré 2FA devront entrer un code d’authentification à la prochaine connexion, tandis que les utilisateurs qui n’ont pas exécuté la google-authenticatorcommande pourront se connecter avec uniquement leur nom d’utilisateur et leur mot de passe jusqu’à ce qu’ils configurent 2FA.

Enregistrez et fermez le fichier après avoir ajouté la ligne.

Exiger 2FA pour la connexion uniquement

Si vous ne souhaitez être invité à entrer 2FA que lors de votre première connexion au système sur un environnement de bureau, vous devez modifier le fichier de configuration du gestionnaire de bureaux que vous utilisez. Le nom du fichier de configuration correspond généralement au nom de l’environnement de bureau. Par exemple, le fichier de configuration pour gdm, l’environnement de bureau Ubuntu par défaut commençant après Ubuntu 16.04, est /etc/pam.d/gdm.

Dans le cas d’un serveur sans Head, tel qu’un VPS ou Dédié, vous éditerez le /etc/pam.d/common-sessionfichier à la place. Ouvrez le fichier correspondant à votre environnement:

sudo nano /etc/pam.d/common-session

Ajoutez la ligne en surbrillance à la fin du fichier: /etc/pam.d/common-session

#
# /etc/pam.d/common-session - session-related modules common to all services
#
...
# # and here are more per-package modules (the "Additional" block)
session required    pam_unix.so
session optional    pam_systemd.so
# end of pam-auth-update config
auth required pam_google_authenticator.so nullok

Cela indiquera à Ubuntu d’exiger 2FA lorsqu’un utilisateur se connecte au système via la ligne de commande (localement ou à distance via SSH), mais pas lors des tentatives d’authentification ultérieures, telles que les sudodemandes.

Vous avez maintenant correctement configuré Ubuntu pour vous inviter à entrer 2FA soit juste lors de la connexion, soit pour chaque action authentifiée effectuée sur le système. Vous êtes maintenant prêt à tester la configuration et assurez-vous que vous êtes invité à entrer 2FA lorsque vous vous connectez à votre installation Ubuntu.

Étape 4 – Test de 2FA

À l’étape précédente, vous avez configuré 2FA pour générer des codes toutes les 30 secondes. Dans cette étape, vous testerez 2FA en vous connectant à votre environnement Ubuntu.

Tout d’abord, déconnectez-vous et reconnectez-vous à votre environnement Ubuntu:

ssh suuser@ip_de_votre_serveur

Si vous utilisez l’authentification par mot de passe, vous serez invité à entrer votre mot de passe utilisateur:

Sortie:
Password:

Remarque: Si vous testez cela sur un VPS ou un autre serveur distant protégé par une authentification par certificat, vous ne serez pas invité à entrer un mot de passe, et votre clé sera transmise et acceptée automatiquement. Vous ne serez donc invité qu’à entrer votre code de vérification.

Entrez votre mot de passe et vous serez invité à entrer le code de vérification 2FA:

Sortie:
Verification code:

Après avoir entré votre code de vérification, vous serez connecté:

Sortie:
suuser@ip_de_votre_serveur: ~#

 

Si 2FA n’était activé que pour les connexions, vous ne serez plus invité à entrer vos codes 2FA jusqu’à l’expiration de la session ou la déconnexion manuelle. Si vous avez activé 2FA via le common-authfichier, vous serez invité à le faire à chaque connexion et demande de privilèges sudo:

Sortie:
suuser@ip_de_votre_serveur: ~# sudo -s

sudo password for suuser:

Verification code:

root@ip_de_votre_serveur:

Dans cette étape, vous avez confirmé que votre configuration 2FA fonctionne comme prévu. Si vous n’avez pas été invité à entrer vos codes de vérification dans cette phase, revenez à l’étape trois du didacticiel et confirmez que vous avez modifié le fichier d’authentification Ubuntu correct

Étape 5 – Empêcher un verrouillage 2FA

Dans le cas d’un téléphone perdu ou essuyé, il est important d’avoir des méthodes de sauvegarde appropriées en place pour récupérer l’accès à votre compte compatible 2FA. Lorsque vous configurez 2FA pour la première fois, vous disposez de quelques options pour vous assurer que vous pouvez récupérer d’un verrouillage:

  • Enregistrez une copie de sauvegarde de vos codes de configuration secrets dans un endroit sûr. Vous pouvez le faire manuellement, mais certaines applications d’authentification comme Authy fournissent des fonctionnalités de code de sauvegarde.
  • Enregistrez vos codes de récupération dans un endroit sûr accessible en dehors de votre environnement compatible 2FA.

Si, pour une raison quelconque, vous n’avez pas accès à vos options de sauvegarde, vous pouvez prendre des mesures supplémentaires pour récupérer l’accès à votre environnement local ou serveur distant compatible 2FA.

Étape 6 – Récupération à partir d’un verrouillage 2FA sur un environnement local (facultatif)

Si vous avez un accès physique à la machine, vous pouvez démarrer en mode de secours pour désactiver 2FA. Le mode de secours est un type cible (similaire à un niveau d’exécution ) sous Linux qui est utilisé pour effectuer des tâches administratives. Vous devrez modifier certains paramètres dans GRUB , qui est le chargeur de démarrage par défaut dans Ubuntu, pour entrer en mode de secours.

Pour accéder à GRUB, vous devez d’abord redémarrer votre machine:

reboot

Lorsque le menu GRUB apparaît, assurez-vous que l’ entrée Ubuntu est en surbrillance. Il s’agit du nom par défaut sur une installation 18.04, mais il peut être différent si vous l’avez modifié manuellement après l’installation.

authentification

Ensuite, appuyez sur la touche de votre clavier pour modifier la configuration GRUB avant de démarrer sur votre système.

authentification

Dans le fichier qui apparaît, faites défiler vers le bas jusqu’à ce que vous voyiez une ligne commençant par linuxet finissant par $vt_handoff. Allez à la fin de cette ligne et ajoutez systemd.unit=rescue.target, en vous assurant de laisser un espace entre $vt_handoff et systemd.unit=rescue.target. Cela indiquera à votre machine Ubuntu de démarrer en mode de secours.

authentificationUne fois les modifications apportées, enregistrez le fichier avec la combinaison de touches Ctrl+X . Votre machine va redémarrer et vous vous retrouverez sur une ligne de commande. Appuyez “Enter” pour passer en mode sauvetage.

authentification

Une fois en mode de secours, ouvrez le fichier de configuration de Google Authenticator. Celui-ci sera situé dans le répertoire personnel de l’utilisateur verrouillé:

nano /home/suuser/.google-authenticator

La première ligne de ce fichier est la clé secrète de l’utilisateur, qui est utilisée pour configurer une application d’authentification.

Vous avez maintenant deux choix:

  • Vous pouvez copier la clé secrète et configurer votre application d’authentification.
  • Si vous souhaitez commencer à partir d’une table rase, vous pouvez supprimer ~/.google-authenticator complètement le fichier pour désactiver 2FA pour cet utilisateur. Après vous être connecté à nouveau en tant qu’utilisateur non root, vous pouvez configurer à nouveau 2FA et obtenir une toute nouvelle clé secrète.

Dans les deux cas, vous pouvez récupérer à partir d’un verrouillage 2FA sur un environnement local à l’aide du chargeur de démarrage GRUB. Dans l’étape suivante, vous récupérerez d’un verrouillage 2FA sur un environnement distant.

tape 7 – Récupération à partir d’un verrouillage 2FA sur un environnement distant (facultatif)

Si votre compte sudoer non root est verrouillé sur une machine distante, vous pouvez utiliser l’ utilisateur root pour désactiver temporairement 2FA ou reconfigurer 2FA.

Commencez par vous connecter à votre machine avec l’ utilisateur root :

ssh root@ip_de_votre_serveur

Une fois connecté, ouvrez le fichier de paramètres Google Authenticator qui se trouve dans le répertoire personnel de l’utilisateur verrouillé:

sudo nano /home/suuser/.google_authenticator

La première ligne de ce fichier est la clé secrète de l’utilisateur, ce dont vous avez besoin pour configurer une application d’authentification.

Vous avez maintenant deux choix:

  • Si vous souhaitez configurer un nouvel appareil ou un appareil effacé, vous pouvez utiliser la clé secrète pour reconfigurer votre application d’authentification.
  • Si vous souhaitez commencer à partir d’une table rase, vous pouvez supprimer complètement le fichier pour désactiver 2FA pour cet utilisateur. Après vous être connecté en tant qu’utilisateur non root, vous pouvez à nouveau configurer 2FA et obtenir une toute nouvelle clé secrète./home/suuser/.google_authenticator

Dans les deux cas, vous avez pu récupérer à partir d’un verrouillage 2FA sur un environnement local en utilisant l’ utilisateur root

Conclusion

Dans ce didacticiel, vous avez configuré 2FA sur une machine Ubuntu 18.04. Avec 2FA configuré sur votre environnement, vous avez ajouté une couche de protection supplémentaire à votre compte et vous avez rendu votre système plus sécurisé. En plus de votre méthode d’authentification traditionnelle, vous devrez également entrer un code de vérification supplémentaire pour vous connecter. Cela rend impossible pour un attaquant qui a réussi à obtenir vos informations de connexion de se connecter à votre compte sans ce code de vérification supplémentaire. .

Sabrina

Sabrina

Développeur informatique, (All-PHP's, JAVA, PERL, C, C++, Visual-Basic, Pascal, SPSS, SQL). Administrateur de réseaux informatiques, (Debian, Ubuntu) (Proxmox, Cpanel, Webmin, DNS), et Webmaster (Apache) ( Wordpress, PrestaShop, WooCommerce, Webmail Serveur et Client) 1990 -> 2017, Retraité depuis 2018... Contact: webmaster@milbako.com

Voir tous les articles de Sabrina →

Laisser un commentaire

Traduire