无网安装OpenLDAP

news2024/11/17 12:47:39

一、服务器操作系统

CentsOS8.2

二、软件获取

2.1、OpenLDAP

官网下载OpenLDAP
在这里插入图片描述

2.2、BDB

berkeley-db-5.1.29 (OpenLDAP当前与6.x版本不兼容,READEME中明确写出兼容4.44.8或5.05.1):

BerkeleyDB下载

2.3、LDAP Administrtor

LDAP Administrtor是LDAP远程连接管理工具
ldapadmin 2015.2:

64-bit下载地址:http://softerra-downloads.com/ldapadmin/ldapadmin-4.13.16704.0-x64-eng.msi

三、准备

  1. 关闭selinux;
  2. 打开防火墙tcp 389 / 636端口。

tcp 389 是openldap 明文传输端口,tcp 636是ssl加密传输的端口。
centos7默认自带firewalld服务,可以停用之后安装iptables。

四.安装OpenLDAP

1、依赖包

# 涉及libtool-ltdl与libtool-ltdl-devel,如不安装,在编译时报错:configure: error: could not locate libtool ltdl.h
#服务器联网时直接执行以下命令下载
yum install *ltdl* -y

服务器未联网时需要自己找到依赖下载
清华大学CentOS依赖下载:https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/

在这里插入图片描述
将上述rpm包上传至linux服务器指定文件夹

#在指定文件夹执行
rpm -ivh *.rpm

#如果出错执行一下
rpm -Uvh *.rpm

#如果仍然不行的话,执行
rpm --nodeps -ivh *.rpm

2、安装BDB

#必须在解压包的build_unix目录中编译安装,否则会报错

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# tar -zxvf db-5.1.29.tar.gz

[root@localhost src]# cd db-5.1.29/build_unix/

[root@localhost build_unix]# ../dist/configure --prefix=/usr/local/berkeleydb-5.1.29

[root@localhost build_unix]# make

[root@localhost build_unix]# make install

3、更新lib库

#保证在后面编译openldap时能找到lib和include下的库

[root@localhost build_unix]# cd /usr/local/src/

[root@localhost src]# echo "/usr/local/berkeleydb-5.1.29/lib/" > /etc/ld.so.conf

[root@localhost src]# ldconfig -v

4、安装OpenLDAP

#编译选项可以通过./configure --help查看;

#其中make test一步时间很长,大概需要半个小时左右;

#如果未设置CPPFLAGS,configure过程可能会提示configure: error: BDB/HDB: BerkeleyDB not available 或 configure: error: BerkeleyDB version incompatible with BDB/HDB backends

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# tar -zxvf openldap-2.4.44.tgz

[root@localhost src]# cd openldap-2.4.44

[root@localhost openldap-2.4.44]# ./configure --prefix=/usr/local/openldap-2.4.44 --enable-syslog --enable-modules --enable-debug --with-tls CPPFLAGS=-I/usr/local/berkeleydb-5.1.29/include/ LDFLAGS=-L/usr/local/berkeleydb-5.1.29/lib/

[root@localhost openldap-2.4.44]# make depend

[root@localhost openldap-2.4.44]# make

[root@localhost openldap-2.4.44]# make test

[root@localhost openldap-2.4.44]# make install

出现下图证明make test成功
在这里插入图片描述
5. 设置可执行命令

#对openldap客户端(bin)与服务器端(sbin)相关执行档添加软链接,也可以通过增加环境变量的方式设置

[root@localhost openldap-2.4.44]# cd /usr/local/openldap-2.4.44

[root@localhost openldap-2.4.44]# ln -s /usr/local/openldap-2.4.44/bin/* /usr/local/bin/

[root@localhost openldap-2.4.44]# ln -s /usr/local/openldap-2.4.44/sbin/* /usr/local/sbin/

五.简单配置

1、安装完成的openldap-2.4.44目录结构

openldap安装完成后相关目录承载的功能如下:

bin/ --客户端工具如ldapadd、ldapsearch

etc/ --包含主配置文件slapd.conf、schema、DB_CONFIG等

include/

lib/

libexec/ --服务端启动工具slapd

sbin/ --服务端工具如slappasswd

share/

var/ --bdb数据、log存放目录

在这里插入图片描述2. 配置rootdn密码(optional)
在这里插入图片描述

#设置rootdn密码;

#这样rootdn密码为密文方式,复制输出密文到主配置文件rootdn对应的位置即可,如果不想麻烦,可以忽略此步,在主配置文件中使用明文即可。

[root@localhost ~]# cd /usr/local/openldap-2.4.44/

[root@localhost openldap-2.4.44]# slappasswd

New password:

Re-enter new password:

{SSHA}K9+WK/t1e0V0K6pUMOyTsaTwkDBNEDiP
[root@localhost openldap-2.4.44]# cd /usr/local/openldap-2.4.44/etc/openldap/

[root@localhost openldap]# vim slapd.conf

