Grub загрузка windows без пароля

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как защитить загрузчик GRUB паролем

В статье «Как в Linux сбросить забытый пароль входа» показано, что пароль для входа в Linux можно сбросить очень быстро и просто. Причём это может быть пароль root или любого пользователя.

Суть описанного в той статье метода заключается в редактировании опций загрузчика GRUB для загрузки в однопользовательский режим. Возможно кого-то такой простой способ обхода пароля root заставил задуматься: можно ли защитить Linux от смены пароля при загрузке? Точнее говоря, можно ли запретит менять опции загрузки в GRUB?

С одной стороны, — да, можно установить пароль на редактирование опций загрузчика GRUB, в данной статье будет показано как это настроить. Но, с другой стороны, нужно помнить — настройка делается в текстовых конфигурационных файлах GRUB и при физическом доступе к компьютеру с возможностью загрузки с LIVE дистрибутива можно обойти и эту защиту по смене пароля. При физическом доступе всегда остаётся вариант вынуть жёсткий диск и просмотреть его содержимое на другой системе. То есть настоящую защиту данных обеспечивает только их шифрование или шифрование всего диска, защита в виде пароля на загрузку не является надёжной!

Рекомендуется: смотрите также статьи

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

Защиту паролем GRUB можно организовать двумя способами:

  1. Необходимо ввести пароль как на загрузку системы, так и на редактирование опций загрузки
  2. Загрузиться может любой пользователь без пароля, а для редактирования опций загрузки необходимо ввести пароль.

Рассмотрим оба этих варианты.

Примечание: если вы используете пароль загрузки для GRUB2, то экран заставки во время загрузки не будет отображаться.

Настройка пароля на загрузку системы и на редактирование опций загрузки

От root выполните следующие команды для установки пароля загрузки:

С помощью утилиты grub-mkpasswd-pbkdf2 сгенерируйте хеш пароля:

Введите и подтвердите пароль:

Будет показана примерно такая строка:

Из выведенных данных нужно взять всю строку «grub.pbkdf2.sha512.10000………….».

Теперь откройте файл /etc/grub.d/40_custom

и добавьте в него:

Поскольку файл /etc/grub.d/40_custom содержит хеш пароля, то рекомендуется запретить его чтение и изменения всеми, кроме пользователя root:

Теперь запускаем создание нового конфигурационного файла загрузчика:

После перезагрузки при попытке выбрать любой пункт меню вам будет предложено ввести имя пользователя и пароль. Введите root и пароль, который вы ввели в команде grub-mkpasswd-pbkdf2. Если учётные данные верны, система продолжит загрузку.

Читайте также:  Ubuntu или windows для майнинга

На самом деле, имя пользователя на этом этапе неважно — оно используется только как учётные данные для входа в загрузчик. Например, имя пользователя на моём компьютере mial, даже при вводе имени root и установленного пароля, я всё равно загружусь как пользователь mial. По этой причине в файл /etc/grub.d/40_custom можно указать любое имя пользователя, главное, не забудьте его.

Как включить редактирование опций GRUB по паролю, но загрузиться может любой пользователь

С помощью утилиты grub-mkpasswd-pbkdf2 сгенерируйте хеш пароля:

Введите и подтвердите пароль:

Будет показана примерно такая строка:

Из выведенных данных нужно взять всю строку «grub.pbkdf2.sha512.10000………….».

Теперь откройте файл /etc/grub.d/40_custom

и добавьте в него:

Поскольку файл /etc/grub.d/40_custom содержит хеш пароля, то рекомендуется запретить его чтение и изменения всеми, кроме пользователя root:

Теперь откройте файл /etc/grub.d/10_linux и найдите пункт или пункты меню, которые вы хотите сделать доступными для загрузки без пароля:

К примеру, в моём случае это пункт:

Добавьте к нему опцию —unrestricted, чтобы получилось так:

Сохраните и закройте этот файл.

Теперь запустите создание нового конфигурационного файла загрузчика:

В результате загрузка системы будет выполняться как и раньше — пароль в загрузчике вводить не нужно. Но при попытке отредактировать опции загрузчика, например, если ввести «e», то будет предложено ввести пароль. Без ввода пароля не будет дан доступ к опциям загрузки.

Если нажать Enter без ввода пароля, то продолжится обычная загрузка, опции GRUB изменены не будут.

Пароль на пункты меню Grub 2.00 (начиная с Ubuntu 12.10)

Задача: запаролить все пункты меню нового Grub 2.00 (появился впервые начиная с версии Ubuntu 12.10) кроме дефолтной загрузки.

Меню Grub 2.00 выглядит следующим образом:
Ubuntu
Дополнительные параметры для Ubuntu (включает в себя подпункты Ubuntu, с Linux 3.5.0-17-generic и Ubuntu, с Linux 3.5.0-17-generic (режим восстановления))
Memory test (memorytest86+)
Memory test (memorytest86+, serial console 115200)

