Как зашифровать системный диск убунту
Перейти к содержимому

Как зашифровать системный диск убунту

  • автор:

Установка системы с шифрованием всего диска

Данная статья рассказывает, как создать надёжно зашифрованное хранилище данных на жестком диске компьютера и при этом не сломать спящий и ждущий режимы. Особенно актуально это для владельцев ноутбуков, т. к. в отличие от стационарных компьютеров шанс кражи/утери ноутбука выше и возникает обоснованное желание хранить информацию в зашифрованном виде. Однако, предлагаемая по-умолчанию опция шифрования домашней папки при помощи ecryptfs во-первых не шифрует корневой раздел системы 1) , а во-вторых ecryptfs шифрует раздел swap с применением случайно сгенерированного ключа, таким образом, перестает работать такая нужная в ноутбуках опция как спящий режим 2) 3) .

Предлагается же создать один большой зашифрованный раздел размером с весь диск компьютера 4) , поверх которого развернуть виртуальную группу LVM, в которой создать обычные (не шифрованные с точки зрения ОС) разделы /, /home и swap. При этом, пользователю придётся вводить пароль при каждом включении компьютера (даже при выходе из спящего режима), однако, за счёт смещения шифрования на более низкий уровень, ОС «не заметит» этого и все функции будут работать.

Установка

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

Загрузите систему с alternate — диска, выберите язык и приступите к установке:

Загрузите систему с alternate — диска, выберите язык и приступите у установке.

Выберите ручной режим разметки диска:

Выберите ручной режим разметки диска.

Если у вас новый диск или, если вы хотите очистить на нем таблицу разделов, выберите строку с названием диска:

Если у вас новый диск.

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

. создайте на нем новую таблицу разделов

После этого, создайте на диске раздел /boot, выбрав указателем свободное место на диске:

создайте раздел

создайте раздел

Укажите небольшой объем, от 300 МБ до 1ГБ, т.к. для /boot этого будет вполне достаточно:

от 300 до 1000 МБ лучше сделать раздел первичным и расположить в начале диска

В списке «использовать как» укажите /boot, не забудьте сделать раздел загрузочным:

не забудьте сделать его загрузочным

Далее, не размечая оставшееся место, переходим в пункт «Настроить шифрование для томов»:

переходим в пункт "Настроить шифрование для томов"

Соглашаемся записать изменения:

соглашаемся на запись изменений

Выбираем «Create encrypted volumes»:

Выбираем "Create encrypted volumes"

Далее выбираем (при помощи кнопки Space ) свободное место на диске и жмём «Продолжить»:

выбираем свободное место

Если у вас нет паранойи, можете просто нажать «Настройка раздела закончена», если есть — установите параметр «Стереть данные» в «Да»:

Снова соглашаемся на запись изменений на диск:

Соглашаемся на запись изменений

Далее выбираем «Finish»:

Выбираем "Finish"

Далее установщик попросит вас ввести парольную фразу, которой он «закроет» диск:

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

После этого подтвердите пароль:

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

Если вы используете слишком простой пароль 5) , установщик попросит подтверждения:

используйте сильный пароль

После создания шифрованного тома, нужно настроить LVM:

теперь настраиваем LVM

Снова соглашаемся на запись изменений:

ну да, опять

Создаем группу томов:

создаем группу томов

даем ей имя

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

тот, что crypt

После этого создаем логические тома:

создаем логические тома

Пример для swap:

для swap для swap

Аналогично создаем диски для root и home, выделяя им желаемый объем. Если у вас большой диск — можете оставить некоторый его объем свободным, позднее вы сможете добавить его к любому логическому тому 6) .

После этого выбирайте «Закончить»:

Закончить

Теперь нужно назначить файловые системы и точки монтирования для созданных дисков:

Выбирайте разделы, находящиеся в блоках, начинающихся на LVM, они названы, согласно именам, данным им вами при создании логических томов, например, в данном случае, это LV home, LV swap и LV root. Стоит заметить, что раздел root 7) не нужно делать загрузочным, т.к. роль загрузочного у нас выполняет отдельный раздел /boot.

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

