系统环境:CentOS7

一、OpenLDAP

1,开始安装(使用yum源码安装)

yum install openldap openldap-servers openldap-clients
##拷贝数据库配置文件并修改权限
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG

##启动 OpenLDAP 服务并设置开机启动

systemctl start slapd
systemctl enable slapd
注:slapd即standard alone ldap daemon,该进程默认监听389端口
设置root用户密码(先用一个命令生成一个LDAP管理用户root密码)
执行 slappasswd ,输入你的密码即可
slappasswd
New password:
Re-enter new password:
{SSHA}krOGXDmiCdSXuXocOf10F96LJO5ijdXo #记住这个,下面会用到
创建一个文件 rootpwd.ldif(名字可以自己取)的文件
vim rootpwd.ldif

  dn: olcDatabase={0}config,cn=config
  changetype: modify
  add: olcRootPW
  olcRootPW: {SSHA}uOw+Jr617NnLvrXcZryPfTp76vaarGkk

  • ldif即LDAP Data Interchange Format,是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式,注意value后面不能有空格。
  • 上面内容中dn即distingush name
  • olc即Online Configuration,表示写入LDAP后不需要重启即可生效
  • changetype: modify表示修改一个entry,changetype的值可以是add,delete, modify等。
  • add: olcRootPW表示对这个entry新增了一个olcRootPW的属性
  • olcRootPW: {SSHA}uOw+Jr617NnLvrXcZryPfTp76vaarGkk 指定了属性值
下面使用ldapadd命令将上面的rootpwd.ldif文件写入LDAP
ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif
结果如下:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

导入schema
导入schema,schema包含为了支持特殊场景相关的属性,可根据选择导入,这里先全部导入:
ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
 
设定默认域
先使用slappasswd生成一个密码:(改密码可与上面的一样,也可以不一样)
slappasswd
New password:
Re-enter new password:
{SSHA}SdsZ+VWv9W/sMXBj0b8lxFOx5One5KC7
 
新创建一个domain.ldif的文件(文件名自己去)
vim domain.ldif
 内容如下(此处修改为自己的内容)

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=tsing,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=tsing,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=tsing,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}SdsZ+VWv9W/sMXBj0b8lxFOx5One5KC7

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=tsing,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=tsing,dc=com" write by * read

  • olcAccess
  • 即access,该key用于指定目录的ACL即谁有什么权限可以存取什么
  • olcRootDN
  • 设定管理员root用户的distingush name
  • 注意替换上面文件内容中cn为具体的域信息
  • olcRootPW用上面新生成的密码替换

写入:

ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.ldif
结果如下:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

添加基本目录
新创建一个 basedomain.ldif 的文件(文件名自己取)
(此处将内容修改为自己的即可)

dn: dc=tsing,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: tsing com
dc: tsing

dn: cn=Manager,dc=tsing,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=tsing,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=tsing,dc=com
objectClass: organizationalUnit
ou: Group

  • 注意替换上面文件内容中dn为具体的域信息
  • 理解dn,cn,dc
    • DC即Domain Component,LDAP目录类似文件系统目录
    • dc=tsing,dc=com
    • 相当于
    • /com/tsing
    • CN即Common Name,CN有可能代表一个用户名,例如
    • cn=Manager,dc=tsing,dc=com
    • 表示在
    • /com/tsing
    • 域下的管理员用户Manager
    • OU即Organizational Unit,例如
    • ou=People,dc=tsing,dc=com
    • 表示在
    • /com/tsing
    • 域下的一个组织单元
    • People
写入:
ldapadd -x -D cn=Manager,dc=tsing,dc=com -W -f basedomain.ldif
输入密码后执行结果如下:

Enter LDAP Password:
adding new entry "dc=tsing,dc=com"

adding new entry "cn=Manager,dc=tsing,dc=com"

adding new entry "ou=People,dc=tsing,dc=com"

adding new entry "ou=Group,dc=tsing,dc=com"

测试:
ldapsearch -LLL -W -x -D "cn=Manager,dc=tsing,dc=com" -H ldap://localhost -b "dc=tsing,dc=com"
输入密码后执行结果如下(出现此结果即为服务部署成功):

Enter LDAP Password:
dn: dc=tsing,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: tsingcom
dc: tsing

dn: cn=Manager,dc=tsing,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=tsing,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=tsing,dc=com
objectClass: organizationalUnit

ou: Group

OpenLDAP服务至此部署完成,以下为其管理工具的使用

