Шифрование в Debian (корневой раздел, boot, swap, home)

Автор CoolAller, 08 декабря 2017, 16:37:59

« назад - далее »

0 Пользователи и 4 гостей просматривают эту тему.

CoolAller

Всем привет! Подскажите как правильно сделать шифрование всех разделов в Debian (корневой раздел, boot, swap, home), так чтобы при загрузке GRUB2 просил пароль для доступа к последующей инициализации ядра и загрузке системы. Если можно поясните, как теперь обстоит дело с init с приходом systemd. Можно ли настроить шифрование на этапе установки Debian? Нужно ли в данном случае делать home и boot отдельными разделами?

Ogis1975

Читайте тут. Только не понимаю, зачем это нужно....

dogsleg

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

В случае с UEFI получается примерно так:

первый раздел: /boot/efi -- 500 Мб, fat32
второй раздел: /boot --  250 Мб, ext2
третий раздел: шифрованный -- остальное место, lvm2 pv

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

Третий раздел уже делится на всё, что вам надо, и шифруется целиком. То есть, шифруется всё кроме /boot и /boot/efi; шифруется даже /swap (это очень важно, так как незашифрованный swap позволяет выдёргивать из памяти чувствительные данные). Пароль для расшифровки запрашивается после загрузки базового образа. Дальше загрузка идёт как обычно.

Cообщение объединено 09 декабря 2017, 11:32:10

Цитата: Ogis1975 от 08 декабря 2017, 20:27:09Только не понимаю, зачем это нужно....

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

ek-nfn

Цитата: dogsleg от 09 декабря 2017, 11:24:45Например, затем, что если злоумышленник завладеет, допустим, вашим выключенным ноутбуком, ему будет очень сложно получить данные, хранящиеся на диске.
Разве недостаточно для этого шифрования лишь домашнего каталога и swap ? Зачем шифровать всю систему? По мне так еще проще иметь шифрованный каталог с важными документами, монтируемый автоматически или вручную. Работу с кэшами организовать с учетом секретности. Системе будет еще легче, так как избавит от шифрования кучи никому ненужного мусора и системного софта.
Debian 12  -> Devuan 5 xfce -> MX Linux 23

CoolAller

#4
Цитата: ek-nfn от 09 декабря 2017, 13:41:03Разве недостаточно для этого шифрования лишь домашнего каталога и swap ?
Нет, недостаточно, так как много информации хранится в том же каталоге etc.

dogsleg

#5
Цитата: ek-nfn от 09 декабря 2017, 13:41:03Зачем шифровать всю систему? По мне так еще проще иметь шифрованный каталог с важными документами, монтируемый автоматически или вручную.

Можно, но в таком случае злоумышленнику будет проще найти тот небольшой кусок данных, который его интересует. Для некоторых методов атаки на зашифрованные данные критичен размер этих данных, если вы зашифруете не только данные (допустим, номер вашей кредитной карты, что займёт, скажем, 100 КБ), но и шум (100 КБ полезной нагрузки среди 250 ГБ шума), разобраться будет намного сложнее.

Главное учитывать, от каких угроз и что вам надо защитить. Конечно, шифровать весь диск не всегда оправдано. Хотя, честно сказать, для пользователя современного компьютера повседневная работа с полностью зашифрованным диском практически не отличается по быстродействию от работы без шифрования. На своём ноутбуке вряд ли кто-то будет запускать что-то настолько критически завязанное на операции ввода/вывода.

ek-nfn

Цитата: dogsleg от 09 декабря 2017, 14:47:42если вы зашифруете не только данные (допустим, номер вашей кредитной карты, что займёт, скажем, 100 КБ), но и шум (100 КБ полезной нагрузки среди 250 ГБ шума), разобраться будет намного сложнее.

Если так критично, то шифровать не каталоги и файлы, а использовать шифрованный контейнер любого приемлемого размера. В этом случае опять же нет нагрузки на систему шифрованием никому не нужных десятков тысяч файлов. А нагрузка при шифровании на систему есть. Особенно это заметно при обработке графики и видео, где и без шифрования забираются почти все ресурсы.
Debian 12  -> Devuan 5 xfce -> MX Linux 23

dogsleg

Вопрос-то был о том, как сделать, а не о то, подходит это или нет.

Ogis1975

Цитата: dogsleg от 09 декабря 2017, 11:24:45ему будет очень сложно получить данные, хранящиеся на диске.
Это совсем несложно (для знающего человека). Поверь.

ek-nfn

#9
Цитата: dogsleg от 09 декабря 2017, 15:15:44Вопрос-то был о том, как сделать, а не о то, подходит это или нет.

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

Debian 12  -> Devuan 5 xfce -> MX Linux 23

CoolAller

#10
Народ, кто-нибудь может внятно объяснить как сделать? Желательно в виде мануала, как сделать через установщик и с уже установленной системой. Во время установки я выбираю опцию использовать весь диск с шифрованием с размещением home на одном разделе. Потом выдаются созданные автоматически разделы, при этом, насколько я понял, ни boot ни swap не зашифрованы. Насколько я знаю, в GRUB2 нужно прописывать опцию для обращения к зашифрованному разделу boot для запроса пароля для доступа к дальнейшей инициализации ядра. Как это сделать и как включить шифрование для swap и boot?
Открыть содержимое (спойлер)
[свернуть]

dr_faust

