要让计算机在不重新启动计算机的情况下更新其组成员身份,您可以使用命令清除 kerberos 票证klist -li 0x3e7 purge
。随后的gpupdate
或gpresult
将反映新的组成员资格。
但是,这似乎不适用于域控制器。为什么?
票证已成功清除,但后续gpresult /r
未反映更改。
要让计算机在不重新启动计算机的情况下更新其组成员身份,您可以使用命令清除 kerberos 票证klist -li 0x3e7 purge
。随后的gpupdate
或gpresult
将反映新的组成员资格。
但是,这似乎不适用于域控制器。为什么?
票证已成功清除,但后续gpresult /r
未反映更改。
从 Fedora 38 升级到 39 会导致使用 kerberos ( sec=krb5
) 从 Synology NAS 挂载 NFSv4 共享。使用
mount -v -t nfs -o nfsvers=4,minorversion=1,sec=krb5 10.123.99.2:/volume1/video /mnt/
在Fedora 39客户端上,我收到以下错误:
mount.nfs: timeout set for Sat Feb 24 12:25:20 2024
mount.nfs: trying text-based options 'nfsvers=4,sec=krb5,vers=4.1,addr=10.123.99.2,clientaddr=10.123.99.10'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 10.123.99.2:/volume1/video
幸运的是,有关 Synology NAS(服务器)的信息更有帮助:我在以下位置收到以下错误/var/log/messages
:
svcgssd[10330]: ERROR: GSS-API: error in handle_nullreq: gss_accept_sec_context(): GSS_S_FAILURE (Unspecified GSS failure. Minor code may provide more information) - Encryption type aes256-cts-hmac-sha384-192 not permitted
由于另一台Fedora 38仍然可以完美运行,我认为新的Fedora 39系统默认使用 Synology NAS 不支持的新加密类型。因此,我尝试了allow_weak_crypto = true
,default_tgs_enctypes = aes256-cts-hmac-sha1-96
和/或default_tkt_enctypes = aes256-cts-hmac-sha1-96
in /etc/krb5.conf
,但对服务器上的问题及其错误消息没有影响。(它破坏了使用我的标准用户名登录。我使用 FreeIPA 服务器进行授权和身份验证,所以我想这与其他加密不同。)
在 reddit 上,我得到了玩 的提示update-crypto-policies
。这也行不通。
有没有办法设置使用哪种加密?还是您认为还有其他问题?
谢谢!
最近的安全更新已开始导致日志中出现以下警告kdc
:
krb5kdc[1127011]: Stash file /etc/krb5kdc/stash uses DEPRECATED enctype des3-cbc-sha1
鉴于较新版本的 openSSL 将完全停止支持各种密码,我想在我的 kerberos 系统崩溃之前将此文件更改为未弃用的类型。
如何更改存储文件的加密类型?
我需要在配置中更改哪些内容才能继续读取存储文件?
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 管理员凭据?最终,我只想要一种方法来确认我的尝试是否有效。
在单 AD 林的 DC 上,我以默认域管理员Administrator
(在本例中也是企业管理员)身份登录。在提升的 PowerShell 中,我尝试使用以下命令获取 Kerberos 加密类型(如此处所述):
ksetup /getenctypeattr my.example.com
但我收到一条错误消息:
Query of attributes on MY.EXAMPLE.COM failed with 0xc0000034
Failed /GetEncTypeAttr : 0xc0000034
结果(很可能),我在尝试设置加密类型时也会收到此错误,如this question中所述,不幸的是,该问题目前没有一个严肃的答案。
这确实发生在 Windows Server 2016 和 Windows Server 2019 上,它们大多使用默认设置进行设置。一个简单的怎么会失败?错误代码似乎没有记录。有人知道如何解决或解决这个问题吗?
在 GUI(Active Directory 域和信任MMC 管理单元 ( domain.msc
))中,您可以为信任关系设置“其他域支持 Kerberos AES 加密”设置:
我正在寻找一种以编程方式设置此设置的方法。我已经查看了Install-ADDSDomain
PowerShell cmdlet 以及该netdom TRUST
工具,但两者似乎都不包含设置Kerberos AES 加密设置的选项。
有人可以告诉我,如何以编程方式设置此设置?
我有一个简单的 MS ADDS 多域林设置,带有一个父域和一个子域。我使用这个官方文档成功地将 RHEL 8 服务器加入了子域。所有操作系统都已通过使用尽可能多的默认值进行设置。我可以通过使用子域的 AD 帐户成功 SSH 到 RHEL 服务器。但是当我尝试使用父域的帐户时,登录失败。我一提交父域的用户名,就journalctl
报如下错误:
sssd_be[...]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (KDC has no support for encryption type)
我检查了每个域的 DC,可以确认所有 DC 都支持相同的三种默认加密类型(存储在msDS-SupportedEncryptionTypes
每个 DC 计算机帐户的属性中):
我还确认 RHEL 8 提供了合适的加密类型 ( /etc/crypto-policies/back-ends/krb5.config
):
[libdefaults]
permitted_enctypes = aes256-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 camellia256-cts-cmac aes128-cts-hmac-sha1-96 aes128-cts-hmac-sha256-128 camellia128-cts-cmac
因此,应该有两个匹配项:aes128-cts-hmac-sha1-96
和aes256-cts-hmac-sha1-96
。正如我已经说过的,它在子域中运行良好。那么,为什么没有适合父域的加密类型呢?
我正在尝试将主目录从我的 NAS 导出到 ubuntu 客户端 - 服务器是 TrueNAS Scale,它是基于 Debian 的。Kerberos 可以正常工作,因此用户可以获得适当的票证以对服务器进行身份验证。
我的主要目标是用户可以从服务器上挂载他们的主目录。
我在服务器上有一个名为 home 的共享,每个用户有一个目录。主目录归根用户所有,子目录归用户所有。但是,如果我不使用 maproot 或 mapall,即使我设法挂载共享,如果挂载 /home/folder,用户也无法将任何内容写入他的文件夹。
如果我使用 maproot=root,用户会挂载它,但他写的所有内容都保存为 root。我在这里迷路了,但似乎id映射可能有问题。文件的 uid/gid 在服务器和客户端、显示的正确名称等方面是相同的。这让我相信映射是正确的 - 但是,当使用 maproot=root 时,为什么我最终可以访问不支持的文件夹不属于我,为什么我用那个用户创建的所有东西都归根用户所有?
我怎样才能正确地导出它,以便我得到根压扁,以及用户只能访问他们自己的目录?
我已成功将 ubuntu 机器(Ubuntu 20.04 LTS)加入到 Active Directory。因此,我可以使用 AD-Accounts 登录,为用户获取并更新票证授予票证,并通过 Kerberos 身份验证访问网络共享。
但是,我很难获得计算机帐户的初始凭据:
admin@comp01:~$ sudo KRB5_TRACE=/dev/stdout kinit -kt /etc/krb5.keytab
[sudo] password for admin:
[232252] 1645435537.855061: Getting initial credentials for host/[email protected]
[232252] 1645435537.855062: Looked up etypes in keytab: rc4-hmac, aes128-cts, aes256-cts
[232252] 1645435537.855064: Sending unauthenticated request
[232252] 1645435537.855065: Sending request (187 bytes) to COMPANY.LAN
[232252] 1645435537.855066: Sending initial UDP request to dgram 172.27.17.6:88
[232252] 1645435537.855067: Received answer (84 bytes) from dgram 172.27.17.6:88
[232252] 1645435537.855068: Response was from master KDC
[232252] 1645435537.855069: Received error from KDC: -1765328378/Client not found in Kerberos database
kinit: Client 'host/[email protected]' not found in Kerberos database while getting initial credentials
我在这个问题上花了几个小时没有进展。可能我错过了一些基本步骤。请求的主体包含在 ubuntu 机器上的本地密钥表中:
root@comp01:~$ klist -kte
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
4 02/17/2022 07:34:59 [email protected] (arcfour-hmac)
4 02/17/2022 07:34:59 [email protected] (aes128-cts-hmac-sha1-96)
4 02/17/2022 07:34:59 [email protected] (aes256-cts-hmac-sha1-96)
4 02/17/2022 07:34:59 host/[email protected] (arcfour-hmac)
4 02/17/2022 07:34:59 host/[email protected] (aes128-cts-hmac-sha1-96)
4 02/17/2022 07:34:59 host/[email protected] (aes256-cts-hmac-sha1-96)
4 02/17/2022 07:34:59 host/[email protected] (arcfour-hmac)
4 02/17/2022 07:34:59 host/[email protected] (aes128-cts-hmac-sha1-96)
4 02/17/2022 07:35:00 host/[email protected] (aes256-cts-hmac-sha1-96)
4 02/17/2022 07:35:00 RestrictedKrbHost/[email protected] (arcfour-hmac)
4 02/17/2022 07:35:00 RestrictedKrbHost/[email protected] (aes128-cts-hmac-sha1-96)
4 02/17/2022 07:35:00 RestrictedKrbHost/[email protected] (aes256-cts-hmac-sha1-96)
4 02/17/2022 07:35:00 RestrictedKrbHost/[email protected] (arcfour-hmac)
4 02/17/2022 07:35:00 RestrictedKrbHost/[email protected] (aes128-cts-hmac-sha1-96)
4 02/17/2022 07:35:00 RestrictedKrbHost/[email protected] (aes256-cts-hmac-sha1-96)
并且主体也在 AD-Domain 控制器上注册:
> setspn -L comp01
Registrierte Dienstprinzipalnamen (SPN) für CN=COMP01,CN=Computers,DC=company,DC=lan:
RestrictedKrbHost/comp01.company.lan
host/comp01.company.lan
RestrictedKrbHost/COMP01
host/COMP01
ubuntu 机器已加入 AD 域,使用
> realm join company.lan
而Kerberos配置文件如下:
[libdefaults]
default_realm = COMPANY.LAN
ccache_type = 4
forwardable = true
proxiable = true
fcc-mit-ticketflags = true
[realms]
COMPANY.LAN = {
kdc = DC.company.lan
admin_server = DC.company.lan
default_domain = company.lan
}
[domain_realm]
.company.lan = COMPANY.LAN
company.lan = COMPANY.LAN
正向和反向 DNS 看起来也不错:
> nslookup comp01
Server: DC.company.lan
Address: 172.27.17.41
Name: comp01.company.lan
Address: 172.27.17.131
> nslookup 172.27.17.131
Server: DC.company.lan
Address: 172.27.17.41
Name: comp01.company.lan
Address: 172.27.17.131
我真的很感谢任何指引我朝着正确方向前进的提示。