我想启用服务器和客户端之间的文件共享,这两个Linux。 我不想像NFSv4那样依赖机器信任,因为客户端用户将拥有root权限。 除了SMB(SAMBA),我还有哪些select? OpenAFS是否支持用户级authentication和访问? 使用挂载的WebDAV / ftp / sshfs对于局域网似乎很愚蠢。
我不确定我完全理解:
“我不想像NFSv4那样依赖机器信任,因为客户端用户将拥有root权限。”
如果你的意思是客户端用户将在客户端拥有root权限,而你不希望他们在主机上拥有root权限,那么你就不要使用“no_root_squash”选项。 您还可以执行诸如禁用setuid之类的function,以帮助降低服务器对客户端的风险。
您也可以select使用Kerberos和NFSv4,请参阅此链接 。
换句话说,NFSv4可能会为您提供所需的安全性,同时还有更多…(可扩展性)..使用sshfs无处不在。 它可能不是你想要的,但我不会太早放弃。
使用Kerberos,只有kdc服务器授予authentication令牌。 客户端机器本身只能作为主机进行身份validation(也就是说,如果将keytab赋予匹配的nfs / client-hostname @ REALM主体),并且只允许它与nfs服务器通信。 这是有能力进行身份validation的用户,nfs服务器只授权他们访问他们自己的文件。 使用sec = krb5p时,服务器也可以防止窥探和更改。
作为root不会给你的用户不适当的权限。 他们能够访问更多文件的唯一方法是通过黑客攻击对方的机器,黑客攻击nfs服务器或kdc。 使用Kerberos的NFSv4可以很好地满足您的安全需求。
这里更多的是安全模型:
如果你正在看一个部署,这里有一些debian / ubuntu中心教程。 我select了没有LDAP的简单设置。 这些发行版具有基于debconf的configuration,可以帮助您实现这一目标。
我的补充:您不需要指定des-cbc-crc enctype,但是您需要在krb5.conf中使用allow_weak_crypto,以便通信协议可以使用des-cbc-crc进行streamencryption。 这在2.6.35内核中将不再需要。
如果你正在寻找类似于设备的东西,那就是FreeIPA 。
sshfs是要走的路。 在客户端:
sshfs -o idmap=user,workaround=rename user@server:/home/user/share /home/user/share
权限与ssh相同,因为您使用的是ssh! 很好的一点是你不必碰到服务器上的任何东西,假设sshd已经安装并正常运行。 可能没有其他build议的performance,但它非常简单。
桑巴其实听起来像你最好的select。 桑巴有unix扩展,所以当在Linux上使用cifs挂载它应该显示适当的Unix权限和whatnot。 我认为这将是你的限制的最佳select。 如果这样做不起作用sshfs可以用在一个捏,但它不会有像桑巴一样好的性能或集成到操作系统。
OpenAFS是否支持用户级authentication和访问?
是的,听起来OpenAFS可以满足您的要求,但Kerberized NFSv4也是如此。 在这两种环境中,您都不需要“信任”客户; 访问控制由服务器执行。 先前版本的NFS确实要求您有效地“信任”客户端,但是Kerberized NFSv4不会。 OpenAFS从未要求“受信任”的客户端,也依靠Kerberos来进行身份validation和安全性。