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

我试图用我的Mac OS X 10.7 Lion目录服务器的开放目录连接我的文件服务器(FreeNAS 8.0.1 / 8.2-RELEASE-P7)…我知道Mac OS X提供了一个LDAP服务,其他服务器可以通过它进行身份validation反对,但我很难让FreeNAS对照Mac OS X Open Directory进行身份validation。

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

经过几个小时的search和testing,我最终设法将FreeNAS 8与Mac OS X Open Directory集成在一起。 以下是需要做的事情:

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

打开目录屏幕捕获

请注意LDAPsearch库Kerberos领域

在FreeNAS的Web GUI中,configurationLDAP服务如下:

FreeNAS LDAP配置FreeNAS LDAP配置2

  • 主机名: your.servers.hostname.or.ip
  • 基本DN: 来自Open Directory的LDAPsearch库
  • 允许匿名绑定:取消选中(我有这个和绑定为我的diradmin用户,但这可能是不必要的…)
  • Root Bind DN: uid=diradmin, 然后是Base DN
  • 根密码: 您的Open Directory diradmin用户的密码 。 再次,这可能是不必要的,我不确定
  • 密码encryption: crypt
  • 用户后缀: cn=users
  • 组后缀: cn=groups
  • 密码后缀: cn=users
  • 机器后缀: cn=computers
  • encryption模式: 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*的信息replace*your.open.directory.server.ip.or.hostname**YOUR.KERBEROS.REALM.FROM.FIRST.STEP* (请参阅第一个屏幕截图)

当您保存更改时,LDAP应该开始工作 Samba / CIFS 以外的所有服务。 部分难题是如何修复Samba:在FreeNAS上初始configurationLDAP服务之后,我发现没有用户可以通过Samba进行连接 ,甚至本地在FreeNAS机器上定义的用户。

在Samba的日志中没有错误,只是权限被拒绝在客户端机器上的错误。 更多的研究表明,我必须启用FreeNAS Samba服务器使用SASL LDAPconfiguration分开进行Mac OS X Open Directoryauthentication。

请注意,Mac OS X LDAP数据库不包含密码数据 。 身份validation只能通过SASL / Kerberos使用。 引用苹果论坛上的David Colville1 :

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

密码存储在PasswordServer(SASL服务器),CRAM-MD5,Digest-MD5,DHX等内部(请参见“开放式目录pipe理指南”的第50页)。

这就是sasl-host在LDAPconfiguration中如此重要的原因。

configurationSamba以使用SASL:

更新2012年12月31日:这不再为我工作。 我一直在尝试几个小时,以确定为什么,迄今为止无法。

在FreeNAS Web GUI中,configurationCIFS服务如下:

CIFS配置屏幕捕获

(CIFSconfiguration屏幕非常长,为了清晰起见,我将顶部和底部组合在一起)

  • 身份validation模型: Local User
  • 辅助参数:

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

保存这些更改后,使用Open Directory中定义的用户testing连接到Samba,并确认您可以连接。 另外,使用AFP / SSH进行testing以确认这些也是对开放目录进行身份validation。

已知的问题

有几件事我无法解决:

  1. Mac OS X LDAP服务器上的用户主目录采用/Network/Servers/some.server/some.directory/username 。 但FreeNAS没有/Network/Servers目录。 这将是非常简单的mkdir -p /Network/Servers和符号链接用户的主目录,然而/只读安装,所以我不能这样做。 因此,LDAP用户不能拥有.AppleVolumes文件来定制AFP共享

    UPDATE 2012-12-31:我发现Mac OS X将允许/mnt/somewhere/someuserforms的主目录,允许Mac OS X用户的主目录与FreeNAS文件系统匹配,解决了这个问题。

  2. Samba / CIFS现在只能validationLDAP用户。 这意味着任何通过Samba连接的用户都必须在LDAP数据库中有antry,本地用户将不再工作。 这意味着你不能有一个主目录共享,见#1。