OpenLdap 使用Berkely-DB来作为数据库 存储信息,它 是一个为了查询、浏览和搜索而优化的分布式数据库,呈树状组织结构。它是C/S结构模式,需要分别安装server和client服务,server存储数据,client端提供查询目录信息树工具。
Ldap目录结构与特点:
类似书的目录一样,Ldap也以目录信息树(Directory information Tree   DIT)以树状的层次结构来存储数据, DIT是一个主要进行读操作的数据,在写方面性能低下。
Ldap工作模式和端口

ldap            389/tcp
ldap            389/udp
ldaps           636/tcp                         # LDAP over SSL
ldaps           636/udp                        # LDAP over SSL

1、通过yum安装openldap服务,中间会安装相关的依赖包
点击( 此处 )折叠或打开

  1. [root@mhxy162 ~]# yum -y install openladp*
  2. Installed:
  3. openldap-clients.x86_64 0:2.4.40-12.el6 openldap-devel.x86_64 0:2.4.40-12.el6 openldap-servers.x86_64 0:2.4.40-12.el6 openldap-servers-sql.x86_64 0:2.4.40-12.el6
  4. Dependency Installed:
  5. cyrus-sasl-devel.x86_64 0:2.1.23-15.el6_6.2 libtool-ltdl.x86_64 0:2.2.6-15.5.el6 unixODBC.x86_64 0:2.2.14-14.el6
  6. Updated:
  7. openldap.x86_64 0:2.4.40-12.el6
  8. Dependency Updated:
  9. cyrus-sasl.x86_64 0:2.1.23-15.el6_6.2 cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.2 cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.2
  10. cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.2
  11. Complete!

2、Ldap的工作目录和配置

点击(此处)折叠或打开

  1. [root@mhxy162 openldap]# pwd
  2. /etc/openldap                                                              #通过yum安装后 openldap的工作目录
  3. [root@mhxy162 openldap]# ll
  4. total 28
  5. drwxr-xr-x. 2 root root 4096 Jul 14 10:49 certs
  6. -rw-r----- 1 root ldap 121 May 11 07:32 check_password.conf
  7. -rw-r--r-- 1 root root 280 May 11 07:32 ldap.conf
  8. drwxr-xr-x 2 root root 4096 Jul 14 10:49 schema
  9. drwx------ 3 ldap ldap 4096 Jul 14 10:49 slapd.d                          #我们需要移除slapd.d目录,目的是需要加载slapd.conf文件,默认情况下是不存在
  10. [root@mhxy162 openldap]#
  11. [root@mhxy162 openldap]# cp /usr/share/openldap-servers/slapd.conf.obsolete  /etc/openldap/slapd.conf
    [root@mhxy162 openldap]# mv slapd.d/ /tmp/
    [root@mhxy162 openldap]# ll
    total 24
    drwxr-xr-x. 2 root root 4096 Jul 14 10:49 certs
    -rw-r-----  1 root ldap  121 May 11 07:32 check_password.conf
    -rw-r--r--  1 root root  280 May 11 07:32 ldap.conf
    drwxr-xr-x  2 root root 4096 Jul 14 10:49 schema
    -rw-r--r--  1 root root 4635 Jul 14 12:59 slapd.conf
    [root@mhxy162 openldap]#

2.1 修改生产的模板文件

点击(此处)折叠或打开

  1. 110 #######################################################################
  2. 111 # database definitions
  3. 112 #######################################################################
  4. 113
  5. 114 database bdb
  6. 115 suffix "dc=mhxy162.cn,dc=cn"                            #修改dc
  7. 116 checkpoint 1024 15
  8. 117 rootdn "cn=Manager,dc=mhxy162.cn,dc=cn"                 #修改dc

2.2 生产根密文
点击( 此处 )折叠或打开

  1. [root@mhxy162 openldap]# slappasswd
  2. New password:                                         #123456
  3. Re-enter new password:
  4. {SSHA}aM00OztrRkKx5FcbWNGtQYKlr/RAkCoA
  5. [root@mhxy162 openldap]#

