Потеря доступа к паролю root на сервере с Proxmox VE — ситуация неприятная, но решаемая. Главная сложность заключается в том, что в Proxmox по умолчанию используется LVM (Logical Volume Manager), из-за чего корневой раздел не виден как обычный диск (/dev/sda1) при загрузке с LiveCD. Стандартные методы сброса через GRUB (single-user mode) здесь часто не работают.
В этой статье мы пошагово разберем, как восстановить доступ, используя RescueCD, и как провести аудит безопасности после входа.
Предварительные требования
- Доступ к консоли сервера (KVM/IPMI) или физический доступ.
- Загрузочный образ SystemRescueCD (или любой другой Linux LiveCD).
- Базовые навыки работы в командной строке Linux.
Шаг 1. Загрузка с RescueCD и активация LVM
-
Загрузите сервер с RescueCD. В меню загрузки выберите пункт Linux-LiveCD-systemrescuecd (или аналогичный).
-
После загрузки вы окажетесь в консоли
root@sysresccd. -
Первым делом нужно понять, как устроена разметка дисков. Выполните:
bashlsblk -f blkid -
- Если вы видите тип
LVM2_member— у вас LVM (самый частый вариант). Переходите к шагу 2. - Если вы видите
zfs_memberили пулrpool— у вас ZFS. Примечание: для ZFS команды будут отличаться (zpool import -f -R /mnt/sys rpool).
- Если вы видите тип
-
Активация LVM. Поскольку группа томов не активна, выполните:
vgscan --mknodes
vgchange -ay
lvsВажный нюанс: В стандартной установке Proxmox группа томов называется
pve. Однако, как показывает практика, администраторы часто переименовывают её (например, вpromox,dataи т.д.). В выводе командыlvsнайдите строку с томомrootи запомните имя группы томов (VG) и самого тома (LV).\
Шаг 2. Монтирование корневого раздела
Теперь, когда логические тома активированы, нужно смонтировать корень системы во временную папку.
- Создайте точку монтирования:
mkdir -p /mnt/sys- Смонтируйте корневой том. Используйте формат /dev/<Имя_VG>/root. Например, если в lvs вы увидели группу promox:
mount /dev/promox/root /mnt/sysЕсли группа называется
pve, команда будет `mount /dev/pve/root /mnt/sys
- Проверьте, что смонтировали именно корень:
ls /mnt/sysВы должны увидеть стандартные директории: bin, boot, etc, root, var и т.д.
Шаг 3. Смена пароля через chroot
Чтобы изменить пароль, нужно «войти» в смонтированную систему, используя chroot.
- Смонтируйте виртуальные файловые системы (это нужно для корректной работы утилит внутри chroot):
for d in dev proc sys; do sudo mount --rbind /$d /mnt/pve/$d; done
sudo chroot /mnt/pve passwd root
Если не получилось то можно и так
mount --rbind /dev /mnt/sys/dev
mount --rbind /proc /mnt/sys/proc
mount --rbind /sys /mnt/sys/sysСовет: Вводите эти команды по одной. Не пытайтесь объединить их в цикл
for, так как в консоли RescueCD это часто приводит к синтаксическим ошибкам.
- Входим в систему и меняем пароль:
chroot /mnt/sys passwd root- Введите новый пароль дважды. Обратите внимание: при вводе символы не отображаются на экране. Убедитесь, что раскладка клавиатуры английская (US) и Caps Lock выключен.
- При успехе вы увидите сообщение:
password updated successfully.
Решение проблемы: Authentication token manipulation error
Если при смене пароля вы получили ошибку passwd: Authentication token manipulation error, это может быть связано с:
- Несовпадением паролей (вы опечатались при повторном вводе).
- Раскладкой клавиатуры (попробуйте задать максимально простой пароль, например
12345678). - Файловая система смонтирована только для чтения. Проверьте это командой
mount | grep /mnt/sys. Если в параметрах естьro, перемонтируйте раздел в режим записи:
mount -o remount,rw /mnt/sys- Альтернативный метод (если
passwdупорно не работает):
Выйдите из chroot (exit), сгенерируйте хэш пароля:openssl passwd -6, скопируйте полученную строку. Затем откройте файл/mnt/sys/etc/shadow(например, черезnano), найдите строку, начинающуюся сroot:, и замените второе поле (между первым и вторым двоеточием) на ваш хэш.
Шаг 4. Завершение и перезагрузка
- Выйдите из chroot:
exit- Размонтируйте все обратно (в обратном порядке):
for d in dev proc sys; do sudo umount -R /mnt/pve/$d; done
sudo umount -R /mnt/pve # для ZFS вместо этого: sudo zpool export rpool
или
umount -R /mnt/sys/dev /mnt/sys/proc /mnt/sys/sys
umount -R /mnt/sys- Перезагрузите сервер:
reboot- Важно: Не забудьте вынуть загрузочную флешку или отключить ISO-образ в настройках виртуальной машины, чтобы сервер загрузился со штатного диска.
- Новый пароль подойдет для входа в веб-интерфейс Proxmox (
https://IP:8006, пользовательroot, realm Linux PAM) и для SSH.
Шаг 5. Обязательный аудит безопасности
- После успешного входа не спешите закрывать консоль. Если пароль был изменен не вами, или если вы подозреваете взлом, необходимо проверить систему на наличие бэкдоров и левых пользователей. Вот чек-лист:
last -F
journalctl _COMM=passwd --since "-30 days"Ищите подозрительные IP-адреса и время смены паролей.
- Проверьте наличие неизвестных пользователей:
cat /etc/passwd
grep -E "/bin/bash|/bin/sh" /etc/passwdОсобое внимание уделите пользователям с UID 0 (кроме root) и тем, у кого есть оболочка bash.
- Проверьте SSH-ключи root:
cat /root/.ssh/authorized_keysЕсли вы видите незнакомый публичный ключ — немедленно удалите его! 4. Проверьте пользователей Proxmox:
pveum user listУбедитесь, что нет лишних пользователей, и что email root принадлежит вам. Если видите чужой email — смените его, так как на него могут уходить уведомления.
- Проверьте автозагрузку и cron:
crontab -l
ls -la /etc/cron.d/
systemctl list-units --type=service --state=running- Проверьте сетевые соединения и процессы:
ss -tulpn
ps auxfw- Поиск недавно измененных файлов:
find /etc /bin /sbin /usr/bin /usr/sbin -mtime -2 -type f -lsРекомендации на будущее
- Настройте двухфакторную аутентификацию (2FA) для входа в Proxmox.
- Используйте сложные пароли и регулярно их меняйте.
- Ограничьте доступ к веб-интерфейсу Proxmox (порт 8006) по IP-адресам через файрвол.
- Регулярно обновляйте Proxmox VE до актуальной версии.
Восстановление доступа — это только половина дела. Убедитесь, что ваша система действительно безопасна, прежде чем возвращать её в продакшн.

Комментарии
Комментариев пока нет.