<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>YubiKey on slash-root.fr</title><link>https://beta.slash-root.fr/categories/yubikey/</link><description>Recent content in YubiKey on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Fri, 16 Sep 2022 04:28:23 +0200</lastBuildDate><atom:link href="https://beta.slash-root.fr/categories/yubikey/index.xml" rel="self" type="application/rss+xml"/><item><title>YubiKey : Paramétrage authentification Linux</title><link>https://beta.slash-root.fr/yubikey-parametrage-authentification-linux/</link><pubDate>Fri, 16 Sep 2022 04:28:23 +0200</pubDate><guid>https://beta.slash-root.fr/yubikey-parametrage-authentification-linux/</guid><description>&lt;img src="https://beta.slash-root.fr/yubikey-parametrage-authentification-linux/cover.png" alt="Featured image of post YubiKey : Paramétrage authentification Linux" /&gt;&lt;p&gt;Configuration d'une clef YubiKey Bio (FIDO Edition) sous Pop!_Os 22.04 pour l'authentification :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;En mode graphique (Gnome)&lt;/li&gt;
&lt;li&gt;En mode console&lt;/li&gt;
&lt;li&gt;Avec sudo&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Product : &lt;a href="https://www.yubico.com/fr/product/yubikey-bio/"&gt;https://www.yubico.com/fr/product/yubikey-bio/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;L'intérêt est de ne plus à avoir à saisir de mot de passe de plus en plus long au quotidien et de rapidement pouvoir d'authentifier avec une empreinte digitale posée sur la clef.&lt;/p&gt;
&lt;p&gt;Si la clef n'est pas présente / détectée ou que la reconnaissance de l'empreinte échoue, le mot de passe sera demandé.&lt;/p&gt;
&lt;p&gt;Il est possible de rendre obligatoire la présence de la clef. Dans ce cas, il est &lt;strong&gt;fortement&lt;/strong&gt; recommandée de posséder une seconde YubiKey en backup (de secours).&lt;/p&gt;
&lt;h2 id="configuration-des-empreintes-digitales"&gt;&lt;a href="#configuration-des-empreintes-digitales" class="header-anchor"&gt;&lt;/a&gt;Configuration des empreintes digitales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Télécharger l'application pour Linux :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget https://developers.yubico.com/yubioath-desktop/Beta/yubioath-desktop-6.0.0-beta.1-linux.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Extraire l'archive compressée :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir yubiauth
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar xzvf yubioath-desktop-6.0.0-beta.1-linux.tar.gz -C yubiauth/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Lancer l'application :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd yubiauth
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./authenticator
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Insérer la YubiKey quand l'application le demande.&lt;/li&gt;
&lt;li&gt;Définir un code PIN pour la YubiKey.&lt;/li&gt;
&lt;li&gt;Ajouter une empreinte :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="01.png" alt="image-20220916020851831" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Poser son empreinte plusieurs fois pour bien la définir et saisir un nom :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="02.png" alt="image-20220916021312224" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Depuis le menu &lt;code&gt;Options&lt;/code&gt;, il est possible de modifier le code PIN et de ré-initialiser la YubiKey :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="03.png" alt="image-20220916025407905" /&gt;&lt;/p&gt;
&lt;h2 id="configuration-de-lauthentification"&gt;&lt;a href="#configuration-de-lauthentification" class="header-anchor"&gt;&lt;/a&gt;Configuration de l&amp;rsquo;authentification
&lt;/h2&gt;&lt;h3 id="module-u2f-pour-pam"&gt;&lt;a href="#module-u2f-pour-pam" class="header-anchor"&gt;&lt;/a&gt;Module U2F pour PAM
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Installer le module U2F pour PAM et son outil de configuration :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install libpam-u2f pamu2fcfg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Génération de la configuration de PAM pour l'utilisateur courant :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pamu2fcfg -u &lt;span style="color:#e6db74"&gt;`&lt;/span&gt;whoami&lt;span style="color:#e6db74"&gt;`&lt;/span&gt; -opam://&lt;span style="color:#e6db74"&gt;`&lt;/span&gt;hostname&lt;span style="color:#e6db74"&gt;`&lt;/span&gt; -ipam://&lt;span style="color:#e6db74"&gt;`&lt;/span&gt;hostname&lt;span style="color:#e6db74"&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Au moment de la validation de la commande, la YubiKey se mettra à clignoter en vert. Il faudra saisir une des empreintes digitales enregistrées précédement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copier le résultat :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Le résultat à récupérer sera sous cette forme (... = raccourci)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;julien:ehi46df...QBGFSsdf+q...70Z3A&lt;span style="color:#f92672"&gt;==&lt;/span&gt;,nbWH7...nRGyfSpJ3GS+UFkaf...YssmeKD/uiefF5...2W/RvMb8oNwA&lt;span style="color:#f92672"&gt;==&lt;/span&gt;,es256,+presence
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Coller le résultat dans le fichier &lt;code&gt;/etc/u2f_mappings&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/u2f_mappings
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Je déconseille fortement de vouloir piper / rediriger le résultat de la commande &lt;code&gt;pamu2cfg&lt;/code&gt; directement dans le fichier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Editer le fichier &lt;code&gt;/etc/pam.d/common-auth&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/pam.d/common-auth
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) en haut du fichier :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;auth sufficient pam_u2f.so origin&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME appid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME authfile&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/etc/u2f_mappings cue
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Avec cette configuration, il sera toujours possible de s'authentifier avec un mot de passe. Pour rendre l'utilisation obligatoire de la YubiKey, remplacer &lt;code&gt;sufficient&lt;/code&gt; par &lt;code&gt;required&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Mettre à jour PAM :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo pam-auth-update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Avant la mise à jour du fonctionnement de PAM, je recommande &lt;strong&gt;fortement&lt;/strong&gt; de garder un shell ouvert à côté sous l'identité de root avec &lt;code&gt;sudo -i&lt;/code&gt;. Cela permettra de rétablir la configuration initiale en cas d'erreur de manipulation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="authentification-en-mode-graphique"&gt;&lt;a href="#authentification-en-mode-graphique" class="header-anchor"&gt;&lt;/a&gt;Authentification en mode graphique
&lt;/h3&gt;&lt;p&gt;Pour permettre l'utilisation de la YubiKey pour s'authentifier à l'environnement graphique (Gnome).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editer le fichier &lt;code&gt;/etc/pam.d/gdm-password&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/pam.d/gdm-password
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) juste après la ligne &lt;code&gt;@include common-auth&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;auth sufficient pam_u2f.so origin&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME appid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME authfile&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/etc/u2f_mappings cue
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="authentification-en-mode-console"&gt;&lt;a href="#authentification-en-mode-console" class="header-anchor"&gt;&lt;/a&gt;Authentification en mode console
&lt;/h3&gt;&lt;p&gt;Pour permettre l'utilisation de la YubiKey pour s'authentifier en mode console.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editer le fichier &lt;code&gt;/etc/pam.d/login&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/pam.d/login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) en haut du fichier :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;auth sufficient pam_u2f.so origin&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME appid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME authfile&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/etc/u2f_mappings cue
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="authentification-avec-sudo"&gt;&lt;a href="#authentification-avec-sudo" class="header-anchor"&gt;&lt;/a&gt;Authentification avec sudo
&lt;/h3&gt;&lt;p&gt;Pour permettre l'utilisation de la YubiKey pour s'authentifier avec la commande &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editer le fichier &lt;code&gt;/etc/pam.d/sudo&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/pam.d/sudo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) en haut du fichier :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;auth sufficient pam_u2f.so origin&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME appid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;pam://$HOSTNAME authfile&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/etc/u2f_mappings cue
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;La YubiKey clignote en vert lorsqu'une empreinte doit être saisie :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="04.png" alt="image-20220916035107054" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la YubiKey n'est pas connectée ou bien que l'empreinte n'est pas reconnue, le mot de passe habituel sera demandé.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Par défaut, &lt;code&gt;sudo&lt;/code&gt; ne redemande pas d'authentification avant 15 min. Avec &lt;code&gt;sudo -k&lt;/code&gt;, il est possible de forcer l'expiration de ce temps. Pour rendre ce comportement persistent, la configuration de sudo doit être modifiée.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Editer le fichier &lt;code&gt;/etc/sudoers&lt;/code&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo visudo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Modifier comme suit :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Avant&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Defaults env_reset&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Après&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Defaults env_reset,timestamp_timeout&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Maintenant, à chaque fois que &lt;code&gt;sudo&lt;/code&gt; sera invoqué, une demande d'authentification sera effectuée.&lt;/p&gt;</description></item></channel></rss>