AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 20202
Accepted
sh-beta
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 2 个回答
  • 7951 Views

2 个回答

  • Voted
  1. 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。

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

    2. 在新的 OU 下创建用户帐户,将其从域用户组中删除并将其添加到专用组中,这可能是一个好主意。这完全取决于您的品味和您的安全布局。

    3. 在 pdc.EXAMPLE.COM 上,下载并安装 Windows Server Support Tools(具体来说,您需要 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 密钥表文件。

    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 =示例.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 身份验证。您的确切 login.conf 配置将根据您使用系统的方式而有所不同,但要从 vanilla 安装转到使用 Kerberos,只需在默认登录类下编辑并注释此行:

      :tc=auth-defaults:\

      并在其上方添加:

      :auth=krb5-or-pwd:\

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

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

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

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

    这里的所有都是它的。

    链接

    几个有用的网站:

    • Kerberos 5 互操作性分步指南 | 微软文档
    • 创建 Kerberos 服务主体名称和密钥表文件 | IBM 知识中心
    • 16
  2. 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。

    • 5

相关问题

  • 内部名称解析

  • 什么时候域比工作组更适合网络?

  • 我应该在 Active Directory 中配置哪些重要的组策略设置?[关闭]

  • 使用 AD 在特定时间段内阻止对特定网站的访问

  • 在登录期间打开 URL 的现代方法是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve