NFS - Network File System
网络文件系统
版本
特征
NFSv2
它较旧,但受许多系统支持,并且最初完全通过 UDP 运行。
NFSv3
它具有更多功能,包括可变文件大小和更好的错误报告,但与 NFSv2 客户端不完全兼容。
NFSv4
它包括 Kerberos,可穿过防火墙并在 Internet 上工作,不再需要端口映射程序,支持 ACL,应用基于状态的操作,并提供性能改进和高安全性。它也是第一个具有状态协议的版本。
NFS 版本 4.1 ( RFC 8881 ) 旨在提供协议支持以利用集群服务器部署,包括提供对分布在多个服务器上的文件进行可扩展并行访问的能力(pNFS 扩展)。此外,NFSv4.1 还包括会话中继机制,也称为 NFS 多路径。NFSv4 相对于其前身的一个显着优势是仅2049使用一个 UDP 或 TCP 端口来运行该服务,这简化了跨防火墙的协议使用。
NFS 基于 Open Network Computing Remote Procedure Call(ONC-RPC/SUN-RPC)协议,暴露在 TCP 和 UDP 端口 111 上,该协议使用 External Data Representation(XDR)进行独立于系统的数据交换。NFS 协议没有验证或授权机制。相反,身份验证完全由 RPC 协议的选项决定。授权来自于可用的文件系统信息。在此过程中,服务器负责将客户端的用户信息转换为文件系统格式,并尽可能准确地将相应的授权详细信息转换为所需的 UNIX 语法。
最常见的身份验证是通过 UNIX UID/GID和group memberships,这就是为什么此语法最有可能应用于 NFS 协议。一个问题是客户端和服务器不一定必须具有相同的 UID/GID 到用户和组的映射,并且服务器不需要做任何进一步的事情。服务器方面无法进行进一步的检查。这就是为什么 NFS 只能在受信任的网络中与此身份验证方法一起使用。
默认配置
//Exports File
AcesMin@htb[/htb]$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)默认exports文件还包含一些配置 NFS 共享的示例。首先,指定文件夹并使其可供其他人使用,然后将他们对此 NFS 共享拥有的权限连接到主机或子网。最后,可以将其他选项添加到主机或子网中.
选项
描述
rw
读写权限。
ro
只读权限。
sync
同步数据传输。(慢一点)
async
异步数据传输。(快一点)
secure
1024 以上的端口将不会被使用。
insecure
将使用 1024 以上的端口。
no_subtree_check
此选项禁用子目录树的检查。
root_squash
将root UID/GID 0的文件的所有权限分配给anonymous的UID/GID,这样可以防止root访问NFS挂载上的文件。
ExportFS
我们已使用上面显示的设置将该文件夹共享/mnt/nfs到子网。10.129.14.0/24这意味着网络上的所有主机都能够挂载此 NFS 共享并检查此文件夹的内容。
危险环境
然而,即使使用 NFS,某些设置也可能对公司及其基础设施造成危险。以下列出了其中一些:
选项
描述
rw
读写权限。
insecure
将使用 1024 以上的端口。
nohide
如果另一个文件系统安装在导出目录下,则该目录将由其自己的导出条目导出。
no_root_squash
所有由 root 创建的文件都以 UID/GID 0 保存。
这个insecure选项。这是危险的,因为用户可以使用 1024 以上的端口。前 1024 个端口只能由 root 使用。这可以防止任何用户都无法将端口 1024 以上的套接字用于 NFS 服务并与之交互。
Footprinting the Service(服务资产收集)
一旦我们发现了这样的 NFS 服务,我们就可以将其挂载到我们的本地计算机上。为此,我们可以创建一个新的空文件夹,NFS 共享将安装到该文件夹中。安装后,我们可以像本地系统一样导航并查看内容。
显示可用的 NFS 共享
Unmounting(卸载)
最后更新于
这有帮助吗?