配置NFS服务 在server0配置NFS服务,要求如下:
- 以只读的形式共享目录/public同时只能被example.com域中的系统访问。
- 以读写的形式共享目录/protected同时只能被example.com域中的系统访问。
- 访问/protected需要通过Kerberos安全加密,您可以使用下面提供的密钥:
-http://classroom.example.com/pub/keytabs/server0.keytab
- 目录/protected应该包含名为project拥有人为ldapuser0的子目录
- 用户ldapuser0能以读写形式访问/protected/project
挂载一个NFS共享 在desktop0上挂载一个来自server0上的NFS共享,并符合下列要求:
- /pulbic共享挂载到本地的/mnt/nfsmount。
- /protected挂载到本地的/mnt/nfssecure,并使用安全的方式,密钥下载地址:
-http://classroom.example.com/pub/keytabs/desktop0.keytab
- 用户ldapuser0能够在/mnt/nfssecure/project上创建文件。
- 这些文件系统在系统启动时自动挂载。
环境已经配置好kerberos和ldap。如果没有自己下载
authconfig*
sssd
krb5-workstation*
进行配置。
创建目录
[root@server0 ~]# mkdir /public
[root@server0 ~]# mkdir -p /protected/project
修改目录权限,protected需要有读写权限,project需要修改拥有人身份
[root@server0 ~]# chmod o+w /protected/ -R
[root@server0 ~]# chown ldapuser0 /protected/project/
下载kerberos证书到 /etc/krb5.keytab
[root@server0 ~]# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
vim /etc/exports
修改文件,增加共享信息。
/public 172.25.0.0/24(ro) #要共享的目录 允许访问的ip段 参数
/protected 172.25.0.0/24(rw,sec=krb5p)
常用的NFS共享参数
参数 | 描述 |
---|---|
ro | 只读 |
rw | 可读写 |
root_squash | root权限压缩成nobody |
no_root_squash | root权限不压缩 比较危险 |
all_squash | 所有用户权限压缩成nobody |
insecure | 允许非授权访问 |
sync | 同步写入硬盘 |
kerberos参数
参数 | 描述 |
---|---|
krb5 | 使用kerberos认证 |
krb5i | 使用kerberos认证,并校验数据完整性 |
krb5p | 使用kerberos认证,并加密数据 |
- 启动NFS相关服务,并设置开机启动 nfs-server
和 nfs-secure-server
“`
[root@server0 ~]# systemctl restart nfs-server nfs-secure-server
[root@server0 ~]# systemctl enable nfs-server nfs-secure-server
“`
如果没有下载kerberos证书,或者下载不正确,是不能正常启动nfs-secure-server
的
nfs
、rpc-bind
和mountd
[root@server0 ~]# firewall-cmd --permanent --add-service=nfs
[root@server0 ~]# firewall-cmd --permanent --add-service=rpc-bind
[root@server0 ~]# firewall-cmd --permanent --add-service=mountd
[root@server0 ~]# firewall-cmd --reload
配置到这里就完成了。如果想要查看输出的共享信息,可以使用 exportfs -v
查看
[root@server0 ~]# exportfs -v
/public 172.25.0.0/24(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
/protected 172.25.0.0/24(rw,wdelay,root_squash,no_subtree_check,sec=krb5p,rw,secure,root_squash,no_all_squash)
如果你修改了/etc/exports
配置,不想重启服务又想立即生效,可以使用 exportfs -arv
exportfs参数
参数 | 描述 |
---|---|
a | 所有共享 |
u | umount共享 |
r | remount共享 |
v | 输出信息 |
可以先
showmount
查看一下server0的共享。如果没有,返回检查server0.
[root@desktop0 ~]# showmount -e server0
Export list for server0:
/protected 172.25.0.0/24
/public 172.25.0.0/24
建立相应的挂载点 /mnt/nfsmount
、 /mnt/nfssecure
[root@desktop0 ~]# mkdir /mnt/nfsmount
[root@desktop0 ~]# mkdir /mnt/nfssecure
下载kerberos证书到/etc/krb5.keytab
[root@desktop0 ~]# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab
启动相关服务并设置开机启动
[root@desktop0 ~]# systemctl restart nfs-secure
[root@desktop0 ~]# systemctl enable nfs-secure
vim /etc/fstab
使得开机能自动挂载
172.25.0.11:/public /mnt/nfsmount nfs defaults 0 0
172.25.0.11:/protected /mnt/nfssecure nfs defaults 0 0
mount -a
挂载所有选项
[root@desktop0 ~]# mount -a
可以df -Th
查看是否有成功挂载
[root@desktop0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 10G 3.1G 7.0G 31% /
devtmpfs devtmpfs 906M 0 906M 0% /dev
tmpfs tmpfs 921M 80K 921M 1% /dev/shm
tmpfs tmpfs 921M 17M 904M 2% /run
tmpfs tmpfs 921M 0 921M 0% /sys/fs/cgroup
tmpfs tmpfs 921M 17M 904M 2% /run/netns
172.25.0.11:/public nfs4 10G 3.1G 7.0G 31% /mnt/nfsmount
172.25.0.11:/protected nfs 10G 3.1G 7.0G 31% /mnt/nfssecure
验证ldapuser0用户对project目录写的权限
[ldapuser0@desktop0 ~]$ cd /mnt/nfssecure/project/
[ldapuser0@desktop0 project]$ touch 11
[ldapuser0@desktop0 project]$ ll
total 0
-rw-rw-r--. 1 ldapuser0 ldapuser0 0 Jan 3 22:47 11
[ldapuser0@desktop0 project]$