天天看點

安全加強----八、NFS服務安全加強一、簡介二、加強方案

文章目錄

  • 一、簡介
  • 二、加強方案
    • 1、配置共享目錄(/etc/exports)
    • 2、使用網絡通路控制
    • 3、賬号驗證
    • 4、設定 NFSD 的 COPY 數目
    • 5、選擇傳輸協定
    • 6、限制客戶機數量
    • 7、改變預設的 NFS 端口
    • 8、配置 nosuid 和 noexec

一、簡介

NFS(Network File System)是 FreeBSD 支援的一種檔案系統,它允許網絡中的計算機之間通過 TCP/IP 網絡共享資源。不正确的配置和使用 NFS,會帶來安全問題。

NFS 的不安全性,主要展現于以下 4 個方面:

1、缺少通路控制機制
2、沒有真正的使用者驗證機制,隻針對 RPC/Mount 請求進行過程驗證
3、較早版本的 NFS 可以使未授權使用者獲得有效的檔案句柄
4、在 RPC 遠端調用中, SUID 程式具有超級使用者權限
           

二、加強方案

1、配置共享目錄(/etc/exports)

使用 anonuid,anongid 配置共享目錄,這樣可以使挂載到 NFS 伺服器的客戶機僅具有最小權限。不要使用 no_root_squash。

2、使用網絡通路控制

使用 安全組政策 或 iptable 防火牆限制能夠連接配接到 NFS 伺服器的機器範圍。

iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
           

3、賬号驗證

使用 Kerberos V5 作為登入驗證系統,要求所有通路人員使用賬号登入,提高安全性。

4、設定 NFSD 的 COPY 數目

在Linux中,NFSD的COPY數目定義在啟動檔案 /etc/rc.d/init.d/nfs 中,預設值為 8。

最佳的COPY數目一般取決于可能的客戶機數目。您可以通過測試來找到 COPY 數目的近似最佳值,并手動設定該參數。

5、選擇傳輸協定

對于不同的網絡情況,有針對地選擇 UDP 或 TCP 傳輸協定。傳輸協定可以自動選擇,也可以手動設定。

mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
           

UDP 協定傳輸速度快,非連接配接傳輸時便捷,但其傳輸穩定性不如 TCP,當網絡不穩定或者黑客入侵時很容易使 NFS 性能大幅降低,甚至導緻網絡癱瘓。一般情況下,使用 TCP 的 NFS 比較穩定,使用 UDP 的 NFS 速度較快。

在機器較少,網絡狀況較好的情況下,使用 UDP 協定能帶來較好的性能。
當機器較多,網絡情況複雜時,推薦使用 TCP 協定(V2 隻支援 UDP 協定)。
在區域網路中使用 UDP 協定較好,因為區域網路有比較穩定的網絡保證,使用 UDP 可以帶來更好的性能。
在廣域網中推薦使用 TCP 協定,TCP 協定能讓 NFS 在複雜的網絡環境中保持最好的傳輸穩定性。
           

6、限制客戶機數量

修改 /etc/hosts.allow 和 /etc /hosts.deny 來限制客戶機數量。

/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny
           

7、改變預設的 NFS 端口

NFS 預設使用的是 111 端口,使用 port 參數可以改變這個端口值。改變預設端口值能夠在一定程度上增強安全性。

8、配置 nosuid 和 noexec

SUID (Set User ID) 或 SGID (Set Group ID) 程式可以讓普通使用者以超過自己權限來執行。很多 SUID/SGID 可執行程式是必須的,但也可能被一些惡意的本地使用者利用,擷取本不應有的權限。

盡量減少所有者是 root,或是在 root 組中卻擁有 SUID/SGID 屬性的檔案。您可以删除這樣的檔案或更改其屬性,如:

①使用 nosuid 選項禁止 set-UID 程式在 NFS 伺服器上運作,可以在 /etc/exports 加入一行:
/www www.abc.com(rw, root_squash, nosuid)

②使用 noexec 禁止直接執行其中的二進制檔案。
           

繼續閱讀