Как зашифровать linux mint при установке

Обновлено: 05.07.2024

Я бегу 13.10 Saucy. Если я не включил шифрование диска во время установки, есть ли способ включить его постфактум?

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

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

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

Следующий вопрос: каковы плюсы и минусы полного диска по сравнению с Just / Home?

Шифрование в /home выполняется с использованием файловой системы пространства пользователя, называемой ecryptfs. Это очень хорошо сделано и тесно связано с системой аутентификации по умолчанию, так что вы будете иметь нулевые недостатки юзабилити: когда вы входите в свою учетную запись (из удаленной оболочки или из экрана входа по умолчанию), ваш пароль используется для развертывания защищенного ключа., который затем используется для шифрования / дешифрования ваших файлов в вашем домашнем каталоге на лету (смонтированная файловая система будет находиться непосредственно в /home/username). При выходе из системы /home / имя пользователя отключается, и в системе остаются видимыми только зашифрованные файлы (обычно в /home/.ecryptfs/username/.Private/). Они выглядят как куча случайных / случайных файлов, так как имена файлов также зашифрованы. Единственная утечка информации: размер файла, временные метки и количество файлов (при полном шифровании диска они также скрыты).

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

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

Вот список возможных настроек, в зависимости от различных требований безопасности:

Если я не включил шифрование диска во время установки, есть ли способ включить его постфактум?

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


Шиф­рование дис­ков в Linux реали­зует­ся с помощью под­систе­мы dm-crypt Crypto API (встро­ено в ядро начиная с вер­сии 2.6). Под­систе­ма dm-crypt работа­ет бла­года­ря модулю ядра, который отоб­ража­ет шиф­рован­ный диск в вир­туаль­ное устрой­ство. На вид оно ничем не отли­чает­ся от обыч­ного блоч­ного устрой­ства хра­нения дан­ных. Для управле­ния клю­чами шиф­рования исполь­зует­ся раз­дел LUKS (Linux Unified Key Setup). Фор­мат LUKS поз­воля­ет исполь­зовать до вось­ми клю­чей шиф­рования для одно­го раз­дела.

Как устроен раздел LUKS

Раз­дел LUKS име­ет сле­дующий фор­мат.


Он начина­ется с заголов­ка phdr , далее за ним сле­дуют сло­ты с клю­чевы­ми дан­ными (KM1, KM2, . KM8). За клю­чевы­ми дан­ными рас­полага­ются дан­ные, шиф­рован­ные мас­тер‑клю­чом.

За­голо­вок phdr хра­нит информа­цию о про­токо­ле и режиме шиф­рования, дли­ну клю­чей, иден­тифика­тор UUID и кон­троль­ную сум­му мас­тер‑клю­ча.

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

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

Для управле­ния шиф­ровани­ем дис­ков исполь­зует­ся ути­лита cryptsetup.

С помощью этой ути­литы воз­можно:

  • соз­давать шиф­рован­ные раз­делы LUKS;
  • от­кры­вать и зак­рывать раз­делы LUKS;
  • уп­равлять сло­тами клю­чей;
  • дам­пить заголо­вок LUKS и мас­тер‑ключ.

Для работы cryptsetup тре­буют­ся пра­ва супер­поль­зовате­ля и пароль шиф­рования.

Шифруем

Пе­рехо­дим к прак­тике! Шиф­ровать мы будем толь­ко рутовый раз­дел. Есть, конеч­но, экзо­тичес­кие кей­сы, ког­да, помимо раз­дела root , шиф­рует­ся еще и раз­дел boot , но такая кон­фигура­ция под­держи­вает­ся не все­ми заг­рузчи­ками и не счи­тает­ся стан­дар­тной и рекомен­дован­ной. Мы же вооб­ще не будем исполь­зовать заг­рузчик, так что оставля­ем boot в покое и шиф­руем все осталь­ное.

Нач­нем собирать нашу сис­тему, заг­рузив­шись с уста­новоч­ного дис­ка.

Для начала раз­метим диск сле­дующим обра­зом: sda1 для / boot , sda2 для / . Схе­му раз­делов выбира­ем GPT.

$ parted / dev/ sda mklabel gpt mkpart primary fat32 1MiB 501MiB
$ parted / dev/ sda set 1 esp on
$ parted / dev/ sda mkpart primary btrfs 501MiB 100%

