linux NFS 服務(wù)安全加固方法
NFS(Network File System)是 FreeBSD 支持的一種文件系統(tǒng),它允許網(wǎng)絡(luò)中的計(jì)算機(jī)之間通過 TCP/IP 網(wǎng)絡(luò)共享資源。不正確的配置和使用 NFS,會(huì)帶來安全問題。
概述
NFS 的不安全性,主要體現(xiàn)于以下 4 個(gè)方面:
- 缺少訪問控制機(jī)制
- 沒有真正的用戶驗(yàn)證機(jī)制,只針對 RPC/Mount 請求進(jìn)行過程驗(yàn)證
- 較早版本的 NFS 可以使未授權(quán)用戶獲得有效的文件句柄
- 在 RPC 遠(yuǎn)程調(diào)用中, SUID 程序具有超級用戶權(quán)限
加固方案
為有效應(yīng)對以上安全隱患,推薦您使用下述加固方案。
配置共享目錄(/etc/exports)
使用 anonuid,anongid 配置共享目錄,這樣可以使掛載到 NFS 服務(wù)器的客戶機(jī)僅具有最小權(quán)限。不要使用 no_root_squash。
使用網(wǎng)絡(luò)訪問控制
使用 安全組策略 或 iptable 防火墻限制能夠連接到 NFS 服務(wù)器的機(jī)器范圍。
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
賬號(hào)驗(yàn)證
使用 Kerberos V5 作為登錄驗(yàn)證系統(tǒng),要求所有訪問人員使用賬號(hào)登錄,提高安全性。
設(shè)置 NFSD 的 COPY 數(shù)目
在 Linux 中,NFSD 的 COPY 數(shù)目定義在啟動(dòng)文件 /etc/rc.d/init.d/nfs
中,默認(rèn)值為 8。
最佳的 COPY 數(shù)目一般取決于可能的客戶機(jī)數(shù)目。您可以通過測試來找到 COPY 數(shù)目的近似最佳值,并手動(dòng)設(shè)置該參數(shù)。
選擇傳輸協(xié)議
對于不同的網(wǎng)絡(luò)情況,有針對地選擇 UDP 或 TCP 傳輸協(xié)議。傳輸協(xié)議可以自動(dòng)選擇,也可以手動(dòng)設(shè)置。
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP 協(xié)議傳輸速度快,非連接傳輸時(shí)便捷,但其傳輸穩(wěn)定性不如 TCP,當(dāng)網(wǎng)絡(luò)不穩(wěn)定或者黑客入侵時(shí)很容易使 NFS 性能大幅降低,甚至導(dǎo)致網(wǎng)絡(luò)癱瘓。一般情況下,使用 TCP 的 NFS 比較穩(wěn)定,使用 UDP 的 NFS 速度較快。
- 在機(jī)器較少,網(wǎng)絡(luò)狀況較好的情況下,使用 UDP 協(xié)議能帶來較好的性能。
- 當(dāng)機(jī)器較多,網(wǎng)絡(luò)情況復(fù)雜時(shí),推薦使用 TCP 協(xié)議(V2 只支持 UDP 協(xié)議)。
- 在局域網(wǎng)中使用 UDP 協(xié)議較好,因?yàn)榫钟蚓W(wǎng)有比較穩(wěn)定的網(wǎng)絡(luò)保證,使用 UDP 可以帶來更好的性能。
- 在廣域網(wǎng)中推薦使用 TCP 協(xié)議,TCP 協(xié)議能讓 NFS 在復(fù)雜的網(wǎng)絡(luò)環(huán)境中保持最好的傳輸穩(wěn)定性。
限制客戶機(jī)數(shù)量
修改 /etc/hosts.allow
和 /etc /hosts.deny
來限制客戶機(jī)數(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
改變默認(rèn)的 NFS 端口
NFS 默認(rèn)使用的是 111 端口,使用 port 參數(shù)可以改變這個(gè)端口值。改變默認(rèn)端口值能夠在一定程度上增強(qiáng)安全性。
配置 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 選項(xiàng)禁止 set-UID 程序在 NFS 服務(wù)器上運(yùn)行,可以在 /etc/exports
加入一行:
/www www.abc.com(rw, root_squash, nosuid)
使用 noexec 禁止直接執(zhí)行其中的二進(jìn)制文件。
相關(guān)文章
在Linux中如何列出和刪除Iptables防火墻規(guī)則
當(dāng)涉及到網(wǎng)絡(luò)安全時(shí),防火墻是一個(gè)至關(guān)重要的組成部分,Iptables是一種常用的防火墻解決方案,可以幫助管理員保護(hù)他們的系統(tǒng)免受惡意攻擊,本文將詳細(xì)介紹如何列出和刪除Iptables防火墻規(guī)則,以幫助您更好地管理系統(tǒng)的安全性2023-06-06Jexus開機(jī)自動(dòng)啟動(dòng)配置方法
這篇文章主要為大家詳細(xì)介紹了Jexus開機(jī)自動(dòng)啟動(dòng)的配置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06解決ubuntu安裝軟件時(shí),status-code=409報(bào)錯(cuò)的問題
這篇文章主要介紹了解決ubuntu安裝軟件時(shí),status-code=409報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12SSM項(xiàng)目頻繁打成war包部署,使用tomcat和maven實(shí)現(xiàn)熱部署配置
這篇文章主要介紹了SSM項(xiàng)目頻繁打成war包部署操作頻繁?使用tomcat和maven實(shí)現(xiàn)熱部署配置,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11