OpenLDAP源码安装及配置管理 ceph客户端安装配置访问rbd 把编译好的ko文件加载模块时出错:Error: could not insert module hello_world.ko: Invalid module format 如何安装pkg-config docker文件存放路径, 获取容器启动命令 修炼js 7 es6新特性2 网页三栏布局常用方法 wordpress必须禁用REST API和移除WP-JSON链接的方法 面试官让我用纯css做一个下拉菜单,一分钟搞定!! CSS常用样式(二):绘制双箭头 住建部重申“房子是用来住的”;商务部公布禁塑时间表;在线旅游网站不得大数据杀熟 给大数据杀熟戴上“紧箍咒” RT-Thread推物联网操作系统!300秒启动安防摄像机 如何用一句话激怒程序员! 吉利在青岛成立物联网、卫星技术新公司 统计学和大数据之间有哪些联系 图说:九月开门红 大数据揭示A股九月行情走向 物联网时代下的“芯机遇”,「芯来科技」打造国产RISC-V生态 汇顶科技:指纹芯片巨头半年研发投入增八成,拓展物联网、汽车电子等领域应对风险 新华网|福州:树立物联网产业“马尾坐标” 「行走自贸区」福州:树立物联网产业“马尾坐标” k8s跨namespace访问服务 Mysql关键字和保留字(注意) ALTER command denied to user 'dev'@'192.168.10.xxx' for table 'xx_fanv_fail' oracle授权查询 ffmpeg vsync参数分析 小程序云函数中用group分组查询,只能查询20条,怎么解决? 【MyBatis&MyBatis-plus】分页查询避免两次查询同时返回总数和数据 数据库执行update语句没有反应,一直转圈,数据库锁表处理解决方法 按键精灵-自定义函数time(),datetime(),diff() 在Vue+Element中,Select选项值动态从后台接口获取的实现方法 mongoTemplate的方法和update() 欧科云链OKLink推出“链上天眼”功能 区块链+大数据全面助力链上安全 第二届微热点大数据论坛将于9月5日开幕 网龙参与全国教育大数据统计 构建五级服务支撑体系 无代码app制作崛起,app开发已不再是程序员的专利了 torch深入学习之凤飞九天torch.nn.MarginRankingLoss 【机器学习】—各类梯度下降算法 简要介绍 隐马尔可夫模型(HMM)来龙去脉(二) 单智能体、多智能体强化学习基本概念及算法分类?为啥提出多智能体强化学习,现状? 张量网络算法基础(八、张量网络机器学习【上】) MapReduce 简介 Python爬虫入门教程 81-100 小众爬虫框架looter,框架作者竟然在官方手册开车 机器人二维导航教程汇总 mapper 使用示例 Redis的概念及关系型与非关系型数据库对比 MySQL必知必会:使用WHERE、正则表达式、通配符过滤数据 Solr的增量更新和全量更新对比 MYSQL数据库维护 MATLAB与Mysql数据库连接并数据交换(基于ODBC)
您的位置:首页 >物联网 >

OpenLDAP源码安装及配置管理

OpenLDAP源码安装

下载OpenLDAP源码

http://www.openldap.org/software/download/

ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release.tgz

编译源码
tar -zxvf openldap-2.4.48.tgz cd openldap-2.4.48/./configure

编译错误

configure: error: BDB/HDB: BerkeleyDB not available

本地没有安装BerkeleyDB数据库

安装BerkeleyDB

去Oracle官网下载:

http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html

BerkeleyDB版本:
根据openldap-2.4.48源码中README的描述,要求用Oracle Berkeley 4.4-4.8或者5.0-5.1版本的
在这里插入图片描述
所以选择下载db-5.1.29版本
解压到本地
在这里插入图片描述切换到build_unix 目录

cd build_unix../dist/configuremakemake install

设置系统变量
在这里插入图片描述

vim /etc/ld.so.conf

添加一行:/usr/local/BerkeleyDB.5.1/lib/
保存退出。

执行生效

ldconfig –v
编译OpenLDAP

进入OpenLDAP源码包

./configure CPPFLAGS="-I/usr/local/BerkeleyDB.5.1/include -D_GNU_SOURCE" LDFLAGS="-L/usr/local/BerkeleyDB.5.1/libmake dependmakemake testmake install

OpenLDAP目录结构

配置文件目录

在这里插入图片描述

服务端可执行指令目录

在这里插入图片描述

服务端启动工具slapd

在这里插入图片描述

客户端可执行指令目录

在这里插入图片描述

bdb数据、log存放目录

在这里插入图片描述

OpenLDAP配置管理

版本管理
/usr/local/libexec/slapd -VV

在这里插入图片描述

配置rootdn密码
slappasswd

在这里插入图片描述

主配置文件slapd.conf
cd /usr/local/etc/openldap/vim slapd.conf

在这里插入图片描述
schema默认只有core.schema,各级需要添加,这里将同配置文件一个目录的schema目录中有的schema文件都加到配置文件中
在这里插入图片描述

include /usr/local/etc/openldap/schema/collective.schemainclude /usr/local/etc/openldap/schema/corba.schemainclude /usr/local/etc/openldap/schema/cosine.schemainclude /usr/local/etc/openldap/schema/duaconf.schemainclude /usr/local/etc/openldap/schema/dyngroup.schemainclude /usr/local/etc/openldap/schema/inetorgperson.schemainclude /usr/local/etc/openldap/schema/java.schemainclude /usr/local/etc/openldap/schema/misc.schemainclude /usr/local/etc/openldap/schema/nis.schemainclude /usr/local/etc/openldap/schema/openldap.schemainclude /usr/local/etc/openldap/schema/pmi.schemainclude /usr/local/etc/openldap/schema/ppolicy.schema

在这里插入图片描述

pidfile /usr/local/openldap-2.4.44/var/run/slapd.pidargsfile/usr/local/openldap-2.4.44/var/run/slapd.args

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

loglevel256logfile/usr/local/var/slapd.log

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

databasemdb

使用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做后端数据库,需要将此项参数注释

maxsize1073741824

修改域名及管理员账户名。

suffix"dc=nmcm,dc=com"rootdn"cn=admin,dc=nmcm,dc=com"

使用密文密码,即使用slappasswd生成的密文

rootpw{SSHA}Q7CJ8dxnR6uuEyhZ3FHn6O2PaoJlsvlJ

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

directory/usr/local/var/openldap-data
index objectClass eq

初始化OpenLADP

如果采用mdb做后端数据库,此步可忽略,DB_CONFIG是 bdb/hdb数据库使用的;
与主配置文件中的配置有关,主配置文件确定使用bdb与数据存放路径。

cd /usr/local/var/openldap-data/cp DB_CONFIG.example DB_CONFIG

启动OpenLADP

#后台启动#非root用户不能监听端口1~1024,如果是非root用户,有可能需要重新定义服务端口/usr/local/libexec/slapd
#前端启动,输出debug信息/usr/local/libexec/slapd -d 256

OpenLDAP默认监听的端口是389

在这里插入图片描述

验证

ldapsearch -x -b "" -s base"(objectclass=*)"

在这里插入图片描述

ldapsearch -x -b "" -s base "(objectclass=*)" namingContexts

在这里插入图片描述

创建管理员账号

编辑ldif文件
vim admin.ldif
dn: dc=nmcm,dc=comobjectclass: dcObjectobjectclass: organizationo: NMCM.Incdc: nmcmdn: cn=admin,dc=nmcm,dc=comobjectclass: organizationalRolecn: admin
插入数据库
ldapadd -x -D "cn=admin,dc=nmcm,dc=com" -W -f admin.ldif

在这里插入图片描述

验证
ldapsearch -x -b "dc=nmcm,dc=com" "(objectClass=*)"

在这里插入图片描述

创建具有组属性的用户

编辑ldif文件
dn: ou=nsccwx,dc=nmcm,dc=comou: nsccwxobjectClass: organizationalUnitdn: cn=zhaojq,ou=nsccwx,dc=nmcm,dc=comou: nsccwxcn: nmcmsn: zhaojqobjectClass: inetOrgPersonobjectClass: organizationalPersondn: cn=jiangyt,ou=nsccwx,dc=nmcm,dc=comou: nsccwxcn: nmcmsn: jiangytobjectClass: inetOrgPersonobjectClass: organizationalPerson
插入数据库
ldapadd -x -D "cn=admin,dc=nmcm,dc=com" -W -f nsccwx.ldif

在这里插入图片描述

验证
ldapsearch -x -b "dc=nmcm,dc=com" "(objectClass=*)"

在这里插入图片描述

修改用户密码

ldappasswd -x -D "cn=zhaojq,ou=nsccwx,dc=nmcm,dc=com" -w 123456 "cn=zhaojq,ou=nsccwx,dc=nmcm,dc=com" -s 123456
验证

出现userPassword

ldapsearch -x -b "cn=zhaojq,ou=nsccwx,dc=nmcm,dc=com" "(objectClass=*)"

在这里插入图片描述

使用Java验证OpenLdap用户登录

import java.util.Hashtable;import javax.naming.Context;import javax.naming.directory.DirContext;import javax.naming.directory.InitialDirContext;public class LdapDemo{public static void main(String[] args){System.out.println("IPAdress: " + args[0]);System.out.println("DN: " + args[1]);System.out.println("Password: " + args[2]);Hashtable<String, String> tbl = new Hashtable<String, String>(4);String LDAP_URL = "ldap://" +args[0]+ "/dc=nmcm,dc=com";tbl.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");tbl.put(Context.PROVIDER_URL, LDAP_URL);tbl.put(Context.SECURITY_AUTHENTICATION, "simple");tbl.put(Context.SECURITY_PRINCIPAL, args[1]);tbl.put(Context.SECURITY_CREDENTIALS, args[2]);System.out.println("env setting");DirContext context = null;try {System.out.println("login verification begins...");context = new InitialDirContext(tbl);System.out.println("login successfully.");} catch (Exception ex) {System.out.println("login failed.");} finally {try {if (context != null) {context.close();context = null;}tbl.clear();} catch (Exception e) {System.out.println("exception happened.");}}}}
java LdapDemo "localhost" "cn=zhaojq,ou=nsccwx,dc=nmcm,dc=com" "123456"

在这里插入图片描述

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。