windows,smb协议

时间:23-03-19 网友
竭诚为您提供优质文档/双击可除windows,smb协议


  篇一:smb协议
  smb协议
  基本概述
  smb(servermessageblock)通信协议是微软(microsoft)和英特尔(intel)在1987年制定的协议,主要是作为microsoft网络的通讯协议。smb是在会话层(sessionlayer)和表示层(presentationlayer)以及小部分应用层(applicationlayer)的协议。smb使用了netbios的应用程序接口(applicationprograminterface,简称api)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至windowsnt也没有全部支持到,最近微软又把smb改名为ciFs(commoninternetilesystem),并且加入了许多新的特色。
  smb协议是基于tcp-netbios下的,一般端口使用为139,445,关于netbios协议这里就不介绍了。
  netbios协议头可以是:
  typedefstruct
  {
  unsignedcharmsg_type;
  unsignedcharflags;
  unsignedshortlength;
  }
  netbios_ss_hdr_t;
  编辑本段smb/ciFs协议
  在netbios出现之后,microsoft就使用netbios实现了一个网络文件/打印服务系统,这个系统基于netbios设定了一套文件共享协议,microsoft称之为smb(servermessageblock)协议。这个协议被microsoft用于它们lanmanager和windowsnt服务器系统中,而windows系统均包括这个协议的客户软件,因而这个协议在局域网系统中影响很大。随着internet的流行,microsoft希望将这个协议扩展到internet上去,成为internet上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的smb协议进行整理,重新命名为ciFs(commoninternetFilesystem),并打算将它与netbios相脱离,试图使它成为internet上的一个标准协议。
  因此,为了让windows和unix计算机相集成,最好的办法即是在unix中安装支持smb/ciFs协议的软件,这样windows客户就不需要更改设置,就能如同使用windowsnt服务器一样,使用unix计算机上的资源了。与其他标准的tcp/ip协议不同,smb协议是一种复杂的协议,因为随着windows计算机的开发,越来越多的功能被加入到协议中去了,很难区分哪些概念和功能应该属于windows操作系统本身,哪些概念应该属于smb协议。其他网络协议由于是先有协议,实现相关的软件,因此结构上就清晰简洁一些,而smb协议一直是与microsoft的操作系统混在一起进行开发的,因此协议中就包含了大量的windows系统中的概念。
  浏览
  在smb协议中,计算机为了访问网络资源,就需要了解网络上存在的资源列表(例如在windows下使用网络邻居查  
看可以访问的计算机),这个机制就被称为浏览(browsing)。虽然smb协议中经常使用广播的方式,但如果每次都使用广播的方式了解当前的网络资源(包括提供服务的计算机和各个计算机上的服务资源),就需要消耗大量的网络资源和浪费较长的查找时间,因此最好在网络中维护一个网络资源的列表,以方便查找网络资源。只有必要的时候,才重新查找资源,例如使用windows下的查找计算机功能。
  但没有必要每个计算机都维护整个资源列表,维护网络中当前资源列表的任务由网络上的几个特殊计算机完成的,这些计算机被称为browser,这些browser通过记录广播数据或查询名字服务器来记录网络上的各种资源。
  browser并不是事先指定的计算机,而是在普通计算机之间通过自动进行的推举产生的。不同的计算机可以按照其提供服务的能力,设置在推举时具备的不同权重。为了保证一个browser停机时网络浏览仍然正常,网络中常常存在多个browser,一个为主browser(masterbrowser),其他的为备份browser。
  工作组和域
  工作组和域这两个概念在进行浏览时具备同样的用处,都是用于区分并维护同一组浏览数据的多个计算机。事实上他们的不同在于认证方式上,工作组中每台计算机都基本上是独立的,独立对客户访问进行认证,而域中将存在一个(或几个)域控制器,保存对整个域中都有效的认证信息,包括用户的认证信息以及域内成员计算机的认证信息。浏览数据的时候,并不需要认证信息,microsoft将工作组扩展为域,只是为了形成一种分级的目录结构,将原有的浏览和目录服务相结合,以扩大mircrosoft网络服
  务范围的一种策略。工作组和域都可以跨越多个子网,因此网络中就存在两种browser,一种为domainmasterbrowser,用于维护整个工作组或域内的浏览数据,另一种为localmasterbrowser,用于维护本子网内的浏览数据,它和domainmasterbrowser通信以获得所有的可浏览数据。划分这两种browser主要是由于浏览数据依赖于本地网广播来获得资源列表,不同子网之间只能通过浏览器之间的交流能力,才能互相交换资源列表。
  但是,为了浏览多个子网的资源,必须使用nbns名字服务器的解析方式,没有nbns的帮助,计算机将不能获得子网外计算机的netbios名字。localmasterbrowser也需要查询netbios名字服务器以获得domainmasterbrowser的名字,以相互交换网络资源信息。
  由于域控制器在域内的特殊性,因此域控制器倾向于被用做browser,主域控制器应该被用作domainmasterbrowser,他们在推举时设置的权重较大。
  认证方式
  在windows9x系统中,习惯上使用共享级认证的方式互相共享资源,主要原因是在这些windows系统上不能提供真正的多用户能力。一个共享级认证的资源只有一个口令与其相联系,而没有用户数据。这个想法是适合于一小组人员相互共享很少的文件资源的情况下,一旦需要共享的资源变多,需要进行的限制复杂化,那么针对每个共享资源都设置一个口令的做法就不再合适了。
  因此对于大型网络来讲,更适合的方式是用户级的认证方式,区分并认证每个访问的用户,并通过对不同用户分配权限的方式共享资源。对于工作组方式的计算机,认证用户是通过本机完成的,而域中的计算机能通过域控制器进行认证。当windows计算机通过域控制器的认证时,它可以根据设置执行域控制器上的相应用户的登录脚本并桌面环境描述文件。共享资源每个smb服务器能对外提供文件或打印服务,每个共享资源需要被给予一个共享名,这个名字将显示在这个服务器的资源列表中。然而,如果一个资源的名字的最后一个字母为$,则这个名字就为隐藏名字,不能直接表现在浏览列表中,而只能通过直接访问这个名字来进行访问。在smb协议中,为了获得服务器提供的资源列表,必须使用一个隐藏的资源名字ipc$来访问服务器,否则客户无法获得系统资源的列表。
  篇二:netbios与smb协议概览
  netbios与smb协议概览
  windows局域网络有两种管理方式对等网工作组模式和主从域管理模式。对等网(peertopeer),所谓对等是指,在lan中所有的pc机都是平等关系,没有隶属、管理与被管理的关系,它们的地位是平等的。我们的计算机机房就是一个简单的对等网,网络中的所有pc都平等关系。与对等网相对的是基于目录服务进行集中认证、授权管理共享资源的网络——windows域管理模式。windows域管理模式,在window域中由活动目录对域中的软、硬件资源进行管理。
  在对等网中,网上邻居是共享资源的方式。通过网上领居,本地计算机可以访问网络中其它计算机共享的资源,本地计算机也可以把自己的资源共享给其它计算机。网上邻居是使用netbios协议传输数据。netbios是由ibm开发的,全称是:networkbasicinputandoutputsystem。在windowsnt下的netbios是基于tcp/ip环境的,与早期dos下的netbios有所不同。RFc1001和1002是tcp/ip环境下的netbios协议标准。当安装了tcp/ip协议后,netbios协议已经自动安装到计算机中。netbios使用下列端口:udp/137(netbios名称服务)、udp/138(netbios数据报服务)、tcp/139(netbios会话服务);smb使用下列端口:tcp/139、tcp/445。
  smb是servermessageblock的缩写。
  图一windowsxp下的netbios设置
  在上图中,可以看到默认的设置是从dhcp服务器使用netbios设置。如果使用静态的ip地址或dhcp服务器不提供netbios设置,则启用tcp/ip上的netbios。本次的协议分析环境是使用静态的ip地址。顺便说一下,如果计算机所在的网络环境内没有dhcp服务器,而又没有设置静态的ip地址,计算机会自动获取以169.254开头的ip地址。
  netbios协议的两个标准文档RFc1001和1002一共有二百多页。在这里只做粗略地分析。使用的抓包工具是omnipeek。
  分析场景:
  图二
  以下的netbios和smb协议是在此场景是进行。
  双击桌面上的“网上邻居”,打开如下图的界面:
  图三
  此时抓取的部分数据包(共有67个数据包):
  图四
  分析以上抓取的数据包,对netbiosnameservice(名字服务)、netbiossession、smb等进行分析。查看nameservice数据包的内容与格式:
  图五nameservice
  由上图可以看出:pca(192.168.1.8)发出一个广播包,查询工作组名woRkgRoup,netbios名字服务使用udp协议,端口号是137。
  双击打开workgroup工作时抓取的数据包,共13个:
  篇三:启用和禁用smbv1v2v3
  如何启用或禁用smb服务器上的smb协议
  windows8和
  windowsserver20xx
  windows8和windowsserver20xx引入了新的一组smbserverconfiguration
  windowspowershellcmdlet。该cmdlet可以启用或禁用服务器组件上的smbv1、smbv2和smbv3协议。
  备注当您启用或禁用smbv2或windowsserver20xxwindows8中时,smbv3也是启用还是禁用。出现此现象是因为这些协议都共享同一个堆栈。
  不需要重新启动计算机后运行一组smbserverconfigurationcmdlet。
  要获取的smb服务器协议配置的当前状态,请运行以下cmdlet:
  getsmbserverconfiguration|选择enablesmb1protocol,
  enablesmb2protocol
  若要禁用smb服务器上的smbv1,请运行以下cmdlet:
  组-smbserverconfiguration-enablesmb1protocol$false
  要禁用smbv2和smbv3smb服务器上,请运行以下cmdlet:
  set-smbserverconfiguration-enablesmb2protocol$false
  若要启用smb服务器上的smbv1,请运行以下cmdlet:
  组-smbserverconfiguration-enablesmb1protocol$true
  若要启用smbv2和smbv3smb服务器上,运行以下cmdlet:
  组-smbserverconfiguration-enablesmb2protocol$true
  windows7、windows服务器20xxR2,windowsVista和windows服务器20xx
  若要启用或禁用正在运行的smb服务器上的smb协议windows7,windowsserver20xxR2,windowsVista中或windowsserver20xx中,使用windowspowershell或注册表编辑器。
  windowspowershell2.0或更高版本的powershell
  
  要禁用smb服务器上的smbv1,请运行以下cmdlet:
  设置itemproperty的路径
  "hklm:\system\currentcontrolset\services\lanmanserver\parameters"s
  mb1-值0-强制
  若要禁用smbv2和smbv3smb服务器上,运行以下cmdlet:
  设置itemproperty的路径
  "hklm:\system\currentcontrolset\services\lanmanserver\parameters"s
  mb2-值0-强制
  若要启用smb服务器上的smbv1,请运行以下cmdlet:
  设置itemproperty的路径
  "hklm:\system\currentcontrolset\services\lanmanserver\parameters"s
  mb1-值1-强制
  若要启用smbv2和smbv3smb服务器上,运行以下cmdlet:
  设置itemproperty的路径
  "hklm:\system\currentcontrolset\services\lanmanserver\parameters"s
  mb2-值1-强制
  注意在进行这些更改之后,必须重新启动计算机。
  注册表编辑器
  重要本文包含有关如何修改注册表的信息。确保在修改注册表前对其进行了备份。请确保您知道出现问题时如何还原注册表。有关如何备份、还原和修改注册表的详细信息,请单击下面的文章编号,以查看microsoft知识库中相应的文章:
  322756
  如何在windowsxp中备份和还原注册表
  若要启用或禁用smb服务器上的smbv1,请配置以下注册表项:
  注册表子项:
  hkey_local_machine\system\currentcontrolset\services\lanmanserver\parameters注册表项:smb1
  Reg_dwoRd:0=禁用
  Reg_dwoRd:1=已启用
  默认值:1=已启用
  若要启用或禁用smbv2smb服务器上,配置以下注册表项:
  注册表子项:
  hkey_local_machine\system\currentcontrolset\services\lanmanserver\parameters注册表项:smb2
  Reg_dwoRd:0=禁用
  Reg_dwoRd:1=已启用
  默认值:1=已启用
  回到顶端|提供反馈
  如何启用或禁用smb客户端上的smb协议
  windowsVista、windows服务器20xx年、windows7,windowsserver20xxR2,windows8和windowsserver20xx
  注意当您启用或禁用smbv2在windows8或windowsserver20xx中时,smbv3也是启用还是禁用。因为这些协议共享同一个堆栈,将发生此问题。
  若要禁用smb客户端上的smbv1,请运行下面的命令:
  sc.exe配置lanmanworkstation取决于=bowser/mrxsmb20/nsi
  sc.exe配置mrxsmb10开始=禁用
  若要启用smb客户端上的smbv1,请运行下面的命令:
  sc.exe配置lanmanworkstation取决于=
  bowser/mrxsmb10/mrxsmb20/nsi
  sc.exe配置mrxsmb10开始=自动
  要禁用smbv2和smbv3在smb客户端,请运行下面的命令:
  sc.exe配置lanmanworkstation取决于=bowser/mrxsmb10/nsi
  sc.exe配置mrxsmb20开始=禁用
  要启用smbv2和smbv3在smb客户端,请运行下面的命令:
  sc.exe配置lanmanworkstation取决于=
  bowser/mrxsmb10/mrxsmb20/nsi
  sc.exe配置mrxsmb20开始=自动
  

《windows,smb协议》相关文档:

项目合作开发协议10篇09-01

收养孩子协议范文书09-01

汽车租赁协议合同范文(6篇)09-01

餐饮合伙股份协议(实用7篇)09-01

2020年个人加盟经营协议范文3篇最新09-01

大巴车租赁协议参考范文(10篇)09-01

2023年大巴车租赁协议(六篇)09-01

苏州市前期物业管理服务协议09-01

房屋买卖合同协议范文(3篇)09-01

循环水水处理技术协议范文09-01

Top