我使用的是 openldap 2.4.40,我需要将我现有的 ldap 数据库、配置和架构(基本上与 ldap 服务器相关的所有内容)迁移到新机器上。
问题是,我使用 cn=config 配置而不是旧的 slapd.conf 文件了。
openldap 和其他 3rd 方网站提供的文档仅有助于迁移 slapd.conf LDAP 服务器,而不是具有较新 cn=config 配置文件的 LDAP 服务器。
而且我有新的模式(属性类型和对象类),有没有办法尽可能轻松地将它们迁移到新机器上?
除了重新配置并将我的模式一个接一个地手动添加到新机器之外,我需要其他方法。
这样做的目的是最有可能关闭旧机器。
TL;DR有什么方法可以方便地将 LDAP 数据库、模式、配置从 1 个 LDAP 服务器迁移到新的 LDAP 服务器,目的是关闭旧机器
谢谢你。
*在下面发布了答案
- 胡里奥
有没有办法ping和ldap服务器?我已经看过 ldapsearch 和 ldapwhoami 但会欣赏一些更像 ping 的东西。本质上,我们在选择的 LDAP 服务器前面有一个 bip 地址,并希望确认我们正在连接到哪个服务器。
很少有(约 30 个)Linux (RHEL) 机器,我正在寻找集中且易于管理的解决方案,主要用于控制用户帐户。我熟悉 LDAP,并部署了 Red Hat (==FreeIPA) 的 IPA ver2 试点。
我知道理论上 IPA 提供了类似“MS Windows 域”的解决方案,但乍一看,它[还] 不是那么容易和成熟的产品。除了 SSO,是否有任何仅在 IPA 域中可用而在我使用 LDAP 时不可用的安全功能?
我对 IPA 域的 DNS 和 NTP 部分不感兴趣。
尝试与我的 Novel eDirectory 8.8 服务器建立 ldaps 连接时,有时我必须放入TLS_REQCERT never客户端服务器 ldap.conf 文件。显然,这是一个坏主意。
我运行的命令与实际工作的凭据类似...
ldapsearch -x -H ldaps://ldapserver -b 'ou=active,ou=people,dc=example,dc=org' -D 'cn=admin,dc=example,dc=org' -W "cn=username"
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 13.10 上,它运行良好。
在 SLES 上它工作正常。
在 CentOS 6.5 上,它返回:
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Run Code Online (Sandbox Code Playgroud)
现在,我导入的证书是从 DigiCert 购买的通配符证书。我的同事发现一些报告表明某些系统存在通配符问题。
那么,通配符证书是罪魁祸首吗?如果是这样,我该如何解决?
如果它不是通配符证书,那么它是什么?
按照 Andrew Schulman 的建议,我添加-d1到我的 ldapsearch 命令中。这是我最终的结果:
ldap_url_parse_ext(ldaps://ldap.example.org)
ldap_create
ldap_url_parse_ext(ldaps://ldap.example.org:636/??base)
Enter LDAP Password:
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.example.org:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.225.0.24:636
ldap_pvt_connect: fd: 3 tm: …Run Code Online (Sandbox Code Playgroud) 我们将在我们的组织中实施 LDAP 以进行集中式身份验证。哪个是最好的简单 LDAP 管理工具?
我的一个 linux 服务器正在尝试与全局目录服务器建立 LDAPS 连接,但连接正在断开(大概是 GC 端)。
为便于讨论,假设 1.1.1.1 是 Linux 服务器,而 1.2.3.4 是全局编录服务器。
如果我尝试telnet从 Linux 框中使用,我会看到:
[root@foobox ~]# telnet gcfoo.exampleAD.local 3269
Trying 1.2.3.4...
Connected to gcfoo.examplead.local.
Escape character is '^]'.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
第 4 行和第 5 行之间没有延迟。它只是立即断开连接。
我认为telnet结果可能有点误导(因为它实际上并不适合任何类型的安全通信),所以我从设备收集了实际连接尝试的数据包捕获(使用需要 LDAPS 的实际程序)。
这是我所看到的(同样,IP 和源端口已被重命名以保护无辜者):
No. Time Source Destination Protocol Length Info
1 0.000000 1.1.1.1 1.2.3.4 TCP 66 27246 > msft-gc-ssl [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SAC_PERM=1 WS=128
2 0.000162 1.2.3.4 1.1.1.1 TCP 62 msft-gc-ssl …Run Code Online (Sandbox Code Playgroud) 如今,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) 搜索了答案,但在这里什么也没找到...
长话短说:一家非营利组织急需对其基础设施进行现代化改造。首先是找到一种替代方法来管理多个 Linux 主机上的用户帐户。
我们有 12 台服务器(物理和虚拟)和大约 50 个工作站。我们有 500 名这些系统的潜在用户。多年来构建和维护系统的个人已经退休。他编写了自己的脚本来管理这一切。它仍然有效。那里没有抱怨。但是,很多东西是非常手动且容易出错的。代码很乱,更新后经常需要调整。最糟糕的是几乎没有编写文档。只有一些自述文件和随机笔记可能不再相关,也可能不再相关。因此,维护成为一项艰巨的任务。
目前,每个系统上的帐户都通过 /etc/passwd 进行管理。随着帐户添加到“主”服务器上,更新通过 cron 脚本分发以更正系统。一些用户必须有权访问所有系统(如系统管理员帐户),其他用户需要访问共享服务器,而其他用户可能需要访问工作站或仅访问其中的一部分。
是否有工具可以帮助我们管理满足以下要求的帐户?
我在网上搜索过,所以没有找到合适的。我们乐于接受任何建议。谢谢你。
编辑:这个问题被错误地标记为重复。链接到答案仅讨论在所有系统上具有相同的主目录,而我们需要根据当前登录的系统用户(多个主目录)拥有不同的主目录。此外,访问只需要授予某些机器而不是全部机器。Mods,请理解问题的全部范围,而不是仅仅将其标记为重复点...
我想说服我的老板我们应该使用 git 进行版本控制。他说,它绝对必须通过我们的中央 LDAP 服务器对用户进行身份验证。
我查看了各种解决方案(gitweb、gitorious ...),并没有真正找到关于它们是否支持 LDAP 身份验证的明确答案。
我能找到一些信息的唯一解决方案是 Apache+mod_ldap 设置。但这意味着在 LDAP 上进行身份验证的用户不一定与实际的 git 用户相同,对吗?(并不是说这是一个大问题,而是一些会让我烦恼的事情。)
那么,通过 LDAP 对 git 用户进行身份验证的最佳方法是什么?
我有一个小型但不断增长的 Linux 服务器网络。理想情况下,我想要一个中央位置来控制用户访问、更改密码等......我已经阅读了很多关于 LDAP 服务器的内容,但我仍然对选择最佳身份验证方法感到困惑。TLS/SSL 是否足够好?Kerberos 有什么好处?什么是 GSSAPI?等等......我还没有找到一个明确的指南来解释这些不同方法的优缺点。谢谢你的帮助。