如何搭建免费网站,wordpress建站准备,外卖网站建设,wordpress 简约模板快速部署ldap服务 作者#xff1a;尹正杰 版权声明#xff1a;原创作品#xff0c;谢绝转载#xff01;否则将追究法律责任。 一.LDAP概述 1.什么是目录服务(1)目录是一类为了浏览和搜索数据二十几的特殊的数据库#xff0c;例如#xff1a;最知名的的微软公司的活动目录… 快速部署ldap服务 作者尹正杰 版权声明原创作品谢绝转载否则将追究法律责任。 一.LDAP概述 1.什么是目录服务(1)目录是一类为了浏览和搜索数据二十几的特殊的数据库例如最知名的的微软公司的活动目录active directory就是目录数据库的一种。目录服务时按照梳妆形式存储信息的目录包含基于属性的描述性信息并且支持高级的过滤功能。(2)一般来说目录不支持大多数事务性数据库所支持的高吞吐两盒复杂的更新操作。目录进行更新操作可以说是要么全部要么都不的原子操作目录服务适合的业务应用在于提供大量的查询和搜索操作。(3)为了保证目录数据的可用性和卡可靠性她们在确保提供快速的查询和搜索操作的同事还提供了主从服务器同步目录数据信息的能力这相当于传统的Mysql数据库的主从同步一样可以最大限度的确保基于目录业务的持续可用性。(4)广义的目录服务概念可以有多重不同的方式来提供目录服务不同的目录所允许存储的信息是不同的在信息如何被引用查询更新以及防止未经守群的访问等问题上不同的目录所允许存储的信息是不同的在信息如何被引用查询更新以及防止未经授权的访问等问题上不同的目录的处理方式也有诸多的不同。一些目录服务时为本地的只提供受限的服务比如单机上的finger服务。另一些服务时大范围的global提供广阔得多的服务比如面向整个因特网。大范围的服务通常是分布式的这也就意味着数据是分布在多台机器上的这些计数器一起来提供目录服务。典型的大范围服务定义一个统一的名称空间namespace来给出一个相同的数据试图data view而不管你相对于数据所在的位置。DNS是一个典型的大范围分布式目录服务的例子。2.什么是ldap(1)LDAP是Lightweight Directory Access Protocol (轻量级目录访问协议)的缩写。正如它的名字所表明的那样它是一个轻量级的目录访问协议特质基于X.500的目录访问协议的简化版本。LADP运行在TCP/IP或者其他的面向连接的传输服务至上。LADP完整的技术规范由RFC2251 “The Lightweight Directory Access ProtocolV3”和其他几个在RFC3377中定义的文档组成。我们不需要研究的那么深因为我们又不会对它进行二次开发我们运维只要能了解到它的目录结构以及它的用法就OK了因此我们可以用两句话总结以上内容(2)LADP是轻量目录访问协议Lightweight Directory Access Protocal的缩写(3)LADP标准实际上是在X.500标准基础 上产生的一个简化版本3.什么是X.500(1)X.500由ITU-T和ISO定义它实际上不是一个协议而是有一个协议族组成包括了从X.501到X.525等一系列非常完整的目录服务协议。X。500主要具备以下特征a.分散维护运行X.500的每一个站点只负责人本地目录部分可以立即更新和维护操作b.搜索性能X.500具有强大的搜素功能支持用户建立的任意复杂查询。c.单一全局命名空间类似于DNS,X.500为用户提供单一同性命名空间Single Homogeneous Namespace。与DNS相比X。500目录中定义了信息结构运行本地扩展。d.结构化信息结构X.500目录中定义了信息结构运行本地扩展。e.基于标准的目录服务由于X.500可以被用于建立一个基于标准的目录因此在某种意义上请求应用目录信息电子邮件资源自动分配器特定目录工具的应用程序就能访问重要且有简直的信息。(2)从技术上来说LADP是一个到X.500目录服务的目录访问协议X.500是一个OSI目录协议。最初LADP客户单通过网关gateway访问X.500目录服务。在客户和网关之间运行LADP和X.500目录访问协议Directory Access ProtocolDAP而X.500目录访问协议时位于网关和X.500之间的。DAP是一个重量级的协议在整个OSI协议栈上进行操作而且需要占用大量的计算资源。LADP被设计的在TCP/IP层上操作以小得多的代价实现了大多数DAP的功能。(3)虽然LADP仍旧可以通过网关访问X.500目录服务器但是现在通常都是在X.500服务器上直接实现LADP。(4)单独的LADP守护程序sladp可以被看做是一个轻量级的X.500目录服务器。也就是说他没有实现X.500完整的DAP协议。作为一个轻量级的目录服务器sladp实现的仅仅是X.500模型的一个子集。我们可以理解是LADP是X.500的一个简单的实现。4.LADP与X.500的相同点LADP是X.500标准中的目录访问协议DAP的一个子集可用于建立X.500目录。因此这两个目录技术标准有着许多的共同之处a.在平台上都实现了一个通用的平台结构提供了一个操作系统和应用程序需要的信息服务类型可以被许多平台和应用程序接收和实现b.在信息模型上都是用了项对象类属性等概念的模式来描述信息c.在命名空间上方面都是用了目录信息结构和层次命名模型d.在功能模型上都使用了相似的操作命令来管理目录信息e.在认证框架方面都可以实现用户名称和密码或者基于安全加密方式的认真机制f.早灵活性上他们的目录规模都可大可小达到全球目录树小到只有一台目录服务器g.在分布性方面目录信息都可以分布在多个目录服务器中这些服务器可以由各个组织管理既保证了目录信息总体结构的一致性又满足了分级管理的需要。5.LADP与X.500的差别a.LADP基于Internet协议X.500基于OSI开放式系统互联协议建立在应用层上的X.500目录访问协议DAP需要在OSI会话层和表示层上进行许多的建立连接和包处理的任务需要特殊的网络软件实现对网络的访问LADP则直接运行在更简单和更通用的TCP/IP或其他可靠的传输层协议上避免了在OSI会话和表示层的开销是链接的建立和包的处理更简单更快对于互联网和企业网应用更理性。b.LADP协议更为简单LADP继承了X.500最好的特性同时去掉了它的复杂性LADP通过使用查找操作实现列表方式和读操作另一方面省去了X.500中神猫的和很少使用的服务控制和安全特性只保留常用的特性简化了LADP的实现。c.LADP通过引用机制实现分布式访问X.500 DSA通过服务器之间的链操作实现分布式的访问这样查询的压力九中与服务器端而LADP通过客户端API实现分布式操作对于应用透明平衡了负载d.LADP实现具有低费用已配置和一管理的特点经过性能测试LADP比X.500㕛更少的响应时间LADP提供了满足应用程序对目录服务所需求的特性。6.LADP中的常用名词缩写及含义(1)dc Domain Componet 域名的部分其格式是讲完整的域名分成几个部分比如域名为“caiq.org”,变成dccaiq,dcorg(2)uid User Id 用户ID,如“yinzhengjie”(3)ou Organization Unit 组织单位类似于Linux文件系统中的子目录它是一个容器对象组织单位可以包含其他各种对象包括其他组织单元如“中国检验检疫科学研究院”(4)cn Common Name 公共名称如“尹正杰”(5)sn Surname 姓如“尹”(6)dn Distinguished Name 唯一辨别名类似于Linux文件系统中的绝对路径每个对象都有一个文艺的名称如“uidyinzhengjie,ou中国检科院,dccaiq,dcorg”(7)rdn Relative dn 相对辨别名类似于文件系统中的相对路径它是与目录树结构无关的部分如“uidyinzhengjie”或“cn尹正杰”(8)c Country 国家如“CN”或“US”等(9)o Organization 组织名如“中华人民共和国质检总局”7.LADP目录服务的特点LDAP目录服务具有下列特点a.LDAP是一个跨平台的标准的协议近几年来得到了业界广泛的认可b.LADP的结构用树形结构来表示而不是用表格。因此不用SQL语句维护了c.LADP提供了静态数据的快速查询方式但在写数据方面并不擅长d.LADP服务可以使用基于“推或拉的复制信息技术用简单的活基于安全证书的安全认证复制部分或全部数据既保证了数据的安全性又提高了数据的访问效率e.LDAP是一个安全的协议LDAP v3支持SASLSimple Authentication and Securityh Layer,SSLSecure Socket Layer和TLSTransport Layer Security使用认证来确保事物的安全另外LDAP提供了不同层次的访问控制以限制不同用户的访问权限f.LADP支持一类数据存储LADP存储的数据可由是文本资料二进制图片等g.Client/Server模型Server用于存储树Client提供操作目录信息数的工具这些工具可以将数据库的内容以文本格式LDAP数据交换格式LDIF呈现在我们的面前h.LDAP是一种开放Internet标准LADP协议时跨平台的Internt协议它是基于X.500标准的与X.500不同LADY支持TCP/IP即可以分不知部署8.LDAP是怎样工作的LDAP目录服务器是基于客户/服务器模式的。一个或者多个LDAP服务器包含着组成整个目录信息树DIT的数据。客户连接到服务器并且并发一个请求request。然后服务器要么以一个回答answer予以回应要么给出一个指针客户可以通过此指针获取到所需的数据通常该指针是指向另一个LDAP服务器。无论客户连到哪个LDAP服务器它看到的都是同一个目录视图view。这是LDAP这类全局目录服务的一个重要特征。 二.LDAP目录结构 LDAP目录服务时通过目录数据库来存储网络信息来提供目录服务的为了方便用户迅速查找定位信息目录数据库是一目录信息树Directory nformation Tree缩写为DIT为存储方式的树形存储结构目录信息树及其相关概念构成了LDAP协议的信息模型。a.在LADP中目录是按照树形结构组织----目录信息树它是一个主要进行读操作的数据库b.DIT由条目Entry组成条目相当于关系数据库中的表的记录条目是具有分辨名DNDistinguished Name的属性-值对Attribute-value,简称AV的集合。在UNIX文件系统中最顶层是根目录rootLDAP目录通常也用ROOT做根通常称为BaseDN。因为历史X.500的原因,LDAP目录用OUOrganization Unit从逻辑上把数据分开来。Ou也是一种条目容器条目。Ou下即使整整的用户条目。1.LDAP目录结构的相关术语a.什么是DNDNDistinguished Name即分辨名。在LDAP中一个条目的分辨名叫做DNDN是该条目在整个树中的唯一名称标识DN相当于关系数据库表中的关键字Primary Key;它是一个识别属性通常用于检索。b.DN的两种设置基于cn姓名 cn尹正杰,ou中国检科院,dccaiq,dcorg,dccn,最常见的cn是从/etc/group转来的条目基于uidUser IDuidyinzhengjie,ou中国检科院,dccaiq,dcorg,dccn,最常见的uid是/etc/passwd转来的条目c.Base DNLADP目录树的最顶部就是根也就是Base DN。d.LDIF格式LDIF格式是用于LDAP数据导入导出的格式。LDIF是LDAP数据库信息的一种文本格式。2.LADP目录信息模型a.什么样的信息可以存储在目录当中LDAP的信息模型是基于条目的entry。一个条目就是一些具有全局唯一的标识名Distinguished Name,简写做DN的属性的集合。DN用于无二义性的纸袋一个唯一的条目。条目的每一个属性都有一个类型type一个或者多个值value。类型往往是特定字符串的简写比如用“cn”指代“common name”或是mail指代电子邮件地址。值value的语法依赖于类型type。比如类型为cn的属性可能包含值尹正杰。类型为mail的属性可能包含值“yinzhengjiecaiq.gov.com”。类型为jpegPhoto的属性可能包含二进制格式的JPEG图像。、b.信息在目录中是如何组织的在LDAP中条目是按树状的层次结构组织的。传统上这个机构旺旺是代理界限或组织界限的反应。代表国家的条目位与整个目录树的顶层。之下的条目则代表各个州以及国家性的组织。在下面的条目则代表着组织单位个人打印机文件或者你所能想到的其他的东西。 目录是也可以按照因特网域名组织结构因为它允许按照DNS对目录服务进行定时这种命名方式正变得越来越受欢迎。下图是按照域名进行组织的一个LADP目录树相比传统的命名方式更加让用户易于接受。另外LDAP允许你通过使用一种叫做objectClass的特殊属性来控制哪些属性是条目所必须的哪些属性是条目可选的。objectClass属性的值是由条目所必须遵守的方案schema来定义的。c.信息是如何被引用的一个条目是通过它的标识名来引用的。而标识名Relative DistinguishedName 或者RDN是由标识名和它的父条目名连在一起构成的。d.信息是如何被访问的LDAP定义了一个查询和更新目录的操作支持的操作包括从目录中添加和删除条目更改一游的条目更改已有的的名字。然而大多数情况下LDAP是用于搜索目录中的信息的。通过指定搜索过滤器LDAP可以在目录的相关部分搜索想相符的条目。满足过滤条件的每一个条目都能收到请求消息。e.怎样保护信息不受未经授权的访问一些目录服务不提供保护允许信息对任何人可见。LDAP提供了一套机制来对客户进行身份确认或者让客户证明他拥有连接到服务器的身份这无疑为对服务器进行全方位的访问控制铺平了道理从而确保了服务器上所包含信息的安全。LDAP也支持privacy和integrity的安全服务。 三.LDAP的配置模式 LDAP服的结果重要功能如下a.基本的目录查询服务b.目录查询代理服务c.异机复制的数据d.分布式的目录服务1.本地基本的目录查询服务在这种配置模式下你的slapd只为你本地域提供目录服务。他不会以任何方式与别的目录服务器交互。2.带有指针Referrals的本地目录服务即目录查询代理服务类似DNS转发服务器在这种配置模式下你为你的本地域运行了一个LDAP服务器并且将它配置成为当客户的请求超出你的本地域的处理能力的时候能够返回一个指针该指针指向一个具备处理客户请求能力的更高级的服务器地址。你可以自己运行这一服务也可以使用已提供给你的一个。如果你想运行本地目录服务并且参与全局的目录那么运行这种模式。例如openldap作为微软活动目录的代理查询服务。。3.同步复制的目录服务slurpd守护成是用来将主slapd上的改变传播到一个或多个从属的slapd上。 这种配置模式可以在前面的两种配置模式之一和起来使用在前面的两种情况中单独的slapd不能提供足够的可用性和可靠性。4.分布式的目录服务在这种配置模式下本地的服务被分割成多个更小的服务每一个都可能被复制并且通过上级superior或者下级subordinate指针referral粘合起来。 四.LDAP服务的应用领域 LDAP目录服务适用那些需要从不同的地点读取信息但是不需要经常更新的业务信息最为有用。LDAP的应用主要涉及一下几种类型1.信息安全类数字证书管理授权管理单点登录。2.科学计算类DCEDistributed Computing Environment分布式计算环境UDDIUniversal Description,Discovery and Integration,统一描述发现和继承协议。3.网络资源管理类MAIL系统DNS系统网络用户管理电话号码簿。4.电子政务资源管理类内网组织信息服务电子服务目录体系人物基础库法人基础库。我们单位基本上是用来来创建每个员工的财务账号这个账号可以让员工进行财务报销使用。 五.安装LDAP 1.安装openldap [rootnode202.yinzhengjie.org.cn ~]# yum -y install openldap openldap-servers openldap-clients
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* epel: mirrors.tuna.tsinghua.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Resolving Dependencies
-- Running transaction check
--- Package openldap.x86_64 0:2.4.44-20.el7 will be updated
--- Package openldap.x86_64 0:2.4.44-21.el7_6 will be an update
--- Package openldap-clients.x86_64 0:2.4.44-21.el7_6 will be installed
--- Package openldap-servers.x86_64 0:2.4.44-21.el7_6 will be installed
-- Processing Dependency: libltdl.so.7()(64bit) for package: openldap-servers-2.4.44-21.el7_6.x86_64
-- Running transaction check
--- Package libtool-ltdl.x86_64 0:2.4.2-22.el7_3 will be installed
-- Finished Dependency ResolutionDependencies ResolvedPackage Arch Version Repository SizeInstalling:openldap-clients x86_64 2.4.44-21.el7_6 updates 190 kopenldap-servers x86_64 2.4.44-21.el7_6 updates 2.2 M
Updating:openldap x86_64 2.4.44-21.el7_6 updates 356 k
Installing for dependencies:libtool-ltdl x86_64 2.4.2-22.el7_3 base 49 kTransaction SummaryInstall 2 Packages (1 Dependent package)
Upgrade 1 PackageTotal download size: 2.8 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
openldap-servers-2.4.44-21.el7 FAILED
http://mirrors.cloud.aliyuncs.com/centos/7/updates/x86_64/Packages/openldap-servers-2.4.44-21.el7_6.x86_64.rpm: [Errno 14] curl#6 - Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error
Trying other mirror.
(1/4): openldap-clients-2.4.44-21.el7_6.x86_64.rpm | 190 kB 00:00:00
(2/4): libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm | 49 kB 00:00:00
(3/4): openldap-2.4.44-21.el7_6.x86_64.rpm | 356 kB 00:00:00
(4/4): openldap-servers-2.4.44-21.el7_6.x86_64.rpm | 2.2 MB 00:00:01
-------------------------------------------------------------------------------------------------------------------------------------------
Total 1.6 MB/s | 2.8 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionUpdating : openldap-2.4.44-21.el7_6.x86_64 1/5 Installing : libtool-ltdl-2.4.2-22.el7_3.x86_64 2/5 Installing : openldap-servers-2.4.44-21.el7_6.x86_64 3/5 Installing : openldap-clients-2.4.44-21.el7_6.x86_64 4/5 Cleanup : openldap-2.4.44-20.el7.x86_64 5/5 Verifying : openldap-servers-2.4.44-21.el7_6.x86_64 1/5 Verifying : openldap-2.4.44-21.el7_6.x86_64 2/5 Verifying : libtool-ltdl-2.4.2-22.el7_3.x86_64 3/5 Verifying : openldap-clients-2.4.44-21.el7_6.x86_64 4/5 Verifying : openldap-2.4.44-20.el7.x86_64 5/5 Installed:openldap-clients.x86_64 0:2.4.44-21.el7_6 openldap-servers.x86_64 0:2.4.44-21.el7_6 Dependency Installed:libtool-ltdl.x86_64 0:2.4.2-22.el7_3 Updated:openldap.x86_64 0:2.4.44-21.el7_6 Complete!
[rootnode202.yinzhengjie.org.cn ~]# [rootnode202.yinzhengjie.org.cn ~]# yum -y install openldap openldap-servers openldap-clients [rootnode202.yinzhengjie.org.cn ~]# id ldap #安装成功后会生成ldap用户。
uid55(ldap) gid55(ldap) groups55(ldap)
[rootnode202.yinzhengjie.org.cn ~]# 2.拷贝数据库配置文件 [rootnode202.yinzhengjie.org.cn ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# ll -d /var/lib/ldap/DB_CONFIG
-rw-r--r-- 1 ldap ldap 845 Jun 18 01:59 /var/lib/ldap/DB_CONFIG
[rootnode202.yinzhengjie.org.cn ~]# [rootnode202.yinzhengjie.org.cn ~]# cat /var/lib/ldap/DB_CONFIG
# $OpenLDAP$
# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
#
# See the Oracle Berkeley DB documentation
# http://www.oracle.com/technology/documentation/berkeley-db/db/ref/env/db_config.html
# for detail description of DB_CONFIG syntax and semantics.
#
# Hints can also be found in the OpenLDAP Software FAQ
# http://www.openldap.org/faq/index.cgi?file2
# in particular:
# http://www.openldap.org/faq/index.cgi?file1075# Note: most DB_CONFIG settings will take effect only upon rebuilding
# the DB environment.# one 0.25 GB cache
set_cachesize 0 268435456 1# Data Directory
#set_data_dir db# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
#set_lg_dir logs# Note: special DB_CONFIG flags are no longer needed for quick
# slapadd(8) or slapindex(8) access (see their -q option).
[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# [rootnode202.yinzhengjie.org.cn ~]# cat /var/lib/ldap/DB_CONFIG #DB_CONIFG中主要是关于Berkeley DB的相关的一些配置 3.启动OpenLDAP Server [rootnode202.yinzhengjie.org.cn ~]# systemctl start slapd
[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# systemctl enable slapd
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
[rootnode202.yinzhengjie.org.cn ~]# [rootnode202.yinzhengjie.org.cn ~]# systemctl status slapd
● slapd.service - OpenLDAP Server DaemonLoaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)Active: active (running) since Tue 2019-06-18 02:01:32 EDT; 11s agoDocs: man:slapdman:slapd-configman:slapd-hdbman:slapd-mdbfile:///usr/share/doc/openldap-servers/guide.htmlMain PID: 19568 (slapd)CGroup: /system.slice/slapd.service└─19568 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///Jun 18 02:01:31 node202.yinzhengjie.org.cn systemd[1]: Starting OpenLDAP Server Daemon...
Jun 18 02:01:31 node202.yinzhengjie.org.cn runuser[19553]: pam_limits(runuser:session): wrong limit value unlimited for limit t… hard
Jun 18 02:01:31 node202.yinzhengjie.org.cn runuser[19553]: pam_unix(runuser:session): session opened for user ldap by (uid0)
Jun 18 02:01:31 node202.yinzhengjie.org.cn runuser[19553]: pam_unix(runuser:session): session closed for user ldap
Jun 18 02:01:31 node202.yinzhengjie.org.cn slapd[19566]: (#) $OpenLDAP: slapd 2.4.44 (Jan 29 2019 17:42:45) $mockbuildx86-01.bsys.centos.org:/builddir/build/BUILD/openldap-2.../slapd
Jun 18 02:01:32 node202.yinzhengjie.org.cn slapd[19566]: tlsmc_get_pin: INFO: Please note the extracted key file will not be prote...sions.
Jun 18 02:01:32 node202.yinzhengjie.org.cn slapd[19568]: slapd starting
Jun 18 02:01:32 node202.yinzhengjie.org.cn systemd[1]: Started OpenLDAP Server Daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# [rootnode202.yinzhengjie.org.cn ~]# systemctl status slapd #slapd即standard alone ldap daemon该进程默认监听389端口 4.查看监听端口 [rootnode202.yinzhengjie.org.cn ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:389 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 :::389 :::*
[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# 六.设置ldap管理员(root)密码 1.生成一个LDAP管理用户root密码 [rootnode202.yinzhengjie.org.cn ~]# slappasswd #使用改名了配置你的密码他会根据计算给你算出一个字符串。
New password: #我这里输入的密码为yinzhengjie
Re-enter new password:
{SSHA}demsoYhw/y4Rz9Pgbpv6KBBzuVQ1t53J #这个字符串就是根据你输入的密码得到的一会我们会用到他。
[rootnode202.yinzhengjie.org.cn ~]# 2.自定义LDAP配置属性 [rootnode202.yinzhengjie.org.cn ~]# cat passwd.ldif #这里的文件名称随意起但文件后缀最好以 ldif 结尾。
dn: olcDatabase{0}config,cnconfig
changetype: modify
add: olcRootPW
olcRootPW:{SSHA}demsoYhw/y4Rz9Pgbpv6KBBzuVQ1t53J
[rootnode202.yinzhengjie.org.cn ~]# 以上配置文件关键参数说明ldif即LDAP Data Interchange Format是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式注意value后面不能有空格。上面内容中dn即distingush nameolc即Online Configuration表示写入LDAP后不需要重启即可生效changetype: modify表示修改一个entrychangetype的值可以是add,delete, modify等。add: olcRootPW表示对这个entry新增了一个olcRootPW的属性olcRootPW:{SSHA}demsoYhw/y4Rz9Pgbpv6KBBzuVQ1t53J指定了属性值3.初始化LDAP配置 [rootnode202.yinzhengjie.org.cn ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f passwd.ldif #使用ldapadd命令讲我们上一步自定义的文件属性写入LADP中
SASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
modifying entry olcDatabase{0}config,cnconfig[rootnode202.yinzhengjie.org.cn ~]#
[rootnode202.yinzhengjie.org.cn ~]# 4.导入schema [rootnode202.yinzhengjie.org.cn ~]# ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
SASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cncollective,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cncorba,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cncore,cnschema,cnconfig
ldap_add: Other (e.g., implementation specific) error (80)additional info: olcAttributeTypes: Duplicate attributeType: 2.5.4.2SASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cncosine,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnduaconf,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cndyngroup,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cninetorgperson,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnjava,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnmisc,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnnis,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnopenldap,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnpmi,cnschema,cnconfigSASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
adding new entry cnppolicy,cnschema,cnconfig[rootnode202.yinzhengjie.org.cn ~]# [rootnode202.yinzhengjie.org.cn ~]# ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done #schema包含为了支持特殊场景相关的属性可根据选择导入这里先全部导入 七.设定默认域 1.先使用slappasswd生成一个密码 [rootnode202.yinzhengjie.org.cn ~]# slappasswd
New password: #我这里输入的密码为ADMIN
Re-enter new password:
{SSHA}76TjdXHIDRFDRzfyi0t/tsYLmkyY3TPD
[rootnode202.yinzhengjie.org.cn ~]# 2.自定义LDAP配置属性 [rootnode202.yinzhengjie.org.cn ~]# cat domain.ldif
dn: olcDatabase{1}monitor,cnconfig
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.basegidNumber0uidNumber0,cnpeercred,cnexternal,cnauthread by dn.basecnManager,dcyinzhengjie,dcorg,dccn read by * nonedn: olcDatabase{2}hdb,cnconfig
changetype: modify
replace: olcSuffix
olcSuffix: dcyinzhengjie,dcorg,dccndn: olcDatabase{2}hdb,cnconfig
changetype: modify
replace: olcRootDN
olcRootDN: cnManager,dcyinzhengjie,dcorg,dccndn: olcDatabase{2}hdb,cnconfig
changetype: modify
add: olcRootPW
olcRootPW:{SSHA}76TjdXHIDRFDRzfyi0t/tsYLmkyY3TPD #这里需要用上面生成的密码来替换dn: olcDatabase{2}hdb,cnconfig
changetype: modify
add: olcAccess
olcAccess: {0}to attrsuserPassword,shadowLastChange bydncnManager,dcyinzhengjie,dcorg,dccn write by anonymous auth by self write by * none
olcAccess: {1}to dn.base by * read
olcAccess: {2}to * by dncnManager,dcyinzhengjie,dcorg,dccn write by * read
[rootnode202.yinzhengjie.org.cn ~]# olcAccess即access该key用于指定目录的ACL即谁有什么权限可以存取什么olcRootDN设定管理员root用户的distingush name注意替换上面文件内容中cn为具体的域信息olcRootPW用上面新生成的密码替换 3.使用咱们上一步自定义的ldif配置文件写入ldap服务器 [rootnode202.yinzhengjie.org.cn ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber0uidNumber0,cnpeercred,cnexternal,cnauth
SASL SSF: 0
modifying entry olcDatabase{1}monitor,cnconfigmodifying entry olcDatabase{2}hdb,cnconfigmodifying entry olcDatabase{2}hdb,cnconfigmodifying entry olcDatabase{2}hdb,cnconfigmodifying entry olcDatabase{2}hdb,cnconfig[rootnode202.yinzhengjie.org.cn ~]# 八.添加基本目录 1.自定义LDAP配置属性 [rootnode202.yinzhengjie.org.cn ~]# cat basedomain.ldif
dn: dcyinzhengjie,dcorg,dccn
objectClass: top
objectClass: dcObject
objectclass: organization
o: yinzhengjie org cn
dc: yinzhengjiedn: cnManager,dcyinzhengjie,dcorg,dccn
objectClass: organizationalRole
cn: Manager
description: Directory Managerdn: ouPeople,dcyinzhengjie,dcorg,dccn
objectClass: organizationalUnit
ou: Peopledn: ouGroup,dcyinzhengjie,dcorg,dccn
objectClass: organizationalUnit
ou: Group
[rootnode202.yinzhengjie.org.cn ~]# 2.使用咱们上一步自定义的ldif配置文件写入ldap服务器 [rootnode202.yinzhengjie.org.cn ~]# ldapadd -x -D cnManager,dcyinzhengjie,dcorg,dccn -W -f basedomain.ldif
Enter LDAP Password: #密码为ADMIN
adding new entry dcyinzhengjie,dcorg,dccnadding new entry cnManager,dcyinzhengjie,dcorg,dccnadding new entry ouPeople,dcyinzhengjie,dcorg,dccnadding new entry ouGroup,dcyinzhengjie,dcorg,dccn[rootnode202.yinzhengjie.org.cn ~]# 3.测试是否成功 [rootnode202.yinzhengjie.org.cn ~]# ldapsearch -LLL -W -x -D cnManager,dcyinzhengjie,dcorg,dccn -H ldap://localhost -b dcyinzhengjie,dcorg,dccn
Enter LDAP Password: #密码为ADMIN
dn: dcyinzhengjie,dcorg,dccn
objectClass: top
objectClass: dcObject
objectClass: organization
o: yinzhengjie org cn
dc: yinzhengjiedn: cnManager,dcyinzhengjie,dcorg,dccn
objectClass: organizationalRole
cn: Manager
description: Directory Managerdn: ouPeople,dcyinzhengjie,dcorg,dccn
objectClass: organizationalUnit
ou: Peopledn: ouGroup,dcyinzhengjie,dcorg,dccn
objectClass: organizationalUnit
ou: Group[rootnode202.yinzhengjie.org.cn ~]# 九.LDAP基本使用 可以使用ldapadmin作为LDAP的图形管理工具下载地址http://www.ldapadmin.org/download/ldapadmin.html 参考链接https://blog.frognew.com/2017/05/openldap-install-notes.html#ldapadmin。转载于:https://www.cnblogs.com/yinzhengjie/p/11020700.html