项目六 配置与应用NFS服务

任务一:配置简单的NFS服务器

【任务说明】

NFS协议本身并没有提供数据传输的功能。它借助于远程过程调用(RPC)协议来实现数据的传输。可以将NFS服务器看成是一

个RPC服务器,而将NFS客户端看成是一个RPC客户端,这样NFS服务器和NFS客户端之间就可以通过RPC协议进行数据传输。

现在企业内部有一台Linux server其ip地址为192.168.1.254,一台Linux client其 ip 地址192.168.1.100。现根据企业实际生产需

要,配置实现如下需求:

1.将/root 共享给192.168.1.100,客户端对共享可写,并采用同步方式传输数据,允许客户机以root权限访问

2.将/usr/src 共享给192.168.1.0/24网段,客户端对共享可写,并采用异步方式传输数据。

3.在上一个要求基础上实现客户端上面所有用户身份都映射成nfsnobody

【任务实施】


第1步:查看nfs程序是否安装

【rpm -qa |grep nfs】查看nfs是否安装

【rpm -qa |grep rpcbind】查看RPC是否安装

项目六 配置与应用NFS服务

通过查询我们发现系统已经默认安装好了相应的软件,目前几乎所有Linux发行版本都默认安装了NFS服务,CentOS也不例外。如果没有,我们可以通过下面的命令安装:

【yum -y install nfs-utils rpcbind】CentOS6.x使用nfs4,不同于nfs3,不再需要安裝portmap

第2步:备份nfs配置文件

在修改任何配置文件之前请先备份原有配置文件

【cp /etc/exports /etc/exports.bak】备份主配置文件

项目六 配置与应用NFS服务

第3步:编辑配置文件实现需求1,2要求

使用【vim /etc/exports】命令编辑NFS的主配置文件,输入如下内容:

项目六 配置与应用NFS服务

备注:上面配置文件括号中的参数详细释义如下:

rw:读/写权限,只读权限的参数为ro;

sync:数据同步写入内存和硬盘,

async:数据会先暂存于内存中,而不立即写入硬盘。

no_root_squash:共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root的权限。

第4步:重启服务并设置开机自动启动

【service rpcbind restart】重启rpcbind服务

【service nfs restart】重启nfs服务

【chkconfig nfs on】设置nfs开机自动启动

【chkconfig rpcbind on  】设置rpcbind开机自动启动

项目六 配置与应用NFS服务

第5步:服务器端设置/usr/src本地写权限

【chmod o+w /usr/src/】给/usr/src目录增加其他人(other)的写(w)权限

项目六 配置与应用NFS服务

第6步:查看在客户机上查看NFS服务器上共享的目录

【showmount -e 192.168.1.254】查看nfs服务器的可用共享目录

项目六 配置与应用NFS服务

第7步:客户机测试

在客户机上使用如下命令进行测试:

[[email protected] ~]# mkdir -p /data/root  #建立本地挂载点

[[email protected] ~]# mount 192.168.1.254:/root /data/root/ #挂载远程资源到本地

[[email protected] ~]# mkdir -p /tmp/src #建立本地挂载点

[[email protected] ~]# mount 192.168.1.254:/usr/src /tmp/src/#挂载远程资源到本地

[[email protected] ~]# mount |tail -2 #查看挂载的最后两行

[[email protected] ~]# cd /data/root/ #root用户进入挂载目录测试需求1

[[email protected] root]# touch nfs   #建立挂载点

[[email protected] src]$ cd /tmp/src #yhy普通用户进入挂载目录测试需求2

[[email protected] src]$ touch yhy #建立测试文件

项目六 配置与应用NFS服务

项目六 配置与应用NFS服务

第8步:需求3把所有用户都映射成nfsnobody

使用命令【 cat /etc/exports】参看NFS主配置文件,内容如下:

【 chmod o-w /usr/src】清除上面实验的权限

【setfacl -m u:nfsnobody:rwx /usr/src/】设置访问控制列表

项目六 配置与应用NFS服务

第9步:客户机测试

[[email protected] src]$ touch bestyhy (yhy普通用户进入挂载目录测试需求3)

第10步:客户机卸载NFS服务器

使用【umount 绝对路径】命令卸载不再使用的已挂载NFS输出目录。

[[email protected] ~]#umount /data/root/  #卸载不再使用的挂载目录/data/root/

[[email protected] ~]#umount /tmp/src    #卸载不再使用的挂载目录/tmp/src

项目六 配置与应用NFS服务

任务二  架设企业级NFS 服务器


【任务说明】:

NFS由SUN公司开发,采用客户机/服务器模式,它类似于WINDOW要中文件服务器) NFS可提高资源使用率,极大的省去本地硬盘空间。

现公司计划搭建一台NFS服务器ip地址为192.168.1.254,实现如下目标:

1.共享文件夹/nfs/market,可供子网192.168.185.0/24客户端访问,具有读写功能,其它子网只能读取。

2.共享文件夹/nfs/sales,只允许192.168.16.20计算机可以访问,而且进行读写操作。

3.共享文件夹/nfs/root , gov.net域中的所有客户机是只读权限,并不将root用户映射到匿名(nfsnobody)用户。

4.共享目录/mnt/cdrom,网段192.168.16.0/24子网均可以具有读取权限 。

5.配置客户端的自动挂载服务。

【任务实施】:

在设置权限时,不仅要考虑NFS的权限,还要考虑本地的权限。

