三,局域网共享故障的分析与排除

IPC、Server服务与共享故障

临近毕业了,学生小王找了一家平面设计公司作为实习单位,这天办公室有同事急匆匆找网络部索要杀毒软件,但不凑巧管理员外出未归,小王为人比较热心,虽然自己不是学网络专业的,可是想想也略懂皮毛,就自告奋勇去帮忙了,幸好只是个小病毒,他轻易就解决了,在同事的夸奖下,小王心血来潮顺便给她做了系统优化。

可是才过十几分钟,那个同事又出来找网络部了,她说自己的机器被小王摆弄后无法打开别人计算机的共享了,这下,小王第一次明白了什么叫好心的后果……

我在前面说起Windows的局域网共享时,提到了IPCInternet Process Connection),IPC是NT以上的系统为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用,微软把它用于局域网功能的实现,如果它被关闭,计算机就会出现“无法访问网络邻居”的故障。

在Windows NT以后的系统里,IPC是依赖于Server服务运行的,一些习惯了单机环境的用户可能会关闭这个服务,这样的后果就是系统将无法提供与局域网有关的操作,用户无法查看别人的计算机,也无法为自己发布任何共享。

要确认IPC和Server服务是否正常,可以在命令提示符里输入命令net share,如果Server服务未开启,系统会提示“没有启动 Server 服务。是否可以启动? Y/N) [Y]:”,回车即可以启动Server服务。如果Server服务已开启,系统会列出当前的所有共享资源列表,其中至少要有名为“IPC$”的共享,否则用户依然无法正常使用共享资源。

除了Server服务以外,还有两个服务会对共享造成影响,分别是“Computer Browser”和“TCP/IP NetBIOS Helper Service”,前者用于保存和交换局域网内计算机的NetBIOS名称和共享资源列表,当一个程序需要访问另一台计算机的共享资源时,它会从这个列表里查询目标计算机,一旦该服务被禁止,IPC就认定当前没有可供访问的共享资源,用户自然就没法访问其他计算机的共享资源了;后者主要用于在TCP/IP上传输的NetBIOS协议NetBT)和NetBIOS名称解析工作,NetBT协议为跨网段实现NetBIOS命令传输提供了载体,正因如此,早期的黑客入侵教材里“关于139端口的远程入侵”才能实现,因为NetBIOS协议被TCP封装起来通过Internet传输到对方机器里处理了,同样对方也是用相同途径实现数据传输的,否则黑客们根本无法跨网段使用网络资源映射指令“net use”。对于本地局域网来说,NetBT是SMB协议依赖的传输媒体,也是相当重要的。

如果这两个服务异常终止,局域网内的共享可能就无法正常使用,这时候我们可以通过执行程序“services.msc”打开服务管理器,在里面查找“Computer Browser”和“TCP/IP NetBIOS Helper Service”服务并点击“启动”即可。

系统安全策略与共享故障

熟悉Windows系统的用户或多或少都会接触到“组策略”gpedit.msc),这里实际上是提供了一个比手工修改注册表更直观的操作方法来设置系统的一些功能和用户权限,但是这里的设置失误也会影响到局域网共享资源的使用。

由于IPC本身就是用于身份验证的,因此它对计算机账户的配置特别敏感,而组策略里偏偏就有很多方面的设置是针对计算机账户的,其中影响最大的要数“计算机配置 – Windows配置 – 安全设置 – 本地策略 – 用户权利指派”里的“拒绝从网络访问这台计算机”,在Windows 2000系统里默认是不做任何限制的,可是自从XP出现后,这个部分就默认多了两个帐户,一个是用于远程协助也就是被简化过的终端服务)身份登录的3389用户名,另一个则是我们局域网共享的基本成员guest!

许多使用XP系统的用户无法正常开启共享资源的访问权限,正是这个项目的限制,解决方法也很容易,只要从列表里移除“Guest”帐户就可以了。

除了与帐户相关的策略,这里还有几个与NetBIOS和IPC相关的组策略设置,它们是位于“计算机配置 – Windows配置 – 安全设置 – 本地策略 – 安全选项”里的“对匿名连接的额外限制”默认为“无”),对于XP以上的系统,这里还有“不允许SAM账户和共享的匿名枚举”默认为“已停用”)、“本地账户的共享和安全模式”默认为“仅来宾”),其中“对匿名连接的额外限制”的设置是可以直接扼杀共享功能的,当它被设置为“不允许枚举”时,其他计算机就无法获取共享资源列表,如果它被设置为“没有显式匿名权限就无法访问”的话,这台计算机就与共享功能彻底告别了,所以有时候实在找不出故障,不妨检查一下该项目。

权限与共享的冲突

如今的局域网普遍建立在Windows 2000以上的系统架构上运行,而且IPC的作用本来就是为了提供身份验证,因而共享始终离不开权限的影子,何况如果系统不会把文件共享的访问身份设置为最小权限的来宾帐户的话,别有用心的访问者就能轻易夺取管理员级别了。但是也正因为这样,一些时候权限反而会成为阻挠共享顺利进行的罪魁祸首。

防火墙与共享的矛盾

