LDAP 安装

[TOC]

LDAP 安装

1. LDAP 安装前环境检查

# 检查系统版本
[root@SJ-20-207-81 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# 检查内核版本
[root@SJ-20-207-81 ~]# uname -r
3.10.0-957.21.3.el7.x86_64
# 检查系统是32还是64位
[root@SJ-20-207-81 ~]# uname -m
x86_64
# 查看是否开启了SELinux
[root@SJ-20-207-81 ~]# getenforce
Disabled
# 如果开启了SELinux,则要关闭
# 临时修改命令
[root@SJ-20-207-81 ~]# setenforce 0
# 永久修改,修改 /etc/selinux/config ,并设置 SELINUX=disabled,并重启系统
vim /etc/selinux/config
SELINUX=disabled

2. LDAP 安装命令

# 建议使用 yum 安装
# 这个可能不行也要安装,安装了反而有问题 ?
yum install db4 db4-utils db4-devel cyrus-sasl* krb5-server-ldap -y
# 注意版本,我这里是 2.4.44
yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -y

2. LDAP 检查安装

# 检查是否安装成功
[root@SJ-20-207-80 ~]# rpm -qa | grep ldap
openldap-clients-2.4.44-23.el7_9.x86_64
openldap-2.4.44-23.el7_9.x86_64
openldap-servers-2.4.44-23.el7_9.x86_64
# LDAP 安装目录
[root@SJ-20-207-81 ~]# ll /etc/openldap/
total 20
drwxr-xr-x 2 root root 4096 Jun 19 14:44 certs
-rw-r--r-- 1 root root  121 Apr 28 21:32 check_password.conf
-rw-r--r-- 1 root root  363 Apr 28 21:32 ldap.conf
drwxr-xr-x 2 root root 4096 Jun 19 14:44 schema
drwxr-x--- 3 ldap ldap 4096 Jun 19 14:44 slapd.d
# LDAP 安装版本
[root@SJ-20-207-81 ~]# slapd -V
@(#) $OpenLDAP: slapd 2.4.44 (Apr 28 2021 13:32:00) $
    mockbuild@x86-02.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd

3. LDAP 配置

# 配置数据库
[root@SJ-20-207-81 ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@SJ-20-207-81 ~]# chown ldap:ldap -R /var/lib/ldap
[root@SJ-20-207-81 ~]# chmod 700 -R /var/lib/ldap
# 先备份配置文件
[root@SJ-20-207-81 ~]# cp -r /etc/openldap/slapd.d /etc/openldap/slapd.d.bak
[root@SJ-20-207-81 ~]#
# 给配置目录设置权限
chown -R ldap:ldap /etc/openldap/slapd.d 
chmod -R 700 /etc/openldap/slapd.d
# LDAP的配置文件主要就如下几个,我们只修改  olcDatabase={1}monitor.ldif  和 olcDatabase={2}hdb.ldif 就行
[root@SJ-20-207-81 ~]# ll /etc/openldap/slapd.d/cn\=config
total 24
drwx------ 2 ldap ldap 4096 Jun 19 14:44 cn=schema
-rwx------ 1 ldap ldap  378 Jun 19 14:44 cn=schema.ldif
-rwx------ 1 ldap ldap  513 Jun 19 14:44 olcDatabase={0}config.ldif
-rwx------ 1 ldap ldap  443 Jun 19 14:44 olcDatabase={-1}frontend.ldif
-rwx------ 1 ldap ldap  562 Jun 19 14:44 olcDatabase={1}monitor.ldif
-rwx------ 1 ldap ldap  609 Jun 19 14:44 olcDatabase={2}hdb.ldif
# 使用  slappasswd 对密码加密
[root@SJ-20-207-81 ~]# slappasswd
New password:
Re-enter new password:
{SSHA}nRWQ0qp0dndYIEYGerqeaA+cADS7PZkj
# PS 相同的密码多次加密得到的结果不一致
# 修改 hdb.ldif ,有的人可能是 bdb.ldif ,这取决于版本及数据库
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
# 修改如下两个属性
olcSuffix: dc=cdh,dc=com # 域
olcRootDN: cn=admin,dc=cdh,dc=com # 管理员账号
# 添加一个密码 这个密码就是上一步生成的密码
olcRootPW: {SSHA}nRWQ0qp0dndYIEYGerqeaA+cADS7PZkj # 管理员密码
# 修改 monitor.ldif
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
# 修改这条记录的  dn.base="cn=Manager,dc=my-domain,dc=com",改成自己的管理员账号
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth" read by dn.base="cn=Manager,dc=my-domain,dc=com" read by * none
# 修改之后的记录,注意 第一行前面不能有空格,第二行有且仅有一个空格
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth" read by dn.base="cn=admin,dc=cdh,dc=com" read by * none
# 验证配置文件
[root@SJ-20-207-81 ~]# slaptest -u
60cd99ea ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
60cd99ea ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded

4. LDAP 启动

# 启动 LDAP
[root@SJ-20-207-81 ~]# service slapd start
Redirecting to /bin/systemctl start slapd.service
# 查看启动状态
[root@SJ-20-207-81 ~]# service slapd status
Redirecting to /bin/systemctl status slapd.service
● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-06-19 15:22:19 CST; 8s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
  Process: 26607 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=0/SUCCESS)
  Process: 26578 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
 Main PID: 26609 (slapd)
   CGroup: /system.slice/slapd.service
           └─26609 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

Jun 19 15:22:19 SJ-20-207-81 runuser[26602]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
Jun 19 15:22:19 SJ-20-207-81 runuser[26602]: pam_unix(runuser:session): session closed for user ldap
Jun 19 15:22:19 SJ-20-207-81 runuser[26604]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
Jun 19 15:22:19 SJ-20-207-81 runuser[26604]: pam_unix(runuser:session): session closed for user ldap
Jun 19 15:22:19 SJ-20-207-81 slapd[26607]: @(#) $OpenLDAP: slapd 2.4.44 (Apr 28 2021 13:32:00) $
                                                   mockbuild@x86-02.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
Jun 19 15:22:19 SJ-20-207-81 slapd[26607]: ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
Jun 19 15:22:19 SJ-20-207-81 slapd[26607]: ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
Jun 19 15:22:19 SJ-20-207-81 slapd[26609]: hdb_db_open: database "dc=cdh,dc=com": unclean shutdown detected; attempting recovery.
Jun 19 15:22:19 SJ-20-207-81 slapd[26609]: slapd starting
Jun 19 15:22:19 SJ-20-207-81 systemd[1]: Started OpenLDAP Server Daemon.
# 测试 ldap 服务
# 使用 ldapsearch 命令 搜索 cdh.com 下的 objectClass
[root@SJ-20-207-81 ~]# ldapsearch -x -H "ldap:///" -b 'dc=cdh,dc=com' '(objectClass=*)'
# extended LDIF
#
# LDAPv3
# base <dc=databurning,dc=com> with scope subtree
# filter: (objectClass=*)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

5. LDAP 启动错误处理

# 错误日志
Aug 30 10:05:39 master slapd[49700]: config error processing cn={1}core,cn=schema,cn=config: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"
# 解决方法:
rm -f  /etc/openldap/slapd.d/cn=config/cn=schema/cn={1}core.ldif
# 错误日志
Aug 31 22:40:17 master slapd[48126]: sql_select option missing
Aug 31 22:40:17 master slapd[48126]: auxpropfunc error no mechanism available
# 解决方法:
rpm -e cyrus-sasl-sql
# 错误日志
Aug 31 22:38:52 master slapd[47714]: auxpropfunc error invalid parameter supplied
Aug 31 22:38:52 master slapd[47714]: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: ldapdb
Aug 31 22:38:52 master slapd[47714]: ldapdb_canonuser_plug_init() failed in sasl_canonuser_add_plugin(): inval...pplied
Aug 31 22:38:52 master slapd[47714]: _sasl_plugin_load failed on sasl_canonuser_init for plugin: ldapdb
# 解决方法:
rpm -e cyrus-sasl-ldap
# 错误日志
59a820cb daemon: bind(7) failed errno=98 (Address already in use)
# 解决方法:这是端口被占用了,可能是之前启动过,异常了,但端口没有释放,找到后kill就行
netstat -anp | grep :389
kill -9 xxx

5. 导入linux系统用户

migrationtools 可以从 /etc/passwd, /etc/shadow, /etc/groups 中生成 ldif ,并更新 ldap 数据库

# 安装 migrationtools
yum install migrationtools -y
# 检查是否安装成功
[root@SJ-20-207-81 ~]# rpm -qa | grep migrationtools
migrationtools-47-15.el7.noarch
# 修改配置
vim /usr/share/migrationtools/migrate_common.ph
# 修改如下三个属性
$DEFAULT_MAIL_DOMAIN = "cdh.com";
$DEFAULT_BASE = "dc=cdh,dc=com";
$EXTENDED_SCHEMA = 1;
# 导出 linux系统的所有账号密码等
/usr/share/migrationtools/migrate_base.pl > ~/base.ldif
# 更新账号信息至 LDAP
ldapadd -H ldapi:/// -x -D "cn=admin,dc=cdh,dc=com" -w hello -f ~/base.ldif

6. 安装 phpldapadmin

# 安装命令
[root@SJ-20-207-80 ~]# yum install -y phpldapadmin
# 检查是否安装成功
[root@SJ-20-207-80 ~]# rpm -qa | grep  phpldapadmin
phpldapadmin-1.2.5-1.el7.noarch
# 修改配置
vim /etc/httpd/conf.d/phpldapadmin.conf

vim /etc/phpldapadmin/config.php

7. 参考资料

https://www.cnblogs.com/daemonyue/p/13038028.html
https://www.cnblogs.com/daemonyue/p/13038028.html
https://blog.csdn.net/u011196623/article/details/82502570
https://blog.csdn.net/tototuzuoquan/article/details/106055265
https://blog.csdn.net/xiaoyutongxue6/article/details/80865167
https://www.ibm.com/support/pages/setting-openldap-server-slapd-and-system-security-services-daemon-client-sssd-scratch-centos-66
http://blog.chinaunix.net/uid-9671415-id-1998712.html
https://www.openldap.org/project/
https://zhuanlan.zhihu.com/p/108103325
https://www.cnblogs.com/daemonyue/p/13038028.html
https://www.huaweicloud.com/articles/41c5cb3eee19f6e989d7a70e871b5b3c.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容