文件共享:NFS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件共享:NFS相关的知识,希望对你有一定的参考价值。
NFS共享概述:
Network File System:网络文件系统
--用途:为客户机提供共享使用的文件夹
--协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
所需软件包:nfs-utils
系统服务:nfs-server
配置NFS共享目录的记录格式:
文件夹绝对路径 客户机地址(ro或rw等控制参数)
普通NFS共享的实现:
要求:
在虚拟机server0上配置NFS服务,完成以下任务:
1,只读方式共享目录/public,只能被example.com域内系统访问
2,可读写共享目录/protected,能被 example.com 域中的系统访问
在虚拟机 desktop0 上访问NFS共享目录
1,将 server0 的 /public 挂到本地 /mnt/nfsmount
2,这些文件系统在系统启动时自动挂载
方案:
对于普通NFS共享来说:
服务端需要运行系统服务 nfs-server.service
客户端不需要运行特定的系统服务
步骤:
在server0上发布NFS共享目录
1,准备需要共享的文件夹
[[email protected] ~]# mkdir /public
[[email protected] ~]# mkdir /protected
2,建立NFS共享配置
[[email protected] ~]# vim /etc/exports
/public 172.25.0.0/24(ro)
/protected 172.25.0.0/24(rw)
3,启动系统服务nfs-server,并设置开机自启
[[email protected] ~]# systemctl restart nfs-server
[[email protected] ~]# systemctl enable nfs-server
在desktop0上挂载NFS共享目录/public
1,创建挂载点
[[email protected] ~]# mkdir /mnt/nfsmount
2,列出server0上提供的NFS共享资源
[[email protected] ~]# showmount -e server0.example.com
Export list for server0.example.com:
/protected 172.25.0.0/24
/public 172.25.0.0/24
3,配置开机挂载server0的NFS共享目录/public
[[email protected] ~]# vim /etc/fstab
server0.example.com:/public /mnt/nfsmount nfs _netdev 0 0
4,测试挂载配置
[[email protected] ~]# mount -a
[[email protected] ~]# df -hT /mnt/nfsmount/
Filesystem Type Size Used Avail Use% Mounted on
server0.example.com:/public nfs4 10G 3.2G 6.8G 32%
/mnt/nfsmount
安全NFS共享的实现
要求:
在虚拟机 server0 上配置安全NFS服务,完成以下任务:
1,访问 /protected 需 kerberos 加密,密钥地址:
http://classroom/pub/keytabs/server0.keytab
2,目录 /protected 下包含名为 project 的子目录
在虚拟机 desktop0 上访问NFS共享目录
1,挂载 /mnt/nfssecure 需 kerberos加密,密钥地址:
http://classroom/pub/keytabs/desktop0.keytab
2,用户 ldapuser0 能够在 /mnt/nfssecure/project
目录下创建文件,其密码为 kerberos
方案:
对于安全NFS共享来说:
1,服务端需要运行系统服务
nfs-server.service、nfs-secure-server.service
2,客户端需要运行系统服务 nfs-secure.service
知识点:
1,kerberos认证/加密:一次认证(获取通行证),多次免密码登录。
2,客户机密钥部署位置:/etc/krb5.keytab
3,参与kerberos认证/加密的客户机需要加入同一个kerberos领域,
在此我们通过执行lab nfskrb5 setup操作来实现
步骤:
将server0、desktop0加入kerberos认证领域
1,初始化server0
[[email protected] ~]# lab nfskrb5 setup
2,初始化desktop0
[[email protected] ~]# lab nfskrb5 setup
3,验证初始化结果
可以使用网络账号ldapuser0登入到server0或desktop0,其密码是kerberos
[[email protected] ~]# ssh [email protected]
[[email protected] ~]$ //成功登入
[[email protected] ~]$ exit //返回原环境
为server0、desktop0部署kerberos密钥
1,为server0下载及部署密钥
[[email protected] ~]# wget
http://classroom/pub/keytabs/server0.keytab -O /etc/krb5.keytab
[[email protected] ~]# file /etc/krb5.keytab //检查部署结果
2,为desktop0下载及部署密钥
[[email protected] ~]# wget
http://classroom/pub/keytabs/desktop0.keytab -O /etc/krb5.keytab
[[email protected] ~]# file /etc/krb5.keytab //检查部署结果
在server0上调整/protected共享配置
1,创建指定的子目录
[[email protected] ~]# mkdir /protected/project
[[email protected] ~]# chown ldapuser0 /protected/project //赋予可写权限
2,调整共享目录的安全控制类型
[[email protected] ~]# vim /etc/exports
/public 172.25.0.0/24(ro)
/protected 172.25.0.0/24(rw,sec=krb5p) //指定安全类型
3,重启系统服务nfs-server、nfs-secure-server,设置开机自启
[[email protected] ~]# systemctl restart nfs-server nfs-secure-server
[[email protected] ~]# systemctl enable nfs-server nfs-secure-server
在desktop0上挂载安全NFS共享/protected
1,创建挂载点
[[email protected] ~]# mkdir /mnt/nfssecure
2,启动系统服务nfs-secure,并配置开机自启
[[email protected] ~]# systemctl restart nfs-secure
[[email protected] ~]# systemctl enable nfs-secure
3,配置开机挂载安全NFS共享
[[email protected] ~]# vim /etc/fstab
server0.example.com:/public /mnt/nfsmount nfs _netdev 0 0
server0.example.com:/protected /mnt/nfssecure nfs sec=krb5p,_netdev 0 0
4,验证挂载配置
[[email protected] ~]# mount -a
5,测试对挂载点的写入权限
以用户ldapuser0通过SSH的方式登入desktop0,
验证密码(kerberos)以获取通行证:
[[email protected] ~]# ssh [email protected]
访问desktop0的挂载点/mnt/nfssecure/的子目录project,测试可写入
[[email protected] ~]$ touch /mnt/nfssecure/project/a.txt
[[email protected] ~]$ ls /mnt/nfssecure/project/
以上是关于文件共享:NFS的主要内容,如果未能解决你的问题,请参考以下文章