Es kommt leider immer wieder vor, dass wichtige Systeme in der Vergangenheit nicht, oder nur unzureichend dokumentiert wurden. Geplante Wartungsarbeiten oder Updates drohen an einem fehlenden Login zur vCenter Server Appliance zu scheitern.
Bei einer vCenter Server Appliance 5.5 (VCSA) das root Passwort zurücksetzen ist nicht sehr kompliziert. Bei der VCSA 6.x ist jedoch der GRUB Bootloader mit einem Passwort geschützt, so dass der obige Trick nicht direkt durchführbar ist. Ich fand aber zwei unterschiedliche Ansätze, auch diesen Schutz zu umgehen. Der erste untfernt das GRUB Passwort und hat damit die Möglichkeit in eine Bash Shell zu booten. Die zweite Methode verändert die Password Shadows des root Users.
Beide Methoden setzen voraus, daß ich physischen Zugang zur Virtuellen Infrastruktur habe und in der Lage bin, von einer CD oder einem ISO zu booten.
Methode 1 – Grub Password entfernen
Dazu benötigt man ein Live-Linux ISO (z.B. RHEL oder CentOS).
- ESX Host notieren, auf dem die VCSA betrieben wird und VCSA herunterfahren.
- vSphere-Client auf diesen ESX Server öffnen und der gestoppten VCSA VM das Live-Linux ISO einhängen.
- Live-Linux booten
- Troubleshooting Option wählen
- Rescue Linux System wählen
- Option Continue wählen. Das Rescue System mounted das root Filesystem unter /mnt/sysimage.
cd /mnt/sysimage/boot/grub ls -l
vi menu.lst
- Dort zur Zeile navigieren, die mit “password” beginnt und dies mit dem Kommando dd löschen.
- menu.lst mit dem vi Kommando :wq! abspeichern
- shell beenden und neu starten (ggf. das ISO aushängen)
- Beim Systemstart die VCSA im GRUB Menü mit der ESC Taste stoppen.
Jetzt ist der Passwortschutz auf dem Bootloader entfernt und das root Passwort der VCSA kann verändert werden.
Mit Taste “e” können die Bootloader Einträge editiert werden.
Zum Eintrag “kernel /vmlinuz….” navigieren und erneut “e” drücken.
Am Ende der Zeile init=/bin/bash hinzufügen und [Enter] drücken.
Mit Taste “b” die neuen Kerneloptionen booten. Das System bootet in eine Bash Shell.
Das neue Passwort setzen
passwd root
exit
Danach sollte ein login mit neuem Passwort möglich sein.
Methode 2 – Shadows modifizieren
Eine zweite interessante Methode fand ich im Blog von Settlersoman.
Auch hier wird wieder ein Live-Linux gebootet. Falls nicht automatisch geschehen, muss das root Filesytem der VCSA gemounted werden.
sudo mkdir /mnt/vcsa sudo mount /dev/disk /mnt/vcsa ls -la
Es wird ein Backup der shadow Datei angelegt und der Password Hash in ein Textfile geschrieben.
sudo cp /mnt/folder/etc/shadow /mnt/folder/etc/shadow.bak sudo cat /mnt/folder/etc/shadow | grep root > hash.txt cat hash.txt
Das alte Salt (myOldSalt) ist der String zwischen dem 2. und 3. $
mkpasswd -m sha-512 myNewPassword myOldSalt
Den generierten neuen Hash kopieren und in das shadow File einfügen.
vi /mnt/folder/etc/shadow
Editor mit :wq verlassen und die VCSA neu booten.
sudo reboot
Links
- UnixArena – How to break GRUB / Recover Root password on VCSA 6.0
- Settlersoman – How to reset root password on vCenter Appliance
- Knoppix Live Linux