Sécuriser l'accès à Proxmox

Sécuriser l'accès à Proxmox

Suite à l'article de Guillaume sur la clé YubiKey, j'ai regarder si je pourrais, et comment l'utiliser sur différents services, dont l'hyperviseur Proxmox que je vous ai fait découvrir il y a peu lors de ma migration depuis ESXi.

[Test] Sécuriser ses authentifications avec la Yubikey 5 NFC
Vous avez certainement déjà entendu parler de double authentification (ou 2FA, pour 2 Factor Authentication), et nous allons vous expliquer ici en quoi ça consiste et ce que ça peut vous apporter. Pour illustrer ce concept, nous allons vous proposer un test de la clé USB de sécurité Yubico YubiKey
Info ! Petite précision, l'article a été écrit avec Proxmox en version 7.0-13.

Dans la page Datacenter de l'interface de Proxmox, dans l'onglet Utilisateurs, sélectionnez votre utilisateur puis cliquez sur TFA.


Activer l'authentification renforcée par TOTP

Une fenêtre s'ouvre, renseignez une phrase secrète, ce qui génèrera un QR code, à scanner avec votre application favorite (Bitwarden ou autre), et rentrez le code de vérification qui vous sera retourné.

Dans votre liste d'utilisateurs, vous devriez maintenant voir en fin de ligne que le totp est configuré en tant que TFA :

Vous pouvez vous déconnecter et essayer de vous reconnecter, vous aurez normalement une fenêtre vous demandant de saisir le code TOTP depuis votre application.


Activer l'authentification renforcée par U2F

Nous allons maintenant configurer notre clé Yubikey. Pour cela, il faut vous connecter en SSH sur l'hôte et modifier le fichier /etc/pve/datacenter.cfg pour y ajouter la ligne suivante, personnalisée avec votre adresse d'accès externe :

u2f: appid=https://mypve.example.com:8006
Attention ! Si votre nom de domaine donne directement sur l'interface Proxmox,
vous n'avez pas besoin d'ajouter le port.

Retournez dans l'interface web de Proxmox, sur la page listant les utilisateurs, sélectionnez votre utilisateur et cliquez sur TFA, puis, comme vous vous en doutez sur U2F.

Si ce n'est pas la première fois que vous le faîtes, vous devriez en avoir l'habitude, il vous sera demandé de connecter votre clé de sécurité physique YubiKey et d'appuyer sur le bouton.

Si tout s'est bien passé, vous devriez voir apparaitre u2f comme étant activé. Vous pouvez remarquer que l'information est visible sur 2 utilisateurs différents, pour la simple raison que cela n'est pas possible d'activer les deux types de sécurité sur un seul utilisateur, j'ai donc créé un nouvel utilisateur avec le même profil admin que le premier.


Créer un utilisateur Proxmox avec le profil admin

Pour cela, connectez vous en ssh et saisissez la commande pveum user add admin@pve. Cette dernière permet de créer un utilisateur nommé admin. Mais celui-ci n'a aucun droit pour le moment, ni même de mot de passe. La commande pveum passwd admin@pve vous permettra de définir son mot de passe.

Nous allons créer un groupe admin avec la commande pveum group add admin, puis lui donner les droits avec la commande pveum acl modify / -group admin -role Administrator. Enfin, nous allons ajouter l'utilisateur admin précédemment créé au nouveau groupe admin avec la commande pveum user modify admin@pve -group admin.

Cela vous permettra d'avoir un utilisateur avec des droits administrateurs avec l'accès TOTP et un autre en U2F pour avoir une solution de secours entre les deux.


Supprimer l'identification TFA en cas de souci.

Suite à une perte de votre clé Yubikey et/ou téléphone pour la génération du code TOTP, vous pouvez vous retrouver dans l'impossibilité de vous connecter à l'interface web de Proxmox. Une solution existe si vous avez accès en SSH à l'hôte. Pour cela, il vous faudra modifier le fichier utilisateur en étant root.
Avant de jouer dans le fichier utilisateur, il est recommandé de le sauvegarder avec la commande  cp /etc/pve/user.cfg /etc/pve/user.cfg.old.

Maintenant, nous allons pouvoir modifier le fichier avec l'éditeur de fichiers nano ou vi selon votre préférence : nano /etc/pve/user.cfg.

A la fin de la ligne de vos utilisateurs, vous pouvez apercevoir x!oath si le TOTP est activé ou x!u2f si le 2FA est activé. Il vous suffit de supprimer les caractères en question sans supprimer les :. On enregistre le fichier et vous devriez pouvoir vous reconnectezr sans double authentification cette fois.


Conclusion

J'espère vous avoir aider à mieux appréhender la gestion des utilisateurs sous Proxmox. Si besoin d'informations complémentaires vous retrouverez la documentation officiel sur le site de Proxmox.

Je vous invite à laisser des commentaires ou venir échanger avec nous sur notre groupe Telegram, pour parler de la YubiKey, de Proxmox, ou tout simplement pour discuter !