无盘工作站的安装安全性

无盘工作站必须有能力在远程机器上创建和访问设备特殊文件,以从服务器安装它们的 /dev 目录。 因为服务器无法区分打算用于客户机的设备特殊文件和打算用于服务器的设备特殊文件,所以服务器上的用户可能可以使用客户机设备的特殊文件访问服务器的物理设备。

例如,自动对使用 tty 的用户设置 tty 的所有权。 如果客户机和服务器上的用户标识都不相同,那么在服务器上不具有特权的用户可访问正在由该服务器上的某个不同的用户使用的 tty

在客户机上具有特权的用户可创建设备特殊文件以匹配服务器上的物理设备并使它们不需要访问特权。 然后,用户可使用服务器上不具有特权的帐户来使用新设备特殊文件访问通常受保护的设备。

类似的安全问题涉及在客户机和服务器上使用 setuidsetgid 程序。 无盘客户机必须能够在服务器上创建和运行 setuidsetgid 程序以进行正常操作。 同样地,服务器无法区分打算用于服务器和打算用于客户机的程序。

此外,用户标识和组标识在服务器和客户机之间可能不匹配,所以服务器上的用户可能能够使用并未预期赋予他们的能力来运行程序。

因为 setuidsetgid 程序和设备特殊文件应该只在创建它们的机器上可用,所以存在该问题。

解决方案是将安全选项用于 mount 命令,以限制使用这些对象的能力。 这些选项还可用在 /etc/filesystems 文件中的节中。

nosuidmount 命令中的选项阻止执行通过生成的已安装文件系统访问的 setuidsetgid 程序。 此选项用于在特定主机上正在安装的任何仅由某个不同的主机使用的文件系统(例如,导出以用于无盘客户机)。

nodevmount 命令中的选项可防止使用通过生成的已安装文件系统访问的设备特殊文件打开设备。 此选项还用于正在安装以仅由某个不同的主机使用(例如,导出以用于无盘客户机)的任何文件系统。

通常,服务器上的用户对 /export 目录没有任何访问权。

导出 /export/root 目录

必须具有读/写许可权才能导出 /export/root 目录,并且服务器上的 root 用户必须具有访问权。 但是,您可能希望使用 mount 命令的以下选项来安装此目录:

描述
nosuid 阻止服务器上的用户运行客户机的 setuid 程序
nodev 防止用户使用客户机的设备特殊文件来访问服务器设备。

使用这些选项来安装 /export/root 目录的另一种方法是避免对正在服务器上运行的用户授予对 /export/root 目录的任何访问权。

导出 /export/exec 目录

只要具有只读许可权就可导出 /export/exec 目录,但必须提供 root 访问权。 但是,您可能希望使用 mount 命令的以下选项来安装此目录:

描述
nosuid 阻止服务器上的用户运行客户机的 setuid 程序。 如果要导出服务器 /usr 目录,那么无法使用 nousid 选项。
nodev 防止用户使用客户机的设备特殊文件来访问服务器设备。
导出 /export/share 目录

只要具有只读许可权就可导出 /export/share 目录,但必须提供 root 访问权。 因为此目录通常仅包含数据(无可执行文件或设备),所以无需使用安装安全性选项。

导出 /export/home 目录

安装用户 /home 目录有几种方法:

  • 您可以在客户机 /home 目录上安装 /export/home/Clienthostname 目录。 在这种情况下,客户机具有读/写许可权,而 root 用户具有访问权。 要确保系统安全性,请使用以下选项将 /export/home 目录安装到 mount 命令:
    描述
    nosuid 阻止服务器上的用户运行客户机的 setuid 程序。
    nodev 防止用户使用客户机的设备特殊文件来访问服务器设备。
  • 您可以在服务器上的客户机的 /home 目录上安装 /home 目录。 在这种情况下,使用读/写许可权而无需 root 访问权就可导出 /home 目录。 要确保系统安全性,请使用以下命令在服务器和客户机上安装 /home 目录:nosuidnodevmount 命令的选项。
  • 或者,您可以在客户机上通过客户机上的 /home/Username 目录在服务器上安装每个 /home/UserName 目录,以便用户可以登录到不同的机器,并且仍然可以访问其主目录。 在这种情况下,服务器和客户机上的 /home/Username 目录都与nousidnodevmount 命令的选项。
导出 /export/swap 目录

使用读/写许可权和 root 访问权导出 /export/swap/Clienthostname 文件。 没有必要采取任何安全性措施。 服务器上的用户对 /export/swap/Clienthostname 文件没有任何访问权。