Мы собираемся запаролить все пункты меню, кроме пункта Ubuntu, чтоб никто кроме нас не смог получить доступ к режиму восстановлению, командной строке и не сбросил пароль. Для этого:

1. генерируем хэш пароля:
grub-mkpasswd-pbkdf2
Пример (пароль при вводе не отображается):
Enter password:
Reenter password:
Your PBKDF2 is grub.pbkdf2.sha512.10000.783FF454C75813562C035726A694A56B4E3B010B7816A3F903D264255B6BDAEBD61C6DC67020C3A09D400B28E68CF682355CB1EA99AF0287207AFDC2A01D3D5B.C097CD29EC739953EE1A747F7C2CA7C75DA8450DE4270CA609DB02A83A979051EDD2507ED372FC7A33C11EBDE23BF3A67C60C74C7F2753BF1359325468EF6DB7

2. создаем файл конфигурации паролей
sudo touch /etc/grub.d/05_password
редактируем его nano
sudo nano /etc/grub.d/05_password
наполняем файл следующим содержанием (перед grub.pbkdf2 пробел, а не новая строчка!):
echo «Setting password protection. » >&2
cat
, где имя_пользователя — имя вашего пользователя, например, nockdown
grub.pbkdf2.sha512.10000.783FF454C75813562C035726A694A56B4E3B010B7816A3F903D264255B6BDAEBD61C6DC67020C3A09D400B28E68CF682355CB1EA99AF0287207AFDC2A01D3D5B.C097CD29EC739953EE1A747F7C2CA7C75DA8450DE4270CA609DB02A83A979051EDD2507ED372FC7A33C11EBDE23BF3A67C60C74C7F2753BF1359325468EF6DB7 — вставляем свой, сгенерированный пунктом выше
перед grub.pbkdf2 пробел, а не новая строчка!

сохраняем файл в nano:
ctrl+O
выходим из nano:
ctrl+x

выставляем права на файл 05_password
sudo chmod u+x,go-rw /etc/grub.d/05_password

3. Основным файлом конфигурации является /boot/grub/grub.cfg , который автоматически генерируется скриптами из файла /etc/default/grub, где хранятся основные настройки для GRUB

Редактируем файл /etc/default/grub
sudo nano /etc/default/grub
Раскомментируем (убираем # в начале) строчку
GRUB_HIDDEN_TIMEOUT=0
а также изменим значение GRUB_TIMEOUT
GRUB_TIMEOUT=0

сохраняем файл в nano:
ctrl+O
выходим из nano:
ctrl+x

Читайте также:  Переводчик речи для windows

4. Пароль на пункты меню. Редактируем файл /etc/grub.d/10_linux
sudo nano /etc/grub.d/10_linux

Находим глазами или поиском ctrl+W (echo «menuentry ‘$(echo «$os») абзац:

fi
echo «menuentry ‘$(echo «$title» | grub_quote)’ $ \$menuentry_id_option ‘gnulinux-$version-$type-$boot_device_id’ <" | sed "s/^/$submenu_indentation/"
else
echo «menuentry ‘$(echo «$os» | grub_quote)’ $ \$menuentry_id_option ‘gnulinux-simple-$boot_device_id’ <" | sed "s/^/$submenu_indentation/"
fi
echo «recordfail» | sed «s/^/$submenu_indentation/»

Как сообщает хелп:
If the —unrestricted option is used for a menu entry, then that entry is unrestricted. If the —users option is not used for a menu entry, then that only superusers are able to use it.
Нам нужно добавить опцию —unrestricted к тому пункту меню, который мы не собираемся паролить. Если этого не сделать или не добавить опции —users, то Grub будет спрашивать пароль на загрузку всегда. И так, добавляем опцию —unrestricted в 4ю строчку приведенного выше фрагмента, чтоб получилось:
fi
echo «menuentry ‘$(echo «$title» | grub_quote)’ $ \$menuentry_id_option ‘gnulinux-$version-$type-$boot_device_id’ <" | sed "s/^/$submenu_indentation/"
else
echo «menuentry ‘$(echo «$os» | grub_quote)’ $ —unrestricted \$menuentry_id_option ‘gnulinux-simple-$boot_device_id’ <" | sed "s/^/$submenu_indentation/"
fi
echo «recordfail» | sed «s/^/$submenu_indentation/»

сохраняем файл в nano:
ctrl+O
выходим из nano:
ctrl+x

5. Применяем изменения в конфигурации Grub командой:
sudo update-grub

6. Перезагружаемся
sudo shutdown -r now

В результате:
1) Kubuntu грузится по умолчанию, без запросов пароля на стадии загрузчика Grub,
2) меню Grub по умолчанию не отображается,
3) попасть в меню Grub можно лишь удерживая shift при загрузке,
4) для выбора любого пункта меню, отличного от дефолтной загрузки, потребуется ввести имя superuser’а и пароль, которые мы задали.

