博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LDAP安装步骤
阅读量:7144 次
发布时间:2019-06-29

本文共 4603 字,大约阅读时间需要 15 分钟。

大数据平台,LDAP和kerberos的统一账户管理和认证是必不可少的。通过Openldap来搭建LDAP服务器。

1. 安装openldap软件包

1
yum install openldap openldap-* -y

2. 初始化配置文件,不要手动去创建slapd.conf,可能会由于格式问题导致问题

1
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

3. 初始化数据库配置文件

1
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

4. 修改权限

1
2
chown -R ldap.ldap /etc/openldap 
chown -R ldap.ldap /var/lib/ldap

5. slapd.conf配置文件如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# egrep -v 
"#|^$" 
/etc/openldap/slapd.conf
include         /etc/openldap/
schema
/corba.
schema
include         /etc/openldap/
schema
/core.
schema
include         /etc/openldap/
schema
/cosine.
schema
include         /etc/openldap/
schema
/duaconf.
schema
include         /etc/openldap/
schema
/dyngroup.
schema
include         /etc/openldap/
schema
/inetorgperson.
schema
include         /etc/openldap/
schema
/java.
schema
include         /etc/openldap/
schema
/misc.
schema
include         /etc/openldap/
schema
/nis.
schema
include         /etc/openldap/
schema
/openldap.
schema
include         /etc/openldap/
schema
/ppolicy.
schema
include         /etc/openldap/
schema
/collective.
schema
include         /etc/openldap/
schema
/kerberos.
schema   
<<<<<<<由于后面需要配合kerberos认证,这里增加kerberos.
schema
,参考第6步骤
allow bind_v2
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
loglevel        4095
TLSCACertificatePath /etc/openldap/certs
TLSCertificateFile 
"\"OpenLDAP Server\""
TLSCertificateKeyFile /etc/openldap/certs/
password
access 
to 
*
    
by 
self write
    
by 
users 
read
    
by 
anonymous 
read
database 
config
access 
to 
*
        
by 
dn.exact=
"gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" 
manage
        
by 
* none
database 
monitor
access 
to 
*
        
by 
dn.exact=
"gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" 
read
        
by 
dn.exact=
"cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" 
read
        
by 
* none
database        
bdb
suffix          
"dc=testserver,dc=com"
checkpoint      
1024 15
cachesize       10000
rootdn          
"cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com"
rootpw          {SSHA}LPbWMTEOprpTvqjmxy/mTW+i0IPrugJc    <<<<<<<<<<<<<<<参考第7步骤,生成加密密码
directory       /var/lib/ldap
index 
objectClass                       eq,pres 
index 
ou,cn,mail,surname,givenname      eq,pres,sub 
index 
uidNumber,gidNumber,loginShell    eq,pres 
index 
uid,memberUid                     eq,pres,sub 
index 
nisMapName,nisMapEntry            eq,pres,sub

6. 安装kerberos软件

1
yum install krb5* -y

查找kerberos.schema文件,并拷贝到/etc/openldap/schema/kerberos.schema

1
2
3
# cd /usr/share/doc/krb5-server-ldap-1.10.3/
# ls
60kerberos.ldif  kerberos.ldif  kerberos.
schema

7. 生成LDAP的root管理密码

1
2
slappasswd -s 123456
{SSHA}L4uH7lVxwdS0/L/vspdseXORcneIWfeb

8. 检查配置文件是否有格式错误

1
2
# slaptest -f /etc/openldap/slapd.conf
config file testing succeeded

9. 准备生成LDAP数据库结构

先删除slapd.d的原有结构

