[vSphere] Hướng dẫn reset mật khẩu root trên vSphere ESXi

4588

Chào các bạn, ở bài viết này chúng ta cùng tìm hiểu cách thức để reset mật khẩu root trên vSphere ESXi trong trường hợp bạn quên mật khẩu nhé. Hãy tưởng tượng, một ngày nọ bạn cần đăng nhập ESXi để quản lý dưới quyền user root, thì hỡi ôi bạn đã quên mất cái thông tin mật khẩu chính xác để đăng nhập vào rồi. Đau đầu dễ sợ và cần tìm cách để khôi phục (reset) lại mật khẩu root trên ESXi Server.

Bạn cần biết rằng, VMware vSphere ESXi OS chứa thông tin về tài khoản user, mật khẩu đã hash,… ở file có tên /etc/shadow giống như các OS Linux/UNIX khác. Các thông tin hệ thống, cấu hình hệ thống,.. được lưu giữ trong một file nén lưu trữ cấu hình có tên ‘state.tgz‘ nằm ở phân vùng boot image ESXi. Và đây cũng là file nén chứa cả thông tin mật khẩu user root đấy.

Tuy nhiên bản thân VMware cũng cảnh báo rằng, nếu ta quên mật khẩu thì chỉ có nước cài đặt mới một ESXi Host mà thôi.

Reinstalling the ESXi host is the only supported way to reset a password on ESXi. Any other method may lead to a host failure or an unsupported configuration due to the complex nature of the ESXi architecture. ESXi does not have a service console and as such traditional Linux methods of resetting a password, such as single-user mode. – (LINK Source)

Vậy vì sao phương pháp ở bài viết này dùng để reset pass root ESXi không được VMware khuyến khích thực hiện ? Đơn giản là bạn thao tác trực tiếp với các file hệ thống cấu hình ESXi , nên nếu có bất kì thao tác nhầm lẫn nào sẽ gây ảnh hưởng hoạt động của hệ thống ESXi. Chính vì vậy bạn cần thao tác cẩn thận trong hoạt động reset pass root ESXi với các thao tác mình chỉ dẫn.

Cấu trúc thứ tự partition của ESXi

Partition 1: systemPartition 4MB
Partition 5: linuxNative 250MB -> /bootbank
Partition 6: linuxNative 250MB -> /altbootbank
Partition 7: vmkDiagnostic 110MB
Partition 8: linuxNative 286MB -> /store
Partition 2: linuxNative 4GB -> /scratch
Partition 3: VMFS datastore

Bạn cần lưu ý 2 partition 5 và 6 trong cấu trúc partition layout của OS ESXi. Vì phân vùng 5 /bootbank chứa file ‘state.tgz‘ đã được nén, trong file này chứa thông tin hệ thống kể cả file ‘state.tgz‘. Phân vùng partition 6/altbootbank‘, chứa bản copy của file boot image và file state.tgz ở phân vùng partition 5 nhằm backup/recovery. Nên khi thực hiện các thao tác reset pass root trên ESXi ta cần thao tác trên cả 2 file ‘state.tgz’ của 2 partition 5 và 6.

Các bước để reset mật khẩu root trên vSphere ESXi

Bước 1: boot LiveCD

Bạn hãy boot ESXi Server của bạn với đĩa cứu hộ Linux có thể là Ubuntu hoặc CentOS đều được. Mình chọn CentOS 7 LiveCD cứu hộ để boot. Lúc này OS LiveCD sẽ được load lên bộ nhớ RAM để chạy như dưới.

reset mật khẩu root esxi - 1Sau đó hãy mở terminal của OS LiveCD ra nhằm thực hiện các thao tác cứu hộ nhé. Nhảy lên quyền user root luôn để thực thi các câu lệnh khác.

# sudo -s

Bước 2: mount phân vùng boot image hypervisor ESXi

Bạn sử dụng lệnh ‘parted‘ để coi thông tin về partition layout của ổ cứng đang cài đặt ESXi. Trong trường hợp của mình đó là phân vùng logical tên ‘/dev/sdb‘. Sau đó bạn nhìn tiếp tục sẽ thấy boot image của OS ESXi được nằm ở 250MB partition /dev/sdb5 (partition thứ 5) có chứa file nén tên ‘state.tgz‘.

# parted -l
Model: DELL PERC H730P Mini (scsi)
Disk /dev/sdb: 960GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 32.8kB 4194kB 4162kB fat16 boot
5 4211kB 266MB 262MB fat16
6 266MB 528MB 262MB fat16
7 528MB 644MB 115MB
8 644MB 944MB 300MB fat16
9 944MB 3628MB 2684MB
2 3628MB 7922MB 4294MB fat16
3 7922MB 960GB 952GB

reset mật khẩu root esxi - 2