Берем 2 флешки.
На 1 записываем образ дебиантовский.
На второй создаем раздел в мб 200, форматируем в какой-нибудь ext2/3/4. Сюды мы /boot поставим. Также /boot можно поставить на раздел на диске, однако в любом случае он должен быть не зашифрован. Вы, как я понимаю, труТЪ параноик, поэтому описываю трутЪ способ.
Загружаемся, не забывая воткнуть и вторую флешку.
При разметке выбираем раздел на влешке под /boot.
Диск же целиком криптуем, потом внутри создаем lvm-тома: root, home, swap, var или какие вам там разделы нужны. Монтируем их соответственно. Провкряем правильность и запускаем установку дебиана. Перезагружаемся, не забывая воткнуть флешку с загрузчиком, вводим пароль, заходим. Смотрим все ли работает.
На всякий пожарный делаем бэкап заголовка luks-тома
cryptsetup luksHeaderBackup /dev/sda --header-backup-file <файл бэкапа>
У вас скорее всего так и будет /dev/sda. Шифруем файлик(можно тем же gpg, он во всех дистрах есть) и прячем в надежных местах(желательно таких мест несколько иметь)
Сама же загрузочная флешка легко восстанавливается. ничем не отличается от воссановления груба за тем исключением, что вам сразу надо будет расшифровать luks-том, инициализировать(

vgscan
vgchange -ay

)
и примонтировать lvm-тома, в /etc/fstab указать новый uuid boot-раздела. Загрузочная запись записывается на флешку.
Надеюсь, все популярно расписал.
Devuan 4. Debian 12. LXDE.

CoolAller

#12
dr_faust, а зачем это шаманство с выносом boot на флешку, если его можно зашифровать и оставить на том же носителе, что и вся система? GRUB2 же умеет обращаться к шифрованному разделу boot:
GRUB_ENABLE_CRYPTODISK=y
GRUB_CRYPTODISK_ENABLE=y

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

Кстати кто-нибудь знает, что происходит с блоками SSD при создании шифрованных разделов, когда инсталлятор "стирает" на нем данные? Видит ли он разницу между hdd и ssd или ему фиолетово?

Как в Debian добавить luks-ключ в initramfs? Нашел описание в мануале к archlinux и еще больше запутался. Может кто-нибудь пояснить как это сделать?

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

dr_faust

#13
Цитата: CoolAller от 10 декабря 2017, 00:35:38
dr_faust, а зачем это шаманство с выносом boot на флешку
На таможенных границах определенных государств любят изучать содержимое носителей информации.
Как, я понимаю, при использовании схемы с шифрованием /boot при включении пароль все равно предложит ввести. Гражданин таможенник повторит свою просьбу, а если не соглашишься, то кинут тебя, скуку такую, в иноземный абизянник.
В нашем же случае, перед пересечение границы мы просто форматируем флешку с загрузчиком и удаляем с харда luks-заголовок (с помощью dd, сколько там  бит нулями перезписать точно не помню). После же пересечения мы просто восстанавливем заголовок и загрузочную флешку( для этого ливсд надо, возможно нет)

Цитата: CoolAller от 10 декабря 2017, 00:35:38
, если его можно зашифровать и оставить на том же носителе, что и вся система?
1. Не знал. Спасибо за ссылку. Надо будет попробовать. Однако
2. От гражданина таможенника, как я понял, не поможет
3. Геморройно ручками делать
3.1. Не ну в начале пожно потратить пару часов на базовую установку и настройку, однако тот же initrd пересобирается при обновлении ядра, а в дебианте патчат ядро весьма часто. Что каждый раз ручками править? Да ну нафиг
3.2. Но больше всего в установке дистров ручками мне не нравиться необходимость ручками пакеты ставить, попутно разбираясь что надо, а что не очень. Мне бы перезагрузил - и графика есть, и нет искаропки, и раузер, чтобы возможные проблемы погуглить и т.д. А серьезно допиливать неделю это не по мне. У меня искаропки и то месяц до ума и до своих требований к юзабельности довожу.

Цитата: CoolAller от 10 декабря 2017, 00:35:38
В общем, насколько я понял, средствами инсталлятора Debian нельзя сделать полное шифрование диска с /boot.
ХЗ. Не приходило на ум такое попробовать, однако можете попытаться!

Цитата: CoolAller от 10 декабря 2017, 00:35:38
Придется пробовать делать по этой инструкции, только предвижу, что гемороя там будет...
Открою вам страшную тайну...
Открыть содержимое (спойлер)

Страшную-страшную. Т.ч. сядьте поудобне, чтобы о косяк не удариться
Открыть содержимое (спойлер)

Вы можете помочь появлению сей функции в дебиане. Допилите инсталлятор и все. Мы вам все спасибо скажем!
И статейку по свои приключения написать можете. Мы ее также с удовольствием почитаем и, думаю, на дебиан вики с удовольствием разместят.
Дерзайте ;)
[свернуть]
[свернуть]
[/spoiler]

Cообщение объединено 10 декабря 2017, 15:58:01

Я с загрузкой и ядром на уровне ввести такаю-то команду в консольке, поэтому за дурные вопросы не пинайте, а лучше проветите.
Я так понимаю при полном шифровании собственно из груба остается только mbr размером 512 байт(или 1 кбайт, не помню точно). И именно код, записанный туды, будет оуществлять расшифровку. Так?
Devuan 4. Debian 12. LXDE.

CoolAller

dr_faust, причем тут initrd? В Debian же давно используют initramfs. После обновления ядра происходит и обновление initramfs и luks-ключи же от этого никуда не деваются, если я не прав, то поправьте.

По поводу всего остального, у меня проблема с наличием свободного времени, поэтому и задал вопрос на форуме.