我知道这看起来像是我没有在这里做研究,因为我已经做过了,我知道有多少相关的问题和教程。我已经阅读了所有的教程,我可以在网上找到这一点。我已经浏览了Samba/Kerberos/AD/身份验证主题的完整列表。
实际上,因为我能够在每一个阶段验证成功,我得到的最远的教程是http://www.howtoforge.com/samba_活动的_目录。唉,它还是没用的。我的问题是:
我有一个KVM客户正在运行CentOS 6.5。我安装了Samba 3.6.9。我想使用Samba来共享用户的主目录,以便他们可以将它们映射为Windows 7机器上的网络驱动器。我已经通过本地帐户使用smbpasswd成功地完成了这一任务。问题是,我想使用Kerberos (Active Directory,我无法控制)对这些用户进行身份验证。我不需要或不希望Kerberos/AD/LDAP提供任何类型的用户、组或策略信息。我只想验证用户提供的用户密码到Windows驱动器映射GUI并发送到Samba。
还值得注意的是,我已经为相同用户在同一个KVM客户上为SSH访问配置了Kerberos。在/etc/passwd中输入条目而在/etc/shadow中没有设置密码的情况下,用户在SSH登录时输入他们的Kerberos密码并进行身份验证。这正是我想要的桑巴。我希望用户“映射网络驱动器”,输入Samba服务器的FQDN,输入他们的用户名和密码,并让Samba使用该密码对他们进行身份验证,就像SSH使用密码验证他们一样,在密码点上共享将被成功映射。
我所做的是:
service winbind start
service smb start
service nmb start对于SSH身份验证非常有用的krb5.conf是:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
MYDOMAIN.COM = {
kdc = mydomain.com
admin_server = mydomain.com
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM在/etc/samba/smb.conf中,我尝试了很多东西,但基于所有教程的最符合逻辑的配置涉及到,最相关的是:
workgroup = MYDOMAIN
security = ads
realm = MYDOMAIN.COM
encrypt passwords = yes
kerberos method = secrets only
password server = mydomain.com值得注意的是,mydomain.com是我的服务器的FQDN,而MYDOMAIN.COM是Kerberos领域,所以这不是一个错误。
问题是,首先,大多数教程讨论如何为主机生成一个keytab和一个主体。我不明白这一点,因为我不是对主机进行身份验证,而是只对用户进行身份验证。此外,据我所知,使用Kerberos进行SSH密码身份验证不需要这样的步骤(我不需要这样做)。他们建议设置相应的"kerberos方法=机密和keytab“。其次,许多教程的重点似乎是获取有关Active中存储的用户和组的信息,或者使用Kerberos对Samba对用户进行身份验证。我只想使用Samba进行文件共享,我只想使用Kerberos验证密码,就像我的SSH配置一样。
我所遵循的每一个尝试和每一个教程都会导致失败。我检查/var/log/samba/*的日志和查找文件的名称,包括连接机器的IP地址,但没有关于连接尝试的信息。那些日志文件是空的。
值得注意的是,虽然我可以将服务器连接到域,但我没有管理权限,因此我认为不能生成keytab (虽然我不理解为什么Samba不需要一个SSH )。
有人能帮我做这件事吗?或者,如果不知何故无法做到,让我知道并解释原因?我不介意被指向一个教程,但我诚实地浏览了我能找到的每一个教程,所以如果你提供一个教程链接,请愿意接受后续的问题。
非常感谢。
发布于 2016-04-15 13:05:09
问题是,首先,大多数教程讨论如何为主机生成一个keytab和一个主体。我不明白这一点,因为我不是对主机进行身份验证,而是只对用户进行身份验证。
我知道这个答案是在这个问题被提出几年后,但是,从Centrify的centrifydc.conf文件中:
默认情况下,将通过检索和验证本地系统的服务票证来验证用户的TGT。此检查是为了防止众所周知的攻击(Zanarotti,又名屏幕保护程序攻击),其中一个流氓KDC可以响应我们的请求,以获得用户的TGT。如果设置为false,则将禁用欺骗检查,并将显著提高身份验证性能。krb5.verify.credentials:真
而且,在MIT的网站上:每当程序基于用户成功获得初始Kerberos凭据而授予对资源(例如桌面计算机上的本地登录会话)的访问权限时,它必须根据安全共享秘密(例如主机密钥标签)验证这些凭据,以确保用户凭据实际上来自合法的KDC。无法执行此验证是一个关键漏洞,因为恶意用户可以执行“Zanarotti攻击”:该用户构造一个假响应,该响应似乎来自合法的KDC,但其内容来自攻击者控制的KDC。
发布于 2015-08-31 20:56:06
我意识到这是一个非常老的问题,这可能是问题的一部分,也可能不是问题的一部分,但我注意到,在过去,如果不将以下内容用于krb5.conf,您可能会遇到问题:
王国 MYDOMAIN.COM ={ kdc = mydomain.com admin_server = mydomain.com }
王国 MYDOMAIN.COM ={ kdc = MYDOMAIN.COM admin_server = MYDOMAIN.COM }
https://serverfault.com/questions/590991
复制相似问题