Зеркалирование загрузочного раздела

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2009-02-28 4:35:57

Здравствуйте.
Пытаюсь собрать следующую конфигурацию:
FreeBSD загружается с usb-drive на котором находятся ключи шифрования от всего диска (geli), естественно с паролем. (уже сделано)
Проблема же заключается в следующем - после загрузки должна быть возможность извлечь флешку, чтобы сохранить ключи, без потери /boot раздела.
Идея - во время начальной загрузки создать md диск который добавить в зеркало с /boot, затем отключить флешку и потереть ключи на загрузочном разделе.
Не знаю что меня останавливает %)
Просто хочу спросить Ваше мнение на этот счет.
Заработает?
Последний раз редактировалось hishnik 2009-02-28 16:10:33, всего редактировалось 1 раз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение Alex Keda » 2009-02-28 12:49:17

зачем их сохранять после загрузки?
раздел же уже примонтирован
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2009-02-28 16:08:21

А сохранять их надо для возможности подгрузки модулей ядра во время работы ОС.
И проблема как раз в том и состоит, что флешку надо выдернуть и кинуть на карман, чтобы ключи никому не достались...
Ну а /boot останется на md0 например.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение Alex Keda » 2009-02-28 18:37:56

ну, а в чём проблема собственно?
что не получается?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2009-03-01 0:40:03

Хочется еще все это на GPT сделать.
Допустим скрипт поместим в /etc/rc.d/bootmirror.sh
Сможет ли ОС загрузиться, если я обработаю раздел `gmirror label ...`?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение Alex Keda » 2009-03-01 1:00:34

флэшку с ГПТ?
изврат....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2009-03-01 4:04:43

Согласен - Из_врат!
Потому и хочется... ;)
Можна будя написати хав-ту на тему: "АкууИЫВ Total Offline Security" %)

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2009-03-04 20:06:30

Чтож, жаль что Вы меня не поддержали...
А у меня 8-ка, установленная на юсб-флешку грузиться отказывается, не видит da0s1a. Никто не сталкивался? Вроде ядро даже umass0 определяет, но при этом da не видит... мне 8-ка нужна чтобы флешку сделать...

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2011-11-22 13:38:27

