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 vous montrerons comment sécuriser votre Pi avec une authentification à deux facteurs.

L’incroyable Raspberry Pi

le Tarte aux framboises 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 original é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 minimaliste Pi zéro, à 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 flottant un au bord de l’espace et à l’arrière sur un ballon.

Hélas, une fois qu’une plate-forme informatique est suffisamment répandue, elle attire inévitablement l’attention des cybercriminels. Il est affreux de penser au nombre de Pi utilisant le compte d’utilisateur et le mot de passe par défaut. Si votre Pi est accessible au public et accessible depuis Internet en Enveloppe de protection (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’entrer dans votre réseau. Une fois qu’un acteur menaçant a pris pied dans un réseau, il se tournera 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 une analyse rétinienne.

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.

  Que montre une vérification des antécédents de l'armée américaine?

Une application de téléphone portable est liée à votre Pi en scannant un code QR. Cela transmet certaines informations de départ à 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.

Configurer le Pi

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

Il est plus sûr d’établir deux connexions SSH: une pour effectuer la configuration et les tests, et une 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 le second 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 normale. Autrement dit, vous pouvez toujours vous connecter, tant que votre Pi peut piloter un moniteur. Si ce n’est pas le cas, 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 [email protected]

ssh pi@watchdog.local dans une fenêtre de terminal.

Le nom de ce Pi est «chien de garde», mais vous tapez le nom le vôtre à la place. Si vous avez changé le nom d’utilisateur par défaut, utilisez-le également; le nôtre est «pi».

Rappelez-vous, par sécurité, tapez cette commande deux fois dans différentes fenêtres de terminal afin d’avoir deux connexions à votre Pi. Ensuite, réduisez au minimum l’un d’entre eux, afin qu’il ne gêne pas et ne soit pas fermé accidentellement.

Après vous être 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»).

Une connexion SSH à un Raspberry Pi dans une fenêtre de terminal.

Vous devez éditer le fichier «sshd_config». Nous le ferons dans l’éditeur de texte nano:

sudo nano /etc/ssh/sshd_config

sudo nano / etc / ssh / sshd_config dans une fenêtre de terminal.

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

ChallengeResponseAuthentication no

Remplacez le «non» par «oui».

  Que signifient «7 nm» et «10 nm» pour les processeurs et pourquoi sont-ils importants?

Fichier sshd_config ouvert dans l'éditeur nano avec la ligne ChallengeResponseAuthentication en surbrillance, dans une fenêtre de terminal.

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

sudo systemctl restart ssh dans une fenêtre de terminal.

Vous devez installer l’authentificateur Google, qui est un Module d’authentification enfichable (PAM) bibliothèque. L’application (SSH) appellera l’interface Linux PAM, et l’interface trouve le module PAM approprié pour traiter le type d’authentification demandé.

Tapez ce qui suit:

sudo apt-get install libpam-google-authenticator

sudo apt-get install libpam-google-authentication dans une fenêtre de terminal.

Installer l’appli

L’application Google Authenticator est disponible pour iPhone et Android, alors installez simplement la version appropriée pour votre téléphone portable. Vous pouvez également utiliser Authy et d’autres applications prenant en charge ce type de code d’authentification.

Icône de l'application Google Authenticator sur un téléphone portable Android.

Configuration de l’authentification à deux facteurs

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

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.

UNE Réponse rapide Le code (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 voudrez peut-être en faire une copie maintenant. Si jamais 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.

Voulez-vous que je mette à jour votre

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.

Voulez-vous interdire plusieurs utilisations du même jeton d'authentification? (y / n) dans une fenêtre de terminal.

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

Appuyez sur N pour répondre à cette question, puis appuyez sur Entrée.

Voulez-vous le faire? (y / n) dans une fenêtre de terminal.

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

Tapez Y, puis appuyez sur Entrée.

Voulez-vous activer la limitation de débit? (y / n) dans une fenêtre de terminal.

Vous êtes retourné à 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 l’intégralité du code QR.

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.

  Exportez votre profil Firefox d'un appareil non rooté vers votre bureau [Android]

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 forme de deux groupes de trois chiffres pour faciliter la lecture, mais vous devez le saisir sous la forme d’un numéro à 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, et ainsi de suite.

Lier tout cela ensemble

Nous avons encore un fichier à modifier. Nous devons indiquer à SSH quel module d’authentification PAM utiliser:

sudo nano /etc/pam.d/sshd

sudo nano /etc/pam.d/sshd dans une fenêtre de terminal.

Tapez les lignes suivantes en haut du fichier:

#2FA

auth required pam_google_authenticator.so

auth requis pam_google_authenticator.so ajouté au fichier sshd dans un éditeur, dans une fenêtre de terminal.

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

Après avoir saisi votre mot de passe: saisissez les lignes précédentes sous «@include common-auth», comme indiqué dans l’image ci-dessus.
Avant de vous demander votre mot de passe: saisissez 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 la commande 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

sudo systemctl restart ssh dans une fenêtre de terminal.

Fermez cette connexion SSH, mais laissez l’autre connexion SSH du filet de sécurité en cours d’exécution 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 [email protected]

ssh pi@watchdog.local dans une fenêtre de terminal.

Vous devriez être invité à saisir votre mot de passe, puis le code. Tapez le code de votre téléphone portable sans aucun espace entre les chiffres. Comme votre mot de passe, il n’est pas repris à 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 passer en revue 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 maintenant plus en sécurité qu’auparavant lors de la connexion à un Raspberry Pi, mais rien n’est jamais sûr à 100%. Il existe des moyens de contourner l’authentification à deux facteurs. Celles-ci reposent sur l’ingénierie sociale, les attaques de l’homme du milieu et de l’homme au point de terminaison, l’échange de cartes SIM et d’autres techniques avancées que, de toute évidence, 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, vous verrouillez votre porte d’entrée lorsque vous partez, même s’il y a des gens qui peuvent crocheter les serrures – la plupart ne le peuvent pas.