* [sisyphus] Как установить систему на зашифрованный диск? @ 2018-03-08 20:04 Michael A. Kangin 2018-03-09 13:28 ` Stas 2018-03-09 17:01 ` Vladimir D. Seleznev 0 siblings, 2 replies; 8+ messages in thread From: Michael A. Kangin @ 2018-03-08 20:04 UTC (permalink / raw) To: ALT Linux Sisyphus discussions Здравствуйте. Простите за такой вопрос в 2018 году, но я опять в непонятках - где можно в инсталляторе сказать, чтобы зашифровать при установке весь диск? Ну т.е. про то, что /boot и всякие EFI System/BIOS boot разделы должны остаться нетронутыми - это понятно, но вот /, swap, /home и /var хотелось бы иметь зашифрованными, и чтобы при загрузке вводить только один пароль на всех. Как это вообще сделать, я более-менее представляю несколькими методами, сплошной закат солнца вручную. Про всякие хитрые лив-сборки тоже представляю. А из штатного инсталлятора от штатной alt-workstation, по феншую? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-08 20:04 [sisyphus] Как установить систему на зашифрованный диск? Michael A. Kangin @ 2018-03-09 13:28 ` Stas 2018-03-09 14:11 ` Michael A. Kangin 2018-03-11 16:01 ` Michael Shigorin 2018-03-09 17:01 ` Vladimir D. Seleznev 1 sibling, 2 replies; 8+ messages in thread From: Stas @ 2018-03-09 13:28 UTC (permalink / raw) To: ALT Linux Sisyphus discussions Приветствую! On 09.03.2018 01:04, Michael A. Kangin wrote: > > Простите за такой вопрос в 2018 году, но я опять в непонятках - где > можно в инсталляторе сказать, чтобы зашифровать при установке весь диск? > > Ну т.е. про то, что /boot и всякие EFI System/BIOS boot разделы должны > остаться нетронутыми - это понятно, но вот /, swap, /home и /var > хотелось бы иметь зашифрованными, и чтобы при загрузке вводить только > один пароль на всех. > > Как это вообще сделать, я более-менее представляю несколькими > методами, сплошной закат солнца вручную. Про всякие хитрые лив-сборки > тоже представляю. > > А из штатного инсталлятора от штатной alt-workstation, по феншую? Из коробки - никак. Во-первых, возьмём метод "несколько разделов LUKS" на физическом диске или массиве RAID. Инсталлятор не знает, что для всех ваших томов LUKS вы задали один и тот же пароль, он просто перечисляет все разделы LUKS в /etc/cryptsetup, а при загрузке скрипт смотрит в него и инициализирует каждый том отдельно. Во-вторых, возьмём метод "раздел LUKS делаем виртуальным диском", на котором уже LVM (разделы на loop-дивайсе - задача нетривиальная), и в этом LVM создаём тома. Такая сложная конфигурация не предусмотрена в инсталляторе, к тому же важен порядок инициализации в initrd, чтобы сначала выполнялся ctyptsetup для доступных томов, потом LVM, потом снова cryptsetup для оставшихся томов - в реальности используется намного более простая логика: cryptsetup перед монтированием тома. -- Станислав Дёгтев Служба "Ваш админ" Мои контакты: - jabber: grumbler@grumbler.org - email: stas.grumbler@gmail.com и stas@vashadmin.su - телефоны в Е-бурге +79045430461, +79222112259, +79505571146 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-09 13:28 ` Stas @ 2018-03-09 14:11 ` Michael A. Kangin 2018-03-11 16:01 ` Michael Shigorin 1 sibling, 0 replies; 8+ messages in thread From: Michael A. Kangin @ 2018-03-09 14:11 UTC (permalink / raw) To: sisyphus On 03/09/2018 02:28 PM, Stas wrote: > Из коробки - никак. Увы. > Во-первых, возьмём метод "несколько разделов LUKS" на физическом диске > или массиве RAID. Инсталлятор не знает, что для всех ваших томов LUKS вы > задали один и тот же пароль, он просто перечисляет все разделы LUKS в > /etc/cryptsetup, а при загрузке скрипт смотрит в него и инициализирует > каждый том отдельно. Если имеется несколько "разнесённых в пространстве" разделов LUKS, то (руками) это реализуется очень просто - все разделы шифруются файлом-ключом, а чтобы расшифровать этот самый файл-ключ, спрашивается однократно пароль. Кажется, сейчас у make-initrd-luks есть подобная функциональность (например, можно помедитировать об /usr/share/make-initrd/features/luks/data/lib/initrd/filters/lukskeys), но документации, как использовать, я не нашёл (например, по явно ключевому слову /etc/luks.keys не грепается ни вики, ни списки рассылок). Я пока в такой ситуации выкручиваюсь самописными инициализационными скриптиками. > Во-вторых, возьмём метод "раздел LUKS делаем виртуальным диском", на > котором уже LVM (разделы на loop-дивайсе - задача нетривиальная), и в > этом LVM создаём тома. Такая сложная конфигурация не предусмотрена в > инсталляторе, к тому же важен порядок инициализации в initrd, чтобы > сначала выполнялся ctyptsetup для доступных томов, потом LVM, потом > снова cryptsetup для оставшихся томов - в реальности используется > намного более простая логика: cryptsetup перед монтированием тома. Опять же, очень просто. Из физического раздела делаем LUKS, а на нём делаем физический том (pvcreate), группу томов и так далее. make-initrd-luks осиливает такое искаробки в P8 (не совсем идеально - https://lists.altlinux.org/pipermail/community/2018-March/687172.html) Но всё это при установке - в режиме сплошной ручной работы (не "инсталляция" системы, а "вкорячивание" какое-то). Что-то за последние лет 5 наверное ни разу не получилось воспользоваться штатным инсталлятором. %( ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-09 13:28 ` Stas 2018-03-09 14:11 ` Michael A. Kangin @ 2018-03-11 16:01 ` Michael Shigorin 1 sibling, 0 replies; 8+ messages in thread From: Michael Shigorin @ 2018-03-11 16:01 UTC (permalink / raw) To: sisyphus On Fri, Mar 09, 2018 at 06:28:59PM +0500, Stas wrote: > Во-первых, возьмём метод "несколько разделов LUKS" на > физическом диске или массиве RAID. Инсталлятор не знает, > что для всех ваших томов LUKS вы задали один и тот же пароль Знает, знает -- он же его (один) и ставит. См. alterator-luks. -- ---- WBR, Michael Shigorin / http://altlinux.org ------ http://opennet.ru / http://anna-news.info ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-08 20:04 [sisyphus] Как установить систему на зашифрованный диск? Michael A. Kangin 2018-03-09 13:28 ` Stas @ 2018-03-09 17:01 ` Vladimir D. Seleznev 2018-03-09 20:46 ` Michael A. Kangin 1 sibling, 1 reply; 8+ messages in thread From: Vladimir D. Seleznev @ 2018-03-09 17:01 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Thu, Mar 08, 2018 at 09:04:11PM +0100, Michael A. Kangin wrote: > Здравствуйте. > > Простите за такой вопрос в 2018 году, но я опять в непонятках - где > можно в инсталляторе сказать, чтобы зашифровать при установке весь диск? > > Ну т.е. про то, что /boot и всякие EFI System/BIOS boot разделы должны > остаться нетронутыми - это понятно, но вот /, swap, /home и /var > хотелось бы иметь зашифрованными, и чтобы при загрузке вводить только > один пароль на всех. Можно и /boot шифровать, но это не так удобнее сделать. В инсталляторе можно создать несколько зашифрованных разделов без использования LVM, а потом сделать расшифровку с помощью ключа с помощью механизма crypttab (работает и под systemd, и под sysvinit). Недавно в make-initrd была добавлена возможность через параметры ядра игнорировать расшифровки отдельный зашифрованных массивов [1], поэтому рецепт такой. В случае незашифрованного /boot: 1. С помощью инсталлятора создать таблицу разделов с нужными зашифрованными разделами. 2. В уже установленной загруженной системе сгенерировать ключ расшифровки, и с cryptsetup добавить в новый слот ключей, сам ключ сохранить где-нибудь в rootfs с правами доступа 0000 (например, в /etc/luks/key). 3. Написать правила для crypttab'а (к сожалению, справочная страница сейчас доступна только в пакете systemd, что странно, мне казалось, я её видел раньше), в котором перечислить все зашифрованные разделы с файловыми системами, отличными от rootfs, формат которого: имя_расшифрованного_устройства зашифрованное_устройство путь_к_файлу_ключа опции_расшифровка 4. Добавить в параметры загрузки ядра (прописав в /etc/sysconfig/grub) параметры luks-ignore с имена зашифрованных устройств, отличных от rootfs, перегенерировать grub 5. Установить пакет make-initrd-luks В случае зашифрованного /boot: 1. Зашифровать все файловые системы, в этом случае попросят ввести пароль на загрузчик. 2. В установленной системе сгенерировать ключ расшифровки, добавить его в слоты для расшифровки разделов, положить куда-нибудь (например, /etc/luks/key с правами доступа 0000). 3. В /etc/initrd.mk дописать строчку: PUT_DIRS += /etc/luks 4. Написать правила для crypttab аналогично предыдущему сценарию. 5. Добавить в параметры загрузки ядра luks-ignore'ы аналогично предыдущему сценарию. 6. Добавить в параметры загрузки ядра параметр luks-key=key (если ключ лежит в файле /etc/luks/key). 7. Установить make-initrd-luks. Минусы обоих вариантов: на текущий момент ключ дешифровки лежит в файловой системе в открытом виде и защищён только правами доступа. Если это неприемлемо, то подойдёт только схема LVM на LUKS. Генерировать ключ надо в файл с уже правильными правами доступа, иначе теряется всякий смысл. > Как это вообще сделать, я более-менее представляю несколькими методами, > сплошной закат солнца вручную. Про всякие хитрые лив-сборки тоже > представляю. > > А из штатного инсталлятора от штатной alt-workstation, по феншую? Увы, пока никак. [1] http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=features/luks/README.md;h=6c0b91b0b36acc7f886d64af995ba2ff9bc16f2c;hb=80c527b31e17193b4cf4157e136078246876d6a1 -- С уважением, Владимир Селезнев ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-09 17:01 ` Vladimir D. Seleznev @ 2018-03-09 20:46 ` Michael A. Kangin 2018-03-09 23:32 ` Vladimir D. Seleznev 0 siblings, 1 reply; 8+ messages in thread From: Michael A. Kangin @ 2018-03-09 20:46 UTC (permalink / raw) To: sisyphus Спасибо большое, попробую в следующий раз. On 03/09/2018 06:01 PM, Vladimir D. Seleznev wrote: > Минусы обоих вариантов: на текущий момент ключ дешифровки лежит в > файловой системе в открытом виде и защищён только правами доступа. Если > это неприемлемо, то подойдёт только схема LVM на LUKS. Наверное можно будет допилить features/luks, чтобы умела спрашивать пароль на ключ. Тогда ключ можно будет хранить в (файло|дивайсо)-контейнере LUKS. Я использую сейчас такую схему на паре компьютеров. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-09 20:46 ` Michael A. Kangin @ 2018-03-09 23:32 ` Vladimir D. Seleznev 2018-03-10 19:46 ` Leonid Krivoshein 0 siblings, 1 reply; 8+ messages in thread From: Vladimir D. Seleznev @ 2018-03-09 23:32 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Fri, Mar 09, 2018 at 09:46:10PM +0100, Michael A. Kangin wrote: > Спасибо большое, попробую в следующий раз. > > On 03/09/2018 06:01 PM, Vladimir D. Seleznev wrote: > > > > Минусы обоих вариантов: на текущий момент ключ дешифровки лежит в > > файловой системе в открытом виде и защищён только правами доступа. Если > > это неприемлемо, то подойдёт только схема LVM на LUKS. > > Наверное можно будет допилить features/luks, чтобы умела спрашивать > пароль на ключ. Тогда ключ можно будет хранить в > (файло|дивайсо)-контейнере LUKS. > Я использую сейчас такую схему на паре компьютеров. Были такие попытки, но сходу возникли трудности с gnupg внутри initrd. Тем не менее, я хочу эту возможность, и продолжу ей заниматься, когда будет время. -- С уважением, Владимир Селезнев ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [sisyphus] Как установить систему на зашифрованный диск? 2018-03-09 23:32 ` Vladimir D. Seleznev @ 2018-03-10 19:46 ` Leonid Krivoshein 0 siblings, 0 replies; 8+ messages in thread From: Leonid Krivoshein @ 2018-03-10 19:46 UTC (permalink / raw) To: ALT Linux Sisyphus discussions 10.03.2018 02:32, Vladimir D. Seleznev пишет: > On Fri, Mar 09, 2018 at 09:46:10PM +0100, Michael A. Kangin wrote: >> Спасибо большое, попробую в следующий раз. >> >> On 03/09/2018 06:01 PM, Vladimir D. Seleznev wrote: >> >>> Минусы обоих вариантов: на текущий момент ключ дешифровки лежит в >>> файловой системе в открытом виде и защищён только правами доступа. Если >>> это неприемлемо, то подойдёт только схема LVM на LUKS. >> Наверное можно будет допилить features/luks, чтобы умела спрашивать >> пароль на ключ. Тогда ключ можно будет хранить в >> (файло|дивайсо)-контейнере LUKS. >> Я использую сейчас такую схему на паре компьютеров. > Были такие попытки, но сходу возникли трудности с gnupg внутри initrd. > Тем не менее, я хочу эту возможность, и продолжу ей заниматься, когда > будет время. Не вижу большого смысла в шифровании исходных системных разделов. В initrd их можно монтировать read-only и шифровать только оверлеи. LUKS хорош и плох своими стандартизированными заголовками. То есть не надо доказывать, что раздел является крипто-контейнером. Лечится отделением LUKS-заголовков либо использованием plain-шифрования. Для второго варианта подойдут только собственные скрипты в initrd. Идеальный вариант - грузиться со стика с неизвлекаемым ключом, доступ к которому осуществляется по паролю или пин-коду. Такой схемы можно достичь, не прибегая к шифрованию в процессе инсталляции, ограничившись резервированием места на диске для оверлеев в процессе инсталляции. -- Best regards, Leonid Krivoshein. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-03-11 16:01 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-03-08 20:04 [sisyphus] Как установить систему на зашифрованный диск? Michael A. Kangin 2018-03-09 13:28 ` Stas 2018-03-09 14:11 ` Michael A. Kangin 2018-03-11 16:01 ` Michael Shigorin 2018-03-09 17:01 ` Vladimir D. Seleznev 2018-03-09 20:46 ` Michael A. Kangin 2018-03-09 23:32 ` Vladimir D. Seleznev 2018-03-10 19:46 ` Leonid Krivoshein
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git