FreeBSD根據Windows網路設定Samba(轉)

gugu99發表於2007-08-11
FreeBSD根據Windows網路設定Samba(轉)[@more@]

  使用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命令。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944635/,如需轉載,請註明出處,否則將追究法律責任。

相關文章