1
rm -rf /etc/openldap/slapd.d/*

生成新的数据结构

1
slaptest -f /etc/openldap/slapd.conf -F/etc/openldap/slapd.d

修改权限,这个很重要,不然后面会报错

1
chown -R ldap:ldap /etc/openldap/slapd.d

每次修改都需要重启ldap

1
service slapd restart

10. 测试LDAP的连接,这里足足让我纠结两周,无数次的安装,有的时候可以正常登陆,有的时候会报错,明确说认证错误(密码错误)。这个一直让我以为是密码部分的格式设置有问题。各种尝试都无法正常解决掉。最后突然发现,是rootdn的问题,而不是rootpw的问题。

1
2
3
# ldapsearch -x -D 
"cn=admin,dc=testserver,dc=com" 
-h 10.24.103.17 -W -b 
'ou=People,dc=testserver,dc=com'
Enter LDAP 
Password
ldap_bind: Invalid credentials (49)

就是说,下面的命令中,要完整的复制sldap.conf中的“rootdn "cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com"”条目信息,不能多,不能少

这样才能正常查询结果

1
ldapsearch -x -D 
"cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" 
-h 10.24.103.17 -W

11. LDAP创建成功之后,需要创建数据。由于我是迁移数据过来,只是将生产的ldap数据导出导入。

ldap数据备份的方式有两种:一种是通过ldapsearch ,一种是通过slapcat命令。很多人都是建议通过slapcat来完成,但是我测试一下,没有成功,就先使用ldapsearch导出,ldapadd导入的

1
2
/usr/sbin/slapcat > /tmp/liang/ldapdbak.ldif
/usr/sbin/slapadd -l  /tmp/liang/ldapdbak.ldif

12. 导入数据命令

1
ldapadd -x -D 
"cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" 
-h 10.24.103.17 -W -f ldapexport.ldif

13. 查询数据,确认已经导入成功即可

1
ldapsearch -LLL -x -D 
"cn=admin,ou=ldap,ou=admin,dc=testserver,dc=com" 
-W -b 
"dc=testserver,dc=com" 
'(uid=*)'

15. 在客户端安装ldap软件,我比较偷懒,全都安装了,实际只安装openldap-clients就可以了

1
yum install openldap openldap-* -y

16. 设置LDAP客户端,客户端设置有几种方式

---1. 通过图形化命令完成LDAP client设置

1
LANG=C authconfig-tui

---2. 通过authconfig命令,配置客户端。由于是大数据平台运维,所以我是通过命令行实现的,这样比较方便批量处理。

1
2
3
4
5
6
7
8
9
authconfig 
--enablemkhomedir \
--disableldaptls \
--enablemd5 \
--enableldap \
--enableldapauth \
--ldapserver=ldap://10.24.103.17 \
--ldapbasedn="dc=testserver,dc=com" \
--enableshadow \
--update

17. 然后在client上,root用户su - username,可以发现,已经配置成功了。

看了很多人的blog,很简单的步骤,“yum安装-->sldap.conf的配置-->启动-->OK”,但是对于我来说,研究了2周多啊(工作空闲时间),真心很崩溃。即使一个小问题,自己也无法自行发现(理解问题)。所以,很多事情看似很简单,甚至于不屑于。做做试试,才能深深体会,理想和现实的差距

本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/1983921,如需转载请自行联系原作者
你可能感兴趣的文章
此实现不是Windows平台FIPS验证的加密算法的一部分
查看>>
Codeforces Round #306 (Div. 2) 550A Two Substrings
查看>>
UDP_TCP示意图
查看>>
解决Could not load file or assembly CefSharp.Core.dll的问题
查看>>
mvc jquery 修改 viewbag
查看>>
容器的使用(四)
查看>>
[Js]碰撞运动
查看>>
5分钟学会红黑树的删除(Deletion on red black tree)
查看>>
一个简单的基于用户的推荐系统+缓存机制
查看>>
(一)欧拉积分
查看>>
HDU-1300(基础方程DP-遍历之前所有状态)
查看>>
自动化测试框架搭建3-TestNG
查看>>
CSS中需要熟练记住的选择器
查看>>
Web Worker
查看>>
[洛谷P2839][国家集训队]middle
查看>>
《求一个数组的连续的最大子数组之和》
查看>>
设置行间距,自适应文字大小
查看>>
资金流学习-广州发展
查看>>
python基础3(元祖、字典、深浅copy、集合、文件处理)
查看>>
正确编写Designated Initializer的几个原则
查看>>