第1步:安装NFS服务

首先查询NFS软件是否安装,如果没有,可以通过yum源安装。

【rpm –qa nfs-utils rpcbind】检查与nfs服务相关的两个软件是否安装

【yum -y install nfs-utils rpcbind】CentOS6.x使用nfs4,不同于nfs3,不再需要安装portmap
项目六 配置与应用NFS服务
第2步:备份nfs配置文件

【cp /etc/exports /etc/exports.bak】在修改配置文件之前,一定记得备份原有配置文件
项目六 配置与应用NFS服务
第3步:编辑/etc/exports文件
项目六 配置与应用NFS服务
以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等,具体内容如下:

备注:上面配置文件括号中的参数详细释义详见任务一中的备注。

第4步:建立共享文件夹

使用如下命令建立共享文件夹

【mkdir -p /nfs/market】建立市场部共享目录

【mkdir /nfs/sales root】建立销售部共享目录以及root共享目录

【mkdir –p /mnt/cdrom】建立光盘的挂载点目录
项目六 配置与应用NFS服务
第5步:设置本地文件夹写权限属性

使用如下命令置本地文件夹写权限属性

【chmod 777 /nfs/market】修改共享目录market权限为最大权限

【chmod 777 /nfs/sales】修改共享目录sales权限为最大权限
项目六 配置与应用NFS服务
第6步:重启服务并设置开机自动启动

【service nfs restart】重启nfs服务

【service rpcbind restart】重启rpcbind服务

【chkconfig nfs on】设置nfs开机自动启动

【chkconfig rpcbind on】设置rpcbind开机自动启动

项目六 配置与应用NFS服务

项目六 配置与应用NFS服务


第7步:检查服务器上安全设置


在NFS 服务器启动后,还需要检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptables,seLinux 等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow 文件。

第8步:设置客户端NFS开机自动挂载

在192.168.185.0/24所在的客户机上设置:

【mkdir /mnt/market】在客户端建立本地挂载点

【vim /etc/fstab】编辑开机读取的挂载文件,在文件最后添加如下内容:

项目六 配置与应用NFS服务


项目六 配置与应用NFS服务
第9步:重新读取/etc/fstab 文件

【mount –a】让内核重新读取/etc/fstab 文件

第10步:设置nfs客户端访问时自动挂载,不访问时候自动断开

(1)编辑/etc/auto.master文件,在文件任意处添加如下一行内容:

 (2)在/etc/目录下新建辅助配置文件:auto.sales,内容如下:

(3)重新启动服务:

【service autofs restart】 重启autofs服务

(4)测试配置,具体的测试效果如图6-1所示。

图6-1 NFS自动挂载效果图

第10步:nfs服务器的维护

每次维护完成/nfs/exports文件后都需要重启nfs服务:

【exportfs -rv】重新输出共享目录,此命令可代替重启服务

【exportfs –auv】停止输出共享目录

【/etc/init.d/rpcbind status】检查rpcbind服务状态

【/etc/init.d/nfs status】检查nfs服务状态

项目六 配置与应用NFS服务

项目六 配置与应用NFS服务

第11步:测试NFS服务的其他几个命令

【showmount –e】查看当前主机中NFS服务器上所有输出的共享目录

【showmount –d】显示当前主机中NFS服务器上被挂载的所有输出目录

【showmount –a】显示指定NFS服务器的所有客户端主机与其所连接的目录

第12步:卸载NFS服务器

用【mount 要卸载的目录路径】命令来卸载不想再使用的已挂载NFS输出目录。

第13步:阅读NFS服务配置实例

下面首先给出NFS主配置文件/etc/exports的一个应用实例,然后对有关设置进行说明:

参数说明:

(1) /nfs/public     192.168.1.0/24(rw,async)  *(ro)

输出目录/nfs/public可供子网192.168.1.0/24中的所有客户机进行读写操作,而其他网络中的客户机只能读取该目录的内容。

值得注意的是,当某用户使用子网192.168.1.0/24中的客户机访问该共享目录时,能否真正地写入,还要看该目录对该用户有没有开放Linux文件系统权限的写入权限。

如果该用户是普通用户,那么只有当该目录对该用户开放了写入权限时,该用户才可以在该共享目录下创建子目录及文件,且新建子目录及文件的所有者就是该用户(实际上应该是该用户的UID)。

如果该用户是root用户,由于默认选项中有root_squash,root用户会被映射为nfsnobody,因此只有该共享目录对nfsnobody开放了写入权限时,该用户才能在共享目录中创建子目录及文件,且所有者将变成nfsnobody。

(2) /nfs/student    192.168.16.20(rw,sync)

输出目录/nfs/student只供IP地址为192.168.16.20的客户机进行读写操作。

(3) /nfs/root       *.fjjy.net(ro,no_root_squash)

对于输出目录/nfs/root,fjjy.net域中的所有客户机都具有只读权限,并且不将root用户映射到匿名用户。

(4) /nfs/users      *.fjjy.net(rw,insecure,all_squash,sync,no_wdelay)

对于输出目录/nfs/users来说,fjjy.net域中的所有客户机都具有可读可写的权限,并且将所有用户及所属的用户组都映射为nfsnobody,数据同步写入磁盘。如果有写入操作则立即执行。

(5) /mnt/cdrom      192.168.1.*(ro)

对于输出目录/mnt/cdrom来说,子网192.168.1.0/24中的所有客户机都具有只读的权限。