OpenLDAP管理工具
可以在局域网内的windows电脑上下载ldapadmin作为管理工具(http://www.ldapadmin.org/download/ldapadmin.html)
连接信息如下:

 功夫再高,也怕菜刀,加油!打工人

转载请标明出处,让我们一起维护互联网信息之源。

 
 
 

运维权限系统之 OpenLDAP(干货)的更多相关文章

  1. 运营商DNS系统安全解决方案

    DNS系统面临的主要风险 目前,DNS面临的安全问题主要可以分为三类:DNS欺骗攻击.拒绝服务攻击.系统漏洞,下文将分别进行介绍.  DNS欺骗攻击 当一个DNS服务器遭到欺骗攻击,使用了来自一个恶 ...

  2. 全球首款完全开源的堡垒机,符合 4A 的专业运维审计系统Jumpserver

    Jumpserver是全球首款完全开源的堡垒机,是符合 4A 的专业运维审计系统. http://www.jumpserver.org https://github.com/jumpserver/ju ...

  3. ylbtech-KeFuYunWei(服务运维考核系统)-数据库设计

    ylbtech-DatabaseDesgin:ylbtech-KeFuYunWei(服务运维考核系统)-数据库设计 DatabaseName:KEFUYUNWEI Model:Admin 用户后台管理 ...

  4. Lnmp搭建zabbix运维监控系统

    使用目的? 在公司项目中需要做一个日志监控,最开始选择的是efk,但是efk的资料相对较少并且之前对这几个产品都没接触过,使用起来难度.于是选择了zabbix作为项目的运维监控系统. zabbix能做 ...

  5. 运维监控系统之Open-Falcon

    一.Open-Falcon介绍 1.监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器.操作系统.中间件.应用进行全面的监控,及报警,对我们的系统正常运 ...

  6. python自动化运维:系统基础信息模块

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 第一章: 首先介绍下系统性能信息模块:psutil psutil能够轻松实现获取系统 ...

  7. 服务器运维 -- windows系统更换System32下文件后 重启无法进入桌面

    场景描述: windows系统更换System32下文件后 重启无法进入桌面 情况1,原替换文件有备份     解决建议: 准备好该文件 情况2,原备份文件没有备份  解决建议:从相同版本的服务器上边 ...

  8. Linux运维之系统性能瓶颈工具vmstat分析

    vmstat是一个很好用的检测系统性能工具,没有过多的参数,直接一个vmstat命令即可,不过我们一般加上-w表示宽格式输出.然后再附加上侦测时间即可 例如: vmstat 表示每3秒检测一次并输出系 ...

  9. 安全运维 - Windows系统应急响应

    挖矿病毒应急 传播方式: 通过社工.钓鱼方式下载和运行了挖矿程序(邮件.IM等) 利用计算机系统远程代码执行漏洞下载.上传和执行挖矿程序. 利用i算计Web或第三方软件漏洞获取计算机权限,然后下载和执 ...

  10. [运维]ESXI系统的安装 标签: 虚拟机运维vmware服务器虚拟化 2017-05-05 09:24 496人阅读 评论(15)

    上篇博客说到了VMware vSphere,那么接下来就讲一下我们如何将之投入使用.vsphere的虚拟机管理程序就是esxi. 什么是ESXI? vSphere产品套件的核心产品是虚拟机管理程序,作 ...

随机推荐

  1. Ubuntu 添加新用户并制定目录和shell

    Ubuntu 添加新用户并制定目录和shell 分类: LINUX 2011-07-07 15:22:54   ubuntu新建的用户并没有新建相应的home目录和对应的shell环境.  下面就总结 ...

  2. 068_Apex&Page中的ReadOnly 使用方式

    一.page页面遇到需要检索大量数据的处理方式需要时会用Readonly 通常,对单个Visualforce页面请求的查询可能无法检索超过50,000行. 在Read only模式下,此限制将放宽允许 ...

  3. [人脸识别]01-python环境准备-安装opencv

    安装opencv pip install opencv-python pip install  matplotlib pip install opencv-contrib-python --user

  4. 【实验】B站资源免费下载技巧you-get

    搭建环境, python pip3  install you-get 查看可以下载格式 you-get -i https://www.bilibili.com/video/BV1yN411d7KH?p ...

  5. bpmn的依赖注入

    主要对象 new BPMN对象时,流程及对象结构如下图 依赖注入 在初始化bpmn对象时有传入additionalModules进行自定义操作,具体是如何实现这种模块化的管理,主要是用到了依赖注入ht ...

  6. Android 切换wifi小记

    我手机是Android 7.1的魅族.相关网络权限注册之后,还有一个特别的权限就是<uses-permission android:name="android.permission.A ...

  7. 【闲话】Vscode+PlatformIO+esp-idf+esp32物联网开发小记之环境搭建

    Vscode作为一款优秀的代码编辑器,具有极为方便快捷的代码辅助与拓展功能,使用熟练后开发效率大大提高,且作为典型的IDE,不需要花费大量的时间成本即可上手,Vscode结合各种插件,可以搭建出大部分 ...

  8. java spring 理解

    1.spring IOC容器 其实就是 new 了一个 ApplicationContext 类对象.->应用上下文对象. 2.应用上下文对象 实例化.配置,并管理 bean. 所以上下文对象是 ...

  9. 如何在win10网络中发现自己?

    第一步:win10共享媒体流的操作步骤: 1.点击右下角网络-网络和Internet设置 2.进入设置界面后点击网络和共享中心 3.在共享中心界面点击媒体流式处理选项 4.点击启用媒体流 5.设置媒体 ...

  10. java心形打印999

    心形打印999 农历七月初七,七夕节也就是中国民间版的所谓情人节,利用java打印心型999个图案可以让程序员更浪漫一些.现在下面由小编简要的说一下如何做到.首先下面是打印心形但却不是999个的代码, ...