windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系

如果你在windows域控环境中,例如企业的网络中开启wireshark抓包,你一定会遇到一大堆各种各样的协议。不同于互联网服务(大多基于HTTP),为了实现域控中各种各样的服务,windows的域控环境中采用了非常多的协议,例如LDAP,LSA,SAM等,因此有必要对域控中的协议做一个整体的介绍。 本文通过对域控协议之间关系的梳理,从整体上了解各个协议之间的关系,作为专栏《计算机网络协议快速入门教程》中的一篇。

windows有多少协议

在windows巨大的生态系统中,为了各种终端,用户,服务之间的互操作性,创建了大量的协议,那么windows究竟有多少种网络协议呢。在windows的说明文档,这里,列举介绍了大量的协议。其中有的协议比较罕见,有的协议则比较常见。本专栏无意去介绍所有的协议,但是对于域控环境中经常遇到的协议,会在后续的文章中议通过数据包的分析逐个介绍,windows对诸多的协议进行了分类,如下的分类是域控环境中常见的协议:

  • 活动目录协议:活动目录相关协议提供目录服务,为域控服务器的主要功能,这是域控环境的基础,常见的活动目录协议相关包括LDAP,SAM,LSA等。
  • 认证服务协议:认证服务协议用以鉴定用户,设备以及服务权限,域控环境中常见的认证服务协议包括,kerberos,NTLM,SPNG等。
  • 文件访问协议:针对网络中文件的增删改查,windows常见的文件访问协议包括CIFS,SMB,SMB2,DFS等。
  • windows管理协议:为不同系统之间的查询和操作提供可能,WMI的功能是最为常见的,相关协议包括基于DCOM的WMI,PSRP等。

关于域控服务

windows域环境是由域控服务器和众多终端和应用服务器组成的一套网络环境,windows提供的很多协议都和域控服务器相关。域控服务器提供目录服务,即中央集权式的用户认证,权限管理,证书管理,组策略等,域控服务器提供相关的服务功能如下图1:

在这里插入图片描述
图1
为了实现上图1的各种服务,windows采用通用协议和重新设计专有协议满足服务间通信的需求。如下:

  • 通用协议,例如DNS,kerberos,LDAP,TCP/IP,DCE/RPC等,这些协议不仅可以使用在windows的域环境中,在其他非windows域环境中也被大量的使用。例如DNS在互联网中被用来进行域名的解析,kerberos被各种应用用来进行身份的认证。其中DNS的介绍见这里,kerberos介绍见这里,DCE/RPC介绍见这里。但是其中一些协议针对windows特有环境做了扩展,例如kerberos,DCE/RPC等。
  • 专有协议,例如LSA,SAM,SMB,DCOM等,这些协议基本是微软开发针对windows域环境所应用的协议,用于域环境中各个主机之间交互。例如SAM协议就是用来实现用户和组的增删改查等服务。

域环境协议间关系

那么这些通用协议和专用协议之间如何配合完成图1中的服务呢。在前面SMB文章的介绍中可知SMB协议既可以独立作为文件共享协议完成文件的增删改查功能,也可以作为传输协议,承载更高层应用,在之前的SMB中说明了其和RPC以及TCP等协议的关系,这里,如下图2:

在这里插入图片描述
图2
可以看到SMB可以基于QUIC,NETBIOS,TCP,认证阶段可以借助SPNG调用Kerberos或者NTLM,也可以承载DCE/RPC等其他协议。当然RPC不仅可以基于SMB还可以直接使用TCP作为传输层协议,在前面的文章中有所提及,这里,如下图3:
在这里插入图片描述
图3
图2,图3的其中一个数据包示例如下图4:
在这里插入图片描述
图4

而对于windows域控服务器上的目录服务所设计的专有协议,很多都是基于RPC来实现服务的调用,如下图5:
在这里插入图片描述
图5

需要注意的是图5中的Network Transports既可以是常见的TCP/UDP等协议,也可以是SMB,Netbios等,即图3中的面向连接和非连接所示。图5中RPC承载的上层协议即为活动目录相关协议,活动目录相关协议包含如下图6几类:

在这里插入图片描述
图6

  • LDAP全称是Lightweight Directory Access Protocol,,该协议用于实现对于活动目录树中对象的读写。DSSP全称Directory Services Setup Remote Protocol用来检索域中或者非域控工作组中机器的状态。
  • LSA全称是Local Security Authority,用于实现客户端查询域控策略信息和将安全标识符SID转换成为可读的内容。LSAD,即用于查询域控策略,LSAT即用于SID和对应解释之间的映射转换等。
  • SAM的全称是Security Account Manager ,该协议是实现用户和组的增删改查等服务,其中SAMR协议用于终端和SAM服务之间的通信,SAMS用户不同SAM服务之间的数据交互(即不同域控服务器之间的SAM服务)。

上述的LSA以及SAM相关的功能在客户端都是一个叫做lsass.exe的进程实现的,对应的程序路径为%SystemRoot%\System32\Lsass.exe,lsass是windows系统组件,管理着windows所有的安全相关的策略,例如用户的登录认证,权限验证等,通常工作在用户态,lsass包含下图7的功能:
在这里插入图片描述
图7

图7可知通常LSA和SAM功能模块会优先本地的数据库进行查询实现,如果本地的数据库中没有对应的信息,则会使用LSA以及SAM相关的协议到域控服务器中进行查询。

至此域环境中的协议之间的总体关系介绍就完成了,后在后续的文章会针对每一个协议的功能交互进行讲述。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【广州华锐互动】VR消防员模拟灭火:身临其境的火场救援

随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,为我们带来了前所未有的沉浸式体验。在这其中,VR模拟消防员灭火体验无疑是一种极具创新性和实用性的应用。通过这项技术,人们可以亲身体验到消…

QT 自定义窗体加载完成函数

使用信号和槽函数,具体如下: QT-如何在窗口/对话框显示后自动执行指定任务_qt 界面显示完在调用函数-CSDN博客文章目录QT-如何在窗口/对话框显示后自动执行指定任务一、如何实现在窗口展示出来后,执行某个函数二、如何成功实现判断条件后选择…

前端实现菜单按钮级权限

核心思想就是通过登录请求此用户对应的权限菜单,然后跳转首页,触发全局前置导航守卫,在全局导航守卫中通过 addRoute 添加动态路由进去。addRoute有一个需要注意的地方,就是我们添加完动态路由后,地址栏上立即访问添加…

django建站过程(3)定义模型与管理页

定义模型与管理页 定义模型[models.py]迁移模型向管理注册模型[admin.py]注册模型使用Admin.site.register(模型名)修改Django后台管理的名称定义管理列表页面应用名称修改管理列表添加查询功能 django shell交互式shell会话 认证和授权 定义模型[models.py] 模仿博客形式&…

鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…

Dynamics 365 重写自带按钮

必备工具:Ribbon Workbench 步骤: 1、查看默认按钮使用的方法名称 右键按钮选择自定义命令(Customise Command),然后查看command使用的命令 2、在前台chrome浏览器中搜索对应的命令,查看命令细节 3、基于命令细节新建command&am…

Python第三方库 - Flash(python web框架)

1 Flask 1.1 认识Flask Web Application Framework( Web 应用程序框架)或简单的 Web Framework( Web 框架)表示一个库和模块的集合,使 Web 应用程序开发人员能够编写应用程序,而不必担心协议,线…

分布式限流:Redis

目录 1:如何实现分布式限流 2:限流的几种类别 2.1:固定窗口限流 2.2:滑动窗口限流 2.3:漏桶限流 2.4:令牌桶限流 3:实现分布式限流:Redis 3.1:引入Redisson的依赖包 3.2:初始化Redisson 3.3:创建Redisson的限流类 1:如何实现分布式限流 1:把统计用户的使用频率等这些…

