Сетевая файловая система с безопасностью на уровне пользователя для Linux

8

Я хочу включить обмен файлами между серверами и клиентами, как Linux. Я не хочу полагаться на доверие компьютера, как в NFSv4, потому что у пользователей клиента будут права root. Какие у меня варианты кроме SMB (SAMBA)? Поддерживает ли OpenAFS аутентификацию и доступ на уровне пользователя? Использование смонтированного WebDAV / ftp / sshfs кажется глупым для локальной сети.

Konrads
источник
Вы имеете в виду, что у них есть root-доступ к серверам или только к их собственным клиентским машинам?
wag2639

Ответы:

14

Я не уверен, что полностью понимаю:

«Я не хочу полагаться на доверие компьютера, как в NFSv4, потому что у пользователей клиента будут права root».

Если вы имеете в виду, что пользователи клиента будут иметь привилегии root на клиенте, и вы не хотите, чтобы у них были права root на хосте, тогда вы просто не используете опцию «no_root_squash». Вы также можете сделать такие вещи, как отключение setuid, чтобы снизить риск для клиента с сервера.

У вас также есть возможность использовать kerberos с NFSv4, см. Эту ссылку .

Другими словами, NFSv4 может дать вам необходимую безопасность, будучи немного более ... (масштабируемым?) .. использование sshfs везде. Это все еще может быть не то, что вы хотите, но я бы не отказался от этого слишком рано.

Кайл Брандт
источник
Например, у меня есть два проекта / joeisworking и / mattisworking. Даже если я сделаю сквош-корень, Мэтт с его рабочей станции сможет получить доступ к Джо.
Конрадс
2
@Konrads: Нет, если вы используете kerberos, как упоминал мистер Брандт. Даже если у Мэтта есть root на его собственной рабочей станции, он не может получить TGT от Joe.
Янв
Я думаю, что Конрадс просто не уверен, как настроить NFS, или ранее испытывал плохо настроенную сеть. NFS может быть очень безопасным и может выполнять именно то, что описано в вопросе. Я бы сказал, что NFSv4 является одной из (если не самой) безопасной сетевой файловой системой (при правильной настройке).
Крис С
3

С Kerberos только сервер kdc предоставляет токены аутентификации. Клиентский компьютер сам по себе может аутентифицироваться только как хост (и это если вы дадите ему keytab для соответствующего nfs / client-hostname @ REALM принципала), и это только дает ему право общаться с сервером nfs. Именно пользователи имеют возможность аутентификации, а сервер nfs только разрешает им доступ к их собственным файлам. С sec = krb5p сервер также предотвращает отслеживание и изменение.

Быть root не даст вашим пользователям несоответствующие привилегии. Единственный способ получить доступ к большему количеству файлов - это взломать компьютеры друг друга, взломать сервер nfs или kdc. NFSv4 с Kerberos хорошо соответствует вашим требованиям безопасности.

Вот еще о модели безопасности:

Если вы смотрите на развертывание, вот некоторые учебники по центру Debian / Ubuntu. Я выбрал простые настройки без LDAP. Эти дистрибутивы имеют конфигурацию на основе debconf, которая поможет вам в этом.

Мои дополнения: вам не нужно указывать enctype des-cbc-crc, но вам нужно разрешить_weak_crypto в krb5.conf, чтобы протокол связи мог использовать des-cbc-crc для потокового шифрования. Это станет ненужным в ядрах 2.6.35.

Если вы смотрите на что-то вроде устройства, есть FreeIPA .

Tobu
источник
Это интересно, до сих пор я понял, что в NFSv4 есть только межсерверная аутентификация, и тогда система, которая монтирует экспортируемый том, отвечает за сортировку разрешений (исключение squash_root_fs). Можете ли вы предоставить некоторые ссылки на документы?
Конрадс
2

sshfs это путь. На клиенте:

sshfs -o idmap=user,workaround=rename user@server:/home/user/share /home/user/share

Разрешения такие же, как у ssh ... потому что вы используете ssh! Приятно то, что вам не нужно ничего трогать на сервере, при условии, что sshd установлен и работает правильно. Может не иметь производительность, как другие предложения, но это очень просто.

SuperJames
источник
0

Самба действительно звучит как ваша лучшая ставка. У samba действительно есть расширения Unix, поэтому при монтировании с использованием в качестве cifs в Linux он должен показывать правильные разрешения Unix и все такое. Я думаю, что это будет лучшим вариантом для ваших ограничений. если это не сработает, sshfs можно будет использовать в крайнем случае, но он не будет иметь такую ​​же хорошую производительность или интеграцию в ОС, как samba.

mtinberg
источник
0

Поддерживает ли OpenAFS аутентификацию и доступ на уровне пользователя?

Да, похоже, что OpenAFS удовлетворит ваши требования, но так же, как и Kerberized NFSv4. В обеих этих средах вам не нужно «доверять» клиентам; контроль доступа осуществляется серверами. Предыдущие версии NFS действительно требовали от вас «доверять» клиентам, а Kerberized NFSv4 - нет. OpenAFS никогда не требовала «доверенных» клиентов, а также использует Kerberos для аутентификации и безопасности.

adeason
источник