linux – 网络身份验证漫游主目录 – 我应该使用哪种技术?
我正在寻找能够在多台计算机上为用户提供单一身份的软件.也就是说,用户应该在每台计算机上拥有相同的权限,并且用户应该可以访问每台计算机上的所有文件(漫游主目录).对于这个总体思路似乎有很多解决方案,但我正在努力为我确定最好的解决方案.以下是一些细节以及要求:
>计算机网络是运行Ubuntu的Amazon EC2实例. >我们使用SSH访问这些机器. >系统不一定拥有恒定数量的机器. >我们可能必须永久或暂时改变运行的机器数量.这就是为什么我要研究集中认证/存储的原因. >这种效果的实施应该是安全的. >我们不确定用户是否可以直接访问shell,但他们的软件可能会在我们的系统上运行(当然,在受限制的Linux用户名下),这与直接shell访问一样好. 我听说过几种技术/组合来实现我的目标,但我不确定每种技术/组合的后果. >较旧的ServerFault帖子推荐NFS& NIS,虽然根据this old article by Symantec,该组合存在安全问题.该文章建议转移到NIS,但是,由于它已经陈旧,this Wikipedia article引用了一些声明,表明Sun已经远离NIS.推荐的替代品是我听说过的另一件事…… 除了建议我应该研究哪条路径之外,是否有人有任何特别有用的指南?正如粗体文本指出的那样,LDAP看起来是最好的选择,但我对安全方面的实现细节(Keberos?NFS?)特别感兴趣. 解决方法
身份验证,授权和目录信息
这不是您问题的完整答案,但我认为这可能有助于解决有关NIS与LDAP和Kerberos的问题. 从this开始,它可以很好地概述身份验证和授权之间的区别,这对于理解这种讨论非常重要. 正如您所说,Kerberos只是一种身份验证协议.给定一组凭证 – 例如,用户名和密码 – 它将告诉您它们是否有效.这就是它的全部. 相比之下,NIS和LDAP都是目录服务.它们允许客户端查询它们以获取有关用户的信息(您的主目录是什么?您的用户ID是什么?).两者都可以用作具有不同问题的认证来源. NIS并不真正为您执行任何身份验证.相反,它向客户端计算机公开密码哈希,并且本地系统执行实际身份验证步骤的方式与本地帐户相同.这里的问题是任何在你的一个NIS客户端拥有帐户的人都可以获取所有密码哈希值,然后在闲暇时对他们进行暴力攻击. LDAP更安全一些,因为身份验证步骤实际上是在服务器上执行的.您必须确保使用SSL或TLS加密LDAP会话,否则密码将在网络上以明文形式公开,因为它很容易受到数据包嗅探. 使用Kerberos进行身份验证然后使用NIS或LDAP进行授权(通常这意味着“组成员资格”)和目录信息是很常见的.我认为NIS,一旦你删除了密码哈希(通过将你的身份验证移到Kerberos)并不比LDAP安全,并且具有在任何现代Linux发行版上“开箱即用”的优势. 另一方面,LDAP通常具有更大的可扩展性,如果您拥有大量用户(或其他目录对象),可以提供更好的扩展,提供丰富的查询,并且通常更易于管理.在各种应用程序中本地也支持LDAP,而NIS与核心操作系统之间存在奇怪的乱码关系,这可能是不可取的. 如果您从头开始构建东西,我建议使用Kerberos进行身份验证,并为您的目录服务建议LDAP. 文件系统 NFS有一个很大的优势:你已经拥有它,它被广泛部署,并且它通常是稳定的. NFS有两个主要缺点: >并行i / o不能很好地扩展.如果您有大量计算机访问同一个文件系统,那么您的单个NFS服务器可能很难跟上.这就是为什么较大的集群通常使用旨在支持并行i / o的集群文件系统(如Lustre,GlusterFS,GPFS,GFS等). 对于小型部署,大多数人只是使用NFS,尽管有其局限性. 还有其他各种解决方案 – 我上面提到的集群文件系统,以及AFS和其他解决方案 – 但是大多数这些解决方案需要您做一些工作才能让它们在您选择的任何分发上运行.我最近听说过关于GlusterFS的好东西,所以如果我正在寻找可能是我看的第一个NFS替代品. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |