与 realmd/sssd 和 AD 集成共享文件夹

与 realmd/sssd 和 AD 集成共享文件夹

我已经设置了一台 CentOS 7 机器,并通过以下方式将其加入我们的 AD realmd

yum install realmd samba-common oddjob oddjob-mkhomedir sssd
realm join [email protected] mydomain.local

之后,realm list返回预期的输出

[root@webdev samba]# realm list
  mydomain.local
  type: kerberos
  realm-name: MYDOMAIN.LOCAL
  domain-name: mydomain.local
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common
  login-formats: %[email protected]
  login-policy: allow-realm-logins

我可以使用我的 AD 凭证通过 SSH 登录(所以我得到[电子邮件保护]@主机名)。

我现在需要允许 Windows 用户访问机器上的文件夹,但 Samba 似乎不愿意配合 - 所有组合或用户名和密码都返回错误。我不知道如何调试这个问题,或者我是否遗漏了什么。

smb.conf文件基本上是:

 [root@webdev samba]# testparm
 Load smb config files from /etc/samba/smb.conf
 rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
 Processing section "[vHosts]"
 Loaded services file OK.
 Server role: ROLE_DOMAIN_MEMBER
 Press enter to see a dump of your service definitions

 [global]
    workgroup = MYDOMAINLOCAL
    realm = MYDOMAIN.LOCAL
    server string = Samba Server Version %v
    security = DOMAIN
    log file = /var/log/samba/log.%m
    max log size = 50
    load printers = No
    idmap config * : backend = tdb
    hosts allow = 127., 10.0.
    cups options = raw

  [vHosts]
    comment = Virtual Host repository
    path = /var/www/vhosts
    valid users = MYDOMAINLOCAL\%S
    read only = No

我应该注意到我已将目录(/var/www/vhosts)系统权限更改为 777。

任何帮助都将不胜感激。提前致谢!

更新:

  • DC是Windows 2003 R2,客户端是Windows 7
  • 尝试将ads和都设置为安全性domain,但结果类似(没有成功)
  • Windows 凭据对话框中收到的错误消息是“拒绝访问”
  • 尝试了禁用和启用防火墙,没有区别
  • SELinux 已禁用

正在搜索 krb* 包:

[root@webdev logs]# rpm -qa | grep krb
sssd-krb5-common-1.11.2-68.el7_0.5.x86_64
sssd-krb5-1.11.2-68.el7_0.5.x86_64
samba-winbind-krb5-locator-4.1.1-35.el7_0.x86_64
krb5-libs-1.11.3-49.el7.x86_64

并且命令输出getent passwd MYDOMAINLOCAL\myusergetent passwd mydomain.local\myuser返回空白(无输出)。

答案1

回答我自己的问题:

唯一错误的是valid users其中的部分smb.conf——看起来它%S根本不起作用。

因此,对于 Windows 中名为“WebDevGrp”的安全组,在 CentOS 上它将显示为[email protected](您可以通过 进行测试),然后您可以像这样创建 Samba 共享:groups [email protected]

[vHosts]
  comment = Virtual Host repository
  path = /var/www/vhosts
  public = no
  writable = yes
  guest ok = no
  valid users = @"[email protected]"

而且您甚至不需要输入密码——一切都是无缝的!

PS. 当调试 Samba 时,添加log level = 3到您的配置中,会产生很大的不同!

PPS。我写了整个过程的指南 - 从全新安装的 CentOS 7 到使用 AD 身份验证/授权的 Samba 共享,您可以在我的博客中找到这里

答案2

最近,我不得不在 Fedora 和 Windows 2012/Windows 7 上配置 Windows/Samba 测试环境,并遇到了一些类似的问题。在 Windows 服务器/客户端上更改这些注册表项后,一切正常:

HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\DomainCompatibilityMode=1

HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\DNSNameResolutionRequired=0

HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\RequireSecureNegociate=0

但是我使用 winbind/kinit/etc. 来执行 AD 集成。也许这可以帮到你。

编辑1:

  • 您是否在 CentOS 上安装了类似这样的 kerberos 包:krb5-workstation krb5 -libs krb5 -auth -dialog?
  • “getent passwd” 会返回 Windows 域用户吗?

相关内容