内网快速共享之---网络文件系统NFS

简介:

简介:
NFS:network file systerm,即网络文件系统
网络文件系统是FreeBSD支持的文件系统的一种,NFS允许一个系统在网络上与他人共享目录和文件。

NFS 有属于自己的协议与使用的端口号,但是在数据传送或者其它相关讯息传递的时候, NFS 使用的则是一个称为远程过程调用( Remote Procedure Call, RPC )的协议来协助 NFS 本身的运作!

NFS于RPC之间的关系可以简单的理解为:NFS主要在管理分享出来的目录,而至于资料的传递,就直接将其交送给RPC协议去运作了。


RPC服务:监听在TCP/UDP协议的111号端口

NFS协议具有很多版本:
在NFSv3中添加了kerberos协议(kerberos:加密帐号信息,使认证过程安全)
V4相对V3的改进:
1:改进了INTERNET上的存取和执行效能
2:在协议中增强了安全方面的特性
3:增强的跨平台特性


NFS运行机制:
NFS运行时需要调用五个后台进程:
nfsd
rpc.quotad对nfs文件系统启动配额功能
rpc.nfsd管理clinet是否有权限登录,以及判别登录者的uid等;
rpc.mountd读取/etc/exports的权限,对文件访问权限进行控制;
rpc.lockd文件的互斥锁,保证文件在同一时间只有一个人访问,需要nfslockd服务;
rpc.statd检查文件的一致性,需要nfslockd服务。


由于NFS的功能日益完善,逐渐被引进了Linux的内核,也就是说,NFS其实是内核中的一个功能,只要我们内核启用了该项,那么我们就可以使用NFS,但是要配置该功能,就需要一个应用接口,也就是需要安装一个用户空间一个工具,而这个工具就是nfs-utils,需要安装这样一个

NFS控制权限机制:
在Linux的文件都有各自的权限,以及属主和属组,当NFS服务器上某个用户共享了一个文件,当客户端挂载了该文件,放客户端上的用户来访问该文件时其权限应该参考其UID号,这是由于NFS并不认证用户,指认证UID,当客户端访问共享文件时,如果其UID恰好等于服务器端共享该文件的用户的UID,那么其权限就是属主的权限
但是其最终权限取决于文件系统权限和共享权限交集
即:当用户共享权限是:ro
文件系统权限是:rw
即使客户端的用户被识别为属主,但是由于最终权限的规则,其权限并不是rw,而是ro


另外一种特殊情况:当服务器端root共享了文件系统,当客户端上的root挂载了该文件系统,由于NFS只映射UID,所以其被识别为本机的root,那样客户端上的root被识别在服务器上的root,那样就在服务器端没有任何限制,那样是十分危险的,所以共享文件时一定不能使用root用户的身份去共享文件
而正是由于这种特殊情况,NFS引入了一种共享属性:no_root_squash,即当客户端的root来进行共享使用服务器端root共享的文件时,则会被认为是nobody用户,其权限十分的少。


NFS配置:
NFS监听在TCP/UDP的2049端口
无论在服务器端还是客户端都需要安装:nfs-utils这个rpm包

启动服务:
#service nfs start

配置文件:
/etc/exports
格式:FILESYSTEM    Clientlist(共享属性) Clientlist(共享属性) 

共享属性:
ro:只读
rw:读写
async:异步写入
sync:同步写入
root_squash:将root用户映射为nobody
no_root_squash:不将root用户映射为nobody
all_squash:所有的用户都映射为nobody


客户端列表格式:

1.单个主机:FQDN或者IP
2.通配符,如:*.example.com
3.IP的网络地址


例如:

 
 
  1. /vhosts  172.16.4.10/16(rw)      对172.16.4.10以读写权限共享/vhosts 
  2. '/a b' 172.16.4.10/255.255.0.0(rw)        对172.16.4.10以读写权限共享/a b 
  3. /vhosts  *.coolinuz.com(ro)        对coolinuz.com域内以只读方式共享/vhosts 


注:如果共享的文件系统名中有空格,则需要将其用''引起来。


重读配置文件:
exportfs
    -a:所有
    -r:重新导出所有的
    -u:关闭某个共享的文件系统
    -v:显示详细信息

#exportfs -rv
#exportfs -arv
#exportfs -u 172.16.0.0/16:/mydata



showmount:用于查看主机上的共享
    -e:查看共享的内容
    -a:查看服务器已经被挂载的文件系统
    -d:显示主机上被共享的曾经被挂载的文件系统

#showmount -e 172.16.4.1
#showmount -a 172.16.4.1
#showmount -d 172.16.4.1


客户端挂载:
#mount -t nfs 172.16.4.1:/vhosts /mnt/nfs








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/821732,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
存储 安全 Unix
网络文件系统 (NFS)
【10月更文挑战第12天】
265 5
|
6月前
|
存储 缓存 安全
网络文件系统 (NFS)
【10月更文挑战第11天】
109 1
|
7月前
|
5G 调度 UED
5G中的动态频谱共享(DSS):高效利用频谱资源,加速5G网络演进
5G中的动态频谱共享(DSS):高效利用频谱资源,加速5G网络演进
1442 4
|
3月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
223 15
|
4月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
547 7
|
5月前
|
存储 网络协议 安全
软件管理,磁盘存储,文件系统以及网络协议
【11月更文挑战第9天】本文介绍了软件管理、磁盘存储和网络协议等内容。软件管理包括软件生命周期管理和软件包管理,涉及需求分析、设计、实现、测试、发布、维护等阶段,以及软件包的安装、升级和依赖关系处理。磁盘存储部分讲解了磁盘的物理结构、分区与格式化、存储管理技术(如 RAID 和存储虚拟化)。网络协议部分涵盖了分层模型、重要协议(如 HTTP、TCP、IP)及其应用与安全。
|
6月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
337 0
|
4月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
117 17
|
4月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
88 10
|
4月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。