- Как поставить пароль на Grub
- Как поставить пароль на GRUB
- 1. Сгенерировать хэш пароля
- 3. Обновить конфигурацию
- 4. Проверить работу
- Выводы
- Получение доступа к машине
- В случае, если пароль загрузчика неизвестен
- Получение имени администратора
- Сброс счетчика неудачных попыток
- Смена пароля
- Сброс блокировки учетной записи администратора
- Изменение параметров загрузчика Grub2
- Установка и изменение пароля для меню загрузчика
- Запрет загрузки в режиме восстановления. Таймаут ожидания выбора при загрузке.
- Запрет выбора загрузки ядра GENERIC
- Настройка выбора ядра для загрузки
- Как поставить пароль на GRUB и GRUB2 в Linux
Как поставить пароль на Grub
Для защиты обычного компьютера или сервера с установленным на нем дистрибутивом Linux имеет смысл поставить пароль на доступ к загрузчику GRUB. Делается это путем создания отдельного пользователя для него.
В статье мы пошагово расскажем, как поставить пароль на GRUB. Заодно осветим сопутствующие нюансы процедуры и возможные проблемы при ее выполнении.
Как поставить пароль на GRUB
Всю задачу можно разделить на три больших шага. Сначала идет генерация хэша пароля, следом нужно задать его путем изменения настроек, а в конце – обновить конфигурацию GRUB. Заодно мы расскажем, как включить загрузку системы без пароля, и проверим, все ли работает правильно.
1. Сгенерировать хэш пароля
За данное действие отвечает утилита grub-mkpasswd-pbkdf2. В случае с дистрибутивом Ubuntu она по умолчанию установлена в систему. Для генерации хэша пароля достаточно выполнить команду в терминале:
А затем два раза ввести будущий пароль для GRUB. Результат выглядит так:
При выполнении команды может возникнуть ошибка:
Теперь нужно назначить супер-пользователя для GRUB. Это удобно делать через файл /etc/grub.d/00_header, отредактировав его содержимое. Удобнее сначала открыть текстовый документ, куда все было сохранено, и вставить команду следующего вида:
cat set superusers=»user_name»
password_pbkdf2 user_name grub.pbkdf2.sha512.10000.680B7A2E02752A0A5957C6CF21F3A34EDC63CE4488298FE1CE7F27F50FE9E4BA043E84E1FE4EC183A75A52672F6D38383244DEF7784A3ACA30E2B6326ECCB557.53AA79A88B945E9120DBD40E8E6E0E5131982B8D8E0EF0CC93240D80D792074E5575ABB66B822EAC37367311CE0088EE408FB1AC74FDF563CBB9D6B8F2F6C146
EOF
Вместо user_name во второй и третьей строке укажите предпочтительное имя супер-пользователя GRUB, а также замените хэш пароля (начиная с grub.pbkdf2) на свой. Полученный текстовый документ просто сверните, но не закрывайте.
Теперь перейдем к редактированию файла 00_header. В терминале выполните:
sudo nano /etc/grub.d/00_header
Затем пролистайте его содержимое до самого конца. Это очень удобно делать с зажатой клавишей Page Down на клавиатуре. А потом на новой строке вставьте ранее подготовленную команду из 4 строк, которая сохранена в текстовом документе.
Для сохранения изменений нажмите комбинацию клавиш Ctrl+S, а затем Ctrl+X для выхода из режима редактирования файла 00_header.
3. Обновить конфигурацию
Следующий шаг – обновление конфигурации GRUB для применения ранее внесенных изменений. За это действие отвечает команда в терминале:
4. Проверить работу
Чтобы проверить работу пароля, нужно перезагрузить компьютер, например, командой:
Как только появится интерфейс GRUB, у вас запросят сначала имя супер-пользователя, а затем и пароль.
Описанный способ имеет один важный недостаток – пароль будет требоваться каждый раз при входе в GRUB. Даже для простой загрузки системы. Но конфигурацию можно настроить таким образом, чтобы пароль был нужен только для редактирования каких-либо параметров загрузчика. А вход в меню будет неограниченным.
Для этого понадобится отредактировать файл /etc/grub.d/10_linux:
sudo nano /etc/grub.d/10_linux
В этом файле найдите вот такую сточку и добавьте в неё опцию —unrestricted:
CLASS=»—class gnu-linux —class gnu —class os»
CLASS=»—class gnu-linux —class gnu —class os —unrestricted»
Теперь сохраните внесенные изменения горячими клавишами Ctrl + S . Остается только обновить конфигурацию GRUB в терминале:
В результате при включении или перезагрузке ПК пароль вводить не придется. Но для доступа к дополнительным параметрам GRUB он потребуется.
Выводы
Установка защиты в виде пароля для GRUB во многих ситуациях будет очень полезной. Ведь злоумышленники, добравшись до интерфейса загрузчика, могут серьезно нарушить работу компьютера с Linux. В данной статье мы в пошаговом формате описали всю процедуру настройки.
Это поможет сделать вашу систему более безопасной, ведь обычный пароль суперпользователя очень легко сбросить. А вы ставите пароль на Grub? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Получение доступа к машине
Дождаться появления меню загрузчика и нажать клавишу «e»:
Изменяемая часть подчеркнута на снимке экрана):
В этом варианте перезагрузка машины после внесения изменений выполняется командой:
В случае, если пароль загрузчика неизвестен
- Выполнить загрузку с установочного диска Astra Linux и выбрать «Режим восстановления»;
В этом варианте перезагрузка машины после внесения изменений выполняется двумя командами:
Получение имени администратора
Создаваемому при установке ОС администратору присваивается числовой идентификатор 1000. В случае, если имя администратора не известно, его можно получить командой:
Сброс счетчика неудачных попыток
После получения доступа к системе для сброса счетчика неудачных попыток выполнить команду:
- при работе с локальными пользователями:
Пользователя можно указать по отдельному имени, числовому идентификатору или в виде диапазона числовых идентификаторов. Диапазон задается в виде максимального и минимального значений .
После сброса счетчика перезагрузить машину.
Смена пароля
После получения доступа к системе сменить пароль пользователя, для чего в ыполнить команду:
После смены пароля перезагрузить ОС.
Сброс блокировки учетной записи администратора
Если локальный администратор самостоятельно заблокировал свою учетную запись, то для ее разблокирования:
- Загрузить компьютер в режиме восстановления;
- Выполнить команду:
Изменение параметров загрузчика Grub2
В общем случае, после внесения изменений в конфигурационные файлы загрузчика (файл /etc/default/grub или файлы в каталоге /etc/grub.d/) для вступления изменений в силу следует выполнить команду обновления загрузчика:
При этом будет переписан файл /boot/grub/grub.cfg, и все внесенные в него изменения будут утеряны.
Для внесения изменений в конфигурационные файлы требуются права суперпользователя (при включенном МКЦ — права суперпользователя с высоким уровнем целостности).
Установка и изменение пароля для меню загрузчика
Системный загрузчик GRUB2 поддерживает возможность задания паролей в открытом виде, и многие инструкции предлагают именно такой способ. В настоящей инструкции предлагается более безопасный способ задания пароля в виде хеша. Независимо от выбранного способа рекомендуется максимально ограничить доступ к файлу с паролем .
Для смены пароля системного загрузчика необходимо создать хеш нового пароля и заменить им старый хеш:
- Для генерации хеша выполнить команду и дважды ввести новый пароль:
Полученный хеш (начиная со слова grub) скопировать в буфер (например, выделив его с помощью мыши, и нажав правую кнопку мыши выбрать «копировать»);
#!/bin/bash cat << EOF
set superusers=» username »
password_pbkdf2 username grub.pbkdf2.sha512.10000.9C319610666.
EOF<>
Цветами условно обозначены имя пользователя (красный) и созданный кеш (зеленый), в реальном редакторе цветовых обозначений нет.
Можно отключить запрос пароля grub, например для записи Windows. Для этого в файла /boot/grub/grub.cfg в параметрах загрузочного меню (строка, начинающаяся с «menuentry») указать (добавить) параметр —unrestricted, например:
. --class gnu-linux --class gnu --class os --unrestricted .
Изменения, сделанные в файле /etc/grub/grub.cfg не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Для того, чтобы изменения сделать постоянными нужный элемент меню можно добавить в файл /etc/grub.d/40_custom, указав в нем все необходимые параметры. Например, для создания элемента меню «Windows 10 без пароля» для загрузки Windows 10 без запроса пароля (опция —unrestricted) добавить следующие строки:
menuentry "Windows 10 без пароля" --class windows --class os --unrestricted < insmod ntfs search --no-floppy --set=root --fs-uuid ntldr /bootmgr >
В качестве образца для создания своего элемента меню можно использовать записи menuentry из файла /boot/grub/grub.cfg.
Запрет загрузки в режиме восстановления. Таймаут ожидания выбора при загрузке.
Для того, чтобы запретить варианты загрузки в режиме восстановления:
- Открыть в редакторе файл /etc/default/grub:
Пункты меню, позволяющие выбрать для загрузки режим восстановления, можно убрать из меню и путем редактирования файла /boot/grub/grub.cfg (см. ниже, но эти изменения не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Запрет выбора загрузки ядра GENERIC
Для того, чтобы запретить все варианты загрузки, кроме варианта HARDENED:
- С правами суперпользователя открыть в редакторе файл /boot/ grub/ grub/grub.cfg:
#menuentry ‘AstraLinuxCE GNU/Linux, с Linux 4.15.3-1-generic’ —class astralinuxce —class gnu-linux —class gnu —class os —unrestricted $menuentry_id_option ‘gnulinux-4.15.3-1-generic-advanced-f923f219-185e-4747-9066-6b09fd0103ae’ <
# load_video
# insmod gzio
# if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
# insmod part_msdos
# insmod ext2
# set root=’hd0,msdos1′
# if [ x$feature_platform_search_hint = xy ]; then
# search —no-floppy —fs-uuid —set=root —hint-bios=hd0,msdos1 —hint-efi=hd0,msdos1 —hint-baremetal=ahci0,msdos1 f923f219-185e-4747-9066-6b09fd0103ae
# else
# search —no-floppy —fs-uuid —set=root f923f219-185e-4747-9066-6b09fd0103ae
# fi
# echo ‘Загружается Linux 4.15.3-1-generic …’
# linux /boot/vmlinuz-4.15.3-1-generic root=UUID=f923f219-185e-4747-9066-6b09fd0103ae ro quiet net.ifnames=0
# echo ‘Загружается начальный виртуальный диск …’
# initrd /boot/initrd.img-4.15.3-1-generic
#>
Изменения, сделанные в файле /etc/grub/grub.cfg не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Настройка выбора ядра для загрузки
Для указания ядра, загружаемого по умолчанию используется параметр GRUB_DEFAULT в файле /etc/default/grub. Значением этого параметра может быть:
- число — порядковый номер элемента выбора ядра меню загрузчика. Нумерация начинается с нуля;
- идентификатор элемента меню загрузчика. Например:
GRUB_DEFAULT=gnulinux-5.15.0-70-hardened-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d
Получить список элементов меню выбора ядра можно командой:
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-lowlatency-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-lowlatency-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-hardened-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-hardened-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-generic' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-generic-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-generic (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-generic-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-hardened-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-hardened-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-generic' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-generic-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-generic (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-generic-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.4.0-110-generic' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.4.0-110-generic-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' < menuentry 'AstraLinux GNU/Linux, with Linux 5.4.0-110-generic (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.4.0-110-generic-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d'Идентификаторы элементов меню, которые можно использовать для задания умолчания, находятся после параметра $menuentry_id_option .
Получить список элементов меню с их номерами можно командой:
0 AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency 1 AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency (recovery mode) 2 AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened 3 AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened (recovery mode) 4 AstraLinux GNU/Linux, with Linux 5.15.0-70-generic 5 AstraLinux GNU/Linux, with Linux 5.15.0-70-generic (recovery mode) 6 AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened 7 AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened (recovery mode) 8 AstraLinux GNU/Linux, with Linux 5.10.176-1-generic 9 AstraLinux GNU/Linux, with Linux 5.10.176-1-generic (recovery mode) 10 AstraLinux GNU/Linux, with Linux 5.4.0-110-generic 11 AstraLinux GNU/Linux, with Linux 5.4.0-110-generic (recovery mode)После внесения изменений в файл /etc/default/grub обновить параметры загрузчика:
Как поставить пароль на GRUB и GRUB2 в Linux
Приветствую Вас, мои дорогие параноики! Сегодня я покажу как как поставить пароль на GRUB в Astra Linux или любом другом Линуксе. Зачем? Для защиты как обычного компьютера, так и сервера. Всё зависит от важности содержащейся на нём информации. Механизм такой защиты прост — создаётся отдельный пользователь для него. Я пошагово покажу как это сделать и расскажу про нюансы и особенности.
1. Генерация хэш-пароля
В этом нам поможет утилита grub-mkpasswd-pbkdf2. В Ubuntu и Astra Linux она уже есть по умолчанию. Если у Вас она не установлена в систему — установите. Генерация хэша пароля выполняется вот такой командой в терминале:От Вас потребуется дважды ввести будущий пароль для GRUB или GRUB2. Результатом будет хэш – это длинная строка, которая начинается с grub.pbkdf2. Пример:
Скопируйте всю это длинную цепочку букв и цифр в блокнот.
2. Изменить настройки
Теперь необходимо будет назначить супер-пользователя для GRUB. Делаем это через файл /etc/grub.d/00_header. Но сначала в любом редакторе Чтобы было удобнее, сначала в любом редакторе делаем вот такую конструкцию:
Тут вместо user_name во второй и третьей строчках надо будет придумать и указать имя супер-пользователя GRUB, а также замените хэш пароль на свой.
Теперь открываем файл загрузчика вот такой командой:
Его надо прокрутить до конца и с новой строки вставить подготовленную выше конструкцию. Вот так вот:
Сохраняем изменения в файле.
3. Обновить конфигурацию
Чтобы изменения в настройке загрузчика вступили в силу, нужно обязательно обновить его конфигурацию вот такой командой:
Результат выполнения будет примерно такой:
4. Проверить работу
Результатом будет запрос пароля загрузчика:
Без ввода пароля система дальше не загрузится. Profit!