Зеркалирование загрузочного раздела
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Зеркалирование загрузочного раздела
Здравствуйте.
Пытаюсь собрать следующую конфигурацию:
FreeBSD загружается с usb-drive на котором находятся ключи шифрования от всего диска (geli), естественно с паролем. (уже сделано)
Проблема же заключается в следующем - после загрузки должна быть возможность извлечь флешку, чтобы сохранить ключи, без потери /boot раздела.
Идея - во время начальной загрузки создать md диск который добавить в зеркало с /boot, затем отключить флешку и потереть ключи на загрузочном разделе.
Не знаю что меня останавливает %)
Просто хочу спросить Ваше мнение на этот счет.
Заработает?
Пытаюсь собрать следующую конфигурацию:
FreeBSD загружается с usb-drive на котором находятся ключи шифрования от всего диска (geli), естественно с паролем. (уже сделано)
Проблема же заключается в следующем - после загрузки должна быть возможность извлечь флешку, чтобы сохранить ключи, без потери /boot раздела.
Идея - во время начальной загрузки создать md диск который добавить в зеркало с /boot, затем отключить флешку и потереть ключи на загрузочном разделе.
Не знаю что меня останавливает %)
Просто хочу спросить Ваше мнение на этот счет.
Заработает?
Последний раз редактировалось hishnik 2009-02-28 16:10:33, всего редактировалось 1 раз.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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: Зеркалирование загрузочного раздела
зачем их сохранять после загрузки?
раздел же уже примонтирован
раздел же уже примонтирован
Убей их всех! Бог потом рассортирует...
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
А сохранять их надо для возможности подгрузки модулей ядра во время работы ОС.
И проблема как раз в том и состоит, что флешку надо выдернуть и кинуть на карман, чтобы ключи никому не достались...
Ну а /boot останется на md0 например.
И проблема как раз в том и состоит, что флешку надо выдернуть и кинуть на карман, чтобы ключи никому не достались...
Ну а /boot останется на md0 например.
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Зеркалирование загрузочного раздела
ну, а в чём проблема собственно?
что не получается?
что не получается?
Убей их всех! Бог потом рассортирует...
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Хочется еще все это на GPT сделать.
Допустим скрипт поместим в /etc/rc.d/bootmirror.sh
Сможет ли ОС загрузиться, если я обработаю раздел `gmirror label ...`?
Допустим скрипт поместим в /etc/rc.d/bootmirror.sh
Сможет ли ОС загрузиться, если я обработаю раздел `gmirror label ...`?
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Зеркалирование загрузочного раздела
флэшку с ГПТ?
изврат....
изврат....
Убей их всех! Бог потом рассортирует...
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Согласен - Из_врат!
Потому и хочется...
Можна будя написати хав-ту на тему: "АкууИЫВ Total Offline Security" %)
Потому и хочется...

