Шифрование области подкачки в FreeBSD доступно начиная с версии 5.3-RELEASE и достаточно легко конфигурируется. Варианты конфигурации слегка различаются в зависимости от версии системы. Начиная с версии 6.0-RELEASE, для шифрования разделов подкачки можно использовать утилиты gbde(8) или geli(8); в более ранних версиях доступно только решение при помощи gbde(8). В обоих случаях используется скрипт rc.d encswap.
Предыдущий раздел, Шифрование дисковых разделов, кратко описывает различные методы криптования.
Как и в случае дисковых разделов, шифрование области подкачки применяется для защиты важной информации. Возьмем, к примеру, приложение, которому требуется работать с паролями. До тех пор, пока пароли хранятся в физической памяти, все в порядке. Если же операционная система начинает выгружать отдельные участки памяти в область подкачки, чтобы освободить память для других приложений, пароли могут быть записаны на диск в открытом виде и тем самым оказаться легко доступными злоумышленнику (имеющему физический доступ к диску -- прим. пер.). В таких ситуациях решением может стать шифрование раздела подкачки.
Замечание: В данном разделе мы будем считать, что разделом подкачки является ad0s1b.
До настоящего момента раздел подкачки не был зашифрован. Таким образом, на нем могут содержаться пароли или какая-либо иная важная информация в открытом виде. Чтобы избавиться от этого, заполним раздел подкачки случайными данными:
# dd if=/dev/random of=/dev/ad0s1b bs=1m
В версиях FreeBSD начиная с 6.0-RELEASE в строку файла /etc/fstab, описывающую раздел подкачки, необходимо добавить суффикс .bde:
# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.bde none swap sw 0 0
В системах версий до FreeBSD 6.0-RELEASE, кроме того, потребуется следующая строка в файле конфигурации системы /etc/rc.conf:
gbde_swap_enable="YES"
Процедура при использовании geli(8) для шифрования раздела подкачки сходна с использованием gbde(8). В строку файла /etc/fstab, описывающую раздел подкачки, нужно добавить суффикс .eli:
# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.eli none swap sw 0 0
По умолчанию, geli(8) использует алгоритм криптования AES с длиной ключа 256 бит.
При необходимости эти параметры могут быть изменены в опции geli_swap_flags файла конфигурации /etc/rc.conf. Приведенная ниже строка указывает, что скрипт rc.d encswap должен использовать для криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора 4 килобайта и включенной опцией ''отсоединиться при последнем закрытии'':
geli_swap_flags="-a blowfish -l 128 -s 4096 -d"
За списком возможных опций обращайтесь к описанию команды onetime в странице справочника geli(8).
После перезагрузки системы правильность работы шифрованного раздела подкачки может быть проверена при помощи команды swapinfo.
В случае использования gbde(8):
% swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.bde 542720 0 542720 0%
При использовании geli(8):
% swapinfo Device 1K-blocks Used Avail Capacity /dev/ad0s1b.eli 542720 0 542720 0%
Пред. | Начало | След. |
Шифрование дисковых разделов | Уровень выше | GEOM: Модульная инфраструктура преобразования дисковых запросов |
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.