LDAP 服务器托管在 Solaris 上。客户端是 CentOS。通过 LDAP 的 OpenLDAP/NSLCD/SSH 身份验证工作正常,但我无法使用 ldapsearch 命令来调试 LDAP 问题。
[root@tst-01 ~]# ldapsearch
SASL/EXTERNAL authentication started
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
additional info: SASL(-4): no mechanism available:
[root@tst-01 ~]# cat /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld
BASE dc=tst,dc=domain,dc=tld
[root@tst-01 ~]# ls -al /etc/openldap/cacerts
total 12
drwxr-xr-x. 2 root root 4096 Jun 6 10:31 .
drwxr-xr-x. 3 root root 4096 Jun 10 10:12 ..
-rw-r--r--. 1 root root 895 Jun 6 10:01 cacert.pem
lrwxrwxrwx. 1 root root 10 …Run Code Online (Sandbox Code Playgroud) 我运行一个开源协作套件,我很满意,我的用户群也很满意……除了日历之外。这是一个严重的痛点,我正在争先恐后地寻找解决方案。
我有用于电子邮件的 Courier+Postfix+Maildrop,XMPP/Jabber 服务都支持 OpenLDAP(公司目录也来自 LDAP)。我唯一的症结是一个不错的日历/调度包,它具有以下(看似简单)的功能:
很高兴拥有:
我不想要的是一个全新的协作堆栈(ala Zimbra、OpenXchange、Hula 等)。我喜欢我的邮件设置,我喜欢我的 Jabber 设置。我只需要一个日历产品。我不希望免费(不过,那会很好),我想要一些有人实际接触过的建议(我要求很高,我知道...),而不仅仅是来自 CalDav 联盟网页的列表。;)
只有我有这个问题吗?帮助!:)
在过去的几天里,我一直在使用很多 F-words,同时浏览 Internet 以获取有关如何设置 LDAP 服务器的良好文档。到目前为止,我没有发现任何东西,但有很多不如好,但比坏好。所以我不得不按照通常的 Linux 方式来做,阅读、测试、尖叫、阅读、测试和尖叫。
我对 LDAP 服务器的目标是:
这是我通常自己回答的那种问题,但我会很感激有关如何更好地进行安装的建议。
我对 LDAP 比较陌生,已经看到了两种如何设置结构的示例。
一种方法是使用基础是:dc=example,dc=com而其他示例的基础是o=Example。继续下去,您可以拥有一个如下所示的组:
dn: cn=team,ou=Group,dc=example,dc=com
cn:团队
对象类:posixGroup
成员标识:user1
成员标识:user2
...或使用“O”样式:
dn:cn=团队,o=示例
对象类:posixGroup
成员标识:user1
成员标识:user2
我的问题是:
到目前为止,我已经采用了这种dc=example,dc=com风格。社区可以就此事提供的任何建议将不胜感激。
我目前正在将 LDAP 身份验证集成到系统中,我想限制基于 LDAP 组的访问。做到这一点的唯一方法是通过搜索过滤器,因此我相信我唯一的选择是在我的搜索过滤器中使用“memberOf”属性。我的理解是“memberOf”属性是一个操作属性,可以由服务器为我创建任何时候为服务器上的任何“groupOfNames”条目创建新的“成员”属性。我的主要目标是能够将“成员”属性添加到现有的“groupOfNames”条目,并将匹配的“memberOf”属性添加到我提供的 DN。
到目前为止我已经成功实现了:
我对 LDAP 管理还是很陌生,但根据我在 openldap 管理员指南中的发现,反向组成员身份维护(也称为“成员覆盖”)似乎可以达到我正在寻找的效果。
我的服务器当前正在运行 openldap 2.4.15 的软件包安装(在 ubuntu 上为 slapd),它使用“cn=config”样式的运行时配置。我发现的大多数示例仍然引用了旧的“slapd.conf”静态配置方法,并且我已尽力使配置适应新的基于目录的模型。
我添加了以下条目以启用 memberof 覆盖模块:
使用 olcModuleLoad 启用模块
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
Run Code Online (Sandbox Code Playgroud)
为数据库启用覆盖并允许它使用它的默认设置(groupOfNames、member、memberOf 等)
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: …Run Code Online (Sandbox Code Playgroud) 我使用的是 openldap 2.4.40,我需要将我现有的 ldap 数据库、配置和架构(基本上与 ldap 服务器相关的所有内容)迁移到新机器上。
问题是,我使用 cn=config 配置而不是旧的 slapd.conf 文件了。
openldap 和其他 3rd 方网站提供的文档仅有助于迁移 slapd.conf LDAP 服务器,而不是具有较新 cn=config 配置文件的 LDAP 服务器。
而且我有新的模式(属性类型和对象类),有没有办法尽可能轻松地将它们迁移到新机器上?
除了重新配置并将我的模式一个接一个地手动添加到新机器之外,我需要其他方法。
这样做的目的是最有可能关闭旧机器。
TL;DR有什么方法可以方便地将 LDAP 数据库、模式、配置从 1 个 LDAP 服务器迁移到新的 LDAP 服务器,目的是关闭旧机器
谢谢你。
*在下面发布了答案
- 胡里奥
我们将在我们的组织中实施 LDAP 以进行集中式身份验证。哪个是最好的简单 LDAP 管理工具?
这是为一家没有实施任何集中用户数据库的小公司(12 名开发人员)准备的——他们已经有机地成长,只是根据需要在计算机上创建帐户。
从管理的角度来看,这是一场噩梦 - 10 台计算机都具有不同的用户帐户。如果用户被添加到一台计算机,他们需要手动添加到所有其他计算机(他们需要访问)。这远非理想。随着更多计算机/用户的添加/雇用,向前发展并发展业务将意味着更多的工作。
我知道,有些类型的集中用户管理的迫切需要。但是,我在 Active Directory 和 OpenLDAP 之间争论不休。当前的两台服务器用作简单的备份和文件共享服务器,都运行 Ubuntu 8.04LTS。这些计算机混合了 Windows XP 和 Ubuntu 9.04。
我没有使用 Active Directory(或真正的 OpenLDAP,但我对 Linux 感到满意)的经验,但是如果一个解决方案比另一个解决方案更重要,那么我有理由了解这一点。
前期成本不是真正的问题,TCO 才是。如果 Windows(我假设是 SBS?)能为我节省足够的时间来弥补增加的前期成本,那么我认为我应该采用该解决方案。
根据我的需要,我应该考虑实施什么解决方案?
编辑:电子邮件是异地托管的,因此不需要 Exchange。
我正在为大约 150 个用户设置无线网络。简而言之,我正在寻找设置 RADIUS 服务器以针对 LDAP 对 WPA2 进行身份验证的指南。在 Ubuntu 上。
还有一个坏消息:
更新 2009-08-18:
虽然我找到了几个有用的资源,但有一个严重的障碍:
Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.
Run Code Online (Sandbox Code Playgroud)
基本上,FreeRADIUS 的 Ubuntu 版本不支持 SSL(错误 183840),这使得所有安全 EAP 类型都无用。无赖。 …
如今,OpenLDAP的需要与的ldapmodify CN =配置来配置,如描述在这里。但是我找不到您如何将其配置为仅接受 TLS 流量的方法。我刚刚确认我们的服务器接受未加密的流量(使用 ldapsearch 和 tcpdump)。
通常,我只会关闭带有 IP 表的非 SSL 端口,但显然不推荐使用 SSL 端口,所以我没有那个选项。
因此,使用 SSL 配置命令,如下所示:
dn: cn=config
changetype:modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/bla.key
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/bla.crt
-
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/ca.pem
Run Code Online (Sandbox Code Playgroud)
是否有强制 TLS 的参数?
编辑:我尝试了 olcTLSCipherSuite,但它不起作用。调试输出:
TLS: could not set cipher list TLSv1+RSA:!NULL.
main: TLS init def ctx failed: -1
slapd destroy: freeing system resources.
slapd stopped.
connections_destroy: nothing to destroy.
Run Code Online (Sandbox Code Playgroud)
Edit2(几乎固定):我能够通过加载来修复它:
# cat force-ssl.tx
dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: …Run Code Online (Sandbox Code Playgroud)