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 / 问题 / 1127976
Accepted
bikeactuary
bikeactuary
Asked: 2023-04-05 21:49:10 +0800 CST2023-04-05 21:49:10 +0800 CST 2023-04-05 21:49:10 +0800 CST

使用 SSSD/realm 列出 kerberos 票据、过期详细信息

  • 772

tl;dr - 我如何使用领域或 sssd(未安装 klist)检查用户的 kerberos 票证的详细信息以确认它们正在按照我试图配置的方式进行更新?

嗨 - 我在 Debian 11 系统上,该系统是 AD/域,并结合了 SSSD 和领域。值得注意的是,我没有任何软件包提供我在以前的平台上熟悉的“kinit”、“klist”等命令。

每次域用户登录时,他们都会获得一张新的 kerberos 票证,我相信通过在 /tmp 中创建一个新文件来判断,类似于“/tmp/krb5cc_1922807467_vhNkj5”。这允许他们使用 Windows 凭据访问网络资源。我注意到门票似乎会在 12-24 小时后过期,因此我正在寻找一种方法来请求有效期更长的门票,直到我的域将提供的最大值为止,和/或自动更新现有门票并获得新门票。这样我就可以允许用户使用 cron 安排任务并保证有效的票证可用。

我在 /etc/sssd/sssd.conf 中编辑了一些设置,试图增加可再生生命周期并设置票据的更新间隔并重新启动 sssd 服务。现在我一直在尝试确认这些设置已被采用——我无法找到一种方法来列出活动票证的详细信息。我可以看到我每次登录时都在创建我的票证文件,但无法判断它是否在我为测试目的设置的短时间间隔内更新。

有没有办法使用 sssd、realm 或我可能已经安装/启用的其他东西来显示用户的票证状态/详细信息?如果没有,是否有另一个我可以安装的包(例如提供 klist 的东西)不会破坏我现有的领域/sssd 配置并且不需要 AD 管理员凭据?最终,我只想要一种方法来确认我的尝试是否有效。

kerberos
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    user1686
    2023-04-06T00:07:43+08:002023-04-06T00:07:43+08:00

    tl;dr - 我如何使用领域或 sssd(未安装 klist)检查用户的 kerberos 票证的详细信息以确认它们正在按照我试图配置的方式进行更新?

    安装 klist。对于 MIT Kerberos,包是krb5-user无害的;由于 SSSD 无论如何需要,它的依赖项(krb5 库)已经安装。

    在不太可能的情况下,您的系统可能正在使用 Heimdal Kerberos(这不是默认设置,但受Debian 支持),等效的软件包将是heimdal-clients.

    最后,您可以将scp票证缓存到另一个系统并klist -c <path>在那里运行(基于文件的缓存格式甚至在 MIT Krb5 和 Heimdal 系统之间也是兼容的)。

    有没有办法使用 sssd、realm 或我可能已经安装/启用的其他东西来显示用户的票证状态/详细信息?

    不,它们旨在与 Kerberos 发行版中的标准工具一起工作,即您通常希望安装常规工具klist。

    我注意到门票似乎会在 12-24 小时后过期,因此我正在寻找一种方法来请求有效期更长的门票,直到我的域将提供的最大值为止,和/或自动更新现有门票并获得新门票。

    24 小时通常是我期望域提供的最长期限。(更长的生命周期会增加被盗门票的影响,如果这种情况发生的话,因为不可能撤销仍然有效的门票——这就是为什么他们有一个单独的“可更新”生命周期,需要再次联系 KDC 以延长有效期。)

    但是,最长可更新生命周期通常为 7 或 14 天,之后有必要再次提供凭证(密码、智能卡)。让 cronjobs 在无人看管的情况下工作更长时间需要系统存储初始凭据(例如 Windows 服务或计划任务如何要求您以明文形式提供帐户密码)。

    这样我就可以允许用户使用 cron 安排任务并保证有效的票证可用。

    除了 SSSD 之外,还有几种现有方法可以做到这一点。(实际上,我不确定 Debian 中的 SSSD 版本是否可以自行更新用户票证;我认为这是后来添加的,即便如此,也仅适用于 SSSD 管理的KCM:缓存类型,而不适用于基于文件的缓存。)

    依赖交互式登录期间获得的票证很可能没有意义(因为迟早有人会在票证过期前忘记登录)。相反,让用户明确存储他们的实际密码——对于 Linux,它将以密钥表的形式存储派生密钥(而不是明文密码)。毕竟,如果您信任系统为用户永久存储 Kerberos TGT,那么也可以信任同一个系统来保护该用户的密码。

    一旦你有了一个 keytab(可以使用 的addent -f子命令创建ktutil),有多种方法可以让 cronjob使用该 keytab:

    1. gssproxy 守护进程,它有点像 ssh-agent,但用于 Kerberos。它带有一个 NFS 示例,它使用存储在的密钥表代表/var/lib/gssproxy/clients/<uid>.keytab配置为使用它的程序自动获取票证(对于使用常规 libkrb5 的程序,这意味着GSS_USE_PROXY=1在环境中)。

      gssproxy 的优势之一是可以为其提供用户自己无法访问的密钥表,类似于 ssh-agent 不允许提取解密密钥的方式。

    2. 最近的 libkrb5 中内置的“客户端凭据”功能允许您将密钥表放置在/var/lib/krb5/user/<uid>/client.keytab(或由 定义的某些自定义位置KRB5_CLIENT_KTNAME=),libkrb5 将使用它来根据需要获取票证。

      与 gssproxy 不同,这确实需要作业可读密钥表。

    3. k5start软件包中的工具,kstart一个使用密钥表获取票证并在其运行过程中保持票证更新的程序。

    4. 一个基本的kinit -k -t <keytab>cronjob,每隔几个小时重新获取一次票证。

    (如果你确实想依赖现有的缓存,同一个kstartDebian 软件包也有一个krenew类似于k5startexcept 的工具,只是用来更新现有的票证。)

    • 2

相关问题

  • Windows Admin Center 基于资源的委派停止使用 KRB_AP_ERR_MODIFIED 错误

  • MAC 10.4.11 & Win2k8

  • 有没有办法让 Kerberos 凭证委托两次?为什么不?

  • Windows 可以与 LDAP 集成吗?

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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