Закончить.

И снова соглашаемся с записью изменений на диск (заодно можно ещё раз проверить все ли вы правильно разметили):

Проверяем и жмём "Да"

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

После завершения установки и перезагрузки система предложит вам ввести пароль для разблокировки шифрованного диска. Введите пароль и нажмите Enter .

Изменение пароля

Работа с live-cd

Загрузитесь с live-cd 8) , выберите «Попробовать Ubuntu» и дождитесь полной загрузки системы. После этого, настройте подключение к интернету. Затем откройте терминал и выполните:

После успешной установки, переходите к этапу «Смена пароля».

Смена пароля

Описание

При установке диск шифруется при помощи связки LUKS и dm-crypt. LUKS использует в качестве идентификаторов доступа key slots, которые в данном случае выступают в виде пароля, однако могут быть и ключом. Всего доступно 8 слотов. По умолчанию (при создании шифрованного диска) используется слот 0.

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

Для операций со слотами — сначала нужно определиться с диском, на котором установлено шифрование. Выполните в терминале команду

Вывод будет примерно следующим:

Она даст вам список разделов на диске. Нужно найти тот раздел, на котором присутствует зашифрованный раздел. В данном случае это sda5.

Теперь можно просмотреть состояние слотов на этом разделе:

Видим, что слот 0 содержит пароль, а слоты 1-7 имеют статус DISABLED.

Устанавливаем новый ключ

Ввиду того, что необходим как минимум один активный слот, сменить пароль в обычном понимании на таком диске невозможно. Однако, можно создать пароль в другом слоте, а потом удалить первый слот. Чтобы создать новый ключ, выполните:

Если теперь посмотреть слоты, то станет видно, что статус ENABLED стоит теперь уже у двух слотов:

Теперь можно удалить старый пароль, находящийся в слоте 0:

И видим, что слот 0 стал DISABLED.

Заключение

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

Как зашифровать весь диск при установке Ubuntu 22.04

Дистрибутивы Linux проделали большую работу, чтобы получить дополнительную защиту, внедрив полное шифрование диска и став лидером рынка.

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

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

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

  • Загрузочный USB-накопитель.
  • Подключение к Интернету с достаточной пропускной способностью для загрузки больших файлов.
  • Материнская плата с поддержкой UEFI.

Но прежде чем перейти к процессу, давайте вкратце расскажем о плюсах и минусах шифрования диска.

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

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

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

Шифрование всего диска в Ubuntu 22.04

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

Посетите официальную страницу загрузки Ubuntu и выберите версию Ubuntu 22.04 LTS, которая автоматически начнет загрузку.

Чтобы записать ISO-образ Ubuntu на USB-накопитель, мы собираемся использовать Balena Etcher, который автоматически определит ОС, которую вы используете в данный момент. После того, как вы закончите установку Balena Etcher, установите его в своей системе.

Чтобы записать файл ISO, откройте balenaEtcher, выберите опцию «Flash from file» и выберите недавно загруженный файл ISO Ubuntu 22.04.

Далее выбираем диск, на который мы хотим прошить файл ISO. Выберите параметр «Выбрать цель», и в нем будут перечислены все подключенные диски в вашей системе. Из доступных вариантов выберите USB-накопитель или DVD-диск.

После того, как мы успешно прошили наш USB-накопитель, пришло время загрузиться с USB-накопителя. Чтобы загрузиться с USB, перезагрузите систему и используйте F10, F2, F12, F1 или DEL во время загрузки системы. Оттуда вы должны выбрать свой USB в качестве загрузочного диска.

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

ПРИМЕЧАНИЕ. Некоторые команды отличаются для пользователей Nvme SSD, поэтому, пожалуйста, прочитайте инструкцию перед применением команды, поскольку мы разделили их, когда это необходимо.

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

Нажмите «Действия», расположенные в левом верхнем углу, и введите поиск «Терминал». Нажмите Enter в первом результате, и он откроет для нас Терминал. Затем переключитесь на пользователя root, так как все команды, которые мы собираемся использовать, потребуют прав администратора.

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

