[ 永遠的UNIX::UNIX技術資料的寶庫 ]   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)

===更多相關===
 

★  樊強制作 歡迎分享  ★