中间件技术
LDAP配置与安装
Docker部署Openldap和phpLDAPadmin
ES LDAP 集成
ElasticSearch结合LDAP实现权限、用户管控
LDAP简介
本文档使用 MrDoc 发布
-
+
首页
LDAP配置与安装
## LDAP配置与安装 [news](http://wed.xjx100.cn/news.html)/2023/9/12 8:49:38 ### LDAP配置与安装 - 一、安装LDAP - - 1、安装OpenLDAP及相关依赖包 - 2、查看OpenLDAP版本 - 3、配置OpenLDAP数据库 - 4、设置OpenLDAP的管理员密码 - 5、修改配置文件 - - 5.1. 修改{2}hdb.ldif文件 - 5.2. 修改{1}monitor.ldif文件 - 5.3. 修改{-1}frontend.ldif文件 - 6、验证LDAP的基本配置 - 7、修改LDAP文件权限、端口(不强求) - 8、启动OpenLDAP服务 - 9、导入基本Schema - 10、修改migrate\_common.ph文件 - 11、配置LDAP基础数据库 - 12、导入基础数据库 - 13、添加用户及用户组 - 14、查询LDAP的相关信息 - 15、开启OpenLDAP日志访问功能 - 二、安装PHPldapAdmin管理软件 - - 1、安装 - 2、修改配置文件 - 3、启动httpd - 三、使用LdapAdmin - 四、数据迁移 - - 1、获取数据到指定文件 - 2、查看数据是否备份成功 - 3、插入数据 - 五、卸载LDAP - 参考 # 一、安装LDAP ## 1、安装OpenLDAP及相关依赖包 ``` [root@nano ~]# yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools ``` ## 2、查看OpenLDAP版本 ``` [root@nano ~]# slapd -VV ``` ## 3、配置OpenLDAP数据库 ``` # OpenLDAP默认使用的数据库是BerkeleyDB,/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径: [root@localhost cn=config]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG ``` ## 4、设置OpenLDAP的管理员密码 > (格式——slappasswd -s \[password\]) ``` [root@nano ~]# slappasswd -s huawei {SSHA}TlGs09uMOeFa5UJNhy1LB6cGW9i8N+tt # 记住该密码,下面配置要用 ``` ## 5、修改配置文件 定位到/etc/openldap/slapd.d/cn=config中,修改相关配置文件{1}monitor.ldif、{2}hdb.ldif、{-1}frontend.ldif: ``` [root@nano ~]# cd /etc/openldap/slapd.d/cn\=config [root@nano cn=config]# ll > 总用量 24 drwxr-x---. 2 ldap 4096 3月 2 10:14 cn=schema > -rw-------. 1 ldap 378 3月 2 10:14 cn=schema.ldif > -rw-------. 1 ldap 513 3月 2 10:14 olcDatabase={0}config.ldif > -rw-------. 1 ldap ldap 443 3月 2 10:14 olcDatabase={-1}frontend.ldif > -rw-------. 1 ldap ldap 562 3月 2 10:14 olcDatabase={1}monitor.ldif > -rw-------. 1 ldap ldap 609 3月 2 10:14 olcDatabase={2}hdb.ldif ``` ### 5.1. 修改{2}hdb.ldif文件 ``` [root@nano cn=config]# vim olcDatabase\=\{2\}hdb.ldif ```  > - 修改域信息: olcSuffix: dc=ss,dc=com olcRootDN: cn=admin,dc=ss,dc=com > - 定位到最后添加一行密码: olcRootPW: {SSHA}dXgO/Ipy5SQiKFZ0u7m79Xo7uzKIr038 > - 注意:其中cn=admin中的admin表示OpenLDAP管理员的用户名,dc为ldap的服务器域名(dc=ss是自行创建的服务器域名),olcRootPW表示OpenLDAP管理员的密码 ### 5.2. 修改{1}monitor.ldif文件 ``` [root@nano cn=config]# vim olcDatabase\=\{1\}monitor.ldif ```  ### 5.3. 修改{-1}frontend.ldif文件 ``` [root@localhost cn=config]# vim olcDatabase\=\{-1\}frontend.ldif # 权限设置,指定用户密码只能由本人和管理员能更改。添加如下两行代码:olcAccess: {0}to attrs=userPassword by self write by anonymous auth by users noneolcAccess: {1}to * by * read ``` ## 6、验证LDAP的基本配置 ``` # 若出现succeeded就表示成功了 [root@nano cn=config]# slaptest -u ``` ## 7、修改LDAP文件权限、端口(不强求) ``` [root@localhost cn=config]# chown -R ldap:ldap /var/lib/ldap/ [root@localhost cn=config]# chown -R ldap:ldap /etc/openldap/# OpenLDAP默认监听的端口是389,我们可在/etc/sysconfig/slapd文件中修改其监听端口,如下修改为4567端口 [root@localhost cn=config]# vim /etc/sysconfig/slapd SLAPD_URLS= "ldapi://0.0.0.0:4567/ldap://0.0.0.0:4567/" ``` ## 8、启动OpenLDAP服务 ``` [root@localhost cn=config]# systemctl enable --now slapd # 设置slapd服务开机自启,并启动# 验证端口状态 # 前提是要安装net-tools才能使用netstat命令 [root@localhost cn=config]# netstat -antup | grep 389 ```  ## 9、导入基本Schema 导入基本Schema,使用如下命令: ``` [root@nano cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif [root@nano cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif [root@nano cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif ``` ## 10、修改migrate\_common.ph文件 ``` # migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件,如下: [root@localhost cn=config]# vim /usr/share/migrationtools/migrate_common.ph +71 ```  ## 11、配置LDAP基础数据库 ``` # 配置如下信息(修改对应的dc数据值): [root@localhost ~]# mkdir /root/openldap [root@localhost ~]# vim openldap/base.ldif #管理员信息 dn: dc=ss,dc=com o: ss com dc: ss objectClass: top objectClass: dcObject objectclass: organizationdn: cn=admin,dc=ss,dc=com cn: admin objectClass: organizationalRole description: Directory Manager#基本分组 dn: ou=People,dc=ss,dc=com ou: People objectClass: top objectClass: organizationalUnitdn: ou=Group,dc=ss,dc=com ou: Group objectClass: top objectClass: organizationalUnit ``` ## 12、导入基础数据库 ``` # -x 进行简单认证、-D 用来绑定服务器的DN、-w 绑定管理员的密码(最开始设置的) [root@localhost ~]# ldapadd -x -D 'cn=admin,dc=ss,dc=com' -w '123456' -f /root/openldap/base.ldif ``` ## 13、添加用户及用户组 默认情况下OpenLDAP是没有普通用户的,只有一个管理员用户(最开始配置的) ``` [root@localhost ~]# groupadd ldapgroup1 [root@localhost ~]# groupadd ldapgroup2 [root@localhost ~]# useradd -g ldapgroup1 ldapuser1 [root@localhost ~]# useradd -g ldapgroup2 ldapuser2 [root@localhost ~]# echo '123456' | passwd --stdin ldapuser1 [root@localhost ~]# echo '123456' | passwd --stdin ldapuser2# 提取刚添加的用户和用户组相关信息 [root@localhost ~]# grep ":10[0-9][0-9]" /etc/passwd > /root/openldap/users [root@localhost ~]# grep ":10[0-9][0-9]" /etc/group > /root/openldap/groups [root@localhost ~]# cat openldap/users [root@localhost ~]# cat openldap/groups# 使用migrate_passwd.pl文件生成要添加用户和用户组的ldif [root@localhost ~]# /usr/share/migrationtools/migrate_group.pl /root/openldap/groups > /root/openldap/groups.ldif [root@localhost ~]# /usr/share/migrationtools/migrate_passwd.pl /root/openldap/users > /root/openldap/users.ldif# 导入用户及用户组到Ldap数据库 [root@localhost ~]# ldapadd -x -w '123456' -D 'cn=admin,dc=ss,dc=com' -f /root/openldap/groups.ldif [root@localhost ~]# ldapadd -x -w '123456' -D 'cn=admin,dc=ss,dc=com' -f /root/openldap/users.ldif ``` 把LDAP用户加入到用户组 ``` # 尽管我们已经把用户和用户组信息,导入到OpenLDAP数据库中了。但实际上目前OpenLDAP用户和用户组之间是没有任何关联的 # 如果我们要把OpenLDAP数据库中的用户和用户组关联起来的话,我们还需要做另外单独的配置 [root@localhost ~]# cat > /root/openldap/add_user_to_groups.ldif << "EOF" dn: cn=ldapgroup1,ou=Group,dc=ss,dc=com changetype: modify add: memberuid memberuid: ldapuser1dn: cn=ldapgroup2,ou=Group,dc=ss,dc=com changetype: modify add: memberuid memberuid: ldapuser2 EOF [root@localhost ~]# ldapadd -x -w '123456' -D 'cn=admin,dc=ss,dc=com' -f /root/openldap/add_user_to_groups.ldif ``` ## 14、查询LDAP的相关信息 1》 查询LDAP全部信息 ``` [root@localhost ~]# ldapsearch -x -b 'dc=ss,dc=com' -H ldap://127.0.0.1 ``` 2》 查询添加的LDAP用户组信息 ``` [root@localhost ~]# ldapsearch -LLL -x -D 'cn=admin,dc=ss,dc=com' -w '123456' -b 'dc=ss,dc=com' 'cn=ldapgroup1' ``` 3》 查询添加的LDAP用户信息 ``` [root@localhost ~]# ldapsearch -LLL -x -D 'cn=admin,dc=ss,dc=com' -w '123456' -b 'dc=ss,dc=com' 'uid=ldapuser1' ``` ## 15、开启OpenLDAP日志访问功能 默认情况下OpenLDAP是没有启用日志记录功能的,但是在实际使用过程中,我们为了定位问题需要使用到OpenLDAP日志 ``` # 新建日志配置ldif文件,如下: [root@localhost ~]# cat > /root/openldap/loglevel.ldif << EOF dn: cn=config changetype: modify replace: olcLogLevel olcLogLevel: stats EOF [root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/openldap/loglevel.ldif# 修改rsyslog配置文件,并重启rsyslog服务,如下: [root@localhost ~]# cat >> /etc/rsyslog.conf << EOF local4.* /var/log/slapd.log EOF# 重启服务 [root@localhost ~]# systemctl restart rsyslog [root@localhost ~]# systemctl restart slapd# 使用ldapuser1认证下 [root@localhost ~]# ldapwhoami -x -D uid=ldapuser1,ou=People,dc=ss,dc=com -w 123456 ``` 查看OpenLDAP日志,如下: ``` [root@localhost ~]# tail /var/log/slapd.log ``` 到此,LDAP已配置完成。 --- # 二、安装PHPldapAdmin管理软件 ## 1、安装 先安装Apache和PHP: ``` [root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml ``` 再安装phpldapadmin: ``` [root@localhost ~]# yum -y install epel-release [root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin ``` ## 2、修改配置文件 》修改config.php文件: ``` [root@nano cn=config]# vim /etc/phpldapadmin/config.php +397 ``` ``` > // 397行取消注释,398行添加注释 > $servers->setValue('login','attr','dn'); > // $servers->setValue('login','attr','uid'); ``` 》修改phpldapadmin.conf文件: ``` [root@nano cn=config]# vim /etc/httpd/conf.d/phpldapadmin.conf +11 ``` ``` > <IfModule mod_authz_core.c> > # Apache 2.4 > Require local > # 添加一行内容,指定可访问的ip段 或者输入:Require all granted 开放外网访问 > Require ip 192.168.77.0/24 > </IfModule> ``` ## 3、启动httpd 修改Apache的端口!一般来说80端口会被占用,所以需要改一下端口,如果不需要的可以跳过此步骤。 ``` vim /etc/httpd/conf/httpd.conf 将配置文件中的Listen 80 改成Listen 8081 ``` 启动httpd ``` [root@nano cn=config]# systemctl enable --now httpd ``` 浏览器访问 phpldapadmin: - url: http://服务器地址/phpldapadmin/ - 用户名:cn=admin,dc=ss,dc=com - 密码:设定的管理员密码  Phpldap使用方法参考:https://blog.csdn.net/u010543388/article/details/107682769 --- # 三、使用LdapAdmin  该软件更容易创建用户组、用户和移动等 --- # 四、数据迁移 ## 1、获取数据到指定文件 ``` [root@nano cn=config]# ldapsearch -LLL -W -x -D "cn=admin,dc=ss,dc=com" -b "dc=ss,dc=com" > ldap_data_2023.ldif ``` > 如果公司有多个域,请将命令执行多次,修改命令中-b 后面的域名就行; > 注意: 以上命令只适合数据量小的时候,数据量在10000以内可以这么做,如果超过了请就选择其他方法; ## 2、查看数据是否备份成功 ``` [root@nano cn=config]# cat ldap_data_2023.ldif ``` ## 3、插入数据 ``` [root@nano cn=config]# ldapadd -x -D "cn=admin,dc=ss,dc=com" -w "你的密码" -f ldap_data_2023.ldif ``` > 若出现如下报错,则证明数据库中已有该条记录,需要到ldap\_data\_2023.ldif中删除,再继续导入即可 > `adding new entry "dc=test,dc=com"` > `ldap_add: Already exists (68)` --- # 五、卸载LDAP 1、停止openldap ``` [root@nano cn=config]# systemctl stop slapd [root@nano cn=config]# systemctl disable slapd ``` 2、卸载 ``` [root@nano cn=config]# yum -y remove openldap-servers openldap-clients ``` 3、删除残留文件 ``` [root@nano cn=config]# rm -rf /var/lib/ldap ``` 4、删除ldap用户 ``` [root@nano cn=config]# userdel ldap ``` 5、删除openldap目录 ``` [root@nano cn=config]# rm -rf /etc/openldap ```
adouk
2025年4月25日 15:34
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码