我正在寻找在 Linux 上使用 Open LDAP 而不是使用 Open 或 Active Directory 来管理中型 Mac 网络(300ish)的资源/建议/经验。
想要以下功能:
我的目的是将客户联系信息的 MySQL 表作为地址簿(通过 LDAP)提供给 Outlook/Thunderbird 客户端。
我知道 OpenLDAP 有一个 MySQL 后端选项,但我找不到任何关于如何配置它的清晰、可靠的文档。
我需要设置哪些 OpenLDAP 选项,我应该去哪里设置它们?
我正在运行 Ubuntu 9.04。
更新:
我已经设置了 ODBC 文件,并将测试数据导入到数据库中,但仍然不知道如何配置 slapd 以使用数据库。在某处,在某些配置文件中,我不得不说“slapd,使用名为‘LDAP2MySQL’的 ODBC 资源”。但是哪里?如何?
另一个更新:
我无处可去:
Ubuntu 包版本毕竟没有 SQL 支持,所以我将其删除,并尝试从源代码安装。
我认为它安装没问题,但是“make test”产生错误“比较失败。./scripts/test003-search failed (exit 1)”。
无论如何,我做了一个“make install”,因为谷歌似乎没有任何关于如何解决“比较失败”问题的解释。
现在我什至不能开始愚蠢的事情。“/etc/init.d/slapd start”,与 Ubuntu 的包一起工作,不起作用。openLDAP 手册说“/usr/local/libexec/slapd”是启动它的命令。...但该命令不产生任何输出。我什至不知道它是否正在运行。我放弃。
另一个更新:
好的,我运行了“top | grep slapd”但我什么也没得到,所以我想它没有运行。但没有错误信息。所以呢?我必须猜测为什么它不会启动?
更新:
我已经重新安装了操作系统,并从头开始。现在我什至不能 ./configure openldap 因为它找不到 db.h。安装了包“db4.7-util”。我越努力使这项工作成功,它的效果就越差。我不敢相信没有人知道如何做到这一点。
更新:
我刚刚从源代码安装了 BerkeleyDB,但 OpenLDAP 编译器仍然说:
检查 db.h... 没有
配置:错误:BDB/HDB:BerkeleyDB 不可用
一个网站建议我尝试:
导出 CPPFLAGS="-I/usr/local/berkeleydb/include" 导出 LDFLAGS="-L/usr/local/berkeleydb/lib"
但这也不起作用。
更新:
好的。我终于可以编译了。 …
我们希望在不更改密码等的情况下将我们的用户帐户从 OpenLDAP 迁移到 Active-Directory。用户不应该注意到他们当时针对哪个服务器进行身份验证的差异。
How-to-create-active-directory-user-account-with-powershell是一种非常有趣的方法,但由于密码是加密存储的,因此对我们不起作用。
我们的任务有哪些可能的解决方案/设置?
OpenLDAP 版本:SuSE 上的 2.1,Windows Server 2008
如何在一个私有的、全 Linux LDAP 身份验证的网络中限制单个用户帐户一次登录的台式机数量?
下面是要防止的场景: 具有有效帐户的用户使用同一帐户登录到 10 个不同的桌面,以便他可以与 9 个朋友一起玩游戏;这些朋友都没有网络上的有效帐户。
服务器是带有 OpenLDAP 的 RHEL 5,桌面是 Fedora 11(可用时将是 CentOS 5.4)。所有桌面登录都是通过服务器上的 LDAP 进行的。
注意:可以使用in来限制单台机器上的并发登录,但这在所述场景中是无用的。maxlogins/etc/security/limits.conf
另请注意:在带有 Active Directory 的 Windows 网络上,UserLock 和 LimitLogin 等软件可以完成此操作;但是这个网络没有 Windows,也没有 AD 服务器。
编辑:我意识到 LDAP 本身不能做到这一点;如果有成熟的、经过充分测试的附加产品,类似于上述基于 Windows 的产品,那将是个好消息。我什至会考虑非免费/非自由解决方案。
我在 Unix 主机上,正在寻找一种编程方式来确定最近的 DC。Microsoft 有一篇出色的文章解释了如何执行 DNS 查找,我可以像这样轻松找到可用 DC 的列表:
dig -t SRV _ldap._tcp.dc._msdcs.example.com
Run Code Online (Sandbox Code Playgroud)
但关于找到最接近的,它解释说:
客户端找到域控制器后,它通过使用 LDAP 建立通信以获取对 Active Directory 的访问权限。作为该协商的一部分,域控制器根据该客户端的 IP 子网识别该客户端所在的站点。如果客户端正在与不在最近(最佳)站点中的域控制器通信,域控制器将返回客户端站点的名称。
到目前为止,我还没有找到在 LDAP 查询期间“返回客户端站点的名称”的位置。是否有我应该执行的特定查询来获取此信息,或者可以在未加入域的 Unix 主机上执行的其他一些技术?
编辑:感谢 Sim 的指针,一旦我知道我的网站(在本例中,“mysite”作为 example.com 的一部分),我已经学会了如何找到正确的 DC:
dig -t SRV _ldap._tcp.mysite._sites.dc._msdcs.example.com
Run Code Online (Sandbox Code Playgroud)
但这留下了如何确定我的网站的问题。文档反复表明我连接到的任何 DC 都会为我解决这个问题,但我找不到说明它如何向我返回信息的文档。我什至尝试直接向 DC 发送 DNS 查询,以查看他们是否会将我的站点放在顶部的 SRV 结果进行排序,但他们没有。
我一直想知道是否可以使用 LDAP 来控制用户权限。例如,如果我使用 UNIX 和 Web 登录,是否有一种简单的方法可以授予用户仅访问UNIX或仅访问UNIX(甚至两者?)
我目前解决这个问题的尝试是创建 'login' 和 'nologin' 组,但这似乎不够细粒度,无法满足我脑海中的想法。我仍然处于所有 UNIX 用户都是 Web 用户的情况,这不是问题,而是限制的一个指标。
有没有人对此有任何意见?这个问题已经解决了吗?
我在 LDAP 上配置了一些用户,并希望他们能够使用 LDAP 目录上的这些用户和密码通过 SSH 连接到 Linux 机器。
但是,有两个问题我不知道如何处理:
ssh user@something@computer?谢谢!
我在 Debian 服务器上运行 OpenLDAP 目录,使用 hdb 后端。我一直想知道备份,并在网上阅读了一些内容。Slapcat 似乎是要走的路,但我一直看到这些帖子说在 slapd 运行时使用它是危险的。
这以什么方式危险?我计划在夜间运行这些备份,并且在夜间不会对数据库执行任何写入操作 - 不过可能会发生读取操作。
如果有任何其他更适合此的备份解决方案,我很乐意听到。
我正在寻找可以对 LDAP 服务器进行身份验证的免费日历服务器。我希望我们的用户在日历服务器上使用雷鸟闪电。我们有用于 webmail 的带有 devcot 和 squirlmail 的邮件服务器。你能推荐我日历服务器吗?
我想我会在这里分享我的经验。我为一家只有约 20 个用户的小型企业工作。我希望能够使用托管客户端首选项来分配诸如软件更新服务器之类的东西。基本上能够以本机方式轻松管理我的 Mac。
起初我尝试了魔三角解决方案,但我发现这非常复杂。它不仅需要 Mac OS X 服务器,而且会给您带来两个故障点。此外,每个 Mac 工作站都必须绑定到两台服务器。
最终,我接受了它并进行了此处记录的架构更改。一开始我很犹豫,因为说明书需要大量的手工操作。然而,这是相当基本的,只花了我大约一个半小时。您将在下面找到我工作的结果的架构更改文件。我完全按照说明操作并仔细检查了所有内容,六个月后,一切都运行良好。太好了不分享。我希望我能救人几个小时。
# ==================================================================
#
# This file should be imported with the following command:
# ldifde -i -u -f Apple AD Schema Changes.ldf -s server:port -b username domain password -j . -c "cn=Configuration,dc=X" #configurationNamingContext
# LDIFDE.EXE from AD/AM V1.0 or above must be used.
# This LDIF file should be imported into AD or AD/AM. It may not work for other directories.
#
# ================================================================== …Run Code Online (Sandbox Code Playgroud)