1. 程式人生 > >ftp伺服器(ftp/tftp)、 Samba伺服器、NFS伺服器的區別

ftp伺服器(ftp/tftp)、 Samba伺服器、NFS伺服器的區別

     對於一個真實的執行環境而言,配置和啟用檔案伺服器都是很有必要的。把重要的資料集中儲存和管理,其安全性顯然比分佈儲存要可靠得多。為此,建議系統管理員配製和啟用檔案伺服器作為基本的管理策略。

根據使用的方式來看,可以分為3種類別的檔案伺服器:ftp伺服器(ftp/tftp)、 Samba伺服器、NFS伺服器。ftp的客戶可以是任意平臺,samba是專門針對windows客戶,而NFS則是面向linux/unix使用者的。下面是三種伺服器的對比情況:

伺服器名稱     使用者客戶端平臺     使用範圍     服務埠

FTP     Windows/linux/unix/macOS等     釋出網站,檔案共享     Tcp/21

Samba     Windows     檔案共享(網路上的芳鄰)     Tcp/445,tcp/139

NFS     Linux/unix     網站釋出,檔案共享(mount)     Tcp/2049


接下來我們就逐個來配置和執行這些伺服器。

NFS伺服器

   NFS是SUN Microsystem公司開發的網路檔案系統,它是一種基於遠端過程呼叫(RPC)的分散式檔案系統架構。與Samba相比較,NFS的資料吞吐能力更強。

1、     用命令 # rpm –qa | grep nfs檢查軟體包NFS是否安裝 ,如果輸出沒有輸出,表明沒有被安裝,請自行安裝之。

2、     配置NFS伺服器。用任何文字編輯器配置檔案/etc/exports,來確定需要給客戶共享的目錄。它的基本格式為 Directory   Host(options) # comments ,這3個欄位/列要在一行,directory與host(options)之間要有間隙,# comments 可有可無。主機選項主要是給與掛接使用者什麼樣的許可權。目錄directory表示要共享出去的目錄,值得注意的是,在啟用NFS服務以前,系統管理員應該仔細一些,比如不小心共享了根目錄/,並且給與使用者讀寫許可權,這是十分糟糕的問題。因此,儘可能少的共享目錄和賦予較小的訪問許可權。主機名host是一個很靈活的專案,可以是單個的主機名稱(由/etc/hosts得到),主機ip地址,由域名伺服器解析的主機名稱,IP網路—網路號和子網掩碼中間用 “/”連線,NIC等。下面列舉一個例子。

/home/sery     sery(r,w) #把目錄/home/sery共享給主機sery,並且主機對目錄#/home/sery有讀寫許可權

/tmp       192.168.100.18(ro) #主機192.168.100.18對目錄/tmp具備只讀共#享許可權

/media/cdrom   192.168.100.0/255.255.255.0(r,o) #整個網路有讀取掛接在NFS 

#伺服器上的光碟機光碟的讀取許可權

3、     啟用NFS服務。分兩步:首先啟用portmap,然後啟用NFS服務。# service portmap start;

# service nfs start。其中portmap的功能是啟用遠端過程呼叫,有時啟用NFS不能成功,不妨檢查一下portmap服務是否啟動(# ps aux | grep portmap)。

4、     在客戶端掛接NFS共享出來的目錄。先在客戶端建立一個掛接點,如 # mkdir /mnt/nfs ,而後使用命令把nfs伺服器共享出來的目錄掛接上,以第2步那個共享為例,我們掛接目錄 /tmp , # mount –t nfs 192.168.100.100:/tmp /mnt/nfs //假定nfs伺服器的ip地址是192.168.100.100。

5、     訪問NFS共享資源。接上步,改變檔案目錄 # cd /mnt/nfs就方便地實現了對nfs伺服器目錄/tmp的遠端訪問。

6、     解除安裝NFS檔案系統。在客戶端執行命令 # umount /mnt/nfs 就卸下了第4步掛接的NFS檔案系統。

7、     其他事項。前面我們描述了在客戶段用手工掛接NFS檔案系統的操作,有的場合可能需要自動實現對NFS的掛接操作;修改檔案/etc/fstab,把掛接項插入進去就可以了。對一個有較多連線的NFS伺服器而言,有這樣一個問題—使用者在使用完掛接的檔案系統後,並不會總記得解除安裝掉NFS掛接,這必然會增大NFS伺服器的維護工作量以及白白佔用有限的系統和網路資源;解決這個問題的辦法是使用自動掛接器(automounter)。關於自動掛接器屬於效能調優的範疇,在此不做描述。

Samba伺服器

  這個世界既非只有linux/unix,也不是由microsoft windows 獨霸天下的格局。也許出於linux/unix與windows既競爭又共存的事實,人們開發了 linux給windows使用者提供檔案共享的工具Samba,這應該算得上linux的開放精神吧!

1、     檢查是否安裝samba軟體包。# rpm –qa | grep smb ,如果沒有則自行安裝samba。

2、     修改配置檔案/etc/samba/smb.conf。早期的linux版本的配置檔案smb.conf的安全選項“security=share”,這個預設值是個安全隱患,不過現在流行的linux版本的安全選項的預設值是“security=user”。如果只想使用者對他的目錄擁有隻讀許可權,就把選項“writeable=yes”改成“read only=yes”。其他的選項根據自己的要求更改即可。對於一般的應用而言,基本上不用修改這個檔案。

3、     新增系統賬戶。由於smb的訪問是使用系統賬號進行的,因此新增賬號是必不可少的。這個比較簡單,用命令 # useradd sery , # passwd sery,就可以依次新增若干系統賬號。

4、     建立Samba使用者密碼檔案。雖然samba的使用者是系統使用者,但出於安全考慮,samba使用者的密碼並非建立系統使用者時設定的使用者密碼。為了生成smb所需的密碼,應該進行下面的操作:

# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

# smbpasswd sery   //為系統使用者設定smb口令

# chown root.root /etc/samba/smbpasswd

# chmod 600 /etc/samba/smbpasswd   //不準別的使用者訪問

5、     啟用Samba伺服器。我比較喜歡用 # service smb start 這種方式。

6、     檢查服務是否正常啟動。# service smb status 或者 # ps aux | grep smb。

7、     windows客戶端訪問 Samba伺服器共享目錄。在windows環境下,右鍵點選“網路上的芳鄰”圖示,然後左擊“搜尋計算機”,把Samba伺服器的IP地址填寫在“計算機名”搜尋欄,點選立即搜尋。找到後雙擊圖示,然後輸入在Samba伺服器上預先設定的使用者名稱和密碼,就能合法訪問Samba伺服器設定的共享資源。為了方便使用,可以把Samba伺服器提供的共享目錄對映成本地驅動器。

8、     其他。上述配置的samba伺服器,使用者的訪問共享目錄是系統賬號的主目錄。要想把共享目錄設定到其他位置,修改Samba 的配置檔案/etc/samba/smb.conf檔案即可。

FTP伺服器

  在linux 環境下,有三個主要的FTP伺服器:vsftpd、proftpd和wu-ftpd。因為安全方面的原因,vsftpd目前已經牢牢的佔據了主導地位。從字面上我們就可以理解vsftpd所具備的主要特徵—very secure(非常安全之ftp)。資料表明:1、使用ASCII方式下載檔案,在1G乙太網上的下載速度可以達到86M/s。2、vsftpd可以支援 15000個併發使用者的訪問。

1、     檢查是否安裝vsftp包。# rpm –qa | grep vsftpd。如果沒有則安裝它。

2、     修改配置檔案。Vsftpd的配置檔案為/etc/vsftpd/vsftpd.conf,如果不打算提供匿名訪問的話,需要修改配置檔案 /etc/vsftpd/vsftpd.conf的項“anonymous_enable=Yes”為“anonymous_enable=No”。

3、     啟用vsftpd服務。#service vsftpd start。

4、     客戶端連線訪問。可以是專用的ftp客戶端工具,也可以使用瀏覽器。用工具訪問vsftpd伺服器的速度要比用瀏覽器快很多。

5、     vsftpd伺服器的使用者。Vsftpd伺服器支援三種類型的擁護:本地使用者(擁有系統賬號)、虛擬使用者(guest)、匿名賬號;系統管理員應該根據安全需求來確定vsftpd伺服器的使用者訪問策略。

TFTP伺服器

  Tftp伺服器主要用於遠端系統引導或遠端備份象CISCO這樣的網路裝置的配置檔案,例如tftp伺服器與DHCP、FTP伺服器相配合,就可以成為一組linux安裝伺服器,以利於進行大規模的網路安裝linux作業系統。

  與上文提及的幾種伺服器不同,tftp伺服器是由超級守護程序xinetd執行的。這使的tftp伺服器的配置操作比獨立執行守護程序的伺服器(如 vsftpd)簡單很多。一般情況下,只要修改檔案/etc/xinetd.d/tftp,把“disable =yes” 改成 “disable =no”,而後儲存重新啟動超級守護程序xinetd , # service xinetd restart 。

  通過上面的實踐,儘管我們已經能夠順利的完成各種檔案伺服器的搭建和執行,也基本上可以滿足基本的使用者服務需求,也許在實際的工作中,可能有更多的效能或安全要求。一個明顯的例子就是,如果一個使用者的伺服器使用的磁碟空間沒有做任何限制,那麼他完全有可能把他從internet下載的連續劇上傳到他自己的檔案伺服器目錄,從而把有限空間的硬碟塞滿。另外一個就是目錄和檔案的許可權問題,特別是以本地賬號(系統賬號)訪問檔案伺服器的情況,如果授權不當,將給系統管理帶來極大的麻煩。

  Linux所倡導的自由精神也同樣在這些伺服器的配置操作中得以體現。可以通過修改這些伺服器的配置檔案來滿足特定的需求,而且這些修改是非常靈活的。比如vsftpd伺服器的配置檔案/etc/vsftpd/vsftpd.conf就有很多專案可以修改。

  附表:幾種檔案伺服器的維護

伺服器名稱

    啟動指令碼

    守護程序

    配置檔案

NFS     /etc/init.d/nfs

/etc/init.d/nfslock     /usr/sbin/rpc.nfsd

/usr/sbin/rpc.mountd     /etc/exports

Samba     /etc/init.d/smb

/etc/init.d/winbind     /usr/sbin/smbd

/usr/sbin/nmbd     /etc/samba/smb.conf

vsftpd     /etc/xinetd.d/vsftpd     /usr/sbin/vsftpd     /etc/vsftpd/vsftpd.conf