Magazine Internet

Yubikey : sécurisez vos accès SSH (sous Debian) avec une double authentification [HowTo]

Publié le 12 janvier 2015 par Xaviercm

Yubikey

C'est désormais une certitude, les simples mots de passe ne sont plus suffisants pour assurer l'accès à des services critiques. En ce qui me concerne j'utilise, dès que cette option existe, le système de double authentification ("authentification à facteurs multiples"). Le principe est d'associer un mot de passe classique avec un deuxième identifiant à usage unique. Beaucoup utilisent Google Authenticator, ou bien la réception d'un SMS pour obtenir cette information.

Il existe une solution un peu moins connue mais particulièrement intéressante :  Yubikey. Il s'agit d'une petite clé usb (cf. la photo d'illustration de ce billet) particulièrement robuste, légère et ne nécessitant pas de pile. Il suffit de l’insérer dans un port USB et d'appuyer sur le bouton central. La Yubikey se comporte alors comme un clavier (pas besoin de driver spécifique) et génère automatiquement le code à usage unique. Cette clé est vendue sur le net à un tarif abordable (environ 23€ sur Amazon). Certaines sociétés (comme OVH,  par exemple) ont adopté massivement ce dispositif afin de sécuriser l'accès à leur système d'information.

J'utilise une Yubikey depuis quelques mois et je dois reconnaître que cette dernière est particulièrement pratique (pour sécuriser l'accès à mon compte LastPass par exemple). J'ai également commencé à sécuriser l'accès SSH de certains de mes serveurs avec ce dispositif et j'ai décidé de créer ce how-to pour aider ceux qui souhaiteraient faire de même.

Comme d'habitude, ce tuto est basé sur Debian 7, mais il devrait être assez facilement utilisable avec d'autres distributions.

Avertissement important : durant toutes ces opérations ne redémarrez pas le service SSH (ni votre serveur), vous risqueriez de ne plus pouvoir vous connecter ! Une fois la configuration achevée (et le service SSH relancé) conservez votre session SSH ouverte et testez en lançant une nouvelle connexion en parallèle : si les choses tournent mal (connexion impossible) vous conserverez ainsi un accès :-)

La première opération à réaliser est d'installer la librairie PAM pour Yubico/Ybikey

apt-get install libpam-yubico

Il faut ensuite créer le fichier qui va contenir la liste des Yubikey habilitées à se connecter avec un compte utilisateur donné

mkdir ~/.yubico
vim ~/.yubico/authorized_yubikeys

Pour mémoire le "~" représente le home directory de l'utilisateur actuellement connecté. Si vous êtes connecté en root, le fichier sera donc créé dans "/root/.yubic/authorized_yubikeys"

et d'y placer la liste des Yubikey autorisées à se connecter de la façon suivante

username:token_ID

Le username correspond à votre login Unix (root par exemple) et le token_ID peut être récupéré à cette adresse.

Rendez-vous sur cette page, insérez votre Yubikey sur un port USB, sélectionnez "OTP" (1) dans "source format" et générez une clé en appuyant sur le bouton de votre clé (2).

yubi_screen1

Vous obtiendrez en retour une "input string" composé de 12 caractères et commençant par 6 fois la lettre "c". De la forme "ccccccabcdef". Cette chaine est votre "token_ID". Ajuster le fichier "authorized_yubikeys" avec cette valeur. On obtient donc quelque chose comme "root:ccccccabcdef".

yubi_screen2

Si vous devez donner l'accès à plusieurs Yubikey pour le même login vous pouvez accumuler les Token_ID avec quelque chose du type "root:token_yubikey1:token_yubikey2..."

On édite ensuite le fichier

/etc/pam.d/sshd

Ajoutez la ligne suivante après "@include common-auth"

auth required pam_yubico.so id=16

Si vous préférez devoir générer votre code à usage unique avant d'avoir à mentionner votre mot de passe placez cette ligne avant "@include common-auth" (à vous de décider ce que vous souhaitez faire).

Éditez ensuite le fichier

/etc/ssh/sshd_config

Afin de modifier la directive suivante

ChallengeResponseAuthentication yes

Redémarrez SSH

/etc/init.d/ssh restart

Essayez d'ouvrir une nouvelle session (conservez la session en cours active - on ne sait jamais ...). Vous devriez obtenir ça

yubi_screen3

  • Commander une Yubikey sur Amazon : ICI
  • Plus d'information sur Yubikey : ICI

WordPress:

J'aime chargement…

Retour à La Une de Logo Paperblog

A propos de l’auteur


Xaviercm 106 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine