域控查看ldap端口命令_LDAP基础安装与简单入门使用

  • 0x00 前言简述

    • 主要产品

    • 基本模型

    • 应用场景

  • 0x01 环境安装

    • 基于 yum 安装

    • 基于 Docker 安装

  • 0x02 LDAP配置&命令

    • slapd 命令

    • ldapsearch 命令

    • ldapadd 命令

    • ldapmodify 命令

    • ldapdelete 命令

    • slappasswd 命令

    • ldappasswd 命令

  • 0x03 LDAP客户端

    • LDAPAccountManager

    • PHPLdapAdmin

    • LDAPAdmin

    • Apache Directory Studio

    • Migrationtools

    • JNDI方式

0x00 前言简述

由于其公司内部都内部各种运维系统等,当每个新员工入职就需要一个挨一个的登录到每个系统的后台给新员工开通账号,设置密码,然后员工离职还得去到每个系统后台去关闭账号,想想多浪费时间那么能不能维护一套账号,对所有系统生效呢?当然有那就是LDAP

在深入学习LDAP协议之前我们需要了解什么是目录服务?

1.描述:目录服务是一个特殊的数据库,用来保存描述性的、基于属性的详细信息,支持过滤功能。如:人员组织管理,电话簿,地址簿
2.特点:是动态的,灵活的,易扩展的。
3.目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。

什么是LDAP?

答:维基百科:它是一个轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。LDAP目录服务是由目录数据库和一套访问协议组成的系统,它是基于X.500标准的轻量级目录访问协议有时被称为X.500-lite。也是IETF下的一项标准,目前最新的RFC为 RFC4510 ;

比如 DNS 协议便是一种最被广泛使用的目录服务

LDAP有什么用?

答:构建一个统一的账号管理、身份验证平台,实现SSO单点登录机制,即用户可以在多个应用服务系统中使用同一个密码,通常用于公司内部网站的登录以及域内机器登陆管理;

特点:

  • 使用轻量级目录访问协议(LDAP)构建集中的身份验证系统可以减少管理成本,增强安全性,避免数据复制的问题,并提高数据的一致性。

  • 目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据;

LDAP协议版本:

  • LDAPv2

  • LDAPv3

为什么要使用LDAP?

答:LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中得到广泛认可的,并且市场上或者开源社区上的大多产品都加入了对LDAP的支持,因此对于这类系统,不需单独定制,只需要通过LDAP做简单的配置就可以与服务器做认证交互;>简单粗暴,可以大大降低重复开发和对接的成本

LDAP目录与普通数据库有何异同?

1.主要不同之处在于数据的组织方式,它是一种有层次的、树形结构。所有条目的属性的定义是对象类object class的组成部分,并组成在一起构成schema;那些在组织内代表个人的schema被命名为white pages schema。

2.数据库内的每个条目都与若干对象类联系,而这些对象类决定了一个属性是否为可选和它保存哪些类型的信息。属性的名字一般是一个易于记忆的字符串,例如用cn为通用名(common name)命名,而"mail"代表e-mail地址。例如mail属性包含值“user@example.com”。

主要产品

简单了解下基于 LDAP 协议的产品有一下:

厂商 产品 简介
Opensource Opensource OpenLDAP 开源的项目,速度很快,但是非主流应用,但是在社区的影响下逐渐成熟。
Microsoft Microsoft Active Directory 基于win系统用户在域控中使用,对大数据量处理速度一般,但维护容易,生态圈大,管理相对简单。
IBM IBM Directory Server 基于DB2 的的数据库,速度一般。
Novell Novell Directory Server 基于文本数据库的存储,速度快, 不常用到。
Oracle Oracle Internet Directory 简称OID是Oracle 用来集中存储和管理网络服务名称的解决方案,用于查询和修改任何类似目录的实体;
Apache Apache Directory Server 广泛使用在Apache基金会下面所属软件中比如Apache http,进行目录的索引以及展示;如OpenLDAP Apache HTTP Server使用代理服务器(通过模块mod_proxy)支持LDAP。
基本模型

每一个系统、协议都会有属于自己的模型,当然LDAP也不例外;

在了解LDAP的基本模型之前我们需要先了解几个LDAP的目录树概念:

  1. 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的一个节点称之为条目(Entry),条目包含了该节点的属性及属性值。

  2. 条目:由属性(attribute)的一个聚集组成每个条目就是一条记录,并由一个唯一性的名字引用,即专有名称(distinguished name,DN),可描述一个层次结构,这个结构可以反映一个政治、地理或者组织的范畴。

  3. 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来。

  4. 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性。补充:属性取值依赖于其类型,并且LDAPv3中一般非二进制值都遵从UTF-8字符串语法。

关键字&术语说明:Entry (or object) 条目(或对象):LDAP中的每个单元都认为是条目。

术语 说明
Directory 目录,用于存放信息的单元
Entry 条目,实体LDAP的基本信息单元
LDIF 全称:LDAP Interchange Format , 在RFC2849中定义的标准,用于规范LDAP的配置和目录内容等详细信息的保存,后续的例子中将会较多地使用LDIF进行增删改查的操作。
关键字 全称 简述
DN Distinguished Name 专有名称 , DN值:"uid=admin,ou=people,dc=weiyigeek,dc=top", 一条记录的位置(全局唯一)
DC Domain Component - 域名组件 , 域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com(一条记录的所属位置)
CN Common Name 公共名称 , 如“Admin(一条记录的名称)"或者人名或对象名称
OU Organization Unit 组织单位,组织单位可以包含其他各种对象(包括其他组织单元),如“oa组”(一条记录的所属组织)
UID User Id 用户ID username(一条记录的ID)
SN Surname 姓,如“文”
RDN Relative dn 相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=admin”或“cn=ADMIN”

