配置NFS共享

配置NFS共享 (Linux与Linux之间的共享)

普通NFS服务

NFS(Network File System):网络文件系统

用途:为客户机提供共享使用的文件夹

协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)

NFS软件包:nfs-utils

系统服务:nfs-server

客户端不需要运行特定的系统服务

Exports配置文件解析

配置文件/etc/exports

配置文件修改:文件夹绝对路径 客户机地址(权限) 客户机地址(权限)

             权限:ro或rw等控制参数

使用exportfs -r 可以重载更新过的配置

客户机访问NFS共享文件夹

1)列出有哪些共享资源: showmount -e 服务器地址

2)手动挂载NFS共享:   mount 服务器地址:文件夹路径 挂载点

3)开机自动挂载配置/etc/fstab: 服务器地址:文件夹路径 挂载点 nfs _netdev 0 0

###############################################################################

案例3:普通NFS共享的实现

在虚拟机 server0 上配置NFS服务,完成以下任务:

1.只读的方式共享目录 /public,只能被 example.com 域中的系统访问

2.可读写共享目录/protected,能被 example.com 域中的系统访问

然后在虚拟机 desktop0 上访问NFS共享目录

1.将 server0 的 /public 挂到本地 /mnt/nfsmount

2.这些文件系统在系统启动时自动挂载

步骤一:在server0上发布NFS共享目录

1)检测是否安装软件包nfs-utils# rpm -q nfs-utils

2)准备需要共享的文件夹 # mkdir  /public      # mkdir  /protected

3)建立NFS共享配置 # vim  /etc/exports

/public         172.25.0.0/24(ro)

/protected      172.25.0.0/24(rw)

4)启动系统服务nfs-server,并设置开机自启 # systemctl  restart  nfs-server

# systemctl  enable  nfs-server

步骤二:在desktop0上挂载NFS共享目录/public

1)创建挂载点 # mkdir  /mnt/nfsmount

2)列出server0上提供的NFS共享资源# showmount  -e  server0.example.com

3)配置开机挂载server0的NFS共享目录/public

# vim  /etc/fstab

server0.example.com:/public     /mnt/nfsmount   nfs  defaults,_netdev   0  0

4)测试挂载配置 # mount -a     # df -hT /mnt/nfsmount/

###############################################################################

安全NFS服务

安全NFS的前提条件:服务器、客户机都需要加入LDAP+Kerberos认证

安全NFS服务的特点

Ø 作为普通NFS的增强版

结合LDAP+kerberos技术,实现认证和加密支持

同一个kerbreos领域内,认证用户可实现“一次认证(获取通行证),多次免密登陆”的通行证机制

LDAP:管理所有用户信息

Kerbreos(地狱三头犬):提供密码认证

Ø 服务端:发布安全NFS:添加 sec=krb5p

1)调整共享目录配置,启用安全NFS支持

2)部署kerberos密钥文件

3)服务端需要运行系统服务 nfs-server.service、nfs-secure-server.service

Ø 访问安全NFS:

1)部署kerberos密钥文件到/etc

2)客户端需要运行系统服务 nfs-secure.service

3)挂载设置添加:sec=krb5p,_netdev   

服务器地址:文件夹路径 挂载点 nfs  sec=krb5p,_netdev 0 0

4)#mount -a    #df -hT

不要忘记部署Kerberos密钥:下载各自的密钥文件,部署到 /etc/krb5.keytab

通过LDAP服务器提供用户名、通过Kerberos服务器提供密码 

###############################################################################

案例4:安全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

步骤一:将server0、desktop0加入kerberos认证领域

还原所有虚拟机,并将防火墙的默认区域设置为trusted

1、教学环境虚拟机按以下操作处理(将虚拟机server0与desktop0,加入LDAP、kerberos)。

1)初始化server0 # lab  nfskrb5  setup       //自定义脚本程序,用于本次实验用

lab  nfskrb5  setup 操作的作用:

安装LDAP、kerberos的客户端相关的软件包

将用户认证配置为支持LDAP+kerberos(authconfig-gtk)

启动LDAP、kerberos的客户端相关服务

2)初始化desktop0 # lab  nfskrb5  setup

3)# id ldapuser0           //验证是否识别网络用户

4)验证初始化结果

可以使用网络账号ldapuser0登入到server0或desktop0,其密码是kerberos:

# ssh  [email protected]

Are you sure you want to continue connecting (yes/no)? yes    //接受密钥

[email protected]'s password:           //输入密码kerberos

$                               //成功登入

$ exit                              //返回原环境

步骤二:为server0下载及部署密钥

# wget  http://classroom/pub/keytabs/server0.keytab  -O /etc/krb5.keytab

# file  /etc/krb5.keytab                 //检查部署结果

步骤三:在server0上调整/protected共享配置

1)创建指定的子目录# mkdir -p /protected/project

# chown  ldapuser0  /protected/project  //赋予可写权限,亦可用acl

2)调整共享目录的安全控制类型

# 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(安全的nfs服务),设置开机自启

# systemctl  restart  nfs-server  nfs-secure-server   //两个服务最好同时重启

# systemctl  enable  nfs-server  nfs-secure-server

# exportfs -r

步骤四:客户端:在desktop0上挂载安全NFS共享/protected

1)创建挂载点 # mkdir  /mnt/nfssecure

2)为desktop0下载及部署密钥

# wget  http://classroom/pub/keytabs/desktop0.keytab  -O /etc/krb5.keytab

# file  /etc/krb5.keytab                 //检查部署结果

3)配置开机挂载安全NFS共享

# 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)重起系统服务nfs-secure,并配置开机自启 # systemctl  restart  nfs-secure

# systemctl  enable  nfs-secure

4)验证挂载配置 # mount  -a  # df  -hT  /mnt/nfs*

5)测试对挂载点的写入权限(必须用ssh进行测试,因为su不经过LDAP)

以用户ldapuser0通过SSH的方式登入desktop0,验证密码(kerberos)以获取通行证:

[root@desktop0~]# ssh [email protected]   //输入密码kerberos,成功

访问desktop0的挂载点/mnt/nfssecure/的子目录project,测试可写入:

[ldapuser0@desktop0 ~]$ touch  /mnt/nfssecure/project/a.txt

[ldapuser0@desktop0 ~]$ ls  -lh  /mnt/nfssecure/project/a.txt

-rw-rw-r--. 1 ldapuser0 ldapuser0 0 Nov 27 04:43 /mnt/nfssecure/project/a.txt

 

最常见的问题:

1)用来kerberos加密的密钥文件

  server0  ==》 server0.keytab  ==》 /etc/krb5.keytab

  desktop0  ==》 desktop0.keytab  ==》 /etc/krb5.keytab

   检测方法:klist  -k  /etc/krb5.keytab

 

Linux系统服务完整的名称:服务名.service

nfs-server  <==>  nfs-server.service

nfs-secure-server  <==> nfs-secure-server.service

 

LDAP客户端配置

1)本地账号(/etc/passwd、/etc/shadow)登录到server0

登录到不同的机器,密码可能不一样,多次登录

2)网络账号(LDAP、LDAP)登录到server0、desktop0、……

登录到不同的机器,密码一样,多次登录

3)网络账号(LDAP、kerberos)登录到server0、desktop0、……

登录到不同的机器,密码一样,一次登录

kerberos单点登录 —— 用一个用户名/密码登录一批机器(通行证)

你可能感兴趣的:(Linux)