Я так и не понял насчёт того, какие команды надо писать, чтобы рэйд забыл флешку, но потом при следующей загрузке разметка gmirror осталась в норме. Покамест вижу лишь одно решение - флешка с защитой от записи %(

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение BirdGovorun » 2011-11-22 15:47:32

Мне кажется слишком мудрёно вы делаете.
Шифрование с паролем, чревато применением терморектального криптоанализа. :-D
Шифрование по ключу, самое то.

У меня шифрование по ключу, ключ на флешке
и скрипт

Код: Выделить всё

%cat mount_geli
#!/bin/sh
/usr/local/etc/rc.d/samba stop
mdconfig -at vnode -f /data/doc
mount -t msdosfs /dev/da0s1 /mnt
geli attach -p -k /mnt/md0.key /dev/md0
mount /dev/md0.eli /usr/samba/doc
/usr/local/etc/rc.d/samba start
umount /mnt
вставил флешку, скрипт отработал, выташил флешку, отдал директору
всё руки не доходят вставить в загрузку системы, нет флешки - нет загрузки системы.

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2011-11-22 16:19:41

Да, но 2 фактора, есть 2 фактора.
У меня вообще планы сделать по отпечатку. Есть даже флешка с хардвёрной аутентификацией по пальцу, одна проблема - на ней максимум 5 пользователей может быть, а найти загрузчик, который будет грузить с разных разделов флешки разные ОС , да ещё и понимающий GPT+ZFS или хотя бы UFS - я пока тоже не смог ;( [хотя поговаривали про grub2]

Кстати, Ваше монтирование я бы сделал по событию вставки флешки (ридера?) (devd.conf). Да и ещё одно: что-то я не обнаружил в скрипте перенос данных на md0, а если они в зеркале, то его придётся разметить...в общем не внял я... %((

Если уж разговор заладился, продолжу: т.к. с загрузчиком пока всё плохо, решил сменить схему. Загрузчик с ключом - на microSD, пароль - в голове. Идея такова: носить microSD в лацкане пиджака например, и в случае опасности - разгрызть и съесть (Для верности можно смазать цанидом %). Как вариант - изготовить криптекс на основе термита...
Отсюда кстати следует не сильно праздный вопрос: Кто нибудь разгрызал microSD? Как ощущения?

Насчёт ключа на флешке - идея порочная, она не гарантирует единственности копии ключа, его можно украсть с флешки, а также подменить ядро на такое же, но со встроенным рут-китом.

В идеале - это должна быть SmartCard, но быстрых и таких что могут использоваться через crypto(4) - не видал.
Кража ключа ничего не даст, если у Вас установлен ещё и пароль.
Коли нет нормальных ключей, приходится извращаться: проверка контрольных сумм файлов на флешке + шифрование с ключом и паролем.
Подобную конфигурацию использую уже лет 5, ещё начиная с bde...
Считаю шифрование необходимостью на всех мобильных устройствах (и для телефонов тоже %).

Сам UseCase должен быть построен так, чтобы минимизировать вероятность утечки...политикой называется кажется.

По сути нужно отключить от gmirror'a флешку, не нарушая gmirror разметки. Сейчас - я дёргаю на горячую, а потом при загрузке он ругается, мол грязный раздел и т.п. хочется чистого решения.
Последний раз редактировалось hishnik 2011-11-22 16:22:16, всего редактировалось 1 раз.

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2011-11-22 16:26:48

З.Ы.Ж
Лучше всего использовать GPT-labels для адресации устройств хранения, тогда всё ОК.

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение BirdGovorun » 2011-11-22 16:37:55

hishnik писал(а): Кстати, Ваше монтирование я бы сделал по событию вставки флешки (ридера?) (devd.conf). Да и ещё одно: что-то я не обнаружил в скрипте перенос данных на md0, а если они в зеркале, то его придётся разметить...в общем не внял я... %((
А зачем данные переносить? Они уже там, зашифрованны. И у меня зеркало.

Код: Выделить всё

FreeBSD 8.2-RELEASE-p2
%gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ad4
                      ad6
%geli status
   Name  Status  Components
md0.eli  ACTIVE  md0
%
Всё сделанно на скорую руку, после масок-шоу на соседних предприятиях.
Кстати, Ваше монтирование я бы сделал по событию вставки флешки (ридера?) (devd.conf)
Собирался делать, но ключи храняться в службе безопасности головного предприятия.
Что использовать, ключ или пароль или ключ+пароль, это наверное зависит от ситуации.
Украсть всё могут и паяльники в свободной продаже :smile:

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2011-11-22 20:17:15

Извините, не понял с первого раза %(.
Зеркало тут ни при чём.
В Вашем случае действительно так удобней, но пароли никто не отменял, тем паче их можно по частям раздать разным людям, и тогда паяльник грозит ИМ %)
У меня подобная схема на удостоверяющем центре. Геля позволяет иметь 2 независимых ключа (и пароля соответственно), поэтому одна флешка - у начальства в сейфе, а одна - в работе. При этом кнопка уничтожения ключа настроена на рабочий.

P.S.: считаю тред актуалным и буду благодарен тому кто придумает как вытащить флешку из зеркала, так чтобы разметка gmirror была в consistent state.


xrensgory
рядовой
Сообщения: 22
Зарегистрирован: 2011-11-18 15:13:06

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение xrensgory » 2011-12-28 14:11:29

А попробовать по detach в devd делать
gmirror remove name prov

Код: Выделить всё

# gmirror list       
Geom name: gm0
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 2435888365
Providers:
1. Name: mirror/gm0
   Mediasize: 250059349504 (232G)
   Sectorsize: 512
   Mode: r5w5e14
Consumers:
1. Name: ad4
   Mediasize: 250059350016 (232G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 1751864585
2. Name: ad6
   Mediasize: 250059350016 (232G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 3619172574

# gmirror remove gm0 ad4        
# gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ad6 (ACTIVE)
а по attach gmirror insert
"Если человек не пьет, и не курит, поневоле задумываешься, уж не сволочь ли он?" (с) Антон Павлович Чехов

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2011-12-28 14:30:56

Вот выдержка из мана, по-поводу remove:
remove Remove the given component(s) from the mirror and clear meta-
data on it.
Мне же необходимо выдернуть из рэйда флешку, не затронув метаданные. Сейчас - я её просто выдёргиваю, но флаг "подключённости" к рэйду остаётся и в статус он потом пишет DIRTY.

По поводу события on-detach - мне не сильно подходит, так как уже на флешку ничего не скинешь.

Повторю ещё раз основную идею:
Загрузка с MicroSD (GELI+KEYs+PASS), затем создание memorydrive, включение md0 в gmirror microSDшки, ожидание окончания процесса зеркалирования, отключение microSD из рэйда, вытаскивание флешки должно вызывать событие удаления ключей с md0.

Пока - просто терплю сообщения о грязном RAID при загрузке %(((

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение manefesto » 2012-01-02 22:18:44

а если процессы начнут кушать свап, а у тебя его нету ?
я такой яростный шо аж пиздеЦ
Изображение

Barmaglot
рядовой
Сообщения: 10
Зарегистрирован: 2012-01-05 20:20:00

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение Barmaglot » 2012-01-05 20:38:43

Зачем /boot на флэшке? На ней нужны только ключи. Больше ничего. /boot можно оставить на жестком диске.

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2012-01-07 3:03:42

Boot не должен быть в свободном доступе. На диске он подвержен атакам, тем паче - модули ядра работают в нулевом кольце защиты процессора. Да и есть флешка с хардвёрной аутентификацией по отпечатку - самый раз чтобы загрузчики с ключами там разместить.
...немного оффтоп...Правда следующую проблему стоит обсудить в отдельном треде: нужен загрузчик, чтобы ставился на флешку (желательно с GPT-разметкой) и мог передавать управление загрузчикам разделов - там много граблей %(. например если делаешь GPT-разметку и делаешь раздел типа freebsd-boot то с какого раздела будет произведена загрузка - со следующего или это где-то можно настроить?

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2012-01-07 3:07:15

manefesto писал(а):а если процессы начнут кушать свап, а у тебя его нету ?
Ну почему же у меня его нету?
Я на свап не скуплюсь, и вообще люблю `mdconfig -t swap` побаловаться в целях ускорения процессов...

Barmaglot
рядовой
Сообщения: 10
Зарегистрирован: 2012-01-05 20:20:00

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение Barmaglot » 2012-01-07 12:09:23

hishnik писал(а):Boot не должен быть в свободном доступе. На диске он подвержен атакам, тем паче - модули ядра работают в нулевом кольце защиты процессора. Да и есть флешка с хардвёрной аутентификацией по отпечатку - самый раз чтобы загрузчики с ключами там разместить.
...немного оффтоп...Правда следующую проблему стоит обсудить в отдельном треде: нужен загрузчик, чтобы ставился на флешку (желательно с GPT-разметкой) и мог передавать управление загрузчикам разделов - там много граблей %(. например если делаешь GPT-разметку и делаешь раздел типа freebsd-boot то с какого раздела будет произведена загрузка - со следующего или это где-то можно настроить?
Какие-то сложности на ровном месте, правда.
Хорошо, пусть будет /boot на флэшке, тогда его просто не надо монтировать на /boot после загрузки. На корне должен быть свой /boot не разделом, с модулями ядра и прочим. Системе решительно все равно где находится /boot/kernel/modules.
Загрузчик у тебя уже есть, называется loader(8). man boot. Еще читай developers-handbook, там процедура загрузки подробнее рассматривается.
man loader - на предмет root fs и настройки откуда и чего нужно грузить.

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2012-01-07 17:26:11

не монтировать boot - хорошая идея. У меня была подобная конфигурация... не устроила тем, что не сильно прозрачна процедура обновления, да и возможностью появления "разноверсицы" модулей. Хотел скрипт набацать, чтобы всё это в фоне, на gmirror зеркалировалось на memorydrive, и по необходимости (после обновления ядра), эти данные синхронились с разделом флешки (поиграться с приоритетами).
Это решение было бы более технологично, на мой вкус.

Barmaglot
рядовой
Сообщения: 10
Зарегистрирован: 2012-01-05 20:20:00

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение Barmaglot » 2012-01-07 23:31:53

Технологично будет не усложнять. Сделать скрипт в один маунт флэшки, rsync и umount - это технологично. Все равно обновление системы/пересборка ядра это 95% операций с /boot и вызвать после этого руками некий afterupdateboot.sh вполне логично, просто и ясно.

Аватара пользователя
hishnik
рядовой
Сообщения: 36
Зарегистрирован: 2009-02-28 4:25:45

Re: Зеркалирование загрузочного раздела

Непрочитанное сообщение hishnik » 2012-01-10 14:31:33

Именно так (в смысле только (dump/restore)) выглядят мои нынешние конфигурации.
Тут разница во времени синхронизации серьёзная. dump/restore - минут 5, gmirror - и минуты не проходит.
А насчёт afterupdateboot.sh - всё так, но тогда ведь нет никакой разницы как он там внутри сделан gmirror или rsync.
Зеркало - быстрее и не позволяет случиться аномалиям в данных. Если уж делать скрипт, хорошо бы свести к минимуму возможность повредить системе.
Оба варианта - рабочие, проверял. Но, как я писал выше, хочется на зеркале сделать, пока не ясно как...