Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

Подробнее о модели безопасности:

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

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

Если вы смотрите на что-то похожее на бытовое, есть FreeIPA.

sshfs - это то, что вам нужно. На клиенте:

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

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

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

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

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