问题一:如果服务器端KDC用开源的Samba实现(前提Samba内实现了MIT的kerberos协议),是不是我们就能读取到Service_key了呢?
思路二:
Windows服务器(假定Windows server2008R2, IP地址:192.168.0.76)充当Exchange2010服务器, Windows客户端(假定Windows 7, IP地址:192.168.0.176) 充当Exchange2010客户端。
客户端会176向服务器76发起请求认证的时候,我们可以设置仅kerberos认证。此时会有数据包的交互,客户端176向服务器76的KDC(密钥管理中心)的AS(认证服务器)获取票据Ticket后,再向服务器76端的KDC的TGS(票据授权服务器)获取可以向服务器76认证的Service_key及票据Ticket。
此时,服务器76端的系统Windows Server2008R2是包含KDC的。因为Server2008R2内还含有主域控制器(PDC),我们知道Linux操作系统,比如Redhat,Centos是包含开源Samba软件的,或者我们可以安装新的版本,如Samba4.0.1x。而查资料可以,Samba是可以充当PDC的,且samba集成KDC的功能。资料源头(Redhat官网):https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/4/html。
问题二:用Samba作为中间DC(域名控制器),能否同步过来Server端认证客户端时的Service_key和票据Ticket信息,如果可行的话,大致的接口是什么?
进展:已经知道Samba-tool(samba内含工具)从Red-hat端实现获取到了服务器端的用户名信息,但是至于密钥的获取还有一段路要走。且samba-tool以DC加入域的概念也不好理解。
困难点如下:
困难一:Samba的配置相对复杂,和我设定相关的配置需要谨慎查询资料,稍有不慎,会导致各种问题,易愈陷愈深;
困难二:Windows域的概念复杂,如DC的功能。Redhat官网指出,Windows充当PDC时,Samba不能充当BDC(备份域控制器);同时Samba充当PDC时,Windows不能充当BDC。但思路二,想从同步角度思考,又避免不了DC之间的同步。
困难三:Kerberos认证体系复杂,需要反复阅读Kerberos官网协议文档才能理解其精髓。
困难四:思路一、二的目的是一样的,但结果的获取需要结合Windows域体系、Samba体系、Kerberos认证体系,三者结合交叉的概念也需要广查资料思考。