#以下修改紫红色字体是未做修改的部分,红色字体是有修改部分,蓝色字体表示新增部分

#schema默认只有core.schema,各级需要添加,这里将同配置文件一个目录的schema目录中有的schema文件都加到配置文件中;
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/collective.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/corba.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/cosine.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/duaconf.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/dyngroup.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/inetorgperson.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/java.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/misc.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/nis.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/openldap.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/pmi.schema
include 	/usr/local/openldap-2.4.44/etc/openldap/schema/ppolicy.schema

pidfile        /usr/local/openldap-2.4.44/var/run/slapd.pid

argsfile    /usr/local/openldap-2.4.44/var/run/slapd.args

#新增日志文件级别与路径,需要在编译时--enable-debug,否则日志文件输出,不影响调试模式;

loglevel    256

logfile    /usr/local/openldap-2.4.44/var/slapd.log

#这里使用mdb做后端数据库,也可修改为"bdb"参数,在OpenLDAP 官方文档" 11.4. LMDB"章节中有介绍mdb是推荐使用的后端数据库;

database    mdb

#使用mdb做后端数据库时,根据官方文档中说明需要设置一个空间值," In addition to the usual parameters that a minimal configuration requires, the mdb backend requires a maximum size to be set. This should be the largest that the database is ever anticipated to grow (in bytes). The filesystem must also provide enough free space to accommodate this size.";如果使用bdb做后端数据库,需要将此项参数注释;

maxsize        1073741824

#修改域名及管理员账户名;

suffix        "dc=sys,dc=com"

rootdn        "cn=admin,dc=sys,dc=com"

#使用密文密码,即前面使用slappasswd生成的密文;

rootpw        {SSHA}K9+WK/t1e0V0K6pUMOyTsaTwkDBNEDiP

#openldap数据目录,采用mdb时,在相应目录生成" data.mdb"与" lock.mdb"文件;采用bdb时,在相应目录生成" dn2id.bdb"与" id2entry.bdb",及多个" __db.00*"文件。

directory    /usr/local/openldap-2.4.44/var/openldap-data

index    objectClass    eq

4、 初始化OpenLADP(optional)

#如果采用mdb做后端数据库,此步可忽略,DB_CONFIG是 bdb/hdb数据库使用的;

#与主配置文件中的配置有关,主配置文件确定使用bdb与数据存放路径。

[root@localhost openldap]# cd /usr/local/openldap-2.4.44/var/openldap-data/

[root@localhost openldap-data]# cp DB_CONFIG.example DB_CONFIG

5、启动OpenLADP

#直接在后台工作;

#非root用户不能监听端口1~1024,如果是非root用户,有可能需要重新定义服务端口

