- 安裝 nfs-utils 套件。
[root@kvm5 ~]# yum install -y nfs-utils
- 建立 NFS 分享目錄。
[root@kvm5 ~]# mkdir /public /protected
- 修改 NFS 分享目錄的 SELinux 檔案 context。
[root@kvm5 ~]# semanage fcontext -a -t public_content_t "/public(/.*)?"
[root@kvm5 ~]# semanage fcontext -a -t public_content_t "/protected(/.*)?"
[root@kvm5 ~]# restorecon -Rv /public /protected
- 考試時不用自行產(chǎn)生 kerberos keytab,只要依照指定的位置下載,存放在目錄 /etc/ 下,且檔名必須為 krb5.keytab。
[root@kvm5 ~]# wget http://deyu.wang/kvm5.keytab -O /etc/krb5.keytab
- kerberos keytab 的驗證跟時間有關(guān),server 與 client 都必須校時。
[root@kvm5 ~]# date
Sun Jan 7 14:50:04 CST 2018
[root@kvm5 ~]# chronyc -a makestep
200 OK
200 OK
[root@kvm5 ~]# date
Mon Nov 20 15:53:22 CST 2017
- 在 /protected 下建立次目錄 restricted,並將其擁有者設(shè)定為 deyu3,讓 deyu3 可以寫入資料。
[root@kvm5 ~]# mkdir -p /protected/restricted
[root@kvm5 ~]# chown deyu3 /protected/restricted
- 編輯設(shè)定檔 /etc/exports,分享 /protected 及 /public 兩個目錄給網(wǎng)域 192.168.122.0/24。
[root@kvm5 ~]# echo '/protected 192.168.122.0/24(rw,sync,sec=krb5p)' > /etc/exports
[root@kvm5 ~]# echo '/public 192.168.122.0/24(ro,sync)' >> /etc/exports
[root@kvm5 ~]# vim /etc/exports
[root@kvm5 ~]# cat /etc/exports
/protected 192.168.122.0/24(rw,sync,sec=krb5p)
/public 192.168.122.0/24(ro,sync)
- NFS 掛載參數(shù)說明如下,詳細(xì)說明請參考 man 5 nfs 手冊。
- rw:read-write,可讀寫的權(quán)限;
- ro:read-only,唯讀的權(quán)限;
- sec=mode:安全認(rèn)證模式;
- sec=sys 預(yù)設(shè),使用本地 UNIX UIDs 及 GIDs 進(jìn)行身份認(rèn)證。
- sec=krb5 使用 Kerberos V5 取代本地 UNIX UIDs 及 GIDs 進(jìn)行身份認(rèn)證。
- sec=krb5i 使用 Kerberos V5 進(jìn)行身份認(rèn)證,資料完整性檢查,以防止數(shù)據(jù)被篡改。
- sec=krb5p 使用 Kerberos V5 進(jìn)行身份認(rèn)證,資料完整性檢查及 NFS 傳輸加密,以防止數(shù)據(jù)被篡改,這是最安全的方式。
- sync:資料同步寫入到記憶體與硬碟當(dāng)中;
[root@kvm5 ~]# man 5 nfs
- 設(shè)定使用 4.2 版本,以匯出分享 SELinux context。無適合的版本 client 端掛載時會出現(xiàn) mount.nfs: Protocol not supported 的訊息。
[root@kvm5 ~]# vim /etc/sysconfig/nfs sed -i 's/^\(RPCNFSDARGS=\).*$/\1\"-V 4.2\"/' /etc/sysconfig/nfs
[root@kvm5 ~]# grep ^RPCNFSDARGS /etc/sysconfig/nfs RPCNFSDARGS="-V 4.2"
- 設(shè)定開機(jī)啟動 nfs 服務(wù),NFS server 端的服務(wù)為 nfs-server 及 nfs-secure-server,本版本只要啟動 nfs-server 就同時啟動 nfs-secure-server,而且使用 tab 鍵也不會出現(xiàn) nfs-secure-server 服務(wù),但有些版本則是兩者分開,必須確認(rèn)是不是兩種服務(wù)都啟動。
[root@kvm5 ~]# systemctl enable nfs-server.service nfs-secure-server.service
- 啟動 nfs 服務(wù)
[root@kvm5 ~]# systemctl start nfs-server.service nfs-secure-server.service
- 查看目前啟動的 nfs 版本,因 server 指定使用 4.2,若出現(xiàn) -4.2 表示 nfs server 沒有成功啟動。
[root@kvm5 ~]# cat /proc/fs/nfsd/versions -2 +3 +4 +4.1 +4.2
- 要確定 nfs-secure-server nfs-server 服務(wù)都正常運作。
[root@kvm5 ~]# systemctl status nfs-secure-server.service nfs-server.service
nfs-secure-server.service - Secure NFS Server
Loaded: loaded (/usr/lib/systemd/system/nfs-secure-server.service; enabled)
Active: active (running) since Mon 2015-09-21 20:04:10 CST; 8s ago
Process: 3075 ExecStart=/usr/sbin/rpc.svcgssd $RPCSVCGSSDARGS (code=exited, status=0/SUCCESS)
Main PID: 3077 (rpc.svcgssd)
CGroup: /system.slice/nfs-secure-server.service
└─3077 /usr/sbin/rpc.svcgssd
Sep 21 20:04:10 kvm5.deyu.wang systemd[1]: Starting Secure NFS Server
Sep 21 20:04:10 kvm5.deyu.wang systemd[1]: Started Secure NFS Server.
nfs-server.service - NFS Server
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled)
Active: active (exited) since Mon 2015-09-21 20:04:10 CST; 8s ago
Process: 3078 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
Process: 3076 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
Process: 3087 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS $RPCNFSDCOUNT (code=exited, status=0/SUCCESS)
Process: 3084 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Process: 3083 ExecStartPre=/usr/libexec/nfs-utils/scripts/nfs-server.preconfig (code=exited, status=0/SUCCESS)
Main PID: 3087 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
Sep 21 20:04:10 kvm5.deyu.wang systemd[1]: Starting NFS Server
Sep 21 20:04:10 kvm5.deyu.wang systemd[1]: Started NFS Server.
- 建議不論是否 TAB 有沒有出現(xiàn)提示,都同時啟動這兩個服務(wù)。CentOS 安裝版本
nfs-utils-1.3.0-8.el7.x86_64
啟動 nfs-secure-server 出現(xiàn)錯誤訊息,請執(zhí)行 yum downgrade nfs-utils 換成 nfs-utils-1.3.0-0.el7.x86_64
套件。[root@kvm5 ~]# rpm -qa | grep nfs-utils
nfs-utils-1.3.0-8.el7.x86_64
[root@kvm5 ~]# yum downgrade nfs-utils -y
[root@kvm5 ~]# rpm -qa | grep nfs-utils
nfs-utils-1.3.0-0.el7.x86_64
- 再重新啟動 nfs 服務(wù),並查看是否正常運作。
[root@kvm5 ~]# systemctl restart nfs-server.service nfs-secure-server.service
- 輸出所有設(shè)定的 nfs 分享目錄。
[root@kvm5 ~]# exportfs -arv
exporting 192.168.122.0/24:/public
exporting 192.168.122.0/24:/protected