Mot de passe root perdu sur VMware ESXi 5.x

Vous avez égaré votre mot de passe ou un vilain pirate vous a subtilisé votre infrastructure?
Pas de panique, la solution se trouve dans Tux le manchot, autrement dit : Linux.
Un simple Live CD  permet de modifier votre login « root » de VMware ESXi 5.x

           Les étapes pour le changement du mot de passe

Il est important de bien comprendre les différentes étapes avant de se lancer :

  1. Télécharger une distribution Linux  par exemple : Ubuntu LTS 13.04.
  2. Lancer le Live CD avec l’interface graphique.
  3. Lister l’ensemble des partitions sur votre disque.
  4. Isoler et monter la partition racine de votre ESXi.
  5. Décompresser les archives importantes.
  6. Modifier le fichier utilisateur de l’hyperviseur.
  7. Recompresser cette nouvelle archive et supprimer l’ancienne.
  8. Démonter la partition racine de notre ESXi.
  9. Changer le mot de passe sur le client Vsphere.

Télécharger une distribution Linux : Ubuntu LTS 13.04

La méthode fonctionne avec n’importe quelle distribution. Cependant j’utilise Ubuntu : pourquoi ?
Ubuntu propose « gparted » ce qui nous permettra de trouver plus facilement notre partition racine.
Pour télécharger la distribution Ubuntuhttp://www.ubuntu-fr.org/telechargement?action=dl

Lancer le Live CD avec l’interface graphique

Insérer et lancer votre Live CD sur votre machine où VMware ESXi est installé.
Vous devriez voir apparaître ceci et cliquez sur « Essayer Ubuntu » :

Lister l’ensemble des partitions sur votre disque

Appuyer sur la touche « Super » ou cliquer sur le lanceur en haut à gauche puis rechercher « gparted« :

Ensuite sélectionner l’application gparted qui permet de lister facilement nos partitions :

sda1 est utilisé pour le démarrage du système ESXi 5.x.
sda5 est utilisé pour l’ensemble du système ESXi 5.x (autrement dit la racine).
sda6 est utilisé pour une copie de sda5 en cas de soucis.
sda8 est utilisé pour les VMware Tools, détient les VMware Tools ainsi que d’autre choses.
sda2 est utilisé pour la sauvegarde des fichiers journaux.

Isoler et monter la partition racine de votre ESXi

Dans le terminal, nous allons isoler /dev/sda5 et la monter dans un dossier :

sudo su
mkdir /mnt/esxi/
mount /dev/sda5/ /mnt/esxi/
cd /mnt/esxi/

Dans le dossier /mnt/esxi/ nous avons l’ensemble de la partition /dev/sda5 avec les fichiers suivants :

a.b00         imgdb.tgz     net_e100.v01  sata_sat.v01  scsi_mpt.v00
ata_pata.v00  ipmi_ipm.v00  net_enic.v00  sata_sat.v02  scsi_mpt.v01
ata_pata.v01  ipmi_ipm.v01  net_forc.v00  sata_sat.v03  scsi_mpt.v02
ata_pata.v02  ipmi_ipm.v02  net_igb.v00   sata_sat.v04  scsi_qla.v00
ata_pata.v03  jumpstrt.gz   net_ixgb.v00  sb.v00        scsi_qla.v01
ata_pata.v04  k.b00         net_mlx4.v00  scsi_aac.v00  state.tgz
ata_pata.v05  lpfc.v00      net_mlx4.v01  scsi_adp.v00  s.v00
ata_pata.v06  lsi_mr3.v00   net_nx_n.v00  scsi_aic.v00  tboot.b00
ata_pata.v07  lsi_msgp.v00  net_tg3.v00   scsi_bnx.v00  uhci_usb.v00
b.b00         misc_cni.v00  net_vmxn.v00  scsi_bnx.v01  user.b00
block_cc.v00  misc_dri.v00  ohci_usb.v00  scsi_fni.v00  useropts.gz
boot.cfg      mtip32xx.v00  onetime.tgz   scsi_hps.v00  weaselin.t00
chardevs.b00  net_be2n.v00  qlnative.v00  scsi_ips.v00  xlibs.v00
ehci_ehc.v00  net_bnx2.v00  rste.v00      scsi_lpf.v00  xorg.v00
elxnet.v00    net_bnx2.v01  sata_ahc.v00  scsi_meg.v00
esx_dvfi.v00  net_cnic.v00  sata_ata.v00  scsi_meg.v01
ima_qla4.v00  net_e100.v00  sata_sat.v00  scsi_meg.v02

Décompresser les archives importantes

Dans les fichiers listés ci-dessus nous avons besoin de « state.tgz » qui contient une archive.
Cette archive se nomme « local.tgz » et contient le dossier « etc » avec le fameux  fichier « shadow« .

tar xvzf state.tgz
tar xvzf local.tgz
ls

Le dossier « etc » apparaît après la décompression des deux fichiers :

cd etc/
ls

Le contenu du dossier « etc » :

chkconfig.db          hosts        resolv.conf  shadow  vmsyslog.conf    vmware
dhclient-vmk0.leases  random-seed  security     ssh     vmsyslog.conf.d

Modifier le fichier utilisateur de l’hyperviseur.

Nous allons maintenant devoir modifier le fichier qui contient l’utilisateur et le mot de passe d’ESXi.

nano shadow

Voici l’intérieur du fichier avec l’ensemble des utilisateurs par défaut sur l’ESXi 5.x :

root:$6$1yScI5Q5$aZmwdXKEisjY3n1U2Ct01UUlql1S0dGQlrrPv1/3JOWmWkLOM$km.Ib3Pge3ymRZms0E5YU.n82y.j0: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:::

On va pouvoir supprimer le mot de passe que l’on avait perdu, pour cela modifier la ligne suivante de façon à enlever le mot de passe crypté :

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

Pour enregistrer et sortir de l’éditeur « nano« ,  appuyer simultanément sur « Ctrl + x« .

Recompresser cette nouvelle archive et supprimer l’ancienne.

Maintenant que notre fichier shadow est modifié il nous faut recompresser ce fichier dans l’archive:

cd /mnt/esxi/
tar czf local.tgz etc
tar czf state.tgz local.tgz
rm -r local.tgz etc

Les paramètres de la commande « tar » permettent d’archiver « etc » dans « local.tgz » et ensuite d’archiver « local.tgz » dans « state.tgz » afin de retrouver l’archive d’origine « state.tgz » avec le « shadow » que l’on vient de modifier.

Démonter la partition racine de notre ESXi

Ne pas oublier de démonter proprement votre partition racine :

cd /
umount /dev/sda5/

Et redémarrer votre système :

reboot

Changer le mot de passe sur le client vSphere

Connectez vous avec votre client vSphere sur votre ESXi 5.x sans mot de passe « root », et changez votre mot de passe dans le menu « utilisateurs et groupes locaux » comme ci-dessous :

Bravo vous avez retrouvé votre ESXi 5.x comme au bon vieux temps !