使用Kerberos 5在Linux中使用Active Directorylogin

我在使用Windows 2008 Server上的活动目录(已安装对UNIX系统的支持)上为Linux上的用户(确切地说是Fedora Core 15)设置auth时遇到问题。 我已经成功地设置了Kerberos,使用kinit -p <login>klist进行testing以查看票证。 但我仍然无法login。

为了减less无用的答案:没有桑巴,Winbind,同样或其他软件允许。 只允许NIS / LDAP。

澄清:我想设置本地和SSH访问的客户端机器。

更新:我通过LDAPconfiguration了AD访问, getent passwd 106289gmgetent shadow提供了有效的getent passwd 106289gm ,但是getent group没有显示任何AD组。

如果你想“简单的方法”,我有一些与system-config-authentication和Winbind的GUI方式的好经验。 显然,这不是明确的Kerberos,所以如果你觉得倾向的话,适当地降低了我的工作效率。 你可以做Winbind,但它也明确允许LDAP,如果这更符合你的要求。 我得到一个关于NSS-LDAP库的不祥的红色错误,

找不到/lib64/libnss_ldap.so.2文件,但LDAP支持正常工作需要。 安装提供此文件的nss-pam-ldapd软件包。

但是我相信你可以用最less的努力来安装yum。 你说你想要Kerberos,但比只说NIS / LDAP是允许的。 那么为什么不直接访问AD就好像它是LDAP一样。 根据我的经验,这绝对是可能的。 它也使您可以selectconfigurationKerberos。 看截图。 我正在谈论的GUI实用程序的示例屏幕截图

提示,提示,这是Fedora 15 ,而不是Fedora Core ,并且在一段时间内还没有成为“Core”。 我不会对与名称变化有关的臃肿开玩笑(作为一个非常专业的Fedora用户)。

Kerberosauthentication是一件事,能够login是另一回事。 要login,您需要:

  1. 有效身份validation(部分完成:由Kerberos提供,必须检查pam login / auth是否足够)
  2. 有效的userid和groupid(通常由winbind提供,同样,ldap,Centrify,AD服务用于unix,或者本地位于/ etc / passwd,/ etc / group文件中)
  3. 在/etc/nsswitch.conf中为用户和组定义有效的查找条目和顺序。
  4. 有效的shell和home(通常是预创build或自动安装)

注1:由于您可以执行getent passwd但不能使用getent group ,所以我怀疑您正在使用Active Directory服务来映射到LDAP方法。 你是否在Domain \ Domainusers里设置了有效的gid? AFAIK,Kerberos不提供(或检查)组。 能够看到uid条目意味着LDAP正确映射,但gid条目可能不在LDAP中。

注2:在单个查询中LDAP可以返回的条目数量也是有限的,可能需要一些时间来提取结果。 你等了很久吗? 你可以特别检查一下条目吗,比如getent passwd user1getent passwd Domain\\user1getent group domain-groupname-shown-in-getent-passwd 。 这应该绕过查找时间,甚至超时。

你正在使用哪个版本的AD? 根据版本,需要安装或启用标准模式的扩展。 对Linux系统进行身份validation的用户需要在AD中设置额外的参数。

另外,如果没有看到你的configuration文件,也不知道你在auth日志中看到了什么具体的错误信息,那么很难给予帮助。 如果你能够成功获得一张票,这可能意味着你的Kerberos设置是正确的。 但是,pam,nsswitch和ldap也必须正确configuration。

tcpdump在这些情况下也是非常有用的。 有时错误信息不是很有帮助,直接观察电线上的对话可能是非常有用的。

您是否在PAM中启用了Kerberoslogin?

/etc/pam.d/system-auth查看“auth sufficient pam_krb5.so”(或者这些行的内容)行。 如果没有看到,请运行authconfig --enablekrb5 --update ,确保文件中出现类似这样的行,然后再次尝试login。