基于LDAP集中系统用户认证系统
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服务,中间会安装相关的依赖包
点击( 此处 )折叠或打开
- [root@mhxy162 ~]# yum -y install openladp*
- Installed:
- 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
- Dependency Installed:
- 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
- Updated:
- openldap.x86_64 0:2.4.40-12.el6
- Dependency Updated:
- 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
- cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.2
- Complete!
2、Ldap的工作目录和配置
点击(此处)折叠或打开
- [root@mhxy162 openldap]# pwd
- /etc/openldap #通过yum安装后 openldap的工作目录
- [root@mhxy162 openldap]# ll
- total 28
- 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
- drwx------ 3 ldap ldap 4096 Jul 14 10:49 slapd.d #我们需要移除slapd.d目录,目的是需要加载slapd.conf文件,默认情况下是不存在
- [root@mhxy162 openldap]#
- [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 修改生产的模板文件
点击(此处)折叠或打开
- 110 #######################################################################
- 111 # database definitions
- 112 #######################################################################
- 113
- 114 database bdb
- 115 suffix "dc=mhxy162.cn,dc=cn" #修改dc
- 116 checkpoint 1024 15
- 117 rootdn "cn=Manager,dc=mhxy162.cn,dc=cn" #修改dc
2.2 生产根密文
点击( 此处 )折叠或打开
- [root@mhxy162 openldap]# slappasswd
- New password: #123456
- Re-enter new password:
- {SSHA}aM00OztrRkKx5FcbWNGtQYKlr/RAkCoA
- [root@mhxy162 openldap]#
2.3 继续修改slapd.conf 配置文件,加入2.2生成的密码,保存退出
点击(此处)折叠或打开
- # Cleartext passwords, especially for the rootdn, should
- # be avoided. See slappasswd(8) and slapd.conf(5) for details.
- # Use of strong authentication encouraged.
- # rootpw secret
- # rootpw {crypt}ijFYNcSNctBYg
- rootpw {SSHA}aM00OztrRkKx5FcbWNGtQYKlr/RAkCoA
2.4 测试配置文件正常性
点击( 此处 )折叠或打开
- root@mhxy162 openldap]# slaptest --help
- slaptest: invalid option -- '-'
- usage: slaptest [-v] [-d debuglevel] [-f configfile] [-F configdir] [-o <name>[=<value>]] [-n databasenumber] [-u] [-Q]
- [root@mhxy162 openldap]# slaptest -u -f slapd.conf
- config file testing succeeded
- [root@mhxy162 openldap]#
3、 复制模板数据库,启动slapd服务,可以看到没有任何账户
点击( 此处 )折叠或打开
- [root@mhxy162 openldap]# cp /usr/share/openldap-servers/DB_CONFIG.example /etc/openldap/DB_CONFIG
- [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
点击( 此处 )折叠或打开
- [root@mhxy162 openldap]# yum -y install migrationtools
- [root@mhxy162 openldap]# mkdir /ldaphome
- [root@mhxy162 openldap]#
- [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
- [root@mhxy162 openldap]#
4.2 修改/usr/share/migrationtools/migrate_common.ph 在61行指定域mhxy162.cn
点击(此处)折叠或打开
- # Default DNS domain
- $DEFAULT_MAIL_DOMAIN = "mhxy162.cn";
- # Default base
- $DEFAULT_BASE = "dc=mhxy162.cn,dc=cn"
4.3 生成base DN文件,并让baseDN加入ldap
点击(此处)折叠或打开
- [root@mhxy162 openldap]# /usr/share/migrationtools/migrate_base.pl > /tmp/base.ldif
- [root@mhxy162 openldap]# grep ldapuser /etc/passwd > /tmp/netuser.txt
- [root@mhxy162 openldap]# grep ldapuser /etc/group > /tmp/netgr.txt
- [root@mhxy162 openldap]# /usr/share/migrationtools/migrate_passwd.pl /tmp/netuser.txt /tmp/user.ldif
- [root@mhxy162 openldap]# /usr/share/migrationtools/migrate_group.pl /tmp/netgr.txt /tmp/group.ldif
- [root@mhxy162 openldap]#
- [root@mhxy162 openldap]#
- [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 - Stopping slapd: [ OK ]
- Starting slapd: [ OK ]
- [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
#
中间省略其他行 - # 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服务
点击(此处)折叠或打开
- [root@mhxy164 ~]# yum install -y authconfig-gtk nss-pam-ldapd openldap-clients
- [root@mhxy164 ~]# authconfig-gtk
点击(此处)折叠或打开
- [root@mhxy164 ~]# authconfig-tui # 第一张跳过,第二张修改TLS 为不启用,确定
5.2、查看是否可以获得用户
点击(此处)折叠或打开
- [root@mhxy164 ~]# /etc/init.d/nslcd restart
- Stopping nslcd: [ OK ]
- Starting nslcd: [ OK ]
- [root@mhxy164 ~]# getent passwd | grep ldapuser
- ldapuser1:x:2001:2001:ldapuser1:/ldaphome/ldapuser1:/bin/bash
- ldapuser2:x:2002:2002:ldapuser2:/ldaphome/ldapuser2:/bin/bash
- ldapuser3:x:2003:2003:ldapuser3:/ldaphome/ldapuser3:/bin/bash
- ldapuser4:x:2004:2004:ldapuser4:/ldaphome/ldapuser4:/bin/bash
- ldapuser5:x:2005:2005:ldapuser5:/ldaphome/ldapuser5:/bin/bash
- [root@mhxy164 ~]#
- [root@mhxy164 ~]# su ldapuser1
bash-4.1$ #目前还没有家目录
6、开始服务端server共享
点击( 此处 )折叠或打开
- [root@mhxy162 openldap]# yum -y install rpcbind
- [root@mhxy162 openldap]# echo "/ldaphome/ *(rw)" > /etc/exports
- [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 可以正常是家目录,并在服务端验证
点击(此处)折叠或打开
- [root@mhxy164 ~]# yum install nfs* -y
- [root@mhxy164 ~]# vim /etc/auto.master
- 增加以下内容
- /ldaphome /etc/auto.misc
- [root@mhxy164 ~]# vim /etc/auto.misc
- 末尾增加以下内容
* mhxy162.cn:/ldaphome/& - [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 ~]$ - 在服务端验证
- [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集中系统用户认证系统相关推荐
- LDAP服务器ca系统,基于LDAP的统一身份认证系统与CA认证的集成.pdf
基于LDAP的统一身份认证系统与CA认证的集成 , 第 33 卷 第 8 期 宜春学院学报 Vol. 33 No. 8 2011 年 8 月 Journal of Yichun College Aug ...
- LINUX下基于LDAP集中系统用户认证系统
为什么80%的码农都做不了架构师?>>> 环境: ldap node1:192.168.100.151 ldap node2:192.168.100.152 client ip ...
- linux认证授权系统,linux系统用户认证与授权管理.pptx
Linux系统用户认证与授权管理;什么是用户认证/权限PAM认证机制Kerberos认证协议LDAP目录访问协议;出于系统安全考虑,Linux提供的安全机制主要有:身份标识与鉴别.文件访问控制.特权管 ...
- Django默认用户认证系统和用户模型类
Django默认用户认证系统和用户模型类 1.Django默认用户认证系统 Django自带用户认证系统 Django认证系统位置 Django认证系统同时处理认证和授权 Django认证系统包含的内 ...
- Django(part48)--用户认证系统
学习笔记,仅供参考 文章目录 用户认证系统 User模型类 auth基本模型操作 创建用户 删除用户 修改密码 检查密码是否正确 用户认证系统 Django自带一个用户认证系统,它处理用户账号.组.权 ...
- Laravel核心代码学习--用户认证系统的实现细节
用户认证系统的实现细节 上一节我们介绍了Laravel Auth系统的基础知识,说了他的核心组件都有哪些构成,这一节我们会专注Laravel Auth系统的实现细节,主要关注Auth也就是AuthMa ...
- Laravel核心解读--用户认证系统的实现细节
用户认证系统的实现细节 上一节我们介绍来Laravel Auth系统的基础知识,说了他的核心组件都有哪些构成,这一节我们会专注Laravel Auth系统的实现细节,主要关注Auth也就是AuthMa ...
- 基于VNTchain实现的学历认证系统
基于vnt-chain实现的学历认证系统 VNTchain安装和测试 环境 问题及解决办法 vnt相关的库的安装问题 问题描述 原因分析 解决方案 部署合约时余额不足问题 问题描述 原因分析& ...
- Laravel核心代码学习--用户认证系统(基础介绍)
用户认证系统(基础介绍) 使用过Laravel的开发者都知道,Laravel自带了一个认证系统来提供基本的用户注册.登录.认证.找回密码,如果Auth系统里提供的基础功能不满足需求还可以很方便的在这些 ...
最新文章
- 科研|Science回应中国燃料电池研究“造假”:发函重点关注,之前撤稿率100%
- jQuery常用的方法
- tf.placeholder函数的用法
- 简述TCP/IP四层体系结构及每层作用
- readonly 与 const 区别
- 运维之我的docker-Dockerfile构建镜像详情
- 零基础入门神经网络:从原理、主要类型到行业应用
- 【面试刷题复习】更新中 2021.8.30
- 调用新浪微博显示用户信息
- java 静态存储区_Java中的堆内存、栈内存、静态存储区
- 编码器正反转识别方法
- WindowsBuilder安装使用
- 超详细的Redis实战笔记
- 联想t450进入bios设置按哪个键_联想台式机怎么进入bios|联想台式电脑按什么键进bios设置...
- 2012年财富世界500强排行榜
- 鸿蒙系统 新闻,首款鸿蒙系统终端新闻 华为正式发布鸿蒙系统
- Freeswitch的mod_av模块优化
- 电脑生成siri语音_给电脑里装个Siri!海尔智能语音系统体验
- 电脑不能安装linux,解决部分电脑不能安装Linux问题
- 拉伯证券|机构看好中国经济 人民币资产吸引力持续增强