Как зашифровать linux mint при установке
Я бегу 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
Настраиваем авторазблокировку
Хотелось бы не вводить пароль при загрузке каждый раз. Для этого нужно настроить авторазблокировку LUKS с помощью чипа TPM.
Продолжение доступно только участникам
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Данная статья рассказывает, как создать надёжно зашифрованное хранилище данных на жестком диске компьютера и при этом не сломать спящий и ждущий режимы. Особенно актуально это для владельцев ноутбуков, т. к. в отличие от стационарных компьютеров шанс кражи/утери ноутбука выше и возникает обоснованное желание хранить информацию в зашифрованном виде. Однако, предлагаемая по-умолчанию опция шифрования домашней папки при помощи ecryptfs во-первых не шифрует корневой раздел системы 1) , а во-вторых ecryptfs шифрует раздел swap с применением случайно сгенерированного ключа, таким образом, перестает работать такая нужная в ноутбуках опция как спящий режим 2) 3) .
Предлагается же создать один большой зашифрованный раздел размером с весь диск компьютера 4) , поверх которого развернуть виртуальную группу LVM, в которой создать обычные (не шифрованные с точки зрения ОС) разделы /, /home и swap. При этом, пользователю придётся вводить пароль при каждом включении компьютера (даже при выходе из спящего режима), однако, за счёт смещения шифрования на более низкий уровень, ОС «не заметит» этого и все функции будут работать.
Начиная с версии 12.10 возможность зашифровать весь диск целиком добавлена в варианты установки Ubuntu в стандартном инсталляторе.Установка
Итак, для установки нам потребуется диск альтернативной установки системы, который можно скачать тут. Ищите образ с alternate в названии.
Подразумевается, что вы выполняете новую установку системы, если это не так — предварительно сохраните все свои данные и настройки, т. к. описанный ниже процесс подразумевает потерю всех данных на жёстком диске компьютера.Загрузите систему с alternate — диска, выберите язык и приступите к установке:
Выберите ручной режим разметки диска:
Если у вас новый диск или, если вы хотите очистить на нем таблицу разделов, выберите строку с названием диска:
и создайте на нем новую таблицу разделов:
После этого, создайте на диске раздел /boot, выбрав указателем свободное место на диске:
Укажите небольшой объем, от 300 МБ до 1ГБ, т.к. для /boot этого будет вполне достаточно:
В списке «использовать как» укажите /boot, не забудьте сделать раздел загрузочным:
Далее, не размечая оставшееся место, переходим в пункт «Настроить шифрование для томов»:
Соглашаемся записать изменения:
Выбираем «Create encrypted volumes»:
Далее выбираем (при помощи кнопки Space ) свободное место на диске и жмём «Продолжить»:
Если у вас нет паранойи, можете просто нажать «Настройка раздела закончена», если есть - установите параметр «Стереть данные» в «Да»:
Снова соглашаемся на запись изменений на диск:
Далее выбираем «Finish»:
Далее установщик попросит вас ввести парольную фразу, которой он «закроет» диск:
После этого подтвердите пароль:
Если вы используете слишком простой пароль 5) , установщик попросит подтверждения:
После создания шифрованного тома, нужно настроить LVM:
Снова соглашаемся на запись изменений:
Создаем группу томов:
И указываем в качестве устройств для группы только что созданный шифрованный диск:
После этого создаем логические тома:
Пример для 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, зашифрованный раздел автоматически будет подключаться при старте операционной системы.
Читайте также: