使用Active Directory和本地用户身份validation设置Samba

我的主要目标是build立一个Samba服务器,用户可以使用他们的活动目录凭证连接到哪里。 另外,Samba-Server上的本地linux用户应该能够进行身份validation。

首先,我试图configurationSamba服务器来validation用户对Active-Directory,但不能完全弄清楚如何做到这一点。

Samba服务器版本4.2.10在CentOS 7上运行。我的Samba-Configuration如下所示:

/etc/samba/smb.conf中

 [全球]
工作组= AD
 netbios名称= clients-hostname

最大日志大小= 50
日志级别= 3
日志文件= /var/log/samba3/log.%m

映射不可信到域=是

 winbind枚举用户=是
 winbind枚举组=是
 winbindcaching时间= 10
 winbind nss info = rfc2307
 winbind受信任的域只=没有
 winbind使用默认域=是
 winbind刷新门票=是

操作系统级别= 20
 winbind枚举组=是
 realm = AD.COMPANY.CPOM
安全=广告
 auth方法= winbind
 passdb后端= tdbsam

客户端使用spnego = yes

客户端ntlmv2 auth =是

 [A股]
可用=是
path= / aShare
 browseable =是
可写=是
 #只读=没有
 #inherit acls = yes
 #inherit权限=是
创build掩码= 0777
目录掩码= 0777
有效的用户= @“域用户@ AD”,localUser

Kerberosconfiguration如下所示:

的/etc/krb5.conf

 [logging]
默认= FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

 [libdefaults]
 dns_lookup_realm = false

 ticket_lifetime = 24h
 renew_lifetime = 7d

可转换= true
 rdns = false

 default_realm = AD.COMPANY.COM
 default_ccache_name = KEYRING:持久性:%{uid}

 [领域]
 AD.COMPANY.COM = {
 kdc = DC.AD.COMPANY.COM
 kpasswd_server = DC.AD.COMPANY.COM
 admin_server = DC.AD.COMPANY.COM
 default_domain = AD.COMPANY.COM
 }

 [domain_realm]
 .ad.company.com = AD.COMPANY.COM
 ad.company.com = IN.ITM-CONSULTING.DE

Samba服务器存在于Active-Directory中,我得到了一张kerberos票。 wbinfo -u显示Active Directory中的所有用户。 我注意到过去它显示的用户前缀AD \现在他们没有这个前缀了。

主要问题是我无法连接到具有活动目录用户的共享:

$ smbclient -L //10.0.0.2 -U aduser -W AD Enter aduser's password: session setup failed: NT_STATUS_LOGON_FAILURE 

