前言:我做了功课。诸如此类的问题和答案似乎并没有解决我问题的具体性质。我的google-fu显然不够强大,因为我使用的搜索词都导致我找到了各种解决方案,这些解决方案不包括工作站名称,也没有办法指定我正在检查的工作站名称。
背景:我有一个运行在Debian上的Redmine服务器,它对本地Windows 2003 Small Business server Active Directory使用LDAP认证。我有这个工作很好,它工作得很好。
…除了一个用户被限制从他自己的工作站登录。
我认为这将是一个简单的问题,配置Samba使用AD加入域,然后只需将Linux机器的NetBIOS名称添加到该用户可以登录的机器列表中。不幸的是,事实并非如此。我已经验证了NetBIOS名称REDMINE存在于Windows 2003服务器上的域机器列表中,并且我还验证了Samba服务器和Windows 2003服务器之间没有明显的问题。我不是在寻找Linux登录来验证AD或类似的东西。
查看数据包捕获和Windows事件日志审计细节,当LDAP绑定尝试进入时,Windows 2003似乎默认使用AD的NetBIOS名称。我在事件日志中看到用户myusername试图登录工作站SERVERNAME,但使用正确的Redmine服务器IP地址:
Event Type: Failure Audit
Event Source: Security
Event Category: Logon/Logoff
Event ID: 533
Date: 6/3/2014
Time: 7:57:42 PM
User: NT AUTHORITYSYSTEM
Computer: SERVERNAME
Description:
Logon Failure:
Reason: User not allowed to logon at this computer
User Name: myusername
Domain: DOMAINNAME
Logon Type: 3
Logon Process: Advapi
Authentication Package: Negotiate
Workstation Name: SERVERNAME
Caller User Name: SERVERNAME$
Caller Domain: DOMAINNAME
Caller Logon ID: (0x0,0x3E7)
Caller Process ID: 544
Transited Services: -
Source Network Address: redmine.server.ip
Source Port: 47721
在Redmine的LDAP查询中没有SERVERNAME出现在查询中,这就是为什么我确信这来自Windows服务器。如果我将AD服务器的NetBIOS名称添加到允许该用户登录的工作站列表中,则Redmine的查询成功,该用户可以登录Redmine。
已消毒的绑定信息如下:
CN=Firstname Lastname,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=domainname,DC=local
提供的密码显然也是正确的。返回的错误是有意义的,因为Windows确定我试图从SERVERNAME而不是REDMINE登录:
W80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 531, vece
(代码531表示"不允许用户登录此机器")
有没有人知道如何创建一个LDAP登录查询对Windows 2003服务器指定哪个工作站检查登录?
仔细考虑后,我得出结论,这是一个不好的问题。
Windows 2003似乎混淆了"绑定到LDAP服务器"one_answers"登录到工作站"的概念。当我用受限用户的凭据绑定到AD时,AD服务器验证登录名和密码是否正确,但随后检查允许的工作站列表,发现AD服务器不在该列表中,因此绑定失败。
绑定AD服务器与登录AD服务器是两回事,这就是问题所在。我要问一个更适合这个场景的新问题。