千家信息网

【我的Linux,我做主!】常用共享存储--NFS服务配置应用与实战

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,目录:(一)关于NFS防火墙的设置(二)关于NFS权限的设置(三)基于kerberos的NFS(一)关于NFS防火墙的设置NFS(Network File System)即网络文件系统,是FreeBS
千家信息网最后更新 2025年02月08日【我的Linux,我做主!】常用共享存储--NFS服务配置应用与实战

目录:
(一)关于NFS防火墙的设置
(二)关于NFS权限的设置
(三)基于kerberos的NFS


(一)关于NFS防火墙的设置
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS的优势如下:
1.节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3.一些存储设备如软驱、CDROM和ZIP(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
假设我们在服务器上有一个目录/xx需要共享出去,我们是使用nfs服务共享出的,因为nfs服务使用的是2049端口,所以在防火墙需要将2049端口开放出去。同时nfs服务是基于rpc(远程进程调用)服务调用的,rpc服务是服务在111端口,当nfs服务重启时将会在rpc服务这里注册,所以如果rpc服务没有正常启动,那么nfs服务也没有办法正常访问,即我们需要在防火墙也开放111端口。在nfs系统中我们会遇到多个客户端挂载,为了避免多个用户同时挂载产生问题,我们需要使用一个锁来管理这种挂载问题,所以我们还需要启动mountd服务,并在防火墙开放对应端口。

(1.1)首先在vms001主机上将nfs服务、rpc-bind服务、mountd服务在防火墙开启并写入持久态中。

(1.2)我们使用systemctl list-unit-files可以查看到当前启动的所有服务,可以看到rpcbind.service服务已经启动了,并且是static状态。


(二)关于NFS权限的设置
(2.1)一般nfs服务的配置文件是在/etc/exports文件或者/etc/exports.d/*.exports文件中配置的,且文件的格式如下所示。

(2.2)我们在vms001主机上创建一个/data目录,并将/data目录共享出去。


(2.3)接着创建一个/data目录,并且将exports文件中的设置生效。

(2.4)接着在vms002客户端主机上测试vms001主机提供的nfs服务是否正常。在vms002主机上创建一个/nfsdata目录,并将/nfsdata目录挂载到vms001主机共享的data目录下。

(2.5)此时我们在vms002主机上尝试使用root身份创建一个文件aaa.txt,发现系统提示权限不够。这是由于在vms001主机上/var/lib/nfs/etab文件中定义了root_squash参数,即压缩root用户的权限,使root用户的权限同anonuid=65534一致。


(2.6)由于vms001主机上的/data目录的other权限是不可写的,所以给/data目录的o加上w的权限。


(2.7)如果我们想要以root的身份写入信息,并且不压缩root的权限,则可以在/etc/exports文件中进行设置。



(2.8)此时从vms002主机上向/nfsdata目录中写文件,发现可以正常的写入文件,并且是以root身份写入的。

(2.9)由于在/var/lib/nfs/etab文件中默认设置的参数是no_all_squash,如果需要对所有用户都启用压缩权限,则可以在/etc/exports文件中设置all_squash即可。

(2.10)设置192.168.26.102主机可读可写,且掩码为32;设置192.168.26.0网段中的主机都只有只读的权限。


(2.11)在vms002主机的/nfsdata目录下创建一个test102host.txt文件,发现可以正常的创建出对应的文件。

(2.12)经验总结,故障排错:接着我们在一台IP地址为192.168.26.200的主机上测试,进入到/nfsdata目录后,尝试创建test200host.txt文件,发现并不能创建成功。
注意:此处我们是通过修改vms002主机的IP地址为192.168.26.200实现其他主机的效果。



(2.13)在vms002主机上将IP地址重新修改为102后,此时就可以正常的创建文件了。


(三)基于kerberos的NFS
Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下,Kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术执行认证服务的。Kerberos又指麻省理工学院为这个协议开发的一套计算机网络安全系统。系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听,防止replay破坏、保护数据完整性等场合,是一种应用对称密钥体系进行密钥管理的系统。Kerberos的扩展产品也使公开密钥方法进行认证。
麻省理工研发了kerberos协议来保护ProjectAthena提供的网络服务器。这个协议以希腊神话中的人物kerberos命名,他在希腊神话中是Hades的一条凶猛的三头保卫神犬。
在我们的环境中有一个kerberos服务器,这个服务器我们称之为KDC即密钥分发中心。在我们的环境中有很多的主体,包括机器、service、user、group。现在我们有一台服务器server,还有一个客户端client,如果我们需要基于kerberos来进行保护时,此时KDC会为每一个主体分配一个ticket,很多的信息都是保存在/etc/krb5.keytab文件中的,客户端和服务器都有自己独立的keytab文件。当客户端访问服务器的时候,客户端会出示自己的ticket,此时服务器会使用自己的ticket票据对客户端的ticket合法性做验证,这就是我们整个kerberos的工作流程。在我们的kerberos环境里对时间同步的要求是非常高的,所有机器的时间必须要保持一致,所以我们通过配置NTP服务器可以实现需求。

(3.1)我们在vms001主机上使用install.sh脚本创建对应的三台KVM虚拟机,其中host.img(192.168.122.10)对应就是kerberos服务器,system1.img(192.168.122.100)对应的是nfs服务器,system2.img(192.168.122.200)对应的是普通的客户端。


(3.2)接着从vms001主机上登录到system1主机和system2主机上。


(3.3)此时host主机除了是一台kerberos服务器外,还是一台LDAP域服务器。

(3.4)首先我们在system1主机上创建普通的nfs服务器,并将防火墙相关的端口打开。




(3.5)将system2主机上的/aa目录挂载到system1主机上由nfs共享的/aa目录上,是可以正常的实现挂载的。

(3.6)接着我们使用基于kerberos服务搭建nfs服务器。我们需要在system1主机和system2主机上都要向host主机申请下载ticket。


(3.7)我们在system1主机上创建一个基于kerberos服务的目录/kerberosDir,并且编辑/etc/exports文件。


(3.8)由于SELinux是开启的状态,所以接着修改/kerberosDir的上下文信息。

(3.9)接着在/etc/sysconfig/nfs文件中设置强制使用nfs4版本。

(3.10)在system1主机上设置/kerberosDir目录的属主为ldapuser1用户,并将nfs-server服务和nfs-secure-server服务重启一下。


(3.11)接着在system2主机上的/etc/fstab 文件中进行编辑,system2主机上的/aa目录直接挂在到system1主机上共享的/aa目录即可。我们在system2主机上创建/kerberosDir目录,但是system2主机上的/kerberosDir目录在挂载到system1主机上/kerberosDir目录时,注意需要写长主机名挂载,并且加上v4.2和sec=krb5p参数。
# mkdir /kerberosDir


(3.12)此时发现基于kerberos服务的system2主机创建的/kerberosDir目录已经正常的挂载到了system1主机的/kerberosDir目录了。

------ 本文至此结束,感谢阅读 ------

服务 主机 目录 文件 服务器 客户 网络 客户端 权限 系统 认证 防火墙 防火 用户 端口 密钥 应用 地址 数据 机器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全证书已过期啥意思 小森生活服务器满什么意思 数据库结构设计图是er图吗 下一代网络技术的核心是 做交通行业的软件开发不好 心电产品开发和银行软件开发 网络安全岗位一览表 电脑网络技术文案高级 济宁数字化城管软件开发 战地5服务器怎么加机器人 服务器系统怎么管理虚拟机 中国网络安全法题库 河北数据库安全箱批量定制 王者荣耀的服务器域名 公安网络安全管理的重要性 网络安全与管理在线测试 日企软件开发前端 电力行业实时数据库收费 计算机网络安全技术摘要 社区网络安全宣传教育 涪陵区一站式软件开发流程市场价 分子生物学数据库有什么特点 密钥管理服务器有哪些 华为2203服务器配置管理口 批量数据存入hbase数据库 网络安全3个方面 福建包含软件开发专业的公办大专 940网络安全考研 湖南安全网络技术职业学院 宁波海曙达网网络技术
0