66 跳跃游戏

跳跃游戏 题解1 贪心题解2 DP(超时, 但思路应该对) 给你一个非负整数数组 nums,你最初位于数组的 第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 …

ilr normalize isometric log-ratio transformation

visium_heart/st_snRNAseq/05_colocalization/create_niches_ct.R at 5b30c7e497e06688a8448afd8d069d2fa70ebcd2 saezlab/visium_heart (github.com) 更多内容,关注微信:生信小博士 The ILR (Isometric Log-Ratio) transformation is used in the anal…

onebound电商API接口商品数据采集平台:让数据成为生产力!

随着数字化商业时代的到来,API接口已成为电商资源连接利器,也是全球传统互联网企业转型的基础。 2021年 Google Cloud 研究显示,全球互联网企业近3/4的企业持续投入数字化转型,2/3的企业在持续增加投入,从这组数据可以…

2023高频前端面试题-vue

1. 什么是 M V VM Model-View-ViewModel 模式 Model 层: 数据模型层 通过 Ajax、fetch 等 API 完成客户端和服务端业务模型的同步。 View 层: 视图层 作为视图模板存在,其实 View 就是⼀个动态模板。 ViewModel 层: 视图模型层 负责暴露数据给 View 层&…

SpringBoot+SpringMVC+MybatisPlus

文章目录 SpringBootSpringMVCMybatisPlus怎样在SpringBoot中引入SpringMVC?首先看下引入的依赖创建数据库表创建DO类创建MyBatisPlus动态代理接口创建controller控制器接收http请求创建SpringBoot配置文件application.yml最后创建启动类 SpringBootSpringMVCMybatisPlus 怎样…

SYS/BIOS 开发教程: 创建自定义平台

目录 SYS/BIOS 开发教程: 创建自定义平台创建自定义平台新建工程并指定自定义平台修改现有工程使用自定义平台 参考: TI SYS/BIOS v6.35 Real-time Operating System User’s Guide 6.2节 本示例基于 EVMC6678L 开发板, 创建自定义平台, 并将代码段的位置指定到C6678器件内部的…

【网络安全 --- 任意文件下载漏洞(1)】任意文件下载漏洞

一,环境,工具准备 1-1 VMVare 16 虚拟机及下载安装(资源) 请参考以下博客安装(特详细):【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客【网络安…

前后端交互系统:在Node.js中运行JavaScript

在Node.js中运行JavaScript,您需要编写适用于服务器端的代码,而不是浏览器端的代码。以下是一些示例代码,用于在Node.js中创建一个简单的HTTP服务器并在浏览器中访问它: // 引入Node.js内置的http模块 const http require(http);…

使用Vscode创建一个C_Hello程序

Vscode用来学习C语言语法确实很方便。问题是安装好了,不会用,或编译失败,也是常有的事情,其中一个原因就是不会创建工作区。下面介绍使用Vscode创建一个C语言工作区。有时候看着很简单,时间久了,我竟然忘记…

对企业数字化转型有哪些建议?

对于希望在当今快速变化的商业环境中保持竞争力和相关性的企业来说,数字化转型是一个关键过程。以下是成功数字化转型的一些建议: 1.定义明确的目标:首先为数字化转型定义具体、可衡量且现实的目标。这些目标应与您的业务战略保持一致并解决…

spark获取hadoop服务token

spark 作业一直卡在accepted 问题现象问题排查1.查看yarn app日志2.问题分析与原因 问题现象 通过yarn-cluster模式提交spark作业,客户端日志一直卡在submit app,没有运行 问题排查 1.查看yarn app日志 appid已生成,通过yarn查看app状态为…

一起学数据结构(12)——归并排序的实现

1. 归并排序原理: 归并排序的大概原理如下图所示: 从图中可以看出,归并排序的整体思路就是把已给数组不断分成左右两个区间,当这个区间中的数据数量到达一定数值时,便返回去进行排序,整体的结构类似二叉树…