现在基本上已经没有一台计算机是不曾安装网络防火墙和病毒防火墙的了,可是用户在众多的墙里享受安全特性的时候,偶尔也会发现局域网共享莫名其妙的失败了,如果用户留意到防火墙正在闪烁的报警状态,也许会发现日志上记录着“计算机x.x.x.x 试图访问本机139 – NetBIOS端口,该操作已被拦截”,这是为什么?因为防火墙把NetBIOS的通讯给拦截掉了,别忘记NetBIOS可是局域网通讯的基础。防火墙此举是为了阻止前面提到的利用NetBT进行的“139入侵”模式攻击,虽然防火墙规则里可能写着“允许局域网资源共享”,但是可能这条规则没被选中,或者防火墙没能认出这是一个局域网。

知道了缘由,解决起来也就容易多了,对于有原配规则设置的防火墙,只要勾上“允许局域网资源共享”,就能让NetBIOS协议正常通讯了,如果没有,就自己建立一个规则:协议方向为“入”,协议选择“TCP”,端口范围134—139,标志位“SYN”,满足时的规则为“通行”即可。一些XP系统内置的Windows防火墙ICF往往会掐了自家共享的脖子,如果是这样,就把它关掉,因为ICF始终比不过专门的防火墙,更别指望靠它抵挡一切入侵了。

特殊的共享故障

在一小部分机器里,网络共享是艰难的,它们怎么做也看不到对方的计算机和资源列表,但是使用一些局域网管理工具如LANExplorer、LANetAdmin等却能看到一切,对于这种计算机,只能通过直接输入资源名称或把对方共享资源通过net use命令给映射过来作为虚拟盘符才能工作,对于这种机器,它实际上并没有故障,只是对方通过某种手段阻止了计算机向浏览主控服务器通报自己的共享资源,让整个局域网里的浏览列表缺少对着台计算机的描述,也就无法在网络邻居里发现它了。

另一种情况是大家都能看到网络邻居里的计算机,但某台计算机的网络邻居里却是空的,而且它也无法通过输入UNC地址即前面提到的共享资源,它是用“\\计算机\资源”的格式表达的)来访问到对方计算机,用户会收到一个错误提示“找不到网络路径”,这种就是真正的故障了,一般是因为计算机没有正常获得浏览列表所导致,某种原因让它无法获得浏览主控服务器返回的数据,我们可以先尝试使用“nbtstat -R”清空本机的浏览列表缓存试试看,或者运行“net stop browser && net stop LmHosts && net stop Server && net start Server && net start LmHosts && net start browser”命令集来重新启动几个与文件共享相关的服务,不过建议已经成为浏览主控服务器身份的计算机不要轻易执行这个命令,因为它可能会让你丧失在该工作组里的主控身份,因为当一个网络里的浏览主控服务器停止运行时,同一工作组里的某台计算机会变为浏览主控服务器,这个过程被称为“浏览主控服务器重选”,目的是为了保持工作组共享资源的正常访问,但是如果不幸这个浏览列表被安排在一台故障机器上,整个工作组可能就无法正常进行共享访问了。如果经历这些步骤还是无法查看网络邻居,可以试试看修改“TCP/IP协议属性-高级-WINS”里的“启用TCP/IP上的NetBIOS”,最后可以尝试删除“Microsoft 网络的文件和打印机共享”和“Microsoft 网络客户端”再重新添加一次。

四,共享与安全

也许,只要是有开放互连的地方,就会有无法逃脱安全问题的难堪,共享更是不例外,许多用户根本不知道,默认情况下系统就已经为你开了一个庞大的后门供人来品尝,而这个后门的官方名称就是“默认共享”——系统会自动为用户开放以每个盘符进行命名的隐藏共享“盘符$”,虽然网络邻居里看不出来,但是有经验的用户都知道那是什么一回事了,只需使用“\\IP\盘符$\”的格式便完成了资源的访问操作。而另一个被称为“默认管理共享”ADMIN$)的共享,更是提供了一系列强大的网络指令,甚至包括关机命令。你也许会说,这不正符合微软的构思“远程管理”吗?话虽如此,但是对于一个只有来宾帐户身份标识的共享来说,它能判断出谁是主人吗?

因此,稍有经验的用户对这两个共享都是深恶痛绝的,幸好系统提供了永久关闭它的方法:运行regedit开启注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters”分支,添加名为“AutoShareServer”和“AutoSharewks”的DWORD类型值,均设为0,重启计算机就会发现仅仅剩下一个维持共享功能的IPC$了。

除了这里,共享还为我们带来了“计划任务”的潜在危害,即通过IPC$,入侵者可以设定机器在一个固定的时间里执行某种操作,这实际上是通过“计划任务”实现的,而“计划任务”的实体为“Task Scheduler”服务项,赶快进services.msc里禁止掉它。

五,结语

正如麻雀“虽小”的谚语一样,即使只是小小的局域网,小小的共享操作,其中涉及到的东西,也没有绝对简单的,我们要用好科技带来的一切,就必须掌握它的根本,成为计算机的主人。局域网技术仍然在不停发展,或许以后的文件共享概念又会再次升级,至于它是否能越来越平民化,就让我们拭目以待吧。

  1. 局域网中安全共享打印对口偏招
  2. 局域网中“隐形共享”的安全性


相关内容

    暂无相关文章