ldap服务器OpenLDAP安装使用
OpenLDAP 是 LDAP 协议的一个开源实现。LDAP 服务器本质上是一个为只读访问而优化的非关系型数据库。它主要用做地址簿查询(如 email 客户端)或对各种服务访问做后台认证以及用户数据权限管控。(例如,访问 Samba 时,LDAP 可以起到域控制器的作用;或者 Linux 系统认证 时代替 /etc/passwd 的作用。)
一、安装,环境:CentOS release 6.6 (Final)
使用yum安装:yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
| 软件包 | 软件包说明 |
| openldap | 服务端和客户端必须用的库文件 |
| openldap-clients | 在LDAP服务端使用,用户增删改查的命令行环境 |
| openldap-servers | 用于启动服务和配置,包括单独的LDAP后台守护进程 |
| openldap-servers-sql | 支持SQL模块 |
| compat-openldap | openldap兼容性库环境 |
查看安装情况:rpm -qa | grep openldap
安装成功后会产生两类命令行:客户端命令、服务端命令;ldap开始的命令都是客户端命令,slapd开始的命令都是openldap服务器命令
注意: 以 ldap 开头的命令(如: ldapsearch)是客户端工具,以 slap 开头的命令(如: slapcat slapcat)是服务端工具。
查看OpenLDAP版本,使用如下命令:slapd -VV
安装完会创建用户ldap和用户组ldap,这个用户是不能登录的/sbin/nologin。所以有关操作需要到root用户下执行,使用命令sudo su切换到root用户下

二、配置OpenLDAP
注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件。
设置OpenLDAP的管理员密码,下图加密后的字段保存下,等会我们在配置文件中会使用到。
slappasswd -s 123456

修改olcDatabase={2}hdb.ldif文件:
修改olcDatabase={2}hdb.ldif文件,对于该文件增加一行 olcRootPW: {SSHA}MFjmDOKFAVigfQ2Iok+GuVFUEZtE69ym,然后修改域信息:
olcSuffix: dc=test,dc=com
olcRootDN: cn=root,dc=test,dc=com
注意:其中cn=root中的root表示OpenLDAP管理员的用户名,而olcRootPW表示OpenLDAP管理员加密后的密码,明文密码是test。
实际修改如下:进入root账号进行修改
vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=test,dc=com
olcRootDN: cn=root,dc=test,dc=com
olcRootPW: {SSHA}MFjmDOKFAVigfQ2Iok+GuVFUEZtE69ym
修改olcDatabase={1}monitor.ldif文件
修改olcDatabase={1}monitor.ldif文件,如下:
vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base=”gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth” read by dn.base=”cn=root,dc=test,dc=com” read by * none
注意:该修改中的dn.base是修改OpenLDAP的管理员的相关信息的。
验证OpenLDAP的基本配置,使用如下命令,有些错误,可以不用管,因为提示信息config file testing succeeded表示基本配置是OK的
slaptest -u

