新浪網

  新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(68):根據Windows網絡設置Samba
 


FreeBSD連載(68):根據Windows網絡設置Samba

http://www.sina.com.cn 2000年1月9日 18:26 王波

根據Windows網絡設置Samba

  使用SMB協議實現的網絡的情況非常不同,有的網絡僅僅由几台Windows計算機組成,只需要提供計算機之 間最簡單的資源共享,并不需要一個中心控制點 ── 文件服務器提供服務,而有的網絡由多個物理網絡通過路由器連接而 成,網絡中擁有多種文件/打印服務器,網絡中的操作系統也各不相同,包括Windows和Unix。

  Samba服務器能適應這些不同要求的網絡的不同要求,然而由于網絡的需要各不相同,因此對Samba的設置 也不相同。如何根據需要來規划網絡、設置Samba是一個靈活但復雜的問題,同時存在各種各樣的設置方式都能滿足用戶 的需要,這里給出的只是一種可行性建議。

  • 小型網絡,無NT服務器

  這種網絡的特征是網絡資源的使用程度不大,通常所有的計算機都位于一個局域網內,几乎沒有專用文件/打印服務 器。所有的計算機均使用工作組方式相互訪問。此時使用Samba服務器的目的是為了更好的利用網絡資源,提供方便的文 件/打印服務。

  在這樣的網絡中,僅僅需要最簡單的文件/打印共享服務。雖然共享級認証方式能夠滿足此時的需要,但是最好使用 用戶級認証方式,因為只有這樣才能充分發揮服務器提供服務的優勢。需要為每個使用者在FreeBSD服務器上分別建立 帳戶,這樣缺省設置就自動為用戶共享其個人目錄,用做私人數據的保存。為了網絡用戶之間的相互交換數據,可以設定一個 公用共享目錄,例如上面例子中的[public]共享目錄。

  由于Samba服務器具有優秀性能,最好將Samba服務器設置為本地的Browser,僅需要設置local master參數,并給os leverl一個較大的值就能達到目的。可以不使用nmbd的名字解析能力用做名字 服務器,因為此時都在一個物理網絡內,b-node廣播方式能夠提供正確的解析。

  當為Windows 98或者Windows NT SP3提供認証的時候,它們將使用加密過的口令進行認証 ,這能提供更大的網絡安全性。Samba服務器也能提供這種認証,然而對于這樣的小型網絡,使用原有的非加密口令認証 方式就足夠了,因為口令不會跨越網絡傳輸,安全問題限制于本地網絡內部。在Samba的文檔中,提供了將Windows 98或Windows NT SP3設置為原有認証方式的注冊表信息,分別為/usr/local/share/examples/samba 目錄下的Win95_PlainPassword.reg和NT4_PlainPasswor.reg文件。

  • 小型網絡,與NT服務器相互協作

  這種網絡中存在一個或几個Windows NT服務器,因此網絡中的關鍵問題是認証的策略問題。有的網絡中使 用分散式的認証策略,即各個服務器各自認証使用自己資源的客戶,適合網絡上服務器屬于不同管理者的情況,另一種情況是 希望在訪問多個服務器時使用一致的認証,無論是在NT服務器還是在Samba服務器,對于同一個用戶只需要使用一個口 令就能使用網絡資源。

  當使用分散認証策略的時候,Samba服務器可以使用缺省設置security=user,當要求Samba 服務器和NT服務器認証同樣的用戶的時候,可以使用security=server,讓NT服務器來認証用戶,此時還 需要設置password server的名字,以設置提供認証的NT服務器的名字。

  由于是使用NT服務器對用戶進行認証,然而NT上的用戶與FreeBSD用戶的名字可能不同,為了將NT用戶 重新映射到FreeBSD上的Samba用戶,就需要進行用戶名的映射。這需要使用username map參數,這 個參數設置一個用于用戶名映射的文件名,在這個指定的文件中,可以設置FreeBSD用戶(或用戶組)等價于哪個NT 用戶(或用戶組)。

  • 具備多個物理網段的網絡

  如果用戶的網絡跨越了多個物理網絡,為了實現瀏覽,最重要的問題就是設置使用名字服務器進行名字解析。此時可 以選擇使用Samba的nmbd作為名字服務器,也可以使用Windows NT的WINS服務器作為名字服務器。

  但如果計划在網絡上使用多個NetBIOS服務器,以提供相互備份的能力,就只能使用多個Windows NT 來運行WINS,WINS的一項功能是具備相互復制的能力,而nmbd不能和其他WINS服務器相互復制數據。WINS 使用這個功能主要是用于克服系統操作本身的故障,以提高可靠性。對于一般的網絡,使用一個名字服務器,尤其是運行 在高穩定性的FreeBSD系統之上的Samba,可靠性就能滿足網絡的需要。當然偶然發生的物理故障是無法避免的, 這樣將使用分布在不同地點的多個服務器會有一定的幫助。

  當選擇好了名字服務器的設置策略,就可以決定Samba是用作名字服務器,還是普通的使用名字服務器的客戶機 。Samba可以同時設置為名字服務器和客戶,這并不沖突。還可以設置Samba為wins proxy和dns proxy ,為不能使用wins和dns進行名字解析的NetBIOS客戶提供b-node方式的代理解析。

  當網絡使用的是分散式的工作組方式的時候,要實現跨越子網的瀏覽,Samba服務器就擔任了重要的角色。因為 不存在域控制器,此時Samba要設置成為Domain master Browser,以提供不同子網間的Local master Browser相互交換瀏覽信息。

  如果遠程網絡中的計算機不使用本地的Samba作名字服務器,該網絡中的Domain master Browser 也不與本地網絡的Local Master Browser交換信息,那么那個網絡上的Brower就無法了 解本地上的資源列表。作為本地Browser的Samba服務器能使用一種折衷的方法來通知遠程網絡上的Browser ,告訴它本地網絡提供的資源服務,這就稱為remote announce,并能用于遠程網絡中的瀏覽信息與本地網 絡同步。為了使用remote announce,需要設置remote announce和remote brow se sync參數,使用的設置值為遠程網絡的廣播地址,如192.168.1.255,可以同時設置多個地址,以同 步多個遠程Browser。

  如果網絡中使用NT域認証方式,就不要讓Samba和域控制器爭奪Domain master Browser 的權利,Samba還不能設置為PDC為整個域服務。因此需要設置domain master=no,但可以讓Samba 服務器在沒有PDC的子網中擔當Local master Browser的任務,即設置local master=yes。

  當前NT服務器使用SAM數據庫用于保存認証信息,但是下一代NT服務器將轉向kerberos認証方式,這 種認証方式本來就是在Unix上開發的,更有利于與Samba軟件集成在一起。

  此時也可以使用NT的域控制器提供認証(設置security=server,并將password server 設置為PDC或BDC),以使得Samba服務器能承認域控制器認証過的用戶。這樣客戶技朮就可以使用加密認証 方式,因為Samba服務器不進行認証,僅僅是把認証信息轉發給相應的NT服務器進行認証。

  • 支持加密口令認証

  前面提到過為了適應Windows 98和Windows NT 4.0 SP3之后的客戶使用加密過的口令 認証方式,可以將客戶計算機再次設回使用普通口令認証方式來解決認証問題,然而當客戶可能跨越子網進行認証的時候,就 應該使用加密認証,以防止口令明文跨越子網傳輸,提供更高的安全性。

  為了支持加密口令認証,就需要使用獨立于FreeBSD系統口令文件之外的認証系統,需要在smb.conf 中的[globals]中增加設置為:

      encrypt passwords = yes
      null passwords = yes
      smbpasswd file = /usr/local/private/smbpasswd

  然后使用命令smbpasswd -a user,將用戶user及其口令加入指定的口令文件smbpasswd 文件中,這樣在進行認証時,就能通過這個smbpasswd文件中的設置,通過口令的加密認証方式進行認証了。然 而此時將繞過系統標准認証過程,原有的用戶數據必須重新一個一個加入smbpasswd文件中才能完成認証,沒有添加 到這個文件中的用戶就無法完成認証以使用系統資源。其中null passwords的設置不是必須的,只是Windows NT中一般許可用戶使用空口令,這項設置用來與Windows NT的設置保持一致。加密口令文件smbpasswd 在FreeBSD系統下缺省位于/usr/local/private目錄中。

  Samba手冊中使用的目錄可能會與FreeBSD中的具體目錄不一致,這是因為使用Packages Collection 或Ports Collection安裝的Samba,其軟件的安裝目錄均按照FreeBSD的習慣 做了調整,因此會與Samba手冊提到的位置不太相同。

  此時,使用SWAT的PASSWORD設置選項可以直接將一個用戶加入口令數據庫,并打開訪問這個用戶的許可 ,對于加密口令的管理更為簡便。因此應該使用SWAT來管理加密口令數據文件,而不必直接使用smbpasswd命令。

  • 將Samba服務器加入域

  使用域代替工作組的好處是,所有的客戶能使用同一個認証來訪問所有的資源。雖然域的概念還是一種非常初級的目 錄服務的概念,但由于Microsoft網絡的流行,它的重要性也非常之大。

  在一個以域為認証方式的網絡中,可以將Samba加入域中去,以采用與域一致的認証和管理方式。在一個域中的 SMB計算機有各種形式,一種為提供認証服務的域控制器,分為PDC(Primary Domain Controller) 和BDC(Backup Domain Controller),另一種為不提供認証服務的成員服務器,還有 就是普通客戶機。Samba當前能作為普通成員服務器加入域。

  為了將Samba加入域,首先要為Samba服務器在PDC服務器中創建一個帳戶,這個操作就如同為普通NT 成員服務器創建用戶一樣,通過NT服務器的Server Manager for Domain來完成。

  加入NT域的時候首先需要停止Samba服務器的正常工作,使用smbpasswd將這個Samba服務器登 記進域,這需要使用:

# smbpasswd -j DOMAINNAME -r SAMBASRV

其中DOMAINNAME為域的名字,SAMBASRV為前面PDC上為Samba服務器創建的帳戶名,這樣Samba服務器就加入了域。然后需要更改smb.conf的設置:

       security = domain
       workgroup = DOMAINNAME
       password server = PDC_name BDC1 BDC2

  password server設置為這個域內的PDC和BDC的名字。此后,再次啟動Samba服務器,則 服務器就為這個域的一個成員服務器了。

  雖然使用域認証方式和服務器認証方式都能讓同樣的用戶訪問Samba服務器上的資源,然而對于認証細節是不同 的,使用域認証方式能利用域提供的更安全的認証通道。

  • 設置lmhosts

  在Miscrosfot擴展的NetBIOS協議中,可以使用查詢設置文件的方法來進行名字解析,這個靜態文件為 lmhosts。在Windows下的這個文件位于系統目錄中,Samba將其放在與smb.conf相同的目錄下,FreeBSD系統中 為/usr/local/etc中。

# Sample Samba lmhosts file. 
192.168.1.24  WIN95 
192.168.1.21  NTSRV#20 
192.168.1.121 FBSDSRV		   #PRE

  lmhosts的文件格式與/etc/hosts文件非常類似,也是IP地址/主機名字對,除了這個文件中使 用的名字是NetBIOS名字。此外NetBIOS名字有一個定義屬性類別的字節(NetBIOS中的第16個字節) ,這個屬性字節可以在lmhosts中直接設置,以回應特定類別的請求,不設置這個屬性,就對應所有類別。例如上例中 的第二項定義的NTSRV,就明確指定了其屬性為16進制的0x20。

  此外,lmhosts也支持一些特殊的語法,例如用在一個設置項之后的#PRE選項將使得這項設置在啟動Samba 時自動載入系統緩沖區中,使得能最先識別。標准情況下的lmhosts文件在名字解析查詢順序的后部,在經過wins 和b-node廣播之后才會檢查lmhosts設置,而#PRE選項設置的名字就會在此之前進行解析。

  一般情況下不必設置這個文件,因為使用其他方法進行名字查詢就足夠了,這種方法用于輔助解析的,例如在跨越子 網進行瀏覽,但wins服務器不能提供訪問時的一個備份措施。其中的#PRE方式也能在系統啟動時的進行一些初始名字 解析設置。

未完,待續。。。  



 
  新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(68):根據Windows網絡設置Samba


網站簡介 | 網站導航 | 廣告服務 | 中文閱讀 | 聯系方式 | 招聘信息 | 幫助信息

Copyright(C) 1999 SINA.com, Stone Rich Sight. All Rights Reserved

版權所有  四通利方 新浪網