[root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd

#在前端工作,输出debug信息

[root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd -d 256

6、验证

[root@localhost ~]# ldapsearch -x -b '' -s base'(objectclass=*)'

#或者[root@localhost ~]# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

#或者使用netstat -tunlp | grep 389,ps -ef | grep slapd,ps aux | grep slapd等也可。

如图示,说明openldap已经启动运行成功:

在这里插入图片描述

六.简单使用(示例)

1、创建1个用户
编辑ldif文件

vim test.ldif
dn: dc=sys,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Organization
dc: sys
ldapadd -x -D "cn=admin,dc=sys,dc=com" -W -f test.ldif

验证:

ldapsearch -x -b 'dc=sys,dc=com' '(objectClass=*)'

在这里插入图片描述

2、创建一个部门

编辑ldif文件

vim test2.ldif
dn: ou=it,dc=sys,dc=com
objectClass: organizationalUnit
ou: it
ldapadd -x -D "cn=admin,dc=sys,dc=com" -W -f test2.ldif

验证

ldapsearch -x -b 'dc=sys,dc=com' '(objectClass=*)'

七、LDAPSoft Ldap Browser 6.10工具连接LDAP服务器

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/963050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于改进莱维飞行和混沌映射的粒子群优化BP神经网络分类研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

VScode SSH无法免密登录

配置方法 引用高赞贴:点击 debug方法 连不上需要找到问题原因,看ssh的 log Linux服务器:2222是我们指定的端口,可以是1234等 sudo /usr/sbin/sshd -d -p 2222windows这边:端口号要一致 ssh -vvv ubuntusername192…

Windows NUMA编程实践 – 处理器组、组亲和性、处理器亲和性及版本变化

Windows在设计之初没有考虑过对大数量的多CPU和NUMA架构的设备的支持,大部分关于CPU的设计按照64个为上限来设计。核心数越来越多的多核处理器的进入市场使得微软不得不做较大的改动来进行支持,因此Windows 的进程、线程和NUMA API在各个版本中行为不一样…

NoSQL技术——Redis

简单介绍 Redis是当下最流行的NoSQL数据库。在Redis中,数据的存储格式是以键值对的方式进行存储的。在键值对的存储形式中,值除了是常见的字符串,也可以是类似于Json对象的形式,或者是List,Map等数组格式,…

NVIDIA CUDA Win10安装步骤

前言 windows10 版本安装 CUDA ,首先需要下载两个安装包 CUDA toolkit(toolkit就是指工具包)cuDNN 1. 安装前准备 在安装CUDA之前,需要完成以下准备工作: 确认你的显卡已经正确安装,在设备管理器中可以看…

大模型重塑区域人才培养,飞桨(重庆)人工智能教育创新中心正式启动

2023年8月22日,重庆市高校人工智能产教融合院长研讨会暨飞桨(重庆)人工智能教育创新中心启动仪式在重庆大学成功召开。会上,由百度飞桨、重庆大学组织重庆市二十一所高校共建的飞桨(重庆)人工智能教育创新中…

5.(Python数模)固定费用问题

Python解决固定费用问题 具体文章参考博文 问题描述 源代码 import pulp # 导入 pulp 库# 主程序 def main():# 固定费用问题(Fixed cost problem)print("固定费用问题(Fixed cost problem)")# 问题建模:"""决策变量:y…

stable diffusion实践操作-原理

本文专门开一节SD原理相关的内容,在看之前,可以同步关注: stable diffusion实践操作 正文 1 原理

linux定时删除服务器日志

不说废话。直接进入操作流程 linux 定时任务是用的crontab 查看 crontab是否启动 service crond statusdead 死的 启动crontab service crond start 再次查看状态 running 运转的 查看 crontab cat /etc/crontab 查看 crontab任务 crontab -l 编辑 crontab任务 crontab …

ebay测评,物理环境与IP环境:解决平台风控问题的关键

近期eBay平台出现了大量风控问题,导致许多买家账号受到影响。实际上,这主要是由于环境搭建方面存在主要问题。时至2023年,许多人的技术方案仍停留在几年前,要么使用一键新机工具配合国外IP,要么使用指纹浏览器配合国外…

SpringCloudAlibaba Gateway(三)-整合Sentinel功能路由维度、API维度进行流控

Gateway整合Sentinel ​ 前面使用过Sentinel组件对服务提供者、服务消费者进行流控、限流等操作。除此之外,Sentinel还支持对Gateway、Zuul等主流网关进行限流。 ​ 自sentinel1.6.0版开始,Sentinel提供了Gateway的适配模块,能针对路由(rou…

SingletonSystem 单例管理系统

SingletonSystem 单例管理系统 单例模式是项目中最为常见的设计模式之一,但是写法都不够优雅不方便查找和管理,下面介绍一种使用反射实现的单例管理架构,需要基于之前介绍过的AssemblyManager 程序集管理器 1.AssemblyManager 每次加载程序…

Kubernetes技术--k8s核心技术 Secret

1.概述 Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。Secret可以以 Volume 或者环境变量的方式使用。 作用 加密数据存储在/etc中,使得pod容器以挂载volume方式进行访问。在进行的数据存储中是以base64加密的方式…

Gromacs模拟体系构建----进阶版

Gromacs是目前广泛使用的分子模拟软件,其在生物、材料等领域的模拟表现出较为突出的优势。之前,本公众号介绍过一系列体系的模拟以及gromacs的使用办法和教程。本次,将为大家介绍一种进阶版的模型构建方法。 在之前的介绍中,我们…

Windows修改电脑DNS

访问浏览器出现无法访问此页面,找不到DNS地址,则可以通过如下方式修改DNS 按下windows键R键(两个键一起按) 出现下面窗口 输入control按回车键(Enter键)就会出现下面的窗口 DNS可以填下面这些: 114.114.114.114 和 114.114.115.115 阿里DNS&a…

Virtualenvwrapper 的安装教程

Virtualenvwrapper Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做: 将所有虚拟环境整合在一个目录下管理(新增,删除,复制)虚拟环境快速切换虚拟环境 安装方法 Li…

Java String类(2)

String方法 字符串拆分 可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串 相关方法如下: 方法功能String[ ] split(String regex)//以regex分割将字符串根据regex全部拆分String[ ] split(String regex, int limit)将字符串以指定的格式,拆…

浅谈为什么磁盘慢会导致Linux负载飙升

先说原因结论 在Linux系统上,load average这个指标基本失去了作用,因为你不知道它代表什么意思,当看到load average很高的时候,你不知道是runnable进程太多还是uninterruptible sleep进程太多,也就无法判断是CPU不够用…

bazel高效使用和调优

Bazel 为了正确性和高性能,做了很多优秀的设计,那么我们如何正确的使用这些能力,让我们的构建性能“起飞”呢, 我们将从本地研发和 CI pipeline 两种场景进行分析。 本地研发 本地研发通常采用默认的 Bazel 配置即可&#xff0c…

C# Solidworks二次开发:创建距离配合以及移动组件API详解

今天要讲的文章是关于如何创建距离配合和移动组件的API详解。 (1)创建配合API,CreateMate() 这个API的解释是根据指定的特性数据对象来创建配合,也就可以理解为输入什么样的特征对象就可以创建出什么配合,这个API的输…