基于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系统里提供的基础功能不满足需求还可以很方便的在这些 ...
最新文章
- spell_picture二次升级版
- 二十、“安化辞骚千万卒,康吾故土祭吾躯”(2021.6.14)
- java调用sap接口_(二)通过JAVA调用SAP接口 (增加一二级参数)
- POJ3348 Cows【凸包+多边形求面积】
- 软件加入使用时间_有了抢口罩软件,电商也进行了升级,我们又有了新软件
- 从DataTable导出Excel,并下载,删除Excel进程。
- css检测,CSS检测工具 CSS Lint简介
- JDK官方文档(包含所有版本)
- Microsoft SQL Server 2008 (RTM) 升级到 Microsoft SQL Server 2008 R2
- 觅风易语言完整教程(全集)完整高清版
- Linux 设置PS1变量颜色
- jersey restful 测试_Jersey 开发RESTful(七)Jersey快速入门
- 计算机图形学---纹理及纹理隐射
- 基于iLog3的实时日志实现
- 搭建论坛discuz
- CSS隐藏浏览器滚动条
- Rancher Labs获2000万美元B轮融资, CEO 梁胜出任有容云联席CTO
- sg函数 hdu 1404 Digital Deletions
- [数据库] 一文读懂Mysql数据库索引实现原理
- 统计| 自由度(degree of freedom)
热门文章
- Server-U配置
- 【raise JSONDecodeError(“Extra data“, s, end)】
- 修改agps服务器,agps设置 slp服务器
- 电子相册视频制作工具:photo2movie for Mac
- 常见打印问题解决方案【合集】
- 新年礼物:给大家送 AirPods Pro!
- Intel Quartus Prime 安装激活 IP License大全 3339377509@qq.com
- 阿空实训日记——永别牢笼计划第三天
- [转]VBA代码调用浏览文件夹对话框的几种方法
- printf函数一些不太为人熟知的格式定义参数