Установить Linux на зашифрованный диск

Обновлено: 06.07.2024

На основе Artix Linux: полное шифрование диска с UEFI с исправлениями некоторых новых проблем, а также — поскольку я использую AMD PC с загрузкой ядра с открытым исходным кодом + SeaBIOS, чтобы избежать проприетарных дыр / бэкдоров UEFI (подробнее о системе info) - мне пришлось заменить дисковые команды UEFI/GPT командами BIOS/MBR.

LiveCD/LiveUSB

Получите Artix Live ISO с вашей любимой средой рабочего стола и OpenRC. Запишите его на CD/DVD с помощью Brasero/Xfburn или запишите на флэш-накопитель USB: вставив его в компьютер, используйте

команда терминала, чтобы узнать букву вашего диска из журнала ядра Linux, а затем записать на этот USB с помощью

где X в sdX — это буква вашей флешки, а pv помогает увидеть прогресс. Если ваш dd от Coreutils достаточно новый, pv можно заменить параметром status=progress:

После выполнения команды dd запустите

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

При загрузке с живого носителя выберите параметр «С CD/DVD/ISO» независимо от того, используете ли вы CD/DVD или USB. Те, кто решился использовать запрещенную опцию From Stick/HDD, столкнулись с проблемами с polkit и другими проблемами, примеры которых можно найти здесь, здесь, здесь и т.д.

После загрузки с LiveCD/LiveUSB откройте терминал и напишите

для запуска последующих команд под root.

Разметка диска

Вот схема разбиения диска, которую мы собираемся получить:

Стереть диск

Узнайте букву X нужного вам диска:

Распечатать таблицу разделов с помощью

Проверьте, нет ли на нем ничего важного, затем сотрите его таблицу разделов и часть/все содержимое с помощью

Позвольте ему работать в течение минуты и прервите его, нажав Ctrl+C/Ctrl+Z, если вы спешите, или подождите, пока он не закончится, а затем

чтобы очистить дисковые операции.

Создайте разделы

Создайте новую таблицу разделов MBR:

Настройте раздел /dev/sdX1 для /boot — 1 ГБ должно быть достаточно — и установите флаг загрузки:

Распечатайте таблицу разделов диска и посмотрите, оптимально ли выравнивание вашего первого раздела:

Создайте раздел /dev/sdX2, который займет оставшееся свободное место — после 1 ГБ /boot — и установите флаг lvm:

Настройка логических томов

Для шифрования диска будет использоваться унифицированный ключ Linux (LUKS), который теперь является частью расширенной версии cryptsetup с использованием dm-crypt (device-mapper crypt) в качестве серверной части шифрования диска.

Чтобы принудительно загрузить модули ядра Linux, связанные с Serpent и другими надежными средствами шифрования, с вашего LiveCD/LiveUSB, запустите

и после его завершения используйте команду типа

для создания и форматирования раздела LUKS с вашими пользовательскими флагами шифрования. Откройте и смонтируйте его с помощью картографа устройств, например, в lvm-system :

Примечание: позже вы столкнетесь со следующими предупреждениями — они появляются из-за того, что /run недоступен внутри chroot — так что вы можете их игнорировать:

Теперь можно создать физический том с помощью диспетчера логических томов (LVM) и ранее использовавшейся системы id lvm следующим образом:

Имея физический том, можно создать группу логических томов с именем lvmSystem следующим образом:

И имея группу логических томов, логические тома можно создать следующим образом. Например, 16 ГБ для подкачки (volSwap) и остальные для корневого раздела (volRoot):

Отформатируйте разделы

Подготовив все разделы физического и виртуального диска, теперь можно их отформатировать.

Отформатируйте загрузочный раздел с помощью

Отформатируйте раздел подкачки с помощью

Эта команда напечатает сообщение типа

Скопируйте куда-нибудь свой UUID подкачки — он понадобится вам позже.

Отформатируйте корневой раздел с помощью

Смонтировать разделы

Отформатировав каждый раздел, их можно смонтировать следующим образом:

Установка Artix

При использовании схемы разделов, настроенной выше, высока вероятность получения ошибки, связанной с GRUB

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

и закомментируйте эту строку в конце файла в функции def run():

Это нормально, так как мы собираемся установить GRUB вручную чуть позже.

Вместо того, чтобы дважды щелкнуть ярлык Calamares на рабочем столе, я рекомендую запускать Calamares из консоли, чтобы получить больше журналов, которые могут быть очень полезны в случае возникновения каких-либо проблем. Извлеките команду запуска из этого ярлыка с помощью

Это должно выглядеть так

однако моя команда может быть устаревшей, так что не копируйте и не вставляйте ее. Извлеките свой собственный! Тогда используйте его.

Во время установки с помощью Calamares: на экране "Разделения / Выбрать устройство хранения" выберите "lvmSystem (/dev/lvmSystem)" и "Разбиение вручную", а на следующем экране - установите точку монтирования / для /dev/lvmSystem /volRoot. «Установить загрузчик» — может быть что угодно: оно будет проигнорировано благодаря нашему предыдущему изменению скрипта Calamares. И всплывающее окно «Возможность использования GPT в BIOS» может быть закрыто.

После завершения установки просто закройте окно Calamares, не выбирая «Перезагрузить сейчас»: нам нужно установить и настроить пакеты, а также загрузчик.

Настроить пакеты

