基于LDAP集中系统用户认证系统

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 [=]] [-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 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 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
基于LDAP集中系统用户认证系统_第1张图片

点击(此处)折叠或打开

  1. [root@mhxy164 ~]# authconfig-tui    # 第一张跳过,第二张修改TLS 为不启用,确定
基于LDAP集中系统用户认证系统_第2张图片 基于LDAP集中系统用户认证系统_第3张图片
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集中系统用户认证系统)