Kerberized NFSv4 with NIS
<!--[if !supportLists]-->一、<!--[endif]-->环境
kdc:server1.example.com 192.168.32.31
nfs&nis server: station2.example.com 192.168.32.32
nfs&nis client: station3.example.com 192.168.32.33
注:默认kerberos和nis环境已有配置
<!--[if !supportLists]-->二、<!--[endif]-->NFSv4 Server配置
<!--[if !supportLists]-->1、 <!--[endif]-->固定相关端口,并开启安全功能
[root@station2 ~]# vi /etc/sysconfig/nfs
LOCKD_TCPPORT=4001
LOCKD_UDPPORT=4001
MOUNTD_PORT=4002
STATD_PORT=4003
SECURE_NFS="yes"
#启动nfs4必须开启此选项,默认nfs4只支持tcp
<!--[if !supportLists]-->2、 <!--[endif]-->绑定mount需要共享的文件夹(即伪装共享的真实目录)
[root@station2 ~]#mkdir –p /export/nfs
[root@station2 ~]#mount --bind /home/nfs /export/nfs
[root@station2 ~]#vi /etc/fstab
/home/nfs /exports/nfs none bind 0 0
#共享的真实目录是/home/nfs但客户看到的将是/exports/nfs目录
<!--[if !supportLists]-->3、 <!--[endif]-->设置NFSv4共享
[root@station2 ~]#vi /etc/exports
/exports gss/krb5p(rw,fsid=0,crossmnt)
/exports/nfs gss/krb5p(rw)
#使用fsid=0选项的时候只能共享一个目录,这个目录将成为NFS服务器的根目录。要通过NFS4共享一个目录,首先需要在/etc/exports文件中定义这个目录,并且使用 fsid=0 的参数。
#注kerberos认证支持三种模式:
gss/sys:只要有kerberos票据解决使用nfs共享目录,nfsv3也支持此项
gss/krb5i:kerberos会检查数据的完整性
gss/krb5p:kerberos会读nfs共享数据进行加密
<!--[if !supportLists]-->4、 <!--[endif]-->在kdc中添加nfs服务器服务,并导出票据
[root@station2 ~]# kadmin
kadmin: addprinc -e des-cbc-md5:normal -randkey nfs/station2.example.com
kadmin: ktadd -e des-cbc-md5:normal -k /etc/krb5.keytab nfs/station2.example.com
[root@station2 ~]# ktutil #查看票据
ktutil: rkt /etc/krb5.keytab
ktutil: list
slot KVNO Principal
---- ---- -------------------------------------------------------------
1 4 host/station2.example.com@EXAMPLE.COM
2 4 host/station2.example.com@EXAMPLE.COM
3 4 host/station2.example.com@EXAMPLE.COM
4 4 host/station2.example.com@EXAMPLE.COM
5 4 nfs/station2.example.com@EXAMPLE.COM
<!--[if !supportLists]-->5、 <!--[endif]-->启动服务器端相关服务(nfs、rpcsvcgssd、rpcidmapd)
[root@station2 ~]# service nfs start
启动 RPC svcgssd: [确定]
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
#开启nfsv4后,启动nfs服务是会自动启动rpcsvcgssd服务
[root@station2 ~]# service rpcidmapd start
<!--[if !supportLists]-->三、<!--[endif]-->NFSv4 Client配置
<!--[if !supportLists]-->1、 <!--[endif]-->开启安全功能
[root@station3 ~]# vi /etc/sysconfig/nfs
SECURE_NFS="yes"
#要故障nfs4目录客户端也必须开启此选项
<!--[if !supportLists]-->2、 <!--[endif]-->在kdc中添加nfs客户端服务,并导出票据
[root@station3 ~]# kadmin
kadmin: addprinc -e des-cbc-md5:normal -randkey nfs/station3.example.com
kadmin: ktadd -e des-cbc-md5:normal -k /etc/krb5.keytab nfs/station3.example.com
[root@station3 ~]# ktutil
ktutil: rkt /etc/krb5.keytab
ktutil: list
slot KVNO Principal
---- ---- -------------------------------------------------------------
1 5 host/station3.example.com@EXAMPLE.COM
2 5 host/station3.example.com@EXAMPLE.COM
3 5 host/station3.example.com@EXAMPLE.COM
4 5 host/station3.example.com@EXAMPLE.COM
5 3 nfs/station3.example.com@EXAMPLE.COM
<!--[if !supportLists]-->3、 <!--[endif]-->启动客户端相关服务(rpcgssd、rpcidmapd)
[root@station3 ~]#sevice rpcgssd start
[root@station3 ~]#service rpcidmapd start
<!--[if !supportLists]-->4、 <!--[endif]-->挂载服务器共享目录
[root@station3 ~]#mkdir /home/nfs
[root@station3 ~]#mount -t nfs4 -o rw,sec=krb5p 192.168.32.32:/nfs /home/nfs
#挂载时必须用-t nfs4 :挂载nfs4的共享目录
#-o sec=krb5p:利用kerberos加密认证,与服务器向对应
[root@station3 ~]#vi /etc/fstab
192.168.32.32:/home/nfs /home/nfs nfs4 defaults,sec=krb5p 0 0
#开机自动挂载
<!--[if !supportLists]-->5、 <!--[endif]-->测试
[root@station3 ~]# su - netsword
[netsword@station3 ~]$ su - guest2001
口令:
-bash-3.2$ pwd
/home/nfs/guest2001
#只有获拥有kdc认证票据的guest2001等用户才能登录并使用nfs4共享的目录