фстаб

Открыть /mnt/etc/fstab с помощью

и удалите все незакомментированные строки — они были созданы установщиком Calamares. Теперь создайте новые строки с помощью

При необходимости все точки подключения твердотельных дисков (SSD) можно обновить с помощью опции discard, чтобы включить TRIM:

Однако есть мнения, которые не рекомендуют TRIM. Если вы сомневаетесь в аппаратном обеспечении, вместо него можно применить Периодическую ТРИМ.

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

При необходимости, чтобы изменить размер раздела TMPFS (например, размер 8 ГБ, т. е. половина объема ОЗУ), откройте файл /mnt/etc/fstab

и вставьте эту строку в конец, убедившись, что разделители пробелов TAB не были преобразованы в обычные пробелы (TAB должны быть везде, кроме пробела между двумя последними нулями) и без переднего пробела:

chroot

Теперь пришло время изменить корневой каталог (chroot) на только что установленную среду:

Установите пароль root с помощью

Обновите базу данных пакетов, выполнив:

регион, часовой пояс, имя хоста

Общесистемная локаль (например, en_US.UTF-8), часовой пояс и имя хоста — должны быть настроены Calamares. Проверьте это, выполнив

Если нет, настройте языковой стандарт с помощью

часовой пояс

и имя хоста (например, 4rt1x) с

mkinitcpio.conf

Файл /etc/mkinitcpio.conf позволяет настроить различные параметры ядра. В части HOOKS шифрование lvm2 необходимо поместить между ключевыми словами block и filesystems, чтобы включить полное шифрование диска. Также может быть полезно включить ключевое слово возобновления, чтобы включить параметры приостановки на диск. Однако это может работать не всегда, например, с защищенными ядрами.

Поскольку sed может быть ненадежным из-за возможных изменений порядка параметров, откройте /etc/mkinitcpio.conf с помощью

и вручную вставьте параметры шифрования и возобновления в следующие места:

должен стать

GRUB — Установка

Чтобы избежать проблем с конфигурацией GRUB, описанных в конце этого поста, удалите пакет artix-grub-theme вместе с его зависимостями:

Теперь вы можете установить эти пакеты:

Во время этого файлы initramfs должны автоматически перегенерироваться с помощью перехватчиков шифрования/возобновления. Если нет, повторно сгенерируйте initramfs вручную:

После этого можно было установить пакет grub

GRUB — Конфигурация

Чтобы GRUB мог найти разделы, зашифрованные с помощью LUKS, вам необходимо настроить его:

Лично я изменил следующие строки - без передних пробелов:

1) Добавлен

в начало файла

2) Время ожидания GRUB увеличено с 3 до 15:

3) Расширена командная строка GRUB по умолчанию:

должен стать

