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

Jos*_*osh 3 ldap mac-osx-server authentication samba freenas

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

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

Jos*_*osh 6

经过数小时的谷歌搜索和测试,我终于设法将 FreeNAS 8 与 Mac OS X Open Directory 集成在一起。这是实现这一目标所需的条件:

首先,使用服务器管理应用程序确保 Open Directory 已启动并正在运行:

打开目录屏幕截图

请注意LDAP 搜索库Kerberos 领域

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

FreeNAS LDAP 配置 FreeNAS LDAP 配置 2

  • 主机名: your.servers.hostname.or.ip
  • 基本DN: 你的LDAP搜索基地从开放式目录
  • 允许匿名绑定:未选中(我以我的diradmin用户身份关闭并绑定了它,但这可能是不必要的......)
  • 根绑定 DN: uid=diradmin, 然后是基本 DN
  • 根密码: 您的 Open Directorydiradmin用户的密码。同样,这可能是不必要的,我不确定
  • 密码加密: 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*
    
    Run Code Online (Sandbox Code Playgroud)

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

当您保存更改时,LDAP 应该开始为Samba/CIFS之外的所有服务工作。部分困难在于如何修复 Samba:在 FreeNAS 上最初配置 LDAP 服务后,我发现根本没有用户可以通过 Samba 连接,即使是在 FreeNAS 机器上本地定义的用户。

Samba 的日志中没有错误,只有客户端计算机上的权限被拒绝错误。更多研究表明,我必须使用 SASLLDAP 配置分开启用 FreeNAS Samba 服务器以针对 Mac OS X Open Directory 进行身份验证。

请务必注意 Mac OS X LDAP 数据库不包含密码数据。只能通过 SASL/Kerberos 进行身份验证。在 Apple 论坛上引用David Colville1 的话

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

密码存储在 PasswordServer(SASL 服务器)、CRAM-MD5、Digest-MD5、DHX 等中(请参阅 Open Directory 管理指南的第 50 页)。

这就是为什么sasl-hostLDAP 在 LDAP 配置中如此重要的原因。

配置 Samba 以使用 SASL:

更新 2012-12-31:这不再适合我。我已经尝试了几个小时来确定原因,但到目前为止还没有。

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

CIFS 配置屏幕截图

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

保存这些更改后,使用 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。