• Centos 安装 OpenLDAP


    本教程相关 LDIF 文件下载: 

    相关 idif 文件 https://download.csdn.net/download/mshxuyi/86511892

    LDAP

    LDAP(Lightweight Directory Access Protocol,轻型目录访问协议),是一种基于 TCP/IP的访问在线目录服务的协议,有V2和V3版本,其中现在用得最多的都是V3版本。而 openLDAP 则是这种协议的开源的实现,被广泛应用于 " 目录访问权限控制 " 这一目的 

     1、安装

    1. # 安装
    2. yum install -y openldap-servers openldap-clients
    3. # 复制一个默认配置到指定目录下,并授权
    4. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    5. chown ldap:ldap /var/lib/ldap/DB_CONFIG
    6. # 启动
    7. systemctl start slapd
    8. systemctl enable slapd

    2、修改配置

    1. # 生成管理员密码
    2. slappasswd -s abc@123
    3. # 显示
    4. {SSHA}Hj8Fc0yIgn/ACV5ZdJdAR+Rq+Ug57Nd5
    5. vim chrootpw.ldif
    6. # 内容
    7. dn: olcDatabase={0}config,cn=config
    8. changetype: modify
    9. add: olcRootPW
    10. olcRootPW: {SSHA}YzpdyJJBH3pNjXpQO7C/NvmWdxVPB8Cd
    11. # 执行LDIF文件
    12. ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

    3、导入预设

    1. # 执行LDIF文件
    2. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    3. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
    4. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    5. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
    6. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
    7. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
    8. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
    9. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
    10. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
    11. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
    12. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
    13. ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif

    4、添加域

    添加新的域 xielong.local,admin 管理员的密码是上面生成的

    1. vim chdomain.ldif
    2. # 内容
    3. dn: olcDatabase={1}monitor,cn=config
    4. changetype: modify
    5. replace: olcAccess
    6. olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=xielong,dc=local" read by * none
    7. dn: olcDatabase={2}hdb,cn=config
    8. changetype: modify
    9. replace: olcSuffix
    10. olcSuffix: dc=xielong,dc=local
    11. dn: olcDatabase={2}hdb,cn=config
    12. changetype: modify
    13. replace: olcRootDN
    14. olcRootDN: cn=admin,dc=xielong,dc=local
    15. dn: olcDatabase={2}hdb,cn=config
    16. changetype: modify
    17. replace: olcRootPW
    18. olcRootPW: {SSHA}YzpdyJJBH3pNjXpQO7C/NvmWdxVPB8Cd
    19. dn: olcDatabase={2}hdb,cn=config
    20. changetype: modify
    21. add: olcAccess
    22. olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=xielong,dc=local" write by anonymous auth by self write by * none
    23. olcAccess: {1}to dn.base="" by * read
    24. olcAccess: {2}to * by dn="cn=admin,dc=xielong,dc=local" write by * read
    25. # 执行LDIF文件
    26. ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

    5、添加 memberof 功能

    很多场景下,我们需要快速的查询某一个用户是属于哪一个或多个组的,memberOf 正是提供了这样的一个功能:如果某个组中通过 member 属性新增了一个用户,OpenLDAP 便会自动在该用户上创建一个 memberOf 属性,其值为该组的 dn。遗憾的是,OpenLDAP 默认并不启用这个特性,因此我们需要通过相关的配置开启它。

    1. vim addmemberof.ldif
    2. # 内容
    3. dn: cn=module{0},cn=config
    4. cn: modulle{0}
    5. objectClass: olcModuleList
    6. objectclass: top
    7. olcModuleload: memberof.la
    8. olcModulePath: /usr/lib64/openldap
    9. dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
    10. objectClass: olcConfig
    11. objectClass: olcMemberOf
    12. objectClass: olcOverlayConfig
    13. objectClass: top
    14. olcOverlay: memberof
    15. olcMemberOfDangling: ignore
    16. olcMemberOfRefInt: TRUE
    17. olcMemberOfGroupOC: groupOfUniqueNames
    18. olcMemberOfMemberAD: uniqueMember
    19. olcMemberOfMemberOfAD: memberOf
    20. vim refint1.ldif
    21. # 内容
    22. dn: cn=module{0},cn=config
    23. add: olcmoduleload
    24. olcmoduleload: refint
    25. vim refint2.ldif
    26. # 内容
    27. dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
    28. objectClass: olcConfig
    29. objectClass: olcOverlayConfig
    30. objectClass: olcRefintConfig
    31. objectClass: top
    32. olcOverlay: refint
    33. olcRefintAttribute: memberof uniqueMember manager owner
    34. # 执行LDIF文件
    35. ldapadd -Q -Y EXTERNAL -H ldapi:/// -f addmemberof.ldif
    36. ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
    37. ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif

    6、添加Group People 2个组织单位和 admin 组织角色

    1. vim base.ldif
    2. # 内容
    3. dn: dc=xielong,dc=local
    4. objectClass: top
    5. objectClass: dcObject
    6. objectClass: organization
    7. o: xielong Company
    8. dc: xielong
    9. dn: cn=admin,dc=xielong,dc=local
    10. objectClass: organizationalRole
    11. cn: admin
    12. dn: ou=People,dc=xielong,dc=local
    13. objectClass: organizationalUnit
    14. ou: People
    15. dn: ou=Group,dc=xielong,dc=local
    16. objectClass: organizationalUnit
    17. ou: Group
    18. # 执行LDIF文件
    19. ldapadd -x -D cn=admin,dc=xielong,dc=local -W -f base.ldif

    7、在 Group 里面 添加 dev 和 ops 2个组

    1. vim group.ldif
    2. # 内容
    3. dn: cn=ops,ou=Group,dc=xielong,dc=local
    4. cn: ops
    5. objectClass: top
    6. objectClass: groupOfUniqueNames
    7. uniqueMember:
    8. dn: cn=dev,ou=Group,dc=xielong,dc=local
    9. cn: dev
    10. objectClass: top
    11. objectClass: groupOfUniqueNames
    12. uniqueMember:
    13. # 执行LDIF文件
    14. ldapadd -x -D cn=admin,dc=xielong,dc=local -W -f group.ldif

    8、配置日志

    1. mkdir -p /var/log/slapd
    2. touch /var/log/slapd/slapd.log
    3. chown -R ldap:ldap /var/log/slapd
    4. vim /etc/syslog.conf
    5. # 增加,在73行下面
    6. local4.* /var/log/slapd/slapd.log
    7. # 重启
    8. systemctl restart rsyslog
    9. vim log.ldif
    10. # 内容
    11. dn: cn=config
    12. changetype: modify
    13. replace: olcLogLevel
    14. olcLogLevel: stats
    15. # 执行LDIF文件
    16. ldapmodify -Y EXTERNAL -H ldapi:/// -f log.ldif

    9、使用 Ldap Admin 客户端登陆

    10、登陆成功后,能看到 已经创建好 dev 和 ops 2个 group

    11、接着创建 zhangsan 和 lishi 2个用户 , 并把他们加入 dev 和 ops 组里面

    12、验证 memberof 功能

    1. ldapsearch -x -H ldap://10.3.0.210 -b dc=xielong,dc=local -D "cn=admin,dc=xielong,dc=local" -W memberOf
    2. # 成功显示 memberOf
    3. ----
    4. # zhangsan, People, xielong.local
    5. dn: uid=zhangsan,ou=People,dc=xielong,dc=local
    6. memberOf: cn=dev,ou=Group,dc=xielong,dc=local
    7. # ops, Group, xielong.local
    8. dn: cn=ops,ou=Group,dc=xielong,dc=local
    9. # dev, Group, xielong.local
    10. dn: cn=dev,ou=Group,dc=xielong,dc=local
    11. # lishi, People, xielong.local
    12. dn: uid=lishi,ou=People,dc=xielong,dc=local
    13. memberOf: cn=ops,ou=Group,dc=xielong,dc=local
    14. ------

    13、验证日志

    1. cat /var/log/slapd/slapd.log
    2. # 内容
    3. Sep 8 00:27:10 10-3-0-210 slapd[22340]: conn=1003 op=183 SRCH base="uid=zhangsan,ou=People,dc=xielong,dc=local" scope=0 deref=0 filter="(objectClass=*)"
    4. Sep 8 00:27:10 10-3-0-210 slapd[22340]: conn=1003 op=183 SEARCH RESULT tag=101 err=0 nentries=1 text=
    5. Sep 8 00:27:10 10-3-0-210 slapd[22340]: conn=1003 op=184 SRCH base="uid=lishi,ou=People,dc=xielong,dc=local" scope=0 deref=0 filter="(objectClass=*)"
    6. Sep 8 00:27:10 10-3-0-210 slapd[22340]: conn=1003 op=184 SEARCH RESULT tag=101 err=0 nentries=1 text=
    7. Sep 8 00:27:10 10-3-0-210 slapd[22340]: conn=1003 op=185 SRCH base="uid=zhangsan,ou=People,dc=xielong,dc=local" scope=0 deref=0 filter="(objectClass=*)"
    8. Sep 8 00:27:10 10-3-0-210 slapd[22340]: conn=1003 op=185 SEARCH RESULT tag=101 err=0 nentries=1 text=
  • 相关阅读:
    基于订单流工具,我们能看到什么?
    java计算机毕业设计ssm基金分析系统的设计与实现(源码+系统+mysql数据库+Lw文档)
    基于TCP的简易电子词典
    http模块中----------req请求对象-req.url req.method 与客户端请求相关
    【漏洞复现】大华智慧园区综合管理平台信息泄露漏洞
    15-GuliMall ElasticSearch复杂检索
    【JDBC】事务,批处理
    计算机毕业设计-长途汽车售票系统SSM+JSP【代码讲解+安装调试+文档指导】
    手机也能搭建个人博客?安卓Termux+Hexo搭建属于你自己的博客网站
    0.Flask入门
  • 原文地址:https://blog.csdn.net/mshxuyi/article/details/126455011