где можно узнать '''xxx UUID

и yyy UUID — подкачка UUID — уже известна вам из предыдущих шагов.

4) Добавлено

5) Изменен GRUB_GFXMODE:

должен стать

6) Перемещено вверх

7) Закомментировано

и добавил символы кавычек вокруг опций.

Вот окончательный файл /etc/default/grub из artix-xfce-openrc-20200506-x86_64.iso . Если этот конфиг не устарел - вы можете использовать его как шаблон, только не забудьте заменить UUID на свой:

вы уже записали это на предыдущих шагах,

узнайте это с помощью

Установите эти необязательные зависимости:

Затем вы можете установить GRUB в MBR и сгенерировать его конфигурацию:

Другие пакеты

Для расшифровки и использования томов LUKS/LVM необходимо установить и активировать следующие службы:

Служба udev (eudev/eudev-openrc) должна запускаться по умолчанию на уровне выполнения sysinit. Его активацию можно подтвердить следующим образом:

должен напечатать этот вывод:

Служба dbus должна быть установлена ​​и активирована. Если нет, то это можно сделать следующим образом:

logind проекта systemd должен быть установлен как часть базового метапакета. Если он не активируется, это можно сделать следующим образом:

Служба hasged — это простой демон энтропии, полезный для генерации непредсказуемых случайных чисел, который можно установить и активировать следующим образом:

Демоны заданий Cron (cronie, fcron и т. д.) можно установить и активировать следующим образом (например, cronie):

Если для управления сетевыми интерфейсами требуется графический интерфейс Network Manager, для установки и активации службы необходимо запустить следующее:

Оно сосредоточено на минимальном изменении процесса установки Ubuntu Desktop, чтобы разрешить его установку с зашифрованной /boot/ и корневой файловой системой. Для этого требуется выполнить 36 команд в терминале, все из которых показаны в этом руководстве, и большинство из них можно копировать и вставлять.
Это также полезный обзор ручных действий, необходимых для шифрования хранилища в состоянии покоя.

Он предназначен для замены текущей (безнадежно устаревшей и неадекватной) страницы FullDiskEncryptionHowto.

Почти полное шифрование диска (FDE)

Я (Tj) намеренно педантичен, называя это почти полным шифрованием диска, поскольку весь диск никогда не шифруется. Зашифрованы раздел операционной системы и файловая система второго уровня загрузчика, которая включает ядро ​​Linux и начальный RAM-диск.

Однако это намного лучше, чем опция Encrypt Disk установщика Ubuntu, которая поддерживает шифрование только раздела операционной системы, но оставляет файловую систему второго уровня загрузчика незашифрованной и, следовательно, уязвимой для подделки конфигурации GRUB, ядра Linux и т. д. скорее всего, исходная файловая система RAM (initrd.img).

В обоих случаях файлы загрузчика GRUB первой стадии не шифруются (и не могут) шифроваться или защищаться с помощью криптографических подписей в режиме загрузки BIOS.

  1. Предпосылки
  2. Загрузите программу установки
    1. Режимы загрузки
      1. Выбор режима загрузки UEFI
      2. Обнаружение режима загрузки UEFI
        1. GRUB (режим UEFI)
        2. Syslinux (режим BIOS)
        3. Параметры приветствия
          1. Определить целевое устройство установки
          2. Разметка
          3. Шифрование LUKS
          4. Разблокировка LUKS
          5. Форматировать файловые системы
          6. LVM (управление логическими томами)
            1. Разбиение вручную
            2. Включить зашифрованный GRUB
            1. GRUB (GRand Unified Bootloader)
            2. Сислинукс
            1. ISO-9660 El-Torito (механизм загрузки оптических носителей CD/DVD — использует Syslinux)
            2. GPT + EFI-SP (таблица разделов GUID и системный раздел EFI — используется GRUB)
            3. MBR + EFI-SP (главная загрузочная запись и системный раздел EFI — используется GRUB)
            4. GPT + ПК (таблица разделов GUID и загрузка BIOS — используется Syslinux)
            5. MBR + ПК (основная загрузочная запись и загрузка BIOS — используется Syslinux)

            Режимы загрузки

            У ПК есть два режима загрузки: BIOS (базовая система ввода-вывода) и UEFI (унифицированный расширяемый интерфейс встроенного ПО). BIOS устанавливался на IBM PC и совместимые устройства с 1980-х годов. Режим UEFI стал преобладать с тех пор, как Microsoft представила его в Windows 7, а позже стала требовать его на новых ПК для соответствия требованиям лицензионного соглашения с логотипом Windows. Большинство компьютеров с 2010 года имеют UEFI.

            Устройства Apple Macintosh/iMac имеют собственный EFI (расширяемый интерфейс встроенного ПО), который почти, но не совсем, такой же, как UEFI, но не имеет эквивалента BIOS. В этом руководстве (в настоящее время) не рассматривается установка на устройствах Apple.

            BIOS также известен как Legacy или CSM (модуль поддержки совместимости), если он является частью UEFI.

            Если целевая система поддерживает только BIOS, остальную часть этого раздела можно пропустить.

            Выбор режима загрузки UEFI

            Для поддержки безопасной загрузки UEFI или для установки вместе с другой операционной системой, использующей режим загрузки UEFI (например, Windows 10), диспетчеру загрузки встроенного ПО системной материнской платы необходимо указать запустить программу установки Ubuntu в режиме UEFI.< /p>

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

            Предположим, мы используем USB-накопитель. В меню загрузки это устройство может быть указано дважды (один раз для режима UEFI и еще раз для режима BIOS/CSM/Legacy). В нем может быть явно указано, что один из них является "UEFI", а другой нет, или может использоваться какой-либо трудноразличимый код, например однобуквенное сокращение (например, "U" вместо "B").

            Если мы хотим гарантировать режим UEFI и избежать режима BIOS/CSM/Legacy, то, войдя в программу настройки прошивки при включении питания, мы сможем найти возможность отключить режим CSM/Legacy.

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

            Существует быстрый способ убедиться, что программа установки запущена в режиме UEFI — она будет использовать GRUB, поэтому смотрите следующий раздел Первый загрузочный экран > GRUB (режим UEFI), чтобы узнать, как это будет выглядеть.

            Обнаружение режима загрузки UEFI

            После запуска Linux можно проверить. Наличие файловой системы efivarfs означает, что система загружается в режиме UEFI:

            Первый загрузочный экран

            Отображаемые параметры будут выглядеть по-разному в зависимости от используемого загрузчика.

            GRUB (режим UEFI)

             Главное меню загрузчика GRUB

            Выберите «Попробовать Ubuntu без установки» в меню загрузчика GRUB:

            Syslinux (режим BIOS)

            Syslins Language выбор

            Дисплей ненадолго остановится для выбора языка ввода:

            Расширенное меню Syslinux

            Если вы прерветесь на этом этапе, чтобы выбрать язык, Syslinux отобразит меню, в котором вы можете внести различные дополнительные изменения в параметры загрузки. На этом этапе вы должны выбрать пункт меню «Попробовать Ubuntu без установки».

            Параметры приветствия

             Диалог приветствия

            Если загрузка не была прервана для выбора языка, появится диалоговое окно приветствия с параметрами запуска. Выберите «Попробовать Ubuntu».

            Живой рабочий стол

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

            В Ubuntu (Gnome) нажмите кнопку «Показать приложения» в левом нижнем углу

            Показать приложения

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

            Выберите терминал

            Нажмите значок, чтобы запустить Терминал.

            Запустить терминал

            Вместо этих шагов вы можете просто нажать комбинацию горячих клавиш Ctrl+Alt+T.

            Предварительная подготовка зашифрованных разделов

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

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

            Некоторые более поздние команды функционально полагаются на Bourne-Again Ash Shell (BASH), поэтому всегда переключайтесь с оболочки по умолчанию на bash:

            Если вы когда-нибудь захотите проверить, какая оболочка используется, сделайте следующее:

            Вы получите что-то вроде одного из этих:

            Определить целевое устройство установки

            Здесь целевым устройством установки является sda, но ваше может отличаться, поэтому проверьте РАЗМЕР, чтобы убедиться, что вы выбрали правильное целевое устройство. (в этом примере целью является файл образа диска виртуальной машины размером 9 ГБ).

            Наконец, мы установим переменную среды для зашифрованного имени устройства-сопоставителя, в котором отсутствует начальная часть пути "/dev/":

            И мы должны справиться с устройствами NVME, которым требуется "p" для суффикса раздела:

            Разметка

            Теперь мы создадим метку диска и добавим четыре раздела. Мы создадим GPT (таблицу разделов GUID), чтобы она была совместима с установками в режимах UEFI и BIOS. Мы также создадим разделы для обоих режимов в дополнение к разделам для зашифрованных файловых систем /boot/ и / (root).

            Мы будем использовать инструмент sgdisk. Чтобы понять его параметры, прочтите man 8 sgdisk

            Сначала проверьте наличие существующих разделов на устройстве и, если они будут найдены, подумайте, хотите ли вы их сохранить или нет. Если вы хотите сохранить их, НЕ ИСПОЛЬЗУЙТЕ команду sgdisk --zap-all, описанную далее. Вместо этого подумайте, не нужно ли вам освободить место на диске, уменьшив или удалив отдельные существующие разделы.

            Gparted Partitioner

            Если вам нужно манипулировать существующими разделами, используйте меню «Показать приложения» для поиска GPartEd, который является инструментом создания разделов с графическим интерфейсом пользователя (см. руководство по GPartEd, чтобы узнать, как его использовать)

            Если безопасно удалить все на этом устройстве, вам следует стереть существующие метаданные разделов. НЕ ДЕЛАЙТЕ ЭТОГО, если вы устанавливаете вместе с существующими разделами!

            Теперь мы создадим разделы. Небольшой раздел bios_boot (2 МБ) для образа ядра GRUB в режиме BIOS, системный раздел EFI размером 128 МБ, /boot/ размером 768 МБ и последний раздел для оставшегося места для операционной системы.

            : : где start и end могут быть относительными значениями, а при нуле (0) принимается наименьшее или максимальное возможное значение соответственно.

            Раздел 4 не создан. Причина в том, что установщик Ubuntu создаст только разделы 1 и 5. Здесь мы создаем их, а также две альтернативы загрузчика.

            Шифрование LUKS

            Формат (версия) LUKS (Linux Unified Key Setup) по умолчанию, используемый инструментом cryptsetup, изменился с момента выпуска 18.04 Bionic. 18.04 использовалась версия 1 («luks1»), но более поздние выпуски Ubuntu по умолчанию используют версию 2 («luks2»). GRUB поддерживает только открытие версии 1, поэтому мы должны явно установить luks1 в командах, которые мы используем, иначе GRUB не сможет установить или разблокировать зашифрованное устройство.

            Примечание: по состоянию на октябрь 2021 г. и Ubuntu 21.10 GRUB по-прежнему не поддерживает установку в контейнеры luks2. Он может читать luks2 (хотя и с некоторыми строгими ограничениями и с некоторыми ошибками декодирования UUID), но grub-install через grub-probe не может распознать устройство luks2 и, следовательно, не может правильно установить в контейнеры luks2.

            Итак, контейнер LUKS для /boot/ в настоящее время должен использовать LUKS версии 1, тогда как контейнер для корневой файловой системы операционной системы может использовать LUKS версии 2 по умолчанию.

            Для получения дополнительной информации см. справочные страницы для 18.04 Bionic или 18.10 Cosmic и более поздних версий.

            Сначала раздел /boot/:

            Теперь раздел операционной системы:

            Разблокировка LUKS

            Теперь откройте зашифрованные устройства:

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

            Форматировать файловые системы

            ВАЖНО, этот шаг необходимо выполнить, иначе разделитель установщика отключит возможность записи файловой системы на это устройство без таблицы разделов (справочная страница для mkfs.ext4):

            Отформатируйте EFI-SP как FAT16 (справочная страница для mkfs.vfat):

            LVM (управление логическими томами)

            Теперь мы создадим группу томов LVM (VG) операционной системы и логический том (LV) для корневой файловой системы.

            LVM имеет замечательную возможность увеличивать размер LV, пока он активен. Чтобы обеспечить это, мы сначала выделим 80% свободного места в VG для LV. Позже, если вам понадобится место для других файловых систем или моментальных снимков, установленная система будет готова и сможет поддерживать эти требования, не пытаясь освободить место.

            Я также создаю устройство LV 4GiB для подкачки, которое используется не только для предоставления дополнительных страниц памяти при нехватке свободного места в ОЗУ, но и для хранения спящего образа памяти, чтобы система могла быть полностью выключена и отключена. может возобновить все приложения, где они остановились. Размер области подкачки для поддержки режима гибернации должен быть равен объему ОЗУ, который имеется на ПК сейчас или который ожидается в будущем.

            Установить Ubuntu

            Теперь сверните окно терминала и запустите программу установки:

            Запустить программу установки

            Выберите язык установки и клавиатуру, а затем варианты установки программного обеспечения:

            В параметрах «Тип установки» выберите «Другое»:

            Тип установки

            Разметка вручную

            Запустится ручной разделитель:

             Разделитель вручную

            Выберите устройство корневой файловой системы для форматирования (/dev/mapper/ubuntu--vg-root), нажмите кнопку «Изменить», выберите «Использовать как Ext4». и точка монтирования /:

             Выбор корневой файловой системы

            Выберите устройство подкачки (/dev/mapper/ubuntu--vg-swap_1), нажмите кнопку «Изменить», выберите «Использовать как область подкачки»:

             Поменять местами выбор устройства

            Выберите загрузочное устройство файловой системы для форматирования (/dev/mapper/LUKS_BOOT), нажмите кнопку Изменить. выберите Использовать как Ext4. и точка монтирования /boot:

             /выбор загрузочной файловой системы

            Выберите загрузчик (в моем примере /dev/sda). Устройство загрузчика всегда должно быть необработанным диском, а не разделом или узлом сопоставления устройств:

             Выбор устройства загрузчика

            Нажмите кнопку «Установить сейчас», чтобы записать изменения на диск, и нажмите кнопку «Продолжить»:

             Записать изменения на диск

            Процесс установки продолжится в фоновом режиме, пока вы будете заполнять поле «Где вы?». и кто ты? формы:

            Кто вы?

            Включить зашифрованный GRUB

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

            Это необходимо сделать до того, как установщик достигнет этапа «Установить загрузчик» в конце процесса установки.

            Если установка прошла успешно, выберите вариант «Продолжить тестирование»:

            Продолжить тестирование

            Этапы после установки

            Вернитесь в Терминал и создайте среду изменения root для работы во вновь установленной ОС (справочные страницы для монтирования chroot):

            В chroot установите и настройте пакет cryptsetup-initramfs. Это может быть уже установлено. Примечание: этот пакет недоступен в 18.04 Bionic, поскольку файлы включены в основной пакет cryptsetup.

            Это позволяет автоматически разблокировать зашифрованные тома во время загрузки. Ключевой файл и вспомогательные скрипты добавляются в файлы /boot/initrd.img-$VERSION.

            Это безопасно, потому что эти файлы сами хранятся в зашифрованном каталоге /boot/, который разблокируется загрузчиком GRUB (который просит вас ввести парольную фразу), который затем загружает ядро. и initrd.img в оперативную память, прежде чем передать выполнение ядру. (Man-страница для initramfs.conf):

            Создайте рандомизированный ключевой файл размером 4096 бит (512 байт), защитите его и добавьте в тома LUKS (справочные страницы для dd chmod):

            Добавить ключи в crypttab (Man-страницы для crypttab blkid):

            Наконец обновите файлы initialramfs, чтобы добавить сценарии разблокировки cryptsetup и файл ключа:

            Если все прошло хорошо, система готова к перезагрузке.

            Диалоговое окно настроек и питания

            Перезагрузите систему, не забыв удалить установочный носитель (иначе она снова загрузится!).

            Диалог завершения работы< бр />

            Вы должны получить запрос на ввод фразы-пароля GRUB:

            Парольная фраза GRUB подсказка

            Full_Disk_Encryption_Howto_2019 (последним удаленным пользователем tj 2021-10-22 20:21:34)

            Материалы этой вики доступны по бесплатной лицензии, подробности см. в разделе Авторские права / Лицензия
            Вы можете внести свой вклад в эту вики, подробности см. в Руководстве по вики

            Безопасность устройств — одна из основных проблем, с которыми сталкиваются специалисты по безопасности, разработчики и другие ИТ-специалисты в связи с растущим числом киберугроз. Преступные хакеры становятся все более изощренными в своих векторах атак и постоянно изобретают новые способы обхода даже самых защищенных систем.Хотя некоторые могут утверждать, что Linux — самая безопасная и стабильная операционная система, она все же может стать жертвой тех же неправильных конфигураций и пользовательских ошибок, которые преследуют пользователей устройств Mac и Windows.

            Ни одно устройство не является надежным, и, как и многое другое в вашей среде, ваша система Linux так же надежна, как и ее самое слабое место. Конфигураций по умолчанию, выбранных во время первой установки, недостаточно для защиты вашего устройства, а незащищенные системы Linux и использование устаревшего программного обеспечения могут значительно увеличить шансы взлома. В наихудшем сценарии вы можете обнаружить, что ваш жесткий диск полностью стерт, а важные файлы недоступны и, возможно, украдены без каких-либо улик. Исходный код, хранящийся на ноутбуке с Linux, может стать жертвой злоумышленников, или, возможно, на ноутбуке в локальном файле или базе данных хранится PII; независимо от индивидуального варианта использования обеспечение безопасности ваших данных имеет решающее значение.

            Существуют различные меры, которые можно предпринять для защиты устройств Linux от возможных взломов. Один из них включает полное шифрование диска на своем диске.

            Что такое (полное) шифрование диска?

            Шифрование — это процесс преобразования простых текстовых данных в зашифрованный текст, который представляет собой нечитаемый формат, с использованием специального математического алгоритма. Единственными сторонами, которые могут получить доступ к зашифрованным данным, являются те, у кого есть указанный ключ дешифрования или пароль (который действует как ключ).

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

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

            Шифрование диска в Ubuntu 20.04 с использованием LUKS

            LUKS, сокращение от Linux Unified Key Setup, представляет собой стандартную технологию шифрования жестких дисков для основных систем Linux, включая Ubuntu. Он используется для шифрования целых блочных устройств и поэтому идеально подходит для шифрования жестких дисков, твердотельных накопителей и даже съемных накопителей.

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

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

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

            К счастью, в Ubuntu 20.04 есть опция, позволяющая полностью зашифровать ваш жесткий диск или твердотельный накопитель в процессе установки, как это описано в этом руководстве.

            Как полностью зашифровать данные в Ubuntu 20.04

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

            Несколько замечаний о шифровании диска LUKS в Ubuntu 20.04:

            1. Этот метод шифрования не применяется при двойной загрузке Windows 10. Шифрование LUKS удалит все данные из раздела, поэтому мы используем шифрование при новой установке, что является предпочтительным методом.
              1. Если вы выберете разбиение вручную, вы не сможете зашифровать каждый раздел диска.

              Начало работы

              После того как вы подключили загрузочный носитель и прошли предварительные этапы установки, включая выбор языка установки, раскладки клавиатуры и устанавливаемых обновлений программного обеспечения, вам потребуется выбрать режим установки. Будут представлены два варианта: «Стереть диск и установить Ubuntu», который стирает все существующие данные и автоматически разбивает диск на разделы, и «Что-то еще», который используется, когда вы хотите вручную настроить разделы диска самостоятельно.

              Итак, выберите параметр «Стереть диск и установите Ubuntu» и нажмите кнопку «Дополнительные функции», как указано.

              Окно типа установки Ubuntu 20.04

              Выберите LVM с новой установкой

              На следующем шаге обязательно выберите «Использовать LVM с новой установкой Ubuntu» и установите флажок «Шифрование» ниже (Зашифровать новую установку Ubuntu для обеспечения безопасности), чтобы защитить свою систему с помощью шифрования LUKS.

              Затем нажмите "ОК", чтобы сохранить изменения

              окно типа установки Ubuntu 20.04, выберите LVM с новой установкой Ubuntu

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

              Внимательно запишите пароль и не забывайте его, иначе у вас не будет доступа к вашей системе Linux. Менеджер паролей или другая программа, которая надежно сохраняет важные данные, — отличное место для их хранения.

              Введите электронный ключ

              Затем, наконец, нажмите кнопку «Установить сейчас», чтобы продолжить установку.

              Ubuntu 20.04 полное шифрование диска, выберите ключ безопасности

              В появившемся всплывающем окне нажмите «Продолжить», чтобы сохранить изменения.

              Ubuntu 20.04 полное шифрование диска, выбор ключа безопасности, полный шаг

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

              Завершить процесс установки

              По завершении установки нажмите кнопку «Перезагрузить сейчас», чтобы перезагрузить систему. Обязательно удалите установочный носитель и нажмите ENTER.

              Ubuntu 20.02 полное шифрование диска, новая установка

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

              Введите пароль или кодовую фразу и нажмите ENTER.

              Ubuntu 20.02 полное шифрование диска новая установка введите пароль для разблокировки

              Вы получите результат, аналогичный нашему.

              Ubuntu 20.02 полное шифрование диска, экран разблокировки новой установки

              Если указан неверный пароль, вы увидите сообщение об ошибке, как показано на рисунке.

              Ubuntu 20.02, полное шифрование диска, новая установка, неправильный пароль, экран

              Заключение

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

              С помощью JumpCloud Directory Platform вы можете легко внедрить полное шифрование диска для всего парка. Благодаря возможностям удаленного управления устройствами устройства Windows и macOS могут обеспечить полное шифрование диска с помощью стандартных готовых политик, в то время как устройства Linux можно управлять и отслеживать состояние шифрования. Чтобы увидеть, как это работает, а также ряд других функций безопасности и управления устройством, зарегистрируйте бесплатную учетную запись сегодня. JumpCloud можно использовать бесплатно для 10 пользователей и 10 устройств; мы также предоставляем круглосуточную поддержку в приложении в течение первых 10 дней использования.

              < бр />

              В этом простом руководстве для начинающих показано, как зашифровать всю файловую систему при установке Ubuntu.

              Как вы, возможно, знаете, Ubuntu Linux легко взломать физически. Хотя пользователи могут добавить защиту паролем в меню загрузки Grub, файловая система по-прежнему доступна через действующую систему, например, через загрузочный установщик USB.

              Чтобы в конечном счете предотвратить физический взлом Ubuntu, лучше всего добавить защиту паролем на весь системный диск. И вы можете сделать это во время установки Ubuntu.


              1.) Во-первых, это руководство не является полным руководством по установке Ubuntu. Если вы еще не начали, ознакомьтесь с пошаговым руководством по установке.

              2.) Если вы собираетесь установить Ubuntu как ЕДИНСТВЕННУЮ операционную систему на жестком диске, просто выберите «Стереть диск и установить Ubuntu», re на странице типа установки.

              Затем нажмите «Дополнительные функции», чтобы выбрать LVM или ZFS, и включите «Зашифровать новую установку Ubuntu в целях безопасности».


              3.) Обычно я выбираю «Что-то еще», чтобы вручную создать разделы для файловой системы Ubuntu.

              В отличие от Fedora и Manjaro, в Ubuntu нет флажка «Зашифровать» при создании раздела EXT4. Вместо этого вам нужно создать раздел, который будет использоваться как «физический том для шифрования».

              a.) Просто выберите свободное место и щелкните значок «+» в таблице разделов. Во всплывающем диалоговом окне Создать раздел выполните:

              • Установите размер файловой системы Ubuntu. 20 Гб минимум. Для длительного использования, как можно большего размера.
              • Выберите использование в качестве «физического тома для шифрования».
              • Установите пароль и подтвердите его, а затем нажмите "ОК".


              b.) После нажатия кнопки «ОК» подождите несколько секунд. Будет создано новое устройство «/dev/mapper/sdaX_crypt» с файловой системой EXT4.

              Выделите его и нажмите кнопку «Изменить». Во всплывающем диалоговом окне установите точку монтирования как /.


              c.) То же, что и в Fedora, вы должны создать отдельный раздел /boot, так как он не может быть зашифрован.

              Для этого выберите свободное место и нажмите «+», чтобы создать:

              • 500 МБ должно хватить. 1 ГБ будет лучше.
              • использовать в качестве «файловой системы журналирования Ext4»
              • точка монтирования /boot


              d.) Также создайте «Системный раздел EFI» размером 250 МБ для загрузочной машины с UEFI или «Зарезервированную загрузочную область BIOS» размером 2 МБ для старой загрузочной машины с BIOS. Для небольшого объема оперативной памяти также рекомендуется использовать область подкачки.

              В итоге таблица разделов будет выглядеть так:


              Наконец нажмите кнопку «Установить сейчас». И подтвердите во всплывающем диалоговом окне.


              После того, как вы успешно установили Ubuntu, перезагрузите компьютер, и при загрузке Ubuntu вы увидите запрос пароля (см. верхнее изображение). Кроме того, для доступа к файловой системе из любой другой ОС требуется установленный вами пароль.

              Недавно я приобрел твердотельный накопитель взамен жесткого диска моего ноутбука и решил заменить его и использовать "полное шифрование диска".

              Я создал небольшой незашифрованный раздел для /boot и большой зашифрованный раздел LUKS, где я использовал LVM для создания 5 логических томов в группе томов:

              • Один для установки Fedora ( lv_fedora ).
              • Один для обмена ( lv_swap ).
              • Один для другой ОС Linux ( lv_os2 ).
              • И два для данных ( lv_data1 и lv_data2 ).

              Я без проблем установил Fedora в lv_fedora в качестве своей первой ОС и могу загрузить ее из меню GRUB, но теперь я не знаю, как мне установить другую ОС на базе Linux (Linux Mint 17) на зашифрованный диск. и заставьте GRUB2 Fedora обнаружить его и загрузить эту ОС.

              Я пробовал два разных подхода. в обоих случаях я запускал ubiquity, установщик Linux Mint, с параметром --no-bootloader, чтобы предотвратить установку загрузчика Mint.И в обоих случаях, чтобы начать установку, я предварительно разблокировал раздел LUKS в файловом менеджере образа LinuxMint Live, чтобы иметь возможность выбрать соответствующий логический том lv_os2 в качестве цели установки. Сейчас:

              • Сначала я попытался установить Linux Mint в один раздел, назначенный / в lv_os2. Установка прошла успешно. В Fedora я выполнил grub2-mkconfig -o /boot/grub/grub.cfg, чтобы обновить записи GRUB (это то, что я делал всю свою жизнь при использовании незашифрованного диска). GRUB обнаружил присутствие Linux Mint и добавил соответствующие записи в меню загрузки. Проблема заключалась в том, что впоследствии я не смог загрузиться с этих записей.
              • Тогда я подумал, что, возможно, [1] это произошло из-за того, что образы ядра были зашифрованы в загрузочной папке в разделе Linux Mint. Возможно, GRUB 2 нуждался в том, чтобы эти файлы находились в незашифрованном разделе, как и при первой установке Fedora (я использовал незашифрованный раздел /boot просто потому, что это рекомендуемая установка). Итак, на этот раз я сделал резервную копию раздела Fedora /boot (на всякий случай) и переустановил Linux Mint, но заставил его использовать незашифрованный раздел как /boot, чтобы образы ядра можно было скопировать в этот каталог и, возможно, загрузить после установки. . Установка прошла успешно, и «дополнительные» файлы, добавленные Linux Mint в /boot, не переопределяли ни один из файлов Fedora, поэтому, по крайней мере, Fedora работала, и мне не пришлось использовать резервную копию /boot. Затем я запустил Fedora и снова выполнил grub2-mkconfig -o /boot/grub/grub.cfg. На этот раз было еще хуже. GRUB перепутал записи, создав, например, запись для Fedora (нацеленная на lv_fedora ), загружающую образ ядра Linux Mint. Я попытался вручную изменить эти записи, но безуспешно.

              Бьюсь об заклад, я делаю что-то не так. Есть ли лучший способ установить дополнительную ОС Linux в уже зашифрованный том и позволить основной ОС Linux управлять загрузчиком? (обновление его записей GRUB, чтобы также разрешить загрузку из дополнительной ОС)

              [1]: как видите, я просто пытаюсь и учусь, но у меня нет глубокого понимания предмета.

              @iyrin: я пытался вручную изменить записи /boot/grub/grub.cfg после того, как GRUB перепутал там все записи Fedora и LinuxMint, но безуспешно.

              2 ответа 2

              Из всего, что я читал, все сводится к тому, что initramfs «встраивается в ядро ​​и загружается на ранней стадии процесса загрузки».1

              Для Mint вам нужно настроить /etc/crypttab , а затем использовать update-initramfs .2

              Насколько я понимаю, это должно служить руководством по созданию образа initramfs после установки Mint, который вы, похоже, уже установили. Надеюсь, это охватывает все, но обязательно изучите каждую часть самостоятельно.

              Загрузка Mint в реальном времени, монтирование и chroot в раздел, на который вы установили Mint.3

              Создайте и настройте /etc/crypttab для разблокировки при загрузке.4 Здесь вы добавляете путь к вашему lvm, где установлен Mint, который, исходя из вашего вопроса, должен находиться в /dev/mapper/lv_os2 или /dev/mapper/lv_os2 или / dev//lv_os2 5

              Если в поле параметров не указан режим и блочное устройство содержит подпись LUKS, оно открывается как устройство LUKS; в противном случае предполагается, что он находится в необработанном формате dm-crypt (обычный режим).

              Настройте /etc/fstab для монтирования /dev/mapper/, который вы только что создали в /etc/crypttab, в качестве корневого каталога / . Что-то вроде:
              /dev/mapper/ /
              См. man fstab .

              После того как вы настроите /etc/crypttab и /etc/fstab по своему вкусу, вы можете использовать update-initramfs для сборки/обновления загрузочного образа.

              См. man update-initramfs . Возможно, лучше всего использовать конкретную версию ядра, отображаемую uname -r в Mint. Команда должна выглядеть примерно так: update-initramfs -u -k 3.11.0-26-generic, за исключением замены версии ядра на вашу собственную.

              На этом этапе вы можете снова загрузиться в Fedora и попробовать параметр grub2-mkconfig -o /boot/grub/grub.cfg, который раньше обнаруживал Mint. Если это не сработает, следуйте инструкциям по ручной настройке мультизагрузки в руководстве по GRUB.6

              В частности, эта часть:

              Во всех операционных системах установите инструменты GRUB, но отключите установку GRUB в загрузочном секторе, чтобы у вас были доступны menu.lst и grub.cfg. Также отключите использование os-prober, установив:

              GRUB_DISABLE_OS_PROBER=true

              в /etc/default/grub

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


              Не удалось заставить это работать. В любом случае спасибо за вашу помощь. :-) Я думаю попробовать другой подход: зашифровать все разделы /boot и установить GRUB в незашифрованный раздел (теоретически в настоящее время он может читать с зашифрованных разделов). Затем я загружаю загрузчик в соответствующий зашифрованный / загрузочный раздел, в зависимости от выбранной ОС.Или, может быть, цепная загрузка не понадобится, мне придется попробовать, но, к сожалению, не так много документации об использовании GRUB с зашифрованными / загрузочными разделами. :-П

              На самом деле это не ответ на ваш вопрос "как", но должно дать вам некоторое представление - и это слишком долго для комментария.

              Во-первых, вы не можете загрузиться с зашифрованного раздела. Просто потому, что загрузочная цепочка понимает шифрование только довольно поздно:

              аппаратно загружает прошивку — обычно это BIOS или UEFI (на платформе x86). Аппаратное обеспечение как таковое полностью не зависит от данных — оно просто загружает все, что находит в некотором постоянном хранилище (по заранее определенному адресу).

              Прошивка загружает загрузчик или непосредственно ядро. Как и в случае с процессором, он понятия не имеет о возможных режимах шифрования (не то чтобы не может, но обычно не знает).

              Если задействован загрузчик, он загружает ядро ​​(или связанный загрузчик, как, например, при загрузке Windows) и чаще всего также начальный виртуальный диск (который может быть либо в отдельном файле, либо встроен в образ ядра). Здесь все становится интереснее, так как, например, GRUB2 должен загружаться с устройства LUKS, но документация кажется довольно скудной.

              Ядро монтирует корневую файловую систему и запускает init (System V init, systemd , OpenRC , upstart . вариантов множество).

              При загрузке с начального виртуального диска он сначала расширяется в память, затем монтируется, и оттуда запускается система инициализации. Файлы initramfs должны содержать все необходимое для монтирования правильной корневой файловой системы — обычно он содержит все доступные драйверы (например, драйверы RAID, которые необходимы, когда окончательная корневая файловая система находится на устройстве RAID), графическую загрузочную инфраструктуру — что часто означает минимальный (или не такой уж и минимальный) стек X11 — а часто еще и инструменты для монтирования зашифрованных разделов. После того, как все настроено и окончательная rootfs смонтирована, система инициализации, запущенная из initramfs, выполняет pivot_root() (см. справочные страницы pivot_root(8) и pivot_root(2) для получения более подробной информации), тем самым переключая / на правильную файловую систему. .

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

              Поэтому вы, вероятно, захотите узнать, как именно Fedora и Mint загружаются с зашифрованного тома. Решением вашей проблемы может быть, например, создание соответствующего образа initramfs для ядра Mint. Возможно, вы даже сможете использовать один initramfs для обоих ядер, при условии, что вы убедитесь, что есть условное монтирование правильных rootfs в зависимости от загруженного ядра, хотя я бы не рекомендовал этого, особенно если вы решили использовать разные (например, стандартные ) для каждого дистрибутива.

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

              Читайте также: