尝试使用Windows AD帐户登录Linux系统。使用 SSSD 配置成功。
使用 LDAP 作为身份和访问提供程序,使用 Kerberos 作为身份验证提供程序。
我在没有将 Linux 系统加入域的情况下完成了这一切。
现在我尝试将 LDAP 配置为 sudo 提供程序。但它并不成功。我无法提升广告用户的 sudo 权限。我什至尝试过使用 sudoers 文件,在那里我可以提升特定用户的权限,但不能提升广告组的权限。
这是 SSSD 配置 wrt sudo 配置
**sudo_provider = ldap
ldap_sudo_search_base = ou=groups,dc=ad,dc=example,dc=com
ldap_sudorule_object_class = sudoRole
ldap_sudorule_object_class = top
ldap_sudorule_command = ALL
ldap_sudorule_host = ALL
ldap_sudorule_user = %domain_group
ldap_sudorule_runasuser = ALL
ldap_sudorule_runas = ALL
ldap_sudorule_runasgroup = ALL
ldap_sudorule_option = !authenticate**
Run Code Online (Sandbox Code Playgroud)
我尝试在调试级别 7 启用日志记录,它提到无法加载本地规则。
问候,乌代。
我正在寻找在 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
我在 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 新手,我只是在研究是否可以将它用于我的下一个项目,或者最好远离它。该项目将在很大程度上取决于嵌套组的概念,我经常需要知道用户在哪个组中(以及在哪个超级组中),哪些用户在哪个组中以及一个组中有多少人(包括子组)。我试图阅读 ldap 中的嵌套组,但很难找到关于该主题的优秀文献。到目前为止,我发现的最好的是:http : //middleware.internet2.edu/dir/groups/docs/internet2-mace-dir-groups-best-practices-200210.htm哪种推荐前向参考。
是否有其他文档描述嵌套组?到目前为止,我不受实现的限制,因此它可以是特定于 openLDAP 的。
我也愿意接受有关嵌套组的所有建议。
谢谢,马库斯
这是每个系统管理员要做的噩梦。基本上我们想控制谁可以访问哪些主机。听起来很简单,问题是找到一个可扩展且低维护(管理开销)的解决方案。我们使用bcfg2进行配置管理,就像 Cfengine & puppet 一样。
从某种角度:
Netgroups具有很强的可扩展性,但伴随着巨大的管理开销。维护主机、主机组、用户网络组(与 ldpa 组分开)似乎是一个很大的负担,但是是可行的。
ldap.conf(转至 jmozdzen 于 7 月 1 日发表的帖子)和基于 LDAP 的访问控制。我们可以为每个主机设置 ldap.conf 模板,并创建一个以主机名和成员为用户的组。但缺点是您不能指定 ldap 组(用户团队)进行访问,而只能单独指定。
sshd_config 限制。但如果用户本地登录,这将不起作用。
主机属性检查。通过在 ldap.conf 中取消注释 pam_check_host_attr 并将主机名添加到每个用户可以很好地工作,但自动化并不容易。
有没有人对这个问题有不同的方法,并且可以很好地扩展和自动化?
似乎 OpenLDAP 更喜欢使用 slapd-config(5) 而不是 slapd.conf(5)。但是我不知道如何从 slapd-config(5) 开始,因为我不知道如何为其设置 root 密码。
所以我又回来使用 slapd.conf(5) 了,内容如下/etc/ldap/slapd.conf:
database bdb
suffix "dc=mycompany,dc=net"
rootdn "cn=root,dc=mycompany,dc=net"
rootpw secret
directory /var/lib/ldap
Run Code Online (Sandbox Code Playgroud)
并交替/etc/default/slapd使用/etc/ldap/slapd.conf代替/etc/ldap/slapd.d。但是,它无法启动:
sudo /etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd - failed:
Unrecognized database type (bdb)
Run Code Online (Sandbox Code Playgroud)
但是,我发现他们是一个 bdb 后端:
$ ls -al /usr/lib/ldap/*bdb*
lrwxrwxrwx 1 root 21 2010-12-02 18:50 back_bdb-2.4.so.2 -> back_bdb-2.4.so.2.5.6
-rw-r--r-- 1 root 182560 2010-11-20 02:29 back_bdb-2.4.so.2.5.6
-rw-r--r-- 1 root 1106 2010-11-20 02:28 back_bdb.la
lrwxrwxrwx 1 root …Run Code Online (Sandbox Code Playgroud) 我有一个在 OSX Server 机器上运行的 OpenDirectory 服务器,我想通过拥有一个从服务器来提高服务的可靠性。问题是,我只有 1 个 OSX 服务器,但我有很多可用的 Linux 服务器。我对 Apple 与 OpenDirectory 集成的工具感到满意,但鉴于 Apple 最近停止使用 XServe,我对继续使用 Apple 硬件并不特别感兴趣。
我记得听说 OpenDirectory(现在很遥远)基于 OpenLDAP 代码库;有什么方法可以从 OpenDirectory 复制到 OpenLDAP 而不必购买另一台 OSX 服务器?
应该在slapd.conf 中加入什么ACL 以允许用户更改他们的密码。我们现在拥有默认 ACL,仅允许 rootdn 修改权限,同时允许包括匿名在内的所有人阅读。