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