日志显示我这个:/var/log/samba3/log.10.0.0.2 [< – 本地计算机IP]

 [2016/07/26 13:00:28.408563,3] ../source3/smbd/oplock.c:1307(init_oplocks)
   init_oplocks:初始化消息。
 [2016/07/26 13:00:28.408626,3] ../source3/smbd/process.c:1879(process_smb)
  长度为194的事务0(0重读)
 [2016/07/26 13:00:28.408646,3] ../source3/smbd/process.c:1489(switch_message)
  切换消息SMBnegprot(pid 9538)conn 0x0
 [2016/07/26 13:00:28.409162,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[PC NETWORK PROGRAM 1.0]
 [2016/07/26 13:00:28.409177,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[MICROSOFT NETWORKS 1.03]
 [2016/07/26 13:00:28.409183,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[MICROSOFT NETWORKS 3.0]
 [2016/07/26 13:00:28.409188,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[LANMAN1.0]
 [2016/07/26 13:00:28.409192,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[LM1.2X002]
 [2016/07/26 13:00:28.409197,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[DOS LANMAN2.1]
 [2016/07/26 13:00:28.409202,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[LANMAN2.1]
 [2016/07/26 13:00:28.409207,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[Samba]
 [2016/07/26 13:00:28.409211,3] ../source3/smbd/negprot.c:576(reply_negprot)
  请求的协议[NT LANMAN 1.0]
 [2016/07/26 13:00:28.409216,3] ../source3/smbd/negprot.c:576(reply_negprot)
  要求的协议[NT LM 0.12]
 [2016/07/26 13:00:28.651581,3] ../source3/smbd/negprot.c:395(reply_nt1)
  使用SPNEGO
 [2016/07/26 13:00:28.651628,3] ../source3/smbd/negprot.c:684(reply_negprot)
  选定的协议NT LANMAN 1.0
 [2016/07/26 13:00:28.652715,3] ../source3/smbd/process.c:1879(process_smb)
  交易1长度160(0重读)
 [2016/07/26 13:00:28.652741,3] ../source3/smbd/process.c:1489(switch_message)
  切换消息SMBsesssetupX(pid 9538)conn 0x0
 [2016/07/26 13:00:28.652762,3] ../source3/smbd/sesssetup.c:614(reply_sesssetup_and_X)
   wct = 12 flg2 = 0xc843
 [2016/07/26 13:00:28.652774,3] ../source3/smbd/sesssetup.c:144(reply_sesssetup_and_X_spnego)
  做spnego会话设置
 [2016/07/26 13:00:28.652782,3] ../source3/smbd/sesssetup.c:185(reply_sesssetup_and_X_spnego)
   NativeOS = [Unix] NativeLanMan = [Samba] PrimaryDomain = []
 [2016/07/26 13:00:28.653003,3] ../auth/ntlmssp/ntlmssp_util.c:69(debug_ntlmssp_flags)
  得到了NTLMSSP neg_flags = 0x62088215
 [2016/07/26 13:00:28.653391,3] ../source3/smbd/process.c:1879(process_smb)
  交易2的长度为528(0重读)
 [2016/07/26 13:00:28.653410,3] ../source3/smbd/process.c:1489(switch_message)
  切换消息SMBsesssetupX(pid 9538)conn 0x0
 [2016/07/26 13:00:28.653432,3] ../source3/smbd/sesssetup.c:614(reply_sesssetup_and_X)
   wct = 12 flg2 = 0xc843
 [2016/07/26 13:00:28.653438,3] ../source3/smbd/sesssetup.c:144(reply_sesssetup_and_X_spnego)
  做spnego会话设置
 [2016/07/26 13:00:28.653445,3] ../source3/smbd/sesssetup.c:185(reply_sesssetup_and_X_spnego)
   NativeOS = [Unix] NativeLanMan = [Samba] PrimaryDomain = []
 [2016/07/26 13:00:28.653466,3] ../auth/ntlmssp/ntlmssp_server.c:452(ntlmssp_server_preauth)
  得到的用户= [aduser] domain = [AD] workstation = [clients-hostname] len1 = 24 len2 = 238
 [2016/07/26 13:00:28.653518,3] ../source3/param/loadparm.c:3653(lp_load_ex)
   lp_load_ex:刷新参数
 [2016/07/26 13:00:28.653570,3] ../source3/param/loadparm.c:544(init_globals)
  初始化全局参数
 [2016/07/26 13:00:28.653637,3] ../source3/param/loadparm.c:2596(lp_do_section)
  处理部分“[全球]”
 [2016/07/26 13:00:28.653758,2] ../source3/param/loadparm.c:2613(lp_do_section)
  处理部分“[aShare]”
 [2016/07/26 13:00:28.653826,3] ../source3/param/loadparm.c:1493(lp_add_ipc)
  增加IPC服务
 [2016/07/26 13:00:28.654335,3] ../source3/auth/auth.c:178(auth_check_ntlm_password)
   check_ntlm_password:使用新密码界面检查未映射用户的密码[AD] \ [aduser] @ [clients-hostname]
 [2016/07/26 13:00:28.654350,3] ../source3/auth/auth.c:181(auth_check_ntlm_password)
   check_ntlm_password:映射的用户是:[AD] \ [aduser] @ [clients-hostname]
 [2016/07/26 13:00:28.657067,3] ../source3/auth/auth_util.c:1229(check_account)
  无法通过getpwnam()查找经过身份validation的用户AD \ aduser,拒绝访问。
 [2016/07/26 13:00:28.657091,2] ../source3/auth/auth.c:315(auth_check_ntlm_password)
   check_ntlm_password:用户[aduser]  - > [aduser]的身份validation失败,错误为NT_STATUS_NO_SUCH_USER
 [2016/07/26 13:00:28.657104,2] ../auth/gensec/spnego.c:716(gensec_spnego_server_negTokenTarg)
   SPNEGOlogin失败:NT_STATUS_NO_SUCH_USER
 [2016/07/26 13:00:28.657139,3] ../source3/smbd/error.c:82(error_packet_set)
   NT error packet at ../source3/smbd/sesssetup.c(269)cmd = 115(SMBsesssetupX)NT_STATUS_LOGON_FAILURE
 [2016/07/26 13:00:28.660840,3] ../source3/smbd/server_exit.c:249(exit_server_common)
  服务器退出(未能收到smb请求)
 2016/07/26 13:00:28.653758,2] ../source3/param/loadparm.c:2613(lp_do_section)
  处理部分“[smbext4]”
 [2016/07/26 13:00:28.653826,3] ../source3/param/loadparm.c:1493(lp_add_ipc)
  增加IPC服务
 [2016/07/26 13:00:28.654335,3] ../source3/auth/auth.c:178(auth_check_ntlm_password)
   check_ntlm_password:使用新密码界面检查未映射用户的密码[AD] \ [aduser] @ [clients-hostname]
 [2016/07/26 13:00:28.654350,3] ../source3/auth/auth.c:181(auth_check_ntlm_password)
   check_ntlm_password:映射的用户是:[AD] \ [aduser] @ [clients-hostname]
 [2016/07/26 13:00:28.657067,3] ../source3/auth/auth_util.c:1229(check_account)
  无法通过getpwnam()查找经过身份validation的用户AD \ aduser,拒绝访问。
 [2016/07/26 13:00:28.657091,2] ../source3/auth/auth.c:315(auth_check_ntlm_password)
   check_ntlm_password:用户[aduser]  - > [aduser]的身份validation失败,错误为NT_STATUS_NO_SUCH_USER
 [2016/07/26 13:00:28.657104,2] ../auth/gensec/spnego.c:716(gensec_spnego_server_negTokenTarg)
   SPNEGOlogin失败:NT_STATUS_NO_SUCH_USER
 [2016/07/26 13:00:28.657139,3] ../source3/smbd/error.c:82(error_packet_set)
   NT错误包在../source3/smbd/sesssetup.c(269)cmd = 115(SMBsesssetupX)NT_STATUS_LOGON_FAILURE
 [2016/07/26 13:00:28.660840,3] ../source3/smbd/server_exit.c:249(exit_server_common)
  服务器退出(未能收到smb请求)

我如何让用户使用Active Directory中的凭据login到samba?