我知道这样做似乎没有在这里做过研究,因为我已经完成了,我知道有多less相关的问题和教程。 我已阅读每个教程,我可以在网上find这个。 我已经浏览了serverfault上Samba / Kerberos / AD /身份validation主题的完整列表。
实际上,只是因为我能够validation每个阶段的成功,所以让我最远的教程是http://www.howtoforge.com/samba_active_directory 。 唉,它仍然没有工作。 不用再说了,我的问题是:
我有一个运行CentOS 6.5的KVM客户机。 我已经安装了Samba 3.6.9。 我想使用Samba共享用户的主目录,以便他们可以将它们映射为Windows 7机器上的networking驱动器。 我已经用本地帐户使用smbpasswd 成功完成了这个任务 。 问题是我想要使用Kerberos(Active Directory,我无法控制)validation这些用户。 我不需要或不需要来自Kerberos / AD / LDAP的任何types的用户,组或策略信息。 我只想validation用户提供的用户密码到Windows驱动器映射GUI并发送到Samba。
同样值得注意的是,我已经在相同的KVM guest虚拟机上为相同的用户configuration了Kerberos来进行SSH访问。 通过/etc/passwd条目和/etc/passwd设置的密码,用户在SSHlogin时inputKerberos密码并进行身份validation。 这正是我想要的Samba。 我希望用户能够“映射networking驱动器”,inputSamba服务器的FQDN,input他们的用户名和密码,然后让Samba使用该密码对其进行身份validation,方法与SSH通过密码进行身份validation的方式相同成功映射。
我已经做好了:
service winbind start service smb start service nmb start
用于SSHauthentication的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 ,我已经尝试了很多东西,但是基于所有教程,似乎最合理的configuration涉及最相关:
workgroup = MYDOMAIN security = ads realm = MYDOMAIN.COM encrypt passwords = yes kerberos method = secrets only password server = mydomain.com
值得注意的是,mydomain.com是我的服务器的FQDN,MYDOMAIN.COM是Kerberos领域,所以这不是一个错字。
问题是,大多数教程首先讨论为主机生成密钥表和主体。 我不明白这一点,因为我不authentication的主机,但只有用户。 此外,使用Kerberos的SSH密码authentication并不需要这样的步骤,据我所知(我不必这样做)。 他们build议相应地设置“kerberos方法=秘密和keytab”。 其次,许多教程似乎都集中在获取Active Directory中存储的用户和组的信息,或者使用Kerberos对Samba进行身份validation以达到其他目的。 我只想使用Samba进行文件共享,我只想使用Kerberos来validation密码,就像我的SSHconfiguration一样。
我所做的每一个尝试和每个教程都会导致失败。 我检查/var/log/samba/*查找日志,并find包含连接机器IP地址的文件,但没有关于连接尝试的信息。 那些日志文件是空的。
值得注意的是,尽pipe我可以将我的服务器join到域中,但是我没有pipe理权限,所以我认为我无法生成密钥表(尽pipe我不明白为什么Samba不需要SSH)。
有谁能帮我完成这个吗? 或者,如果无法完成,让我知道并解释为什么? 我不介意指向一个教程,但是我真诚地检查了我能find的每一个教程,所以如果你提供一个教程链接,请愿意接受后续问题。
非常感谢。
问题是,大多数教程首先讨论为主机生成密钥表和主体。 我不明白这一点,因为我不authentication的主机,但只有用户。
我知道这个答案是问题提出几年后,但是,从Centrify的centrifydc.conf文件:
默认情况下,将通过检索和validation本地系统的服务票证来validation用户的TGT。 这个检查是为了防止一个众所周知的攻击(Zanarotti又名屏幕保护程序攻击),一个stream氓KDC可以响应我们的请求获取用户的TGT。 如果设置为false,则欺骗检查将被禁用,并将显着提高身份validation性能。 krb5.verify.credentials:true
而且,从麻省理工学院的网站:当一个程序基于用户成功地获得初始Kerberos证书授予对资源的访问(例如在台式计算机上的本地login会话)时,它必须根据安全的共享密钥(例如,主机密钥表),以确保用户凭证实际上源自合法的KDC。 由于恶意用户可以执行“Zanarotti攻击”,所以未能执行此validation是一个严重的漏洞:用户构build似乎来自合法KDC的虚假响应,但其内容来自攻击者控制的KDC。
我意识到这是非常古老的,这可能是也可能不是你问题的一部分,但是我过去注意到,如果你没有在krb5.conf中使用下面的代码,你可能会遇到以下问题:
[领域] MYDOMAIN.COM = {kdc = mydomain.com admin_server = mydomain.com }
[领域] MYDOMAIN.COM = {kdc = MYDOMAIN.COM admin_server = MYDOMAIN.COM }