背景:
我们有许多通过 VPN 连接的 AD 网络(域),并且已建立 AD 信任关系。我们有一个外部托管的 Web 服务器,并且已配置无缝认证对于受信任网络内的任何用户。这种方法可行,但网络团队认为,VPN 连接到不受我们 IT 部门管理的外部 Web 服务器存在太大的安全风险。
我没有内部网络的管理员访问权限,但拥有网络服务器的完全管理员访问权限。
想要:
通过使用 DMZ 中的只读 DC 来处理所有身份验证请求,无需 VPN 即可建立相同的无缝身份验证。
细节:
- 我们有多个相互信任并通过 VPN 隧道连接的 AD 域。
- 我们在 DMZ 中有一个只读 DC,连接到主 AD 网络
- 外部 LAMP Web 服务器 - 我们使用单个实例来测试新配置
已完成的任务:
- 将 DMZ DC 添加到 hosts 文件
- 更新了 krb5.conf 文件并将单个领域和域 (domain1) 与 DMZ DC 关联
- 使用 kinit 在命令行上测试身份验证(有效)
- 使用附加领域和域领域映射更新了 krb5.conf 文件,所有域都指向 DMZ DC
- 在命令行上测试了来自其中一个附加领域的用户身份验证,但失败了。
当前配置示例
/etc/hosts/:(出于保密原因,我用 x 和真实域名替换了实际 IP)
xxx.xxx.xxx.xxx dc01.domain1.com, dc01.domain2.com, dc01.domain3.com, dc01.domain4.com
/etc/krb5.conf:
[libdefaults]
default_realm = REALM1.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
clockskew = 12000
kdc_timesync = 1
[realms]
REALM1.COM = {
kdc = dc01.domain1.com
admin_server= dc01.domain1.com
}
REALM2.COM = {
kdc = dc01.domain2.com
admin_server= dc01.domain2.com
}
REALM3.COM = {
kdc = dc01.domain3.com
admin_server= dc01.domain3.com
}
REALM4.COM = {
kdc = dc01.domain4.com
admin_server= dc01.domain4.com
}
问题:
DMZ 未处理受信任域的身份验证请求。我不知道这是 DC 的配置还是 kerberos 配置导致的,因此请求帮助。
花了好几个小时研究 serverfault 上的其他问题,进行谷歌搜索和阅读教程,但似乎没有什么符合我们的情况。
我们能做到我们正在尝试的事情吗?如果可以,我们需要做什么才能让它发挥作用?这是一个将 DMZ 设置为其他领域的 kdc 代理的简单案例吗?
回复 Nathan C ,安全日志显示对 kerberos 服务票证的请求如下:
审核成功 2014 年 5 月 14 日 11:05 Microsoft-Windows-Security-Auditing 4769 Kerberos 服务票证操作“已请求 Kerberos 服务票证。
帐户信息: 帐户名称: [电子邮件保护] 帐户域:DOMAIN1.COM 登录 GUID:{C93D9AAC-6968-6C00-83EF-2C2D54E2363B}
服务信息:服务名称:RODC01$ 服务 ID:DOMAIN1\RODC01$
网络信息:客户端地址:::1 客户端端口:0
附加信息:票证选项:0x40810000 票证加密类型:0x17 失败代码:0x0 过境服务:-
每次请求访问资源(例如计算机或 Windows 服务)时都会生成此事件。服务名称表示请求访问的资源。
通过比较每个事件中的登录 GUID 字段,可以将此事件与 Windows 登录事件关联起来。登录事件发生在被访问的计算机上,该计算机通常与颁发服务票证的域控制器不同。
票证选项、加密类型和失败代码在 RFC 4120 中定义。”
不幸的是,发送给我的日志摘录与我尝试身份验证的时间不符,所以我不知道该日志条目实际上与什么相关。我已请求另一份摘录。
帐户信息:
帐户名称: jameel.rahmaa
提供的领域名称:DOMAIN1.COM
用户 ID:NULL SID
服务信息:
服务名称:krbtgt/DOMAIN1.COM
服务 ID:NULL SID
网络信息:
客户端地址:[WEB IP 隐藏]
客户端端口:34567
附加信息:
票证选项:0x40800000
结果代码:0x6
票证加密类型:0xffffffff
预身份验证类型:-
证书信息:
证书颁发者名称:
证书序列号:
证书指纹:
仅当使用证书进行预认证时才会提供证书信息。
预认证类型、票证选项、加密类型和结果代码在 RFC 4120 中定义。
不知道为什么,但我的名字的最后一个字符被截掉了。
答案1
0x6. KDC_ERR_C_PRINCIPAL_UNKNOWN
就是这样...调查一下。听起来你的 SPN 设置不正确,或者它试图使用一个根本不存在的帐户。Wireshark 是另一个可以在 Web 服务器上运行的好工具,用于查看它在发出请求时从 DC 获得什么。