LAMP服务器Kerberosconfiguration来对dmz中的只读Windows KDC进行身份validation

背景:

我们有许多通过VPN连接的ADnetworking(),并build立了AD信任关系。 我们有一个外部托pipe的Web服务器,并为可信networking内的任何用户configuration了无缝validation 。 这种方法可行,但是由于我们IT部门没有pipe理的外部networking服务器的VPN的存在被networking团队认为是太大的安全风险。

我没有pipe理员访问内部networking,但在Web服务器上有完整的pipe理员访问权限。

想要:

通过在DMZ中使用只读DC来处理所有身份validation请求,在没有VPN的情况下build立相同的无缝身份validation。

细节:

  1. 我们有许多互相信任的AD域,并通过VPN隧道连接。
  2. 我们在连接到主ADnetworking的DMZ中只有一个DC
  3. 外部LAMP Web服务器 – 我们正在使用一个实例来testing新的configuration

完成的任务:

  1. 将DMZ DC添加到主机文件
  2. 更新了krb5.conf文件,并使用DMZ DC关联了一个领域和域(domain1)
  3. 在命令行上用kinit(工作)
  4. 更新了krb5.conf文件,使其他领域和域领域映射与指向DMZ DC的所有域
  5. 在命令行上与来自其中一个附加领域的用户进行了身份validation,失败了。

当前configuration示例

/ etc / hosts / :(为了保密,我用x和真实的域名replace了实际的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不处理受信任域的身份validation请求。 我不知道这是configurationDC还是Kerberosconfiguration的结果,因此呼吁帮助。

花了好几个小时的时间去了解其他有关服务器故障,Googlesearch和阅读教程的问题,但似乎没有什么符合我们的情况。

我们可以做我们正在尝试的东西吗?如果是的话,我们需要做些什么才能使它工作? 是否将DMZ设置为其他领域的kdcs的简单情况?


为了回应Nathan C,安全日志显示了像这样的kerberos服务票据的请求:

审计成功14/05/2014 11:05 Microsoft-Windows-Security-审计4769 Kerberos服务票证操作“已请求Kerberos服务票证。

帐户信息:帐户名称:[email protected]帐户域:DOMAIN1.COMloginGUID:{C93D9AAC-6968-6C00-83EF-2C2D54E2363B}

服务信息:服务名称:RODC01 $服务ID:DOMAIN1 \ RODC01 $

networking信息:客户端地址::: 1客户端端口:0

其他信息:票证选项:0x40810000票证encryptiontypes:0x17失败代码:0x0转换服务: –

每次访问资源(如计算机或Windows服务)时都会生成此事件。 服务名称表示请求访问的资源。

通过比较每个事件中的loginGUID字段,可以将此事件与Windowslogin事件相关联。 login事件发生在被访问的机器上,这通常是与发出服务票据的域控制器不同的机器。

票据选项,encryptiontypes和失败代码在RFC 4120中定义。

不幸的是,发送给我的日志摘录与我正在尝试身份validation的时间并不相称,所以我不知道该日志条目实际涉及的是什么。 我已经要求另外提取。


帐户信息:

帐户名称:jameel.rahmaa

提供的域名:DOMAIN1.COM

用户ID:NULL SID

服务信息:

服务名称:krbtgt / DOMAIN1.COM

服务ID:NULL SID

networking信息:

客户地址:[WEB IP HIDDEN]

客户端口:34567

附加信息:

票证选项:0x40800000

结果代码:0x6

票证encryptiontypes:0xffffffff

预authenticationtypes: –

证书信息:

证书颁发者名称:

证书序列号:

证书指纹:

仅当证书用于预authentication时才提供证书信息。

RFC 4120中定义了预authenticationtypes,票证选项,encryptiontypes和结果代码。

不知道为什么,但我的名字的最后一个字符已被切断。

0x6. KDC_ERR_C_PRINCIPAL_UNKNOWN 那里是0x6. KDC_ERR_C_PRINCIPAL_UNKNOWN …调查这个。 这听起来像你的SPNs没有正确设置,或者试图使用一个甚至不存在的帐户。 Wireshark是在Web服务器上运行的另一个很好的工具,可以在发出请求时查看从DC获取的内容。