Можна будя написати хав-ту на тему: "АкууИЫВ Total Offline Security" %)
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Чтож, жаль что Вы меня не поддержали...
А у меня 8-ка, установленная на юсб-флешку грузиться отказывается, не видит da0s1a. Никто не сталкивался? Вроде ядро даже umass0 определяет, но при этом da не видит... мне 8-ка нужна чтобы флешку сделать...
А у меня 8-ка, установленная на юсб-флешку грузиться отказывается, не видит da0s1a. Никто не сталкивался? Вроде ядро даже umass0 определяет, но при этом da не видит... мне 8-ка нужна чтобы флешку сделать...
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Я так и не понял насчёт того, какие команды надо писать, чтобы рэйд забыл флешку, но потом при следующей загрузке разметка gmirror осталась в норме. Покамест вижу лишь одно решение - флешка с защитой от записи %(
- BirdGovorun
- лейтенант
- Сообщения: 878
- Зарегистрирован: 2009-10-20 20:27:13
- Откуда: Харьков.
Re: Зеркалирование загрузочного раздела
Мне кажется слишком мудрёно вы делаете.
Шифрование с паролем, чревато применением терморектального криптоанализа.
Шифрование по ключу, самое то.
У меня шифрование по ключу, ключ на флешке
и скрипт
вставил флешку, скрипт отработал, выташил флешку, отдал директору
всё руки не доходят вставить в загрузку системы, нет флешки - нет загрузки системы.
Шифрование с паролем, чревато применением терморектального криптоанализа.

Шифрование по ключу, самое то.
У меня шифрование по ключу, ключ на флешке
и скрипт
Код: Выделить всё
%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: Зеркалирование загрузочного раздела
Да, но 2 фактора, есть 2 фактора.
У меня вообще планы сделать по отпечатку. Есть даже флешка с хардвёрной аутентификацией по пальцу, одна проблема - на ней максимум 5 пользователей может быть, а найти загрузчик, который будет грузить с разных разделов флешки разные ОС , да ещё и понимающий GPT+ZFS или хотя бы UFS - я пока тоже не смог ;( [хотя поговаривали про grub2]
Кстати, Ваше монтирование я бы сделал по событию вставки флешки (ридера?) (devd.conf). Да и ещё одно: что-то я не обнаружил в скрипте перенос данных на md0, а если они в зеркале, то его придётся разметить...в общем не внял я... %((
Если уж разговор заладился, продолжу: т.к. с загрузчиком пока всё плохо, решил сменить схему. Загрузчик с ключом - на microSD, пароль - в голове. Идея такова: носить microSD в лацкане пиджака например, и в случае опасности - разгрызть и съесть (Для верности можно смазать цанидом %). Как вариант - изготовить криптекс на основе термита...
Отсюда кстати следует не сильно праздный вопрос: Кто нибудь разгрызал microSD? Как ощущения?
Насчёт ключа на флешке - идея порочная, она не гарантирует единственности копии ключа, его можно украсть с флешки, а также подменить ядро на такое же, но со встроенным рут-китом.
В идеале - это должна быть SmartCard, но быстрых и таких что могут использоваться через crypto(4) - не видал.
Кража ключа ничего не даст, если у Вас установлен ещё и пароль.
Коли нет нормальных ключей, приходится извращаться: проверка контрольных сумм файлов на флешке + шифрование с ключом и паролем.
Подобную конфигурацию использую уже лет 5, ещё начиная с bde...
Считаю шифрование необходимостью на всех мобильных устройствах (и для телефонов тоже %).
Сам UseCase должен быть построен так, чтобы минимизировать вероятность утечки...политикой называется кажется.
По сути нужно отключить от gmirror'a флешку, не нарушая gmirror разметки. Сейчас - я дёргаю на горячую, а потом при загрузке он ругается, мол грязный раздел и т.п. хочется чистого решения.
У меня вообще планы сделать по отпечатку. Есть даже флешка с хардвёрной аутентификацией по пальцу, одна проблема - на ней максимум 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: Зеркалирование загрузочного раздела
З.Ы.Ж
Лучше всего использовать GPT-labels для адресации устройств хранения, тогда всё ОК.
Лучше всего использовать GPT-labels для адресации устройств хранения, тогда всё ОК.
- BirdGovorun
- лейтенант
- Сообщения: 878
- Зарегистрирован: 2009-10-20 20:27:13
- Откуда: Харьков.
Re: Зеркалирование загрузочного раздела
А зачем данные переносить? Они уже там, зашифрованны. И у меня зеркало.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)
Что использовать, ключ или пароль или ключ+пароль, это наверное зависит от ситуации.
Украсть всё могут и паяльники в свободной продаже

- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Извините, не понял с первого раза %(.
Зеркало тут ни при чём.
В Вашем случае действительно так удобней, но пароли никто не отменял, тем паче их можно по частям раздать разным людям, и тогда паяльник грозит ИМ %)
У меня подобная схема на удостоверяющем центре. Геля позволяет иметь 2 независимых ключа (и пароля соответственно), поэтому одна флешка - у начальства в сейфе, а одна - в работе. При этом кнопка уничтожения ключа настроена на рабочий.
P.S.: считаю тред актуалным и буду благодарен тому кто придумает как вытащить флешку из зеркала, так чтобы разметка gmirror была в consistent state.
Зеркало тут ни при чём.
В Вашем случае действительно так удобней, но пароли никто не отменял, тем паче их можно по частям раздать разным людям, и тогда паяльник грозит ИМ %)
У меня подобная схема на удостоверяющем центре. Геля позволяет иметь 2 независимых ключа (и пароля соответственно), поэтому одна флешка - у начальства в сейфе, а одна - в работе. При этом кнопка уничтожения ключа настроена на рабочий.
P.S.: считаю тред актуалным и буду благодарен тому кто придумает как вытащить флешку из зеркала, так чтобы разметка gmirror была в consistent state.
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
-
- рядовой
- Сообщения: 22
- Зарегистрирован: 2011-11-18 15:13:06
Re: Зеркалирование загрузочного раздела
А попробовать по detach в devd делать
gmirror remove name prov
а по attach gmirror insert
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)
"Если человек не пьет, и не курит, поневоле задумываешься, уж не сволочь ли он?" (с) Антон Павлович Чехов
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Вот выдержка из мана, по-поводу 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 при загрузке %(((
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: Зеркалирование загрузочного раздела
а если процессы начнут кушать свап, а у тебя его нету ?
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2012-01-05 20:20:00
Re: Зеркалирование загрузочного раздела
Зачем /boot на флэшке? На ней нужны только ключи. Больше ничего. /boot можно оставить на жестком диске.
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Boot не должен быть в свободном доступе. На диске он подвержен атакам, тем паче - модули ядра работают в нулевом кольце защиты процессора. Да и есть флешка с хардвёрной аутентификацией по отпечатку - самый раз чтобы загрузчики с ключами там разместить.
...немного оффтоп...Правда следующую проблему стоит обсудить в отдельном треде: нужен загрузчик, чтобы ставился на флешку (желательно с GPT-разметкой) и мог передавать управление загрузчикам разделов - там много граблей %(. например если делаешь GPT-разметку и делаешь раздел типа freebsd-boot то с какого раздела будет произведена загрузка - со следующего или это где-то можно настроить?
...немного оффтоп...Правда следующую проблему стоит обсудить в отдельном треде: нужен загрузчик, чтобы ставился на флешку (желательно с GPT-разметкой) и мог передавать управление загрузчикам разделов - там много граблей %(. например если делаешь GPT-разметку и делаешь раздел типа freebsd-boot то с какого раздела будет произведена загрузка - со следующего или это где-то можно настроить?
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Ну почему же у меня его нету?manefesto писал(а):а если процессы начнут кушать свап, а у тебя его нету ?
Я на свап не скуплюсь, и вообще люблю `mdconfig -t swap` побаловаться в целях ускорения процессов...
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2012-01-05 20:20:00
Re: Зеркалирование загрузочного раздела
Какие-то сложности на ровном месте, правда.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: Зеркалирование загрузочного раздела
не монтировать boot - хорошая идея. У меня была подобная конфигурация... не устроила тем, что не сильно прозрачна процедура обновления, да и возможностью появления "разноверсицы" модулей. Хотел скрипт набацать, чтобы всё это в фоне, на gmirror зеркалировалось на memorydrive, и по необходимости (после обновления ядра), эти данные синхронились с разделом флешки (поиграться с приоритетами).
Это решение было бы более технологично, на мой вкус.
Это решение было бы более технологично, на мой вкус.
-
- рядовой
- Сообщения: 10
- Зарегистрирован: 2012-01-05 20:20:00
Re: Зеркалирование загрузочного раздела
Технологично будет не усложнять. Сделать скрипт в один маунт флэшки, rsync и umount - это технологично. Все равно обновление системы/пересборка ядра это 95% операций с /boot и вызвать после этого руками некий afterupdateboot.sh вполне логично, просто и ясно.
- hishnik
- рядовой
- Сообщения: 36
- Зарегистрирован: 2009-02-28 4:25:45
Re: Зеркалирование загрузочного раздела
Именно так (в смысле только (dump/restore)) выглядят мои нынешние конфигурации.
Тут разница во времени синхронизации серьёзная. dump/restore - минут 5, gmirror - и минуты не проходит.
А насчёт afterupdateboot.sh - всё так, но тогда ведь нет никакой разницы как он там внутри сделан gmirror или rsync.
Зеркало - быстрее и не позволяет случиться аномалиям в данных. Если уж делать скрипт, хорошо бы свести к минимуму возможность повредить системе.
Оба варианта - рабочие, проверял. Но, как я писал выше, хочется на зеркале сделать, пока не ясно как...
Тут разница во времени синхронизации серьёзная. dump/restore - минут 5, gmirror - и минуты не проходит.
А насчёт afterupdateboot.sh - всё так, но тогда ведь нет никакой разницы как он там внутри сделан gmirror или rsync.
Зеркало - быстрее и не позволяет случиться аномалиям в данных. Если уж делать скрипт, хорошо бы свести к минимуму возможность повредить системе.
Оба варианта - рабочие, проверял. Но, как я писал выше, хочется на зеркале сделать, пока не ясно как...