Linux

Безопасные сетевые файловые системы для Linux?

NFSv3 широко распространен, но модель безопасности по умолчанию... необычна. CIFS может использовать аутентификацию Kerberos, но без семантики POSIX это не подходит. AFS никогда не шифровала трафик по проводам и является krb4 – по сути, это мертвый проект. Странные новые экспериментальные файловые системы либо никогда не реализуются, либо ориентированы на скорость (и, если повезет, на надежность данных), например, Lustre использует ту же модель клиентского доверия, что и NFSv3. Для домашнего использования хорош sshfs, но он точно не масштабируется. И, конечно, есть NFSv4, с sec=krb5p. Великолепно в теории, но по прошествии десяти лет кажется, что в реальном мире его не используют. С клиента Linux только сейчас сняли метку экспериментального. И если вы посмотрите на EMC Celerra, Isilon и т. д., это все NFSv3. (Celerra поддерживает NFSv4, но это действительно запрятано в документации. Isilon, очевидно, работал над добавлением поддержки RPCGSS во FreeBSD, так что, возможно, она появится, но сейчас ее там нет).

Так что, какую систему стоит использовать?

Ответ 1

Кажется, что вы задаете два вопроса:

Что мы на самом деле используем? и Что это значит?

На самом деле, я использую CIFS, в моих случаях POSIX менее важен, поэтому у меня не было никаких проблем. NFS3 используется в областях, где безопасность не важна, например, в моем установочном сервере SLES. И, наконец, sshfs/gvfs для простого совместного использования пользовательской системы. Шифрование по проводам не считается необходимым, поэтому для нас это не является значимым фактором.

Что касается другого вопроса, то, похоже, есть шесть основных требований к тому, что вы ищете:

  1. Шифрование трафика по проводам.

  2. Шифрование аутентификации.

  3. Семантика Posix.

  4. Надежное применение ACL на основе сервера.

  5. Не пользовательская среда.

  6. Система для реального использования.

NFSv3 + IPSec

  1. Зашифровано по проводу

  2. Нет зашифрованной аутентификации

  3. Семантика Posix

  4. Нет надежного внедрения ACL на основе сервера

  5. Не является пользовательским уровнем

  6. Реально используется

NFSv4 + Krb + IPSec

  1. Шифрование по проводу

  2. Зашифрованная аутентификация

  3. Семантика Posix

  4. Надежное применение ACL на основе сервера

  5. Не является пользовательским уровнем

  6. Фактически не используется

CIFS

  1. Не шифруется по проводу

  2. Зашифрованная аутентификация

  3. Семантика Posix (Samba и Kernel сейчас, Windows имеет уровень Posix со времен NT)

  4. Надежное применение ACL на основе сервера

  5. Не является пользовательским уровнем

  6. Реально используется

CIFS + IPSec

  1. Шифрование по проводу

  2. Зашифрованная аутентификация

  3. Семантика Posix (теперь Samba и Kernel)

  4. Надежное применение ACL на основе сервера

  5. Не является пользовательским уровнем

  6. Фактически не используется

SSHFS

  1. Шифрование по проводу

  2. Зашифрованная аутентификация

  3. Семантика Posix

  4. Надежное применение серверных ACL

  5. Является пользовательским уровнем

  6. Реально используется

AFP/NetATalk

  1. Шифрование по проводу

  2. Зашифрованная аутентификация

  3. Семантика Posix

  4. Надежное применение ACL на основе сервера

  5. Не является пользовательским уровнем

  6. Реально используется

И это я еще не касаюсь распределенных файловых систем. Просто не существует ни одной, которая бы все это делала. Некоторые близки к этому (CIFS), а некоторые уже есть, но их никто не использует (NFS4 + IPSec, CIFS+IPSec). По какой-то причине безопасная сетевая файловая система – это то, что подвергалось большому количеству компромиссов на протяжении многих лет.

Ответ 2

Я использую openafs в производстве уже много лет, как с клиентами Linux, так и Windows. Он отлично работает, имеет активное сообщество разработчиков и стал намного проще в установке и администрировании за последние несколько лет, так как различные дистрибутивы linux включили упаковку для него. У нее есть свои недостатки, но я обнаружил, что они компенсируются большей гибкостью администрирования, возможностью иметь клиентов и серверы, разделенные медленными каналами связи, простотой резервного копирования за пределами сайта и другими положительными моментами.

В частности мне нравится запускать производственные веб-серверы, выходящие в интернет, на openafs с заблокированными ACL. Без kerberos ни один процесс на машине – даже запущенный от имени root – не может писать в файловую систему. Я не могу сосчитать, сколько раз мы замечали, как атаки полностью проваливались из-за этой простой меры.

Есть несколько довольно крупных пользователей openafs, самый крупный коммерческий пользователь, которого я знаю, это Morgan Stanley.

Ответ 3

Мне кажется, что вам подойдет одна из этих распределенных файловых систем. Я бы не стал рекомендовать OpenAFS, поскольку она старая, не поддерживает IPv6.

Сам я вполне доволен GlusterFS. Gluster довольно зрелый, работает нормально и имеет хороший набор функций. Однако, как недавно обсуждалось в IRC, Gluster также не поддерживает IPv6 стабильно. Эта функция будет запланирована на 3.6 или 3.7.

Существует также проект под названием HekaFS, который основан на Gluster и добавляет более продвинутые функции аутентификации и SSL. Он очень хорошо документирован и очень хорошо разработан.

Также вас может заинтересовать проект XtreemFS, который предназначен для глобальных вычислений grid, поэтому он по умолчанию поставляется с SSL и прочим. Однако мой выбор пал на Gluster, поскольку сообщество кажется более активным, и он лучше документирован.

Обе системы, конечно же, совместимы с Posix.

Ответ 4

При всем уважении, вы совершенно неправильно смотрите на эту проблему, и вам следует отойти от консоли управления сервером.

Практически все io хранилища не шифруются, потому что это не имеет значения на этом уровне стека абстракции. Сомневаетесь? Поставьте счетчик на свой оптоволоконный коммутатор brocade, и вы увидите, что оптоволоконный канал, так же как iscsi и nfs, представляет собой незашифрованный беспорядок. Решение этой проблемы – это проблема среды, а не протокола хранения. Например, хотите безопасный и зашифрованный nfs? Создайте канал, зашифрованный от точки до точки между клиентом nfs и сервером с помощью ipsec/ssl/tls или чисто аппаратного решения.

Схожие статьи

Linux

Как установить системную переменную $PATH в Linux/Unix

Linux

Слишком длинный список аргументов: ошибка для команд rm, cp, mv

Linux

Безопасно ли устанавливать make на производственном сервере?

Linux

Как предотвратить изменение пароля root в Linux?

×