Монтирование имеющихся зашифрованных файловых систем



После каждой загрузки для каждой защищённой файловой системы перед их использованием должны выполняться повторное подключение к системе, проверка на наличие ошибок и монтирование. Требуемые для этого команды должны выполняться пользователем root.

1. Подключение gbde-раздела к системе

# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock

Будет выдан запрос на ввод ключевой фразы, выбранной на этапе инициализации зашифрованного раздела gbde.

2. Проверка файловой системы на наличие ошибок

Так как защищаемая файловая система не может пока быть указана в файле /etc/fstab для автоматического монтирования, то она должны проверяться на наличие ошибок посредством ручного запуска fsck(8) до её монтирования.

# fsck -p -t ffs /dev/ad4s1c.bde

3. Монтирование зашифрованной файловой системы

# mount /dev/ad4s1c.bde /private

Теперь защищённая файловая система доступна для работы.

Автоматическое монтирование зашифрованных разделов

Для автоматического подключения, проверки и монтирования зашифрованного раздела можно создать скрипт, но по соображениям безопасности в этом скрипте пароля для gbde(8) быть не должно. Поэтому рекомендуется запускать такие скрипты вручную, а пароль задавать с консоли или сеанса ssh(1).

Кроме того, базовая система содержит скрипт rc.d для автоматического монтирования шифрованных разделов. Его аргументы могут быть указаны в файле rc.conf(5):

gbde_autoattach_all="YES"

gbde_devices="ad4s1c"

gbde_lockdir="/etc/gbde"

При этом ключевая фраза для gbde должна быть введена на этапе загрузки. После введения ключевой фразы зашифрованный раздел будет смонтирован автоматически. Такой подход может быть очень удобным для использования gbde на ноутбуках.

Криптографическая защита, применяемая в gbde

gbde(8) шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Более полная информацию о системе шифрования gbde, включая алгоритм генерации ключей для секторов из ключевой фразы, вводимой пользователем, можно найти на страницах справочной системы о gbde(4).

Вопросы совместимости

sysinstall(8) несовместим с устройствами, зашифрованными gbde. Все устройства *.bde перед запуском sysinstall(8) должны быть отключены от системы, или эта утилита аварийно завершит работу на этапе обнаружения устройств. Для отключения защищённого устройства, используемого в нашем примере, воспользуйтесь такой командой:

# gbde detach /dev/ad4s1c

Также заметьте, что, так как vinum(4) работает не через подсистему geom(4), то вы не можете использовать тома vinum с gbde.

Шифрование дисков при помощи geli

Во FreeBSD имеется альтернативный криптографический класс GEOM — geli. В настоящий момент он поддерживается Pawel Jakub Dawidek <pjd@FreeBSD.org>. Утилита geli отличается от gbde; она предоставляет другой комплекс возможностей и использует иную схему криптования.

Наиболее значимыми особенностями geli(8) являются:

• Использование инфраструктуры crypto(9): при наличии аппаратной криптографической поддержки, geli автоматически использует ее.

• Поддержка разнообразных криптоалгоритмов (в настоящее время AES, Blowfish и 3DES).

• Поддержка шифрованного корневого раздела. Для загрузки в такой ситуации потребуется ввести ключевую фразу.

• Поддержка двух независимых ключей шифрования (например, ''основного ключа'' и ''ключа компании'').

• Высокая скорость работы geli за счет простого криптования сектор-сектор.

• Поддержка архивирования основных ключей. При необходимости текущие ключи могут быть уничтожены, а в дальнейшем доступ к данным восстановлен при помощи архивированных ключей.

• Поддержка криптования файловых систем случайным одноразовым ключом — например, для разделов подкачки или временных файловых систем.

Другие возможности класса geli описаны в его странице справочника: geli(8).

Несколько следующих страниц будут посвящены описанию процесса конфигурации geli в ядре FreeBSD, а также объяснят, как создавать и использовать криптографический провайдер geli.

Поскольку в процессе настройки возникнет необходимость внесения изменений в конфигурацию ядра, потребуются также привилегии суперпользователя.

1. Добавление поддержки geli в ядро

Добавьте в конфигурационный файл ядра следующие строки:

options GEOM_ELI

device crypto

Перестройте ядро, как описано в разделе Гл. 8.

Помимо этого, поддержка geli может быть активирована модулем ядра на этапе загрузки. Для этого добавьте в файл /boot/loader.conf строку:

geom_eli_load="YES"

Теперь ядро должно поддерживать geli(8).

2. Генерация главного ключа

Предлагаемый пример описывает процесс генерации ключевого файла, который послужит частью главного ключа для шифрованного провайдера, монтируемого в каталог /private. При помощи содержимого ключевого файла создается набор случайных данных, которым зашифровывается главный ключ. Кроме того, он будет защищен кодовой фразой. Размер сектора провайдера будет составлять 4kB. Наконец, мы обсудим, как присоединиться к провайдеру geli, создать на базе его файловую систему, как ее смонтировать и работать с ней, и, в заключение, как корректно завершить работу.

Больший чем обычно размер сектора (как в нашем примере, 4 кБ) рекомендуется для увеличения производительности.

Главный ключ будет защищен кодовой фразой; данные для ключевого файла берутся из /dev/random. Размер сектора создаваемого нами шифрованного провайдера /dev/da2.eli — 4кБ.

# dd if=/dev/random of=/root/da2.key bs=64 count=1

# geli init -s 4096 -K /root/da2.key /dev/da2

Enter new passphrase:

Reenter new passphrase:

Использование одновременно кодовой фразы и ключевого файла не обязательно: любой из этих методов защиты главного ключа может применяться независимо.

Если в качестве имени ключевого файла указан ''-'', используется стандартный ввод. Это позволяет использовать более одного ключевого файла:

# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2

3. Свяжите сгенерированный ключ с провайдером

# geli attach -k /root/da2.key /dev/da2

Enter passphrase:

Созданный при этом файл дискового устройства будет называться /dev/da2.eli.

# ls /dev/da2*

/dev/da2 /dev/da2.eli

4. Создайте новую файловую систему

# dd if=/dev/random of=/dev/da2.eli bs=1m

# newfs /dev/da2.eli

# mount /dev/da2.eli /private

Зашифрованная файловая система будет видна в выводе утилиты df(1) и готова к использованию:

# df -H

Filesystem Size Used Avail Capacity Mounted on

/dev/ad0s1a 248M 89M 139M 38% /

/devfs    1.0K 1.0K 0B 100% /dev

/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr

/dev/ad0s1d 989M 1.5M 909M 0% /tmp

/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var

/dev/da2.eli 150G 4.1K 138G 0% /private

5. Размонтирование и деактивация провайдера

После завершения работы с шифрованным разделом, когда содержимое каталога /private больше не нужно, будет разумным отключить раздел от системы.

# umount /private

# geli detach da2.eli

Дополнительную информацию о geli(8) можно найти на соответствующей странице справочника.


Дата добавления: 2018-10-26; просмотров: 200; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!