Comment reset un mot de passe root Proxmox sur Debian 12

Introduction
Si vous avez mis en place un serveur Proxmox notamment grâce à notre article sur Comment installer Proxmox et que par X ou Y raison, vous n'arrivez plus à vous connecter à votre machine Promox parce que vous vous êtes trompé d'une lettre, ou que vous avez mal renseigné votre mot de passe lors de la configuration ou d'une quelconque autre façon, c'est quelque chose qui peut arriver mais qu'il faut quand même éviter, mais ce n'est pas grave car il est encore possible de pouvoir réinitialiser votre mot de passe sans être obligé de refaire une seconde réinstallation.
À noter également que cette manipulation fonctionne uniquement dans le cas de l'utilisation d'une authentification par Linux PAM, dans le cas d'un autre type d'authentification, cela ne changera pas le mot de passe de l'interface web de Proxmox.
Réinitialisation du mot de passe root via GRUB
Démarrage et modification dans GRUB
Exécuter la machine, au démarrage de GRUB, n'appuyez pas sur la touche entrer, mais attendez l’affichage comme montré ci-dessous.

Une fois sur cet affichage, appuyer sur la touche “e” afin de pouvoir entrer dans le menu textuel de GRUB.

Cela ressemblera à quelque chose comme ceci, vous pouvez vous déplacer dans le menu textuel avec les flèches directionnelles de votre clavier pour aller à droite, gauche, bas ou haut.
Pour pouvoir reset votre mot de passe root de votre machine ProxMox, allez à la ligne suivante : “Linux /boot/vmlinuz [...] ro quiet”.

Puis enlever le “ro quiet” et remplacer le par “rw init=/bin/bash” pour donner les droits en lecture-écriture sur le shell minimal.
Puis faites un “ctrl x” pour enregistrer les modifications et GRUB continuera son exécution de lancement.
Maintenant, vous allez entrer dans un shell minimal qui ressemblera à ceci :

Réinitialisation du mot de passe root
Une fois dans le shell, pour pouvoir reset votre mot de passe, exécutez la commande :
passwd

Puis changer votre mot de passe, et valider une deuxième fois.
Une fois votre mot de passe changé, pour synchroniser, exécuter la commande :
sync
Par la suite, faites un reboot de la machine avec l’option “-f” pour forcer le noyau à démarrer étant donné qu’on est dans un shell minimal et que systemd n’est pas actif :
reboot -f
Maintenant, connectez-vous avec votre nouveau mot de passe que vous avez précédemment modifié.
Comment empêcher la modification du mot de passe root depuis GRUB ?
Pour éviter qu'une personne malintentionnée puisse avoir accès aux paramètres de GRUB et de modifier le mot de passe root, il est possible de mettre en place un mot de passe GRUB. En mettant en place cela, pour pouvoir accéder au menu textuel de GRUB, il vous faudra obligatoirement entrer un mot de passe, différent de votre mot de passe root évidemment.
Clavier en Français (azerty)
Cette étape est facultative, mais s'il vous le souhaitez, il est possible en amont de mettre le clavier de GRUB en français, car par défaut il est paramétré en "QWERTY".
On va créer le dossier /boot/grub/layouts
pour stocker la disposition du clavier avec cette commande :
mkdir /boot/grub/layouts
Puis on va générer la disposition du clavier en Français avec cette commande :
grub-kbdcomp -o /boot/grub/layouts/fr.gkb fr
On va ouvrir le fichier /etc/default/grub
et y ajouter la ligne suivante juste en dessous de la ligne GRUB_CMDLINE_LINUX=""
:
GRUB_TERMINAL_INPUT=at_keyboard
Pour finir, ouvrez le fichier /boot/grub/grub.cfg
et y ajoutez les lignes ci-dessous :
# Clavier AZERTY GRUB
insmod keylayouts
keymap /boot/grub/layouts/fr.gkb
Mise en place d'un mot de passe pour GRUB
Maintenant que notre clavier est en Français, on va pouvoir mettre en place un mot de passe pour GRUB.
Pour cela, on va ouvrir le fichier /root/grub/grub.cfg
et aller à la ligne BEGIN /etc/grub.d/40_custom
et y ajouter les lignes suivantes qui permettront de paramétrer un utilisateur administrateur et le mot de passe, qui celui-ci sera en clair, nous verrons par la suite comment le chiffrer :
set superusers="George"
password George ;D#pmZ6`Z^

La deuxième ligne permet de définir le mot de passe ;D#pmZ6`Z^
à notre utilisateur administrateur George
.
Chiffrement du mot de passe
Maintenant, pour chiffrer notre mot de passe, on va générer un hash en exécutant cette commande :
grub-mkpasswd-pbkdf2
Une fois la commande effectuée, il vous sera demandé d'entrer un mot de passe, puis de l'entrée une seconde fois.
Par la suite, en sortie vous aurez le hash comme montré ci-dessous, copiez-le à partir de grub.pbkdf2.sha.10000
.

Ouvrez le fichier /boot/grub/grub.cfg
, revenez à la ligne BEGIN /etc/grub.d/40_custom
et enlever la deuxième ligne où vous avez mis password George ;D#pmZ6Z^
, et remplacer cette ligne par password_pbkdf2
puis par la suite ajouter le hash précédemment copié. La ligne devrait ressembler à quelque chose comme ceci dans mon cas :
password_pbkdf2 grub.pbkdf2.sha512.10000.27A31A0C0F9D52E829DD08031133C90DA23C292BC540237B0874B837B094EE590D40B6F289984848A38DDD1CFC315E23511CFA79148CD707E1960776A859E214.07E071DFE2810139DFFD1C389ACCD58363D2AD1E643029CF9B7367D5DB8E5BDC1B284E836BCF9F707759F18A0131B91323D6091B36A23CBE4747C2CD84B88CAE

Redémarrez votre serveur ProxMox. Une fois redémarré, vous allez apercevoir un affichage comme montré ci-dessous. Il vous suffira d'entrer votre identifiant de votre utilisateur administrateur que vous avez précédemment configuré, puis d'entrer le mot de passe.

Conclusion
Dans ce tutoriel, nous avons pu réinitialiser un mot de passe root d'un serveur ProxMox depuis GRUB en quelques commandes, mais nous avons remarqué que si vous le pouvez le faire facilement, cela veut dire que tout le monde peut le faire et notamment des personnes malintentionnées, c'est pourquoi nous avons aussi pu mettre en œuvre un mot de passe de sécurité pour accéder à GRUB et donc au serveur lui-même.
Mais cela ne suffit pas à contrer la réinitialisation du mot de passe root par quelqu'un qui aurait accès à la machine physique, une personne malintentionnée pourrait accéder à la machine pour compromettre le serveur en lui-même, modifier des fichiers de configuration du système ou encore récupérer des informations compromettantes ou sensibles, simplement en démarrant depuis une clé USB, ou en y accédant depuis le disque dur, c'est pourquoi il est important de sécuriser l'accès GRUB par un mot de passe chiffré pour que le serveur soit au mieux sécurisé, mais également de mettre en place diverses protections supplémentaires, telles que le chiffrement du disque du serveur, ou encore de désactiver le boot depuis un support amovible.
Pour nous aider à nous améliorer, n'hésitez pas à faire part de vos avis en commentaires ou même à poser vos questions si vous avez besoin d'aide supplémentaire.
Vous pouvez également partager cet article et nous suivre sur Twitter/X :
ainsi que sur Instagram :
