5W site logo 5W - мой домашний сайт-блог с картинками, кино и плюшками.

root-passwd-change.txt

Восстановление пароля для root или угроза безопасности из коробки в Linux

Статью нашёл по адресу: http://itshaman.ru/articles/12/passwd-root-linux

Если Вы забыли пароль и не можете получить доступ к операционной системе? То эта статья для Вас!
В статье собрана исчерпывающая информация, способная помочь отредактировать пароль root в операционной системе Линукс. Способы восстановления подойдут абсолютно для любых дистрибутивов Linux.
В то же время эта статья даст пищу для размышлений на тему незащищенности менеджера загрузки ОС при физическом доступе к Linux машине. Злоумышленник может получить привилегированный доступ к компьютеру или серверу, войдя в однопользовательский режим и сменив пароль root. При этом ему не требуется знать ни единого пароля системы.


Содержание
1. Введение
2. Восстановление пароля root в дистрибутивах Linux
2.1. Дистрибутивы с включенным локальным входом root`a (Mandriva, ASPLinux и др.)
2.2. Дистрибутивы с отключенным локальным входом root`a (Ubuntu, Kubuntu и др.)
3. Использование LiveCD для восстановления пароля root

1. Введение
Есть ситуации, когда требуется войти в систему под root, но пароль неизвестен. Общий механизм восстановления заключается в осуществлении загрузки системы в однопользовательском режиме и редактировании пароля. Этот доступ можно получить только отредактировав конфигурацию менеджера загрузки ОС. Если по какой-то причине этого сделать нельзя (установлен пароль на изменение запуска, используется «самописный» загрузчик и т.д.), то следует использовать LiveCD любого доступного дистрибутива Linux.
Этот подход к восстановлению пароля может быть использован злоумышленником с целью осуществления несанкционированного доступа. Получается, что установленная система по умолчанию не имеет должной защиты при физическом доступе к компьютеру. Злоумышленник может с легкостью получить полный доступ к системе.
Решение, которое может обезопасить от такого рода взлома ОС, заключается в установке пароля доступа к редактированию конфигурации менеджера загрузки системы. Об установке пароля на менеджер загрузки ОС можно прочитать в статье "Установка и настройка пароля на менеджер ОС GRUB".

2. Восстановление пароля root в дистрибутивах Linux



2.1 Дистрибутивы с включенным локальным входом root`a

К этому списку относится большинство дистрибутивов Linux. Проще говоря, это дистрибутивы, в которых можно залогиниться в системе в качестве root`a. Все примеры, приведенные ниже, относятся к дистрибутиву Mandriva.
Алгоритм восстановления пароля root в дистрибутивах с включенным локальным входом суперпользователя:
При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В некоторых дистрибутивах используется графический режим (например Mandriva), который отключается клавишей .
GNU GRUBversion 0.97 (639K lower / 129984K upper memory)
linux
linux-nonfb
failsafe
Use the ↑ and ↓ keys to select which entry is hightlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу (Edit). В данном примере только одно доступное ядро.
Следующим шагом редактируем параметры загрузки ядра.
GNU GRUBversion 0.97 (639K lower / 129984K upper memory)
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/hda1→
initrd (hd0,0)/boot/initrd.img
Use the ↑ and ↓ keys to select which entry is hightlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу (Edit).
К концу строки после пробела добавляем 1 и нажимаем .
[ Minimal BASH-like line editing is supported. Fot the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ]
Этот добавленный параметр позволяет запустить систему в однопользовательском режиме (Single Mode) с правами root. В следующем окне нажимаем клавишу (Boot).
После загрузки системы меняем пароль суперпользователя root. Для этого запускаем команду:
# passwd root
При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.
sh-3.2# passwd root
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
Пароль изменен.
Далее ++ и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.

2.2 Дистрибутивы с отключенным локальным входом root`a

К таким дистрибутивам относятся: Ubuntu, Kubuntu, Xubuntu, Edubuntu. Идеология этих дистрибутивов запрещает работать от имени суперпользователя. Поэтому в них по умолчанию отключен локальный вход root`a на компьютер. В таких ОС только восстановить пароль недостаточно. Нужно еще включить этот самый локальный вход.
Восстановление пароля в Ubuntu, Kubuntu, Xubuntu, Edubuntu:
При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу (Edit).
Следующим шагом редактируем параметры загрузки ядра. В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу (Edit).
uuid b01b2698-983b-4de7-8ba5-fe9Bad772722
kernel /boot/vnlinuz-2.6.27-9-generic boot=UUID=b01b2698-983b-4de7→
initrd /boot/initrd.img-2.6.27-9-generic
quiet
Use the ↑ and ↓ keys to select which entry is highlighted Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu.
К концу строки после пробела добавляем:
# rw init=/bin/bash
В результате на экране получаем:
[ Minimal BASH-like line editing is supported. Fot the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ]
<-983b-4de7-Bba5-fe98ad772722 ro quiet rw init=/bin/bash
Жмем и затем клавишу (Boot).
После загрузки системы меняем пароль root командой:
# passwd root
При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.

root@(none):/# passwd root
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
Пароль изменен.
Добавляем разрешение на локальный вход суперпользователю. Для этого нужно отредактировать конфигурационный файл /etc/gdm/gdm.conf. В разделе [SECURITY], находим параметр AllowRoot и меняем его значение на true:
# sudo nano /etc/gdm/gdm.conf
# Открываем файл для редактирования
Ищем строку в разделе [SECURITY]:
AllowRoot=false
И меняем параметр AllowRoot на true. Должно получиться так:
AllowRoot=true
Закрываем файл, сохраняя внесенные изменения.
Жмем ++ и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.

3. Использование LiveCD для восстановления пароля root

Если по каким-то причинам Вы не можете восстановить пароль root вышеизложенными способами, то предлагаю рассмотреть последний общий способ восстановления. Этот способ подойдет для любой операционной системы Linux.
Суть последнего способа заключается в загрузке компьютера с LiveCD в root окружении вашего корневого раздела и смене пароля.
Использование LiveCD для восстановления пароля суперпользователя root:
Загружаемся с LiveCD;
Монтируем корневую файловую систему к директории /mnt. Про монтирование можно прочитать подробнее в статье "Команда mount в Linux или все о монтировании разделов, дисков, образов ISO и SMB ресурсов"
# sudo fdisk -l
# Просматриваем структуру жесткого диска. Корневой раздел будет помечен символом /, именно он нам и нужен.
# sudo mount /dev/корневой раздел /mnt
# Монтирование корневого раздела. В качестве точки монтирования директория /mnt.
Добавляем root-окружение системе LiveCD:
#sudo chroot /mnt
Меняем стандартной командой пароль root:
#sudo passwd root
При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.

root@ubuntu#sudo passwd root
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
Перезагружаем систему и входим под добавленной учетной записью root.
Из всего написанного выше можно сделать вывод, что восстановление утерянного пароля root не столь уж трудоемкая работа, с которой может справиться любой заинтересованный человек. Даже тот кому этого делать не положено. С точки зрения безопасности, вход в однопользовательский режим операционной системы требует дополнительного внимания.
Об этом должен знать и помнить каждый системный администратор!