2.3 继续修改slapd.conf 配置文件,加入2.2生成的密码,保存退出

点击(此处)折叠或打开

  1. # Cleartext passwords, especially for the rootdn, should
  2. # be avoided. See slappasswd(8) and slapd.conf(5) for details.
  3. # Use of strong authentication encouraged.
  4. # rootpw secret
  5. # rootpw {crypt}ijFYNcSNctBYg
  6. rootpw {SSHA}aM00OztrRkKx5FcbWNGtQYKlr/RAkCoA

2.4 测试配置文件正常性
点击( 此处 )折叠或打开

  1. root@mhxy162 openldap]# slaptest --help
  2. slaptest: invalid option -- '-'
  3. usage: slaptest [-v] [-d debuglevel] [-f configfile] [-F configdir] [-o <name>[=<value>]] [-n databasenumber] [-u] [-Q]
  4. [root@mhxy162 openldap]# slaptest -u -f slapd.conf
  5. config file testing succeeded
  6. [root@mhxy162 openldap]#

3、 复制模板数据库,启动slapd服务,可以看到没有任何账户
点击( 此处 )折叠或打开

  1. [root@mhxy162 openldap]# cp /usr/share/openldap-servers/DB_CONFIG.example /etc/openldap/DB_CONFIG
  2. [root@mhxy162 openldap]# service slapd restart
    Stopping slapd:                                            [FAILED]
    Starting slapd:                                            [  OK  ]
    [root@mhxy162 openldap]# ldapsearch -x -b "dc=mhxy162.cn dc=cn"
    # extended LDIF
    #
    # LDAPv3
    # base <dc=mhxy162.cn dc=cn> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #

    # search result
    search: 2
    result: 32 No such object

    # numResponses: 1
    [root@mhxy162 openldap]#

4、添加测试账户
4.1、首先安装数据迁移工具,讲创建的用户迁移到Ldap可以识别的文件位置  DB_CONFIG
点击( 此处 )折叠或打开

  1. [root@mhxy162 openldap]# yum -y install migrationtools
  2. [root@mhxy162 openldap]# mkdir /ldaphome
  3. [root@mhxy162 openldap]#
  4. [root@mhxy162 openldap]# for i in {1..5};do useradd -u 200$i -d /ldaphome/ldapuser$i ldapuser$i; echo ldapuser$i:123456 |chpasswd; done
  5. [root@mhxy162 openldap]#

4.2 修改/usr/share/migrationtools/migrate_common.ph   在61行指定域mhxy162.cn

点击(此处)折叠或打开

  1. # Default DNS domain
  2. $DEFAULT_MAIL_DOMAIN = "mhxy162.cn";
  3. # Default base
  4. $DEFAULT_BASE = "dc=mhxy162.cn,dc=cn"

4.3 生成base DN文件,并让baseDN加入ldap

点击(此处)折叠或打开

  1. [root@mhxy162 openldap]# /usr/share/migrationtools/migrate_base.pl > /tmp/base.ldif
  2. [root@mhxy162 openldap]# grep ldapuser /etc/passwd > /tmp/netuser.txt
  3. [root@mhxy162 openldap]# grep ldapuser /etc/group > /tmp/netgr.txt
  4. [root@mhxy162 openldap]# /usr/share/migrationtools/migrate_passwd.pl /tmp/netuser.txt /tmp/user.ldif
  5. [root@mhxy162 openldap]# /usr/share/migrationtools/migrate_group.pl /tmp/netgr.txt /tmp/group.ldif
  6. [root@mhxy162 openldap]#
  7. [root@mhxy162 openldap]#
  8. [root@mhxy162 etc]#  ldapadd -x -w123456 -D "cn=Manager,dc=mhxy162.cn,dc=cn" -f /tmp/base.ldif
    adding new entry "dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Hosts,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Rpc,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Services,dc=mhxy162.cn,dc=cn"
    adding new entry "nisMapName=netgroup.byuser,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Mounts,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Networks,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=People,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Group,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Netgroup,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Protocols,dc=mhxy162.cn,dc=cn"
    adding new entry "ou=Aliases,dc=mhxy162.cn,dc=cn"
    adding new entry "nisMapName=netgroup.byhost,dc=mhxy162.cn,dc=cn"
    [root@mhxy162 etc]#  ldapadd -x -w123456 -D "cn=Manager,dc=mhxy162.cn,dc=cn" -f /tmp/user.ldif
    adding new entry "uid=ldapuser1,ou=People,dc=mhxy162.cn,dc=cn"
    adding new entry "uid=ldapuser2,ou=People,dc=mhxy162.cn,dc=cn"
    adding new entry "uid=ldapuser3,ou=People,dc=mhxy162.cn,dc=cn"
    adding new entry "uid=ldapuser4,ou=People,dc=mhxy162.cn,dc=cn"
    adding new entry "uid=ldapuser5,ou=People,dc=mhxy162.cn,dc=cn"
    [root@mhxy162 etc]# 
    [root@mhxy162 etc]#  ldapadd -x -w123456 -D "cn=Manager,dc=mhxy162.cn,dc=cn" -f /tmp/group.ldif
    adding new entry "cn=ldapuser1,ou=Group,dc=mhxy162.cn,dc=cn"
    adding new entry "cn=ldapuser2,ou=Group,dc=mhxy162.cn,dc=cn"
    adding new entry "cn=ldapuser3,ou=Group,dc=mhxy162.cn,dc=cn"
    adding new entry "cn=ldapuser4,ou=Group,dc=mhxy162.cn,dc=cn"
    adding new entry "cn=ldapuser5,ou=Group,dc=mhxy162.cn,dc=cn"
    [root@mhxy162 etc]# 
    [root@mhxy162 openldap]# service slapd restart
  9. Stopping slapd: [ OK ]
  10. Starting slapd: [ OK ]
  11. [root@mhxy162 etc]# ldapsearch  -x -b "dc=mhxy162.cn,dc=cn"
    # extended LDIF
    #
    # LDAPv3
    # base <dc=mhxy162.cn,dc=cn> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    中间省略其他行
  12. # ldapuser1, Group, mhxy162.cn.cn
    dn: cn=ldapuser1,ou=Group,dc=mhxy162.cn,dc=cn
    objectClass: posixGroup
    objectClass: top
    cn: ldapuser1
    userPassword:: e2NyeXB0fXg=
    gidNumber: 2001

    # ldapuser2, Group, mhxy162.cn.cn
    dn: cn=ldapuser2,ou=Group,dc=mhxy162.cn,dc=cn
    objectClass: posixGroup
    objectClass: top
    cn: ldapuser2
    userPassword:: e2NyeXB0fXg=
    gidNumber: 2002

    [root@mhxy162 etc]#

5、 在客户端client安装服务
5.1、配置authconfig服务

点击(此处)折叠或打开

  1. [root@mhxy164 ~]# yum install -y authconfig-gtk nss-pam-ldapd    openldap-clients
  2. [root@mhxy164 ~]# authconfig-gtk

点击(此处)折叠或打开

  1. [root@mhxy164 ~]# authconfig-tui    # 第一张跳过,第二张修改TLS 为不启用,确定


5.2、查看是否可以获得用户

