Частный случай установки Ubuntu/Debian с полнодисковым шифрованием
Требуется решить конкретную задачу. Однако на этом сайте очень много инфы и
1. Модель угрозы. Домашний комп может попасть в чужие руки. В таком случае, на дисках должно быть только бессигнатурное шифрование, чтобы противник не мог ни напрямую получить с дисков какую-либо информацию, ни доказать, что она там вообще есть. Все остальные угрозы опускаются.
2. Легенда. Затер диски рандомом, т.к. они мне не нужны и хочу отнести их в базар. Пользуюсь только live-CD.
3. Необходимое условие. Директории / и /home должны быть на разных физических дисках.
4. Грубый набросок решения.
- Бессигнатурно шифруем два физических диска – один для /, второй для /home.
- Поверх бессигнатурного шифрования создаем слой LUKS на обоих дисках.
- Boot выносим на флешку так, чтобы ее можно было после старта ОС вынуть.
Прошу любых замечаний/советов/мыслей по поводу бредовости и сложности реализации такой задачи в связи с полнодисковым шифрованием двух дисков и выносом boot на флешку. В первую очередь, интересует техническая сторона вопроса. Заранее благодарю.
Ссылки
[link1] http://www.pgpru.com/comment82154
[link2] https://toster.ru/q/4551
[link3] https://www.debian.org/releases/stable/amd64/release-notes/ch-whats-new.en.html
[link4] https://www.debian.org/doc/manuals/debian-faq/ch-choosing.en.html
[link5] https://www.debian.org/releases/
[link6] http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd
[link7] https://unix.stackexchange.com/questions/109464/how-can-i-fix-install-reinstall-grub
[link8] https://packages.debian.org/stable/cryptsetup
[link9] https://packages.debian.org/ru/wheezy-backports/cryptsetup
Может наоборот? Сначала LUKS, а поверх него слой бессигнатурки, чтобы заодно не мучаться со всякими оффсетами.
Попробовать можно примерно так. Поставить минимальную систему на флэшку штатным образом с обычным LUKS-сигнатурным шифрованием. Затем бессигнатурно зашифровать винчестеры. Внутри создать LUKS-разделы. Перенести таром файлы с флэшки, поправить UID'ы ФС, fstab, cryptab, пересобрать ramdisk. Вынести /boot на рабочую флэшку. Флэшку с промежуточной системой временно сохранить, затем стереть.
Возникнет такая проблема: рамдиск штатно не поддерживает бессигнатурки, а тем более выцепляние из под неё LUKS-разделов. Можно конечно поправить там скрипт, но это будет указывать, что используется бессигнатурка. Более рационально будет оставить скрипты initrd без изменений, но научиться там выходить в консоль с урезаным башем и вручную набирать команду для cryptsetup.
Именно так и имелось ввиду. Я неправильно выразился.
В смысле зашифровать ее или просто убедиться, что там есть утилита?
А без него, в данном случае, не получится?
Вангую, что это будет сложнее, чем установка сразу на бессигнатурный раздел.
Взаимоисключающие параграфы. Так откуда загрузка идёт, с флэшки или с LiveCD? Если хочется работать с реального кем-то сделанного стандартного LiveCD, можно пойти вообще другим путём: перенести его как-то на сам диск, сделать записываемым, а потом туда ставить софт. Впрочем, особого смысла я в этих извратах не вижу, проще свою систему установить сразу как надо.
P.S. Есть коммент[link1] и дальнейшее обсуждение в том топике. Можно было бы спрашивать там же, а не плодить топики на одну и ту же тему.
Вот и пользуйтесь. К чему весь огород? Зачем на домашнем компе вообще диски? Долой их. Внешние очень даже неплохо подсоединяются, как и шифруются очень замечательно и бессигнатурно.
Господа, если будете делать, очень прошу – можно хотя бы поэтапность действий. Или ссылок, чтобы не тупо команды копипастить а понимать назначение того или иного действия. Спасибо.
Ну вот, к примеру:
У меня уже LUKS, как поверх него слой бессигнатурки сделать? OS – Mint.
Никак. Это надо было делать сразу.
Я так понял – это все в LiveCD делать, да? В штатном инсталляторе нет возможности выйти в консоль.
Или это только в Debian\Ubuntu? В производных от них дистрах нет выхода в консоль и расширенной версии инсталлятора.
В Debian она есть.
Офтоп: Правильно ли я понимаю, что перейдя на Debian – у меня не изменится ровным счетом ничего. То есть – все инструкции в случае косяка – равнозначны с Ubuntu, проблемы решаются так же, так же поставлю себе привычный Cinnamon и прочие офисы, громоптицы, виртуалбоксы и тд? Работа в консоли будет та же самая, только вместо apt-get будет aptitude и вместо sudo\gksudo – будет su. Все верно? Разница лишь в несовместимости пакетов?
Критично наличие манов на русском. Я его проще воспринимаю. А то, куда ни глянь – новичкам Gentoo советуют[link2], зная Миллера – в лучшем случае забанит, в худшем заставит ему для РН проект НПЗ рисовать, из за приставаний с Гентой))
[K.O. mode]
Вместо apt-get будет apt-get.
Вместо aptitude будет aptitude.
Вместо sudo будет sudo.
Вместо gksudo будет gksudo.
Вместо su будет su.
[/K.O. mode]
Каких-то сомнительных плюшек Убунты не будет и пакеты будут более старые.
Спасибо, unknown. Попробую на виртуалке для начала. А то смутно разницу вижу пока. Ну то есть не понимаю – что на что меняю.. Если только ради cryptsetup plain mode – то в консоль и инсталлятор Ubuntu умеет.
Тут терминологическая путаница вышла. Самый нижний уровень — бессигнатурное шифрование. Выше него идёт LUKS. Выше LUKS'а — ФС. Т.е. правильнее сказать, что LUKS накатывается поверх бессигнатурки. Делать наоборот не имело бы никакого смысла.
В нормальных LiveCD есть поддержка cryptsetup'а. Впрочем, дебиановский штатный что-то там важное не умеет (кажется, LVM). Инсталляционные диски надо брать не стандартные, а специальные, так назывемые «netinstall». Такие диски есть и для Debian'а и для Ubuntu. В них, если всё делать правильно, будет возможность выйти в шелл и проделать нужные манипуляции, если это так надо. Читай обсуждение[link1], там всё это в деталях освещалось.
В Debian testing (jessie) не такие уж и старые...
Казалось, что моя тема – особый случай, не хотелось, при случае, засорять чужую ветку. Сорри.
Вы задаёте вопросы, большая часть которых будут теми же, что обсуждались там. Прочитайте тот топик внимательно, там много информации о подводных камнях, с которыми вы так или иначе столкнётесь.
На что влияет использование stable версии с проверенными пакетами? Быстродействие плохое, коли старые? Старые – это как б/у?
Плюс к безопасности и минус к фичам. Иногда фичи очень нужны. Иногда ещё старый софт не поддерживает железо.
Блондинко-стайл?
Ирония-стайл.
Debian 8.0 Jessie has been released
Вот это новость! Неплохо.
Как обновиться c Debian-testing (jessie) до нового стейбла и продолжить следовать только стейблу? apt-get update, upgrade и dist-upgrade будет достаточно?
Последнее звучит более обнадёживающе, чем первое.
На debian.org есть инструкция на русском как обновляться.
Не нашёл. Я говорю не про обновление с wheezy до нового стейбла, а с тестинга до стейбла, тестинг которого и стоял. Вышеприведённые цитаты как раз о нужном, но звучит противоречиво. Про sid я понял, что при выходе релиза система не замораживается. Про jessie/testing напрямую про заморозку не сказано, но мне кажется, она должна быть.
По идее должно быть достаточно исправить везде в /etc/apt/* testing на stable. А если там было jessie, то вообще ничего не надо делать. А затем да, apt-get update, upgrade и dist-upgrade. Хотя, не уверен, что последний обязателен в данном случае.
Я в терминологии путаюсь. Проще так: есть sid (жутко нестабильный, он же unstable), jessie (просто нестабильный, он же testing) и stable (есть имена релизов).Вот я лох[link5]-то, только сейчас понял, что jessie — это не синоним для testing подобно sid'у, как я думал, а имя конкретного релиза 8.0. :) Да, было везде всегда написано jessie, при инсталле так прописалось автоматически, когда jessie был ещё testing'ом.Хелп !
Задам вопрос здесь, раз тут о полнодисковом шифровании.
Обновил cryptsetup с 1.4 до 1.6. Перестала грузится система (debian). Диск зашифрован полностью.
Как исправить?
Щадящего решения не нашел. Чувствую, что проблема для знающих не проблема.
Открыл раздел в другой системе без вопросов. Можно установить новую систему и перенести содержимое раздела, но это в крайнем случае и правда нет опыта переноса с зашифрованного раздела.
Нужно же будет править fstab и crypttab и врядли этим обойдется.
Подключить разделы из другой системы, выполнить chroot и откатить версию cryptsetup.
Спасибо. С виду просто. А как в гугле правильно вопрос задать? Откатить cryptsetup в системе которая не запущена – для меня сложновато. Читал что то на эту тему. Направление копания подскажите. Как правильно эту операцию обозвать?
В сущности, Вам нужно сделать следующее:
Если помимо корневого раздела в зашифрованной системе есть другие (например, /var или /usr находятся на самостоятельных разделах), Вам придётся повторить пункты 3-4, смонтировав их внутрь корневого (например, в случае /usr — в /mnt/crypt/usr).
Затем выполните следующее:
С этого момента Вы залогинены в подключенную зашифрованную систему. Можете сделать даунгрейд cryptsetup и выйти (Ctrl+D), после чего выполните размонтирование в обратном порядке:
Советуют для полного чрута делать ещё проброс /dev/pts и /sys [1][link6], [2][link7].
Удивляюсь, что такого могло произойти в самом cryptsetup, что система перестала грузиться, там же обратная совместимость довольно сильная. Спрашивающий уверен, что дело именно в версии cryptsetup, а не в чём-то ещё? Как он это определил? Система может не грузиться по множеству причин, и, честно говоря, обновление cryptsetup явно не ТОП типичных случаев.
Здесь произошел затык.
$ umount: /dev: target is busy
use the device is found by lsof(8) or fuser(1).)
Сделал:
$ sudo lsof | grep $MNT/dev
lsof: WARNING: can't stat() fuse.vmware-vmblock file system /run/vmblock-fuse
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
systemd 1 root 0u CHR 1,3 0t0 1028 /dev/null
...
...
Получил бесконечный список процессов :((
Как отмонтировать ума не приложу. Тупо сбрасывать страшно (
Могло произойти неправильное обновление. процесс мог быть не завершен. Что то некорректно произошло.
А в чем еще может быть проблема? Система до обновления грузилась. Ничего больше не устанавливалось и не менялось.
Зашифрованный раздел монтируется и открывается в другой системе.
Ничего страшного произойти не должно. Можно просто ребутнуться, выполнить команду reboot или shutdown.
Объяснение гениальное. С чего вы взяли, что обновился только cryptsetup? И правда ли это? Для вас система — чёрный ящик, а информацию, которую вы озвучиваете, более-менее достоверно может выяснить только специалист (причину проблемы).
Разве я спорю с вами? Вычитал здесь что версия 1.6 поддерживает работу с контейнерами TC и побыстрому обновил, но вот забыл что у меня полнодисковое шифрование. Выключил комп в конце рабочего дня. Тут же вспомнил и решил загрузится. Все. Завис.
Не трогай пока система работает? Да. Но уже дело сделано. Увы.
Не знаю, какие изменения в системе повлекло за собой обновление cryptsetup. Если вы это делали в командной строке, там всё это пишется.
Какой тип Debian? Stable? Unstable? Testing?
Сомневаюсь, что 1.6 не имеет обратной совместимости с 1.4. Может быть, там просто были изменены дефолты какие-то. Я бы для начала попытался подключить шифрованный диск вручную из загрузчика (initramfs-шелл), чтобы понять, что именно не работает, но опять же, как всегда, всё это упирается в знание и понимание, без этого проблемы такого сорта крайне трудно фиксить.
Вам удалось сдаунгрейдить версию cryptsetup? Теперь всё заработало?
Перезагружался.
В репозитории 1.4. Скачал с debian.org пакет *.deb 1.6 и установил через установщик пакетов (не через dpkg -i).
Система wheezy с последними штатными обновлениями.
Начало загрузки:
— type:unknown option
мерцающий курсор
Система не запустилась.
Сейчас попробую посмотреть применился ли даунгрейдинг.
# cryptsetup --version
cryptsetup 1.4.3
Да версия изменилась. Даунгрейд делал через удаление 1.6 и установки *.deb пакета 1.4.
Правильно? Ибо, synaptic не пашет, как и apt.
Почему же не грузится ((
Это очень сложно?
Я доходил до initramfs, но дальше не хватает знаний.
Может в таком случае проще установить систему с ноля и перебросить туда систему с зашифрованного диска?
Попробовал переустановить cryptsetup еще раз. Получил такую строку:
Обрабатываются триггеры для initramfs-tools …
/boot/initrd.img-3.2.0-4-686-pae does not exist. Cannot update.
Чую не нормально.
Но не полная. Когда в Генте обновлялся с 1.2.x (или 1.1.x?) до 1.6.x с кастомным initrd, тоже получил незагружабельную систему. Не помню точно, в чём оказался затык, но что-то пришлось править в стартовом скрипте.
Вообщем в этой ситуации ничего умного не было придумано.
В другой системе был открыт зашифрованный раздел. Система скопирована. На носитель была накатана новая установка идентичная прошлой. Системный раздел был опять таки открыт в другой ОС и затерт с последующим копированием на него ранее сохраненную систему. Fstab и crypttab взяты с новой установки. Все запустилось и работает.
Cryptsetup оказался таки сданугрединым. Вывод – проблема была видимо с initrd.
Если это не штатное обновление, предусмотренное системой, то не представляю, что вы могли сделать, чтобы установить пакет. Такие операции в Debian stable не предусмотрены. Насильственная установка пакета рушит зависимости/линковку с библиотеками, в итоге получится не просто новый cryptsetup, а нерабочий. Т.е. у вас дело, скорей всего, не в том, что 1.6 несовместим с 1.4, а в том, что 1.6 не был установлен нужным образом.
Узнать зависимости можно тут[link8] (для jessie). Каждый из пакетов, от которых зависит cryptsetup, тоже зависит от чего-то. Цепочка зависимостей должна раскручиваться полностью, и все, требующие обновления пакеты, обновлены. Однако, это приведёт к тому, что будут обновлены пакеты, от которых зависят какие-то посторонние третьи, и тогда те третьи тоже придётся обновить. В итоге вам придётся обновлять половину системы, если не вообще всю, с риском всё угробить.
Если вам так позарез нужен 1.6, нужно было читать инструкции, а потом целиком обновлять wheezy до jessie (или до squeeze, а потом до jessie).
Вот 1.4 – https://packages.debian.org/wheezy/cryptsetup
Я взял отсюда (бэкпортов)1.6 – https://packages.debian.org/ru.....backports/cryptsetup[link9]
Установился, надо сказать, ни чивхнув ни кашлянув.
Вот это то и была моя самая первая версия. А так как в системе полнодисковое шифрование, то это связано с initrd.
Вот что меня и смутило: "/boot/initrd.img-3.2.0-4-686-pae does not exist. Cannot update"
После операции по внешнему даунгрейдингу cryptsetup, система обрела прежнюю работоспособность (не в прямом смысле, но через копирование). Из чего можно сделать вывод, что изменения не были уж такими глубокими.
Да вот в том то и дело, что не позарез. Так добавить функционалу). В системе и так есть TC. А мне вот понадобилось и такое..
Правильно говорят: работает не трожь!
Первый раз слышу про бэкпорты, поэтому не буду комментировать их стабильность/надёжность.
Похоже, что он не обновил initramfs (initrd) причитающимся образом. В него входит ядро Linux, а также тулзы по подключению всего нужного (в том числе, cryptsetup).
Там было «не сломано — не чини». Во всяком случае при играх со всей такой нестандартщиной хорошо бы делать бэкапы образа системы, чтобы в случае проблем не чесать долго репу, что там могло отвалиться, а легко откатить систему обратно.