ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [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-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

* 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

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