Linux-OpenLDAP服务集中管理用户账户信息

叁歲伎倆 2023-07-22 09:18 72阅读 0赞

目的:使用OpenLDAP目录服务管理用户账户信息,实现快速查询、更改、删除用户信息。

意义:在一台ldap服务器上进行账号的集中管理,在ldap客户端上使用这些账号,而无需再管理账户。

OpenLDAP目录服务

1、目录数据库:主要用于存储较小的信息【多查少改的信息】,同时具有很好的读性能,但在写性能方面比较差,所以不适合存放那些需要经常修改的数据。
2、目录服务是由目录数据库一套能够访问和处理数据库信息的协议组成的服务协议,用于集中的管理主机帐号密码,员工名字等数据,大大的提升了管理工作效率。
3、轻量级目录访问协议LDAP(Lightweight Directory Access Protocol)是在目录访问协议X.500的基础上研发的。
4、LDAP采用树状结构存储数据,条目是LDAP协议中最基本的元素。
5、树状结构目录,从上到下,层层递进,直到找到相应的条目【类似数据库中的记录】
6、dc根节点、ou子树、cn叶子节点、dn条目路径【自下往上,条目的唯一标识符】
7、OpenLdap是基于LDAP协议的开源程序,它的程序名称叫做slapd
yum install -y openldap openldap-clients openldap-servers migrationtools

部署OpenLDAP服务端

①配置LDAP服务端IP:192.168.10.10
在这里插入图片描述
②安装openldap服务相关的软件包,生成密钥文件,将主机与IP地址的解析记录写入/etc/hosts文件中。
yum install -y openldap openldap-servers openldap-clients migrationtools
在这里插入图片描述
在这里插入图片描述
slappasswd -s abong -n > /etc/openldap/passwd
密钥:{SSHA}Dxx/kRKeCx98w6Srxz9IIi10bxSTLdt/
在这里插入图片描述
echo "192.168.10.10 linuxfwd" >> /etc/hosts
在这里插入图片描述
③在LDAP目录服务中采用TLS加密机制传输数据,使用openssl工具生成x509格式的证书文件,有效期为365天。 【-out cert.pem -keyout priv.pem
openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365
在这里插入图片描述
④证书存放在目录/etc/openldap/certs/下,将所有者和所属组改为ldap,并将priv.pem的权限设置为600
在这里插入图片描述
⑤复制一份LDAP数据库模板存放到/var/lib/ldap/目录下,改名为DB_CONFIG,LDAP数据库模板路径为/usr/share/openldap-servers/DB_CONFIG.example。然后使用命令slaptest/var/lib/ldap目录下生成数据库文件,最后修改LDAP数据库的属主和属组。
在这里插入图片描述
⑥重启slapd服务,并添加到开机自启中,可以看到slapd服务已经正常开启。
在这里插入图片描述
⑦LDAP服务中使用LDIF(LDAP Interchange Format)格式来保存条目。LDIF是一种标准的文本文件,可随意的导出导入。LDIF格式的数据条目是在schema数据模型的基础上创建出来的。类似对象与类之间的关系。【条目数据保存在.ldif文件中】【模板文件保存在.schema文件中】

  1. #该目录下存放着类及其对象
  2. [root@linuxfwd ~]# cd /etc/openldap/schema/
  3. [root@linuxfwd schema]# ls
  4. collective.ldif cosine.schema java.ldif openldap.schema
  5. collective.schema duaconf.ldif java.schema pmi.ldif
  6. corba.ldif duaconf.schema misc.ldif pmi.schema
  7. corba.schema dyngroup.ldif misc.schema ppolicy.ldif
  8. core.ldif dyngroup.schema nis.ldif ppolicy.schema
  9. core.schema inetorgperson.ldif nis.schema
  10. cosine.ldif inetorgperson.schema openldap.ldif
  11. [root@linuxfwd schema]#

