Je le pète et le répète assez souvent : Quand vous le pouvez, pensez à activer l'authentification en 2 étapes (2FA) sur vos sites web préférés.

Petit rappel pour les nouveaux dans le game, l'authentification en 2 étapes permet d'ajouter en plus du mot de passe (quelque chose que vous connaissez), un code généré par une application spécifique sur votre téléphone portable (quelque chose que vous possédez).

Ainsi, même si on vous dérobe votre mot de passe, il faudra en plus vous voler votre téléphone (et le mot de passe de celui-ci) afin de pouvoir s'authentifier à votre place sur un site web équipé de la double authentification.

Et si vous êtes vous-même l'heureux administrateur de serveurs, et bien, vous tombez bien, car aujourd'hui on va apprendre à activer l'authentification en 2 étapes pour vos connexions SSH.

Pour cela, connectez-vous sur votre serveur, et installez le paquet suivant :

sudo apt-get install libpam-google-authenticator

Puis lancez la commande :

google-authenticator

Première question, est-ce que vous voulez des codes basés sur le temps ? Répondez-oui, ça permet de générer des codes qui sont limités dans le temps.

Ensuite, Google Authenticator vous générera un gros QR Code qu'il faudra flasher avec l'application Authenticator (Pour iOS ici et pour Android ici).

Vous pouvez aussi y accéder via l'URL fournie dans le terminal.

Attention, C'EST TRÈS IMPORTANT : Vous aurez aussi une série de codes d'urgences générez que vous devez absolument conserver dans un coin. Cela vous permettra de vous connecter quand même à votre serveur même si votre téléphone vous a lâché ou que vous l'avez formaté.

Appuyez ensuite sur la touche "y" pour mettre à jour la config Google Authenticator.

L'outil vous posera ensuite 3 questions relatives à la configuration.

La première conserve l'utilisation multiple du même code. Niveau sécurité, je vous conseille de faire "y" pour désactiver cette possibilité. Cela vous protégera en cas d'attaques Mitm (man in the middle)

La 2e question concerne la durée de péremption des codes. Par défaut, un code est valide 1min30 après qu'il soit passé. Cela permet d'absorber les latences qu'elles soient réseau ou humaines (si vous tapez lentement )). Là on vous demande si vous voulez garder cette durée à 1 min 30 ou la passer à 4 min si vous éprouvez des difficultés. Je vous conseille de répondre "n" à cette question.

La troisième et dernière question permet d'activer une limite maximum de codes erronés. Ainsi, on évite les attaques de type bruteforce. Répondez "y" à cette question.

Ensuite, on va configurer ssh pour qu'il prenne en compte ce nouveau module. Pour cela, éditez le fichier

sudo nano /etc/pam.d/sshd

et ajoutez y la ligne :

auth required pam_google_authenticator.so

Puis éditez le fichier :

sudo nano /etc/ssh/sshd_config

Et mettez à "yes", la ligne :

ChallengeResponseAuthentication yes

Puis relancez ssh :

sudo /etc/init.d/ssh restart

Et voilà, maintenant faites un essai en lançant une nouvelle connexion SSH (une nouvelle, hein, ne quittez pas votre connexion en cours, car si vous avez merdé quelque part, vous ne pourrez plus vous connecter via SSH). Votre serveur va vous demander votre mot de passe, puis votre code généré par l'application installée sur votre smartphone.

J'espère que l'astuce vous aura plu !

Source