Затем определите цель установки, нам необходимо перечислить все подключенные устройства хранения с помощью следующей команды:

Вы можете легко определить целевой раздел по размеру, и в большинстве случаев он будет называться sda и vda. В моем случае это sda размером 20GB.

Этот раздел применим только для вас, если вы используете HDD для твердотельных накопителей SATA. Поэтому, если у вас есть твердотельный накопитель Nvme, выделение имен переменных объясняется на следующем шаге.

Поскольку мое целевое устройство называется sda, мне необходимо использовать следующую команду:

Если вы используете Nvme, схема именования вашего целевого устройства будет выглядеть так: /dev/nvme&#36 n&#36 p&#36 , поэтому, если есть только один раздел, вероятно, имеют похожее имя на данную команду:

Теперь давайте настроим переменную для сопоставителя зашифрованных устройств с помощью следующей команды:

Каждому устройству Nvme потребуется ‘p’ в суффиксе, поэтому используйте данные команды для добавления суффикса:

Чтобы создать новую таблицу разделов GPT, мы собираемся использовать утилиту sgdidk со следующей командой:

Теперь мы можем безопасно удалить все доступные данные, но если вы устанавливаете эту систему вместе с существующими разделами, избегайте этого шага.

Для форматирования данных используйте следующую команду:

Мы собираемся выделить 2 МБ раздела для образа ядра GRUB в режиме BIOS, 768 МБ загрузочного раздела и 128 МБ для файловой системы EFI, а оставшееся пространство будет выделено пользователю, где вы сможете хранить нужные данные.

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

Чтобы изменить имя раздела, используйте данные команды:

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

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

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

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

Этот шаг применим только в том случае, если ваша система оснащена твердотельным накопителем Nvme. Используйте следующие команды для шифрования загрузочного раздела и раздела ОС:

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

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

Если ваша система оснащена жестким диском и твердотельным накопителем SATA, используйте следующую команду, чтобы отформатировать его в FAT16:

Поэтому, если в вашей системе используется твердотельный накопитель Nvme, вы можете легко отформатировать 3-й раздел с помощью следующей команды:

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

Здесь мы собираемся выделить 4 ГБ для раздела подкачки, который будет использовать дисковое пространство, когда в системе закончится память. Мы также выделяем 80% свободного места для root, чтобы пользователь мог максимально использовать свое дисковое пространство.

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

Пришло время запустить установщик Ubuntu. Просто сверните установщик, и вы найдете его на главном экране.

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

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

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

Выберите LUKS_BOOT и нажмите кнопку изменения.

Теперь выберите файловую систему журналирования Ext4 в первом варианте. Включите параметр Форматировать раздел и в точке монтирования выберите /boot.

Точно так же выберите ubuntu–vg-root и нажмите кнопку изменения. Здесь выберите файловую систему журналирования Ext4 в первом варианте. Включите параметр «Форматировать раздел» и в последнем выберите параметр «/».

Теперь выберите ubuntu–vg-swap_1 и нажмите кнопку параметров. Выберите опцию области подкачки и все.

Завершите изменения и выберите свое текущее местоположение.

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

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

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

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

Chroot используется для доступа к разделам, на которые мы только что установили Ubuntu. Используйте приведенные команды, одна из которых включает в себя монтирование диска и создание chroot-окружения.

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

Файл ключа будет использоваться для перекрестной проверки кода доступа для расшифровки и сохраняется в /boot/, который также является зашифрованным разделом. Используйте данную команду, чтобы продолжить:

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

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

Чтобы добавить ключи в crypttab, используйте следующую команду:

Если вы используете Nvme SSD, вы можете использовать следующую команду для добавления ключей в boot_os.file:

Точно так же, чтобы добавить ключи в crypttab, используйте следующую команду:

Теперь давайте обновим файлы initialramfs, так как это добавит скрипты разблокировки и ключевой файл с помощью следующей команды:

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

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

Шифрование дисков в Linux

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

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

Методы шифрования данных в Linux

