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

Solaris NFS: разрешения пользователей

Я новичок в NFS. Я хотел бы убедиться, что все понятно.

Если сервер NFS использует каталог rw ,, и все файлы в этом каталоге имеют разрешения 700, а пользователь / группа для этих файлов - root / root ,,,

На клиенте вам нужно будет войти в систему как root, чтобы увидеть это. Это верно?

Я знаю, что пользователь без полномочий root на клиенте может создать непосредственный соединение, чтобы переопределить это. (например, не используйте монтирование, просто используйте взлом клиента NFS.)

На самом деле кажется, что любой, у кого есть доступ к клиентской машине, должен иметь доступ к файлам, и что клиентская машина должна игнорировать разрешения. Только сервер должен обрабатывать разрешения.

Правильно ли я понимаю? Это нормально - иметь такую ​​раскладку? Есть ли способ игнорировать разрешения на стороне клиента?

Я бы сказал, что в целом вы правы в понимании NFS. Вот некоторые подробности об упомянутых вами моментах:

Сервер NFSv3 предоставляет только права владения и доступа к файлам. Это зависит от клиента, чтобы обеспечить эти разрешения для определенных пользователей (т.е. когда процесс с определенным UID запрашивает и выполняет операцию fs).

Даже если вы настроите NFSv4 с шифрованием, авторизацией Kerberos и LDAP (а серверы Krb и LDAP работают на другом хосте), тогда у корневого клиента все еще будет потенциал как минимум столько же привилегий fs, сколько у всех разрешенных пользователей и групп. Но вы можете снова получить защиту от активности пользователей без полномочий root и даже для других хостов в частной сети.

Обычно клиенты очень успешно применяют разрешения пользователей. Я не знаю ни одного простого метода, чтобы игнорировать права доступа к файлу для монтирования NFS. Если это то, что вы хотите, просто установите разрешения на u=rwx,g=rwx,o=rwx для всех папок и u=rw,g=rw,o=rw для всех файлов.

Не по теме:

Но будьте осторожны, чтобы не перевернуть бит setuid - в конечном итоге это может привести к предоставлению корневой оболочки обычным пользователям (например, www-data) на вашем клиенте. Setuid можно полностью отключить с помощью параметра «-o nosuid» для монтирования NFS и не-NFS.

Есть способ отключить / включить rootquash для сервера Solaris (в терминологии Solaris он называется иначе, чем rootquash - я забыл, что это было).

Сервер Solaris может пометить весь общий ресурс как доступный только для чтения, например:

zfs set sharenfs="ro=@10.20.0.0/16" tank/home/tabriz

Тогда независимо от того, что делает клиент, файловая система не будет доступна для записи.

Вероятно, пользователь без полномочий root на вашем клиенте не сможет открыть прямое соединение с сервером NFS, даже если программа может использовать протокол NFS. Это потому, что Клиент NFS обычно вынужден подключаться к привилегированным портам а на здоровых клиентах это может сделать только root.

Совместное использование каталога rw говорит о том, что сервер должен позволять любому, у кого есть подходящие учетные данные, иметь доступ для чтения и записи к каталогу и его содержимому.

Изменив права доступа к каталогу и его содержимому на 700 и право владения root / root, вы фактически откажете в доступе всем. Это связано с тем, что по умолчанию NFS Solaris не сопоставляет пользователя root с клиентских машин никому.

Вы можете найти страницу руководства для Solars share_nfs Вот

Безопасность NFS обеспечивается на клиенте.

NFS был создан в те времена, когда любой, кто подключался к общему ресурсу NFS, находился в доверенной сети. Вы действительно должен не используйте NFS, если есть ненадежные объекты, которые могут отправлять пакеты в службу NFS.

После этого NFS обычно по умолчанию использует rootquash, что означает, что root на клиенте (uid 0) интерпретируется как никто (uid 65535) на сервере.

Файлы на диске на самом деле не связаны с пользователь (это общее правило, не относящееся к NFS). Они связаны с uid. Если пользователь alice имеет uid 100 на сервере NFS, а пользователь bob имеет uid 100 на клиенте NFS, то bob сможет получить доступ к файлам alice. Фактически, на клиенте все файлы будут отображаться так, как будто они принадлежат bob. То есть сервер NFS просто предоставляет клиенту необработанные метаданные. Клиент должен интерпретировать это так, как он считает нужным.

NFS не был разработан для обеспечения безопасности. Никогда не используйте NFS в сети, где есть ненадежные стороны.