如何確保NFS服務安全
上一篇博文《Redhat 設定 NFS 掛載的簡單步驟》,其中摘錄了一段 nfs 中 fuser 的使用,索性將其全部發出,以供參考。
對於 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 的機器範圍
Shell1234 | iptables-AINPUT-ieth0-pTCP-s192.168.0.0/24--dport111-jACCEPT iptables-AINPUT-ieth0-pUDP-s192.168.0.0/24--dport111-jACCEPT iptables-AINPUT-ieth0-pTCP-s140.0.0.0/8--dport111-jACCEPT iptables-AINPUT-ieth0-pUDP-s140.0.0.0/8--dport111-jACCEPT |
3、為了防止可能的 Dos 攻擊,需要合理設定 NFSD 的 COPY 數目.
4、修改/etc/hosts.allow 和/etc /hosts.deny 達到限制 CLIENT 的目的
Shell12345 | /etc/hosts.allowportmap:192.168.0.0/255.255.255.0:allow portmap:140.116.44.125:allow/etc/hosts.denyportmap:ALL:deny |
5、改變預設的 NFS 埠
NFS 預設使用的是 111 埠,但同時你也可以使用 port 引數來改變這個埠,這樣就可以在一定程度上增強安全性.
6、使用 Kerberos V5 作為登陸驗證系統
修改/etc/hosts.allow 和/etc/hosts.deny 達到限制 CLIENT 的目的
Shell123 | /etc/hosts.allowportmap: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 服務安全非常放心了.
注:本文來自網路,作者:佚名