CentOS部署OpenLDAP认证

前端之家收集整理的这篇文章主要介绍了CentOS部署OpenLDAP认证前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一些基本概念
Server的安装与配置
Web管理工具PHPldapadmin
Clients的安装与配置
生产环境使用OpenLDAP做认证(主备、Server安全、TLS)

一、基本概念
DN、OU、DC、O,这些概念网上都有资料。
一般用来做用户认证,我是拿来做系统用户认证,很多人做FTP或Samba用户认证。
二、Server端的安装与配置
openldap这玩意对细节的要求非常苛刻,稍不注意就会报错。
SERVER端,操作系统:CentOS6.2:
I、OpenLDAP的安装与基本配置
1)Yum安装
 
 
  1. yum-yinstallopenldapopenldap-serversopenldap-clientsopenldap-devel //一定要全安装,否则后面可能会报错
2)vi /etc/sysconfig/ldap,确保SLAPD_LDAPI=yes
3)vi /etc/openldap/slapd.conf,添加如下两行:
 
 
  1. pidfile/var/run/openldap/slapd.pid
  2. argsfile/var/run/openldap/slapd.args
4)备份/etc/openldap/slapd.d目录,然后重建该目录,并生成文件
 
 
  1. cp-a/etc/openldap/slapd.d/etc/openldap/slapd.d.BAK2012-03-26
  2. rm-rf/etc/openldap/slapd.d/*
  3. slaptest-f/etc/openldap/slapd.conf-F/etc/openldap/slapd.d
5)编辑重新生成后的配置文件
a) vi /etc/openldap/slapd.d/cn=config/olcDatabase\=\{0\}config.ldif,修改第4行配置如下:
 
 
  1. olcAccess:{0}to*bydn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authmanageby*break
注意严格按照原文件单词之间的空格数进行修改,by前面有两个空格
b) vi /etc/openldap/slapd.d/cn=config/olcDatabase\=\{1\}monitor.ldif,输入以下行:
 
 
  1. dn:olcDatabase={1}monitor
  2. objectClass:olcDatabaseConfig
  3. olcDatabase:{1}monitor
  4. olcAccess:{1}to*bydn.exact=gidNumber=0+uidNumber=0,cn=authmanageby*break
  5. olcAddContentAcl:FALSE
  6. olcLastMod:TRUE
  7. olcMaxDerefDepth:15
  8. olcReadOnly:FALSE
  9. olcMonitoring:FALSE
  10. structuralObjectClass:olcDatabaseConfig
  11. creatorsName:cn=config
  12. modifiersName:cn=config
注:以上所有输入行,确保行首无空格。
6)修改slapd.d目录的属主和权限,并启动ldap:
 
 
  1. chown-Rldap./etc/openldap/slapd.d
  2. chmod-R700/etc/openldap/slapd.d
  3. /etc/rc.d/init.d/slapdstart
  4. chkconfigslapdon
II、 初始化用户认证信息
1)依次输入以下命令,并确保无报错:
 
 
  1. ldapadd-YEXTERNAL-Hldapi:///-f/etc/openldap/schema/core.ldif
  2. ldapadd-YEXTERNAL-Hldapi:///-f/etc/openldap/schema/cosine.ldif
  3. ldapadd-YEXTERNAL-Hldapi:///-f/etc/openldap/schema/nis.ldif
  4. ldapadd-YEXTERNAL-Hldapi:///-f/etc/openldap/schema/inetorgperson.ldif
最有可能出现的错误:no permission to create parent directory. 我遇到了几次,没办法解决,最后是严格按照上面的步骤,重新安装了一遍才OK。
2)创建管理员密码,尽量使用高强度密码:
slappasswd
注:a) 上述命令会生成一个经过SSHA算法加密的密码,保存该密文,后面要用到
b) slappasswd支持的加密算法,可使用man slappasswd查看
3)创建backend.ldif文件,输入以下行:
 
 
  1. #replacethesection"dc=***,dc=***"toyourownsuffix
  2. #replacethesection"olcRootPW:***"toyourownpasswordgeneratedbyslappasswdabove
  3. dn:cn=module,cn=config
  4. objectClass:olcModuleList
  5. cn:module
  6. olcModulepath:/usr/lib64/openldap
  7. olcModuleload:back_hdb
  8. dn:olcDatabase=hdb,cn=config
  9. objectClass:olcDatabaseConfig
  10. objectClass:olcHdbConfig
  11. olcDatabase:{2}hdb
  12. olcSuffix:dc=abc,dc=com
  13. olcDbDirectory:/var/lib/ldap
  14. olcRootDN:cn=root,dc=abc,dc=com
  15. olcRootPW:{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
  16. olcDbConfig:set_cachesize020971520
  17. olcDbConfig:set_lk_max_objects1500
  18. olcDbConfig:set_lk_max_locks1500
  19. olcDbConfig:set_lk_max_lockers1500
  20. olcDbIndex:objectClasseq
  21. olcLastMod:TRUE
  22. olcMonitoring:TRUE
  23. olcDbCheckpoint:51230
  24. olcAccess:toattrs=userPasswordbydn="cn=root,dc=abc,dc=com"writebyanonymousauthbyselfwriteby*no
  25. ne
  26. olcAccess:toattrs=shadowLastChangebyselfwriteby*read
  27. olcAccess:todn.base=""by*read
  28. olcAccess:to*bydn="cn=root,dc=com"writeby*read
后执行如下命令:
 
 
  1. ldapadd-YEXTERNAL-Hldapi:///-fbackend.ldif
4)编辑frontend.ldif,并输入以下行:
dc=***"toyourownsuffix 
  
  
  • #replacethesection"userPassword:***"toyourownpasswordgeneratedbyslappasswdabove
  • dn:dc=abc,dc=com
  • objectClass:top
  • objectClass:dcObject
  • objectclass:organization
  • o:abccom
  • dc:abc
  • dn:cn=root,dc=com
  • objectClass:simpleSecurityObject
  • objectClass:organizationalRole
  • cn:root
  • userPassword:{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
  • dn:ou=people,dc=com
  • objectClass:organizationalUnit
  • ou:people
  • dn:ou=groups,dc=com
  • objectClass:organizationalUnit
  • ou:groups
  • 后执行如下命令:
     
     
    1. ldapadd-x-Dcn=root,dc=com-W-ffrontend.ldif//注意替换自己的cn和dc
    最有可能出现的错误:ldap_bind: Invalid credentials (49)。检查两方面:上述命令中的cn和dc是否输入正确,以及密码是否输入正确。
    5) 如果忘记管理员密码,或者想修改该密码:
     
     
    1. ldappasswd-x-v-S-W-Dcn=root,dc=com
    然后重启openLDAP:/etc/init.d/slapd restart

    猜你在找的CentOS相关文章