Установка и настройка пароля на менеджер ОС GRUB

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

Содержание

Как уже было написано выше эти действия повысят общую безопасность операционной системы. Менеджер загрузки ОС требует дополнительных настроек безопасности, так как при физическом доступе «продвинутый пользователь» может получить права суперпользователя в системе.

Многие дистрибутивы Linux после установки никак не защищают свой менеджер загрузки, а ведь изменив настройки входа можно получить полный доступ к системе, сменить все пароли и натворить еще много разных пакостей. По всем этим причинам следует самостоятельно принять меры по защите своей операционной системы на уровне GRUB.

Если Вы все еще сомневаетесь, то предлагаю прочитать статью «Восстановление пароля для root или угроза безопасности из коробки в Linux», в которой детально расписано как легко это сделать.

Ниже приведены наиболее эффективные методы защиты менеджера загрузки GRUB. GRUB — это очень мощное средство в руках системного администратора, имеющее очень много параметров конфигурирования.

Редактировать будем конфигурационный файл /boot/grub/menu.lst. В некоторых дистрибутивах это /boot/grub/grub.conf.

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

Читайте также:  Надо было устанавливать линукс

Эти две строчки, по сути, являются одним и тем же паролем.

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

Реализация данного способа позволит защитить конфигурацию GRUB от непреднамеренного редактирования. Все пункты меню будут доступны для запуска любому человеку, но их редактирование откроется, только после ввода пароля.

    Создаем резервную копию конфигурационного файла /boot/grub/menu.lst, чтобы в случае ЧП восстановить все в первоначальное положение:

grub> md5crypt

Password: **********
Encrypted: $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

Строчка $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 является хеш-образ введенного Вами пароля. Сочетание клавиш + позволяют выйти из командной строки GRUB.

Редактируем конфигурационный файл GRUB.

Этот способ поможет ограничить загрузку выбранных пунктов меню GRUB. Можно, к примеру, поставить пароль на загрузку системы в режиме recovery mode, который присутствует в семействе ОС *buntu и других дистрибутивах.

    Создаем резервную копию конфигурационного файла /boot/grub/menu.lst, чтобы в случае ЧП восстановить все в первоначальное положение:

grub> md5crypt

Password: **********
Encrypted: $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

Строчка $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 является хеш-образ введенного Вами пароля. Сочетание клавиш + позволяют выйти из командной строки GRUB.

Редактируем конфигурационный файл GRUB.

В конце конфигурационного файла находятся параметры запуска отображаемых пунктов меню GRUB. К параметрам пункта меню, требующего защиты, после строчки с со словом title, добавляем строку:

К примеру, добавляем строку в пункт загрузки системы в режиме recovery mode:

В GRUB можно скрыть некоторые пункты меню, которые будут видны только после ввода пароля. К примеру, можно скрыть recovery mode вашей операционной системы.

Для этого нужно сделать два конфигурационных файла. В первом файле будут находится «открытые» пункты меню, загружаемые сразу при старте GRUB, а во втором пункты меню, которые нужно показать только после ввода пароля — «скрытые».

    Создаем резервную копию конфигурационного файла /boot/grub/menu.lst, чтобы в случае ЧП восстановить все в первоначальное положение:

grub> md5crypt

Password: **********
Encrypted: $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

Строчка $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 является хеш-образ введенного Вами пароля. Сочетание клавиш + позволяют выйти из командной строки GRUB.

Создаем второй конфигурационный файл, меню которого будет содержать скрытые пункты:

К примеру, чтобы скрыть режим recovery mode, нужно закомментировать или удалить строки файла, содержащие команды загрузки этого режима:

title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 3d11ea5-2b80-4a5e-ba09-cd6909425070
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
initrd /boot/initrd.img-2.6.28-11-generic
quiet

title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid 03d11ea5-2b80-4a5e-ba09-cd6909425070
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
initrd /boot/initrd.img-2.6.28-11-generic

title Windows Vista (loader)
rootnoverify (hd0,0)
savedefault
makeactive
chainloader +1

В нашем примере, во втором меню должен присутствовать только режим загрузки системы recovery mode, поэтому комментируем или удаляем все остальные пункты:

title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 3d11ea5-2b80-4a5e-ba09-cd6909425070
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
initrd /boot/initrd.img-2.6.28-11-generic

quiet

title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid 03d11ea5-2b80-4a5e-ba09-cd6909425070
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
initrd /boot/initrd.img-2.6.28-11-generic

title Windows Vista (loader)
rootnoverify (hd0,0)
savedefault
makeactive
chainloader +1

Оцените статью