LDAP服务器基础讲解

LDAP用于管理和组织网络中的用户身份、权限和资源信息。

LDAP在比赛中主要用于对samba和apache用户进行认证。想要完成上面这一点需要先对LDAP有一个初步的了解

LDAP中的域由目录项组成,每个目录项就相当于一个对象。
目录项的结构如下:
以上就是一个域的根目录项
每个目录项有几个属性我们需要关注:

  1.  dn:组织名称。可以理解为ldap域中的绝对路径,标识该目录项在整个域中的位置,每个目录项都必须包含该属性。
     	dn由多个rdn组成,每个rdn以","分割
     	可以看到上面的dn值为 dc=chinaskills,dc=cn。由dc=chinaskills和dc=cn两个rdn组成。组合起来就是chinaskills.cn。也就是该域的域名。
     	该域下的所有目录项的dn值结尾都是dc=chinaskills,dc=cn来标识该目录项属于该chinaskills.cn域。
    
  2.  objectClass:这是表示该目录项的对象类型。一下常见的对象类如下:
     	top:	仅仅表示该目录项是一个顶级对象,没有特定的属性和行为
     	DcObject:	表示该目录项是域组件,通常包含dc属性
     	Organization:	表示该目录项是一个组织,通常表示公司或组织的顶层,用于定义组织的全局属性
     	**OrganizationalUnit**:	表示该目录项是一个组织单位,在公司或组织内部形成层次化结构
     	**groupOfUniqueNames**:		表示具有唯一名称的组。apache认证时检查该对象类创建的用户。
     	**Account**:		表示该目录项为用户
     	**PosixAccount**:			用于表示类似于Unix系统上的用户账户
     	**ShadowAccount**:			用户对象类
     	**sambaSamAccount**:		 该目录项专用于存储samba用户账户信息。
     	**PosixGroup**:	用户组,比赛中samba会识别该用户组的成员。
     	上面加粗的对象类就是比赛需要自己写的对象,需要将这些对象的属性记下来。
    
  3.  属性: 属性就是每个对象类的特征和属性,不同的对象就有不同的属性,上图的dc和o就是对象top和Organization的属性。当前比赛需要记住的对象属性如下:
     OrganizationalUnit:	
     		ou属性:		组织单位的名称,该目录项的RDN
     groupOfUniqueNames:	
     		Cn属性:		表示该组的通用名称,在目录中唯一
     		Uniquemember 属性:	唯一成员,可以包含其他目录项的DN
     		Owner 属性:	表示组的拥有者,通常是一个或多个用户或组织单位的DN
     Account:		
     		Uid:		用户唯一标识,通常为用户的登录名或用户名
     		userPassword:	用户密码
     		cn:		用户通用名称
     PosixAccount:	
     		uid: 		用户名或账户名,用于唯一标识一个用户账户 
     		uidNumber: 用户的唯一数字标识符,用于在Unix系统中表示用户的UID 
     		gidNumber: 用户所属的组的唯一数字标识符,用于在Unix系统中表示组的GID 
     		homeDirectory: 	用户的主目录路径,用于指定用户的家目录位置 
     		loginShell: 		用户的登录Shell,用于指定用户登录后使用的Shell程序
     		userPassword: 	用户的密码哈希值或加密密码,用于存储用户的密码信息
     
     下面两个samba的不需要记,samba虽然不能直接认证account用户对象,但是可以通过posixgroup对account用户对象进行认证。完成功能就行了,ldap的截图一般只检查用户名。
     ShadowAccount:
     		uid: 			用户名或账户名,用于唯一标识一个用户账户 
     		userPassword: 	用户的密码哈希值或加密密码,用于存储用户的密码信息 
     		shadowLastChange: 	上次更改密码的日期,通常以天数表示自1970年1月1日以来的天数
     sambaSamAccount: 
     		sambaUserAccount: 		Samba用户账户名称,一般与uid或cn属性相同。  
     		sambaSID: 			用于存储Samba用户账户的安全标识符(SID)。 
     		sambaNTPassword: 	用于存储Samba用户账户的NT密码,用于进行NTLM身份验证
    

liunx中几个常见的服务使用ldap时认证的目录项:

  1.  Samba:	用户:	sambaSamAccount
     			用户组:	posixGroup
     Apache:	用户:	person,posixaccount…
     			用户组:	GroupOfUniqueNames,GroupOfNames
     Postfix,dovecot:	用户:	person,posixaccount
     					用户组:GroupOfNames,GroupOfUniqueNames,PosixGroup
    

LDAP服务器常使用命令:
一. Ldap:

Ldapadd		添加新目录项:
		-x:使用简单身份验证,即明文传输密码。 
-D <binddn>:指定管理员或绑定用户的 DN,用于进行身份验证。 
-w <password>:指定管理员或绑定用户的密码。 
-h <hostname>:指定 LDAP 服务器的主机名或 IP 地址。 
-f <filename>:从指定的文件中读取 LDIF (LDAP Data Interchange Format) 格式的数据。 
-c:连续操作模式,如果出现错误,继续处理下一个目录项。

例子:
1.使用LDIF文件添加目录项:

ldapadd -x -D cn=admin,dc=example,dc=com -w password -h 192.168.1.100 -f mydata.ldif

这将使用管理员账户 cn=admin,dc=example,dc=com 连接到 LDAP 服务器,使用密码 password,从 mydata.ldif 文件中读取 LDIF 格式的数据,并添加到 LDAP 服务器。

2.使用交互手动输入ldif数据添加目录项:

ldapadd -x -D cn=admin,dc=example,dc=com -w password -h 192.168.1.100

这将使用管理员账户 cn=admin,dc=example,dc=com 连接到 LDAP 服务器,使用密码 password,并进入交互式模式,可以手动输入 LDIF 格式的数据,然后添加到 LDAP 服务器。

二. Ldapsearch:

Ldapsearch		搜索目录项:
			-x:使用简单身份验证,即明文传输密码。 
-D <binddn>:指定管理员或绑定用户的 DN,用于进行身份验证。 
-w <password>:指定管理员或绑定用户的密码。 
-h <hostname>:指定 LDAP 服务器的主机名或 IP 地址。 
-b <basedn>:指定搜索的基础 DN,即搜索的起始点。 
-s <scope>:指定搜索范围,可以是 base(仅搜索基础 DN)、one(搜索一级子目录项)或 sub(搜索所有子目录项)。 
-f <filename>:从指定的文件中读取 LDIF (LDAP Data Interchange Format) 格式的搜索过滤器。 
-l <limit>:限制搜索结果的条数。 
-a <attrlist>:指定要返回的属性列表,多个属性可以使用逗号分隔。

例子:

  1. 搜索指定 DN 下的所有目录项:
ldapsearch -x -D cn=admin,dc=example,dc=com -w password -h 192.168.1.100 -b dc=example,dc=com
  1. 搜索指定 DN 下的目录项,并返回指定属性列表:
ldapsearch -x -D cn=admin,dc=example,dc=com -w password -h 192.168.1.100 -b dc=example,dc=com -a uid,cn,sn
  1. 搜索指定LDAP服务器上所有目录项的数据
ldapsearch -x -h 192.168.100.200

三、ldapdelete

ldapdelete -x -D <管理员DN> -W -r "<目录项的DN>"
	-x:使用简单身份验证。
	-D <管理员DN>:指定管理员(或具有删除权限的用户)的 DN(Distinguished Name)。
	-W:提示输入管理员密码。
	-r "<目录项的DN>":指定要删除的目录项的 DN。

例子:
1.删除 DN 为 "cn=user,ou=people,dc=ldapdelete -x -D

ldapdelete -x -D "cn=admin,dc=example,dc=com" -W -r "cn=user,ou=people,dc=example,dc=com"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值