Kerberos 尝试从 Windows 登录 Samba 4 Active Directory 域控制器时出现问题

Kerberos 尝试从 Windows 登录 Samba 4 Active Directory 域控制器时出现问题

我正在尝试设置一个使用 Samba 4 作为 Active Directory 域控制器的 Ubuntu 服务器,但当我尝试从 Windows 机器连接时出现错误。

这是 Samba 的错误日志(为了保护隐私,我替换了我的域名):

[2014/07/04 15:09:48.437798,  3] ../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: AS-REQ [email protected] from ipv4:10.8.0.14:36394 for krbtgt/[email protected]
[2014/07/04 15:09:48.442161,  3] ../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Client sent patypes: 128
[2014/07/04 15:09:48.442329,  3] ../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Looking for PK-INIT(ietf) pa-data -- [email protected]
[2014/07/04 15:09:48.442438,  3] ../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Looking for PK-INIT(win2k) pa-data -- [email protected]
[2014/07/04 15:09:48.442539,  3] ../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Looking for ENC-TS pa-data -- [email protected]
[2014/07/04 15:09:48.442658,  3] ../source4/auth/kerberos/krb5_init_context.c:80(smb_krb5_debug_wrapper)
  Kerberos: Need to use PA-ENC-TIMESTAMP/PA-PK-AS-REQ
[2014/07/04 15:09:48.535053,  3] ../source4/smbd/service_stream.c:66(stream_terminate_connection)
  Terminating connection - 'kdc_tcp_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED'
[2014/07/04 15:09:48.535219,  3] ../source4/smbd/process_single.c:114(single_terminate)
  single_terminate: reason[kdc_tcp_call_loop: tstream_read_pdu_blob_recv() - NT_STATUS_CONNECTION_DISCONNECTED]

但是,如果我尝试本地登录,则没有问题:

# smbclient //localhost/netlogon -U Administrator
Enter Administrator's password: 
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]
smb: \> ls
  .                                   D        0  Mon May 26 12:54:45 2014
  ..                                  D        0  Mon May 26 12:56:28 2014

                36484 blocks of size 8388608. 27650 blocks available
smb: \> 

# kinit
Password for [email protected]: 
Warning: Your password will expire in 5 days on jue 10 jul 2014 14:47:07 ART
# klist 
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting     Expires            Service principal
04/07/14 16:38:31  05/07/14 02:38:31  krbtgt/[email protected]
        renew until 05/07/14 16:38:24

可能存在什么问题?“需要使用 PA-ENC-TIMESTAMP/PA-PK-AS-REQ”错误是什么意思?

以下是一些可能重要的附加信息。

有关服务器的信息:

  • 操作系统:Ubuntu Server 14.04
  • Samba 版本:4.1.6-Ubuntu
  • Kerberos 版本:Kerberos 5 版本 1.12

smb.conf 的内容

# Global parameters
[global]
        workgroup = MYDOMAIN
        realm = MYDOMAIN.COM
        netbios name = COLLIE
        server role = active directory domain controller
        dns forwarder = 10.1.1.1
        idmap_ldb:use rfc2307 = yes
        log level = 3

[netlogon]
        path = /var/lib/samba/sysvol/huntmob.com/scripts
        read only = No

[sysvol]
        path = /var/lib/samba/sysvol
        read only = No

# Sharing general
[files] 
path = /var/lib/samba/usershares/files
read only = no

[todos]
path = /var/lib/samba/usershares/todos
read only = no

[dbox]
path = /var/lib/samba/usershares/dbox
read only = no

有关 Windows 客户端的信息

在此安装阶段,我正在使用运行 Windows 7 Professional 的虚拟机,该虚拟机由 Kubuntu 盒托管,该盒通过 VPN 连接到 Samba 服务器所在的办公室。

我知道这有点混乱,但这只是目前的情况,Samba 服务器将只为本地 Windows 机器提供服务。但是,我不认为这是导致问题的原因,因为 Windows 机器似乎可以正常访问 Samba 服务器。

答案1

根据MS-KILE 文档

当客户端执行基于密码的初始身份验证时,它们必须在构建初始 AS 请求时提供 PA-ENC-TIMESTAMP 预身份验证类型。

您的 Windows 客户端显然没有执行此操作。

我不太了解 Windows 方面,但也许存在用于身份验证的“兼容模式”选项,而 Samba 4 无需启用该选项即可运行。

相关内容