LUNIX LDAP的配置信息

2023-11-30 10:58
文章标签 配置 信息 ldap lunix

本文主要是介绍LUNIX LDAP的配置信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    • LDAP
    • LDAP常用关键字列表
    • LDAP支持的目录操作
    • Berkeley DB安装
    • OpenLDAP安装步骤
    • OpenLDAP配置步骤
    • 启动OpenLDAP服务器
    • 检查slapd进程是否已经正常启动
    • 数据导入


LDAP

LDAP(Lightweight Directory Access Protocol)代表轻型目录访问协议,是用来访问目录服务(如基于X.500的目录服务)的轻型协议,它运行在TCP/IP或其他面向连接的传输服务之上。LDAP目录基于客户/服务器方式实现。
LDAP的信息模型是建立在“条目”(entries)的基础上。一个条目是一些属性的集合,并且具有一个全局唯一的“可区分名称”DN,一个条目可以通过DN来引用。每一个条目的属性具有一个类型和一个或者多个值。类型通常是容易记忆的名称,比如“cn”是通用名称(common name) ,或者“mail”是电子邮件地址。条目的值的语法取决于属性类型。比如,cn属性可能具有一个值“Babs Jensen” 。一个mail属性可能包含“babs@example.com” 。一个jpegphoto属性可能包含一幅JPEG(二进制)格式的图片。 各个元素之间的关系如图一所示
这里写图片描述

LDAP常用关键字列表

LDAP通过属性objectClass来控制哪一个属性必须出现或允许出现在一个条目中,它的值决定了该条目必须遵守的模式规则。


dc
Domain Component
域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com


uid
User Id
用户ID,如“tom”


ou
Organization Unit
组织单位,类似于Linux文件系统中的子目录,它是一个容器对象,组织单位可以包含其他各种对象(包括其他组织单元),如“market”


cn
Common Name
公共名称,如“Thomas Johansson”


sn
Surname
姓,如“Johansson”


dn
Distinguished Name
惟一辨别名,类似于Linux文件系统中的绝对路径,每个对象都有一个惟一的名称,如“uid= tom,ou=market,dc=example,dc=com”,在一个目录树中DN总是惟一的


rdn
Relative dn
相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=tom”或“cn= Thomas Johansson”


c
Country
国家,如“CN”或“US”等。


o
Organization
组织名,如“Example, Inc.”

LDAP支持的目录操作

包括:查询目录、更新目录、增加条目、删除条目、改变条目名称,搜索信息,最常用的LDAP操作是搜索信息操作。LDAP搜索操作允许搜索目录的一部分,查找匹配某个搜索过滤器规则的条目,搜索在 dc=example,dc=com 条目之中或者之下的整个目录子树,查找一个名字叫做 Barbara Jensen 的个人,并且获取每一个找到的条目的电子邮件地址

Berkeley DB安装

  • Berkeley DB安装
    因为OpenLDAP将数据存放在数据库中,因此安装部署OpenLDAP之前首先要安装Berkeley DB。该数据库可以在Oracle的官方网站上下载到,
    下载地址为:http://www.oracle.com/technetwork/database/berkeleydb/downloads/index-082944.html
    安装数据库步骤:
    1) # tar zxvf db-5.2.36.tar.gz 或者 # unzip db-5.2.36.NC.zip
    2) # cd db-5.2.36/build_unix
    3) # ../dist/configure //默认安装在/usr/local目录下可以通过../dist/configure –prefix=你的路径
    4) # make //开始安装
    5) # make install
  • Berkeley DB配置
    安装OpenLDAP过程中,在./configure时,遇到错误checking if Berkeley DB version supported by BDB/HDB backends… no configure: error: BerkeleyDB version incompatible with BDB/HDB backends,这是因为没有安装Berkeley DB或是安装了Berkeley DB,但是系统找不到他的头文件和lib的库,这时需要添加一些环境变量,步骤如下:
    1) # export CPPFLAGS=”-I/usr/local/BerkeleyDB.5.2/include”
    2) # export LDFLAGS=”-L/usr/local/lib -L/usr/local/BerkeleyDB.5.2/lib -R/usr/local/BerkeleyDB.5.2/lib”
    3) # export LD_LIBRARY_PATH=”/usr/local/BerkeleyDB.5.2/lib”
    4) # env LDFLAGS=-L/usr/local/lib -L/usr/local/BerkeleyDB.5.2/lib -R/usr/local/BerkeleyDB.5.2/lib
    HOSTNAME=mylinux
    TERM=vt100
    SHELL=/bin/bash
    HISTSIZE=1000
    CPPFLAGS=-I/usr/local/BerkeleyDB.4.8/include
    SSH_CLIENT=::ffff:192.168.0.10 3336 22
    OLDPWD=/apps/openldap
    SSH_TTY=/dev/pts/2
    USER=root
    LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.8/lib