Шифрование на уровне файловой системы:

  • 1. eCryptfs — это криптографическая файловая система Linux. Она хранит криптографические метаданные для каждого файла в отдельном файле, таким образом, что файлы можно копировать между компьютерами. Файл будет успешно расшифрован, если у вас есть ключ. Это решение широко используется для реализации зашифрованной домашней директории, например, в Ubuntu. Также ChromeOS прозрачно встраивает эти алгоритмы при использовании сетевых устройств для хранения данных (NAS).
  • 2. EncFS — обеспечивает шифрованную файловую систему в пространстве пользователя. Она работает без каких-либо дополнительных привилегий и использует библиотеку fuse и модуль ядра для обеспечения интерфейса файловой системы. EncFS — это свободное программное обеспечение и она распространяется под лицензией GPL. В наши дни эта файловая система уже устарела потому что в ней было найдено несколько уязвимостей. Вместо неё популярность набирают другие утилиты.

Блочное шифрование на уровне устройства:

  • Loop-AES — быстрая и прозрачная файловая система, а также пакет для шифрования раздела подкачки в Linux. Исходный код программы давно не изменялся. Она работает с ядрами 4.x, 3.x, 2.2, 2.0.
  • TrueCrypt — это бесплатное решение с открытым исходным кодом для шифрования диска в операционных системах Windows 7 / Vista /XP / Mac OS X, а также в Linux.
  • dm-crypt+LUKS — dm-crypt — это прозрачная подсистема для шифрования диска в ядре 2.6 и более поздних версиях. Поддерживается шифрование целых дисков, съемных носителей, разделов, томов RAID, программного обеспечения, логических томов и файлов.

В этой инструкции мы рассмотрим шифрование жесткого диска на Linux с помощью алгоритма Linux Unified Key Setup-on-disk-format (LUKS).

Как работает LUKS?

