针对Active Directory验证OpenBSD


24

编辑:将其重新格式化为问答。如果有人可以将其从Community Wiki更改为一个典型的问题,那也许也更合适。

如何针对Active Directory验证OpenBSD?


非常好!看起来很透彻,写得很好。我不使用OpenBSD,但是AD部分看起来很不错。
埃文·安德森

+1是一个不错的指南,尽管这并不是真正的问题。
David Schmitt,2009年

您应该将其更改为“问答”格式。
Doug Luxem

已更改,尽管它仍然是社区Wiki。如果其他人可以更改,请继续。
sh-beta

Answers:


17

前言

在使用PAM的系统上,使用Kerberos对Active Directory进行身份验证非常简单,但是OpenBSD却不这样做,因此更加困难。从tcpdump看来,PAM系统似乎只是在进行预身份验证,而OpenBSD的bsd_auth系统正在使用整个Kerberos身份验证过程。

无论如何,这花了我一段时间,所以希望一些简洁的说明可以节省您的时间。

在开始之前,请注意以下几点:

  • 用户必须存在于OpenBSD系统上,然后才能尝试登录。它们不是自动创建的。
  • 如果要自动创建用户,请查看Samba / Winbind。除此以外,我没有任何麻烦(莫名其妙的崩溃,严重的日志垃圾邮件,不可靠的身份验证),因此我仅在需要时使用它。
  • 这已经在OpenBSD 4.5和Windows Server 2003上进行了测试。我很确定它可以与Win2k一起使用,但是可以与YMMV一起使用。
  • 此版本的OpenBSD使用Heimdal 0.7.2。除了path和login.conf之外,这里的所有内容都可能在运行相同Heimdal的其他* nix上运行,但是同样,YMMV。

使用说明

这些步骤假定您要尝试对域EXAMPLE.COM认证myuser@myhost.fqdn。域控制器是pdc.EXAMPLE.COM。

  1. 创建一个名为myhost的Active Directory用户帐户(这不是输入错误,这些说明不适用于计算机帐户)。禁用密码有效期,并且不要让用户更改自己的密码。将密码设置为任意密码-很快就会更改。

  2. 最好在新的OU下创建用户帐户,将其从“域用户”组中删除,然后将其添加到专用组中。这完全取决于您的口味和您的安全布局。

  3. 在pdc.EXAMPLE.COM上,下载并安装Windows Server支持工具(特别是,您需要ktpass.exe)

  4. 在pdc.EXAMPLE.COM上,运行:

    ktpass -out c:\ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -pType KRB5 _NT_PRINCIPAL + rndpass

    这会将myhost用户的密码更新为随机密码(+ rndpass),将Kerberos主体“ host/myhost.fqdn@EXAMPLE.COM”映射到Active Directory中的用户“ myhost”,然后将主体和私钥信息转储到输出密钥表文件。

  5. 将c:\ temp \ myhost.keytab安全复制到myhost并从pdc.EXAMPLE.COM删除文件

  6. 在myhost上,将AD键表添加到主键表中:

    ktutil复制/path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. 配置/etc/krb5.conf。以下是您所需的最低要求。有很多可用的选项,请查看联机帮助页以获取更多详细信息。这只是将最大可接受的时钟偏差设置为5分钟,使EXAMPLE.COM成为默认领域,并告诉Kerberos如何在DNS和Kerberos领域之间进行转换。

    [libdefaults]
    clockskew = 300
    default_realm = EXAMPLE.COM

    [领域]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm]
    .EXAMPLE.COM = EXAMPLE.COM

  8. 验证您可以获得票证:

    # kinit Administrator@EXAMPLE.COM
    Administrator@EXAMPLE.COM's Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: Administrator@EXAMPLE.COM

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM

  9. 修改/etc/login.conf以使用Kerberos身份验证。具体的login.conf配置会根据您使用系统的方式而有所不同,但是要从普通安装转到使用Kerberos,只需在默认登录类下编辑并注释以下行:

    :tc=auth-defaults:\

    并在其上面添加:

    :auth=krb5-or-pwd:\

    除非用户是root用户,否则它将首先检查Kerberos。如果Kerberos失败,它将使用本地密码。

  10. 添加您要在此主机上进行身份验证的用户。除非您希望密码能够同时使用Active Directory和本地密码(不推荐),否则将密码留为空白。

    您可以空白现有用户的密码“ chpass <user>”,并用星号(*)替换“加密的密码:”值

  11. 测试SSH和Sudo。两者都应与您的Active Directory凭据完美配合。

这里的所有都是它的。

链接

几个有用的网站:


好像2008 R2包含了ktpass.exe。也许还有2008,目前还不能肯定。如果有人可以澄清,那就太好了。
亚伦·梅森

此外,为了在5.7及更高版本上执行此操作,您需要安装Heimdal软件包-在5.6中已从基础中删除了该软件包。
亚伦·梅森

以前的注释的附录-您还必须安装login_krb5软件包并将其复制login_krb5-or-pwd/usr/libexec/auth-此外,配置文件和keytab也已存在,/etc/heimdal并且与/etc/kerberosV以前的OpenBSD版本不同。
亚伦·梅森

5

此后,对以上说明进行了更新,因为其中一些内容已发生更改。

在OpenBSD 5.6中,由于担心代码质量并且没有人愿意花时间对其进行审核,因此决定从基本发行版中删除Heimdal。在5.7中,它作为软件包提供(对于5.6,您需要从源代码构建或弄清楚如何在源代码中重新启用它)。因此,在按照上述说明进行操作之前,需要完成以下附加步骤:

-3。从您最喜欢的镜像安装heimdallogin_krb5软件包。

-2。复制/usr/local/libexec/auth/login_krb5*/usr/libexec/auth

-1。如果打算大量使用heimdal工具,请添加/usr/local/heimdal/bin到系统路径。否则,请确保在使用工具时以完整路径引用这些工具。

另外,krb5.confkrb5.keytab文件/etc/heimdal现在进入。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.