工做组模式下Windows共享分析

工做组模式下 Windows局域网共享分析

一.工做组结构的网络
    工做组网络也被称为“对等式”网络,由于每台计算机的地位是平等的,他的资源与管理分散在各个计算机上。
    网络中每台Windows系统的计算机上都有本身的“安全帐户管理器(SAM
,security access manager)数据库”。若是用户访问每台计算机的资源,那么必须在每台每台计算机的SAM数据库中建立该用户的帐号,例如:A要访问B,那么B必须知道A机SAM中的帐户和密码才能正常访问。


二.网上邻居和NetBIOS工做原理部分(工做组模式)
 全部使用网上邻居的机器在启动时都会向网络中宣告本身的存在,通常使用广播方式 (也是为何没法经过路由器看到其它子网计算机的缘由),而在网络中有一张浏览列表,记录了全部在此登记的计算机,也就是在网上邻居中看到的计算机,而当 计算机正常关机时,浏览列表就会从记录中删除此机器。那么这张表在哪里呢?它是被“浏览主控服务器”(service.msc中的Computer Browser服务)维护的,浏览主控服务器是工做组中的一台最为重要的计 算机,它负责维护本工做组中的浏览列表及指定其余工做组的主控服务器列表,为本工做组的其余计算机和其余来访本工做组的计算机提供浏览服务,每一个工做组都 为会每一个传输协议选择一个浏览主控服务器,而咱们常常遇到的没法浏览网络的错误大可能是由于你所处的工做组没有浏览主控服务器而形成的。你能够在一个工做组 中用NBTSTAT -a computername 命令找出使用NBT协议的浏览主控服务器,它的标识是含有\\_MSBROWSE_ 名字段。缺省状况下,windows工做组中的浏览主控服务器是该工做组中第一台启用文件及打印机共享功能的计算机,也容许手工将一台win计算机配置为浏览 主控服务器(方法会在后面讲述网络配置时具体介绍,但因为浏览主控服务器须要维护动态浏览列表,性能会受影响),若是一个工做组中有多台计算机配置了这个 选项,或是当前的浏览主控服务器关闭了系统,又没有其余计算机启用主控设置时,就要进行主控浏览器的选举。选举其实过程很简单,首先由一台计算机发送一个 选举临界报文,该报文包含了来自发送计算机的信息(操做系统,版本及NET名等),选举报文向网络中广播,工做组中的每一台计算机都会用自身信息与选举报 文进行优先级比较,主要是操做系统起主要做用,记得好像是WIN2K/XP>Win9X/Me,最后是那个自身条件最好的成为新的浏览主控服务器。
整个网络浏览的过程是,当一台win98进入网络时,若是它带有服务器 服务(启用了文件及打印机共享)会向网络广播宣告本身的存在,而浏览主控服务器会取得这个宣告并将它放入本身维护的浏览列表中;而没有在相应协议上绑定文件及打印机共享的计算机则不会宣告,于是也就不会出如今网络邻居里了。当客户计算机想得到须要的网络资源列表时,首先会广播发出浏览请求,浏览主控服务器 收到请求后,若是请求的是本组的浏览列表,则直接将客户所需的资源列表发回;若是请求的是其它工做组的浏览列表,浏览主控服务器会根据自己 Browsing List中的记录找到相应工做组的主控浏览器返回给用户,用户可从那里获得它想要的浏览列表,咱们也就在网上邻居中看到计算机列表了。
    可是为何在网上邻居里有些机子访问不了呢?事实上若是微软的网上邻居真能作到所 见即所得,相信抱怨它的人不会象如今这么多,可经过前面对浏览服务的介绍,你们已经知道这是不可能的,由于浏览列表的得到不是经过访问其中每一台机子获得 的,不少时候网络中的计算机并不能正确更新浏览列表。当一台计算机正常关机时,它会向网络发出广播宣告,使浏览主控服务器及时将它从浏览列表中删除;而非 正常关机后,浏览列表里仍会把该条目保持很长一段时间(NT下是45分钟),这就是咱们仍能在网络邻居里看到它的缘由.而98的稳定性是众所周知的 ----在还没来得及关机前就已经崩溃了。

难道主浏览器就必须选举产生,不能指定吗?其实也不是,做为管理员,只要在但愿成为主浏览器的机器(通常配置较高)上打开注册表编辑器,在[HKEY_LOCAL_MACHINE
  \SYSTEM\CurrentControlSet\Services\Browser\Parameters]一项中,将注册表键“IsDomainMaster”的值改成“True”便可。这样,这台电脑就会成为一个主浏览器。
  这台电脑启动时,若是网络中已经有了主浏览器,那么它就会发起一个新的选举,而在选举中它经常会赢得选举(难道是贿选?)。固然,若是其余电脑也配置了这个选项,那么它们之间的竞争就要看选举的规则了。
Just Do it
让某台机器永远不成为浏览器
  若是为了下降某台机器的负载,但愿它永远不成为浏览器,能够在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser
  \Parameters]一项中修改“MaintainServerList”的值为“No”就能够了,表明这台电脑将不会成为浏览提供者,同时Computer Browser服务也将没法启动,强行启动就会出现图1中的故障。


三.2000/xp/2003共享服务及端口
SMB(Server Message Block)协议在NT/2000中用来做文件共享,在NT中,SMB运行于
NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)端口。在2000
中,SMB能够直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。所以在
2000上应该比NT稍微变化多一些。
能够在“网络链接/属性/TCPIP协议/属性/高级/WINS中设置启用或者禁用NBT
(NetBIOS over TCP/IP)。
当2000使用网络共享的时候,就面临着选择139或者445端口了。下面的状况肯定会
话使用的端口:
一、若是客户端启用了NBT,那么链接的时候将同时访问139和445端口,若是从445端口
获得回应,那么客户端将发送RST到139端口,终止这个端口的链接,接着就从445端口
进行SMB的会话了;若是没有从445端口而是从139获得回应,那么
就从139端口进行会话;若是没有获得任何回应,那么SMB会话失败。
二、若是客户端禁用了NBT,他就将只从445端口进行链接。固然若是服务器(开共享
端)没有445端口进行SMB会话的话,那么就会访问失败了,因此禁用445端口后,对访
问NT机器的共享会失败。
三、若是服务器端启用NBT,那么就同时监听UDP 13七、138端口和TCP139,445。若是禁
用NBT,那么就只监听445端口了。
因此对于2000来讲,共享问题就不只仅是139端口,445端口一样可以完成
若是客户端启用了NBT,那么链接的时候将同时访问139和445端口,微软并无让139/TCP与445/TCP公平竞争。发起链接的SYN包在宏观上是同时发出的,具体起来,有时是先向139/TCP发起链接请求,有时是先向445/TCP发起链接请求,有点随机性。
37/UDP--NetBIOS名称服务器,网络基本输入/输出系统(NetBIOS)名称服务器(NBNS)协议是TCP/IP上的NetBIOS(NetBT)协议族的一部分,它在基于NetBIOS名称访问的网络上提供主机名和地址映射方法。
138/UDP--NetBIOS数据报,NetBIOS数据报是TCP/IP上的NetBIOS(NetBT)协议族的一部分,它用于网络登陆和浏览。
139/TCP--NetBIOS会话服务,NetBIOS会话服务是TCP/IP上的NetBIOS(NetBT)协议族的一部分,它用于服务器消息块(SMB)、文件共享和打印。请设置防火墙开启相应的端口。通常只要在防火墙中容许文件夹和打印机共享服务就能够了。 
SMB(Server Message Block)协议在NT/2000中用来做文件共享,在NT中,SMB运行于
NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)端口。在2000
中,SMB能够直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。所以在
2000上应该比NT稍微变化多一些。



四.关于空会话$(扩展阅读)

NULL会话(空会话)使用端口也一样遵循上面的规则。NULL会话是同服务器创建的
无信任支持的会话。一个会话包含用户的认证信息,而NULL会话是没有用户的认证信
息,也就比如是一个匿名的同样。

没有认证就不可能为系统创建安全通道,而创建安全通道也是双重的,第一,就是
创建身份标志,第二就是创建一个临时会话密匙,双方才能用这个会话进行加密数据交
换(好比RPC和COM的认证等级是PKT_PRIVACY)。无论是通过NTLM仍是通过Kerberos认
证的票据,终究是为会话建立一个包含用户信息的令牌。(这段来自Joe Finamore)

根据WIN2000的访问控制模型,对于空会话一样须要提供一个令牌。可是空会话因为
是没有通过认证的会话,因此令牌中不包含用户信息,所以,创建会话双方没有密匙的
交换,这也不能让系统间发送加密信息。这并不表示空会话的令牌中不包含SID,对于
一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话创建的SID,用户名是
ANONYMOUS LOGON。这个用户名是能够在用户列表中看到的。可是是不能在SAM数据库中
找到,属于系统内置的账号。
(关于这部分对NULL SESSION的分析,能够参照:《NULL Sessions In
NT/2000http://rr.sans.org/win/null.php)

NULL会话几乎成为了微软本身安置的后门,可是微软为何要来设置这样一个“后
门”呢?我也一直在想这个问题,若是NULL会话没有什么重要的用途,那么微软也应该
不会来设置这样一个东西。好不容易才在微软上找到这个:

当在多域环境中,要在多域中创建信任关系,首先须要找到域中的PDC来经过安全通
道的密码验证,使用空会话可以很是容易地找到PDC,还有就是关于一些系统服务的问
题。并且LMHOSTS的#Include就须要空会话的支持,能够参考文章:
http://support.microsoft.com/defaul...b;EN-US;q121281
还http://support.microsoft.com/defaul...b;EN-US;q124184

其实创建一个空会话的条件也很是严格。首先要可以知足上面的,也就是打开TCP
139和TCP 445端口。咱们能够从一次关闭这两个端口的状况中看得出来。服务器关闭
445和139端口,而后咱们来进行空会话的链接。首先,客户端打算
链接的是445端口,而后再试图链接139端口。固然最后仍是失败了。
仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。若是没有IPC共享,即
使共享一个文件,有权限为Anonymous Logon,也不能创建会话,即便权限设置为彻底
控制,出现的链接错误依然是权限不够。这和其余账号是不同的。若是要容许一个文
件夹共享可以相似IPC$(命名管道而非共享)可以使用空会话,那么须要修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
\中的:NullSessionShares,
添加新的共享名,这样才能创建一个共享的空会话。这时,将不依赖IPC的存在了。
(即便这样的空会话对于后面的突破也是一点没可取之处的,由于没有了IPC$命名管
道,RPC不可取了,这下知道IPC这个命名管道的具体实现了。呵呵)

虽然空会话创建的要求很严格,可是那都是默认创建的。既然是默认的,对于使用
WIN2K系统的服务器来讲,就仍是有利用的价值。最明显的就是空会话能够很方便地连
接到其余的域,枚举用户、机器等。这也就是扫描软件进行探测的原理

二.Xp的两种共享模式
运行—gpedit.msc—本地计算机配置—windows设置—安全设置—本地策略—安全选项
在右侧窗口找到—网络访问:本地帐户的安全和共享模式
1.仅来宾
2.经典
XP专业版中默认设置时仅来宾 而在2000、2003中默认是经典
 访问模式工做过程

  当咱们将网上邻居工做模式设置成“仅来宾——本地用户将以来宾身份验证”模式时任何共享用户访问本地共享资源时他用户账号都会被自动映射为“Guest”此时Windows系统是不须要用户输入任何账号和密码这样来就能大大提升共享资源访问效率不过这须要共享资源所在主机系统事先将“Guest”账号启用起来;若是共享资源所在主机系统尚未启用好“Guest”账号时那么系统会弹出身份验证对话框在该对话框中咱们不但没法自行更改访问用户名称并且输入任何密码都无效

  若是网上邻居功能工做在“经典——本地用户以本身身份验证”模式状态下时那么客户端工做站系统首先以共享用户登陆本地系统用户账号以及密码来向共享资源所在主机系统提交身份验证信息比方说共享用户登陆客户端工做站系统时使用账号为“aaa”密码为“bbb”此时该用户若是经过网上邻居功能访问局域网中共享资源时客户端工做站系统就会自动把账号为“aaa”、密码为“bbb”信息提交给共享资源所在主机系统进行身份验证

  要是共享资源所在主机系统中刚好已经存在“aaa”用户账号而且对应该账号访问密码也为“bbb”时用户就能顺利地访问到目标共享资源;若是共享主机中存在“aaa”用户账号但对应该用户账号访问密码不为“bbb”时那么该用户在访问目标共享资源过程当中系统会弹出身份验证对话框此时该用户只要输入“aaa”账号、“bbb”密码就能进入下阶段安全验证环节了假若共享主机中不存在“aaa”账号而且对应主机系统中“Guest”账号也没有被禁止使用那么用户访问共享主机中共享资源时就会自动使用“Guest”账号来进行身份验证操做;要是共享主机中“Guest”账号已经被禁用时那么客户端工做站系统仍然会弹出身份验证对话框此时共享访问用户只有正确输入共享主机中事先已经存在用户名和密码才能进入下个身份验证环节

  在这里须要提醒各位注意是查看“Guest”账号是否处于起用状态时应该从计算机管理窗口中“本地用户和组”选项下面来查看而不该该从系统控制面板窗口中来查看系统控制面板窗口中“Guest”账号启用或禁止状态只是介绍说明了容许或禁止“Guest”账号从本地系统中进行登陆咱们能够按照下面思路方法来快速查看“Guest”账号实际启用状态只要先将共享主机系统切换到DOS命令行工做状态的后在DOS命令行中输入串命令“net user guest”单击回车键后若是系统返回如图1所示结果信息时那就介绍说明“Guest”账号尚未被成功启用

Windows网上邻居互访的基本条件:
1) 双方计算机打开,且设置了网络共享资源;
2) 双方的计算机添加了 "Microsoft 网络文件和打印共享" 服务;
3) 双方都正确设置了网内IP地址,且必须在一个网段中;
4) 双方的计算机中都关闭了防火墙,或者防火墙策略中没有阻止网上邻居访问的策略。

