Pha*_*nto 2 linux active-directory authentication cvs pam
我有一个混合的 Linux/Windows 软件开发环境,其中 Linux 客户端正在迁移到他们能够针对 Active Directory 进行身份验证的系统。(那部分我想通了)
我们的实验室目前正在使用 CVS 对我们的源代码进行版本控制。在迁移过程中,我们需要用户能够对我们的 CVS 服务器进行身份验证。我已经计划好当迁移发生时,我们将设置 CVS 服务器,以针对 AD 对用户进行身份验证。
不幸的是,我对 CVS 没有很多经验。这项任务甚至可能吗?据我了解,它可以设置为基于系统上的本地用户对用户进行身份验证。但是,由于实际用户不会将他们的凭据存储在本地服务器上(因为它是从 AD 中提取的),是否可以将 CVS 指定为依赖pam进行身份验证?
我已阅读有关使用用户凭据通过 SSH 访问 CVS 的信息。这是发生这种情况的必要条件吗?如果是这样,如何设置?
我非常感谢您的帮助!
这将是相当长的时间,但我们还是去做吧。首先,是的,这是可以做到的。我不能提供太多配置 CVS 的方法,但我可以提供您需要的所有内容,以使 linux 服务器针对 Active Directory 验证用户。
这一切都始于 /etc/nsswitch.conf。这是相关部分:
passwd: files ldap compat
shadow: files ldap compat
group: files ldap compat
现在,根据您使用的发行版,您需要安装一些 ldap 包。在 Redhat/Fedora/CentOS 下,这将是 nss_ldap,在 Debian/Ubuntu 等下,您将需要 libnss-ldap 和 libpam-ldap。我还会推荐一些用于调试的 ldap-utils。
有了上述内容,您的名称服务将尝试使用 LDAP,因此现在您需要配置各种 LDAP 包以使用您的 AD 服务器。搜索基础应为base cn=Users,dc=aminocom,dc=com,绑定 DN 应为binddn cn=LDAPsearch,cn=Users,dc=aminocom,dc=com。您将需要定义特定用户以允许浏览 AD。我们创建了一个名为 LDAPSearch 的用户,并将其凭据放入名为 .secret 的单独文件中。阅读这些包的文档以获取更多详细信息。此外,我会推荐软绑定策略和以下属性映射:
# UNIX 3.5 映射服务 nss_base_passwd cn=用户,dc=aminocom,dc=com?sub nss_base_shadow cn=用户,dc=aminocom,dc=com?sub nss_base_group cn=用户,dc=aminocom,dc=com?sub nss_map_objectclass posixAccount 用户 nss_map_objectclass shadowAccount 用户 nss_map_attribute uid sAMAccountName nss_map_attribute uidNumber msSFU30UidNumber nss_map_attribute gidNumber msSFU30GidNumber nss_map_attribute loginShell msSFU30LoginShell nss_map_attribute gecos 名称 nss_map_attribute userPassword msSFU30Password nss_map_attribute homeDirectory msSFU30HomeDirectory nss_map_objectclass posixGroup 组 nss_map_attribute uniqueMember msSFU30PosixMember nss_map_attribute cn cn pam_login_attribute sAMAccountName pam_filter 对象类=用户 pam_member_attribute msSFU30PosixMember pam_groupdn cn=nixUsers,cn=Users,dc=aminocom,dc=com pam_password 广告
所有这些都假定您在域控制器上安装了适用于 Unix 的 Windows 服务。在 AD 中,您需要配置一个主要的 Unix 组(在我们的例子中称为 nixUsers)并将每个 CVS 用户添加到该组中。
您可能应该能够直接使用 AD(即没有 Unix 的 Windows 服务),但这将需要不同的属性映射。你可能需要在那里试验一下。
现在我们进入 PAM 配置。在 Debian 下,基本上有 4 个文件需要修改:
1.) 普通账户:
帐户需要 pam_unix.so 损坏的影子 帐户足够 pam_localuser.so 账户足够 pam_succeed_if.so uid2.) 共同认证:
需要身份验证 pam_env.so 验证足够的 pam_unix.so nullok try_first_pass 身份验证要求 pam_succeed_if.so uid >=500 安静 验证足够的 pam_ldap.so use_first_pass 需要身份验证 pam_deny.so3.) 公共会议:
session 可选 pam_keyinit.so 撤销 会话需要 pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid 会话需要 pam_unix.so 会话可选 pam_ldap.so4.) 通用密码
密码足够 pam_unix.so md5 shadow nullok try_first_pass 密码足够 pam_ldap.so 需要密码 pam_deny.so
在 Redhat(和衍生产品)下,所有必要的更改都应进入 /etc/pam.d/system-auth 和 /etc/pam.d/system-auth-ac 中的相关部分。
以上将允许用户使用 AD 凭据登录。但是,这不会自动为他们创建主目录(除非您为此编写更多脚本),并且不允许他们通过 linux 更改密码。这也可以做到,但需要修改他们的工作站(如果他们使用 Linux)。以上还有什么问题,再问。
我们在许多服务器上都使用它,就像一个魅力。
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |