Документация по ОС FreeBSD Пятница, 26.04.2024, 00:54
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Безопасность

Шифрование корневого раздела в FreeBSD [2009]
В данной статье рассмотрим процесс шифрования корневого раздела в FreeBSD с использованием класса GEOM ELI. 
Корневой раздел / будет шифроваться паролем, который будет запрошен во время загрузки системы. Разделы var, usr, tmp шифруются ключем и будут монтироваться автоматически после корневого раздела.

Перед прочтением данной статьи прочтите нашу предыдущую статью Шифруем разделы, виртуальные диски и Swap в FreeBSD, в которой описываются базовые команды при работе с классом GEOM ELI и пути изменения стандартных алгоритмов шифрования.

Установим систему в один минимальный корневой раздел ad0s1a (рекомендуется использовать минимальную установку), для будущих разделов /, var, usr, tmp создадим соответствующие фиктивные точки монтирования.
Таблица разделов должна иметь примерно такой вид:

ad0s1a / 256M
ad0s1b swap 4G
ad0s1d /new-root 2G
ad0s1e /new-tmp 2G
ad0s1f /new-var 2G
ad0s1g /new-usr *


Загружаемся в установленную систему.

В /boot/loader.conf добавляем строчку geom_eli_load="YES"

Отмонтируем раздел /new-root, в котором будет размещен новый шифрованный корень

umount /new-root

Шифруем, присоединяем и форматируем раздел для будущего корня 

geli init -b -l 256 /dev/ad0s1d
geli attach /dev/ad0s1d
newfs -L root /dev/ad0s1d.eli


В /etc/fstab меняем /dev/ad0s1d на /dev/ad0s1d.eli

Монтируем шифрованный раздел

mount /new-root

Создаем ключи для шифрования разделов usr, var, tmp и заполняем их случайными данными:

dd if=/dev/random of=/new-root/ad0s1e.key bs=512 count=1
dd if=/dev/random of=/new-root/ad0s1f.key bs=512 count=1
dd if=/dev/random of=/new-root/ad0s1g.key bs=512 count=1


Отключаем активный раздел swap и зашифруем его:

swapoff -a
geli onetime -l 256 -s 4096 /dev/ad0s1b


В /etc/fstab меняем /dev/ad0s1b на /dev/ad0s1b.eli

Включаем уже зашифрованный раздел swap:

swapon -a

Размонтируем будущие разделы перед шифрованием:

umount /new-tmp
umount /new-var
umount /new-usr


Шифруем разделы ранее созданными ключами:

geli init -K /new-root/ad0s1e.key -l 256 -P /dev/ad0s1e
geli init -K /new-root/ad0s1f.key -l 256 -P /dev/ad0s1f
geli init -K /new-root/ad0s1g.key -l 256 -P /dev/ad0s1g


Присоединяем зашифрованные разделы:

geli attach -k /new-root/ad0s1e.key -p /dev/ad0s1e
geli attach -k /new-root/ad0s1f.key -p /dev/ad0s1f
geli attach -k /new-root/ad0s1g.key -p /dev/ad0s1g


Форматируем разделы:

newfs -L tmp /dev/ad0s1e.eli
newfs -L var /dev/ad0s1f.eli
newfs -L usr /dev/ad0s1g.eli


Подготавливаем каталоги в корневом разделе:

cd /new-root

mkdir tmp
mkdir var
mkdir usr

mount /dev/ad0s1e.eli /new-root/tmp/
mount /dev/ad0s1f.eli /new-root/var/
mount /dev/ad0s1g.eli /new-root/usr/


Монтируем установочный диск с FreeBSD:

mount /cdrom

Копируем с примонтированного установочного диска в новый корень образ базовой системы:

cd /cdrom/7.2-RELEASE/base
cat base.?? | tar --unlink -xpzf - -C /new-root/


Готовим новый корень к загрузке:

mkdir /new-root/mnt/boot

Копируем fstab в новый шифрованный раздел:

cp /etc/fstab /new-root/etc/fstab

В /new-root/etc/fstab добавляем новые разделы:

/dev/ad0s1b.eli none swap sw 0 0
/dev/ad0s1a /mnt/boot ufs rw 1 1
/dev/ad0s1e.eli /tmp ufs rw 1 1
/dev/ad0s1g.eli /usr ufs rw 1 1
/dev/ad0s1f.eli /var ufs rw 1 1


В /new-root/etc/rc.conf определяем монтирование шифрованных разделов и пути к их ключам.

geli_devices="ad0s1e ad0s1f ad0s1g"
geli_ad0s1e_flags="-p -k /ad0s1e.key"
geli_ad0s1f_flags="-p -k /ad0s1f.key"
geli_ad0s1g_flags="-p -k /ad0s1g.key"


В текущем /etc/fstab должна оставатся только строчка 

/dev/ad0s1d.eli / ufs rw 1 1

Перезагружаемся.

После загрузки необходимо почистить /mnt/boot, в котором находится наша старая система.
Необходимо оставить только /mnt/boot/boot/* и /mnt/boot/etc/fstab

В источнике я нашел несколько неточностей при монтировании шифрованных разделов.


Источник: http://tuxnotes.ru/articles.php?a_id=24
Категория: Безопасность | Добавил: oleg (05.09.2009)
Просмотров: 729 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024