Да­лее соз­дадим наш LUKS на sda2.

$ cryptsetup luksFormat / dev/ sda2

WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda2:
Verify passphrase:
cryptsetup luksFormat /dev/sda2 18.16s user 1.88s system 80% cpu 24.742 total

Взгля­нем теперь на LUKS.

$ cryptsetup luksDump / dev/ sda2
LUKS header information
Version: 2
Epoch: 3
Metadata area: 16384 [bytes]
Keyslots area: 16744448 [bytes]
UUID: e04b5b87-6bfc-4f73-83b0-36f91d52f141
Label: (no label)
Subsystem: (no subsystem)
Flags: (no flags)

Data segments:
0: crypt
offset: 16777216 [bytes]
length: (whole device)
cipher: aes-xts-plain64
sector: 512 [bytes]

Keyslots:
0: luks2
Key: 512 bits
Priority: normal
Cipher: aes-xts-plain64
Cipher key: 512 bits
PBKDF: argon2i
Time cost: 7
Memory: 483194
Threads: 2
Salt: a8 d7 82 ce 89 c8 0f d6 29 18 83 e5 5d 9d a7 f1
a2 6d 66 81 70 db c4 82 cc fb ae 81 4c 7f ed 0c
AF stripes: 4000
AF hash: sha256
Area offset:32768 [bytes]
Area length:258048 [bytes]
Digest ID: 0
Tokens:
Digests:
0: pbkdf2
Hash: sha256
Iterations: 149967
Salt: 87 ac 6f 61 75 fb 91 14 63 5d ca 5d 1c 25 ef 42
7b af 51 63 34 eb 26 d5 d7 be 7a 78 7b 2a 25 f1
Digest: da e7 fd 26 59 85 5d 5e 34 79 2a fa 20 95 f1 83
13 10 0d 0e a3 58 a6 0e 33 b0 f0 73 e8 0a a1 1e

Вид­но, что мы задей­ство­вали один из вось­ми дос­тупных сло­тов с клю­чами — дос­туп к нему огра­ничен паролем.

Ал­горитм шиф­рования по умол­чанию ( aes-xts-plain64 ) нас устро­ит. Перечень всех под­держи­ваемых алго­рит­мов зависит от ядра (заг­ляни в / proc/ crypto ). Мож­но про­тес­тировать работу с ними.

$ cryptsetup open / dev/ sda2 cryptroot
Enter passphrase for /dev/sda2:

Пос­ле этих манипу­ляций у нас в сис­теме стал дос­тупен новый раз­дел cryptroot .

$ lsblk / dev/ sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 8G 0 disk
├─sda1 8: 1 0 500M 0 part
└─sda2 8: 2 0 7. 5G 0 part
└─cryptroot 253: 0 0 7. 5G 0 crypt

Соз­дадим на раз­делах фай­ловые сис­темы.

Для про­дол­жения уста­нов­ки при­мон­тиру­ем наши раз­делы.

$ mount / dev/ mapper/ cryptroot / mnt -o subvol = @root, ssd, noatime, space_ cache, compress = zstd $ mount / dev/ mapper/ cryptroot / mnt/ home -o subvol = @home, ssd, noatime, space_ cache, compress = zstd

Заг­лядывая одним гла­зом в ви­ки, уста­нав­лива­ем сис­тему обыч­ным обра­зом.

Не забудем вклю­чить хук encrypt при соз­дании initramfs .

HOOKS =( base udev autodetect keyboard keymap modconf block encrypt filesystems )

Фи­наль­ный этап — нас­трой­ка UEFI для заг­рузки нашего ядра. Напоми­наю, что мы обой­дем­ся без GRUB и будем заг­ружать ядро нап­рямую, исполь­зуя фичу EFISTUB.

До­бав­ляем запись в UEFI.

--unicode 'cryptdevice=/ dev/ sda2: cryptroot root=/ dev/ mapper/ cryptroot rootflags=subvol=@root rw initrd=\ initramfs-linux. img' \

Осо­бое вни­мание обра­ти на парамет­ры ядра! Без них сис­тема прос­то не смо­жет най­ти шиф­рован­ный раз­дел.

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

first_reboot

first_reboot

Настраиваем авторазблокировку

