首页
学习
活动
专区
圈层
工具
发布

Samba认证
EN

Server Fault用户
提问于 2014-04-24 06:57:10
回答 2查看 1.2K关注 0票数 1

我知道这看起来像是我没有在这里做研究,因为我已经做过了,我知道有多少相关的问题和教程。我已经阅读了所有的教程,我可以在网上找到这一点。我已经浏览了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使用密码验证他们一样,在密码点上共享将被成功映射。

我所做的是:

代码语言:javascript
复制
service winbind start
service smb start
service nmb start

对于SSH身份验证非常有用的krb5.conf是:

代码语言:javascript
复制
[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中,我尝试了很多东西,但基于所有教程的最符合逻辑的配置涉及到,最相关的是:

代码语言:javascript
复制
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 )。

有人能帮我做这件事吗?或者,如果不知何故无法做到,让我知道并解释原因?我不介意被指向一个教程,但我诚实地浏览了我能找到的每一个教程,所以如果你提供一个教程链接,请愿意接受后续的问题。

非常感谢。

EN

回答 2

Server Fault用户

发布于 2016-04-15 13:05:09

问题是,首先,大多数教程讨论如何为主机生成一个keytab和一个主体。我不明白这一点,因为我不是对主机进行身份验证,而是只对用户进行身份验证。

我知道这个答案是在这个问题被提出几年后,但是,从Centrify的centrifydc.conf文件中:

默认情况下,将通过检索和验证本地系统的服务票证来验证用户的TGT。此检查是为了防止众所周知的攻击(Zanarotti,又名屏幕保护程序攻击),其中一个流氓KDC可以响应我们的请求,以获得用户的TGT。如果设置为false,则将禁用欺骗检查,并将显著提高身份验证性能。krb5.verify.credentials:真

而且,在MIT的网站上:每当程序基于用户成功获得初始Kerberos凭据而授予对资源(例如桌面计算机上的本地登录会话)的访问权限时,它必须根据安全共享秘密(例如主机密钥标签)验证这些凭据,以确保用户凭据实际上来自合法的KDC。无法执行此验证是一个关键漏洞,因为恶意用户可以执行“Zanarotti攻击”:该用户构造一个假响应,该响应似乎来自合法的KDC,但其内容来自攻击者控制的KDC。

票数 1
EN

Server Fault用户

发布于 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 }

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/590991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档