Настройка сервера Linux и Windows
ITShaman - Сайт для АЙТИшников!
"Машины должны работать. Люди должны думать."
(девиз компании IBM)

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

Если Вы забыли пароль и не можете получить доступ к операционной системе? То эта статья для Вас!

В статье собрана исчерпывающая информация, способная помочь отредактировать пароль root в операционной системе Линукс. Способы восстановления подойдут абсолютно для любых дистрибутивов Linux.

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

1. Введение
Наверх


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

Этот подход к восстановлению пароля может быть использован злоумышленником с целью осуществления несанкционированного доступа. Получается, что установленная система по умолчанию не имеет должной защиты при физическом доступе к компьютеру. Злоумышленник может с легкостью получить полный доступ к системе.

Решение, которое может обезопасить от такого рода взлома ОС, заключается в установке пароля доступа к редактированию конфигурации менеджера загрузки системы. Об установке пароля на менеджер загрузки ОС можно прочитать в статье "Установка и настройка пароля на менеджер ОС GRUB".

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


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

К этому списку относится большинство дистрибутивов Linux. Проще говоря, это дистрибутивы, в которых можно залогиниться в системе в качестве root`a. Все примеры, приведенные ниже, относятся к дистрибутиву Mandriva.

Алгоритм восстановления пароля root в дистрибутивах с включенным локальным входом суперпользователя:

  1. При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В некоторых дистрибутивах используется графический режим (например Mandriva), который отключается клавишей <Esc>.
    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.
    В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу <E> (Edit). В данном примере только одно доступное ядро.
  2. Следующим шагом редактируем параметры загрузки ядра.
    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 и нажимаем клавишу <E> (Edit).
  3. К концу строки после пробела добавляем 1 и нажимаем <ENTER>.
    [ 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. ]

    <a1 resume=/dev/hda5 splash=silent vga=788 1
    Этот добавленный параметр позволяет запустить систему в однопользовательском режиме (Single Mode) с правами root. В следующем окне нажимаем клавишу <B> (Boot).
  4. После загрузки системы меняем пароль суперпользователя root. Для этого запускаем команду:
    # passwd root
    При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.
    sh-3.2# passwd root
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully
    Пароль изменен.
  5. Далее <Ctrl>+<Alt>+<Delete> и при последующем старте системы можно будет зайти под учетной записью суперпользователя root.

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

К таким дистрибутивам относятся: Ubuntu, Kubuntu, Xubuntu, Edubuntu. Идеология этих дистрибутивов запрещает работать от имени суперпользователя. Поэтому в них по умолчанию отключен локальный вход root`a на компьютер. В таких ОС только восстановить пароль недостаточно. Нужно еще включить этот самый локальный вход.