添加cosinenis模块到slapd服务程序中
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
在这里插入图片描述
创建/etc/openldap/changes.ldif文件,并复制以下内容进去

  1. dn: olcDatabase={ 2}hdb,cn=config
  2. changetype: modify
  3. replace: olcSuffix
  4. olcSuffix: dc=abong,dc=com
  5. dn: olcDatabase={ 2}hdb,cn=config
  6. changetype: modify
  7. replace: olcRootDN
  8. olcRootDN: cn=Manager,dc=abong,dc=com
  9. dn: olcDatabase={ 2}hdb,cn=config
  10. changetype: modify
  11. replace: olcRootPW
  12. olcRootPW:{ SSHA}Dxx/kRKeCx98w6Srxz9IIi10bxSTLdt/
  13. dn: cn=config
  14. changetype: modify
  15. replace: olcTLSCertificateFile
  16. olcTLSCertificateFile: /etc/openldap/certs/cert.pem
  17. dn: cn=config
  18. changetype: modify
  19. replace: olcTLSCertificateKeyFile
  20. olcTLSCertificateKeyFile: /etc/openldap/certs/priv.pem
  21. dn: cn=config
  22. changetype: modify
  23. replace: olcLogLevel
  24. olcLogLevel: -1
  25. dn: olcDatabase={ 1}monitor,cn=config
  26. changetype: modify
  27. replace: olcAccess
  28. olcAccess: { 0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=abong,dc=com" read by * none

将新的配置文件/etc/openldap/changes.ldif更新到slapd服务程序中
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
在这里插入图片描述
创建/etc/openldap/base.ldif文件,并复制以下内容进去

  1. dn: dc=abong,dc=com
  2. dc: abong
  3. objectClass: top
  4. objectClass: domain
  5. dn: ou=People,dc=abong,dc=com
  6. ou: People
  7. objectClass: top
  8. objectClass: organizationalUnit
  9. dn: ou=Group,dc=abong,dc=com
  10. ou: Group
  11. objectClass: top
  12. objectClass: organizationalUnit

将新的配置文件/etc/openldap/base.ldif添加到slapd服务程序中
ldapadd -x -w abong -D cn=Manager,dc=abong,dc=com -f /etc/openldap/base.ldif
在这里插入图片描述
⑧创建用户ldapuser,用于测试。设置账户的迁移。将当前系统的用户和用户组迁移到目录服务中【用户迁移到passwd文件中、使用passwd文件生成ldif文件、将ldif文件添加到slapd服务程序中】【用户组迁移到group文件中、使用group文件生成ldif文件、将ldif文件添加到slapd服务程序中】
useradd -d /home/ldap ldapuser
修改文件/usr/share/migrationtools/migrate_common.ph,如下:
在这里插入图片描述
迁移用户,并生成user.ldif文件,将user.ldif文件添加到slapd服务程序中
在这里插入图片描述
在这里插入图片描述
迁移用户组,并生成group.ldif文件,将group.ldif文件添加到slapd服务程序中
在这里插入图片描述
⑨测试用户ldapuser的配置文件是否正常,可以看到,用户ldapuser的条目数据是存在的。

  1. [root@linuxfwd ~]# ldapsearch -x cn=ldapuser -b dc=abong,dc=com
  2. # extended LDIF
  3. #
  4. # LDAPv3
  5. # base <dc=abong,dc=com> with scope subtree
  6. # filter: cn=ldapuser
  7. # requesting: ALL
  8. #
  9. # ldapuser, People, abong.com
  10. dn: uid=ldapuser,ou=People,dc=abong,dc=com
  11. uid: ldapuser
  12. cn: ldapuser
  13. objectClass: account
  14. objectClass: posixAccount
  15. objectClass: top
  16. objectClass: shadowAccount
  17. userPassword:: e2NyeXB0fSEh
  18. shadowLastChange: 18358
  19. shadowMin: 0
  20. shadowMax: 99999
  21. shadowWarning: 7
  22. loginShell: /bin/bash
  23. uidNumber: 1001
  24. gidNumber: 1001
  25. homeDirectory: /home/ldap
  26. # ldapuser, Group, abong.com
  27. dn: cn=ldapuser,ou=Group,dc=abong,dc=com
  28. objectClass: posixGroup
  29. objectClass: top
  30. cn: ldapuser
  31. userPassword:: e2NyeXB0fXg=
  32. gidNumber: 1001
  33. # search result
  34. search: 2
  35. result: 0 Success
  36. # numResponses: 3
  37. # numEntries: 2
  38. [root@linuxfwd ~]#

⑩安装httpd服务程序,将密钥文件/etc/openldap/certs/cert.pem复制到/var/www/html。然后重启httpd服务,并添加到开机自启中。然后清空防火墙并保存当前防火墙。最后,修改rsyslog服务的配置文件,追加echo "local4.* /var/log/ldap.log" >> /etc/rsyslog.conf,重启rsyslog服务。
在这里插入图片描述

部署OpenLDAP客户端

①将服务器的IP地址和主机名的解析记录写入到客户端的/etc/hosts文件中
在这里插入图片描述
②安装客户端的相关软件包
yum install -y openldap-clients nss-pam-ldapd authconfig-gtk pam_krb5
在这里插入图片描述
③运行系统认证工具,并填写LDAP服务信息
system-config-authentication
服务器主机名:
linuxfwd

证书URL(u):
http://192.168.10.10/cert.pem
http://linuxfwd/cert.pem
在这里插入图片描述
我这里是已经挂载了家目录,如果没挂载的可使用NFS进行挂载。

自动挂载用户的家目录

在客户端进行LDAP验证后,从客户端登录用户ldapuser时,是无法同步用户家目录的,即在客户端并不存在用户ldapuser的家目录。可以使用NFS(网络文件系统)将家目录自动挂载在客户端上。【即将服务器上的家目录作为一个共享资源,挂载在客户端】
①在ldap服务器上安装nfs-utils服务程序
yum install -y nfs-utils
②修改NFS的主配置文件/etc/exports
echo "/home/ldap 192.168.10.*(rw,sync,root_squash)" >> /etc/exports
③重启rpcbindnfs-server服务程序,并添加到开机自启中
在这里插入图片描述
④清空防火墙,并保存当前防火墙策略
在这里插入图片描述
⑤在客户端查看共享信息
showmount -e 192.168.10.10
在这里插入图片描述
⑥将家目录/home/ldap作为一个nfs文件系统挂载到客户端
在这里插入图片描述
⑦将挂载信息写入文件/etc/fstab,以实现永久挂载。
echo "192.168.10.10:/home/ldap /home/ldap nfs defaults 0 0" >> /etc/fstab

通过以上配置,我们可以在LDAP服务器上集中管理账户信息,无需在客户端上管理账户,提高了客户端的使用效能。

发表评论

表情:
评论列表 (有 0 条评论,72人围观)

还没有评论,来说两句吧...

相关阅读