• CentOS7.8安装配置OpenLDAP


    目录

    1.OpenLDAP服务安装

    2.设置依赖数据库

    3.修改配置文件

    4.LDAPAdmin可视化工具的使用

    1.OpenLDAP服务安装

    在集群中选择一台服务器作为OpenLDAP的Server

    执行如下命令安装OpenLDAP服务

    yum -y install openldap-clients openldap-devel openldap-servers migrationtools sssd authconfig nss-pam-ldapd

     查看安装的RPM包  rpm -qa|grep openldap

     

    2.设置依赖数据库

    1. cp /usr/share//openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    2. chown -R ldap:ldap /var/lib/ldap/

    启动服务并设置开机自启

    systemctl start slapd && systemctl enable slapd

    查看启动状态 

    systemctl status slapd

     

    3.修改配置文件

    openldap2.4.23以后的版本,所有配置都保存在/etc/openldap/slapd.d/cn=config 目录下,后缀为ldif。且每个配置都是通过命令自动生成的。在每个配置顶部都会有注释,提示请勿编辑。使用ldapmodify命令编辑

    安装openldap后,会有三个命令用于修改配置文件,分别是ldapadd、ldapmodify、ldapdelete。顾名思义就是添加、修改、删除。

    需要修改或增加配置时,需要先写一个ldif后缀的配置文件,然后通过命令将写的配置更新到slapd.d目录的配置文件中去。ldif即LDAP Data Interchange Format,是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式,注意value后面不能有空格

    # 生成管理员密码,复制下来,一会需要用到  

    slappasswd -s 123456

     # 新增修改密码文件,后缀时ldif,文件名随意。不要在/etc/openldap/slapd.d/目录下创建,可以建一个目录,后续手动编写的所有ldif文件都放入该目录下

    1. vi changepwd.ldif
    2. dn: olcDatabase={0}config,cn=config
    3. changetype: modify
    4. add: olcRootPW
    5. olcRootPW: {SSHA}JrHpNp+rGc6FiiLUbHXw2uiswwNnSdg4

    •         第一行执行配置文件,这里就表示指定为cn=config/olcDatabase={0}config文件。你到/etc/openldap/slapd.d/目录下就能找到此文件
    • 第二行 changetype 指定类型为修改
    • add 表示添加 olcRootPW(管理员密码) 配置项
    • 在执行下面的命令前,你可以先查看原本的olcDatabase={0}config文件,里面是没有olcRootPW这个项的,执行命令后,你再看就会新增了olcRootPW项,而且内容是我们文件中指定的值加密后的字符串
    • olc即Online Configuration,表示写入LDAP后不需要重启即可生效

    执行命令,修改ldap配置,通过-f执行文件

    ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif

     执行下边的命令,将 /etc/openldap/schema中的Schema导入

    ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done

    导入后此处可以看得到/etc/openldap/slapd.d/cn=config/cn=schema 对应的schema

     

    设定默认域

    先使用slappasswd生成一个密码(123456):

     新建一个domain.ldif的文件:

    1. vi domain.ldif
    2. dn: olcDatabase={1}monitor,cn=config
    3. changetype: modify
    4. replace: olcAccess
    5. olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
    6. read by dn.base="cn=Manager,dc=zhidaoauto,dc=com" read by * none
    7. dn: olcDatabase={2}hdb,cn=config
    8. changetype: modify
    9. replace: olcSuffix
    10. olcSuffix: dc=zhidaoauto,dc=com
    11. dn: olcDatabase={2}hdb,cn=config
    12. changetype: modify
    13. replace: olcRootDN
    14. olcRootDN: cn=Manager,dc=zhidaoauto,dc=com
    15. dn: olcDatabase={2}hdb,cn=config
    16. changetype: modify
    17. add: olcRootPW
    18. olcRootPW: {SSHA}OpMcf0c+pEqFLZm3i+YiI2qhId1G/yM3 #替换上面生成的密码
    19. dn: olcDatabase={2}hdb,cn=config
    20. changetype: modify
    21. add: olcAccess
    22. olcAccess: {0}to attrs=userPassword,shadowLastChange by
    23. dn="cn=Manager,dc=zhidaoauto,dc=com" write by anonymous auth by self write by * none
    24. olcAccess: {1}to dn.base="" by * read
    25. olcAccess: {2}to * by dn="cn=Manager,dc=zhidaoauto,dc=com" write by * read
    •  olcAccessaccess,该key用于指定目录的ACL即谁有什么权限可以存取什么
    • olcRootDN设定管理员root用户的distingush name
    • 注意替换上面文件内容中cn为具体的域信息
    • olcRootPW用上面新生成的密码替换

    写入: 

    ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.ldif

     添加基本目录

    新建一个basedomain.ldif的文件:

    1. dn: dc=zhidaoauto,dc=com
    2. objectClass: top
    3. objectClass: dcObject
    4. objectclass: organization
    5. o: zhidaoauto com
    6. dc: zhidaoauto
    7. dn: cn=Manager,dc=zhidaoauto,dc=com
    8. objectClass: organizationalRole
    9. cn: Manager
    10. description: Directory Manager
    11. dn: ou=People,dc=zhidaoauto,dc=com
    12. objectClass: organizationalUnit
    13. ou: People
    14. dn: ou=Group,dc=zhidaoauto,dc=com
    15. objectClass: organizationalUnit
    16. ou: Group
    •  注意替换上面文件内容中dn为具体的域信息
    • 理解dn,cn,dc
      • DC即Domain ComponentLDAP目录类似文件系统目录dc=zhidaoauto,dc=com相当于/com/zhidaoauto
      • CN即Common NameCN有可能代表一个用户名,例如cn=Manager,dc=zhidaoauto,dc=com表示在/com/zhidaoauto域下的管理员用户Manager
      • OU即Organizational Unit,例如ou=People,dc=zhidaoauto,dc=com表示在/com/zhidaoauto域下的一个组织单元People

    写入: 

    1. ldapadd -x -D cn=Manager,dc=zhidaoauto,dc=com -W -f basedomain.ldif
    2. Enter LDAP Password:
    3. adding new entry "dc=zhidaoauto,dc=com"
    4. adding new entry "cn=Manager,dc=zhidaoauto,dc=com"
    5. adding new entry "ou=People,dc=zhidaoauto,dc=com"
    6. adding new entry "ou=Group,dc=zhidaoauto,dc=com"

    测试:

    1. ldapsearch -x -H ldap://localhost:389 -D "cn=Manager,dc=zhidaoauto,dc=com" -b "dc=zhidaoauto,dc=com" -w 123456
    2. # extended LDIF
    3. #
    4. # LDAPv3
    5. # base with scope subtree
    6. # filter: (objectclass=*)
    7. # requesting: ALL
    8. #
    9. # zhidaoauto.com
    10. dn: dc=zhidaoauto,dc=com
    11. objectClass: top
    12. objectClass: dcObject
    13. objectClass: organization
    14. o: zhidaoauto com
    15. dc: zhidaoauto
    16. # Manager, zhidaoauto.com
    17. dn: cn=Manager,dc=zhidaoauto,dc=com
    18. objectClass: organizationalRole
    19. cn: Manager
    20. description: Directory Manager
    21. # People, zhidaoauto.com
    22. dn: ou=People,dc=zhidaoauto,dc=com
    23. objectClass: organizationalUnit
    24. ou: People
    25. # Group, zhidaoauto.com
    26. dn: ou=Group,dc=zhidaoauto,dc=com
    27. objectClass: organizationalUnit
    28. ou: Group

    4.LDAPAdmin可视化工具的使用

    下载地址LDAPAdmin官网:http://www.ldapadmin.org/download/index.html

    连接OPenLDAP

    1.双击LdapAdmin.exe程序打开

    2.创建连接

     

    测试成功后连接

     

     

    LDAP Admin使用

    1.通过LDAP Admin工具在ou=People下创建一个用户,选中该OU点击右键

    填写用户信息

    点击“OK”,完成用户创建

    2.为faysona用户设置密码,选中该用户点击右键,选择“Set Password”

    设置密码

    密码设置成功

    3.创建一个组,选中“ou=Group”点击右键

    输入组名

    选择cdswgroup组包含的成员

    选择成功后

    点击“Ok”完成创建

     

     

     

  • 相关阅读:
    windows命令行查看和终止进程
    电商平台和短视频平台在直播带货中有哪些差异
    纯CSS实现炫酷文本阴影效果
    NDVI时间序列分析之Sen+MK分析全过程梳理
    Games104现代游戏引擎入门-lecture15游戏引擎的Gameplay玩法系统基础
    【HMS core】【FAQ】典型问题合集7
    Remix 和 Next.js 中实现依赖注入
    浅谈旅行商问题(TSP问题)
    Spring Boot企业级开发教程-第一章 Spring Boot 开发入门
    go读取yaml,json,ini等配置文件
  • 原文地址:https://blog.csdn.net/iteen/article/details/126246692