咱们在这里不考虑这些基本条件,而仅仅是作策略上的排错

了解了上面的一些原理 相信你们对局域网共享故障的排错应该不会有多少问题了

下面来看看一些实例


1.强力技巧



  (1)让“网上邻居”实现多点下载和断点续传



不少人喜欢直接经过访问“网上邻居”来共享文件,但使用“网上邻居”则有诸多不便:既不能多点下载,又没法断点续传。其实只要在本地机器架设FTP服务器,就可让“网上邻居”实现多点下载和断点续传。具体作法以下。

在本地电脑上利用SERV-U架设FTP服务器,而后设置站点和用户权限,在这里按照默认选项设置就好了。有关SERV-U架设的基本操做,不少文章已经介绍,这里再也不赘述。

在SERV-U中添加虚拟目录。在第一步“Physical path”的地方直接填入共享名,如\\192.168.0.1\xxx之类。后续步骤与添加本地目录方法相同。

经过Flashget的站点资源探索器进入ftp://192.168.0.1(也就是下载文件所在计算机的IP地址)。进入相应目录后,在右边窗口文件列表中选择要下载的文件或目录,单击右键,选择“下载”。

因为利用了Flashget的多点下载属性,在局域网条件下能够极大提升速度,网络情况良好状况下是原速度的若干倍,同时能够完美支持断点续传。

(2)不将最新打开的共享文档添加到“网上邻居”中



Windows会在“网上邻居”中自动记忆下最近打开过的共享文档,若是不喜欢这项设置,能够在[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

\Explorer]下新建一个名为“NoRecentDocsNetHood”的DWORD,而后将它赋值为1便可。

(3)让“邻居”更容易找到本身



通常状况下,一块网卡只能配置一个IP地址,但实际上能够为它添加更多IP地址。这样,你的电脑将会更频繁地向网络发送广播信息,对于新安装的操做系统,此方法能够帮助别人尽快找到你。在本地网卡上依次点击“属性→TCP/IP属性→高级”,而后按下“添加”按钮便可输入新的IP地址和子网掩码。

小提示

虽然一块网卡能够配置多个IP地址,但在网络邻居中链接的IP地址只有一个—网卡所配置的第一个IP地址。 (4)删除“网上邻居”保存的密码



访问网上邻居时提示输入密码,我为了方便,点了保存密码,但如今不想要这台电脑保存这个密码了,该如何清除呢?Windows XP的方法是依次进入“设置→控制面板→用户账户”,而后点击你的帐号,再点击左上角的“管理个人网络密码”。

若是是Windows 9x用户,只要删除该用户的PWL文件便可。

(5)加速“网上邻居”的启动速度



进入Windows XP的“网上邻居”后,它会搜索本身的共享目录、共享打印机以及和网络相关的计划任务,而后才显示出来,这样速度会慢不少。这些功能对咱们没多大用的话,能够将其删除。在注册表编辑器中找到[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Explore\RemoteComputer\NameSpace],删除其下的{2227A280-3AEA-1069-A2DE08002B30309D}(打印机)和{D6277990-4C6A-11CF87- 00AA0060F5BF}(计划任务),重启便可。

2.故障解决方案



故障现象1:一个小型网络,电脑之间物理链接没有任何问题,每台电脑都没有安装任何防火墙软件,但其中一台电脑出现“网上邻居”没有任何信息,输入“NET VIEW”命令结果是“清单是空的”,可是,网络中的其余电脑“网上邻居”中却有这台电脑的信息,并能正常访问。

缘由:因为“Microsoft 网络客户端”协议没有绑定,或Workstation服务不正常形成的(见图3)。

解决方法:将“Microsoft网络客户端”协议勾选,这一点对于Windows 98系统一样重要,只是设置的位置有所区别。

你知道吗?



细心的读者可能已经发现了,上面的例子是在没有防火墙的条件下进行的,为何要强调这一点呢?由于Browser服务是经过网络广播方式进行,不少防火墙会对广播的几个端口进行封堵(由于微软的NetBIOS协议有漏洞,会随机泄漏内存中的数据)。一样,Windows XP中的ICF(Internet链接防火墙)也会有这种做用。

故障现象2:初次经过“网上邻居”链接一台基于Windows XP的电脑时,咱们都会遇到这个现象(见图4)。

这时,无论在对话框中输入任何密码,都没有做用,而此时也不能修改登陆使用的帐户。

缘由:默认状况下,处于工做组状态的Windows XP Professional版本和Windows XP home版本电脑都会使用GUEST帐户做为网络访问的默认帐户。而在默认状况下WindowsXP中的GUEST帐户为禁用状态,因此会出现这个现象。

解决方法:启用GUEST帐户,而后参照本刊2004年第9期《Windows XP和平共享之终极报告》介绍的方法处理便可。

小提示

Windows XP中有一个颇有意思的小“BUG”,就是在“用户帐户”中的来宾GUEST帐户的启用和停用状态和实际的状况可能不一致。

可是,经过本地用户和组进行设置时,始终和实际状况保持相同状态。

故障现象3:有些电脑连入网络后,发现“网上邻居”没法看到其余用户,而设置和物理链接都没有异常。

缘由:在“个人电脑”上选择“属性→计算机名”,检查“计算机描述”内容,看看是否过长。

解决方法:在“运行”窗口输入“net config server /srvcomment:"text"”(不包括外侧引号),回车后便可把“计算机描述”改成“text”。重启电脑,检查“网上邻居”是否恢复正常。

故障现象4:“网上邻居”中“邻近的计算机”图标丢失。

缘由:误删除形成。

解决方法:在Windows 2000中,若是不当心删除了“网上邻居”中的这个图标,能够经过修改注册表的方法找回来,其实有一个更加简单的方法:就是在“个人电脑→属性→网络标识→属性”菜单中,将当前计算机加入另一个工做组,这样,“邻近的计算机”图标就会重建,再把工做组改回来就能够了。
Xp共享机制
被访问电脑上符合如下条件
1.不使用简单文件共享
2.本地安全策略设在“使用空白密码的本地账号容许进行控制台登陆”已启用
3.本地安全策略设在“网络访问:本地帐户的共享和安全模式”为经典
4.本地安全策略设在“拒绝从网络访问这台计算机”中没有guest



相关文章
相关标签/搜索