Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
wiki:od:rcrypt_150 [15/09/2023 16:38] – [Объединение LUKS и LVM] graf | wiki:od:rcrypt_150 [15/09/2023 17:22] (текущий) – graf |
---|
{{:wiki:od:sec.jpg?nolink&100 |}}\\ | {{:wiki:od:sec.jpg?nolink&100 |}}\\ |
Перевёл: //Graf//\\ | Перевёл: //Graf//\\ |
Дата перевода: //июль 2023 г.//\\ | Дата перевода: //сентябрь 2023 г.//\\ |
Оригинал: http://slackware.osuosl.org/slackware-15.0/README_CRYPT.TXT | Оригинал: http://slackware.osuosl.org/slackware-15.0/README_CRYPT.TXT |
\\ | \\ |
Когда система должным образом подготовлена, можно запустить установку (setup). Программа установки определит swap LV и активирует его. При назначении разделов для использования в файловых системах, выберите «/dev/cryptvg/root» для корневого раздела, далее «/dev/cryptvg/home», для /home. И, наконец, раздел «/dev/sdx1» для «/boot». Только «/boot» будет не зашифрованной частью вашего компьютера. | Когда система должным образом подготовлена, можно запустить установку (setup). Программа установки определит swap LV и активирует его. При назначении разделов для использования в файловых системах, выберите «/dev/cryptvg/root» для корневого раздела, далее «/dev/cryptvg/home», для /home. И, наконец, раздел «/dev/sdx1» для «/boot». Только «/boot» будет не зашифрованной частью вашего компьютера. |
| |
| Вы заметите, что есть еще несколько устройств, которые можно выбрать, но не трогайте их! Устройства, такие как «/dev/mapper/*», являются основным именем устройств для зашифрованного и LVM томов. Если вы коснетесь любого из них, то уничтожите данные на «/dev/cryptvg/*» томах. После разбиения на разделы мы получаем конфигурацию файловой системы следующего вида: |
| <code> |
| /dev/cryptvg/root / |
| /dev/cryptvg/home /home |
| /dev/sdx1 /boot |
| </code> |
| |
| Когда установка пакетов завершится, начнется конфигурация системы и один из диалогов будет для конфигурирования LILO — «liloconfig».Предполагается, что вы устанавливаете Slackware в качестве единственной ОС на компьютере. Это означает, что вы должны установить Lilo в MBR. Даже если у вас есть другая, уже установленная, ОС такая как MS Windows, LILO загрузчик в Slackware все равно сможет загрузить Windows, при установке LILO в MBR. Выберите «expert lilo configuration» с опцией «Install to Master Boot Record (MBR)». Выделите «/dev/cryptvg/root», как корневой раздел для загрузки. Добавьте раздел Windows, если вы хотите, чтобы LILO загружалось с двойной загрузкой. Наконец, когда «liloconfig» начнет установку загрузчика, вы можете увидеть сообщение об ошибке «установка не удалась». Игнорируйте эту ошибку, потому что мы должны добавить initrd в «/etc/lilo.conf» в любом случае и повторно запустите LILO. Мы сделаем это после завершения установки Slackware. |
| |
| Допустим, установка завершена, и после того как вы выберите «Выход» вы будете возвращены в командную строку. Не перезагружайтесь, пока! Это тот момент, когда мы зафиксируем наш загрузчик. Для этого выполним команду chroot(change root) в нашей, только что установленной Slackware. Программа установки уже сделала все приготовления, например, повторное монтирование /sys и /proc в /mnt и cгенерировала LVM устройства туда же. Введите команду «chroot»: |
| <code> |
| # chroot /mnt |
| </code> |
| |
| В «chroot» среде создадим образ initrd с поддержкой LVM и CRYPT — иначе ваш компьютер не сможет продолжить загрузку ядра на начальном этапе. Виртуальный диск (initrd) содержит маленькую файловую систему и инструменты, необходимые для разблокирования корневой файловой системы, чтобы ядро смогло запустить программу инициализации. В примере ниже команда, которая создает образ «initrd.gz» и где я предположил, что корневая файловая система «ext4», работа проходит под управлением Slackware 14.2 с ядром по умолчанию 4.4.14-smp \\(//**__Прим. от Graf:__** - в оригинале допущена не точность. Следует читать: ...под управлением Slackware **15.0** с ядром по умолчанию **5.15.19-smp**//): |
| <code> |
| # mkinitrd -c -k 4.4.14-smp -m ext4 -f ext4 -r /dev/cryptvg/root -C /dev/sdx2 -L |
| </code> |
| (//**__Прим. от Graf:__** - в оригинале допущена не точность. Следует читать код как: mkinitrd -c -k **5.15.19**-smp -m ext4 -f ext4 -r /dev/cryptvg/root -C /dev/sdx2 -L//): |
| |
| <note tip> **ПРИМЕЧАНИЕ:** //Если Slackware запускается из initrd, а вы используете не американскую клавиатуру и необходимо ввести пароль во время загрузки, это может быть проблематично. В этом случае добавьте поддержку вашей клавиатуры, во время создания образа initrd, с помощью дополнительного параметра команды «mkinitrd»: «-l <language»>. Пример для голландской клавиатуры: \\ |
| «-l nl».//</note> |
| |
| В результате образ initrd будет записан в файл по умолчанию «/boot/initrd.gz». Мы должны сообщить LILO об этом initrd. Откройте конфигурационный файл «/etc/lilo.conf» в редакторе, например в VI или pico — он должен быть уже сгенерирован «liloconfig» во время установки. Посмотрите на «Linux bootable partition config» и добавьте строку для initrd. Мы также должны изменить файл ядра на стандартное ядро, потому что LILO не в состоянии объединить «huge» ядра в Slackware 14.2 (//**__Прим. от Graf:__** - в оригинале допущена не точность. Следует читать: Slackware **15.0**//) с образом initrd — оно будет жаловаться, что «виртуальный(RAM) диск является слишком большим, для соответствия между ядром и 15M-16M memory hole». Мы можем жить с этим,так как «huge» ядра не предназначены для повседневного использования в любом случае. Они предназначены для установки Slackware на широкий спектр компьютеров, и именно поэтому они являются «огромными»(huge). Строка «/etc/lilo.conf» в части «Linux», должна выглядеть, примерно так: |
| <code> |
| image = /boot/vmlinuz-generic-smp-4.4.14-smp |
| initrd = /boot/initrd.gz |
| root = /dev/cryptvg/root |
| label = linux |
| read-only |
| </code> |
| (//**__Прим. от Graf:__** - в оригинале допущена не точность. Следует читать первую строчку кода, как: image = /boot/vmlinuz-generic-smp-**5.15.19**-smp//)\\ |
| |
| *Если вы добавили, приведенный выше раздел, в качестве дополнительного, не изменяя того, что уже есть, убедитесь, что (label)метка («Linux» в примере выше) является уникальной в файле конфигурации. |
| |
| Мы закончили. Сохраните изменения, выйдите из редактора и запустить команду «LILO». Lilo выдаст несколько предупреждений, касающихся доступности разделов «/proc/partitions» и то, что LILO об этом думает, но их можно проигнорировать. Перезагрузитесь, и вы увидите строку: «Enter passphrase: ». После ввода пароля, который откроет зашифрованный раздел, начнется загрузка в Slackware. Вы сможете работать как обычно, и когда вы выключите машину (или приостановите с записью на диск используя раздел подкачки) все ваши данные (включая swap) будут зашифрованы. |
| |
| Как вы заметили, в этот раз, не было никакой необходимости для создания файла «/etc/crypttab». Также запрашивается только один пароль для входа. Кроме того, swap шифруется по умолчанию, что является большим плюсом, если вы собираетесь использовать ноутбук и носить его с собой в стадии гибернации. Все рассмотренное, это самый элегантный способ шифрования вашего Slackware компьютера, если вы не возражаете против использования LVM. |
| |
| ===== Дополнительные фразы (пароли), ключевые файлы ===== |
| Программа Cryptsetup задает 7 «ключевых слотов» для любого шифрования раздела или тома. Каждый из этих семи слотов может содержать ключ для разблокировки разделов с данными. Ключ может быть фразой, но использование ключевого файла это еще один вариант. Можно передать имя файла в качестве параметра cryptsetup для того, чтобы разблокировать зашифрованный том без ввода пароля. Это дает возможность использовать ключевой файл на съемном USB носителе для разблокирования вашего компьютера. Slackware поддерживает ключевые файлы и если файл можно найти в файловой системе,он будет использоваться, и вам не придется вводить пароль. |
| |
| Ключевой файл также может использоваться на USB носителе отформатированном под FAT. Для это надо использовать параметр «-К» команды mkinitrd, указав USB носитель с FAT-меткой или UUID, а также полный путь к ключевому файлу. |
| *Например: |
| <code> |
| # mkinitrd -c -k 4.4.14-smp -m ext4 -f ext4 -r /dev/cryptvg/root -C /dev/sdx2 -L -K LABEL=TRAVELSTICK:/keys/alien.luks |
| </code> |
| (//**__Прим. от Graf:__** - в оригинале допущена не точность. Следует читать код, как: mkinitrd -c -k **5.15.19**-smp -m ext4 -f ext4 -r /dev/cryptvg/root -C /dev/sdx2 -L -K LABEL=TRAVELSTICK:/keys/alien.luks//)\\ |
| |
| В mkinitrd из Slackware 13.1 ввели эту поддержку USB, как механизм разблокирования. Кроме того, после того, как корневая файловая система разблокирована и примонтирована, абсолютно безопасно хранить ключевой файл, для дополнительных зашифрованных файловых систем, например в каталоге «/root». Таким образом, достаточно ввода только одного пароля. |
| |
| ===== Спящий режим (с записью на диск) ===== |
| |
| Я остановлюсь кратко на этой теме, потому что она еще не была документирована надлежащим образом в других местах. Настройка вашего компьютера на гибернацию можно сделать в любое время, не обязательно это делать во время установки Slackware. Предположим, вы хотите использовать раздел подкачки «/dev/cryptvg/swap» для гибернации, то необходимо выполнить следующие шаги: |
| |
| * 1)Добавьте в файл «/etc/lilo.conf» в параметр "append = " строку «resume=/dev/cryptvg/swap». В конечном итоге параметр «append» будет выглядеть так: |
| <code> |
| append = "vt.default_utf8=0 resume=/dev/cryptvg/swap" |
| </code> |
| |
| *2) Добавьте к команде mkinitrd дополнительный параметр «-h /dev/cryptvg/swap», чтобы создать initrd с поддержкой восстановления из раздела подкачки. Не забудьте запустить «LILO» после создания нового файла initrd.gz! |
| |
| ===== Замечание о пользовательских ядрах ===== |
| |
| Если вы хотите собрать собственное ядро для работы с LUKS шифрованными разделами, то Вам необходимо включить по меньшей мере, следующие два варианта в файл конфигурации ядра: |
| <code> |
| Multiple devices driver support (RAID and LVM) ---> |
| <*> Device mapper support |
| <*> Crypt target support |
| </code> |
| |
| Это равносильно следующим строкам в файле .config: |
| <code> |
| CONFIG_BLK_DEV_DM=y |
| CONFIG_DM_CRYPT=y |
| </code> |
| |
| Не собирайте их в качестве модуля! Они необходимы в ядре! |
| |
| ===== USB-клавиатуры и LUKS ===== |
| |
| Если вы создали зашифрованный корневой раздел, для ввода пароля вам необходим доступ к клавиатуре. Если у вас USB клавиатура, то может потребоваться добавить модули «uhci-hcd» и «usbhid» в initrd образ. Также отметим, что если вы используете не американскую клавиатуру, вы можете использовать параметр «-l» в команде «mkinitrd» для добавления поддержки этой клавиатуры в initrd. |
| |
| =====Сценарий, помощник создания mkinitrd ===== |
| |
| Пакет mkinitrd в Slackware 14.0 (и выше), поставляется со сценарием под названием «mkinitrd_command_generator.sh». Если вы запустите этот сценарий, он проанализирует конфигурацию Slackware и сделает умное предложение о том, как составить команду «mkinitrd» для того, чтобы создать initrd.gz со всеми колоколами и свистками. Сценарий распознает версию ядра, корневой раздел и файловую систему, он узнает, используете ли вы LUKS и(или) LVM и определит, какие модули ядра необходимы initrd для монтирования корневой файловой системы. Следующая команда избавит вас от головной боли, проверьте сами: |
| <code> |
| # /usr/share/mkinitrd/mkinitrd_command_generator.sh -r |
| </code> |
| |
| Изучите и сравните выданную строку, например,как эта (потому что система может дать различные значения параметров): |
| <code> |
| mkinitrd -c -k 4.4.14-smp -m ext4 -f ext4 -r /dev/cryptvg/root -C /dev/sdx2 -L |
| </code> |
| (//**__Прим. от Graf:__** - в оригинале допущена не точность. Следует читать код, как: mkinitrd -c -k **5.15.19**-smp -m ext4 -f ext4 -r /dev/cryptvg/root -C /dev/sdx2 -L//)\\ |
| |
| Вы можете скопировать и вставить этот вывод в командную строку, а также любые другие параметры, которые нужны, такие как «-h», чтобы указать раздел гибернации или «-l», чтобы указать, что вы используете не американскую раскладку клавиатуры. Вы даже можете запустить сценарий в полном интерактивном режиме с помощью параметра «-i», и он проведет вас через процесс создания mkinitrd в командной строке. |
| |
| ===== Окружение рабочего стола ===== |
| |
| Вероятно, вы не захотите, чтобы зашифрованные тома появились на рабочем столе, например, KDE или Xfce как монтируемые устройства, поэтому что-то вроде нижеследующего должно этому препятствовать: |
| <code> |
| # cat /etc/udev/rules.d/99-ignore-luksdevs-on-desktop.rules |
| KERNEL=="sdx2", ENV{UDISKS_IGNORE}="1" |
| </code> |
| |
| **Удачи вам в новой установке Slackware на зашифрованный раздел(ы)!** |
| |
| ---- |
| |
| Автор:\\ |
| //Eric Hameleers <alien@slackware.com> 18-сент-2012 //\\ |
| Под редакцией:\\ |
| //Robby Workman <rworkman@slackware.com> 9 марта 2017//\\ |
| URLs:\\ |
| [[ http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:setup]] |
| |