Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

  Раздел: Компьютерная документация -> Операционные системы -> FreeBSD

 

Установка FreeBSD на шифрованный корневой раздел

Введение

Тема безопасности всегда актуальна. Защита данных от посторонних один из основных ее аспектов. И утверждение "Если у вас паранойя, то это не значит что за вами не следят" имеет смысл.

Нашей целью будет полное шифрованние физического диска штатными средствами FreeBSD. В этом есть огромный плюс – с любого LiveCD невозможно определить содержимое винчестера, скроем само наличие ОС. Загружаться FreeBSD будет с флешки. Шифрование будет безпарольное, то есть на основе ключа. Это спасет от того момента (цитата с одного форума)

Паяльник в ж..., и все пароли вспоминаются :)

Ну, начнем...

ОС FreeBSD 7.1
Вся работа будет разбита на несколько этапов

  • подготовка
  • шифрование
  • установка
  • настройка и финиш

Этап первый: подготовка дисков, настройка среды шифрования

Загружаемся С DVD FreeBSD 7.1, в Sysinstall переходим в режим Fixit->CD/DVD

Забиваем диск и флешку мусором (ad4 мой жесткий диск, da0 флешка). Процес долгий, винт размером в 80Гб (на ноутбуке) – больше часа

Fixit# dd if=/dev/random of=/dev/ad4 bs=50m
Fixit# dd if=/dev/random of=/dev/da0 bs=5m

Создаем симлинки и загружаем модуль geom_eli

Fixit# ln -s /dist/lib /lib
Fixit# ln -s /dist/boot/kernel /boot/modules
Fixit# kldload geom_eli

Создаем ключ для шифрования размером 4096 байт, и временно храним его в /boot/keys

Fixit# mkdir /boot/keys
Fixit# dd if=/dev/random of=/boot/keys/ad4.key bs=512 count=8

Создаем точки монтирования загрузочной флешки и винта

Fixit# mkdir /mnt/crypt
Fixit# mkdir /mnt/boot0

Делаем редактором по дефолту ee (вместо vim)
А также указываем место установки ОС

Fixit# export EDITOR=/dist/usr/bin/ee
Fixit# export DESTDIR=/mnt/crypt

Теперь размечаем флеш-носитель (размер 4096Mb), форматируем и монтируем в /mnt/boot0. Новичку с fdisk будет немного сложно разобратся, но без него никак, советую прочитать www.opennet.ru

Fixit# fdisk -Bi /dev/da0
# На вопрос change the boot code ставим yes
Fixit# bsdlabel -Bw /dev/da0s1
Fixit# bsdlabe -e /dev/da0s1
# таблицу разделов к такому виду
# size offset fstype [fsize bsize bps/cfg]
# a: 8388497 16 4.2BSD 0 0 0
# c: 8388513 0 unused 0 0
Fixit# newfs -O2 -L BOOT0 /dev/da0s1a
Fixit# mount -t ufs -o rw /dev/da0s1a /mnt/boot0

Этап второй: шифрование диска и создание ФС

Geom Eli предоставляет такие алгоритмы шифрования с ключом от 128 до 256 бит (отсортированы по быстродействию)

  • blowfish
  • 3des
  • aes
  • camellia

Важно помнить: шифрование замедляет доступ к диску и создает нагрузку на процессор

Скорость падает почти в 2 раза (лично тест проводил на ASP12(ext3) и FreeBSD 7.1 45 MB/s против шифрованого 28 MB/s. В качестве алгоритма выступил Blowfish/192). У вас могут быть другие показатели, тестируйте и сравнивайте.

Свой выбор остановил на алгоритме Blowfish 192bit. Обьясняю почему (это всего лишь сугубо мое мнение):

  • первое, есть ассемблерная реализация для архитектуры i386 ()
  • второе, это самый быстрый из представленных алгоритмов
  • третье, разработан Брюсом Шнайером (авторитет среди криптологов)
  • четвертое, простота реализация позволяет личный аудит кода
  • пятое, длина в 192 бит обеспечивает оптимальное соотношение надежность:быстодействие

Советую почитать про Blowfish и Брюса Шнайера ru.wikipedia.org www.schneier.com

Вернемся к нашей задаче
Ключом /boot/keys/ad4.key шифруем диск и подключаем его

Fixit# geli init -b -v -P -K /boot/keys/ad4.key -P -e blowfish -l 192 -s 4096
Fixit# geli attach -p -k /boot/keys/ad4.key /dev/ad4
Fixit# ls /dev | grep "ad4"
ad4
ad4.eli

Размечаем шифрованный диск /dev/ad4.eli, создаем ФС, монтируем

Fixit# fdisk -Bi /dev/ad4.eli
# На вопрос change the boot code ставим yes
Fixit# bsdlabel -Bw /dev/ad4.eli
Fixit# bsdlabe -e /dev/ad4.eli
# таблицу разделов к такому виду
# size offset fstype [fsize bsize bps/cfg]
# a: 1024M 16 4.2BSD 0 0 0
# b: 1024M * swap
# c: 167771451 0 unused 0 0
# d: 512M * 4.2BSD 0 0 0
# e: 4096M * 4.2BSD 0 0 0
# f: 16384M * 4.2BSD 0 0 0
# g: * * 4.2BSD 0 0 0
Fixit# newfs -O2 -U -L ROOT /dev/ad4.elia
Fixit# newfs -O2 -U -L TMP /dev/ad4.elid
Fixit# newfs -O2 -U -L VAR /dev/ad4.elie
Fixit# newfs -O2 -U -L USR /dev/ad4.elif
Fixit# newfs -O2 -U -L HOME /dev/ad4.elig
Fixit# mount -t ufs -o rw /dev/ad4.elia /mnt/crypt
Fixit# mkdir /mnt/crypt/var
Fixit# mkdir /mnt/crypt/usr
Fixit# mkdir /mnt/crypt/tmp
Fixit# mount -t ufs -o rw /dev/ad4.elid /mnt/crypt/tmp
Fixit# mount -t ufs -o rw /dev/ad4.elie /mnt/crypt/var
Fixit# mount -t ufs -o rw /dev/ad4.elif /mnt/crypt/usr
Fixit# mkdir /mnt/crypt/usr/home
Fixit# mount -t ufs -o rw /dev/ad4.elig /mnt/crypt/usr/home

Этап третий: установка FreeBSD

Устанавливать FreeBSD будем вручную :)

Переходим в /dist/7.1-RELEASE и устанавливаем. Использовать Sysinstall бессмысленно, он не понимает eli :(

Fixit# cd /dist/7.1-RELEASE
Fixit# ls
base doc kernels proflibs
catpages games manpages src
dict info ports
Fixit# cd base
Fixit# ./install.sh
Fixit# cd ../doc
Fixit# ./install.sh
Fixit# cd ../kernels
Fixit# ./install.sh GENERIC
Fixit# cd ../proflibs
Fixit# ./install.sh
Fixit# cd ../catpages
Fixit# ./install.sh
Fixit# cd ../games
Fixit# ./install.sh
Fixit# cd ../manpages
Fixit# ./install.sh
Fixit# cd ../src
Fixit# ./install.sh all
Fixit# cd ../dic
Fixit# ./install.sh
Fixit# cd ../info
Fixit# ./install.sh
Fixit# cd ../ports
Fixit# ./install.sh

Система установлена на шифрованный диск. Переходим к настройке ОС

Этап четвертый: создание конфигурации

Для начала сделаем доступным ядро

Fixit# cd /mnt/crypt/boot
Fixit# rmdir kernel
Fixit# mv GENERIC kernel

Создадим /mnt/crypt/etc/fstab и приведем его к такому виду:

/dev/ad4.elia / ufs rw 1 1
/dev/ad4.elib none swap sw 0 0
/dev/ad4.elid /tmp ufs rw 2 2
/dev/ad4.elie /var ufs rw 2 2
/dev/ad4.elif /usr ufs rw 2 2
/dev/ad4.elif /usr/home ufs rw 2 2
/dev/ufs/BOOT0 /boot0 ufs rw,noauto 1 1

Создаем папку для монтирования загрузочной флешки

Fixit# mkdir /mnt/crypt/boot0

Копируем /mnt/crypt/boot в /mnt/boot0/boot, /mnt/crypt/etc/fstab в /mnt/boot0/etc/fsatb, /boot/keys в /boot0/boot

Fixit# cp -Rpv /mnt/crypt/boot /mnt/boot0
Fixit# mkdir /mnt/boot0/etc
Fixit# cp -pv /mnt/crypt/etc/fstab /mnt/boot0/etc/
Fixit# cp -Rpv /boot/keys /mnt/boot0/boot

Создаем файл /mnt/boot0/boot/loader.conf и приводим его к такому виду:

autoboot_delay="5"

geom_eli_load="YES"

geli_ad4_keyfile0_load="YES"
geli_ad4_keyfile0_type="ad4:geli_keyfile0"
geli_ad4_keyfile0_name="/boot/keys/ad4.key"

kern.geom.eli.batch="1"

Все, теперь перезагружаемся не забыв отмонтировать все ФС и настраиваем FreeBSD по своему вкусу

Fixit# cd /
Fixit# umount /mnt/boot0
Fixit# umount /mnt/crypt/usr/home
Fixit# umount /mnt/crypt/usr
Fixit# umount /mnt/crypt/tmp
Fixit# umount /mnt/crypt/var
Fixit# umount /mnt/crypt/usr
Fixit# geli detach /dev/ad4.eli
Fixit# shutdown -r now

Заключение

В результате мы добились того, чего хотели. Теперь без флешки винчестер бесполезная железяка. И как говорится в man geli: "Даже очень заинтересованная сторона с достаточными ресурсами не сможет раскодировать данные на жестком диске". А в критической ситуации флешку легко уничтожить.

Совет: по своему горькому опыту скажу – сделайте бекап ключа (к примеру спрятать с помощью steghide в картинку и выложить на бесплатном фотохостинге). Этим вы себя застрахуете от неприятных моментов, связанных с потерей флеш-носителя.

Автор: Андрей Романенко aka Camelium
Источник: prostounix.in.ua

Ссылки по теме
FreeBSD: диски, слайсы, партиции
Открытая криптография. Использование SSH
Открытая криптография. Конфигурирование SSH

Вся документация по FreeBSD

 

Компьютерная документация от А до Я - Главная

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100