Создаем шифрованный раздел в файле контейнере на FreeBSD используя geli.

На одном серваке потребовалось добавить шифрованную партицию, свободных партиций не было, было решено использовать файл контейнер.

Настройка.

1. Подгружаем модуль к ядру:
# kldload geom_eli
2. Создаем файл myfile который станет контейнером и заполняем его случайными данными. Размер выбрал 20Mb (ну это кому сколько надо):
$ dd if=/dev/random of=/home/rrv/myfile bs=20m count=1
3. Аналогично можем создать ключевой file.key файл со случайными данными или использовать любой другой файл на наше усмотрение:
$ dd if=/dev/random of=/home/rrv/file.key bs=64 count=1
4. Подключаем файл контейнер myfile как устройство /dev/md7 (мне нравится цифра 7), иначе geli не сможет с ним работать:
# mdconfig -a -t vnode -f /home/rrv/myfile -S 4096 -u 7
5. Инициализируем шифрованное устройство и придумываем пароль:
# geli init -s 4096 -K /home/rrv/file.key /dev/md7
Enter new passphrase:
Enter new passphrase:

Если в качестве имени ключевого файла указан »-», используется стандартный ввод. Это позволяет использовать более одного ключевого файла:
# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/em7
6. Подключаем шифрованный раздел используя ключевой файл и пароль:
# geli attach -k /home/rrv/file.key /dev/md7
Enter passphrase:

При этом создается устройство /dev/md7.eli
7. Создаем новую файловую систему:
# dd if=/dev/random of=/dev/md7.eli bs=20m
# newfs /dev/md7.eli

8. Монтируем ee в заранее созданную директорию /home/rrv/myprivate
# mount /dev/md7.eli /home/rrv/myprivate
9. Пользуемся 🙂
10. Отключаем в обратном порядке:
# umount /home/rrv/myprivate
# geli detach /dev/md7
# mdconfig -d -u 7

Использование.

В следующий раз короткая последовательность, подключаем:
# kldload geom_eli
# mdconfig -a -t vnode -f /home/rrv/myfile -S 4096 -u 7
# geli attach -k /home/rrv/file.key /dev/md7
# fsck -p -t ffs /dev/md7.eli
# mount /dev/md7.eli /home/rrv/myprivate

Пользуемся 🙂

Отключаем:
# umount /home/rrv/myprivate
# geli detach /dev/md7
# mdconfig -d -u 7

Все!

Leave a Reply