11 septembre 2014 | Posted in:ESXI

Aujourd’hui je vais vous décrire un scénario catastrophe et comment y remédier.

Pré-requis

un serveur chez ovh avec esxi 5.0
savoir utilisee une clé ssh

Le scénario

Imaginons, et je dis bien imaginons, que vous perdiez le mot de passe root de votre serveur esxi chez ovh. Impossible de retrouver le mail envoyé par ovh avec le mot de passe car prévoyant, vous l’avez supprimé. Impossible de rentrer dans l’interface de gestion et de démarrer ce serveur virtuel dont vous avez tant besoin… Vous pourriez demander à ovh le mot de passe malheureusement ils ne le conservent pas non plus !!! Et rajoutons en plus un sérieux problème, vous n’avez plus accès à vos emails car ces derniers sont sur ce même esxi dont bien sur les vms sont éteintes.

Reprendre le contrôle.

Installer votre clé ssh dans votre manager ovh

Pour cela rendez vous dans votre manager ovh ou soyoustart et enregistrez votre clé ssh (la partie publique bien sur) dans l’interface de gestion. Pensez bien à vérifier que cette clé est par défaut. C’est ainsi elle qui sera installée en mode rescue.

Redémarrer votre serveur ESX en mode rescue

Redémarrer le serveur en mode rescue. Bien sur vous ne recevrez pas le mail contenant le mot de passe pour vous connecter en ssh mais grâce à la clé enregistrée précédemment cela n’a pas d’importance.

Réinitialisez votre mot de passe

Vous pouvez maintenant vous connecter à votre ESXI en ssh pour réinitialiser votre mot de passe perdu. Pour cela, nous allons devoir monter la partition racine de votre ESXI

fdisk -l

Dans mon installation la partition racine est la sda5. A vous de trouver la votre.

on créer un répertoire de travail et on monte cette partition

mkdir /mnt/disque
mount /dev/sda5 /mnt/disque
cd /mnt/disque

Les fichiers de configuration de votre esxi sont maintenant accessibles. Pour être sur d’être dans la bonne partition vérifiez la présence de celui qui nous intéresse tout particulièrement : state.tgz

Alors attention, c’est assez retord comme procédé, state.tgz est une archive qui contient une autre archive nommée local.tgz qui contient le répertoire etc ou se trouve le fichier shadow.

Le fichier shadow contient le mot de passe crypté de votre serveur. Nous n’allons pas chercher à le décrypter cela serait impossible ou trop long. N’oublions pas que votre serveur est en downtime et qu’il faut être rapide.

Nous allons tout simplement faire en sorte que vous vous connectiez avec root sans mot de passe !!!

Bien, décompressons les archives et éditons ce fichier.

tar xvfz state.tgz
tar xvfz local.tgz
cd etc/

on édite le fichier shadow qui aura cette forme :

root:XXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXxx:13358:0:99999:7:::
nobody:*:13358:0:99999:7:::
nfsnobody:!!:13358:0:99999:7:::
dcui:*:13358:0:99999:7:::
daemon:*:13358:0:99999:7:::
vpxuser:*:14875:0:99999:7:::

Nous allons modifier la ligne root en supprimant tout simplement le mot de passe crypté pour avoir cela

root::13358:0:99999:7:::

Il reste plus qu’a recompresser le tout et faire du ménage

cd /mnt/disque
tar cfz local.tgz etc
tar cfz state.tgz local.tgz
rm -r local.tgz etc

Démontez votre partition et rebootez.

Sans attendre une seconde , connectez vous via vsphere à votre ESXI. Il ne faut pas attendre, n’oubliez pas que root n’as plus de mot de passe. Laissez donc le champs mot de passe vide lors de la connexion.
Puis initialiser un nouveau mot de passe dans le menu utilisateurs et groupe locaux

Conclusion

Voila une procédure rapide pour réinitialiser son mot de passe perdu de son esxi chez ovh, vous pouvez le faire aussi en livecd sur une machine accessible physiquement. Et pour éviter encore plus le downtime je vous invite à voir le tutorial que j’ai fait sur l installation d’une clé SSH sur son ESXI

1 Comment

  1. Vous prendrez bien un peu de VMware ESXi avec votre virtualisation | Silentkernel - […] non mais il y a bien une méthode via le mode rescues des hébergeurs, mais attention il se peut…

Leave a Reply


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*