Устанавливаем систему стандартным образом в один минимальный корневой раздел, для дополнительных разделов
создаем фиктивные точки монтирования. Таблица разделов имеет примерно такой вид:ad4s1a / 256M
ad4s1b swap
ad4s1d /new-root
ad4s1e /new-tmp
ad4s1f /new-var
ad4s1g /new-usrЗагружаемся в установленную систему.
В /boot/loader.conf добавляем
geom_eli_load="YES"
Отмонтируем раздел /new-root, который будет содержать новый шифрованный корень:
umount /new-root
Инициализируем шифрование будущего корня и форматируем раздел:
geli init -b -l 256 /dev/ad4s1d
geli attach /dev/ad4s1d
newfs -L root /dev/ad4s1d.eliВ /etc/fstab меняем /dev/ad4s1d на /dev/ad4s1d.eli
Монтируем шифрованный раздел:mount /new-root
Создаем ключи для шифрования остальных разделов, заполнив их случайными данными:
dd if=/dev/random of=/new-root/ad4s1e.key bs=512 count=1
dd if=/dev/random of=/new-root/ad4s1f.key bs=512 count=1
dd if=/dev/random of=/new-root/ad4s1g.key bs=512 count=1Отключаем активный раздел подкачки и шифруем его:
swapoff -a
geli onetime -l 256 -s 4096 /dev/ad4s1bВ /etc/fstab меняем для раздела подкачки /dev/ad4s1b на /dev/ad4s1b.eli
Активируем раздел подкачки:
swapon -aГотовим шифрованные разделы tmp, var и usr:
umount /new-tmp
umount /new-var
umount /new-usrgeli init -K /new-root/ad4s1e.key -l 256 -P /dev/ad4s1e
geli init -K /new-root/ad4s1f.key -l 256 -P /dev/ad4s1f
geli init -K /new-root/ad4s1g.key -l 256 -P /dev/ad4s1g
geli attach -k /new-root/ad4s1e.key -p /dev/ad4s1e
geli attach -k /new-root/ad4s1f.key -p /dev/ad4s1f
geli attach -k /new-root/ad4s1g.key -p /dev/ad4s1gnewfs -L tmp /dev/ad4s1e.eli
newfs -L var /dev/ad4s1f.eli
newfs -L usr /dev/ad4s1g.eliФормируем будущий образ иерархии монтирования разделов:
cd /new-root
mkdir tmp
mkdir var
mkdir usr
mount /dev/ad4s1e.eli tmp/
mount /dev/ad4s1f.eli var/
mount /dev/ad4s1g.eli usr/Монтируем установочный диск с FreeBSD и копируем с него в новый корень образ базовой системы:
mount /cdrom
cd /cdrom/6.2-RELEASE/base
cat base.?? | tar --unlink -xpzf - -C /new-root/Другой вариант скопировать уже установленный корень:
tar -cf - / --exclude /new-root | tar -xf - -C /new-rootПодготавливаем новый корень к загрузке:
mkdir /new-root/mnt/boot
cp /etc/fstab /new-root/etc/fstabВ /new-root/etc/fstab добавляем разделы для монтирования:
/dev/ad4s1a /mnt/boot ufs rw 1 1
/dev/ad4s1e.eli / ufs rw 1 1
/dev/ad4s1d.eli /tmp ufs rw 1 1
/dev/ad4s1g.eli /usr ufs rw 1 1
/dev/ad4s1f.eli /var ufs rw 1 1
В /new-root/etc/rc.conf определяем монтирование дополнительных шифрованных разделов:geli_devices="ad4s1e ad4s1f ad4s1g"
geli_ad4s1e_flags="-p -k /ad4s1e.key"
geli_ad4s1f_flags="-p -k /ad4s1f.key"
geli_ad4s1g_flags="-p -k /ad4s1g.key"Из старого корня делаем минимальный загрузочный раздел /mnt/boot, в /etc/fstab оставляем:
/dev/ad4s1d.eli / ufs rw 1 1
Перезагружаемся, чистим содержимое /mnt/boot, оставив только /mnt/boot/boot/* и /mnt/boot/etc/fstab
URL: http://www.pspro.aphid.net/moin.cgi/FreeBsdGeliRoot
Обсуждается: http://www.opennet.me/tips/info/2077.shtml
кажись уже было здесь
----------
забыли про проблему с usb клавами :)
>кажись уже было здесьБыло для Linux.
Велосипедист. Говорят же тебе было - значит было.
Ужас... Ещё несколько лет назад фря ставилась на шифрованные гелей разделы стандартным инсталлятором. Зачем всё это?!А линуксы и подавно без каких-либо телодвижений - всё автоматически...
А подскажите пожалуйста, в случае применения описанной в этой статье схемы можно ли защититься от монтирования шифрованной ФС с другого компа или другого способа получения доступа к ФС? Ведь если при загрузке корневая фс монтируется, то видимо откуда то берутся эти ключи всё же. В данную проблему не вникал, потому спрашиваю :)
с ключами на флэшке/cd/dvd защищенность НАМНОГО выше, но и в описанном варианте нужен ещё и пароль для монтирования, так что со сложным паролем тоже всё безопасно.
А как с ключами на внешнем носителе защищённость выше? Ведь изъяли комп сразу видимо с этим носителем если он не убран, и всё. Все данные как на ладони. А пароль в голове и не понятно у кого..
После того, как компьютер загрузится, носитель с ключами надо убрать. При вторжении врага носитель с ключами вообще уничтожается (при том, что где-то далеко в защищённом месте есть его копия), и тогда люди даже под прессингом не могут выдать врагу пароль.
А лучшее - получать ключи из локальной сети, из незаметной коробочки.
Которую забудут конфисковать и которую всегда можно разбить :)