根据Active DirectoryvalidationOpenBSD

编辑:重新格式化为问答。 如果任何人都可以从Community Wiki中将其更改为一个典型的问题,那么这可能也更合适。

我如何才能通过Active DirectoryvalidationOpenBSD?

前言

在使用PAM的系统上使用Kerberos对Active Directory进行身份validation非常简单,但是OpenBSD不会使其变得更加困难。 从tcpdump看来,PAM系统只是在进行预authentication,而OpenBSD的bsd_auth系统正在使用整个Kerberosauthentication过程。

无论如何,这花了我一些时间来弄清楚,所以希望一些简明的指示将节省您的时间。

在我们开始之前,请注意几点:

  • 尝试login之前,用户必须存在于OpenBSD系统上。 他们不autocreated。
  • 如果你想让用户自动创build,请查看Samba / Winbind。 我只有麻烦(莫名其妙的崩溃,严重的日志垃圾邮件,不可靠的身份validation),所以我只用它时,我必须。
  • 这是在OpenBSD 4.5和Windows Server 2003上testing的。我很确定它可以和Win2k一起工作,但是YMMV。
  • 这个版本的OpenBSD使用Heimdal 0.7.2。 除了path和login.conf之外,所有的东西都可能在运行相同Heimdal的其他* nix上运行,但是YMMV也是如此。

说明

这些步骤假定您正在尝试通过域EXAMPLE.COM来[email protected]。 域控制器是pdc.EXAMPLE.COM。

  1. 创build一个名为myhost的Active Directory用户帐户(这不是错字,这些说明不能用于计算机帐户)。 禁用密码过期,不要让用户更改自己的密码。 将密码设置为任何你喜欢的 – 它会很快改变。

  2. 在新的OU下创buildUser帐户可能是一个好主意,将其从Domain Users组中删除并将其添加到专用组中。 这完全是品味和安全布局的问题。

  3. 在pdc.EXAMPLE.COM上,下载并安装Windows Server支持工具(具体来说,您将需要ktpass.exe)

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

    ktpass -out c:\ temp \ myhost.keytab -princ host / [email protected] -mapuser myhost -pType KRB5 _ NT_PRINCIPAL + rndpass

    这将myhost用户的密码更新为随机(+ rndpass),将Kerberos主体“host/[email protected]”映射到Active Directory中的用户“myhost”,然后将主体和私钥信息转储到-out keytab文件。

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

  6. 在myhost上,将AD密钥表添加到您的主密钥表中:

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

  7. configuration/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 [email protected]
    [email protected]'s Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: [email protected]

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/[email protected]

  9. 修改/etc/login.conf以使用Kerberos身份validation。 您的确切login.confconfiguration将根据您如何使用您的系统而有所不同,但是从安装vanilla到使用Kerberos,只需在默认login类下编辑并注释以下行即可:

    :tc=auth-defaults:\

    并在上面添加:

    :auth=krb5-or-pwd:\

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

  10. 在这台主机上添加你想authentication的用户。 除非您希望他们能够同时使用Active Directory和本地密码(不推荐),否则请将密码留空。

    您可以删除现有用户的密码“chpass <user> ”,并用星号(*)replace“Encrypted password:”值

  11. testingSSH和Sudo。 两者都应完美地与您的Active Directory凭据一起工作。

这就是它的全部。

链接

几个有用的网站:
http://technet.microsoft.com/en-us/library/bb742433.aspx
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/tsec_kerb_create_spn.html

自那时以来,对上述指令的更新已经发生了一些变化。

在OpenBSD 5.6中,由于担心代码质量,没有人愿意花时间对Heimdal进行审计,所以决定将Heimdal从基本发行版中删除。 在5.7中,它是作为一个包提供的(对于5.6,你需要从源代码构build或弄清楚如何在源代码中重新启用它)。 因此,在遵循上述指示之前,需要完成以下附加步骤:

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

-2。 将/usr/local/libexec/auth/login_krb5*/usr/libexec/auth

-1。 如果您打算大量使用heimdal工具,请将/usr/local/heimdal/bin到您的系统path中。 否则,在使用这些工具时,一定要参考这些工具的完整path。

此外,现在将krb5.confkrb5.keytab文件放入/etc/heimdal