第十六章 如何讓NFS更安全(1 / 2)

第十六章 如何讓NFS更安全

前言

NFS(networkfilesystem)是由SUN公司發展,並於1985年推出,NFS的功能在於提供不同機器間的檔案分享與共用,由於NFS規格完全公開,因此現在許多的作業係統都提供NFS的服務。傳統NFS雖然使用UDP來傳遞檔案資料(NFSVersion3以後支援TCP傳送),但由於協定上的設計,大部分的安全問題都獲得了解決。然而除了少數被發現存在不同平台的程序錯誤外,會影響係統安全的往往是管理者錯誤的設定。本文主要為探討NFSServer端的設定,以避免係統被入侵或係統資料被竊取。

NFS相關程序

(1)biod:此程序是用來建立NFSClient端的cache,處理在Client上的讀寫動作。

(2)mountd:此程序是用來回應要求Mount的訊息。

(3)nfsd:此程序是用來處理NFSClient端的要求。

NFSServer設定

(1)限定讀寫的權限

大部分係統的NFS服務並不會限定你新增的分享資源為隻讀,除非你自己設定,否則都是以可讀可寫的模式分享資料。要設讀寫限製請參考下例:

*AIX,FreeBSD,Linux:

於/etc/exports中,使用-ro的參數,如:

/export-ro#將/export以隻讀的模式分享

*Solaris:

於/etc/dfs/dfstab中,使用-oro的參數,如:

share-Fnfs-oro/export#將/export以隻讀的模式分享

當然,假如你的分享資源是隻讀的設備,那是不用考慮這個問題的。

(2)限定分享的機器

讓我們看看以下用"showmount-exxx.xxx.xxx.xxx"得到的結果:

exportlistforxxx.xxx.xxx.xxx:

/home(everyone)

這表示任何一台機器都可以將/home裏的資料掛(mount)在自己的機器上,假如裏麵的資料具有私密性,那就危險了。所以下麵的例子顯示如何設定分享的機器:

*AIX

於/etc/exports中,加入-access=[hostname]:

/export-ro,access=www#允許www用隻讀的模式分享/export

*FreeBSD:

於/etc/exports中,加入hostname:

/export-rowwwbbs#允許www和bbs用隻讀的模式分享/export

/u-network1.2.3-mask255.255.255.0#允許1.2.3.x讀寫/u

*Solaris:

於/etc/dfs/dfstab中,加入hostname:

share-Fnfs-oro=www/export#允許www以隻讀的模式分享/export

事實上我們發現,有部份的管理者用domainname當做限定NFSClient機器的資料,這樣並非不可以,然而卻是不安全的做法,因為NFS是透過Client的IP查出DomainName,故假造DomainName便會騙過NFSServer。所以我們建議你將欲分享的Client端資料寫在/etc/hosts中,並於NFS的設定檔中使用登錄於/etc/hosts中Client的hostname,這是比較安全的做法,如下: