Linux的centos7中OpenLDAP的安装,卸载与重装
Linux的centos7中LDAP的安装,卸载与重装
一、OpenLDAP的简介
OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。
二、OpenLDAP的安装
1.yum方式安装
安装命令如下:
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
查看OpenLDAP版本:
slapd -VV
2.配置OpenLDAP
2.1 配置OpenLDAP管理员密码
配置管理员密码:
slappasswd
输入新密码(本测试采用123456){SSHA}gwlCFS0IHvoj5Sgu9ZbqOx8zpQPYPC+P为输生成的管理密文密码
保存加密后的密码字段,配置文件中会使用到
2.2 修改olcDatabase={2}hdb.ldif文件
修改olcDatabase={2}hdb.ldif文件:cn=root中的root表示OpenLDAP管理员的用户名,而olcRootPW表示OpenLDAP管理员的密码。
vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{2\}hdb.ldif
修改后内容
olcSuffix: dc=test,dc=com
olcRootDN: cn=root,dc=test,dc=com
olcRootPW: 密码的密文
注意:密码的密文前面为tab键,不要使用空格
2.2 修改olcDatabase={1}monitor.ldif文件
修改olcDatabase={1}monitor.ldif文件
vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{1\}monitor.ldif
修改后内容,如下:
olcAccess: {0}to * by dn.base=”gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth” read by dn.base=”cn=root,dc=test,dc=com” read by * none
验证OpenLDAP的基本配置
slaptest -u
启动OpenLDAP服务
systemctl enable slapd
systemctl start slapd
systemctl status slapd
验证端口,OpenLDAP默认监听的端口是389
netstat -antup | grep 389
3.配置OpenLDAP数据库
OpenLDAP默认使用的数据库是BerkeleyDB,/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
ll /var/lib/ldap/
4.导入基本Schema
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/core.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
5.修改migrate_common.ph文件
migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件:
vim /usr/share/migrationtools/migrate_common.ph +71
修改后内容如下:
$DEFAULT_MAIL_DOMAIN = “ilanni.com”;
$DEFAULT_BASE = “dc=ilanni,dc=com”;
$EXTENDED_SCHEMA = 1;
6.添加用户及用户组
默认情况下OpenLDAP是没有普通用户的,但是有一个管理员用户。管理用户就是前面我们刚刚配置的root。
现在我们把系统中的用户,添加到OpenLDAP中。为了进行区分,我们现在新加两个用户ldapuser1和ldapuser2,和两个用户组ldapgroup1和ldapgroup2,如下:
添加用户组,使用如下命令:
groupadd ldapgroup1
groupadd ldapgroup2
添加用户并设置密码,使用如下命令:
useradd -g ldapgroup1 ldapuser1
useradd -g ldapgroup2 ldapuser2
echo '123456' | passwd --stdin ldapuser1
echo '123456' | passwd --stdin ldapuser2
把刚刚添加的用户和用户组提取出来,这包括该用户的密码和其他相关属性:
grep ":10[0-9][0-9]" /etc/passwd > /root/users
grep ":10[0-9][0-9]" /etc/group > /root/groups
cat users
cat groups
根据上述生成的用户和用户组属性,使用migrate_passwd.pl文件生成要添加用户和用户组的ldif:
/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif
cat users.ldif
cat groups.ldif
7.导入用户及用户组到OpenLDAP数据库
vim /root/base.ldif
dn: dc=test,dc=com
o: test com
dc: test
objectClass: top
objectClass: dcObject
objectclass: organization
dn: cn=root,dc=test,dc=com
cn: root
objectClass: organizationalRole
description: Directory Manager
dn: ou=People,dc=test,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=test,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
导入基础数据库、导入用户到数据库,导入用户组到数据库
ldapadd -x -W -D "cn=root,dc=test,dc=com" -f /root/base.ldif
ldapadd -x -W -D "cn=root,dc=test,dc=com" -f /root/users.ldif
ldapadd -x -W -D "cn=root,dc=test,dc=com" -f /root/groups.ldif
查看BerkeleyDB数据库文件
ll /var/lib/ldap/
8.查询OpenLDAP的相关信息
查询OpenLDAP全部信息:
ldapsearch -x -b "dc=test,dc=com" -H ldap://127.0.0.1
查询添加的OpenLDAP用户信息:
ldapsearch -LLL -x -D 'cn=root,dc=test,dc=com' -w "123456" -b 'dc=test,dc=com' 'uid=ldapuser1'
查询添加的OpenLDAP用户组信息:
ldapsearch -LLL -x -D 'cn=root,dc=ilanni,dc=com' -w "123456" -b 'dc=ilanni,dc=com' 'cn=ldapgroup1'
9.把OpenLDAP用户加入到用户组
在OpenLdap中添加组的功能,所以需要添加memberOf功能.
9.1 新建文件memberof_load_configure.ldif
在/root目录下新建文件memberof_load_configure.ldif:
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulepath: /usr/lib64/openldap
olcModuleload: {0}memberof.la
dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_load_configure.ldif
说明:上面的参数请根据实际情况修改(比如32的系统的话olcModulepath为/usr/lib/openldap)
dn: cn=module{0},cn=config 如果/etc/openldap/slapd.d/cn=config目录下已经存在cn=module{0}.ldif 文件的话,你就需要修改 module后面的数字了
dn: olcOverlay={0}memberof,olcDatabase={2}bdb,cn=config 这行中 如果上述目录中没有olcDatabase={2}bdb.ldif文件就把 olcDatabase={2}bdb改成olcDatabase={2}hdb
9.2 测试添加一个group
在/root目录下新建文件 addgroup.ldif:
dn: cn=gitlab,ou=Group,dc=test,dc=com
objectClass: top
objectClass: groupOfNames
cn: gitlab
member: uid=testuser,ou=People,dc=test,dc=com
ldapadd -x -W -D "cn=root,dc=test,dc=com" -f addgroup.ldif
10. 使用ldapadmin工具查看
其中host填写OpenLDAP的主机地址,port填写OpenLDAP的监听端口,base填写的OpenLDAP的DN。
在Account部分中的Username填写的是管理员,password填写的是管理员的密码。
注意:Username部分不像,我们平时使用的系统一样填写一个root,在此我们要填写完整的RDN。
参考连接:
主要参考此文章,致敬烂泥行天下
部分内容经测试后采用此篇内容实现
三、OpenLDAP的卸载
1.停止openldap
systemctl stop slapd
systemctl disable slapd
2.卸载
yum -y remove openldap-servers openldap-clients
3.删除残留文件
rm -rf /var/lib/ldap
4.删除ldap用户及组
userdel ldap
userdel 曾创建的其他ldap相关用户
groupdel 曾创建的其他ldap相关组
注意:若用户及组不删除干净会影响后面的重装。
5.删除openldap目录
rm -rf /etc/openldap
注意:此处删除前,需要将该路径下的certs文件夹备份留存,重装时,此文件夹不会再下载,由此会引起OpenLDAP重装后服务无法启动
参考连接:
卸载参考的文章
四、OpenLDAP的重装
重装时,OpenLDAP无法正常启动如何解决?
失败原因,/etc/openldap目录下缺失验证文件certs
解决方案:
将certs文件放入/etc/openldap目录下
五、其他命令
1.删除用户
ldapdelete -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com"
更多推荐
所有评论(0)