首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装SSO : openldap、kerberos、nfs(truenas):

安装SSO : openldap、kerberos、nfs(truenas):
EN

Server Fault用户
提问于 2023-05-15 04:05:26
回答 1查看 68关注 0票数 1

目前,我能够使用openldap ldap服务器和Truenas NFS服务器(配置了LDAP访问)来设置SSO NFS设置。ubuntu客户端可以使用pam-挂载来挂载nfs本地共享。其目的是让每个LDAP用户使用pam-ldap和nss-ldap进行身份验证,然后挂载适当的nfs家庭共享。设置正常。

如我所见,有四种可能的方法。

办法- 1:

( a)在nfs-服务器导出中使用no_root_squash和sec=sys (这有严重的安全问题),并在ubuntu客户机中为使用pam_ldap认证的每个用户安装/home。这将使pam_mkdir能够为新用户自动创建主文件夹,并根据权限设置访问其他用户主文件夹。

但这似乎完全不安全,因为客户端可以伪造uid/gid来访问未经授权的共享,包括root。但是没有no_root_squash,在/home中自动创建主文件夹似乎是不可能的。

方法-2

( a)在nfs导出中使用sec=sys、root_squash。Nfs (truenas)服务器配置了ldap访问。不要挂载/home。相反,使用pam_mount或autofs只挂载经过身份验证的用户主文件夹。这就是我目前的工作设置。但是客户端仍然可以伪造uid/gid以获得未经授权的访问。但是在这种情况下,自动创建无法工作,它必须手动完成。

办法-3

( a)在nfs导出中使用sec=ldap、root_squash。在nfs服务器上安装ldap_pam auth。这种方法是否提供任何额外的安全性?据我所知,nfs_client为nfs_server提供了uid/gid (可能也是伪造的),即使nfs_server使用这些信息查询ldap服务器,我也看不到提供某种安全性的任何方式。有谁对这种方法有意见吗?我还没试过,因为我真的不明白这是怎么回事。

方法-4

a)使用kerberos。sec=krb5 in nfs_server.为kerberos设置ldap_backend。使用带有ldap后端的kerberos验证客户端用户。现在,一旦我们开始使用userPassword对用户进行身份验证,传统的LDAP字段就变得毫无用处。因此,使用ldap进行身份验证的其他应用程序(如gitea、gogs等)不能进一步使用ldap,因为ldap服务器中的userPassword字段与kerberos密钥存储字段不同步。采取这种做法的正确方式是什么?这似乎是最好的方法,只要它确实同步了传统ldap方法和kerberos ldap后端的密码。

方法-5

( a)只使用kerberos对客户机和nfs服务器进行身份验证。将传统的ldap身份验证用于所有目的,包括登录/ssh、其他应用程序(如gogs等)。这有可能吗?

我在这些方面的经验有限。请帮助您提出宝贵的建议。理想情况下,我想要一个带有nfs本地股票的SSO,并以openldap作为我的后端。如果可能的话,它应该是无缝的,就像不是nfs共享一样,如果权限允许,每个用户都可以访问其他用户文件夹。

提供合理安全性的更简单的解决方案是足够好的。

-thanks tachionic

EN

回答 1

Server Fault用户

回答已采纳

发布于 2023-05-16 11:40:44

( a)在nfs导出中使用sec=ldap、root_squash。在nfs服务器上安装ldap_pam auth。这种方法是否提供任何额外的安全性?据我所知,nfs_client为nfs_server提供了uid/gid (可能也是伪造的),即使nfs_server使用这些信息查询ldap服务器,我也看不到提供某种安全性的任何方式。有谁对这种方法有意见吗?我还没试过,因为我真的不明白这是怎么回事。

这并不是因为NFS没有将PAM用于任何事情。

NFS (特别是v4)可能涉及用于用户⇆uid查找的LDAP,因为它在stat()结果中通过线路发送用户名,但是这a)对sec=sys没有影响,b)不是通过⇆完成的。

( a)在nfs导出中使用sec=ldap、root_squash。在nfs服务器上安装ldap_pam auth。这种方法是否提供任何额外的安全性?据我所知,nfs_client为nfs_server提供了uid/gid (可能也是伪造的),即使nfs_server使用这些信息查询ldap服务器,我也看不到提供某种安全性的任何方式。有谁对这种方法有意见吗?我还没试过,因为我真的不明白这是怎么回事。

sec=ldap不存在。(如果它确实存在,它将类似于sec=password而不是sec=ldap,就像SSH没有"ldap“身份验证机制一样,因为在客户端服务器之间没有任何LDAP相关的传输。但是,NFS一开始没有任何基于密码的身份验证机制。)

a)使用kerberos。sec=krb5 in nfs_server.为kerberos设置ldap_backend。使用带有ldap后端的kerberos验证客户端用户。现在,一旦我们开始使用userPassword对用户进行身份验证,传统的LDAP字段就变得毫无用处。因此,使用ldap进行身份验证的其他应用程序(如gitea、gogs等)不能进一步使用ldap,因为ldap服务器中的userPassword字段与kerberos密钥存储字段不同步。

对于OpenLDAP,可以将userPassword字段设置为{SASL}user@REALM,以对运行在服务器上的Cyrus saslauthd守护进程执行“简单绑定”的传递身份验证,该进程能够根据Kerberos (使用-a kerberos5模式)验证密码。

请记住,Kerberos无法根据LDAP服务器对用户进行身份验证;"LDAP后端“纯粹用于KDC的数据存储。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1131152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档