LUKS (Linux Unified Key Setup — протокол шифрования блочного устройства. Но мы забежали далеко наперед, чтобы понять как это работает, нужно скачала разобраться с другими технологиями, используемыми в этом способе.

Чтобы выполнить шифрование диска linux используется модуль ядра dm-crypt. Этот модуль позволяет создавать в каталоге /dev/mapper виртуальное блочное устройство с прозрачным для файловой системы и пользователя шифрованием. Фактически все данные лежат на зашифрованном физическом разделе. Если пользователь пытается записать данные на виртуальное устройство, они на лету шифруются и записываются на диск, при чтении с виртуального устройства, выполняется обратная операция — данные расшифровываются с физического диска и передаются в открытом виде через виртуальный диск пользователю. Обычно для шифрования используется метод AES, потому что под него оптимизированы большинство современных процессоров. Важно заметить, что вы можете шифровать не только разделы и диски, но и обычные файлы, создав в них файловую систему и подключив как loop устройство.

Алгоритм LUKS определяют какие действия и в каком порядке будут выполняться во время работы с шифрованными носителями. Для работы с LUKS и модулем dm-crypt используется утилита Cryptsetup. Ее мы и рассмотрим далее.

Утилита Cryptsetup

Утилита Cryptsetup позволят облегчить шифрование раздела Linux с помощью модуля dm-crypt. Давайте сначала ее установим.

В Debian или Ubuntu, для этого используйте такую команду:

suduo apt install cryptsetup

В дистрибутивах, основанных на Red Hat это будет выглядеть так:

sudo yum install cryptsetup-luks

Синтаксис запуска команды такой:

$ cryptsetup опции операция параметры_операции

Рассмотрим основные операции, которые можно сделать с помощью этой утилиты:

  • luksFormat — создать зашифрованный раздел luks linux;
  • luksOpen — подключить виртуальное устройство (нужен ключ);
  • luksClose — закрыть виртуальное устройство luks linux;
  • luksAddKey — добавить ключ шифрования;
  • luksRemoveKey — удалить ключ шифрования;
  • luksUUID — показать UUID раздела;
  • luksDump — создать резервную копию заголовков LUKS.

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

Шифрование диска Linux

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

1. Создание раздела

В этом примере мы будем шифровать раздел /dev/sda6, но вместо него вы можете использовать целый жесткий диск или просто один файл, заполненный нулями. Создаем шифрованный раздел:

sudo cryptsetup -y -v luksFormat /dev/sdb1

Эта команда выполнит инициализацию раздела, установит ключ инициализации и пароль. Сначала надо подтвердить создание виртуального шифрованного диска набрав YES, затем нужно указать пароль. Указывайте такой пароль, чтобы его потом не забыть.

Выполните такую команду чтобы открыть только что созданный раздел с помощью модуля dm-crypt в /dev/mapper, для этого понадобится ввести пароль, с которым выполнялось шифрование luks linux:

sudo cryptsetup luksOpen /dev/sdb1 backup2

Теперь вы можете увидеть новое виртуальное устройство /dev/mapper/backup2 созданное с помощью команды luksFormat:

ls -l /dev/mapper/backup2

Чтобы посмотреть состояние устройства выполните:

sudo cryptsetup -v status backup2

А с помощью следующей команды вы можете сделать резервную копию заголовков LUKS на всякий случай:

cryptsetup luksDump /dev/sdb1

Ну, можно сказать, раздел готов. И что самое интересное, теперь вы можете им пользоваться так же, как и любым другим обычным разделом в каталоге /dev. Его можно форматировать с помощью стандартных утилит, записывать на него данные, изменять или проверять файловую систему и т д. Нельзя только изменить размер. То есть все полностью прозрачно, как и сказано в начале статьи.

2. Форматирование раздела

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

dd if=/dev/zero of=/dev/mapper/backup2

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

pv -tpreb /dev/zero | dd of=/dev/mapper/backup2 bs=128M

Когда процесс завершится мы можем отформатировать устройство в любую файловую систему. Например, отформатируем в ext4:

sudo mkfs.ext4 /dev/mapper/backup2

Как видите, все команды cryptsetup применяются к физическому разделу, в то время как остальные команды для работы с дисками — к нашему виртуальному.

3. Монтирование раздела

Теперь можно примонтировать только, что созданную файловую систему:

sudo mount /dev/mapper/backup2 /backup2

4. Отключение раздела

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

sudo umount /backup2

sudo cryptsetup luksClose backup2

5. Повторное монтирование

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

sudo cryptsetup luksOpen /dev/sdb1 backup2

Теперь можем монтировать:

sudo mount /dev/mapper/backup2 /backup2

6. Проверить файловую систему luks

Поскольку после открытия раздела с помощью luks linux, этот раздел воспринимается системой, как и все другие, вы можете просто использовать утилиту fsck:

sudo umount /backup2

sudo fsck -vy /dev/mapper/backup2

sudo mount /dev/mapper/backup2 /backu2

7. Изменить парольную фразу luks

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

sudo cryptsetup luksDump /dev/sdb1

Затем создадим новый ключ:

sudo cryptsetup luksAddKey /dev/sdb1

И удалим старый:

sudo cryptsetup luksRemoveKey /dev/sdb1

Сейчас вам придется ввести еще старый пароль.

Выводы

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

Encrypting disks on Ubuntu 19.04

I’m an Ubuntu fan for many years. I usually update my Ubuntu installation to latest available release in order to use the latest and greatest applications and features that the open source world has to offer. For example, latest Ubuntu 19.04 has GNOME 3.32, Linux Kernel 5.0 and performance improvements!

I also always do a fresh installation of Ubuntu (of course to make sure that the installation is fresh) and I have kept my data in a separate partition to avoid deleting entire disk during installation. I also dual boot Windows 10 (yes, I’m a fan of Windows as well. However, my primary development environment is on Ubuntu). Therefore, I always install Ubuntu to a separate partition and mount my home directory in a different partition.

Encrypting data

Nowadays, privacy and security are utmost important and encrypting your data is crucial for your privacy and security. There are many pros and cons of encrypting your data and that’s a different topic. Most essential point is that your data is safe as long as your encryption key (passphrase) is safe and only you have access to your data.

Encrypting your data is also very important when we consider the EU General Data Protection Regulation (GDPR). Companies encrypt data on computers to reduce the probability of a data breach.

In Ubuntu, there are several ways to encrypt your data.

  1. Use eCryptfs (The enterprise cryptographic filesystem for Linux) to encrypt your home directory.
  2. Use fscrypt (a high-level tool for the management of Linux filesystem encryption)
  3. Use LUKS (The Linux Unified Key Setup) to encrypt your disks

Since Ubuntu 18.04 LTS release, Ubuntu installation no longer offers you to encrypt your home folder using eCryptfs during installation. Instead, it offers to encrypt your entire hard disk. However, this option to encrypt the Ubuntu installation is only enabled if you chose to erase your disk and install Ubuntu.

You can still use eCryptfs by installing the ecryptfs-utils package after Ubuntu installation. However, I didn’t want to use ecryptfs-utils package since it was removed in Ubuntu installation after calling it buggy and under-maintained! You can refer the bug comments for more details, but alternatives suggested were to use full disk encryption using LUKS or fscrypt support in file system (for e.g. ext4) to have per-directory encryption.

Even though I had backups, I didn’t want to erase my Ubuntu partitions to enable disk encryption using LUKS. Therefore, I first tried fscrypt tool.

One of the highlighted features in Linux Kernel 5.0 is the native support for Adiantum filesystem encryption. Since Adiantum was designed and created by Google specifically for low-powered mobile devices running Android Go, I expected there will be not much performance overhead if I use fscrypt with Adiantum.

I managed to get fscrypt working with Adiantum encryption after building fscrypt from source. Adiantum support is not yet available from the fscrypt package in official Ubuntu repositories. Setting up fscrypt was straightforward, but I encountered several issues. Sometimes I couldn’t even read my own files after unlocking. All I got was “Operation not permitted” when trying to access my files. Since fscrypt was not enough stable for me, I thought of trying full disk encryption using LUKS.

As I mentioned earlier, you can enable full disk encryption using LUKS if you chose to erase disk and install Ubuntu. But it was not an option for me, since I dual boot Windows.

In Ubuntu wiki, there are very detailed instructions to encrypt your full system manually. It’s a comprehensive guide; nonetheless , I did not follow it due to few reasons. One major reason is that in one of the steps, it asks you to download a script from Dropbox and execute. You know that you should never run untrusted scripts from web. Anyhow, I downloaded it and examined how it works. Even-though, I didn’t execute it, it is a well-written script. It turns out the steps to actually encrypt your partitions are very simple.

I also found it easy to understand the steps by following another guide to encrypt partitions on Ubuntu.

Disk encryption using LUKS

In this section, I will explain how I encrypted my partitions using LUKS and how I installed Ubuntu 19.04 on encrypted partitions.

Please note that I already had the GUID Partition Table (GPT), which made things very easy.

What is LUKS?

Preparing partitions

When installing Ubuntu 19.04, I decided to create 3 partitions.

  1. Boot partition to mount /boot
  2. Root partition to mount /
  3. Data partition to mount /home

Earlier, I had /boot and / mounted to a single partition. Using an encrypted /boot directory will make things more complicated and I decided to keep my /boot directory unencrypted.

Note: Before you also think of encrypting your disks, please make sure to backup your data.

Booting Ubuntu 19.04 live image with “ Try Ubuntu" option.

It’s required to encrypt partitions before installing Ubuntu. Therefore I first booted my PC from Ubuntu 19.04 live image and chose “ Try Ubuntu" option.

Note: I used Rufus (on Windows), which is an excellent tool to create bootable USB drives.

Creating partitions

I deleted my existing root and data partitions using GParted application, which is already installed on Ubuntu 19.04 live image.

I created 3 partition as explained earlier.

For Boot partition I gave 500MiB

I gave 51200MiB (50GiB) for the root partition, where the OS will be installed. You really don’t need to give lots of space to root partition. In my experience, 50GiB is more than enough, especially when you have swap file in your root partition and install all your software on root partition.

I allocated rest of the space to my data partition.

After 3 partitions were created, changes were shown as pending operations in GParted.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *