Без пароля на загрузчик, любой пользователь может войти в режим редактирования ядра и внести свои настройки в bootloader, чтобы исключить возможность менять конфигурацию загрузчика вне загруженной системы, нам нужно поставить на него свой пароль.
Конечно от онлайн нападок на машину это врятли спасёт, но от сторонних физических недоброжелателей, в полне таки сойдёт, (хотя и тут ось на флешке придёт на помощь)
Итак, когда мы говорим о парольной защите grub основные вещи которые мы должны знать:
Во первых, существуют 2 типа пользователей: обычный пользователь и суперпользователь (root)
00_header и 40_custom внутри каталога /etc/grub.d/
Пока что мы рассматриваем открытые пароли в виде обычного текста.
Пользователь всегда определяется с помощью ключевого слова password, затем указывается имя пользователя, затем пароль:
Пользователя можно повысить до суперпользователя, для этого мы указываем:
Таким образом пользователь становится привилегированным и имеет право на редактирование записей.
Открываем файл 00_header, опускаемся в самый низ, определяем сегмент файла "cat <<EOF EOF" и вносим изменения:
И для завершения всего, после указания всех параметров, нам необходимо обновить файл grub.cfg для этого вводим:
=============================
Разумеется не безопасно хранить пароли в файлах в открытом виде, для этого можно использовать шифрование, за это отвечает утилита grub-mkpasswd-pbkdf2, в терминале вводим:
Затем в конфигурационном файле 00_header указываем всё тоже самое, только к паролю добавляете через нижнее подчёркивание алгоритм хеширования _pbkdf2:
И так же после указания всех параметров, нам необходимо обновить файл grub.cfg:
=================================================
Поверхностно расскажу про файл 40_custom, так как в домашних условиях прибегать к его редактированию не вижу смысла (если только кроме вас машиной пользуются ещё человек 10 равшанов)
Файл 40_custom находится в /etc/grub.d/ файл, в отличии от 00_header данный файл позволяет нам зафиксировать записи и количество этих записей и чётко управлять какой пользователь за что отвечает:
Здесь пользователь user1 может загружать и редактировать любую запись, все пользователи имеют право загружать ОS_№1 и только пользователь user2 имеет право загружать ОS_№2
В этом примере приведены пользователи с открытым паролем, но как и в случае с 00_header можно прописать шифрованные PBKDF2 пароли.
Также это можно прописать в grub.cfg на прямую, но дабы не загромождать его, в нём просто прописывается путь к 40_custom
Если вдруг вы всё таки по не осторожности забыли пароль, или кому-то потребовалось его восстановить, то с помощью LiveUsb приводите файл 00_header в свой первоначальный вид.
Это только один из способов запаролить загрузчик, можно обойтись "меньшей кровью" и все изменения произвести только в самом файле grub.cfg.
Также можно пойти другим путём и создать файл passwd и прописать его в grub.cfg, путей решения много и они многогранны как и сам Linux.
Конечно от онлайн нападок на машину это врятли спасёт, но от сторонних физических недоброжелателей, в полне таки сойдёт, (хотя и тут ось на флешке придёт на помощь)
Итак, когда мы говорим о парольной защите grub основные вещи которые мы должны знать:
Во первых, существуют 2 типа пользователей: обычный пользователь и суперпользователь (root)
- Суперпользователь - создание записей загрузчика.
- Обычный пользователь - использование записей загрузчика.
- обычный пароль - который хранится в открытом виде в конфигурационном файле.
- Зашифрованный пароль - хранится в зашифрованном виде при помощи алгоритма кеширования PBKDF2.
00_header и 40_custom внутри каталога /etc/grub.d/
Пока что мы рассматриваем открытые пароли в виде обычного текста.
Пользователь всегда определяется с помощью ключевого слова password, затем указывается имя пользователя, затем пароль:
password user1 gfhjkm1Пользователя можно повысить до суперпользователя, для этого мы указываем:
set superusers="user1"Таким образом пользователь становится привилегированным и имеет право на редактирование записей.
Открываем файл 00_header, опускаемся в самый низ, определяем сегмент файла "cat <<EOF EOF" и вносим изменения:
cat <<EOF
set superusers="user1"
password user1 passwd_1
EOF
И для завершения всего, после указания всех параметров, нам необходимо обновить файл grub.cfg для этого вводим:
$ sudo grub-mkconfig -o /boot/grub/grub.cfg=============================
Разумеется не безопасно хранить пароли в файлах в открытом виде, для этого можно использовать шифрование, за это отвечает утилита grub-mkpasswd-pbkdf2, в терминале вводим:
$ grub-mkpasswd-pbkdf2
Введите пароль:
Повторно введите пароль:
Хэш PBKDF2 вашего пароля: grub.pbkdf2.sha512.10000.AEBDB73556619C1667319465D2E3E1899AB7
B6F6FDEFF1D00D4701CC84CAA934AFDBBEA47E1EC31AAECA0D9E159C2B
077B8B30D7A41D366FA952CB102D976563.373C1E4EFDBE1AD3641BA08
B0CBC377D8D5BE2451CBE3C9D2450C6BBB321F58789B8441849D4034BA
D86BD0C92C7D695C01D3FA8DF35CADC42D64962C30530C1
Затем в конфигурационном файле 00_header указываем всё тоже самое, только к паролю добавляете через нижнее подчёркивание алгоритм хеширования _pbkdf2:
cat <<EOF
set superusers="user1"
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.AEBDB73556619C1667319465D2E3E1899AB7
B6F6FDEFF1D00D4701CC84CAA934AFDBBEA47E1EC31AAECA0D9E159C2B
077B8B30D7A41D366FA952CB102D976563.373C1E4EFDBE1AD3641BA08
B0CBC377D8D5BE2451CBE3C9D2450C6BBB321F58789B8441849D4034BA
D86BD0C92C7D695C01D3FA8DF35CADC42D64962C30530C1
EOF
И так же после указания всех параметров, нам необходимо обновить файл grub.cfg:
$ sudo grub-mkconfig -o /boot/grub/grub.cfg=================================================
Поверхностно расскажу про файл 40_custom, так как в домашних условиях прибегать к его редактированию не вижу смысла (если только кроме вас машиной пользуются ещё человек 10 равшанов)
Файл 40_custom находится в /etc/grub.d/ файл, в отличии от 00_header данный файл позволяет нам зафиксировать записи и количество этих записей и чётко управлять какой пользователь за что отвечает:
set superusers="user1"
password user1 passwd_1
password user2 passswd_2
menuentry 'ОS_#1'{
...
}
menuentry 'ОS_#2' --users user2{
...
}
Здесь пользователь user1 может загружать и редактировать любую запись, все пользователи имеют право загружать ОS_№1 и только пользователь user2 имеет право загружать ОS_№2
В этом примере приведены пользователи с открытым паролем, но как и в случае с 00_header можно прописать шифрованные PBKDF2 пароли.
Также это можно прописать в grub.cfg на прямую, но дабы не загромождать его, в нём просто прописывается путь к 40_custom
Если вдруг вы всё таки по не осторожности забыли пароль, или кому-то потребовалось его восстановить, то с помощью LiveUsb приводите файл 00_header в свой первоначальный вид.
Это только один из способов запаролить загрузчик, можно обойтись "меньшей кровью" и все изменения произвести только в самом файле grub.cfg.
Также можно пойти другим путём и создать файл passwd и прописать его в grub.cfg, путей решения много и они многогранны как и сам Linux.