熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

關於NETBIOS理清楚概念的文章

2013-11-11 21:55:10  來源: Windows系統管理 

  有關網上鄰居的問題問的人一直比較多在理解上存在的誤區也普遍較為嚴重鑒於Microsoft的NETBIOS文檔不是很細致我四處收集了一些相關資料加上自己的實踐經驗寫了這個系列希望能對大家有所幫助.
  
  本來想為了增加可讀性把這個系列寫成問答的形式不過一時之間腦袋裡也編不出這麼多的問題還是按部就班先感性的對微軟的浏覽服務作一大致介紹然後再深入剖析NETBIOS的具體工作機理大家要是有什麼問題可以提出來我們一起討論
  
  ***微軟網絡浏覽過程簡介***
  
  在Windows NT系統管理技術內幕一書中講到了一個非常具有代表性的問題我把它摘抄了下來
  
  問什麼情況下會導致在網絡鄰居中計算機能看見卻無法訪問或可以訪問卻看不見?
  
  請選擇最佳答案
  
  A你的網絡存在物理問題比如網線
  
  B作為域主浏覽器的Windows NTserver的浏覽服務壞了
  
  CWindows NTserver網卡有問題
  
  D你的網絡沒有問題用戶描述的是正常的微軟浏覽現象
  
  正確答案 D
  
  書上的解釋:微軟的網絡浏覽可能在使用中出現中斷而實際上它們並沒有中斷 這種誤解是由於用戶對微軟網絡浏覽的處理過程不熟悉造成的
  
  就象同學們經常在抱怨的為什麼別人的網上鄰居可用我的卻不行?為什麼有時候可以浏覽有時候卻無法浏覽網絡?解鈴還須系鈴人讓我們一起去看看微軟的網絡浏覽到底是如何實現的鑒於大家可能對NT的概念還不甚了解出現浏覽故障的也多為的機子我將以工作組模式為大家講解
  
  什麼是浏覽列表(Browsing List)
  
  在微軟網絡中用戶可以在浏覽列表裡看到整個網絡(何指?子網還是廣播域?大家可以考慮考慮)上所有的計算機當你通過網上鄰居窗口打開整個網絡時你將看到一個工作組列表再打開某個工作組你將看到裡面的計算機列表(也可在 DOS方式下用net view /domain:workgroupname命令得到)這就是我們所說的 Browsing List工作組從本質上說就是共享一個浏覽列表的一組計算機所有的工作組之間都是對等的沒有規定不可以讓所有的計算機同處於一個工作組中
  
  浏覽列表在哪裡
  
  曾在木棉上看到過一場爭論有人說網上鄰居裡的計算機列表是廣播查詢得來的可有人舉反例說我的同學都關機了可我還是能在網上鄰居裡看到它應該是從HUB或交換機之類較為固定的設備的緩存中取得的 其實他們都只說對了一個方面把他們二人的說法結合起來就是正確答案了 浏覽列表是通過廣播查詢浏覽主控服務器由浏覽主控服務器提供的
  
  浏覽主控服務器又是什麼
  
  浏覽主控服務器是工作組中的一台最為重要的計算機它負責維護本工作組中的浏覽列表及指定其他工作組的主控服務器列表為本工作組的其他計算機和其他來訪本工作組的計算機提供浏覽服務每個工作組都為會每個傳輸協議選擇一個浏覽主控服務器而我們經常遇到的無法浏覽網絡的錯誤大多是因為你所處的工作組沒有浏覽主控服務器而造成的你可以在一個工作組中用NBTSTAT a computername 命令找出使用NBT協議的浏覽主控服務器它的標識是含有\\_MSBROWSE_名字段
  
  浏覽主控服務器是如何指定的
  
  缺省情況下win工作組中的浏覽主控服務器是該工作組中第一台啟用文件及打印機共享功能的計算機也允許手工將一台win計算機配置為浏覽主控服務器(方法會在後面講述網絡配置時具體介紹但由於浏覽主控服務器需要維護動態浏覽列表性能會受影響)如果一個工作組中有多台計算機配置了這個選項或是當前的浏覽主控服務器關閉了系統又沒有其他計算機啟用主控設置時就要進行主控浏覽器的選舉
  
  如何通過浏覽器選舉產生浏覽主控服務器
  
  關於浏覽器的選舉報文不太好抓包我就只好按書上的東西來講述了其實過程很簡單首先由一台計算機發送一個選舉臨界報文該報文包含了來自發送計算機的信息(操作系統版本及NET名等)選舉報文向網絡中廣播工作組中的每一台計算機都會用自身信息與選舉報文進行優先級比較主要是操作系統起主要作用記得好像是NT Server>NT Workstation>Win>WFWG反正到最後是那個自身條件最好的成為新的浏覽主控服務器
  
  整個網絡浏覽的過程是怎樣的
  
  當一台win進入網絡時如果它帶有服務器服務(啟用了文件及打印機共享)會向網絡廣播宣告自己的存在而浏覽主控服務器會取得這個宣告並將它放入自己維護的浏覽列表中而沒有在相應協議上綁定文件及打印機共享的計算機則不會宣告因而也就不會出現在網絡鄰居裡了
  
  當客戶計算機想獲得需要的網絡資源列表時首先會廣播發出浏覽請求浏覽主控服務器收到請求後如果請求的是本組的浏覽列表則直接將客戶所需的資源列表發回如果請求的是其它工作組的浏覽列表浏覽主控服務器會根據本身Browsing List中的記錄找到相應工作組的主控浏覽器返回給用戶用戶可從那裡得到它想要的浏覽列表至於如何去和另一台計算機共享交換資源就不是我們這裡要討論的問題了
  
  明白了網絡浏覽的原理下面我給大家講一個有用的應用現在很多同學出於安全的考慮都不太歡迎陌生人通過網上鄰居訪問自己的機子可有時下部電影又需要給認識的同學共享出來因而還不能刪除文件及打印機共享服務怎麼辦?有些人給共享名加個$以達到隱藏的效果可這用DOS下的net share是可被看到的有些人給共享加上密碼可聽說這也是有辦法破解的而且很容易激起黑客同志的好奇心有沒有辦法將自己的機器在網絡鄰居裡隱藏起來呢?而對於認識的同學可以讓他用\\IP 來訪問
  
  想對了關鍵就是要阻止自己的機器向網絡中去宣告自己而且我知道我們其中的一些人已經將此變成了現實至於方法嘛就不要來問我了
  
  注因為有關win浏覽服務的資料很少涉及的書籍也多為以NT的模型進行介紹因而我只能根據自己的理解結合netxray的實踐來測試細節部分難免有錯歡迎大家指正
  
  在我的網上鄰居裡為什麼有些機子訪問不了
  
  如果微軟的網上鄰居真能做到所見即所得相信抱怨它的人不會象現在這麼多可通過前面對浏覽服務的介紹大家已經知道這是不可能的因為浏覽列表的獲得不是通過訪問其中每一台機子得到的很多時候網絡中的計算機並不能正確更新浏覽列表當一台計算機正常關機時它會向網絡發出廣播宣告使浏覽主控服務器及時將它從浏覽列表中刪除而非正常關機後浏覽列表裡仍會把該條目保持很長一段時間(NT下是分鐘)這就是我們仍能在網絡鄰居裡看到它的原因的穩定性是眾所周知的 在還沒來得及關機前就已經崩潰了^^
  
  SMB(Server Message Block)協議在NT/中用來作文件共享在NT中SMB運行於NBT(NetBIOS over TCP/IP)上使用(UDP)(TCP)端口
  
  在SMB可以直接運行在tcp/ip上而沒有額外的NBT層使用TCP 端口因此在上應該比NT稍微變化多一些可以在網絡連接/屬性/TCPIP協議/屬性/高級/WINS中設置啟用或者禁用NBT(NetBIOS over TCP/IP)
  
  當使用網絡共享的時候就面臨著選擇或者端口了下面的情況確定會話使用的端口
  
  如果客戶端啟用了NBT那麼連接的時候將同時訪問端口如果從端口得到回應那麼客戶端將發送RST到端口終止這個端口的連接接著就從端口進行SMB的會話了如果沒有從端口而是從得到回應那麼就從端口進行會話如果沒有得到任何回應那麼SMB會話失敗
  
  如果客戶端禁用了NBT他就將只從端口進行連接當然如果服務器(開共享端)沒有端口進行SMB會話的話那麼就會訪問失敗了所以禁用端口後對訪問NT機器的共享會失敗
  
  如果服務器端啟用NBT那麼就同時監聽UDP 端口和TCP如果禁用NBT那麼就只監聽端口了
  
  所以對於來說共享問題就不僅僅是端口端口同樣能夠完成
  
  關於空會話
  
  NULL會話(空會話)使用端口也同樣遵循上面的規則NULL會話是同服務器建立的無信任支持的會話一個會話包含用戶的認證信息而NULL會話是沒有用戶的認證信息也就好比是一個匿名的一樣
  
  沒有認證就不可能為系統建立安全通道而建立安全通道也是雙重的第一就是建立身份標志第二就是建立一個臨時會話密匙雙方才能用這個會話進行加密數據交換(比如RPC和COM的認證等級是PKT_PRIVACY)不管是經過NTLM還是經過Kerberos認證的票據終究是為會話創建一個包含用戶信息的令牌(這段來自Joe Finamore)
  
  根據WIN的訪問控制模型對於空會話同樣需要提供一個令牌但是空會話由於是沒有經過認證的會話所以令牌中不包含用戶信息因此建立會話雙方沒有密匙的交換這也不能讓系統間發送加密信息這並不表示空會話的令牌中不包含SID對於一個空會話LSA提供的令牌的SID是S這就是空會話建立的SID用戶名是ANONYMOUS LOGON這個用戶名是可以在用戶列表中看到的但是是不能在SAM數據庫中找到屬於系統內置的帳號
  
  (關於這部分對NULL SESSION的分析可以參照《NULL Sessions In NT/》)
  
  NULL會話幾乎成為了微軟自己安置的後門但是微軟為什麼要來設置這樣一個後門呢?
From:http://tw.wingwit.com/Article/os/xtgl/201311/9532.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.