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,准备需要共享的文件夹
    [root@server0 ~]# mkdir  /public
     [root@server0 ~]# mkdir  /protected
    2,建立NFS共享配置
      [root@server0 ~]# vim  /etc/exports
        /public         172.25.0.0/24(ro)
        /protected      172.25.0.0/24(rw)
  3,启动系统服务nfs-server,并设置开机自启
      [root@server0 ~]# systemctl  restart  nfs-server
       [root@server0 ~]# systemctl  enable  nfs-server
      在desktop0上挂载NFS共享目录/public
     1,创建挂载点
      [root@desktop0 ~]# mkdir  /mnt/nfsmount
     2,列出server0上提供的NFS共享资源
      [root@desktop0 ~]# 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
       [root@desktop0 ~]# vim  /etc/fstab
       server0.example.com:/public /mnt/nfsmount nfs _netdev 0 0
    4,测试挂载配置
       [root@desktop0 ~]# mount  -a
       [root@desktop0 ~]# 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://cla***oom/pub/keytabs/server0.keytab
      2,目录 /protected 下包含名为 project 的子目录
      在虚拟机 desktop0 上访问NFS共享目录
      1,挂载 /mnt/nfssecure 需 kerberos加密,密钥地址:
                 http://cla***oom/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
     [root@server0 ~]# lab  nfskrb5  setup
    2,初始化desktop0
     [root@desktop0 ~]# lab  nfskrb5  setup
    3,验证初始化结果
    可以使用网络账号ldapuser0登入到server0或desktop0,其密码是kerberos
     [root@server0 ~]# ssh  ldapuser0@desktop0.example.com
     [ldapuser0@desktop0 ~]$                         //成功登入
     [ldapuser0@desktop0 ~]$ exit                  //返回原环境
为server0、desktop0部署kerberos密钥
 1,为server0下载及部署密钥
     [root@server0 ~]# wget  
     http://cla***oom/pub/keytabs/server0.keytab  -O /etc/krb5.keytab
     [root@server0 ~]# file  /etc/krb5.keytab      //检查部署结果
2,为desktop0下载及部署密钥
     [root@desktop0 ~]# wget 
     http://cla***oom/pub/keytabs/desktop0.keytab  -O /etc/krb5.keytab
     [root@desktop0 ~]# file  /etc/krb5.keytab     //检查部署结果
  在server0上调整/protected共享配置
1,创建指定的子目录
   [root@server0 ~]# mkdir  /protected/project
   [root@server0 ~]# chown  ldapuser0  /protected/project  //赋予可写权限
2,调整共享目录的安全控制类型
   [root@server0 ~]# 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,设置开机自启
   [root@server0 ~]# systemctl  restart  nfs-server  nfs-secure-server
   [root@server0 ~]# systemctl  enable  nfs-server  nfs-secure-server
在desktop0上挂载安全NFS共享/protected
 1,创建挂载点
    [root@desktop0 ~]# mkdir  /mnt/nfssecure
 2,启动系统服务nfs-secure,并配置开机自启
    [root@desktop0 ~]# systemctl  restart  nfs-secure
    [root@desktop0 ~]# systemctl  enable  nfs-secure
 3,配置开机挂载安全NFS共享
    [root@desktop0 ~]# 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,验证挂载配置
    [root@desktop0 ~]# mount  -a
 5,测试对挂载点的写入权限
 以用户ldapuser0通过SSH的方式登入desktop0,
    验证密码(kerberos)以获取通行证:
    [root@desktop0 ~]# ssh  ldapuser0@desktop0.example.com
     访问desktop0的挂载点/mnt/nfssecure/的子目录project,测试可写入
   [ldapuser0@desktop0 ~]$ touch  /mnt/nfssecure/project/a.txt
   [ldapuser0@desktop0 ~]$ ls    /mnt/nfssecure/project/