参照 YAPI 中的 LDAP 配置

{
    "ldapLogin": {
    "enable": true,"server": "ldap://l-ldapt1.ops.dev.weiyigeek.top","baseDn": "CN=Admin,CN=Users,DC=weiyigeek,DC=top","bindPassword": "password123","searchDn": "OU=UserContainer,DC=weiyigeek,DC=top","searchStandard": "mail"}}

(1) 信息模型

描述:在LDAP中的信息以树状方式组织,在树状信息中的基本数据单元是条目,而且每个条目由属性构成,属性中存储由属性值;

   条目			   属性
------------- --------------
| 条目1 | | 类型 |
|条目2 条目3|--> | 值1 .... 值n|
------------- --------------

(2) 命名模型

描述:LDAP中的命名模型即LDAP中的条目定位方式,在LDAP中每个条目均有自己的DN 是该条目在整个树中的唯一名称标识;

LDAP树形结构的构成方式而一般有两种方式:体现到LDIF的详细信息

  • 传统方式:聚焦于国别以及地理信息为上层构成,然后按照地理信息进行继续下行,最后精确到人的姓名以及住址;

  • 互联网域名方式: 上层构成直接使用域名,能结合DNS相关的技术;

#传统方式
c=CN|
st=ChongQing|
o = YongChuan (The Organisation)
/ \
ou=YoungChuanGroup1 ou=YoungChuanGroup2 (Oraganisation Unit)|
cn=WeiyiGeek#互联网域名方式
dc=top|
dc=WeiyiGeek
/ \
ou=people ou=groups
/
uid=admin

(3) 功能模型

描述:在LDAP中共有四类10种操作:

  • 查询类操作,如搜索、比较;

  • 更新类操作,如添加条目,删除条目,修改条目以及修改条目名

  • 认证类操作,如绑定,解绑

  • 其它操作,如放弃和扩展操作(除了扩展操作,另外9种是LDAO的标准操作,扩展操作是LDAP中为了增加新的功能,而提供的一种标准扩展框架,当前已经成为LDAP标准的扩展操作,有修改密码和startTLS扩展,在新的RFC标准和草案中正在增加一些新的扩展操作,不同的LDAP厂商也均定义了自己的扩展操作)

(4) 安全模型

描述:LDAP中的安全模型主要通过身份认证、安全通道和访问控制来进行实现;

应用场景

描述:由于LDAP主要运用于统一身份认证,而其主要是改变原有的认证策略,使需要认证的软件都通过LDAP进行认证,在统一身份认证之后,用户的所有信息都存储在AD Server中。终端用户在需要使用公司内部服务的时候,都需要通过AD服务器的认证。

eabc827fffc80cf04630fc17c8d9ca12.png

那么程序中是如何访问的呢?

  1. 连接到LDAP服务器;

  2. 绑定到LDAP服务器;

  3. 在LDAP服务器上执行所需的任何操作;

  4. 释放LDAP服务器的连接;

我们以PHP脚本作为例子如下:

$ldapconn = ldap_connect("10.10.84.78")
$ldapbind = ldap_bind($ldapconn, 'username', $ldappass);
$searchRows= ldap_search($ldapconn, $basedn, "(cn=*)");
$searchResult = ldap_get_entries($ldapconn, $searchRows);
ldap_close($ldapconn);

0x01 环境安装

描述:在上文中我们对LDAP产品进行列举,在厂商得持续开发迭代下提供LDAP服务的软件有很多商业上获得成功的,其中以MS的AD和Redhat的NDS(Netscape directory server)使用最为广泛,而开源领域则是OpenLdap(全文实验也是基于此版本);

什么是OpenLDAP?
OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。
官网:http://www.openldap.org

它主要包括下述4个部分:

  • slapd - 独立LDAP守护服务

  • slurpd - 独立的LDAP更新复制守护服务

  • 实现LDAP协议的库

  • 工具软件和示例客户端

端口说明:

端口号 备注
389 未加SSL缺省端口(明文数据传输)
689 SSL加密端口
636 加密监听端口(加密数据传输)
基于 yum 安装

环境准备:

#SeLinux设为disabled
setenforce 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config#同步系统时间
ntpdate time.nist.gov#Firewalld防火墙设置#镜像源设置mv /etc/yum.repos.d/CentOS-Base.repo{ ,.bak}wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all #清除缓存
yum makecache #创建缓存#安装OpenLDAP的相关(compat-openldap包与主从有很大的关系)
yum -y install openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
yum -y install compat-openldap#通过查看安装了哪些包rpm -qa |grep openldap#查看OpenLDAP版本
slapd -VV#初始化OpenLDAP的配置cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG  # 数据库文件cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf # 创建slapd.conf#salpd.conf 配置修改:[修改或添加-如下图所示]#把配置文件中:dc=my-domain,dc=com 修改成自己的域名;dc=58jb,dc=org ;cn=Manager就是管理员账号;
database bdb
suffix "dc=weiyi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值