如何将我的 FreeNAS 文件服务器连接到我的 Mac OS X 目录服务器?

如何将我的 FreeNAS 文件服务器连接到我的 Mac OS X 目录服务器?

我正在尝试将我的文件服务器(FreeNAS 8.0.1 / 8.2-RELEASE-p7)与我的 Mac OS X 10.7 Lion 目录服务器的开放目录连接起来...我知道 Mac OS X 提供了一个 LDAP 服务,其他服务器可以通过该服务进行身份验证,但我在让 FreeNAS 通过 Mac OS X 开放目录进行身份验证时遇到了很大困难。

如何将我的 FreeNAS 文件服务器连接到我的 Mac OS X 目录服务器?

答案1

经过几个小时的谷歌搜索和测试,我终于成功将 FreeNAS 8 与 Mac OS X Open Directory 集成。实现此目的需要以下条件:

首先,使用 Server Admin 应用程序确保 Open Directory 已启动并正在运行:

打开目录屏幕截图

注意LDAP 搜索库Kerberos 领域

在 FreeNAS 的 Web GUI 中,按如下方式配置 LDAP 服务:

FreeNAS LDAP 配置 FreeNAS LDAP 配置 2

  • 主机名: 你的服务器主机名或 ip
  • 基本 DN: 你的LDAP 搜索库来自开放目录
  • 允许匿名绑定:未选中(我已将其关闭并绑定为我的diradmin用户,但这可能是不必要的......)
  • 根绑定 DN: uid=diradmin, 然后是基本 DN
  • 根密码: diradmin您的 Open Directory用户的密码。再次,这可能是不必要的,我不确定
  • 密码加密: crypt
  • 用户后缀: cn=users
  • 组后缀: cn=groups
  • 密码后缀: cn=users
  • 机器后缀: cn=computers
  • 加密模式: Off
  • 自签名证书: 空的
  • 辅助参数:

    ldap_version 3
    timelimit 30
    bind_timelimit 30
    bind_policy soft
    pam_ldap_attribute uid
    
    sasl-host *your.open.directory.server.ip.or.hostname*
    sasl-realm *YOUR.KERBEROS.REALM.FROM.FIRST.STEP*
    

辅助参数是关键,尤其是sasl-hostsasl-realm。显然,用第一步中的信息替换*your.open.directory.server.ip.or.hostname*和(参见第一个屏幕截图)*YOUR.KERBEROS.REALM.FROM.FIRST.STEP*

保存更改后,LDAP 应开始为所有服务工作除了桑巴/CIFS。困难的一部分是如何修复 Samba:在 FreeNAS 上最初配置 LDAP 服务后,我发现根本没有用户可以通过 Samba 连接,甚至是 FreeNAS 机器上本地定义的用户。

Samba 日志中没有错误,只有客户端计算机上的权限被拒绝错误。进一步的研究表明,我必须启用 FreeNAS Samba 服务器才能使用 SASL 对 Mac OS X Open Directory 进行身份验证分别地来自 LDAP 配置。

需要注意的是,Mac OS X LDAP 数据库不包含密码数据. 身份验证仅可通过 SASL/Kerberos 进行。引用Apple 论坛上的 David Colville1

与其他一些 LDAP 目录不同,OS X 不会在 LDAP 记录中存储密码 - 它使用“SASL”机制 - 它查询“AuthenticationAuthority”属性来建议可以检索用户密码的位置。

密码存储在密码服务器(SASL 服务器)中,以 CRAM-MD5、Digest-MD5、DHX 等格式存储(请参阅开放目录管理指南第 50 页)。

这就是为什么sasl-host在 LDAP 配置中如此重要。

配置 Samba 以使用 SASL:

更新 2012-12-31:这对我来说不再有效。我花了几个小时试图找出原因,但至今仍无所获。

在 FreeNAS Web GUI 中,按如下方式配置 CIFS 服务:

CIFS 配置屏幕截图

(CIFS 配置屏幕很长,为了清楚起见,我将最顶部和最底部合并起来)

  • 认证模型: Local User
  • 辅助参数:

    password server = *YOUR.KERBEROS.REALM.FROM.FIRST.STEP*
    client ntlmv2 auth = yes
    

保存这些更改后,使用 Open Directory 中定义的用户测试连接到 Samba,并确认您可以连接。此外,使用 AFP/SSH 进行测试,以确认它们也针对 Open Directory 进行身份验证。

已知的问题

有几件事我无法解决:

  1. Mac OS X LDAP 服务器上的用户主目录采用以下形式/Network/Servers/some.server/some.directory/username。但是 FreeNAS 没有目录。创建和符号链接用户主目录/Network/Servers非常简单,但是它以只读方式挂载,因此我无法这样做。mkdir -p /Network/Servers/因此,LDAP 用户无法拥有.AppleVolumes自定义 AFP 共享的文件

    更新2012-12-31:我发现 Mac OS X 将允许以 形式存在的主目录/mnt/somewhere/someuser,从而允许 Mac OS X 用户的主目录与 FreeNAS 文件系统相匹配,从而解决了这个问题。

  2. Samba/CIFS 现在只能对 LDAP 用户进行身份验证。这意味着通过 Samba 连接的任何用户都必须在 LDAP 数据库中拥有一个 antry,本地用户将不再起作用。这意味着您无法拥有主目录共享,请参阅 #1。

相关内容