点击(此处)折叠或打开

  1. [root@mhxy164 ~]# /etc/init.d/nslcd restart
  2. Stopping nslcd: [ OK ]
  3. Starting nslcd: [ OK ]
  4. [root@mhxy164 ~]# getent passwd | grep ldapuser
  5. ldapuser1:x:2001:2001:ldapuser1:/ldaphome/ldapuser1:/bin/bash
  6. ldapuser2:x:2002:2002:ldapuser2:/ldaphome/ldapuser2:/bin/bash
  7. ldapuser3:x:2003:2003:ldapuser3:/ldaphome/ldapuser3:/bin/bash
  8. ldapuser4:x:2004:2004:ldapuser4:/ldaphome/ldapuser4:/bin/bash
  9. ldapuser5:x:2005:2005:ldapuser5:/ldaphome/ldapuser5:/bin/bash
  10. [root@mhxy164 ~]#
  11. [root@mhxy164 ~]# su ldapuser1
    bash-4.1$                       #目前还没有家目录

6、开始服务端server共享
点击( 此处 )折叠或打开

  1. [root@mhxy162 openldap]# yum -y install rpcbind
  2. [root@mhxy162 openldap]# echo "/ldaphome/ *(rw)" > /etc/exports
  3. [root@mhxy162 openldap]# service rpcbind restart;service nfs restart
    Stopping rpcbind:                                          [  OK  ]
    Starting rpcbind:                                          [  OK  ]
    Shutting down NFS daemon:                                  [  OK  ]
    Shutting down NFS mountd:                                  [  OK  ]
    Shutting down NFS quotas:                                  [  OK  ]
    Shutting down NFS services:                                [  OK  ]
    Shutting down RPC idmapd:                                  [  OK  ]
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]
    [root@mhxy162 openldap]# 
    [root@mhxy162 openldap]# 
    [root@mhxy162 openldap]# showmount -e  192.168.137.162
    Export list for 192.168.137.162:
    /ldaphome *
    [root@mhxy162 openldap]#

7、客户端配置nfs  可以正常是家目录,并在服务端验证

点击(此处)折叠或打开

  1. [root@mhxy164 ~]# yum install nfs* -y
  2. [root@mhxy164 ~]# vim /etc/auto.master
  3. 增加以下内容
  4. /ldaphome /etc/auto.misc
  5. [root@mhxy164 ~]#  vim /etc/auto.misc
  6. 末尾增加以下内容
    *       mhxy162.cn:/ldaphome/&
  7. [root@mhxy164 ~]# service autofs restart;service nfs restart
    Stopping automount:                                        [  OK  ]
    Starting automount:                                        [  OK  ]
    Shutting down NFS daemon:                                  [FAILED]
    Shutting down NFS mountd:                                  [FAILED]
    Shutting down NFS quotas:                                  [FAILED]
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]
    [root@mhxy164 ~]# su - ldapuser1
    [ldapuser1@mhxy164 ~]$ touch 11.html
    [ldapuser1@mhxy164 ~]$ ll
    total 0
    -rw-rw-r-- 1 ldapuser1 ldapuser1 0 Jul 14 17:19 11.html
    [ldapuser1@mhxy164 ~]$
  8. 在服务端验证
  9. [root@mhxy162 openldap]# ll /ldaphome/ldapuser1/
    total 0
    -rw-rw-r-- 1 ldapuser1 ldapuser1 0 Jul 14 17:19 11.html
    [root@mhxy162 openldap]#

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27039319/viewspace-2122104/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27039319/viewspace-2122104/

