Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

3.3.2. 保护 NFS 服务器的导出选项

NFS 服务器的主配置在 /etc/exports 文件中。以下是允许您安全导出文件系统的 NFS 共享选项列表:

警告

要导出整个文件系统,因为导出文件系统的子目录不安全。攻击者可能会侵入到部分导出的文件系统中未导出的部分。

  • ro - 使用 ro 选项将 NFS 卷导出为只读。
  • rw - 使用 rw 选项允许对 NFS 卷进行读写请求。您应该谨慎使用这个选项,因为允许写权限会增加攻击的风险。
  • root_squash - 使用 root_squash 选项将来自 uid/gid 0 的请求映射到匿名 uid/gid。这不适用于可能同样敏感的任何其他 uidgids,如用户 bin 或组 staff。
  • no_root_squash - 使用 no_root_squash 选项关闭根压缩,不要使用这个选项,而是检查现有的安装。默认情况下,NFS 共享将 root 用户改为 nobody 用户,这是一个非特权用户帐户。这会将所有 root 创建的文件的所有者改为 nobody,这样可以防止上传设置了 setuid 位的程序。如果使用 no_root_squash 选项,则远程 root 用户可以更改共享文件系统上的任何文件,并将感染特洛伊木马的应用程序留给其他用户。
  • secure - 使用 secure 选项将导出限制到保留的端口。默认情况下,服务器仅允许来自保留端口的客户端通信。但是在网络上,任何人很容易成为客户端上的 root 用户,因此,对于服务器来说,假设来自保留端口的通信都具有特权几乎是不安全的。因此,对保留端口的限制具有有限的值;最好根据 Kerberos、防火墙和对特定客户端的导出限制来决定。

另外,在导出 NFS 服务器时请考虑以下最佳实践:

  • 如果必须使用 rw 选项来挂载目录,请确保它们不可全局写入,从而降低可能的风险。
  • 导出主目录存在风险,因为某些应用以纯文本或弱加密格式存储密码。检查和改进应用程序代码有助于降低此类风险。有些用户未对 SSH 密钥设置密码,这再次给主目录带来风险。强制使用密码或使用 Kerberos 可降低该风险。
  • 只将导出限制给需要访问权限的客户端。在 NFS 服务器上使用 showmount -e 命令来检查服务器正在导出什么。不要导出不需要的任何内容。
  • 最好不允许用户登录到服务器。查看 NFS 服务器上的以上设置时,请查看谁和什么可以访问服务器。