linux NFS 服務(wù)安全加固方法
NFS(Network File System)是 FreeBSD 支持的一種文件系統(tǒng),它允許網(wǎng)絡(luò)中的計算機之間通過 TCP/IP 網(wǎng)絡(luò)共享資源。不正確的配置和使用 NFS,會帶來安全問題。
概述
NFS 的不安全性,主要體現(xiàn)于以下 4 個方面:
- 缺少訪問控制機制
- 沒有真正的用戶驗證機制,只針對 RPC/Mount 請求進行過程驗證
- 較早版本的 NFS 可以使未授權(quán)用戶獲得有效的文件句柄
- 在 RPC 遠程調(diào)用中, SUID 程序具有超級用戶權(quán)限
加固方案
為有效應(yīng)對以上安全隱患,推薦您使用下述加固方案。
配置共享目錄(/etc/exports)
使用 anonuid,anongid 配置共享目錄,這樣可以使掛載到 NFS 服務(wù)器的客戶機僅具有最小權(quán)限。不要使用 no_root_squash。
使用網(wǎng)絡(luò)訪問控制
使用 安全組策略 或 iptable 防火墻限制能夠連接到 NFS 服務(wù)器的機器范圍。
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
賬號驗證
使用 Kerberos V5 作為登錄驗證系統(tǒng),要求所有訪問人員使用賬號登錄,提高安全性。
設(shè)置 NFSD 的 COPY 數(shù)目
在 Linux 中,NFSD 的 COPY 數(shù)目定義在啟動文件 /etc/rc.d/init.d/nfs 中,默認值為 8。
最佳的 COPY 數(shù)目一般取決于可能的客戶機數(shù)目。您可以通過測試來找到 COPY 數(shù)目的近似最佳值,并手動設(shè)置該參數(shù)。
選擇傳輸協(xié)議
對于不同的網(wǎng)絡(luò)情況,有針對地選擇 UDP 或 TCP 傳輸協(xié)議。傳輸協(xié)議可以自動選擇,也可以手動設(shè)置。
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP 協(xié)議傳輸速度快,非連接傳輸時便捷,但其傳輸穩(wěn)定性不如 TCP,當網(wǎng)絡(luò)不穩(wěn)定或者黑客入侵時很容易使 NFS 性能大幅降低,甚至導(dǎo)致網(wǎng)絡(luò)癱瘓。一般情況下,使用 TCP 的 NFS 比較穩(wěn)定,使用 UDP 的 NFS 速度較快。
- 在機器較少,網(wǎng)絡(luò)狀況較好的情況下,使用 UDP 協(xié)議能帶來較好的性能。
- 當機器較多,網(wǎng)絡(luò)情況復(fù)雜時,推薦使用 TCP 協(xié)議(V2 只支持 UDP 協(xié)議)。
- 在局域網(wǎng)中使用 UDP 協(xié)議較好,因為局域網(wǎng)有比較穩(wěn)定的網(wǎng)絡(luò)保證,使用 UDP 可以帶來更好的性能。
- 在廣域網(wǎng)中推薦使用 TCP 協(xié)議,TCP 協(xié)議能讓 NFS 在復(fù)雜的網(wǎng)絡(luò)環(huán)境中保持最好的傳輸穩(wěn)定性。
限制客戶機數(shù)量
修改 /etc/hosts.allow 和 /etc /hosts.deny 來限制客戶機數(shù)量。
/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
改變默認的 NFS 端口
NFS 默認使用的是 111 端口,使用 port 參數(shù)可以改變這個端口值。改變默認端口值能夠在一定程度上增強安全性。
配置 nosuid 和 noexec
SUID (Set User ID) 或 SGID (Set Group ID) 程序可以讓普通用戶以超過自己權(quán)限來執(zhí)行。很多 SUID/SGID 可執(zhí)行程序是必須的,但也可能被一些惡意的本地用戶利用,獲取本不應(yīng)有的權(quán)限。
盡量減少所有者是 root,或是在 root 組中卻擁有 SUID/SGID 屬性的文件。您可以刪除這樣的文件或更改其屬性,如:
使用 nosuid 選項禁止 set-UID 程序在 NFS 服務(wù)器上運行,可以在 /etc/exports 加入一行:
/www www.abc.com(rw, root_squash, nosuid)
使用 noexec 禁止直接執(zhí)行其中的二進制文件。
相關(guān)文章
linux內(nèi)核編程container of()函數(shù)介紹
container_of在Linux內(nèi)核中是一個常用的宏,用于從包含在某個結(jié)構(gòu)中的指針獲得結(jié)構(gòu)本身的指針,這篇文章主要給大家介紹了關(guān)于linux內(nèi)核編程container of()函數(shù)的相關(guān)資料,需要的朋友可以參考下2021-07-07
CentOS8.0 網(wǎng)絡(luò)配置的實現(xiàn)
這篇文章主要介紹了CentOS8.0 網(wǎng)絡(luò)配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
centos 7中firewall防火墻的常用命令總結(jié)
大家都知道centos 7中防火墻是一個非常的強大的功能了,但對于centos 7中在防火墻中進行了升級了,下面這篇文章主要介紹了centos 7中firewall防火墻的常用命令,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
CentOS利用screen實現(xiàn)多任務(wù)管理功能
screen是一個功能強大的終端復(fù)用工具,它可以創(chuàng)建多個虛擬終端窗口,并且可以在這些窗口之間自由切換,本文將從安裝screen開始,詳細介紹其常用命令及使用示例,幫助讀者更好地理解和掌握這個實用工具2023-06-06
Centos下編譯Linux內(nèi)核的具體實現(xiàn)方法
下面小編就為大家?guī)硪黄狢entos下編譯Linux內(nèi)核的具體實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
linux下通過xinetd服務(wù)管理 rsync 實現(xiàn)開機自啟動
這篇文章主要介紹了linux下通過xinetd服務(wù)管理 rsync 實現(xiàn)開機自啟動的相關(guān)資料,需要的朋友可以參考下2017-10-10

