这是为一家没有实施任何集中用户数据库的小公司(12 名开发人员)准备的——他们已经有机地成长,只是根据需要在计算机上创建帐户。
从管理的角度来看,这是一场噩梦 - 10 台计算机都具有不同的用户帐户。如果用户被添加到一台计算机,他们需要手动添加到所有其他计算机(他们需要访问)。这远非理想。随着更多计算机/用户的添加/雇用,向前发展并发展业务将意味着更多的工作。
我知道,有些类型的集中用户管理的迫切需要。但是,我在 Active Directory 和 OpenLDAP 之间争论不休。当前的两台服务器用作简单的备份和文件共享服务器,都运行 Ubuntu 8.04LTS。这些计算机混合了 Windows XP 和 Ubuntu 9.04。
我没有使用 Active Directory(或真正的 OpenLDAP,但我对 Linux 感到满意)的经验,但是如果一个解决方案比另一个解决方案更重要,那么我有理由了解这一点。
前期成本不是真正的问题,TCO 才是。如果 Windows(我假设是 SBS?)能为我节省足够的时间来弥补增加的前期成本,那么我认为我应该采用该解决方案。
根据我的需要,我应该考虑实施什么解决方案?
编辑:电子邮件是异地托管的,因此不需要 Exchange。
我正在尝试设置一个测试 openldap 服务器,之前没有使用过 openldap。我在基于 redhat 的机器上使用标准的 openldap-servers 包(使用 Oracle Linux)。我已经安装了这些软件包,并启动了服务器。
我现在不知道如何让服务器做一些有用的事情;我无法使用 luma 浏览它(尝试访问顶级条目时“没有这样的对象”),openldap 文档对于您如何实际将服务器设置为基本工作配置以及所有在线信息都很模糊用于旧的 slapd.conf 文件而不是新的 slapd.d 和 cn=config。
我如何在可以浏览到 luma 中的根 dn 的地方运行 vanilla 打包的 openldap 安装?
您如何计算自 1970 年 1 月 1 日以来的天数?这是用于更新OpenLDAP 上的shadowLastChange属性。
有没有办法使用 linux date命令来做到这一点?
我必须将organizationalunit这样的添加到新安装的 OpenLDAP(在 Ubuntu 12.04 上):
dn: ou=MYREGION, ou=MYAPP, ou=GROUPS, o=myorganization, c=fr
ou: MYREGION
objectClass: top
objectClass: organizationalunit
Run Code Online (Sandbox Code Playgroud)
因此,由于它是一个新的 LDAP,我想我必须先添加fr国家/地区,然后创建该文件:
dn: c=fr
c: fr
objectClass: top
objectClass: country
Run Code Online (Sandbox Code Playgroud)
现在我尝试使用该命令导入它(我没有该服务器的域):
ldapadd -x -D cn=admin,dc=nodomain -W -f country_fr.ldif
Run Code Online (Sandbox Code Playgroud)
但 OpenLDAP 拒绝该命令:
adding new entry "c=fr"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
Run Code Online (Sandbox Code Playgroud)
任何提示?
我对 openldap 很陌生,但非常精通 linux/unix 环境。我正在尝试使用此处的指南设置我的第一个测试 openldap 环境。我还阅读了这里的大部分管理指南,我不得不承认,其中有很多内容值得学习。
因此,按照 ubuntu 基本设置指南,我创建了一个如下所示的 ldif 文件:
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
dn: cn=engineers,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: engineers
gidNumber: 5000
dn: uid=john,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
Run Code Online (Sandbox Code Playgroud)
每当我尝试使用以下方法添加它时:
$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
adding …Run Code Online (Sandbox Code Playgroud) 所以,我遇到了一个相当奇怪的问题。我有一个服务器,当我尝试通过 SSH 连接时,如果我在第一次尝试时输入正确的密码,它会立即关闭连接。但是,如果我在第一次尝试时故意输入错误的密码,然后在第二次或第三次提示时输入正确的密码,它会成功登录我的计算机。同样,当我尝试使用公钥身份验证时,我会立即关闭连接。但是,如果我为密钥文件输入了错误的密码,然后在恢复为密码身份验证后又输入了另一个错误的密码,只要我在第二次或第三次提示时提供正确的密码,我就可以成功登录。
该机器运行 Red Hat Enterprise Linux Server 6.2 版(圣地亚哥),并使用 LDAP 和 PAM 进行身份验证。关于从哪里开始调试这个的任何想法?让我知道我需要提供哪些配置文件,我会很乐意这样做。
这是一些调试信息。以下代码块按顺序表示这 3 种情况:1) 首次尝试时更正私钥密码,2) 跳过私钥,首次尝试时更正常规密码,3) 跳过私钥,故意输入错误密码,然后进入好的...这是唯一让我真正连接的场景。
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to [removed for privacy].
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/trevor/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/trevor/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: …Run Code Online (Sandbox Code Playgroud) # LDAPTLS_CACERTDIR=/etc/ssl/certs/ ldapwhoami -x -ZZ -H ldaps://ldap.domain.tld
ldap_start_tls: Can't contact LDAP server (-1)
additional info: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user.
# openssl s_client -connect ldap.domain.tld:636 -CApath /etc/ssl/certs
<... successful tls negotiation stuff ...>
Compression: 1 (zlib compression)
Start Time: 1349994779
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
Run Code Online (Sandbox Code Playgroud)
openssl似乎认为证书没问题,但是openldap的库(pam_ldap表现出类似的行为,这就是我陷入困境的方式)不同意。
我究竟做错了什么?
我正在运行使用 SSL 服务进行通信的 OpenLDAP 2.4 服务器。它适用于查找。
我正在尝试添加镜像模式复制。
所以这是我正在执行的命令:
ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif
Run Code Online (Sandbox Code Playgroud)
这是我的 server_id.ldif:
dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2
Run Code Online (Sandbox Code Playgroud)
这是我在 slapd.d 文本文件树中的 cn\=config.ldif:
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z
Run Code Online (Sandbox Code Playgroud)
但不幸的是我得到了这个:
Enter LDAP Password:
modifying entry "cn=config"
ldap_modify: Insufficient access …Run Code Online (Sandbox Code Playgroud) 我的 Centos 6 服务器上的 openldap 日志文件中没有任何信息。这就是我配置它的方式。SELinux 目前被禁用。
首先创建一个文件夹,我想在其中存储日志文件。
mkdir /var/log/slapd
chmod 755 /var/log/slapd/
chown ldap:ldap /var/log/slapd/
Run Code Online (Sandbox Code Playgroud)
然后进行了配置。
ldapsearch -D "cn=admin,cn=config" -w secret -b cn=config cn=config
dn: cn=config
changetype:modify
replace: olcLogFile
olcLogFile: /var/log/slapd/slapd.log
-
replace: olcLogLevel
olcLogLevel: conns filter config acl stats shell
EOF
Run Code Online (Sandbox Code Playgroud)
为了安全起见,我重新启动了服务
service openldap restart
Run Code Online (Sandbox Code Playgroud)
它确实创建了文件,但不向文件中写入任何内容。当然,我对 LDAP 服务器进行了一些搜索和更新,因此它可以获取连接和要记录的内容。
$ ls -alh
total 12K
drwxr-xr-x. 2 ldap ldap 4.0K Oct 25 14:27 .
drwxr-xr-x. 6 root root 4.0K Oct 25 14:10 ..
-rw-r--r--. 1 ldap ldap 0 Oct 25 …Run Code Online (Sandbox Code Playgroud) 我查看了较新 OpenLDAP 版本的安装和配置说明,并决定为我的小用户群设置太多工作。基本上,我只使用 LDAP 来同步少数机器上的用户帐户(好吧,这并不真正需要目录服务器)并让这些用户访问一些基于 Web 的工具,避免需要在多个机器上创建用户帐户地方。
你能推荐一个在 *nix 系统上使用的小型、简单的 LDAP 服务器吗?
我唯一的要求是能够通过 LDAP 提供 PosixAccount 和 Group 对象。