Хо­телось бы не вво­дить пароль при заг­рузке каж­дый раз. Для это­го нуж­но нас­тро­ить авто­раз­бло­киров­ку LUKS с помощью чипа TPM.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

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

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

Начиная с версии 12.10 возможность зашифровать весь диск целиком добавлена в варианты установки Ubuntu в стандартном инсталляторе.

Установка

Итак, для установки нам потребуется диск альтернативной установки системы, который можно скачать тут. Ищите образ с 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 и установкой необходимых программ, и сразу перейти к смене пароля.

Работа с live-cd

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

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

Смена пароля

Описание

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Операционные системы семейства Linux предоставляют функцию шифрования жестких дисков через специальные утилиты. Рассмотрим одну из них под названием LUKS. В качестве примера используется Ubuntu Server 18.04.

Предварительная подготовка

Утилиту LUKS используют в качестве стандарта для защиты дисков в Linux-системах. Ее преимущества:

  • Она бесплатна.
  • Совместима с 99% операционных систем Linux/Unix.
  • Позволяет сбросить пароль или кодовую фразу в случае утери либо компрометации.

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

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

Перечень свободных логических дисков

Скриншот №1. Перечень свободных логических дисков.

Выберем один из списка и перейдем к редактированию. В качестве примера будем использовать раздел /dev/sdb.

Запустим программу parted, указав выбранный том:

sudo parted /dev/sdb

Администратору будет доступен функционал утилиты через терминал.

Важно! Чтобы получить подробную информацию об утилите parted, введите ключ help.

Получив доступ к parted, разметим выбранный раздел соответствующим образом. Отредактируем под GPT:

Программа отобразит предупреждение о том, что вся информация будет удалена во время выполнения операции. Вводим «Yes»:

Удаление данных с тома

Скриншот №2. Удаление данных с тома.

После окончания операции создадим новый том как основной:

mkpart primary 1 -1

Его метка будет отображаться как «1». По окончании выходим из программы через команду quit.

Генерация ключа

Создадим ключ шифрования, используя команду DD:

sudo dd if=/dev/urandom of=/root/secret.key bs=1024 count=2

, где /root/secret.key — имя генерируемого ключа. Пользователь указывает его самостоятельно.

Теперь отредактируем права доступа к файлу:

sudo chmod 0400 /root/secret.key

Присвоим ему функцию на чтение «без редактирования».

Шифрование раздела

Следующий этап — шифрование данных. По умолчанию LUKS интегрирована в большинство дистрибутивов. Если утилита недоступна, установим её, используя стандартные средства установки. Для примера с Ubuntu Server:

sudo apt-get install cryptsetup

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

cryptsetup luksFormat /dev/sdb1 /root/secret.key

Стирание диска

Скриншот №3. Стирание диска.

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

cryptsetup luksAddKey /dev/sdb1 /root/secret.key --key-file=/root/secret.key

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

cryptsetup luksOpen /dev/sdb1 secret --key-file=/root/secret.key

По окончании устройство будет доступно по пути /dev/mapper/secret.

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

cryptsetup resize secret

В нашем примере имя тома — secret. Если для опции resize не указываются дополнительные флаги, она занимает весь раздел. Смонтируем точку доступа для файловой структуры ext4 с именем тома secret:

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

cryptsetup -v status secret

Монтирование тома

Раздел зашифрован — смонтируем его для операционной системы. Указываем точку входа для тома secret, а потом задаем права на доступ:

sudo mkdir -p /secret
sudo chmod 755 /secret

Через команду mount подключим раздел к ОС:

mount /dev/mapper/secret /secret

После этого проверим выполнение операции:

Чтобы постоянно не подключить LUKS-раздел к операционной системе, активируем автомонтирование тома.

Важно! Использование автоматического режима монтирования также автоматически расшифровывает том в момент его подключения к ОС.

Определим идентификатор защищенного диска:

ls -l /dev/disk/by-uuid

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

Важно! После знака «=» идет идентификатор, который используется в примере.

Создадим ссылку на сгенерированный ранее ключ secret.key:

sudo echo "secret UUID=$ /root/secret.key luks" >> /etc/crypttab

Последний шаг — добавляем соответствующие строки в файл монтирования разделов fstab:

sudo echo "/dev/mapper/secret /secret auto" >> /etc/fstab

Указав в терминале команду sudo mount –a, зашифрованный раздел автоматически будет подключаться при старте операционной системы.

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