Giờ ta sẽ thực hiện mount phân vùng /dev/sdb5 để lấy file ‘state.tgz‘ ra chỉnh sửa. Thực hiện các câu lệnh Linux sau để mount.

# mkdir /mnt/esxi/
# mount /dev/sdb5 /mnt/esxi/
# cd /mnt/esxi/

Liệt kê thử các nội dung file nằm trong thư phân vùng /dev/sdb5 đang được mount . Bạn sẽ tìm thấy file ‘state.tgz‘.

# ls -A
a.b00 b.b00 emulex_e.v00 ipmi_ipm.v01 lsu_lsi_.v00 net_bnx2.v01 net_mlx4.v00 nmlx4_rd.v00 sata_ahc.v00 scsi_adp.v00 scsi_meg.v01 tboot.b00 weaselin.t00
ata_pata.v00 block_cc.v00 esx_dvfi.v00 ipmi_ipm.v02 lsu_lsi_.v01 net_cnic.v00 net_mlx4.v01 nmlx5_co.v00 sata_ata.v00 scsi_aic.v00 scsi_meg.v02 uc_amd.b00 xhci_xhc.v00
ata_pata.v01 bnxtnet.v00 esx_ui.v00 ixgben.v00 lsu_lsi_.v02 net_e100.v00 net_nx_n.v00 nvme.v00 sata_sat.v00 scsi_be2.v00 scsi_mpt.v00 uc_intel.b00 xorg.v00
ata_pata.v02 boot.cfg i40en.v00 jumpstrt.gz lsu_lsi_.v03 net_e100.v01 net_qlcn.v00 ohci_usb.v00 sata_sat.v01 scsi_bnx.v00 scsi_mpt.v01 uhci_usb.v00
ata_pata.v03 brcmfcoe.v00 igbn.v00 k.b00 lsu_lsi_.v04 net_enic.v00 net_qlge.v00 onetime.tgz sata_sat.v02 scsi_bnx.v01 scsi_mpt.v02 user.b00
ata_pata.v04 chardevs.b00 ima_be2i.v00 lpfc.v00 misc_cni.v00 net_forc.v00 net_tg3.v00 qedentv.v00 sata_sat.v03 scsi_fni.v00 scsi_qed.v00 useropts.gz
ata_pata.v05 dell_con.v00 ima_qla4.v00 lsi_mr3.v00 misc_dri.v00 net_i40e.v00 net_vmxn.v00 qedf.v00 sata_sat.v04 scsi_hps.v00 scsi_qla.v00 vsanheal.v00
ata_pata.v06 ehci_ehc.v00 imgdb.tgz lsi_msgp.v00 mtip32xx.v00 net_igb.v00 nmlx4_co.v00 qlnative.v00 sb.v00 scsi_ips.v00 state.tgz vsanmgmt.v00
ata_pata.v07 elxnet.v00 ipmi_ipm.v00 lsu_hp_h.v00 net_bnx2.v00 net_ixgb.v00 nmlx4_en.v00 rste.v00 scsi_aac.v00 scsi_meg.v00 s.v00 vsan.v00

reset mật khẩu root trên esxi - 3

Bước 3: xoá mật khẩu trong file shadow của state.tgz

Giờ ta cần thao tác với file hệ thống ESXi đang nằm trong file nén ‘state.tgz‘. Hãy copy file ‘state.tgz‘ ra thư mục tạm ‘/tmp‘, sau đó giải nén liên tục file state.tgzlocal.tgz .

# cp state.tgz /tmp/
# cd /tmp/
# tar xzvf state.tgz
local.tgz
# tar xzvf local.tgz
etc/security/access.conf
etc/vmware/ssl/rui.key
etc/vmware/ssl/rui.crt
etc/vmware/hostd/vmAutoStart.xml
etc/vmware/hostd/pools.xml
etc/vmware/hostd/hostsvc.xml
etc/vmware/configrules
etc/vmware/locker.conf
etc/vmware/lunTimestamps.log
etc/vmware/license.cfg
etc/vmware/vpxa/vpxa.cfg
etc/vmware/rhttpproxy/config.xml
etc/vmware/esx.conf
etc/vmware/.backup.counter
etc/vmware/dvsdata.db
etc/vmsyslog.conf.d/hostd.conf
etc/vmsyslog.conf.d/vpxa.conf
etc/vmsyslog.conf.d/fdm.conf
etc/ssh/ssh_host_dsa_key.pub
etc/ssh/sshd_config
etc/ssh/ssh_host_rsa_key
etc/ssh/ssh_host_rsa_key.pub
etc/ssh/ssh_host_dsa_key
etc/chkconfig.db
etc/keymap
etc/sfcb/repository/root/interop/cim_indicationfilter.idx
etc/sfcb/repository/root/interop/cim_listenerdestinationcimxml.idx
etc/sfcb/repository/root/interop/cim_indicationhandlercimxml.idx
etc/sfcb/repository/root/interop/cim_indicationsubscription.idx
etc/sfcb/repository/root/interop/sfcb_registeredprofile.idx
etc/sfcb/repository/root/interop/sfcb_registeredprofile
etc/sfcb/repository/root/config/omc_config.idx
etc/sfcb/repository/root/config/omc_config
etc/sfcb/repository/root/config/omc_namespaceconfig.idx
etc/sfcb/repository/root/config/omc_namespaceconfig
etc/sfcb/sfcb.cfg
etc/sfcb/uuid
etc/hosts
etc/dhclient-vmk0.leases
etc/random-seed
etc/resolv.conf
etc/vmsyslog.conf
etc/shadow

