Вопрос или проблема
Я хотел бы создать выделенный физический сервер, который будет работать как NAS и файловый сервер внутри моей локальной сети (также через VPN).
Однако мне нужно полностью зашифровать диски (как системные, так и диски для данных, так как я планирую использовать два zpools). Поскольку шифрование ZFS не поддерживается в версии 28, которую поддерживает FreeBSD (а также OpenIndiana, Nexenta и т. д.), единственной возможностью, похоже, является использование GELI.
Теперь я думаю, может ли добавление слоя GELI поверх ZFS привести к потере данных. Некоторые посты в интернете (хотя их не так много) указывают на эту проблему. В частности, ZFS, похоже, является гораздо более превосходной файловой системой по сравнению с любыми другими в мире Unix/Linux (например, ext4, xfs, а также btrfs), учитывая интеграцию RAID(Z) и контрольную сумму.
Теперь добавление GELI поверх этого кажется мне чем-то вроде добавления LUKS на настройки RAID, хотя я никогда не пользовался GELI и не знаю его надежности. Производительность не является основной проблемой, хотя я бы предпочел не иметь скорость передачи 1 МБ/с в своей локальной сети (более 20 МБ/с будет приемлемо).
Я никогда не выходил за пределы своего мира Linux, поэтому у меня нет опыта с FreeBSD или производными Solaris. Я бы предпочел не использовать Solaris Express 11 из-за проблемы оплаченной (дорогостоящей) поддержки. Это будет компьютер дома. Я готов учиться, если это необходимо.
Сервер будет выполнять основные задачи NAS (в частности, файловый обмен samba/cifs, мне не нужны интегрированные в новые версии ZFS).
После рассмотрения слоя шифрования, будет ли GELI + ZFS более или менее надежным, чем LUKS + LVM + ext4? Я спрашивал в другом посте на superuser, и они предложили FreeBSD/Solaris из-за ZFS, хотя мы не говорили о шифровании. Не знаю, поддерживают ли OpenIndiana и подобные ему методы блочного шифрования, такие как LUKS или GELI.
Кроме того, будет ли легко добавить диск в массив, увеличивать RAID(Z) и файловую систему, как мы делаем в Linux (например, здесь)?
Solaris 11 поддерживает нативное шифрование в рамках ZFS. Если вы не привязаны к BSD, это стоит рассмотреть. Он бесплатен для использования в некоммерческих целях, так что вы можете использовать его дома, не покупая лицензию на поддержку.
Чтобы увеличить ваш пул, вам нужно будет добавить больше vdev. Вы не можете увеличить один raidz или другой тип vdev, добавляя к нему больше дисков. Однако, как только вы начнете добавлять больше vdev, ZFS будет разбивать данные по ним, и вы получите некоторую дополнительную производительность.
Я не думаю, что вам нужно чрезмерно беспокоиться о потере данных. Geli на FreeBSD зрелый и, по моему опыту, надежный. Сначала Geli, затем ZFS поверх. Затем вы можете использовать zpool для создания пулов в любой конфигурации, которая вам нравится – один диск, зеркала, RAID-Z, что угодно.
Мой собственный опыт:
У меня есть домашний сервер FreeBSD 9 с аналогичной настройкой – два диска, один zpool на каждом. Это настройка ZFS-на-корне – без UFS. Один диск – системный, другой – для данных. Диск для данных имеет полное шифрование, системный диск – нет (хотя, я думаю, нет причин, по которым он не мог бы иметь его – я просто хотел избежать дополнительной сложности).
Я использовал geli для шифрования «чистого» диска с данными. ZFS (строго говоря, zpool) видит это точно так же, как любое другое блочное устройство, и вы просто вызываете “zpool create …” обычным образом, а затем создаете zfs наборы данных в пуле любым удобным способом.
Производительность не была проблемой в моем случае. Мой сервер работает отлично на 4GB Atom D520. Вероятно, не слишком быстро (диски всего лишь 5200rpm 2.5″, для низкого энергопотребления/шума), но вполне приемлемо для домашнего сетевого обслуживания.
Эта установка работает без проблем уже несколько лет.
Если вы добавите полное шифрование диска (FDE), такое как LUKS или Geli на ZFS, вы не сможете использовать весь набор возможностей ZFS. Однако, если вы используете ZFS на FDE, это будет работать.
В последнее время я слышал обсуждения экспертов по FreeBSD ZFS, которые рекомендуют PEFS на ZFS, поскольку это позволяет ZFS по-прежнему видеть отдельные файлы. Возможно, что PEFS, который настраивается на папки и файлы, будет совместим и включен в библиотеку FreeBSD ZFS в будущем.
Хотя есть эксперты по криптографии, которые рекомендуют не полагаться на полное шифрование диска, я думаю, что в FreeBSD или Linux, комбинация различных стратегий шифрования может быть разумной стратегией.
Например: сырой диск -> FDE (Geli/LUKS) -> ZFS -> (для /home) шифрование пользовательского пространства, используя PEFS или EncFS. С этой моделью, если полное шифрование диска будет скомпрометировано, и, судя по тому, что я понимаю, это не так сложно, если у кого-то есть ресурсы и мотивация, у вас все равно будет PEFS/EncFS для защиты ваших самых важных файлов, которые будет гораздо сложнее взломать.
Вы должны иметь возможность использовать одного из провайдеров geom
для шифрования с ZFS, но вам следует зашифровать устройства под ZFS. Я бы, вероятно, настроил geli
, а затем создал GPT-раздел внутри типа freebsd-zfs
и затем двигался бы оттуда.
Я рекомендую вам протестировать обе решения (FreeBSD и Linux) и решить, исходя из времени системного администратора и производительности, что имеет смысл для вас.
Ответ или решение
FreeBSD + ZFS + Шифрование: Плюсы и Альтернативы
Введение
Создание физического сервера для использования в качестве NAS и файлового сервера в локальной сети (а также через VPN) — это важная задача, особенно если учет безопасности и конфиденциальности данных имеет первостепенное значение. В данном контексте FreeBSD с файловой системой ZFS и шифрованием представляют собой мощное решение.
Особенности использования GELI с ZFS
FreeBSD не поддерживает встроенное шифрование ZFS, так как использует версию 28. Однако, вы можете использовать GELI для шифрования дисков. GELI — это продвинутый и надежный инструмент для шифрования блочных устройств в FreeBSD, который позволяет обеспечить защиту ваших данных.
-
Надежность: Based on the experiences shared by many users, including my own instances, GELI работает безупречно и предлагает надежную защиту данных. Добавление уровня GELI перед использованием ZFS не должно вызывать значительных проблем с потерей данных, если следовать рекомендациям по настройке.
-
Производительность: На практике, GELI, как правило, не значительно ухудшает производительность, и значения выше 20 МБ/с в локальной сети считаются достижимыми при правильной настройке.
-
Проблемы с расширением: Важно отметить, что в ZFS вы не можете просто добавить диск к уже существующему vdev RAID-Z. Для увеличения производительности и хранения данных необходимо добавить новые vdev’, что ZFS будет автоматически распределять данные между ними.
Альтернативы
Если вы ищете альтернативные решения для создания NAS с шифрованием, стоит рассмотреть следующие варианты:
-
OpenIndiana/Solaris: В новых версиях Solaris (и OpenIndiana) поддерживается встроенное шифрование ZFS, что может упростить настройку и управление. Solaris 11 является бесплатным для использования в некоммерческих целях и может быть хорошей альтернативой, если вы готовы учиться и исследовать эту ОС.
-
Linux с LUKS: Подход с LUKS, LVM и ext4 также широко используется и предлагает разнообразные функции, такие как упрощенное шифрование. Однако, необходимо учитывать, что вы не получите те же возможности управления данными, какие предоставляет ZFS.
Соображения по шифрованию и управлению
Для максимальной безопасности, особенно если вы обрабатываете чувствительные данные, рекомендуется использовать многоуровневое шифрование:
-
Основное шифрование (первичный диск): Используйте GELI или LUKS для шифрования целого диска.
-
Файловое шифрование: Вы можете также рассмотреть возможности PEFS или EncFS для создания шифрования на уровне файлов для защиты наиболее критических данных.
Тестирование и оптимизация
Проверьте оба решения (FreeBSD/ZFS и Linux с LUKS) в своей среде, чтобы понять, какое из них лучше всего соответствует вашим требованиям в плане управления временем и производительности. Убедитесь, что вы тестируете как производительность, так и функциональность в реальных сценариях использования.
Заключение
Объединение FreeBSD, ZFS и GELI может стать надежным решением для создания NAS. С учётом возможности использования альтернатив, таких как Solaris с встроенным шифрованием, важно тщательно анализировать ваши потребности и выбрать решение, которое будет соответствовать вашим критериям безопасности, надежности и доступности управления.