Восстановление пароля в Ubuntu, Kubuntu, Xubuntu, Edubuntu:

  1. При загрузке системы Вы попадаете в меню менеджера загрузки ОС, где списком отображены способы запуска ОС с доступными версиями ядра. В начале списка обычно располагается самое новое ядро, напротив которого Вам следует установить курсор и нажать клавишу <E> (Edit).
  2. Следующим шагом редактируем параметры загрузки ядра. В этом списке ставим курсор на пункт, который начинается со слова kernel и нажимаем клавишу <E> (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.
  3. К концу строки после пробела добавляем:
    # 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
    Жмем <ENTER> и затем клавишу <B> (Boot).
  4. После загрузки системы меняем пароль root командой:
    # passwd root

    При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.

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

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


Если по каким-то причинам Вы не можете восстановить пароль root вышеизложенными способами, то предлагаю рассмотреть последний общий способ восстановления. Этот способ подойдет для любой операционной системы Linux.

Суть последнего способа заключается в загрузке компьютера с LiveCD в root окружении вашего корневого раздела и смене пароля.

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

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

    При смене пароля, система не будет спрашивать старый пароль, а сразу предложит ввести новый с последующим его повторным подтверждением.

    root@ubuntu#sudo passwd root
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully
  5. Перезагружаем систему и входим под добавленной учетной записью root.

Из всего написанного выше можно сделать вывод, что восстановление утерянного пароля root не столь уж трудоемкая работа, с которой может справиться любой заинтересованный человек. Даже тот кому этого делать не положено. С точки зрения безопасности, вход в однопользовательский режим операционной системы требует дополнительного внимания.

Об этом должен знать и помнить каждый системный администратор!

Статья опубликована 17.05.2009 · Автор статьи: Зюзгин Иван
Статья относится к linux, ubuntu, debian, пароль, безопасность
Случайные 7 статей:
  1. Неправильно закрываются терминальные сессии после закрытия приложения
  2. Добавляем в WIndows XP Home оснастки: локальная политика безопасности и локальная групповая политика
  3. Изменение цвета стандартных уведомлений Ubuntu с помощью Notifyosdconfig
  4. Бэкап данных посредством 7-zip через консоль с очисткой
  5. Как установить KDE в Ubuntu
  6. Как изменить фон в GRUB2?
  7. Установка Skype в 64-битной Ubuntu
Комментарии [22]
  1. Iliya87 #
    30 Май, 20:49

    Мне картинки понравились!

  2. Lext0r #
    1 Июнь, 07:23

    В Убунте не работает

  3. Mut@NT #
    20 Июнь, 00:56

    Все работает, а точнее – http://itshaman.ru/articles/12/passwd-root-linux#22
    Смотрите где-то ошиблись

  4. Николай #
    9 Август, 22:02

    В Ubuntu 9.04 восстановил пароль, спасибо большое!

  5. Павел #
    19 Август, 19:07

    В Ubuntu 9.4 server пункт 5 пропускайте

  6. Mut@NT #
    19 Август, 23:39

    5 пункт нужно пропускать только в том случае, если разрешен локальный вход root

  7. Whu #
    1 Сентябрь, 23:12

    На RHEL5 Server нет /etc/gdm/gdm.conf

  8. Mut@NT #
    2 Сентябрь, 13:55

    >Whu
    GDM – это GNOME-приложение, работающие под иксами.
    Разве на сервере RHEL убрана возможность логиниться под суперпользователем?

  9. d2501 #
    13 Сентябрь, 19:23

    спасибо, а как можно отслеживать single-user mode? его можно отключить? буду признателен за ссылки.

  10. Mut@NT #
    14 Сентябрь, 03:40

    Отключить нельзя. Это как БЕЗОПАСНЫЙ РЕЖИМ в Windows.
    Можно поставить пароль на изменение GRUB:
    http://itshaman.ru/articles/14/password-grub

  11. AlexUnder Construction #
    19 Май, 01:53

    Из всего написанного выше можно сделать вывод, что восстановление утерянного пароля root не столь уж трудоемкая работа, с которой может справиться любой заинтересованный человек.
    Восстановить – нельзя. Можно только поменять.
    И вообще, следует помнить, что данные, расположенные на нешифрованном разделе, можно получить при физическом доступе к серверу под любой операционной системой. Но! В том же Linux есть средства для шифрования разделов “из коробки”. Если, например, будут зашифрованы все разделы кроме /boot (который можно вообще на флэшку вынести), а станция/сервер будет залочен (консоль заблокирована), то, не зная пароля, доступ к данным нельзя будет получить даже при физическом доступе. Данные можно будет только испортить.

  12. eonsio75 #
    23 Май, 21:48

    Вот хоть убейте не могу найти в директории (ets) /etc/gdm/gdm.conf, все в доль и поперек излазил, а фишка в чем в том что физически я захожу под рутом, а через путти не могу не пускает.

  13. Mut@NT #
    26 Май, 11:21

    eonsio75: Вот хоть убейте не могу найти в директории (ets) /etc/gdm/gdm.conf, все в доль и поперек излазил, а фишка в чем в том что физически я захожу под рутом, а через путти не могу не пускает.

    Вроде теперь нет этого конфигурационного файла в Ubuntu. Наверное, теперь это делать нужно так:
    “http://help.ubuntu.ru/wiki/karmic_gdm_внешний_вид”:http://help.ubuntu.ru/wiki/karmic_gdm_внешний_вид

  14. my3uka #
    18 Июль, 03:48

    Да, спасибо, а то сидел долго не винде и забыл пароль для root’a

  15. alligator #
    7 Май, 10:37

    Это не уязвимость. Имея физичиский доступ, можно запуститься с live-cd и сменить права к любому файлу. Причём совсем не обязательно иметь точно такой же дистрибутив на cd. Намного важнее уязвимости, которые можно использовать удалённо, а значит на них надо обращять особое внимание.

  16. Mut@NT #
    11 Май, 23:29

    alligator: Это не уязвимость. Имея физичиский доступ, можно запуститься с live-cd и сменить права к любому файлу. Причём совсем не обязательно иметь точно такой же дистрибутив на cd. Намного важнее уязвимости, которые можно использовать удалённо, а значит на них надо обращять особое внимание.

    Вы правы, но стоит каждому понимать, что такая возможность существует и она реально может быть реализуема

  17. Неизвестный #
    9 Март, 11:27

    Спасибо автору.
    На OpenSUSE 12.1 сработал вариант 2.2.
    Немного повозился пока нашел вариант, но сработало все хорошо.

  18. Юрий #
    28 Апрель, 13:54

    Помогло в AltLinux 14 Cobalt – спасибо – правда сперва думал не выйдет – загрузчик Acronics стоит при выборе систем перед загрузкой ) – а там просто надо тут же “E” нажать и тогда все идет как обычно )

  19. BiondoDante2303 #
    22 Ноябрь, 10:43

    я все уже сделал и вот у меня где надо ввести пароль буквы цыфры не пишутся на hp655

  20. Андрэ #
    5 Март, 22:09

    BiondoDante2303: буквы цыфры не пишутся на hp655

    КОмпьютер тут ни при чем — в Linux при вводе пароля в консоли он принципиально не пишется. Сделано, на сколько мне известно, для того чтобы нельзя было оценить длину пароля по количеству звездочек)))
    Это не баг, это фича любой *nix системы. Не пишутся, но — вводятся.

  21. Евгений #
    30 Декабрь, 09:09

    нету kernel что делать?

  22. Евген #
    29 Март, 03:14

    Изменл пароль а вот перезагрузиьь не могу.

Имя (обязательное поле)
e-mail (обязательное поле) Сайт
Текст комментария:
IT-новости
Популярное
Облако тегов
При цитировании документа активная ссылка на сайт обязательна.
Администрирование и настройка серверов, рабочих станций на базе ОС Linux и Windows. www.itshaman.ru - Настройка Linux и Windows © 2009 - 2016