GB | BIG5
|
| 首頁 > 安全技術 > 系統 > 正文 |
 |
| 如何讓NFS更安全 |
| 本文出自:http://www.cert.org.tw 作者: (2001-11-02 07:00:00) |
前言
NFS(network file system)是由SUN公司發展, 並於1985年推出,
NFS是架構於的功能在於提供不同機器間的檔案分享與共用,由
於NFS規格完全公開,因此現在許多的作業系統都提供NFS的服務
。傳統NFS雖然使用UDP來傳遞檔案資料(NFS Version 3以後支援
TCP傳送),但由於協定上的設計,大部分的安全問題都獲得了
解決。然而除了少數被發現存在不同平台的程式錯誤外,會影
響系統安全的往往是管理者錯誤的設定。本文主要為探討NFS
Server端的設定,以避免系統被入侵或系統資料被竊取。
NFS相關程式
(1)biod:此程式是用來建立NFS Client端的cache,處理在Client
上的讀寫動作。
(2)mountd:此程式是用來回應要求Mount的訊息。
(3)nfsd:此程式是用來處理NFS Client端的要求。
NFS Server設定
(1)限定讀寫的權限
大部分系統的NFS服務並不會限定你新增的分享資源為唯讀,除
非你自己設定,否則都是以可讀可寫的模式分享資料。要設讀
寫限制請參考以下例:
*AIX,FreeBSD,Linux:
於/etc/exports中,使用-ro的參數,如:
/export -ro # 將/export以唯讀的模式分享
*Solaris:
於/etc/dfs/dfstab中,使用-o ro的參數,如:
share -F nfs -o ro /export # 將/export以唯讀的模式分享
當然,假如你的分享資源是唯讀的設備,那是不用考慮這個
問題的。
(2)限定分享的機器
讓我們看看以下用"showmount -e xxx.xxx.xxx.xxx"得到的結果:
export list for xxx.xxx.xxx.xxx:
/home (everyone)
這表示任何一台機器都可以將/home裡的資料掛(mount)在自己的
機器上,假如裡面的資料具有私密性,那就危險了。所以下面的
例子顯示如何設定分享的機器:
*AIX
於/etc/exports中,加入-access=[host name]:
/export -ro,access=www # 允許www用唯讀的模式分
# 享/export
*FreeBSD:
於/etc/exports中,加入host name:
/export -ro www bbs # 允許www和bbs用唯讀的模式分
# 享/export
/u -network 1.2.3 -mask 255.255.255.0 # 允許1.2.3.x
# 讀寫/u
*Solaris:
於/etc/dfs/dfstab中,加入host name:
share -F nfs -o ro=www /export # 允許www以唯讀的模式
# 分享/export
事實上我們發現,有部份的管理者用domain name當做限定NFS
Client機器的資料,這樣並非不可以,然而卻是不安全的做法
,因為NFS是透過Client的IP查出Domain Name,故假造Domain
Name便會騙過NFS Server。所以我們建議您將欲分享的Client
端資料寫在/etc/hosts中,並於NFS的設定檔中使用登錄於
/etc/hosts中Client的host name,這是比較安全的做法,如下:
*/etc/hosts內容:
140.117.1.1 cc
*/etc/exports內容:
/export -ro,access=cc #AIX
*/etc/dfs/dfstab內容(Solaris):
share -F nfs -o ro=cc /export
當然,像FreeBSD的/etc/exports內容允許IP限定也是一個不錯的
做法。
(3)將重要資料檔擁有者設為root
早期NFS並沒有對root(uid 0)這個帳號做特別處理,因而一些
擁有者為root的檔案會被刪除,後來便改為如果不做任何設定
的話,NFS client端的root是沒什麼權限的,意即對遠端的檔
案權限可能比一般使用者還低。換句話說NFS Server端的檔案
若是擁有者為root,將有較高的安全性,如下所示:
-rwxr-xr-x 1 root wheel 5584 11 Oct 23:38 ypwhich
-rwxr-xr-x 1 root wheel 2405 11 Oct 23:38 yyfix
-rwxr-xr-x 4 root wheel 100200 11 Oct 23:34 zcat
-rwxr-xr-x 2 root wheel 2049 11 Oct 23:34 zcmp
若NFS Client端所看到的目錄內容如上,即使是可讀寫的分享,
只要你沒開放root的權限,對方也無法更改檔案內容。所以除
非萬不得已,否則我們建議您不要開啟NFS Client擁有root的權
限。
(4)分享的檔案系統不要有太多的不同擁有者的檔案
這裡會提出此建議,主要是考量系統管理上的問題。假如你的
分享無法將擁有者都設成root,可能會遇到NFS Server和NFS
Client上的使用者uid不一致的狀況,而產生使用者間互相修改
對方的檔案,當然假如你確定兩個系統的id和uid都是相同,那
就不用擔心此問題的。以下舉例說明:
*NFS Server
-rw-r--r-- 1 adm other 292 Oct 25 07:25 Makefile
-rwxr--r-- 1 adm other 362 Jul 11 13:21 a.out
-rwsr--r-- 1 root other 17390 Oct 26 09:19 mount
*NFS Client
-rw-r--r-- 1 bin other 292 Oct 25 07:25 Makefile
-rwxr--r-- 1 bin other 362 Jul 11 13:21 a.out
-rwsr--r-- 1 root other 17390 Oct 26 09:19 mount
以上adm與bin為不同的兩個人在不同機器上,但uid相同,故使用者
bin有可能更動NFS Server上屬於使用者adm的檔案。
結語
NFS設定注意事項以上共分成四個要點,當然已知的漏洞修正程式
您必須自己安裝它,不然即使設定無誤,仍不能保系統安全,另外
本文不代表包含所有NFS的問題,由於各作業系統在NFS的設定上各有
異同,如使用secure-RPC或Kerberos來建置NFS以及NFS client注意事項
等等,若您有任何疑問,歡迎來信討論,請寄至以下電子郵件信箱:
twcert@cert.org.tw。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
如何讓NFS更安全 (2001-11-02 07:00:00) 網絡管理員指南 -17.C-News -8>在一個NFS環境下的C-News (2001-07-19 18:08:00) 網絡管理員指南 -11.網絡文件系統NFS -4>自動mount (2001-07-16 16:10:01) 網絡管理員指南 -11.網絡文件系統NFS -3>輸出文件 (2001-07-16 15:00:00) 網絡管理員指南 -11.網絡文件系統NFS -2>NFS Daemons (2001-07-16 14:08:00) 網絡管理員指南 -11.網絡文件系統NFS -1>準備和安裝NFS (2001-07-16 13:04:00) 網絡管理員指南 -11.網絡文件系統NFS (2001-07-16 12:10:00) Linux 網管 123 --- 第7章. 自訂的組態及管理內容 -6.NFS (2001-07-02 16:10:00) Linux下NFS網絡文件系統設定及管理 (2001-06-07 11:00:01) NFS 和 NIS (2001-06-03 12:10:00)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |