如何確保NFS服務(wù)安全
對(duì)于NFS的安全問題,我們是不能掉以輕心的。那么我們?nèi)绾未_保它的安全呢?這里我們首先我們需要分析一下它的不安全性??纯丛谀切┓矫骟w現(xiàn)了它的不安全。NFS服務(wù)安全性分析:不安全性主要體現(xiàn)于以下4個(gè)方面:
1、新手對(duì)NFS的訪問控制機(jī)制難于做到得心應(yīng)手,控制目標(biāo)的精確性難以實(shí)現(xiàn)
2、NFS沒有真正的用戶驗(yàn)證機(jī)制,而只有對(duì)RPC/Mount請(qǐng)求的過程驗(yàn)證機(jī)制
3、較早的NFS可以使未授權(quán)用戶獲得有效的文件句柄
4、在RPC遠(yuǎn)程調(diào)用中,一個(gè)SUID的程序就具有超級(jí)用戶權(quán)限.
加強(qiáng)NFS服務(wù)安全的方法:
1、合理的設(shè)定/etc/exports**享出去的目錄,最好能使用 anonuid,anongid以使MOUNT到NFS SERVER的CLIENT僅僅有最小的權(quán)限,最好不要使用root_squash.
2、使用IPTABLE防火墻限制能夠連接到NFS SERVER的機(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
3、為了防止可能的Dos攻擊,需要合理設(shè)定NFSD 的COPY數(shù)目.
4、修改/etc/hosts.allow和/etc /hosts.deny達(dá)到限制CLIENT的目的
/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
5、改變默認(rèn)的NFS 端口
NFS默認(rèn)使用的是111端口,但同時(shí)你也可以使用port參數(shù)來改變這個(gè)端口,這樣就可以在一定程度上增強(qiáng)安全性.
6、使用Kerberos V5作為登陸驗(yàn)證系統(tǒng)
修改/etc/hosts.allow和/etc/hosts.deny達(dá)到限制CLIENT的目的
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
這個(gè)NFS服務(wù)安全得多注意!!
/tmp *(rw,no_root_squash)
no_root_squash:登入到NFS主機(jī)的用戶如果是ROOT用戶,他就擁有ROOT的權(quán)限,此參數(shù)很不安全,建議不要使用.
有時(shí)需要執(zhí)行umont卸載nfs盤陣時(shí),會(huì)遇見device is busy的情況,字面意思理解為設(shè)備忙,有其他進(jìn)程正在使用此設(shè)備.
此時(shí)需要用到命令fuser
其格式為: $ fuser -m -v (nfs掛載點(diǎn)) 回車執(zhí)行后得到的結(jié)果依次是:用戶 進(jìn)程號(hào) 權(quán)限 命令
此命令可以查看到訪問此設(shè)備的所有進(jìn)程,停止進(jìn)程后umount.
如果添加參數(shù) -k則可以一次性將所有當(dāng)前訪問nfs共享盤陣的進(jìn)程停止 也可以加-i 打開交互顯示,以便用戶確認(rèn)
或者用fuser命令:
#fuser -v -m 掛載點(diǎn)
即可查處 用戶 PID等,KILL掉該進(jìn)程后再umount.
或者
#umount -l 掛載點(diǎn)
選項(xiàng) –l 并不是馬上umount,而是在該目錄空閑后再umount.還可以先用命令 ps aux 來查看占用設(shè)備的程序PID,然后用命令kill來殺死占用設(shè)備的進(jìn)程,這樣就umount的NFS服務(wù)安全非常放心了.