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. spell_picture二次升级版
  2. 二十、“安化辞骚千万卒,康吾故土祭吾躯”(2021.6.14)
  3. java调用sap接口_(二)通过JAVA调用SAP接口 (增加一二级参数)
  4. POJ3348 Cows【凸包+多边形求面积】
  5. 软件加入使用时间_有了抢口罩软件,电商也进行了升级,我们又有了新软件
  6. 从DataTable导出Excel,并下载,删除Excel进程。
  7. css检测,CSS检测工具 CSS Lint简介
  8. JDK官方文档(包含所有版本)
  9. Microsoft SQL Server 2008 (RTM) 升级到 Microsoft SQL Server 2008 R2
  10. 觅风易语言完整教程(全集)完整高清版
  11. Linux 设置PS1变量颜色
  12. jersey restful 测试_Jersey 开发RESTful(七)Jersey快速入门
  13. 计算机图形学---纹理及纹理隐射
  14. 基于iLog3的实时日志实现
  15. 搭建论坛discuz
  16. CSS隐藏浏览器滚动条
  17. Rancher Labs获2000万美元B轮融资, CEO 梁胜出任有容云联席CTO
  18. sg函数 hdu 1404 Digital Deletions
  19. [数据库] 一文读懂Mysql数据库索引实现原理
  20. 统计| 自由度(degree of freedom)

热门文章

  1. Server-U配置
  2. 【raise JSONDecodeError(“Extra data“, s, end)】
  3. 修改agps服务器,agps设置 slp服务器
  4. 电子相册视频制作工具:photo2movie for Mac
  5. 常见打印问题解决方案【合集】
  6. 新年礼物:给大家送 AirPods Pro!
  7. Intel Quartus Prime 安装激活 IP License大全 3339377509@qq.com
  8. 阿空实训日记——永别牢笼计划第三天
  9. [转]VBA代码调用浏览文件夹对话框的几种方法
  10. printf函数一些不太为人熟知的格式定义参数