4

double authentification google avec google-authenticator pour SSH

A travers cette article, il sera expliqué de manière simple comment ajouter une double authentification google avec google-authenticator sur un serveur SSH.
Cette technique, permet d’augmenter la sécurité d’accès au serveur.

google-authenfication

Pré-requis

  • Avoir un serveur SSH fonctionnel
  • Avoir l’application Google Authentification installée sur téléphone Android
  • Un peu de courrage.

Installation de google-authenticator sur le serveur SSH

Les explications qui suivent ont été éxécutées sur un serveur Debian et les commandes sont en éxécutées tant que root, sauf lorsque c’est précisé.

  • Mise à jour du système:
  • apt-get update && apt-get upgrade
    
  • Installer les outils nécessaire à la compilation:
  • apt-get install build-essential make libpam0g-dev libpam0g
    
  • Téléchargement des sources du paquet google-authenticator:
  • Se rendre dans le répertoire /usr/local/src/

    cd /usr/local/src/
    

    Téléchargement de l’archive:

    wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2 -O gauth.tar.bz2
    
  • Décompression de l’archive:
  • tar -xf gauth.tar.bz2 && sudo rm gauth.tar.bz2
    cd libpam-google-authenticator-1.0/
    
  • Compilation de google-authenticator:
  • make && make install
    

Configuration de Google google-authenticator

Lancer simplement la commande google-authenticator:

google-authenticator 

Google-authenticator fourni une url, qui faut coller dans le navigateur internet:

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/freddy@manjaro-pc%3Fsecret%3DDPL32JC6ZYVNNN2K
Your new secret key is: DPL32JC6ZYVNNN2K
Your verification code is 069063
Your emergency scratch codes are:
  43429718
  84487778
  31694038
  23138763
  60510853

Une fois l’URL collée dans le navigateur, un QRcode s’affiche:
google-auth-qrcode
Avec son téléphone android, il faut scanner le QRCode avec par exemple l’application open-source ZXing.
Dès lors que le QRcode est scanné, l’applicatyion Android Google Authentification s’ouvre et fournis le code secret:
google-authentificator

Puis, d’autres questions vont être posées. Dans mon cas j’ai répondu à « yes » à toutes les questions.

Configuration du serveur SSH

Authentifaction PAM sur le serveur SSH, édition de /etc/pam.d/sshd en tant que root:

nano /etc/pam.d/sshd

Ajouter à la fin du fichier:

auth required pam_google_authenticator.so

Ensuite édition du fichier /etc/ssh/sshd_config:

nano /etc/ssh/sshd_config

A la ligne ChallengeResponseAuthentication changer la valeur no par yes.

Avant de redémarrer le serveur SSH, assurez-vous que vous avez mis en place le Google Authenticator sur votre téléphone, et les codes de sauvegarde. Vérifiez encore une fois. Sauf si vous voulez prendre le risque de verrouillage de votre machine.

Une fois que vous êtes sûr à 1000%, on, redémarre le serveur SSH:

service ssh restart

Test de la double authenfication sur le serveur SSH

Test de connexion en grandeur nature sur un serveur:
ssh_google-authenficator

Lorsque j’ai saisie le code vérification, j’ai pu me connecter à mon serveur de supervision!

Un petit détail, qui peut avoir une grande importance: vérifier la cohérence de la date entre le serveur et le téléphone Android, car si les deux machines ne sont pas à la même heure, celà peut empêcher de générer des codes valides.

Finalisation

Une fois que tout est bon, il faut penser à désinstaller les outils de compilation car celà peut-être un moyen à un pirate de créer des exploites sur le serveur.

apt-get remove --purge build-essential make

ps: les codes et le QRcode dans l’article ont été créés sur une machine Manjaro et ne sont plus d’actualité ;-)

source
Et l’astuce de la vérification de la date: via whoami.tobehost.net

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

4 commentaires

  1. Intéressant, juste un peu peur du « Sauf si vous voulez prendre le risque de verrouillage de votre machine. »

    Sinon effectivement ça peux être utile.

  2. Il y a toujours un risque de fausse manip et si on ne vérifie pas plusieurs fois les fichiers de conf, lorsque tu vas restarter ton serveur ssh tu perdra simplement la connexion sans moyen de te connecter :-)

  3. Bonjour,
    Superbe article, mais il y a un hic… c’est de ne jamais mettre un QRcode comme ça, on peut récupérer l’adresse mail. Enfin j’espère pour vous que c’était juste pour l’expérience.
    Ça vaut ce que ça vaut mais c’était juste vous prévenir.
    freddy@magero-pc

  4. Euh, génial je viens juste de voir que c’était effectivement pour l’expérience… oups désolé ;)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *