我的主要目标是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?