ESXi 7.x'te kök kullanıcı parolasını sıfırlama

ESXi 7.x'te kök kullanıcı parolasını sıfırlama

Bazen çeşitli nedenlerden dolayı geçerli bir şifreye sahip olmadığınız için ESXi yönetim konsoluna giriş yapamazsınız. Bu, sistemde bir güvenlik ihlali, sistem arızası, şifrenin kaybolması ya da uygun belgeler veya idari kontrol olmadan bir ESXi devralmanız durumunda olabilir. Bu, çözmeniz gereken rahatsız edici bir durumdur. Belki hemen değil, ancak bir şeyler ters gittiğinde ve şimdiye kadar normal şekilde çalışan bir sisteme müdahale etmeniz gerektiğinde. Bu kılavuz, tam da bu tür durumlar için yazılmıştır.

Yedekleme

Herhangi bir işlem yapmadan önce, yapılandırma, sanal makineler, ağ ayarları ve lisans için yedekler oluşturmalısınız.

  1. Host Yapılandırması:

    vim-cmd hostsvc/firmware/backup_config
    • Bu komut, host yapılandırmasının bir yedeğini oluşturur. Komut çalıştırıldığında, çıktı bir URL içerecektir (örneğin, http:///downloads/.tgz).
    • Bu URL’den dosyayı bir web tarayıcısı veya wget ya da curl gibi bir araç kullanarak indirin ve harici bir depolama cihazına kaydedin:

      wget http:///downloads/.tgz -O /path/to/backup/.tgz
    • Yapılandırmayı geri yüklemek için vSphere Client web arayüzünü kullanın:

      1. "Host" → "Configure" → "System" → "Backup/Restore" bölümüne gidin.
      2. "Restore" seçeneğini seçin ve daha önce kaydedilmiş .tgz dosyasını yükleyin.

      Alternatif olarak, mevcut yapılandırmayı diskte saklananla senkronize etmek için:

      vim-cmd hostsvc/firmware/sync_config
    • Geçerli bir root şifresi gereklidir. Eğer yoksa, vCenter veya SSH anahtarları üzerinden erişim kullanın.
  2. Sanal Makineler:

    ovftool vi://root@[ESXI_IP]/[VM_NAME] /path/to/backup/[VM_NAME].ova
    • ovftool aracı gereklidir ve bu araç bir yönetim makinesine (Windows, macOS veya Linux) kurulmalıdır. Araç, VMware Customer Connect’ten indirilebilir.
    • Yönetim makinesinin ESXi hostuna erişimi olduğundan emin olun ve komutu çalıştırmak için geçerli bir root şifresi kullanın.
    • .ova dosyasını harici bir depolama cihazına kaydedin.
  3. Ağ Ayarları:

    esxcli network ip interface list > network_config.txt

    Çıktıyı bir dosyaya kaydedin.

  4. ESXi Lisansı:

    vim-cmd vimsvc/license --show

Yedekleri, hosta bağlı olmayan harici bir depolama cihazında saklayın.

Altyapı Türünün Belirlenmesi

En uygun sıfırlama yöntemini seçmek için host türünü belirleyin:

  • vCenter Tarafından Yönetilen: ESXi’nin web arayüzündeki "Summary" bölümü bir vCenter sunucusunu gösterir.
  • Bağımsız: Yönetim doğrudan yapılır, vCenter olmadan.

Yöntem 1: vCenter Tarafından Yönetilen Host (Host Profilleri)

Bu yöntem, vCenter’a bağlı hostlar için Host Profillerini kullanır. Yeniden başlatma gerektirmez ve VMware tarafından desteklenir.

Gereksinimler

  • VMware vSphere Enterprise Plus lisansı.
  • vCenter sunucusuna erişim.
  • Bilinen bir root şifresine sahip başka bir ESXi hostu ve aynı ESXi sürümü (örneğin, 7.0 Update 3c).
  • Standart veya daha düşük bir lisans kullanıyorsanız, Yöntem 2 (yeniden kurulum) veya Yöntem 3’ü (Nested ESXi) kullanın.

Adımlar

  1. vSphere Client’a (HTML5) giriş yapın.
  2. "Host Profiles" bölümüne gidin:

    • Ana menüden "Menu" → "Host Profiles" seçeneğini seçin veya "Inventory" → "Hosts and Clusters" → "Host Profiles" üzerinden navigasyon yapın (vSphere sürümüne bağlı olarak).
  3. Profil çıkarın:

    • Bilinen bir şifreye sahip bir host seçin.
    • "Extract Profile from Host" seçeneğine tıklayın.
    • Profile bir isim verin, örneğin Password_Reset_Profile.
    • İşlemin tamamlanmasını bekleyin.
  4. Profili düzenleyin:

    • Profili seçin ve "Edit Settings" seçeneğine tıklayın.
    • "Security Configuration" → "Authentication Configuration" bölümüne gidin.
    • "Local User Accounts" bölümünde root hesabını seçin.
    • Yeni bir şifre belirleyin (en az 8 karakter, büyük harfler, sayılar ve özel karakterler içermeli).
    • Değişiklikleri kaydedin.
  5. Hedef hostu hazırlayın:

    • Unutulan şifreye sahip hostu seçin.
    • Bakım moduna geçin: sağ tıklayın → "Enter Maintenance Mode".
    • Uygunsa "Move powered off and suspended virtual machines to other hosts" seçeneğini seçin.
    • Eğer DRS veya vMotion mevcut değilse, sanal makineleri kapatın.
    • İşlemin tamamlanmasını bekleyin.
  6. Profili uygulayın:

    • "Host Profiles" bölümünde profili seçin.
    • "Attach/Detach Hosts and Clusters" seçeneğine tıklayın ve hostu seçin.
    • "Attach" seçeneğine tıklayın, ardından "Remediate".
    • Değişiklikleri onaylayın ve işlemin tamamlanmasını bekleyin (yaklaşık on dakika).
  7. Doğrulayın:

    • Bakım modundan çıkın: sağ tıklayın → "Exit Maintenance Mode".
    • Yeni şifreyle web arayüzü veya SSH üzerinden giriş yapın.
    • Sanal makineleri kontrol edin:

      vim-cmd vmsvc/getallvms

Notlar

  • Referans hostun ESXi sürümü, hedef hostla eşleşmelidir.
  • Yapılandırma uyumsuzlukları hatalara neden olabilir. vCenter günlüklerini kontrol edin.

Riskler

  • Talimatlar takip edilirse riskler minimumdur.
  • Yapılandırma uyumsuzlukları nedeniyle olası arızalar.

Yöntem 2: Bağımsız Host — Yeniden Kurulum

Bağımsız hostlar için ESXi’nin yeniden kurulumu kullanılır. Bu yöntem, yedekleme olmadan yapılandırma kaybına neden olur.

Adımlar

  1. Hazırlık:

    • ESXi’yi VMware Customer Connect’ten indirin.
    • Rufus, Ventoy veya şu komutla bir önyüklenebilir USB oluşturun:

      sudo dd if=/path/to/esxi.iso of=/dev/sdX bs=4M status=progress && sync

      /dev/sdX’in doğru USB cihazı olduğundan emin olun (lsblk veya fdisk -l ile kontrol edin).

    • Yedekleme yapın (bkz. "Yedekleme" bölümü).
  2. Yeniden Kurulum:

    • Kurulum ortamından önyükleme yapın.
    • Diski seçin ve üzerine yazmayı onaylayın.
    • Yeni bir root şifresi belirleyin (en az 8 karakter önerilir).
    • Kurulumun tamamlanmasını bekleyin (yaklaşık 15 dakika).
  3. Geri Yükleme:

    • Ağı yapılandırın:

      esxcli network ip interface ipv4 set -i vmk0 -I [IP] -N [NETMASK] -t static
      esxcli network ip route ipv4 add -g [GATEWAY] -n default
      esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0

      Eğer host vSphere Distributed Switch (vDS) kullanıyorsa, vDS’yi vCenter üzerinden geri yükleyin veya vSphere Standard Switch (vSS) yapılandırın.

    • Depolamayı bağlayın:

      esxcli storage core adapter rescan --all

      Tüm mevcut VMFS birimlerini bağlamak için:

      esxcli storage filesystem automount

      Eğer otomatik bağlama başarısız olursa, mevcut birimleri kontrol edin ve manuel olarak bağlayın:

      esxcli storage filesystem list
      esxcli storage filesystem mount --volume-label=[VOLUME_LABEL]

      [VOLUME_LABEL]’ü list komutundan alınan birim adıyla değiştirin.

    • Sanal makineleri içe aktarın:

      ovftool /path/to/backup/[VM_NAME].ova vi://root@[ESXI_IP]/

      ovftool’un hosta erişimi olan bir yönetim makinesinde çalıştırıldığından emin olun.

    • Lisansı geri yükleyin:

      vim-cmd vimsvc/license --set [LICENSE_KEY] --label="ESXi License"

      --label parametresi isteğe bağlıdır, ancak vSphere arayüzünde lisansı tanımlamak için önerilir.

Riskler

  • Yedekleme olmadan yapılandırma ve sanal makinelerin kaybı.
  • Ağ ve depolama yeniden yapılandırması gerekir.

Yöntem 3: Bağımsız Host — Alternatif Yöntem

Yeniden kurulumun mümkün olmadığı bağımsız hostlar için, yapılandırma dosyalarını değiştirmek için Nested ESXi ve bir Linux sanal makinesi kullanılır. Bu yöntem karmaşıktır, VMware tarafından desteklenmez ve deneyimli yöneticiler için tasarlanmıştır.

Gereksinimler

  • Hostun sürüm ve yapısına uygun Nested ESXi sanal makinesi (örneğin, 7.0 Update 3c). VMware Flings üzerinden temin edilebilir.
  • Linux sanal makinesi (örneğin, Ubuntu 20.04+).
  • Sunucuya fiziksel erişim.
  • Linux deneyimi.

Adımlar

  1. Nested ESXi ve Linux sanal makinesini dağıtın.
  2. Linux LiveCD ile önyükleme yapın, ESXi bölümlerini bağlayın ve state.tgz ile local.tgz dosyalarını kopyalayın.
  3. Dosyaları Nested ESXi’ye aktarın, /usr/lib/vmware/crypto-util kullanarak şifrelerini çözün ve SQLite veritabanında şifre hash’ini değiştirin.
  4. Dosyaları yeniden paketleyin ve şifreleyin, hosta geri yükleyin ve yeniden başlatın.

Riskler

  • Eğer host Trusted Platform Module (TPM) kullanıyorsa, yapılandırma dosyaları TPM anahtarlarına bağlıdır. Anahtarlar olmadan dosyaların değiştirilmesi sistemi kullanılamaz hale getirebilir. Kontrol edin:

    esxcli system settings encryption get

    Eğer Encryption Mode TPM’yi gösteriyorsa, bu yöntem uygun olmayabilir.

  • Yanlış değişiklikler ağ ayarlarını, depolamayı veya sanal makineleri sıfırlayabilir.
  • Nested ESXi, hostun sürümüne tam olarak uymalıdır.
  • ESXi 8.x’te şifreleme değişiklikleri nedeniyle bu yöntem çalışmayabilir.

Alternatif

Eğer SSH etkinse, bir SSH anahtarı ekleyin:

  • Bir anahtar oluşturun:

    ssh-keygen -t rsa -b 4096
  • Anahtarı /etc/ssh/keys-root/authorized_keys dosyasına ekleyin.

Önleyici Tedbirler

  1. Belgeleme:

    • Şifreleri HashiCorp Vault gibi bir şifre yöneticisinde saklayın.
    • Belgeleri güncel tutun.
  2. SSH Erişimi:

    • Geçerli oturum için SSH’yi etkinleştirin:

      esxcli system services enable --id=TSM-SSH
      esxcli system services start --id=TSM-SSH
    • Başlangıçta SSH’nin otomatik başlatılması için:

      esxcli system services set --policy=on --id=TSM-SSH
    • ESXi Shell zaman aşımını devre dışı bırakın:

      esxcli system settings advanced set -o /UserVars/ESXiShellTimeOut -i 0
    • Alternatif olarak, vSphere Client üzerinden yapılandırın:

      1. Hostu seçin → "Configure" → "Services".
      2. "TSM-SSH"yi bulun, "Options" → "Start and stop with host" seçeneğini seçin.
    • SSH anahtarlarını yapılandırın:

      1. İstemci makinesinde bir anahtar oluşturun:

        ssh-keygen -t rsa -b 4096
      2. Genel anahtarı (örneğin, ~/.ssh/id_rsa.pub) hosta kopyalayın:

        scp ~/.ssh/id_rsa.pub root@[ESXI_IP]:/etc/ssh/keys-root/authorized_keys
      3. İzinleri ayarlayın:

        ssh root@[ESXI_IP] "chmod 644 /etc/ssh/keys-root/authorized_keys"
    • Anahtarları /etc/ssh/keys-root/authorized_keys içinde saklayın.
  3. Active Directory:

    • Hostu bir etki alanına CLI üzerinden katın:

      esxcli system authentication activedirectory join -d [DOMAIN] -u [USERNAME] -p [PASSWORD]

      [DOMAIN] (örneğin, example.com), [USERNAME] (katılım izni olan kullanıcı) ve [PASSWORD] belirtin.

    • Alternatif olarak, vSphere Client kullanın:

      1. Hostu seçin → "Configure" → "Authentication Services".
      2. "Join Domain" seçeneğine tıklayın, etki alanını ve kimlik bilgilerini belirtin.
    • Etki alanı grubuna vSphere Client üzerinden izinler atayın:

      1. Hostu veya vCenter’ı seçin.
      2. "Permissions" bölümüne gidin.
      3. "Add" seçeneğine tıklayın, grubu seçin (örneğin, DOMAIN\GroupName) ve bir rol atayın (örneğin, "Administrator").
    • Otomasyon için PowerCLI kullanın:

      New-VIPermission -Entity (Get-VMHost) -Principal "DOMAIN\GroupName" -Role Admin
  4. İzleme:

    • vRealize Operations veya Zabbix kullanın.
    • Arızalar için bildirimleri yapılandırın.
  5. Yedekleme:

    • Otomatize edin:

      vim-cmd hostsvc/firmware/backup_config

      Dosyayı URL üzerinden indirin ve harici bir cihaza kaydedin.