構建沒有NT伺服器的NT域 摘要 By 風過留楓, 出處:轉載自賽迪網 作者:楊鵬 國內用戶的中小型網路大量採用了Windows NT作爲網路作業系統(NOS),提供諸如用戶管理、文件共用等基本網路服務。如果出於工作上的考慮,必須使用Windows NT域模型來管理網路,同時出於性能、經濟或者其他方面的考慮,又想放棄NT那樣複雜的管理、昂貴的許可和不太高的效率,那麽就請進入自由的Samba世界!Samba是一套自由的、開放源代碼的軟體。一位元傳說中的高手,依據Windows網路的基本協定——SMB(Server Message Block),編寫了一套將Unix系統與Windows網路完全融合的軟體。因爲Samba剛好包含S、M、B三個字母,所以這一整套系統被命名爲Samba。 Samba與Windows網路 Windows系列作業系統通過“網上鄰居”提供了便捷的網路資源訪問。這實際上是Windows瀏覽服務(請勿與Internet上的Web瀏覽混淆)提供的支援。Windows瀏覽服務基於NetBIOS(名字),每台Windows主機都會向網路發送Windows瀏覽資訊,並保留一份網路主機名單。這樣,當打開網上鄰居的時候,就可以看見所有機器的NetBIOS名字。由於這份名單定時更新,所以當某些機器關機後,我們仍然能夠在網上看見它。 在域模式出現以前Windows網路是基於工作組的,每台主機都要負責維護自己的用戶名/密碼,以及共用資源認證。這樣難於保證網路的安全和性能,而且訪問不同機器的不同資源都要提供相應的密碼,非常繁瑣和低效。根據商業用戶對安全和工作效率的要求,Windows商業網絡提出了域的概念。在帶有域的Windows網路中,主網域控制器自動成爲主瀏覽伺服器,負責提供並維護這份名單,其他Windows NT機器可以競選成爲輔助瀏覽伺服器協助工作。域提供統一的安全措施,所有用戶的認證和資源分享工作由主網域控制器進行管理,可以實現整個域內一次認證、處處通行的目的。 Samba是一套自由的、開放源代碼的軟體,雖然無法公開得到應有的技術資料(因爲SMB協定是私有的),但它還是逐步發展起來。現在,Samba已不是簡單的Unix/Linux與Windows間的橋梁,它可以讓Unix系統代替NT主網域控制器管理整個Windows網路。這樣,我們不需要真正的NT伺服器,也可以構建真正的Windows 域網路。 Samba能夠模仿NT PDC向網路發送PDC競選消息,並允許Windows客戶機登錄,就像一台NT PDC所做的那樣。它會在啓動時告訴其他Windows機器:我是主網域控制器,登錄認證找我好了。此時域中就不能再有其他聲明爲PDC的NT Server了,否則會導致PDC競選失敗,並且Samba必須提供域登錄,這樣Windows客戶才能在啓動時輸入用戶名、密碼和功能變數名稱登錄到域。需要注意的是,此時的安全級別必須是user,因爲server和domain級別的認證都需要其他伺服器配合,而PDC卻只有一個。這樣,實際上使用了本地密碼,最後出於安全的考慮必須使用加密密碼。 伺服器的配置 下面是Linux下作爲PDC的Samba伺服器的基本配置:
domain login表示Samba提供客戶機的域登錄;encrypt passwords表示使用加密的密碼;domain master表示Samba宣告自己是這個域的主網域控制器;preferred master則是附加的競選選項;local master讓Samba不但提供域瀏覽,也提供本地瀏覽服務。 這樣配置以後,根據NT域管理還要添加域用戶。這個步驟很簡單: 首先創建一個本地Unix賬號:
這條命令創建了一個名爲myaccount的普通Unix用戶。 然後根據它創建一個Samba用戶:
或者是:
用戶端設置 普通的Windows 9X(95/ME)用戶端設置非常簡單,因爲完全不需要設置就可以正常登錄到Samba.net域。它根本不知道網域控制器已經由NT Server變成了Samba Server。它可以執行登錄腳本,可以應用系統策略和用戶配置文件,以及其他需要在NT Server上完成的所有事情。 如果用戶端是NT 4.0/2000就麻煩一點,因爲NT的域認證基於機器信任賬號來進行。所以必須在Samba伺服器上先創建機器賬號。下面以一個名爲w2000的電腦爲例(由於這部分NT和2000差別不大,我們通稱爲NT):
我們創建了一個Unix本地賬號,出於安全考慮不需要它登錄到Linux進行任何操作,因此它的用戶目錄是/dev/null,Shell是/bin/false。 然後,我們就可以用smbpasswd創建相應的Samba機器賬號:
其中,-a是添加,-m是機器信任賬號。這樣,依據w2000$的Unix賬號創建了一個NT域的機器信任賬號w2000。 如果在安裝NT時加入Samba域,可以直接選擇將機器加入到域中,但最好不要選擇在域中添加電腦賬號。因爲這樣必須在Linux上設置相應的執行腳本,對初學者來說不但麻煩,而且極易出錯。 如果在已安裝的NT工作站上重新加入到域,會要求提供可在域中添加賬號的用戶名和密碼,比如普通NT Server上的Administrator,在Samba伺服器上可以用root組的成員來完成這一操作。如果不敢確定,我們可以創建一個root的Samba賬號:
輸入兩遍口令。 這樣,Samba的工作就完成了,在NT用戶端上執行更改用戶或網路ID(Win2000),輸入用戶名(Samba密碼文件中必須存在這個用戶)、域和密碼,就會加入到Samba域。如果要提供可以添加賬號的用戶名,使用前面的root即可。 結束語 通過Samba PDC,我們可以將Windows網路管理全部納入Linux之中,從而利用Linux配置、管理靈活的特點,可以方便地實現文件共用認證、印表機共用和其他一些常用的功能。 由於SMB協定的性質,Samba開發小組無法獲得協定細節。因此,目前的Samba PDC對較爲複雜的域結構支援尚不夠完善。 例如,它不支援其他Windows NT伺服器作爲備份網域控制器(BDC)。也就是說,域中只能存在一個網域控制器。在大型網路中,大量的認證會話可能會影響伺服器性能。 另外,它在用戶端對文件共用進行管理時可能存在一些問題,而且不支援多主域結構,無法建立兩個域之間的信任關係。我們相信這些問題都會被一一解決。 |
|