配置OpenLDAP数据库
OpenLDAP默认使用的数据库是BerkeleyDB,现在来开始配置OpenLDAP数据库,使用如下命令:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
注意:/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。
其他配置:
复制配置文件模板,到系统配置目录下: cp -a /usr/share/openldap-servers/sldap.conf.obsolete /etc/openldap/slapd.conf
删除旧的动态配置文件 rm -rf /etc/openldap/sladp.d/*
复制数据库配置文件模板,到系统配置目录下 cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
修改数据库配置文件所在目录属主 chown -R ldap.ldap /var/lib/ldap
生成加密密钥
虚拟机console执行命令:slappasswd
提示New password:输入test
提示Re-enter new password,输入test
将生成的内容:{SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r,复制保存下来
修改主配置文件,修改内容如下:
有关openldap的配置详解,参见博客《LDAP-openldap配置文件详解.md》
database config
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * none
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=root,dc=test,dc=com" read
by * none
database bdb
suffix "dc=test,dc=com"
checkpoint
rootdn "cn=root,dc=test,dc=com"
rootpw {SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r
修改相关目录属性
虚拟机console执行命令:chown -R ldap.ldap /etc/openldap;chown -R ldap.ldap /var/lib/ldap
删除旧的动态配置文件
虚拟机console执行命令:rm -rf /etc/openldap/slapd.d/*
启动服务并设置开机启动
虚拟机console执行命令:service slapd start && chkconfilg slapd on ,此时若有报错可忽略。
查看是否启动服务:service slapd status;netstat -tupln|grep slapd
动态配置文件
openldap的动态配置文件位于/etc/openldap/slapd.d/下,每次修改了主配置文件/etc/openldap/slapd.conf之后,都需要重新生成动态配置文件,即:
删除动态配置文件:rm -rf /etc/openldap/slapd.d/*
重新生成动态配置文件:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
修改动态配置目录属性:chown -R ldap.ldap /etc/openldap/slapd.d/
修改配置文件/etc/openldap/ldap.conf
修改内容如下:
BASE dc=test,dc=com
URI ldap://ip # 大网ip方便远程访问
TLS_CACERTDIR /etc/openldap/certs
三、启动服务:service slapd start | stop | status | restart
如图可见,对于错误信息并不影响启动

检查启动情况:默认端口是389

使用命令:ldapsearch -x -LLL查看服务启动情况,如图所示,说明OK

OpenLDAP默认使用的数据库是BerkeleyDB,yum安装的时候,自动完成了数据库的安装
四、在ldap服务器里添加用户和用户组等
首先手动编辑或使用工具migrationtools生成LDIF格式文件,注意文件格式,每个冒号后面都有一个空格,每行结尾不能有空格,多组信息直接使用行分割
firstelement.ldif:
dn: cn=root,dc=test,dc=com
cn: user1
sn: user1
objectclass: person
dn: cn=root,dc=test,dc=com
cn: Manager
sn: Manager
objectclass: person
ldapadd -D "cn=root,dc=test,dc=com" -W -f ~/firstelement.ldif
如图,因为已经成功添加过,所以报已经存在的错误

通过如下命令把ldif文件里的内容导入ldap服务器中
ldapadd -x -D "cn=root,dc=test,dc=com' -c -W -f firstelement.ldif ldapadd -x -D "cn=root,dc=test,dc=com" -c -W -f passwd.ldif
提示输入密码时,输入test,回车
openldap默认使用的是BerkeleyDB数据库,yum安装的时候貌似已经自带安装,所以无需再安装
五、使用客户端工具使用ldap服务:mac下使用ldap admin tool,免费版和收费版都会经常无故的死掉,杀死重启就好。而且发现这个工具在添加用户和用户组等的时候,会经常执行失败,这时候只能使用命令行导入ldif的方式添加用户等。
ldapv3协议比较稳定,中文支持也比较好。但是不知道为什么,每次重启ldap admin tool后,又恢复到了ldapv2,搞得我每次都要设置一次

密码:test


参考:
1、https://www.ilanni.com/?p=13775
2、https://www.cnblogs.com/liwanliangblog/p/9193916.html
3、https://wiki.archlinux.org/index.php/OpenLDAP_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
4、http://www.brennan.id.au/20-Shared_Address_Book_LDAP.html
5、http://xstarcd.github.io/wiki/sysadmin/OpenLDAPconfig.html
6、https://czmmiao.iteye.com/blog/1561703
ldap服务器OpenLDAP安装使用的更多相关文章
- LDAP简介及LDAP服务器的安装与配置
一.LDAP简介 全称:Lightweight Directory Access Protocol,目录服务是一种特殊的数据库系统,其专门针对读取. LDAP目录中的信息是按照树型结构组织,具体信息存 ...
- 【JMeter4.0学习(二)】之搭建openLDAP在windows8.1上的安装配置以及JMeter对LDAP服务器的性能测试脚本开发
目录: 概述 安装测试环境 安装过程 配置启动 配置搭建OpenLDAP 给数据库添加数据 测试查询刚刚插入的数据 客户端介绍 JMeter建立一个扩展LDAP服务器的性能测试脚本开发 附:LDAP学 ...
- centos7安装Jenkins更改默认端口并配置Ldap服务器进行用户认证
应用环境:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作. Jenkins官网:https://jenkins.io/ 测试环境:一台Centos ...
- centos 6.5 配置LDAP服务器+客户端!
各种度娘!各种歌哥!网上教程参差不齐,历时1天,终于完成,不敢独享,遂,总结分享之,有问题可以留言,知无不言...开始吧 Note: 本次配置的服务器环境是<redhat enterprise ...
- OpenLDAP 安装及配置 笔记
首先下载 OpenLdap(Ldap服务器) 和 LdapAdmin(客户端) 两个软件 OpenLDAPforWindows_2.4.39.part1.rar OpenLDAPforWindows_ ...
- Windows 下搭建LDAP服务器
五一闲来没事,加上项目正在进行UAT.抽空研究了一下LDAP相关知识.随手做一个记录. 为了方便阅读还是先介绍一下什么是LDAP? 前言.Lightweight Directory Access Pr ...
- 《LDAP服务器的配置与客户端的测试》RHEL6——第一篇 运维工程师必考
ldap这种原始的服务器搭建起来比较复杂,同时它也是CE必考的(客户端的搭建). 服务器端的配置: 1.安装openldap-servers软件包 2.查看ldap模板文件的存放位置: 3.拷贝lda ...
- LDAP服务器的概念和原理简单介绍
LDAP服务器的概念和原理简单介绍 1. 目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不 ...
- CentOS配置LDAP服务器
环境:centos 5.8 安装: 1.yum安装oepnldap.openldap-servers.openldap-clients.openldap-devel [root@hao-linux ~ ...
随机推荐
- HBase的基础知识
1.HBase(NoSQL:不是关系型数据库)的逻辑数据模型 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC S ...
- api设计 - php 接口 token 数据加密
最近在用php写app的接口,有一些疑问 首先关于token(令牌)token是用户登录的时候生成的 用户token在服务端保存入库 客户端则缓存在本地 大部分接口都要求客户端发送token 和服务端 ...
- 使用Merge存储引擎实现MySQL分表
一.使用场景 Merge表有点类似于视图.使用Merge存储引擎实现MySQL分表,这种方法比较适合那些没有事先考虑分表,随着数据的增多,已经出现了数据查询慢的情况. 这个时候如果要把已有的大数据量表 ...
- 《Android源码设计模式》--工厂方法模式
No1: 对于一个应用程序来说,其真正的入口是在ActivityThread类中,ActivityThread中含有我们熟悉的main方法.ActivityThread是一个final类,不能被继承. ...
- ZOJ 4010 Neighboring Characters(ZOJ Monthly, March 2018 Problem G,字符串匹配)
题目链接 ZOJ Monthly, March 2018 Problem G 题意 给定一个字符串.现在求一个下标范围$[0, n - 1]$的$01$序列$f$.$f[x] = 1$表示存在一种 ...
- python之路【第十二篇】: MYSQL
一. 概述 Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- WS快捷键
打开文件: Ctrl + Shift + N 打开类: Ctrl + N 打开函数: Ctrl + F12 “超级”打开: 双击 shift,可以 search anywhere. 复制整行: Ctr ...
- 2018-2019-2 20162318《网络对抗技术》Exp3 免杀原理与实践
一.实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion),加壳工具),使用shellcode编程 2.通过组合应用各种技术实现恶意代码免杀(如果成 ...
- 在windows安装配置Git开发环境
开始配置Git的开发环境.首先从google code下载最新的windows的git安装包msysgit,当时我下载的是Git-1.7.4-preview20110204.exe,然后就开始安装了 ...
- 51nod 1515 明辨是非 启发式合并
1515 明辨是非 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1515 Description 给n组操 ...