我目前正在致力于使用 OpenLDAP 为 Red Hat Linux 设置集中式身份验证。
目标 - 为 Red Hat Linux 服务器设置集中式 OpenLDAP 身份验证,客户端可以通过 ssh 连接,并从一台服务器进行用户管理。
请注意我不是在寻找 rpm 或 yum 安装,没有 cn=config。我想使用 slapd.conf 和 ldap.conf 进行配置
tar -xvf db-4.7.25.NC.tar.gz
ls -ltr
cp patch.4.7.25.1 patch.4.7.25.2 patch.4.7.25.3 patch.4.7.25.4 db-4.7.25.NC
cd db-4.7.25.NC
patch -p0 patch.4.7.25.1
patch -p0 < patch.4.7.25.1
patch -p0 < patch.4.7.25.2
patch -p0 < patch.4.7.25.3
patch -p0 < patch.4.7.25.4
cd build_unix/
./dist/configure
make
make install
export CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include"
export LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib"
export LD_LIBRARY_PATH=/opt/db-4.7.25.NC/build_unix/.libs
vi /etc/profile
source /etc/profile
cd /opt/
tar -xvzf openldap-2.4.23.tgz
openldap-2.4.23
./configure --with-tls --enable-accesslog --enable-auditlog --enable-dyngroup --enable-dynlist --enable-ppolicy --enable-bdb --enable-syslog --with-cyrus-sasl --with-threads --enable-crypt=yes --enable-ldap=yes --enable-proxycache=yes
make depend
make
make test
make install
vi /usr/local/etc/openldap/slapd.conf
slappasswd
my slapd.conf ---------------
database bdb
suffix "dc=exa,dc=com"
rootdn "cn=Manager,dc=exa,dc=com"
rootpw {SSHA}PxEhMMYJvFRqT3L4fYYCmevrt22zYeDS
directory /usr/local/var/openldap-data
======================================================
root objects for the LDAP database
cat exa.ldif
dn: dc=exa,dc=sea
dc: exa
description: Root LDAP entry for exa.sea
objectClass: dcObject
objectClass: organizationalUnit
dn: ou=People,dc=exa,dc=com
ou: People
description: All people in organisation
objectClass: organizationalUnit
我已成功添加条目并可搜索数据库,但当我尝试更改密码时,出现错误消息(结果:没有这样的对象(32))
**cn: uid=naveen,ou=People,dc=exa,dc=com
uid: naveen
cn: naveen
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$SBo8cFfd$Nqc9yqobHxwiom/0BLPnf.
shadowLastChange: 12502
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/naveen**
===============================================
[root@localhost bob]# ldappasswd -vx -D "cn=Manager,dc=exa,dc=com" -W -
S "uid=naveen,ou=People,dc=exa,dc=com"
New password:
Re-enter new password:
ldap_initialize( <DEFAULT> )
Enter LDAP Password:
Result: No such object (32)
有人可以建议我一种使用 slapd.conf 和客户端配置对 Red Hat Linux 进行 OpenLDAP 身份验证的更好方法吗?
客户端配置 -
authconfig-tui
ldap.conf slapd.conf
=======================================================================================
我解决了 ldappasswd 问题。
[root@localhost opt]# ldappasswd -vx -D "cn=Manager,dc=exa,dc=com" -W -S "cn=John Smith,ou=People,dc=exa,dc=com"
New password:
Re-enter new password: ldap_initialize( )
Enter LDAP Password:
Result: Success (0)
[root@localhost opt]#
请告知我使用 OpenLDAP 验证客户端的更好方法,谢谢。
提前感谢 Naveen
答案1
你的问题提得很糟糕,Naveen。你似乎知道自己想做什么,但还没有真正考虑过(或研究过)如何实现它。
设置基于 LDAP 的身份验证的总体概要如下:
- 确定目录结构
您需要弄清楚您的 LDAP 目录是什么样子的。
像 AD 部署一样思考(尽管说这些话让我很痛苦)。 - 安装 LDAP 服务器
您应该使用 Yum/Apt/任何操作系统标准方式来安装此部分内容。
除非迫不得已,否则没有必要自己从源代码构建它。 - 添加 RFC 2307 架构以及您需要的任何其他内容
RFC 2307 是最低要求。如果您使用 sudo,您可能还想添加 sudo 架构;如果您使用 SSH,您可能还想添加 OpenSSH LDAP 公钥架构。 - 配置您的操作系统
如果您打算使用 OpenSSH-LPK(LDAP 公钥)补丁,请启用它。
安装 pam_ldap/nss_ldap(或 pam_ldapd)并将 LDAP 添加到您的nsswitch.conf
文件中。 - 填充您的 LDAP 目录
添加几个用户和组。 - 测试和利润。
如果你在 Google 上搜索,会发现很多教程可以帮到你。
还有RedHat 的一些话关于这个主题,尽管我不能保证它们的准确性,因为我的环境中没有运行 RedHat。
答案2
您应该在客户端上进行配置pam
,nss-pam-ldapd
以允许 LDAP 目录服务器用作用户、主机、组和其他的名称服务信息的主要来源。
现在一切都取决于你拥有哪个客户,Fedora 系统和RHEL这 ”部署指南“是一个很好的资源。
无论如何,您可以使用system-config-authentication
或来配置它们authconfig
authconfig-tui
。
此命令可用于根据我的 openLdap 目录配置我的 fedora 19 机器:
authconfig --updateall --passalgo=md5 --enableldap --enableldapauth --ldapserver=myserver.mydomain --ldapbasedn=dc=mycompany --enableldaptls --enableldapstarttls --ldaploadcacert=http://myserver.mydomain/server.pem
对于其他发行版,您必须进行一些谷歌搜索。