{"id":3790,"date":"2015-01-12T09:00:02","date_gmt":"2015-01-12T07:00:02","guid":{"rendered":"http:\/\/www.collet-matrat.com\/?p=3790"},"modified":"2015-01-12T08:34:53","modified_gmt":"2015-01-12T06:34:53","slug":"yubikey-securisez-vos-acces-ssh-sous-debian-avec-une-double-authentification-howto","status":"publish","type":"post","link":"https:\/\/www.collet-matrat.com\/?p=3790","title":{"rendered":"Yubikey : s\u00e9curisez vos acc\u00e8s SSH (sous Debian) avec une double authentification [HowTo]"},"content":{"rendered":"<p style=\"text-align: center;\"><a href=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/Yubikey.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3791\" src=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/Yubikey.jpg?resize=584%2C328&#038;ssl=1\" alt=\"Yubikey\" width=\"584\" height=\"328\" srcset=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/Yubikey.jpg?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/Yubikey.jpg?resize=300%2C168&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/Yubikey.jpg?resize=500%2C280&amp;ssl=1 500w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">C'est d\u00e9sormais une certitude, les simples mots de passe ne sont plus suffisants pour assurer l'acc\u00e8s \u00e0 des services critiques. En ce qui me concerne j'utilise, d\u00e8s que cette option existe, le syst\u00e8me de double authentification (\"authentification \u00e0 facteurs multiples\"). Le principe est d'associer un mot de passe classique avec un deuxi\u00e8me identifiant \u00e0 usage unique. Beaucoup utilisent <em>Google Authenticator<\/em>, ou bien la r\u00e9ception d'un SMS pour obtenir cette information.<\/p>\n<p style=\"text-align: justify;\">Il existe une solution un peu moins connue mais particuli\u00e8rement int\u00e9ressante :\u00a0 <a href=\"https:\/\/www.yubico.com\/products\/yubikey-hardware\/\" target=\"_blank\">Yubikey<\/a>. Il s'agit d'une petite cl\u00e9 usb (cf. la photo d'illustration de ce billet) particuli\u00e8rement robuste, l\u00e9g\u00e8re et ne n\u00e9cessitant pas de pile. Il suffit de l\u2019ins\u00e9rer dans un port USB et d'appuyer sur le bouton central. La Yubikey se comporte alors comme un clavier (pas besoin de driver sp\u00e9cifique) et g\u00e9n\u00e8re automatiquement le code \u00e0 usage unique. Cette cl\u00e9 est vendue sur le net \u00e0 un tarif abordable (<a href=\"http:\/\/amzn.to\/1BMCp9g\" target=\"_blank\">environ 23\u20ac sur Amazon<\/a>). Certaines soci\u00e9t\u00e9s (comme OVH,\u00a0 par exemple) ont adopt\u00e9 massivement ce dispositif afin de s\u00e9curiser l'acc\u00e8s \u00e0 leur syst\u00e8me d'information.<\/p>\n<p style=\"text-align: justify;\">J'utilise une Yubikey depuis quelques mois et je dois reconna\u00eetre que cette derni\u00e8re est particuli\u00e8rement pratique (pour s\u00e9curiser l'acc\u00e8s \u00e0 mon compte LastPass par exemple). J'ai \u00e9galement commenc\u00e9 \u00e0 s\u00e9curiser l'acc\u00e8s SSH de certains de mes serveurs avec ce dispositif et j'ai d\u00e9cid\u00e9 de cr\u00e9er ce how-to pour aider ceux qui souhaiteraient faire de m\u00eame.<\/p>\n<p style=\"text-align: justify;\">Comme d'habitude, ce tuto est bas\u00e9 sur Debian 7, mais il devrait \u00eatre assez facilement utilisable avec d'autres distributions.<\/p>\n<p style=\"text-align: justify;\"><strong>Avertissement important<\/strong> : durant toutes ces op\u00e9rations ne red\u00e9marrez pas le service SSH (ni votre serveur), vous risqueriez de ne plus pouvoir vous connecter ! Une fois la configuration achev\u00e9e (et le service SSH relanc\u00e9) conservez votre session SSH ouverte et testez en lan\u00e7ant une nouvelle connexion en parall\u00e8le : si les choses tournent mal (connexion impossible) vous conserverez ainsi un acc\u00e8s \ud83d\ude42<\/p>\n<p style=\"text-align: justify;\">La premi\u00e8re op\u00e9ration \u00e0 r\u00e9aliser est d'installer la librairie PAM pour Yubico\/Ybikey<\/p>\n<blockquote><p>apt-get install libpam-yubico<\/p><\/blockquote>\n<p style=\"text-align: justify;\">Il faut ensuite cr\u00e9er le fichier qui va contenir la liste des Yubikey habilit\u00e9es \u00e0 se connecter avec un compte utilisateur donn\u00e9<\/p>\n<blockquote><p>mkdir ~\/.yubico<br \/>\nvim ~\/.yubico\/authorized_yubikeys<\/p><\/blockquote>\n<p style=\"text-align: justify;\">Pour m\u00e9moire le \"~\" repr\u00e9sente le home directory de l'utilisateur actuellement connect\u00e9. Si vous \u00eates connect\u00e9 en root, le fichier sera donc cr\u00e9\u00e9 dans \"<em>\/root\/.yubic\/authorized_yubikeys<\/em>\"<\/p>\n<p>et d'y placer la liste des Yubikey autoris\u00e9es \u00e0 se connecter de la fa\u00e7on suivante<\/p>\n<blockquote><p>username:token_ID<\/p><\/blockquote>\n<p>Le <em>username<\/em> correspond \u00e0 votre login Unix (root par exemple) et le <em>token_ID<\/em> peut \u00eatre r\u00e9cup\u00e9r\u00e9 <a href=\"http:\/\/demo.yubico.com\/php-yubico\/Modhex_Calculator.php\" target=\"_blank\">\u00e0 cette adresse<\/a>.<\/p>\n<p>Rendez-vous <a href=\"http:\/\/demo.yubico.com\/php-yubico\/Modhex_Calculator.php\" target=\"_blank\">sur cette page<\/a>, ins\u00e9rez votre Yubikey sur un port USB, s\u00e9lectionnez \"OTP\" (1) dans \"source format\" et g\u00e9n\u00e9rez une cl\u00e9 en appuyant sur le bouton de votre cl\u00e9 (2).<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen1.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-3796\" src=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen1.jpg?resize=500%2C580&#038;ssl=1\" alt=\"yubi_screen1\" width=\"500\" height=\"580\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Vous obtiendrez en retour une \"<em>input string<\/em>\" compos\u00e9 de 12 caract\u00e8res et commen\u00e7ant par 6 fois la lettre \"c\". De la forme \"<em>ccccccabcdef<\/em>\". Cette chaine est votre \"token_ID\". Ajuster le fichier \"<em>authorized_yubikeys<\/em>\" avec cette valeur. On obtient donc quelque chose comme \"<em>root:ccccccabcdef<\/em>\".<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen2.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-3797\" src=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen2.jpg?resize=505%2C735&#038;ssl=1\" alt=\"yubi_screen2\" width=\"505\" height=\"735\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Si vous devez donner l'acc\u00e8s \u00e0 plusieurs Yubikey pour le m\u00eame login vous pouvez accumuler les Token_ID avec quelque chose du type \"<em>root:token_yubikey1:token_yubikey2...<\/em>\"<\/p>\n<p>On \u00e9dite ensuite le fichier<\/p>\n<blockquote><p>\/etc\/pam.d\/sshd<\/p><\/blockquote>\n<p style=\"text-align: justify;\">Ajoutez la ligne suivante apr\u00e8s \"<em>@include common-auth<\/em>\"<\/p>\n<blockquote><p>auth required pam_yubico.so id=16<\/p><\/blockquote>\n<p style=\"text-align: justify;\">Si vous pr\u00e9f\u00e9rez devoir g\u00e9n\u00e9rer votre code \u00e0 usage unique avant d'avoir \u00e0 mentionner votre mot de passe placez cette ligne avant \"<em>@include common-auth<\/em>\" (\u00e0 vous de d\u00e9cider ce que vous souhaitez faire).<\/p>\n<p>\u00c9ditez ensuite le fichier<\/p>\n<blockquote><p>\/etc\/ssh\/sshd_config<\/p><\/blockquote>\n<p>Afin de modifier la directive suivante<\/p>\n<blockquote><p>ChallengeResponseAuthentication yes<\/p><\/blockquote>\n<p>Red\u00e9marrez SSH<\/p>\n<blockquote><p>\/etc\/init.d\/ssh restart<\/p><\/blockquote>\n<p>Essayez d'ouvrir une nouvelle session (conservez la session en cours active - on ne sait jamais ...). Vous devriez obtenir \u00e7a<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen3.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3803\" src=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen3.jpg?resize=584%2C216&#038;ssl=1\" alt=\"yubi_screen3\" width=\"584\" height=\"216\" srcset=\"https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen3.jpg?w=648&amp;ssl=1 648w, https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen3.jpg?resize=300%2C111&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.collet-matrat.com\/wp-content\/uploads\/2015\/01\/yubi_screen3.jpg?resize=500%2C185&amp;ssl=1 500w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Commander une Yubikey sur Amazon : <a href=\"http:\/\/amzn.to\/1BMCp9g\" target=\"_blank\">ICI<\/a><\/li>\n<li>Plus d'information sur Yubikey : <a href=\"https:\/\/www.yubico.com\/\" target=\"_blank\">ICI<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>Cr\u00e9dit photo : <a href=\"https:\/\/www.flickr.com\/photos\/38377071@N08\/15025920974\" target=\"_blank\">Aspherical Element<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C'est d\u00e9sormais une certitude, les simples mots de passe ne sont plus suffisants pour assurer l'acc\u00e8s \u00e0 des services critiques. En ce qui me concerne j'utilise, d\u00e8s que cette option existe, le syst\u00e8me de double authentification (\"authentification \u00e0 facteurs multiples\"). &hellip; <a href=\"https:\/\/www.collet-matrat.com\/?p=3790\">Lire la suite <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Sur le blog \"#Yubikey : s\u00e9curisez vos acc\u00e8s SSH (sous Debian) avec une double authentification\"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[105,91,7,86],"tags":[],"class_list":["post-3790","post","type-post","status-publish","format-standard","hentry","category-hebergement","category-howto","category-linux","category-securite"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=\/wp\/v2\/posts\/3790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3790"}],"version-history":[{"count":15,"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=\/wp\/v2\/posts\/3790\/revisions"}],"predecessor-version":[{"id":3811,"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=\/wp\/v2\/posts\/3790\/revisions\/3811"}],"wp:attachment":[{"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.collet-matrat.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}