Agence web » Actualités du digital » Comment configurer l'authentification à deux facteurs sur un Raspberry Pi

Comment configurer l'authentification à deux facteurs sur un Raspberry Pi

Le Raspberry Pi est partout maintenant, c'est pourquoi il a attiré l'attention des acteurs de la menace et des cybercriminels. Nous allons vous montrer comment sécuriser votre Pi avec une authentification à deux facteurs.

L'incroyable Raspberry Pi

Le Raspberry Pi est un ordinateur monocarte. Il a été lancé au Royaume-Uni en 2012 dans le but d'amener les enfants à bricoler, créer et apprendre du code. Le facteur de forme d'origine était une carte de la taille d'une carte de crédit, alimentée par un chargeur de téléphone.

Il fournit une sortie HDMI, des ports USB, une connectivité réseau et exécute Linux. Les ajouts ultérieurs à la gamme comprenaient des versions encore plus petites conçues pour être incorporées dans des produits ou fonctionner comme des systèmes sans tête. Les prix varient de 5 $ pour le Pi Zero minimaliste à 75 $ pour le Pi 4 B / 8 Go.

Son succès a été incroyable; plus de 30 millions de ces petits ordinateurs se sont vendus dans le monde. Les amateurs ont fait des choses incroyables et inspirantes avec eux, y compris en flottant un au bord de l'espace et en arrière sur un ballon.

Hélas, une fois qu'une plateforme informatique est suffisamment répandue, elle attire inévitablement l'attention des cybercriminels. C'est terrible de penser au nombre de Pi qui utilisent le compte utilisateur et le mot de passe par défaut. Si votre Pi est accessible au public et accessible depuis Internet par Secure Shell (SSH), il doit être sécurisé.

Même si vous n'avez pas de données ou de logiciels précieux sur votre Pi, vous devez le protéger car votre Pi n'est pas la cible réelle, c'est juste un moyen d'accéder à votre réseau. Une fois qu'un acteur de la menace a pris pied dans un réseau, il pivote vers les autres appareils qui l'intéressent réellement.

Authentification à deux facteurs

L'authentification – ou l'accès à un système – nécessite un ou plusieurs facteurs. Les facteurs sont classés comme suit:

  • Quelque chose que vous savez: Comme un mot de passe ou une phrase.
  • Quelque chose que vous avez: Comme un téléphone portable, un jeton physique ou un dongle.
  • Quelque chose que vous êtes: Une lecture biométrique, comme une empreinte digitale ou un scan rétinien.

L'authentification multifacteur (MFA) nécessite un mot de passe et un ou plusieurs éléments des autres catégories. Pour notre exemple, nous allons utiliser un mot de passe et un téléphone portable. Le téléphone portable exécutera une application d'authentification Google et le Pi exécutera un module d'authentification Google.

Une application de téléphone portable est liée à votre Pi en scannant un code QR. Cela transmet des informations de base à votre téléphone portable à partir du Pi, garantissant que leurs algorithmes de génération de nombres produisent les mêmes codes simultanément. Les codes sont appelés mots de passe à usage unique basés sur le temps (TOTP).

Lorsqu'il reçoit une demande de connexion, votre Pi génère un code. Vous utilisez l'application d'authentification sur votre téléphone pour voir le code actuel, puis votre Pi vous demandera votre mot de passe et votre code d'authentification. Votre mot de passe et le TOTP doivent être corrects avant de pouvoir vous connecter.

Configuration du Pi

Si vous connectez généralement votre SSH sur votre Pi, il s'agit probablement d'un système sans tête, nous allons donc le configurer via une connexion SSH.

Il est plus sûr d’établir deux connexions SSH: l’une pour effectuer la configuration et les tests, et l’autre pour servir de filet de sécurité. De cette façon, si vous vous verrouillez hors de votre Pi, vous aurez toujours la deuxième connexion SSH active active. La modification des paramètres SSH n'affectera pas une connexion en cours. Vous pouvez donc utiliser la seconde pour annuler les modifications et remédier à la situation.

Si le pire se produit et que vous êtes complètement verrouillé via SSH, vous pourrez toujours connecter votre Pi à un moniteur, un clavier et une souris, puis vous connecter à une session régulière. Autrement dit, vous pouvez toujours vous connecter, tant que votre Pi peut piloter un moniteur. Si cela ne peut pas, cependant, vous devez vraiment garder la connexion SSH du filet de sécurité ouverte jusqu'à ce que vous ayez vérifié que l'authentification à deux facteurs fonctionne.

La sanction ultime, bien sûr, est de reflasher le système d'exploitation sur la carte micro SD du Pi, mais essayons d'éviter cela.

Tout d'abord, nous devons établir nos deux connexions avec le Pi. Les deux commandes prennent la forme suivante:

ssh pi@watchdog.local

Le nom de ce Pi est "chien de garde", mais vous devrez plutôt taper le nom du vôtre. Si vous avez modifié le nom d'utilisateur par défaut, utilisez-le également; le nôtre est «pi».

N'oubliez pas, pour des raisons de sécurité, tapez cette commande deux fois dans différentes fenêtres de terminal afin d'avoir deux connexions à votre Pi. Ensuite, minimisez l’un d’eux, afin qu’il ne soit pas sur le chemin et ne soit pas fermé accidentellement.

Une fois connecté, vous verrez le message d'accueil. L'invite affichera le nom d'utilisateur (dans ce cas, «pi») et le nom du Pi (dans ce cas, «watchdog»).

Vous devez éditer le fichier "sshd_config". Nous le ferons dans l'éditeur de nano texte:

sudo nano /etc/ssh/sshd_config

Faites défiler le fichier jusqu'à ce que vous voyiez la ligne suivante:

ChallengeResponseAuthentication no

Remplacez le «non» par «oui».

Appuyez sur Ctrl + O pour enregistrer vos modifications dans nano, puis appuyez sur Ctrl + X pour fermer le fichier. Utilisez la commande suivante pour redémarrer le démon SSH:

sudo systemctl restart ssh

Vous devez installer l'authentificateur Google, qui est une bibliothèque de module d'authentification enfichable (PAM). L'application (SSH) appellera l'interface Linux PAM et l'interface trouvera le module PAM approprié pour répondre au type d'authentification demandé.

Tapez ce qui suit:

sudo apt-get install libpam-google-authenticator

Installation de l'application

L'application Google Authenticator est disponible pour iPhone et Android, il vous suffit donc d'installer la version appropriée pour votre téléphone portable. Vous pouvez également utiliser Authy et d'autres applications qui prennent en charge ce type de code d'authentification.

Configuration de l'authentification à deux facteurs

Dans le compte que vous utiliserez lorsque vous vous connecterez au Pi via SSH, exécutez la commande suivante (n'incluez pas le sudo préfixe):

google-authenticator

Il vous sera demandé si vous souhaitez que les jetons d’authentification soient basés sur le temps; appuyez sur Y, puis appuyez sur Entrée.

Un code de réponse rapide (QR) est généré, mais il est brouillé car il est plus large que la fenêtre du terminal à 80 colonnes. Faites glisser la fenêtre plus large pour voir le code.

Vous verrez également des codes de sécurité sous le code QR. Celles-ci sont écrites dans un fichier appelé ".google_authenticator", mais vous souhaiterez peut-être en faire une copie maintenant. Si vous perdez la possibilité d'obtenir un TOTP (si vous perdez votre téléphone portable, par exemple), vous pouvez utiliser ces codes pour vous authentifier.

Vous devez répondre à quatre questions, dont la première est:

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

Appuyez sur Y, puis appuyez sur Entrée.

La question suivante vous demande si vous souhaitez empêcher plusieurs utilisations du même code dans une fenêtre de 30 secondes.

Appuyez sur Y, puis appuyez sur Entrée.

La troisième question vous demande si vous souhaitez élargir la fenêtre d'acceptation des jetons TOTP.

Appuyez sur N en réponse à cela, puis appuyez sur Entrée.

La dernière question est: "Voulez-vous activer la limitation de débit?"

Tapez Y, puis appuyez sur Entrée.

Vous revenez à l'invite de commande. Si nécessaire, faites glisser la fenêtre du terminal plus large et / ou faites défiler vers le haut dans la fenêtre du terminal afin de voir le code QR complet.

Sur votre téléphone portable, ouvrez l'application d'authentification, puis appuyez sur le signe plus (+) en bas à droite de l'écran. Sélectionnez «Scanner un code QR», puis scannez le code QR dans la fenêtre du terminal.

Une nouvelle entrée apparaîtra dans l'application d'authentification nommée d'après le nom d'hôte du Pi, et un code TOTP à six chiffres sera répertorié en dessous. Il est affiché sous la forme de deux groupes de trois chiffres pour faciliter la lecture, mais vous devez le saisir sous la forme d'un nombre à six chiffres.

Un cercle animé à côté du code indique la durée de validité du code: un cercle complet signifie 30 secondes, un demi-cercle signifie 15 secondes, etc.

Tout lier ensemble

Nous avons un fichier de plus à modifier. Nous devons dire à SSH quel module d'authentification PAM utiliser:

sudo nano /etc/pam.d/sshd

Tapez les lignes suivantes près du haut du fichier:

#2FA

auth required pam_google_authenticator.so

Vous pouvez également choisir le moment où vous souhaitez que le TOTP vous soit demandé:

  • Après avoir entré votre mot de passe: Tapez les lignes précédentes sous «@include common-auth», comme indiqué dans l'image ci-dessus.
  • Avant de vous demander votre mot de passe: Tapez les lignes précédentes au-dessus de "@include common-auth".

Notez les traits de soulignement (_) utilisés dans «pam_google_authenticator.so», plutôt que les tirets (-) que nous avons utilisés précédemment avec le apt-get pour installer le module.

Appuyez sur Ctrl + O pour écrire les modifications dans le fichier, puis appuyez sur Ctrl + X pour fermer l'éditeur. Nous devons redémarrer SSH une dernière fois, puis nous avons terminé:

sudo systemctl restart ssh

Fermez cette connexion SSH, mais laissez l'autre connexion SSH du filet de sécurité fonctionner jusqu'à ce que nous ayons vérifié cette étape suivante.

Assurez-vous que l'application d'authentification est ouverte et prête sur votre téléphone portable, puis ouvrez une nouvelle connexion SSH au Pi:

ssh pi@watchdog.local

On vous demandera votre mot de passe, puis le code. Tapez le code de votre téléphone portable sans espaces entre les chiffres. Tout comme votre mot de passe, il ne fait pas écho à l'écran.

Si tout se passe comme prévu, vous devriez être autorisé à vous connecter au Pi; sinon, utilisez votre connexion SSH de filet de sécurité pour revoir les étapes précédentes.

Mieux vaut plus sûr que désolé

Avez-vous remarqué le «r» dans «plus sûr» ci-dessus?

En effet, vous êtes désormais plus en sécurité qu'auparavant lorsque vous vous connectez à un Raspberry Pi, mais rien n'est jamais sûr à 100%. Il existe des moyens de contourner l'authentification à deux facteurs. Celles-ci s'appuient sur l'ingénierie sociale, les attaques de l'homme du milieu et de l'homme au point de terminaison, l'échange de SIM et d'autres techniques avancées que, évidemment, nous n'allons pas décrire ici.

Alors, pourquoi s'embêter avec tout ça si ce n'est pas parfait? Eh bien, pour la même raison que vous verrouillez votre porte d'entrée lorsque vous partez, même s'il y a des gens qui peuvent choisir des serrures – la plupart ne le peuvent pas.

★★★★★