RHCE课程-RH253Linux服务器架设笔记二-NFS服务器配置

简介:
如果你作为一名linux管理员或者是工程师不知道NFS,那你肯定白混了,确实NFS服务很简单,但是很重要哈~
由于简单,我们就换种方式教学
NFS介绍
NFS=network  file system
NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机不同操作系统之间可以彼此共享文件。
由于NFS使用起来非常方便,因此很快得到了大多数的UNIX/Linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC3010标准
NFS使用的是C/S模式,我们今天会学习服务器的架设,和client的使用
NFS的几大好处,我个人觉得哈:
1、可以把服务器的文件象本地一样的操作,很方便
2、NFS服务器对系统资源占用也少
3、NFS可以支持很多其他服务,比如kickstart(kickstart 是无人值守,网络批量安装服务),NIS等等
4、还有很多,反正用linux和UNIX就不会离开NFS 
NFS只有三个系统守护进程: 
rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
rpc.mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
portmap:portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
这些进程都可以在进程中找到
安装NFS服务器 
image
NFS的常用目录
1、/etc/exports 
这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
现在的版本都有的,等会我们修改的也就是这个文件
2、/usr/sbin/exportfs 
这是维护NFS共享资源的命令,我用的不是很多,我一般在配置文件里面定义
3、/usr/sbin/showmount 
shouwmount命令主要是用在client端,可以用来查看NFS共享出来的目录资源 
4、/var/lib/nfs/*tab 
其中的etab记录了NFS分享出来的目录的完整权限设定值,另一个是xtab,记录曾经连接到此NFS主机的相关client数据。
NFS主要使用以上文件,还有部分配置文件很少使用,我也记不的很详细了
大家可以自己rpm命令来查看下
下面我们来配置NFS服务器
请大家使用vim 编辑器打开 /etc/exports
刚安装好的NFS服务器,这个文件是空的.
image
现在我们在这里面定义我们需要共享的文件和目录,用NFS共享的目录和文件是没有selinux限制的。
这个配置文件只要分为三列
第一列,写入你需要共享的目录路径
第二列 写入客户端描述,也就是哪些客户端可以使用你的服务器
第三列是紧挨着第二列的,内容是共享的权限 
现在我们共享我们的/var/ftp/pub 这个目录,让本地网络都可以访问,访问的权限是读写
image
这里需要注意的是client的描述,表达方式
NFS对client的表达方式要求不是很严格,常用的表达方式他都能识别 
比如,IP就直接输入IP 
192.168.0.24 
网段: 
192.168.0.0/24 
192.168.0.0/255.255.255.0
域名: 
www.linux.com 
域: 
*.linux.com
如果表示所有的IP都能访问,就直接输入*  
而且你还可以分段表示
image
然后重新启动NFS服务器,现在我们的SELINUX是强制状态,iptablesinput和output都是默认ACCEPT,由于NFS服务是基于portmap服务的,所以我们需要先启动portmap服务: service portmap restart ,然后  service nfs restart 
image
OK以后,大家使用 showmount 指令看看是否共享成功
showmount -e  后面跟你的服务器IP 
image
可以使用 showmount -e  这是默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错
image
现在我们把服务器当成client,来挂载服务器上共享的目录
挂载使用mount命令手动挂载,也可以使用autofs挂载
如果使用fstab挂载的话,要注意了,由于系统启动读取fstab在启动rc.d之前。所以那个时候nfs还没有启动,所以会挂在失败,可以在rc.local里面写入 mount -a 来在最后从新挂载fstab 
我们先手动挂载试试
mount -t nfs 192.168.0.188:/var/ftp/pub /mnt/nfs/
image
如果没有报错,就证明挂载成功了,也可以用mount 命令来查看是否挂载成功
image
最下面就是我们NFS挂载的
进去看看,是不是和我们/var/ftp/pub目录东西一样
image
然后我们在/mnt/nfs里面建立一个文件,看看权限是什么
image
看见没有,我明明是root写入的,怎么变成nfsnobody了呢?
NFS的共享权限和访问控制 
关于刚才文件属于nfsnobody的原因,这个是由于系统默认的NFS共享权限中的root_squash 导致的
root_squash:当登陆NFS主机使用共享目录的使用者是root时,其权限被转换成匿名使用者,通常它的UID与GID都会变成nobody身份。
其实NFS有很多默认的参数,我们可以去看看
image
大家看见了吗,默认就有sync,wdelay,hide等等
no_root_squash是让root保持权限,root_squash是把root映射成nobody。 
no_all_squash 就不让所有用户保持在挂载目录中的权限 
所以,root建立的文件是nfsnobody
所以有的参数我们是不需要改动的,下面我们使用普通用户挂载试试,写入文件试试,什么权限
image
普通用户写入文件,就是自己的名字
这也就保证了服务器的安装
sync:同步写入资料到内存与硬盘中 
async:资料会暂存到内存中,而非直接写入硬盘
这两个那个比较好? 
如果你是重要的小文件,当然是sync,同步写入,避免文件丢失 
如果你是很大的数据,建议不要同步写入
rw:可读可写 
ro:只读,这个很简单
其他参数就需要大家自己去查阅了,我记不住那么多
现在我们来说说NFS的访问控制吧
nfs的端口是 2049 ,但是它基于portmap,portmap的端口是111 ,所以默认策略是允许,禁止其中一个端口,都能禁止nfs服务器,而且nfs服务器自己的client描述功能已经很强大了
但是如果把iptables的测试默认DROP的话,想要让服务器外的client访问就有一定难度了 ,下面我们来试试这种访问,把input默认drop掉
iptables -P INPUT DROP
image
现在重新启动portmap和nfs好像都不行了哦
image
我们需要先加入一条规则,允许本地回环
iptables -A INPUT -i lo -j ACCEPT
image
然后重新启动portmap和NFS就可以正常了
image
这样就可以启动了 ,现在本地可以访问挂载了,但是服务器之外的其他client都不能挂载,因为input限制了哈~
下面这个实验需要两个虚拟机才能实现
我们要允许相关端口 
第一个 111 
第二个  2049 
还有四个端口需要允许,这个四个端口本来是由portmap动态分配,但是为了配合防火墙,所以我们要手动指定
怎么确定是2049端口?linux系统里面你也可以看
image
你也可以使用相同的方法看看111端口
image 
编辑NFS的端口配置文件
vim /etc/sysconfig/nfs
image
自定义以下端口,然而不能和其他端口冲突
RQUOTAD_PORT= 
LOCKD_TCPPORT= 
LOCKD_UDPPORT= 
MOUNTD_PORT= 
STATD_PORT=
 
image
就是这 5个参数,但是 
LOCKD_TCPPORT= 
LOCKD_UDPPORT= 
可以使用一个IP
 
大家定义好了,重新启动服务器就可以了
image
然后使用防火墙策略iptables打开这几个端口
允许111和2049的语句
iptables -A INPUT -s 192.168.0.0/24 -p tcp -m multiport --dport 111,2049 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p udp -m multiport --dport 111,2049 -j ACCEPT
允许10001到10004端口的语句
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 10001:10004 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p udp --dport 10001:10004 -j ACCEPT
image
image
注意:iptables开启nfs相关端口TCP和UDP都要开启哈~~~偶就只开了TCP没开UDP,导致客户端不能挂载nfs,花了我两天时间才找出这个原因,郁闷哈~~~~
image
在iptables中开启相应端口后客户端挂载nfs时又提示RPC没有注册
image
查下nfs服务器哈~
image
重启下portmap和nfs服务哈~
image
执行注册后再使用rpcinfo命令进行检测
image
这样CLIENT端口就可以访问了
  image
由于NFS基于portmap的,而且portmap支持tcp_wrapper,所以我们也可以用tcp_wrapper对nfs进行限制
vim /etc/hosts.deny
image
禁止之后,如果没有挂载nfs,则会提示nfs没有注册哈~
image
如果客户端已经挂载了nfs,则会提示不能umount
image 
本地能访问使用的是127.0.0.1 如果把tcp_wrapper的client描述改成 ALL, 就不能访问了
#####################Michael分割线#########################





本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/140505 ,如需转载请自行联系原作者
相关文章
|
1天前
|
Ubuntu Linux
Linux服务器的自动启动可以在哪里进行配置?
Linux服务器的自动启动可以在哪里进行配置?
12 3
|
9天前
|
存储 数据挖掘 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统服务器上跑了几十个网站,服务器上只有一块SATA硬盘。 服务器故障: 服务器突然宕机,尝试再次启动失败。将硬盘拆下检测,发现存在坏扇区
|
16天前
|
存储 安全 Linux
离线Linux服务器环境搭建
【9月更文挑战第3天】在离线环境下搭建Linux服务器需按以下步骤进行:首先确定服务器用途及需求,准备安装介质与所需软件包;接着安装Linux系统并配置网络;然后设置系统基础参数,如主机名与时区;安装必要软件并配置服务;最后进行安全设置,包括关闭非必要服务、配置防火墙、强化用户认证及定期备份数据。整个过程需确保软件包的完整性和兼容性。
|
18天前
|
存储 监控 Linux
监控Linux服务器
详细介绍了如何监控Linux服务器,包括监控CPU、内存、磁盘存储和带宽的使用情况,以及使用各种系统监控工具如vmstat、iostat、sar、top和dstat来分析系统性能,并推荐了一些开源监控系统。
24 0
监控Linux服务器
|
11天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
9天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
7天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
8天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
18天前
|
存储 弹性计算 运维
阿里云日常运维-购买服务器
这篇文章是关于如何在阿里云购买和配置云服务器ECS的教程。
56 6
阿里云日常运维-购买服务器
|
1天前
|
弹性计算 人工智能 安全
阿里云推出第九代ECS实例,最高提升30%性能
阿里云推出第九代ECS实例,最高提升30%性能