[转]RHEL7上配置NFS服务
原文地址:http://380531251.blog.51cto.com/7297595/1659865
1.课程目标
了解什么是NFS及其功能;
掌握NFS的配置;
掌握NFS的验证;
能够单独熟练、灵活运用NFS。
2.NFS概述
NFS(Network Files System),网络文件系统是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。它是一种文件系统协议:支持应用程序在客户端通过网络存取位于服务器磁盘中的数据。NFS的基本原则是让不同的客户端及服务器通过一组RPCs共享相同的文件系统,它独立于操作系统,允许不同硬件及操作系统的系统共同进行文件的共享。
虽然NFS可以在网络中进行文件共享,但NFS在设计时并没有提供数据传输的功能。需要借助RPC(Remote Procedure Calls,远程过程调用)。RPC定义了一种进程间通过网络进行交互通信的机制,它允许客户端进程通过网络向远程服务进程请求服务,而不需要了解服务器底层的通信协议详细信息。
当一个RPC连接建立开始阶段,客户端建立过程调用,将调用参数发送到远程服务器进程,并等待相应。请求到达时,服务器通过客户端请求的服务,调用指定的程序。并将结果返回客户端。当RPC调用结束,客户端程序将继续进行下一步的通信操作。
NFS依赖RPC与外部通信,为保证NFS服务正常工作,其需要在RPC注册相应的服务端口信息,这样客户端向服务器的RPC提交访问某个服务的请求时,服务器才能够正确作出相应。
注册NFS服务时,需要先开启RPC,才能保证NFS注册成功。并且如果RPC服务重新启动,其保存的信息将丢失,需重新启动NFS服务以注册端口信息,否则客户端将无法访问NFS服务器。
3.NFS主配置文件介绍
NFS的主配置文件路径为:/etc/exports。默认为空,需要手动添加配置参数。
主配置文件书写格式:
|
共享目录 [客户端(参数)] |
说明:
共享目录:域共享目录的实际路径(要使用绝对路径);
客户端:定义客户端匹配时可以使用FQDN、IP地址、网段、DNS区域。客户端匹配条件表示方法如下:
NFS客户端匹配
|
客户端指定方法 |
示例 |
满足示例的客户端 |
|
IP指定单一主机 |
客户端IP地址为(192.168.1.1) |
|
|
指定网段 |
客户端所在网段为192.168.1.0/24 |
|
|
域名单一主机 |
Nfs.example.com |
客户端FQDN为nfs.example.com |
|
域名指定范围 |
*.example.com |
客户端FQDN的DNS后缀为example.com |
|
所有主机 |
* |
任何访问NFS服务器的客户端 |
参数:对满足客户端匹配条件的客户端进行相关配置。可用参数如下(其中匿名用户指的是nfsnobody):
NFS参数
|
参数 |
说明 |
|
ro |
设置共享为只读,缺省选项 |
|
rw |
设置共享为读写 |
|
root_squash |
当源计算机(NFS客户端)当前用户是root时,将被映射为目标计算机(NFS服务器)的匿名用户 |
|
no_root_squash |
当源计算机(NFS客户端)当前用户是root时,将被映射为目标计算机(NFS服务器)的root用户 |
|
all_squash |
将所有用户映射为目标计算机(NFS服务器)的匿名用户,NFS缺省选项 |
|
anonuid |
设置匿名用户的UID |
|
anongid |
设置匿名用户的GID |
|
sync |
保持数据同步,同时将数据写入内存和硬盘,缺省选项 |
|
async |
先将数据保存在内存,然后写入硬盘,效率更高,但可能造成数据丢失 |
|
secure |
NFS客户端必须使用NFS保留端口(1024以下的端口),缺省选项 |
|
insecure |
允许NFS客户端不使用保留端口(1024以下的端口) |
|
wdelay |
如果NFS服务器怀疑有另一个相关的写请求正在处理或马上就要达到,NFS服务器将延迟提交写请求到磁盘,这就允许使用一个操作提交多个写请求到磁盘,可以改善性能,缺省选项 |
|
nowdelay |
设置了async时该选项无效,NFS服务器将每次写操作写入磁盘 |
4.NFS服务配置
Redhat Linux中,NFS默认是已经安装的,所以在实验中,只需启动服务即可,不用再安装NFS服务。
4.1.服务的启动
查看服务状态
|
[root@server30 ~]# systemctl status nfs-service.service nfs-server.service - NFS Server Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled) Active: inactive (dead) |
缺省没有启动,所以要先启动服务。
|
[root@server30 ~]# systemctl enable nfs-server.service //开启下次系统重启自动加载 ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service' [root@server30 ~]# systemctl restart nfs-server.service [root@server30 ~]# systemctl status nfs nfs-server.service - NFS Server Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled) Active: 的权限
接下来客户端挂载验证
4.4.用户访问权限同为文件共享服务,NFS对访问用户的控制没有Samba的功能强大,但是基本也可满足日常工作对NFS的需要。NFS中,与访问用户的控制相关的参数主要有:root_squash、no_root_squash、all_squash、anonuid、anongid。下面看几个例子(本部分实验仍然用上部分的实验环境): 例1:查看客户端登录时服务器缺省映射为那个用户
如上:【可写共享目录】实验中创建的文件gyh.txt默认的用户和组为nfsnobody。此为缺省参数all_squash的作用,也就是说,不管客户端以什么身份登录到自己的系统,缺省都映射为nfsnobody。 例2:no_root_squash参数:客户端以本地root身份登录服务器时,也拥有root用户权限
如上,客户端以本地root用户登录时,服务器在此参数的作用下把其映射为服务器端的root用户。 例3:anonuid&anongid参数:不论客户端以什么身份登录,缺省都映射为指定用户的UID和指定组的GID。
4.5.NFS的kerberos验证本部分以题目的形式来实验。 题目:
第一部分:server端的配置 主配置文件添加共享资源
配置kerberos验证,需要添加服务器到ldap域中,使用kerberos服务器验证。kerberos验证也需要安装几个工具,然后做添加到LDAP的操作。如下:
①选择[identity*authentication],进行身份验证配置 ②选择【ldap】,加入到ldap域进行验证 ③填写ldap的DN, ④填写ldap的路径,要以ldap开头,//后面为ldap服务器的主机名 ⑤此处要勾选 ⑥点击此处,弹出如下界面,填写证书的密钥链接,下载证书
①填写链接:http://ldap.example.com/pub/EXAMPLE-CA.crt ②点击【ok】完成证书链设置
①根据题目要求,这里要选择kerberos验证方式 ②填写认证服务的kerberos Realm(域) ③此处的勾选要去掉,否则不能进行下一步操作 ④填写认证服务的kerberos KDC ⑤填写认证服务的kerberos Admin Server ⑥点击【Apply】完成认证配置 NFS的版本有许多,Redhat Linux7中的NFS使用版本为4.2,kerberos验证为其特有的验证方式,所以要指明NFS版本,在/etc/sysconfig/nfs配置文件中添加:
如上:只需在第13行添加-V 4.2即可。 Kerberos验证,需要服务器和客户端的时间上不能有太大的差距,所以,为了保证时间准确,还要指定NTP服务器,如下:
如上,将原有的第4、5、6行注释掉,然后添加第7行内容,指定NTP服务器。最后不要忘记重启chronyd.service服务。 下载用于kerberos验证的密钥
根据题目要求,在共享资源下创建project目录,并设置guest2001为其拥有者
注:guest2001是加入ldap域后获取的用户,默认本地没有。 最后,对于服务的重启,不仅要重启nfs服务,同时也要重启nfs的另外两个用于安全验证的服务,如下:
第二部分:客户端配置 创建本地挂载目录/mnt/nfssecure
要进行安全的挂载,也就是使用kerberos验证,所以,客户端同样也要加入到ldap域中,方式与服务器端一样,需要安装三个工具并打开验证配置界面。此处不再赘述。略过。 然后指定NTP服务器,同步时间
下载密钥
同样,客户端也需要启动nfs的安全验证服务
自动挂载配置
为什么挂载失败呢? 因为共享资源那里给的是rw权限,但是共享资源本身目录/protected是没有w权限的,所以还要回服务器为共享资源目录本身添加权限
客户端再次挂载
如上:挂载成功。 最后,验证用户guest2001是否能在/mnt/nfssecure/project下创建文件。 查看本地是否有此用户
因为客户端加入了ldap域,所以获取到LDAP的用户。 连接guest2001用户验证
注:
本文出自 “我就是天使” 博客,请务必保留此出处http://380531251.blog.51cto.com/7297595/1659865 [转]RHEL7上配置NFS服务的更多相关文章
随机推荐
|