基于LDAP集中系统用户认证系统相关推荐

  1. LDAP服务器ca系统,基于LDAP的统一身份认证系统与CA认证的集成.pdf

    基于LDAP的统一身份认证系统与CA认证的集成 , 第 33 卷 第 8 期 宜春学院学报 Vol. 33 No. 8 2011 年 8 月 Journal of Yichun College Aug ...

  2. LINUX下基于LDAP集中系统用户认证系统

    为什么80%的码农都做不了架构师?>>>    环境: ldap node1:192.168.100.151 ldap node2:192.168.100.152 client ip ...

  3. linux认证授权系统,linux系统用户认证与授权管理.pptx

    Linux系统用户认证与授权管理;什么是用户认证/权限PAM认证机制Kerberos认证协议LDAP目录访问协议;出于系统安全考虑,Linux提供的安全机制主要有:身份标识与鉴别.文件访问控制.特权管 ...

  4. Django默认用户认证系统和用户模型类

    Django默认用户认证系统和用户模型类 1.Django默认用户认证系统 Django自带用户认证系统 Django认证系统位置 Django认证系统同时处理认证和授权 Django认证系统包含的内 ...

  5. Django(part48)--用户认证系统

    学习笔记,仅供参考 文章目录 用户认证系统 User模型类 auth基本模型操作 创建用户 删除用户 修改密码 检查密码是否正确 用户认证系统 Django自带一个用户认证系统,它处理用户账号.组.权 ...

  6. Laravel核心代码学习--用户认证系统的实现细节

    用户认证系统的实现细节 上一节我们介绍了Laravel Auth系统的基础知识,说了他的核心组件都有哪些构成,这一节我们会专注Laravel Auth系统的实现细节,主要关注Auth也就是AuthMa ...

  7. Laravel核心解读--用户认证系统的实现细节

    用户认证系统的实现细节 上一节我们介绍来Laravel Auth系统的基础知识,说了他的核心组件都有哪些构成,这一节我们会专注Laravel Auth系统的实现细节,主要关注Auth也就是AuthMa ...

  8. 基于VNTchain实现的学历认证系统

    基于vnt-chain实现的学历认证系统 VNTchain安装和测试 环境 问题及解决办法 vnt相关的库的安装问题 问题描述 原因分析 解决方案 部署合约时余额不足问题 问题描述 原因分析& ...

  9. Laravel核心代码学习--用户认证系统(基础介绍)

    用户认证系统(基础介绍) 使用过Laravel的开发者都知道,Laravel自带了一个认证系统来提供基本的用户注册.登录.认证.找回密码,如果Auth系统里提供的基础功能不满足需求还可以很方便的在这些 ...

最新文章

  1. 科研|Science回应中国燃料电池研究“造假”:发函重点关注,之前撤稿率100%
  2. jQuery常用的方法
  3. tf.placeholder函数的用法
  4. 简述TCP/IP四层体系结构及每层作用
  5. readonly 与 const 区别
  6. 运维之我的docker-Dockerfile构建镜像详情
  7. 零基础入门神经网络:从原理、主要类型到行业应用
  8. 【面试刷题复习】更新中 2021.8.30
  9. 调用新浪微博显示用户信息
  10. java 静态存储区_Java中的堆内存、栈内存、静态存储区
  11. 编码器正反转识别方法
  12. WindowsBuilder安装使用
  13. 超详细的Redis实战笔记
  14. 联想t450进入bios设置按哪个键_联想台式机怎么进入bios|联想台式电脑按什么键进bios设置...
  15. 2012年财富世界500强排行榜
  16. 鸿蒙系统 新闻,首款鸿蒙系统终端新闻 华为正式发布鸿蒙系统
  17. Freeswitch的mod_av模块优化
  18. 电脑生成siri语音_给电脑里装个Siri!海尔智能语音系统体验
  19. 电脑不能安装linux,解决部分电脑不能安装Linux问题
  20. 拉伯证券|机构看好中国经济 人民币资产吸引力持续增强

热门文章

  1. c语言编程数码管显示文字,c语言编程数码管的显示
  2. 喝茶让你降三高之“桑玉茶”
  3. 视频框架 Vitamio 使用教程+部分心得(一)准备
  4. idea不能通过快捷键复制文件,能通过右键复制
  5. 【关于德育和道德方面】
  6. 官宣 | 移动互联网+智能运营体系搭建=你家有金矿啊!
  7. Solrj demo
  8. squashfs─sfs镜像文件制作方法简要介绍
  9. 【JAVA 开发小问题】 | String操作合集
  10. 9985: 卡片游戏