OpenLDAP安装步骤

安装之前首先要下载OpenLDAP,下载地址http://www.openldap.org/software/download/
1) [root@localhost tmp]# tar zxvf openldap-stable-20120311.tgz
2) [root@localhost tmp]# cd openldap-2.4.30
3) [root@localhost openldap-2.4.30]# ./configure –prefix=/usr/local/openldap –enable-bdb
注:–prefix用于更改安装目录,默认安装在/usr/local下
Making servers/slapd/backends.c
Add config …
Add ldif …
Add monitor …
Add bdb …
Add hdb …
Add relay …
Making servers/slapd/overlays/statover.c
Add seqmod …
Add syncprov …
Please run “make depend” to build dependencies

看到这些信息时,说明已经configure完毕。
4) [root@localhost openldap-2.4.30]# make depend
Making depend in /apps/openldap/openldap-2.4.30
Entering subdirectory include
make[1]: Entering directory /apps/openldap/openldap-2.4.30/include’
Making ldap_config.h
make[1]: Leaving directory
/apps/openldap/openldap-2.4.30/include’
….
Entering subdirectory man5
make[3]: Entering directory /apps/openldap/openldap-2.4.30/doc/man/man5′
make[3]: Nothing to be done for
depend’.
make[3]: Leaving directory /apps/openldap/openldap-2.4.30/doc/man/man5′
Entering subdirectory man8
make[3]: Entering directory
/apps/openldap/openldap-2.4.30/doc/man/man8′
make[3]: Nothing to be done for depend’.
make[3]: Leaving directory
/apps/openldap/openldap-2.4.30/doc/man/man8′
make[2]: Leaving directory /apps/openldap/openldap-2.4.30/doc/man’
make[1]: Leaving directory
/apps/openldap/openldap-2.4.30/doc’
5) [root@localhost openldap-2.4.30]# make
……………………….
done
make[3]: Leaving directory /apps/openldap/openldap-2.4.30/doc/man/man8′
make[2]: Leaving directory
/apps/openldap/openldap-2.4.30/doc/man’
make[1]: Leaving directory `/apps/openldap/openldap-2.4.30/doc’
注:make depend比较快,但是,make可能要花点时间
6) [root@localhost openldap-2.4.30]# make test
该操作查看是否build成功,(整个过程会花上几分钟),如果成功,会显示如下信息:

Test succeeded
./scripts/test000-rootdse completed OK.

Starting test001-slapadd …
running defines.sh
7) [root@localhost openldap-2.4.30]# make install
注:运行make install开始安装,建议以源码安装的软件都放到独立的目录下,不要放在默认的路径下,要不然卸载的时候会很麻烦。安装到一个目录下,只要删除目录就可以卸载了。

OpenLDAP配置步骤

OpenLDAP主配置文件slapd.conf,该配置文件一般保存在安装目录下的etc/openldap/目录下。它的初始内容如下
[root@localhost openldap]# cat slapd.conf

See slapd.conf(5) for details on configuration options.
This file should NOT be world readable.

include /usr/local/etc/openldap/schema/core.schema

Define global ACLs to disable default read access.

Do not enable referrals until AFTER you have a working directory
service AND an understanding of referrals.
referral ldap://root.openldap.org

pidfile /usr/local/var/run/slapd.pid
argsfile /usr/local/var/run/slapd.args

Load dynamic backend modules:
modulepath /usr/local/libexec/openldap
moduleload back_bdb.la
moduleload back_hdb.la
moduleload back_ldap.la

Sample security restrictions
Require integrity protection (prevent hijacking)
Require 112-bit (3DES or better) encryption for updates
Require 63-bit encryption for simple bind
security ssf=1 update_ssf=112 simple_bind=64

Sample access control policy:
Root DSE: allow anyone to read it
Subschema (sub)entry DSE: allow anyone to read it
Other DSEs:
Allow self write access
Allow authenticated users read access
Allow anonymous users to authenticate
Directives needed to implement policy:
access to dn.base=”” by * read
access to dn.base=”cn=Subschema” by * read access to *
by self write
by users read
by anonymous auth

if no access controls are present, the default policy
allows anyone and everyone to read anything but restricts
updates to rootdn. (e.g., “access to * by * read”)

rootdn can always read and write EVERYTHING!

#

BDB database definitions

#

database bdb
suffix “dc=my-domain,dc=com”
rootdn “cn=Manager,dc=my-domain,dc=com” Cleartext passwords, especially for the rootdn, should
be avoid. See slappasswd(8) and slapd.conf(5) for details.
Use of strong authentication encouraged.
rootpw secret
The database directory MUST exist prior to running slapd AND
should only be accessible by the slapd and slap tools.
Mode 700 recommended.
directory /usr/local/var/openldap-data
Indices to maintain
index objectClass eq
1) 设置LDAP使用的Schema
[root@localhost openldap]# vi slapd.conf
找到语句:
include /usr/local/etc/openldap/schema/core.schema
在该语句的后面添加以下语句:
include /usr/local/etc/openldap/schema/corba.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/dyngroup.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/java.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/openldap.schema
2) 设置目录树的后缀
找到语句:
suffix “dc=my-domain,dc=com”
将其改为:
suffix “dc=example,dc=com”
3) 设置LDAP管理员的DN
找到语句:
rootdn “cn=Manager,dc=my-domain,dc=com”
将其改为:
rootdn “cn=root,dc=example,dc=com”
4) 设置LDAP管理员的口令
找到语句:
rootpw secret
将其改为:
rootpw 123456
注:修改密码的时候需要注意rootpw前面不能有空格,以及rootpw与密码之间用TAB键隔开。
5) #设置数据库的存放路径
Indices to maintain
index objectClass eq
注:2,3,4部分可以根据需要进行修改!!!

启动OpenLDAP服务器

启动OpenLDAP服务需要执行以下命令:
/usr/local/libexec/slapd
注:如果没有出错信息,直接返回shell,就说明服务器正常启动了。如果启动不成功,他会提示一些出错信息,多数是slapd.conf配置出错引起的。

检查slapd进程是否已经正常启动

执行命令:# pstree|grep “slapd”
如果出现 |-slapd—{slapd} 则说明slapd进程已经成功启动
测试访问目录的能力:
[root@localhost openldap]# ldapsearch -x -b ” -s base ‘(objectclass=*)’ namingContexts
如果正确配置了服务器,应该看到类似于下面的输出(当然,有不同的 dc):

数据导入

数据导入的方式主要有四种:1. 手工输入;2. .ldif文件格式录入;3. 脚本自动录入;4. 客户端工具录入。
(1) 手工输入
1) 创建DN
[root@localhost ~]# ldapadd -x -D’cn=root,dc=topsec,dc=com’ -W
Enter LDAP Password:
dn:dc=topsec,dc=com
objectclass:top
objectclass:domain
dc:topsec
o:Topsec,Inc 此处回车后按Ctrl+D将数据发送给服务器,并隐式取消与服务器的绑定
adding new entry “dc=topsec,dc=com”
2) 创建OU
[root@localhost ~]# ldapadd -x -D ‘cn=root,dc=topsec,dc=com’ -W
Enter LDAP Password:
dn:ou=headerquarters,dc=topsec,dc=com
ou:headerquarters
objectclass:organizationalUnit 此处表明ou是必需的属性
adding new entry “ou=headerquarters,dc=topsec,dc=com”
3) 建立RDN
[root@localhost ~]# ldapadd -x -D ‘cn=root,dc=topsec,dc=com’ -W
Enter LDAP Password:
dn:cn=Ava Green,ou=test,dc=topsec,dc=com
cn:Ava
sn:Green
objectclass:inetOrgPerson
adding new entry “cn=Ava Green,ou=test,dc=topsec,dc=com”
ldap_add: No such object (32)
matched DN: dc=topsec,dc=com
注:出现此错误的原因是它的父节点还没有创建,需要先创建节点ou=test,dc=topsec,dc=com。
创建过程如下:
[root@localhost ~]# ldapadd -x -D ‘cn=root,dc=topsec,dc=com’ -W
Enter LDAP Password:
dn:ou=test,dc=topsec,dc=com
ou:test
objectclass:organizationalUnit
adding new entry “ou=test,dc=topsec,dc=com”
接下来继续上述过程:
[root@localhost ~]# ldapadd -x -D ‘cn=root,dc=topsec,dc=com’ -W
Enter LDAP Password:
dn:cn=Ava Green,ou=test,dc=topsec,dc=com
cn:Ava
sn:Green
objectclass:inetOrgPerson
adding new entry “cn=Ava Green,ou=test,dc=topsec,dc=com”
成功~(≧▽≦)/~啦啦啦!!!!
注:上面概述的过程使用三个基本的 LDAP 操作:绑定操作、更新操作和隐式取消绑定操作。
(2) 文件输入
将数据插入 LDAP 目录的第二种方法是使用 LDIF 文件。LDIF 文件只是包含想要插入的以特定语法编排的数据的纯文本文档。上面我们已经熟悉了语法:dn: 后跟树中存储项的位置,然后跟一个或多个 RDN 项(包含数据的类型/值对),后跟必需的对象类。要创建 LDIF,使用纯文本编辑器,然后输入想要添加到目录中的数据。
以下是示例文件example.ldif文件的内容:
dn:dc=topsec,dc=com
objectclass:top
objectclass:domain
dc:topsec
o:Topsec,Inc

dn:ou=managers,dc=topsec,dc=com
ou:managers
objectclass:organizationalUnit

dn:cn=Kevin,ou=managers,dc=topsec,dc=com
cn:Kevin
sn:Black
objectclass:person

dn:ou=employees,dc=topsec,dc=com
ou:employees
objectclass:organizationalUnit

dn:cn=Mary,ou=employees,dc=topsec,dc=com
cn:Mary
sn:Brown
objectclass:person
[root@localhost ~]# ldapadd -x -D ‘cn=root,dc=topsec,dc=com’ -W -f example.ldif
Enter LDAP Password:
adding new entry “ou=managers,dc=topsec,dc=com”

adding new entry “cn=Kevin,ou=managers,dc=topsec,dc=com”

adding new entry “ou=employees,dc=topsec,dc=com”

adding new entry “cn=Mary,ou=employees,dc=topsec,dc=com”
此方法的优点:
1) 在将文件导入数据库之前,可以检查拼写和语法;
2) 可以创建带有许多项的 LDIF 文件,然后用一个操作将它们添加到目录中;
3) 如果导入失败,只要打开 LDIF 文件,查找错误,并尝试重新导入即可;
4) LDIF 文件是一种开放标准,几乎可以将它们导入到任何目录服务器中。
此方法的缺点:
1) 该过程仍需要较大的工作量——必须输入LDIF 中的所有项,并遵循正确的语法;
2) 当 LDAP 服务器遇到导入文件中的错误时,它并不总是能方便地处理。虽然您可能会得到一条“syntax error(语法错误)”消息,但它不会给出,在一个相当大的 LDIF 文件中,错误在哪里。
(3) 脚本自动录入
可以使用通常用 Perl 或 PHP 编写的脚本,它们的目的是接收数据并将它“自动”放到 LDAP 目录中。
这种方法存在的问题。首先,也是最重要的,我亲自尝试过的任何脚本都有许多可恶的错误,在某些最坏的情形下,会在导入期间毁坏您的数据或者破坏目录树本身。其次,使用脚本导入数据假设数据已经以某种形式存在。当分别从 /etc/passwd 和 /etc/groups 导入用户密码和组信息时,这当然很好,但您的联系人信息可能不是通常可识别的格式。毕竟,本教程的主要目的是使联系人信息不受专用格式的支配。
如果将联系信息数据导出成纯文本、用逗号分隔的文件,并找到能够将数据导入 LDAP 目录的脚本,会怎么样呢?如果可以找到这种脚本,并且如果它运行得如它所宣称的那样,则您会得到所有的功能。请记住,电子邮件客户机对“用逗号分隔的文件”有其自己精确的解释。要在每行结束的地方添加回车吗?导出程序如何处理嵌入字段中的空格?某些人通常窃用 LDAP 导入脚本来将他们的数据从应用程序 A(已经以格式 X 导出)传送到 LDAP 目录。如果他们的应用程序和导出格式与您的相合,则尝试它。不过要确保先备份您的目录数据库,这样,如果导入失败,就可以返回到“已知的好”状态。
(4) 客户端工具录入
ldap客户端的工具很多,linux平台有一个基于php编写的phpldapadmin、windows平台也有一个比较好的工具ldapadmin。下图是LDAP数据库管理工具——ADS(Apache Directory Studio)
它的下载地址是http://directory.apache.org/studio/downloads.html。

这篇关于LUNIX LDAP的配置信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/436758

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10