Di chuyển đến thư mục ‘etc/’ vừa được giải nén ra . Lúc này bạn sẽ tìm thấy file ‘shadow‘ như trên các hệ thống Unix, file này chứa thông tin mật khẩu đã được hash của user trên hệ thống Linux/UNIX có user ‘root‘.

# cd etc
# vi shadow

root:$6$Yr02W8dJ$x0leg7YpspFgywlOUL0Axc47tB6iaYsL2nm5ZgvFcSVCQT8ZBCvvAEAZLFHqUzTPRRt8VSfSOfiGfrwvR7ZTG/: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:::

reset mật khẩu root trên esxi - 4

Hãy xoá nội dung cột thứ 2 của dòng user root, ngăn cách bởi kí tự ‘:‘ . Lúc này user root mặc định sẽ không có thông tin mật khẩu để login. Nên xem như là login bằng user root không cần mật khẩu.

root::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:::

reset mật khẩu root trên esxi - 5

Bước 4: nén nội dung thông tin mới thành file ‘state.tgz’

Giờ ta chỉ cần nén lại thư mục chứa file shadow thành local.tgz mới, rồi nén lại thành file state.tgz mới. Thay thế file state.tgz hiện có trên phân vùng /dev/sdb5 đang được mount.

# pwd
/tmp/etc
# cd ..
# pwd
/tmp
# tar czvf local.tgz etc
# tar czvf state.tgz local.tgz
# cp state.tgz /mnt/esxi/
cp: overwrite ‘/mnt/esxi/state.tgz’? y

Sau đó umount phân vùng /dev/sdb5.

# cd /root
# umount /mnt/esxi

Rồi xử lý tiếp file ‘state.tgz‘ recovery/backup ở phân vùng /dev/sdb6/altbootbank‘. Lặp lại xử lý y như từ bước 1 đến bước 4 như ở phân vùng /dev/sdb5 đã làm trên. Sau khi xử lý xong thì hãy reboot lại hệ thống ESXi.

# reboot

Bước 5: login user root / set lại mật khẩu mới

Tới những bước vô cùng dễ dàng rồi. Bạn chỉ cần bỏ boot LiveCD đi, boot vào OS ESXi vào menu DCUI của ESXi. Ấn F2 để đăng nhập user root với ô mật khẩu để rỗng.

reset mật khẩu root trên esxi - 6

Sau đó vào phần “Configure Password” để set mật khẩu mới.

reset mật khẩu root trên esxi - 7

Ở ô “Old Password” bạn để rỗng, còn lại thì điền thông tin mật khẩu mới nhé.

reset mật khẩu root trên esxi - 8

Cực kì đơn giản để có thể thực hiện việc reset mật khẩu root trên vSphere ESXi phải không nào. Hãy đảm bảo các thao tác của bạn là cẩn thận, không xoá nhầm, ghi sai nội dung file cấu hình,… để hệ thống ESXi hoạt động ổn định nhé. Nếu có bất kì vấn đề gì thì đừng ngại comment trao đổi cùng ‘Cuongquach.com‘ về các bài viết VMware hoặc ảo hoá nhé.

Nguồn: cuongquach.com
Tác giả: Quách Chí Cường
Tiêu đề: Hướng dẫn reset mật khẩu root trên vSphere ESXi

Previous article[vSphere] Hướng dẫn kích hoạt SSH trên vSphere ESXi
Next articleEbook Pro Linux System Administration 2nd Edition PDF
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !

2 COMMENTS

  1. Dear Anh Cường.

    Em cám ơn những kiến thức anh chia sẻ rất nhiều. Em đã học được nhiều kiến thức từ website của anh. Anh vui lòng cho em hỏi : e đã làm được các thao tác để remove cái password cũ của User Root. nhưng đến khi login vào để thay đổi password thì luôn nhận được thông báo lỗi là :
    “Configure Password: Error
    The password change operation failed.
    Please ensure that your password meets the complexity criteria set by the system.”
    Em đã thử đặt các password như sau : P@ssword123; t@nkPro246. Anh có thể giải thích giúp em hiện tượng lỗi trên không ạ ? Em cảm ơn anh rất nhiều

LEAVE A REPLY

Please enter your comment!
Please enter your name here