LINUX.ORG.RU

LUKS с автоматическим запуском при открытии

 , ,


0

1

Привет, ЛОР. ПОпробую описать то, что мне нужно. Есть одна тян один ВПС. На нем есть, к примеру, дебиан. На нем будет стоять, например, IKEv2 впн. Надо сделать так, штоб это все было ужасно секурно. Всё это как то должно быть зашифровано LUKS, чтоб при вводе пароля автоматически поднимался этот самый впн.

Я вижу пока следующую большую проблему. Ежели все, кроме /boot зашифровано, то и доступа по ssh я не получу, ибо пароль еще не введен и ничего не грузится. Верно? Как это обойти можно?

Если шифровать только, к примеру, home, то как можно сделать, что при вводе верного пароля автоматически поднимался бы туннель? Ну или на home хранить все конфиги для впн. И только при верном пароле впн бы заводился, подхватив эти конфиги.

Прошу вас не напоминать мне про самозабан по причине умственной отсталости. Сумбурно объяснил, понимаю. Но самому чёт сложновато пока) Может вы поймёте?)

★★★

Последнее исправление: SpaceRanger (всего исправлений: 3)

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

Вводе пароля куда?

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

вводе пароля для зашифрованного раздела. Немного поправил изначальный пост

SpaceRanger ★★★
() автор топика

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

dropbear для удаленного ввода luks пароля.

undef ★★
()

От кого ты шифроваться собрался? Если от хостера то это всё полностью бесполезно, он может оперативную память впс читать в реальном времени.

firkax ★★★★★
()
Ответ на: комментарий от adn

я верно понимаю, что на этапе установки ОС на впску, не получится сразу и зашифровать всё, кроме бута, загрузиться в установленную систему и потом dropbear установить? Верно же? Зашифровался+перезагрузился=потеря доступа.

SpaceRanger ★★★
() автор топика
Последнее исправление: SpaceRanger (всего исправлений: 2)
Ответ на: комментарий от firkax

Хотел это же написать. С таким походом нужен железный сервер. На впс хостера - это просто дарит ложное чувство безопасности, а не безопасность. Но люди продолжат заниматься ерундой.

comma
()
Ответ на: комментарий от comma

К железному серверу в комплект нужны устройства, предотвращающие эксплуатацию физического к нему доступа под предлогом отключившегося на 5 часов электричества.

firkax ★★★★★
()

у тебя в чем проблема? в авторазлочке LUKS или в автостарте сервиса? НИПАНЯТНА!

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

aol ★★★★★
()
Ответ на: комментарий от comma

ну это своеобразные игры в безопасность) 100% защиты, как известно, не бывает. Поэтому такой компромисс был выбран

SpaceRanger ★★★
() автор топика
Ответ на: комментарий от aol

щас застрял на этапе как при установке на впс зашифровать всё, кроме /boot ? Если это делать на уже установленной системе через ссх, то вроде как всё поудаляется и доступ, соответственно, должен пропасть, верно?

SpaceRanger ★★★
() автор топика

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

в mkinicpio добавил следующее

MODULES=(e1000) - это драйвер сетевой карты

HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt netconf dropbear encryptssh filesystems fsck)

mkinitcpio -p linux пересобирается без ошибок

Затем в /boot/grub/grub.cfg добавляю в опции загрузки вот это

ip=192.168.0.144::192.168.0.1:255.255.255.0::ens33:none rd.luks.name=UUID-number=root root=/dev/mapper/root

При загрузке и перед приглашением воода пароля для расшифровки корневого раздела выскакивают ошибки в количестве 6 штук

[FAILED] Failed to start Network Configuration.

соответственно, по сети никакой dropbear не подключается

в журнале вижу следующее

A start job for unit systemd-networkd.service has begun execution.
Aug 07 22:02:40 archlinux systemd[174]: systemd-networkd.service: Failed to determine user credentials: No such process
Aug 07 22:02:40 archlinux systemd[174]: systemd-networkd.service: Failed at step USER spawning /usr/lib/systemd/systemd-networkd: No such process
░░ Subject: Process /usr/lib/systemd/systemd-networkd could not be executed
░░ The process /usr/lib/systemd/systemd-networkd could not be executed and failed.
Aug 07 22:02:40 archlinux systemd[1]: systemd-networkd.service: Main process exited, code=exited, status=217/USER
░░ An ExecStart= process belonging to unit systemd-networkd.service has exited.
Aug 07 22:02:40 archlinux systemd[1]: systemd-networkd.service: Failed with result 'exit-code'.
░░ The unit systemd-networkd.service has entered the 'failed' state with result 'exit-code'.
░░ Subject: A start job for unit systemd-networkd.service has failed
░░ A start job for unit systemd-networkd.service has finished with a failure.

Гуглинг не принес решения. Не может ли это быть от того, что networkd пытается в /usr/ что то искать, а он какбэ недоступен, ибо зашифрован? И вообще может быть, что именнно поэтому сеть до ввода пароля luks не поднимается? Потому как после ввода оного, сеть заводится, как ни в чем не бывало

SpaceRanger ★★★
() автор топика
Последнее исправление: SpaceRanger (всего исправлений: 3)

Принципиальное слабое место схемы в том, что ssh-сервер, принимающий пароль на расшифровку диска и затем поднятие vpn не может находиться в зашифрованном разделе. А значит в него можно вмешаться, что нибудь куда нибудь перенаправить и перехватить твой ключ шифроания. Так что или ssh уже изначально признаём надёжным и скриптуем расшифровку иподнятие vpn на своей стороне, или признаём ненадёжным и дальше проблему уже можно не решать.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Поговаривают, что не бывает 100% защиты. Условно признаем его надежным. Теперь надо ссх туннель запустить как то при зашифрованном /

SpaceRanger ★★★
() автор топика
Ответ на: комментарий от SpaceRanger

Ну, ключ расшифровки ты ведь уже по ssh тунелю будешь передавать. Значит можно слепить сразу нексколько команд: расшифровать, перемонтировать корень, поднять с него vpn.

kirill_rrr ★★★★★
()
Ответ на: комментарий от SpaceRanger

Видимо сеть собираетсмя подниматься уже с расшифрованного корня. Видимо нужно 2 корня, первый поднимет сеть, ssh-сервер и спросит ключ для расшифровки, а второй корень шифрованный, заместит собой первый и с него пойдёт работа. Как конкретно - хз, я не игрался с перемонтированиями на ходу (мог бы что нибудь придумать на старом ините, но вот с системд наверняка не справлюсь).

Да, сеть потом можно переподнять со второго корня. И для безопастности написать команду расшифроваться если не будет правильного подключения в течении скольки то минут.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от SpaceRanger

Опытным путем выяснилось, что сеть не заводится по причине того, что

mkinitcpio -p linux

вываливает ошибки

Running build hooks: [netconf]

Failed to enable auxiliary unit systemd-network-generator.service. Ignoring
Failed to enable auxiliary unit systemd-networkd-wait-online.service. Ignoring

Может кто встречал подобное? Как исправить?

SpaceRanger ★★★
() автор топика

Дженльмены, проблема решена! Теперь система при запуске грузит только минимально необходимое из /boot (ибо весь корень зашифрован) и чинно ждёт подключения по ssh для ввода пароля для разшифровки luks.

Чтобы страждущие, наткнувшись на этот пост, вспоминали меня, утирая слезу благодарности, привожу решение.

Обозначу только узкие места; остальное достаточно подробно описано в арчвики.

1)Для инициализации сетевой карты на этапе раннего юзерспейса, необходимо в /etc/mkinicpio.conf добавить

MODULES=(YOUR_NETWORK_CARD_KERNEL_MODULE)
  1. mkinitcpio-netconf не работает(!) с systemd хуками, поэтому необходимо использовать udev
HOOKS=(base udev autodetect keyboard keymap consolefont modconf block netconf dropbear encryptssh filesystems fsck)

Арчвики предлагает вставить encrypt, но encryptssh и так переопределит его

  1. В mkinitcpio-dropbear 0.0.3-6 какой то баг и при выполнении mkinitcpio -p linux он сыпет ошибками о том, что не испоьзует ключи «dss». На это можно забить, но багрепорт на всякий случай автору отослал за щеку

  2. в настройках ip (в grub.cfg) имя сетевой карты не то, какое у вас показывает ip a, а захардкоженное eth0!

  3. почему то и в /etc/fstab и в grub.cfg UUID зашифрованного раздела автоматически устанавливается с /dev/mapper/root, а должно быть с /dev/sdXY

SpaceRanger ★★★
() автор топика
Последнее исправление: SpaceRanger (всего исправлений: 3)
Ответ на: комментарий от SpaceRanger

Это прекрасно, что чувство безопасности и защищенности за сегодня усилилось, но при чём тут Вьетнам^W Debian?

В mkinitcpio-dropbear 0.0.3-6 какой то баг

Этот?

почему то и в /etc/fstab и в grub.cfg UUID зашифрованного раздела автоматически устанавливается с /dev/mapper/root, а должно быть с /dev/sdXY

Речь о root=UUID=…? Тогда все правильно, /dev/sdX зашифрован.

undef ★★
()
Ответ на: комментарий от comma

На впс хостера - это просто дарит ложное чувство безопасности, а не безопасность. Но люди продолжат заниматься ерундой.

Чисто гипотетически, суд может обязать хостера предоставить доступ к ВПС, и он даст диск, а не «чтение оперативки в реальном времени», которое прям на уровень выше по сложности.

goingUp ★★★★★
()
Ответ на: комментарий от undef

действительно, дебиан тут не к месту, так как арч в очередной раз доказал своё превосходство надо всеми поделками.

Этот?

Ага, он

Речь о root=UUID=…? Тогда все правильно, /dev/sdX зашифрован.

Я наивно предполагал, что раз уж контейнер открыт и примонитрован (пусть даже через маппер), то уж именно UUID /dev/sda должон быть в конфигах. Яскозал!:)

SpaceRanger ★★★
() автор топика
Ответ на: комментарий от goingUp

Не понятно мне в чем сложность. Вот тебе строчки из man от virsh. Сейчас многие виртуализации так умеют. Даже гением не нужно быть.

If --live is specified, libvirt takes the snapshot (checkpoint) while the guest is running. Both disk snapshot and domain memory snapshot are taken. This increases the size of the memory image of the external checkpoint. This is currently supported only for external checkpoints.

Ты даже не поймёшь, что такое хостер провернул и запускает твой сервер где-то ещё уже с выеденным паролем от дисковой в памяти.

comma
()
Ответ на: комментарий от comma

А в аппаратное шифрование памяти виртуалок эти наши линуксы не умеют? Видел что-то такое у amd, но с живой миграцией не дружит, да, поэтому доступностью придется пожертвовать

cobold ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.