應用環境
os:linux as4
nfs sever:192.168.3.96 hostname rac01
nfs client: 192.168.3.97 hostname rac02
檢查系統是否安裝了包nfs-utils及portmap,其中protmap軟體包中的portmap服務,為nfs和nis等提供rpc服務的支援,因此在安裝時應先安裝portmap軟體包。nfs-utils軟體包中提供了nfs伺服器程式和相應的維護工具。
[root@rac01 ~]# rpm -q nfs-utils portmap
nfs-utils-1.0.6-70.el4
portmap-4.0-63
nfs伺服器的配置檔案—exports檔案在目錄「/etc」下,用於配置nfs伺服器所提供的目錄共享。此檔案預設設定為空,沒有配置的輸出的任何的目錄共享,這也是出於安全性的考慮,這樣即使系統啟動nfs服務也不會提供任何的共享。如果需要在nfs伺服器中輸出某個目錄的共享,需要先在exports檔案中進行相應的設定。
exports
檔案的格式
exports
檔案中每行提供乙個共享目錄的設定,設定行的格式如下所示:
#要輸出的共享目錄名客戶端主機位址(設定選擇)
/home/share *(sync,ro)
在exports檔案的設定行中,共享目錄和主機位址間用空格分隔,主機位址之後緊隨設定選項,設定選項放置在括號中,多個設定選項間用逗號分隔。
1) 共享目錄
共享目錄設定系統中需要輸出作為共享的目錄路徑,該目錄用於存放網路中其它主機共享的檔案。
2) 客戶端主機位址
在exports檔案中,客戶端主機位址的指定非常靈活,可以是單個主機的ip位址或網域名稱也只可以是指定網段中的主機或指定域中的主機,如下:
主機位址格式
客戶端主機位址說明
192.168.3.97
指定ip位址的主機
nfstest.com
指定網域名稱的主機
192.168.3.0/24
指定網段中的所有主機
*.test.com
指定域中的所有主機
*
所有主機
3) 設定選項
exports
檔案中的設定選項較多,經常使用的不多,如下:
設定選項說明
sync
設定nfs伺服器同步寫磁碟,這樣不會輕易丟失資料,nfs伺服器建議使用該選項
ro
設定輸出的共享目錄唯讀,與rw不能同時使用
rw
設定輸入的共享目錄可讀寫,與ro不能同時使用
secure nfs
通過1024以下的安全tcp/ip埠傳送
insecure nfs
通過1024以上的埠傳送
wdelay
如果多個使用者要寫入nfs目錄,則歸組寫入(預設)
no_wdelay
如果多個使用者要寫入nfs目錄,則立即寫入,當使用async時,無需此設定。
hide
在nfs共享目錄中不共享其子目錄
no_hide
共享nfs目錄的子目錄
subtree_check
如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的許可權(預設)
no_subtree_check
和上面相對,不檢查父目錄許可權
all_squash
共享檔案的uid和gid對映匿名使用者anonymous,適合公用目錄。
no_all_squash
保留共享檔案的uid和gid(預設)
root_squash root
使用者的所有請求對映成如anonymous使用者一樣的許可權(預設)
no_root_squash root
使用者具有根目錄的完全管理訪問許可權
anonuid=***
指定nfs伺服器/etc/passwd檔案中匿名使用者的uid
anongid=***
指定nfs伺服器/etc/passwd檔案中匿名使用者的gid
exports
檔案配置例項,編輯/etc/exports檔案,加入以下內容:
[root@rac01 oracle]# vi /etc/exports
#nfs
/home/oracle/nfs 192.168.3.97(sync,rw)
完成以後重啟nfs服務
[root@rac01 oracle]# service nfs restart
檢視nfs伺服器的自啟動狀態:
[root@rac01 oracle]# chkconfig --list portmap
portmap0:off1:off2:off3:off
4:off5:off6:off
[root@rac01 oracle]# chkconfig --list nfs
nfs0:off1:off2:off3:off
4:off5:off6:off
[root@rac01 oracle]# chkconfig --level 345 portmap on
[root@rac01 oracle]# chkconfig --level 345 nfs on
[root@rac01 oracle]# chkconfig --list portmap
portm 0:off1:off2:off3:on4:on5:on6:off
[root@rac01 oracle]# chkconfig --list nfs
nfs0:off1:off2:off3:on4:on5:on6:off
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作為登陸驗證系統
nfs故障解決
1、nfsd沒有啟動起來
首先要確認nfs輸出列表存在,否則nfsd不會啟動。可用exportfs命令來檢查,如果exportfs命令沒有結果返回或返回不正確,則需要檢查/etc/exports檔案。
2、mountd程序沒有啟動
mountd
程序是乙個遠端過程呼叫(rpc),其作用是對客戶端要求安裝(mount) 檔案系統的申請作出響應。mountd程序通過查詢/etc/xtab檔案來獲知哪些檔案系統可以被遠端客戶端使用。另外,通過mountd程序,使用者可以知道目前有哪些檔案系統已被遠端檔案系統裝配,並得知遠端客戶端的列表。檢視mountd是否正常啟動起來可以使用命令rpcinfo進行檢視,在正常情況下在輸出的列表中應該象這樣的行:
100005 1 udp 1039 mountd
100005 1 tcp 1113 mountd
100005 2 udp 1039 mountd
100005 2 tcp 1113 mountd
100005 3 udp 1039 mountd
100005 3 tcp 1113 mountd
如果沒有起來的話可以檢查是否安裝了portmap元件。
rpm -qa|grep portmap 3
、fs type nfs no supported by kernel
kernel
不支援nfs檔案系統,重新編譯一下kernel就可以解決。45
、mount clntudp_create: rpc: program not registered
nfs沒有啟動起來,可以用showmout -e host命令來檢查nfs server是否正常啟動起來。
6、mount: localhost:/home/test failed, reason given by server: permission denied
這個提示是當client要mount nfs server時可能出現的提示,意思是說本機沒有許可權去mount nfs server上的目錄。解決方法當然是去修改nfs server咯。
7、被防火牆阻擋
NFS 簡單配置
新建nfs 配置歡迎來到來到大浪濤天的部落格!1.1 防火牆關閉 etc init.d iptables stop 1.2 selinux關閉 setenforce 0 1.3 確認本機ip root server ifconfig eth1 awk f nr 2 192.168.50.3 root...
NFS伺服器簡單配置
廢話不說,直接進入步驟 1 網路連通 虛擬機器,開發板,主機都要在同乙個區域網中 開發板可以用網線直接鏈結在主機中,也可以通過鏈結路由器 如果連在路由器上會方便點,可以上網 如果你主機鏈結的是無線網的話,把虛擬機器和 主機和開發板都設定為同乙個區域網都有可能ping不通。可能你虛擬機器和主機能pin...
NFS介紹 NFS服務端安裝配置 NFS配置選項
nfs是network file system的縮寫 nfs最早由sun公司開發,分2,3,4三個版本,2和3由sun起草開發,4 nfs資料傳輸基於rpc協議,rpc為remote procedure call的簡寫。nfs應用場景是 a,b,c三颱機器上需要保證被訪問到的檔案是一樣的,a共享資料...