sh-beta Asked: 2009-06-05 17:53:15 +0800 CST2009-06-05 17:53:15 +0800 CST 2009-06-05 17:53:15 +0800 CST 针对 Active Directory 对 OpenBSD 进行身份验证 772 编辑:将其重新格式化为问答。如果有人可以将其从 Community Wiki 更改为典型问题,那可能也更合适。 如何针对 Active Directory 对 OpenBSD 进行身份验证? active-directory authentication openbsd kerberos 2 个回答 Voted Best Answer sh-beta 2009-06-10T07:16:47+08:002009-06-10T07:16:47+08:00 前言 在使用 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。除了路径和 login.conf 之外的所有内容都可能在其他运行相同 Heimdal 的 *nixes 上运行,但同样是 YMMV。 指示 这些步骤假设您尝试针对域EXAMPLE.COM 验证[email protected]。域控制器是 pdc.EXAMPLE.COM。 创建一个名为myhost的 Active Directory 用户帐户(这不是错字,这些说明不适用于计算机帐户)。禁用密码过期,不要让用户更改自己的密码。将密码设置为您喜欢的任何密码 - 很快就会更改。 在新的 OU 下创建用户帐户,将其从域用户组中删除并将其添加到专用组中,这可能是一个好主意。这完全取决于您的品味和您的安全布局。 在 pdc.EXAMPLE.COM 上,下载并安装 Windows Server Support Tools(具体来说,您需要 ktpass.exe) 在 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 密钥表文件。 安全地将 c:\temp\myhost.keytab 复制到 myhost 并从 pdc.EXAMPLE.COM 中删除该文件 在 myhost 上,将 AD 密钥表添加到您的主密钥表: ktutil 复制 /path/to/myhost.keytab /etc/kerberosV/krb5.keytab 配置 /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 =示例.COM 验证您是否可以获得票: # 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] 修改 /etc/login.conf 以使用 Kerberos 身份验证。您的确切 login.conf 配置将根据您使用系统的方式而有所不同,但要从 vanilla 安装转到使用 Kerberos,只需在默认登录类下编辑并注释此行: :tc=auth-defaults:\ 并在其上方添加: :auth=krb5-or-pwd:\ 这将首先检查 Kerberos,除非用户是 root。如果 Kerberos 失败,它将使用本地密码。 添加您要在此主机上进行身份验证的用户。将密码留空,除非您希望它们能够同时使用 Active Directory 和本地密码(不推荐)。 您可以将现有用户的密码“chpass <user>”置空,并将“加密密码:”值替换为星号 (*) 测试 SSH 和 Sudo。两者都应该与您的 Active Directory 凭据完美配合。 这里的所有都是它的。 链接 几个有用的网站: Kerberos 5 互操作性分步指南 | 微软文档 创建 Kerberos 服务主体名称和密钥表文件 | IBM 知识中心 Aaron Mason 2016-01-29T15:35:18+08:002016-01-29T15:35:18+08:00 对上述说明进行了更新,因为此后发生了一些变化。 在 OpenBSD 5.6 中,出于对代码质量的担忧以及没有人愿意花时间对其进行审核,决定从基本发行版中删除 Heimdal。在 5.7 中,它作为一个包提供(对于 5.6,您需要从源代码构建或弄清楚如何在源代码中重新启用它)。因此,在遵循上述说明之前,需要完成以下附加步骤: -3。从你最喜欢的镜像安装heimdal和包。login_krb5 -2。复制/usr/local/libexec/auth/login_krb5*到/usr/libexec/auth. -1。如果您打算大量使用 heimdal 工具,请添加/usr/local/heimdal/bin到您的系统路径。否则,请务必在使用工具时引用它们的完整路径。 此外,krb5.confandkrb5.keytab文件现在进入/etc/heimdal。
前言
在使用 PAM 的系统上,使用 Kerberos 对 Active Directory 进行身份验证非常简单,但 OpenBSD 则不然,这使它变得更加困难。从 tcpdump 来看,PAM 系统似乎只是在进行预身份验证,而 OpenBSD 的 bsd_auth 系统正在使用整个 Kerberos 身份验证过程。
无论如何,这花了我一段时间才弄清楚,所以希望一些简明的说明可以节省你的时间。
在我们开始之前的一些快速说明:
指示
这些步骤假设您尝试针对域EXAMPLE.COM 验证[email protected]。域控制器是 pdc.EXAMPLE.COM。
创建一个名为myhost的 Active Directory 用户帐户(这不是错字,这些说明不适用于计算机帐户)。禁用密码过期,不要让用户更改自己的密码。将密码设置为您喜欢的任何密码 - 很快就会更改。
在新的 OU 下创建用户帐户,将其从域用户组中删除并将其添加到专用组中,这可能是一个好主意。这完全取决于您的品味和您的安全布局。
在 pdc.EXAMPLE.COM 上,下载并安装 Windows Server Support Tools(具体来说,您需要 ktpass.exe)
在 pdc.EXAMPLE.COM 上,运行:
这会将 myhost 用户的密码更新为随机密码 (+rndpass),将 Kerberos 主体“host/[email protected]”映射到 Active Directory 中的用户“myhost”,然后将主体和私钥信息转储到-out 密钥表文件。
安全地将 c:\temp\myhost.keytab 复制到 myhost 并从 pdc.EXAMPLE.COM 中删除该文件
在 myhost 上,将 AD 密钥表添加到您的主密钥表:
配置 /etc/krb5.conf。以下是您需要的最低要求。有很多可用的选项,请查看手册页以获取更多详细信息。这只是将最大可接受的时钟偏差设置为 5 分钟,使EXAMPLE.COM 成为默认领域,并告诉Kerberos 如何在DNS 和Kerberos 领域之间进行转换。
验证您是否可以获得票:
修改 /etc/login.conf 以使用 Kerberos 身份验证。您的确切 login.conf 配置将根据您使用系统的方式而有所不同,但要从 vanilla 安装转到使用 Kerberos,只需在默认登录类下编辑并注释此行:
并在其上方添加:
这将首先检查 Kerberos,除非用户是 root。如果 Kerberos 失败,它将使用本地密码。
添加您要在此主机上进行身份验证的用户。将密码留空,除非您希望它们能够同时使用 Active Directory 和本地密码(不推荐)。
您可以将现有用户的密码“chpass
<user>
”置空,并将“加密密码:”值替换为星号 (*)测试 SSH 和 Sudo。两者都应该与您的 Active Directory 凭据完美配合。
这里的所有都是它的。
链接
几个有用的网站:
对上述说明进行了更新,因为此后发生了一些变化。
在 OpenBSD 5.6 中,出于对代码质量的担忧以及没有人愿意花时间对其进行审核,决定从基本发行版中删除 Heimdal。在 5.7 中,它作为一个包提供(对于 5.6,您需要从源代码构建或弄清楚如何在源代码中重新启用它)。因此,在遵循上述说明之前,需要完成以下附加步骤:
-3。从你最喜欢的镜像安装
heimdal
和包。login_krb5
-2。复制
/usr/local/libexec/auth/login_krb5*
到/usr/libexec/auth
.-1。如果您打算大量使用 heimdal 工具,请添加
/usr/local/heimdal/bin
到您的系统路径。否则,请务必在使用工具时引用它们的完整路径。此外,
krb5.conf
andkrb5.keytab
文件现在进入/etc/heimdal
。