跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 安全指南 / 网络安全 / X 窗口系统和 X 身份验证
适用范围 SUSE Linux Enterprise Server 15 SP2

17 X 窗口系统和 X 身份验证

如本文开头所述,网络透明性是 Unix 系统的核心特征之一。X(Unix 操作系统的窗口系统)能够鲜明地利用这一特性。使用 X 可以成功完成以下操作:登录到远程主机并启动一个图形程序,然后可以通过网络发送该程序,使其显示在您的计算机上。

如果需要使用 X 服务器远程显示 X 客户端,X 服务器应该防范有人未经授权访问它所管理的资源(显示内容)。更具体地说,必须给客户端指派特定权限。在 X 窗口系统中,有两种指派权限的方法,分别为基于主机的访问控制和基于 Cookie 的访问控制。前者依赖应该运行客户端的主机的 IP 地址。用于控制这种指派的程序为 xhostxhost 将合法客户端的 IP 地址输入到属于 X 服务器的数据库中。不过,依赖 IP 地址进行身份验证不是十分安全。例如,如果有另一个用户也在发送客户端程序的主机上操作,该用户也可以访问 X 服务器 — 就像某人伪造了 IP 地址一样。由于存在这些缺点,在此不再详述这种身份验证方法,但您可以通过 manxhost 了解更多相关信息。

使用基于 Cookie 的访问控制时,将生成一个只有 X 服务器和合法用户才知道的字符串(类似于某种身份证)。登录时,此 Cookie 将储存在用户主目录中的 .Xauthority 文件内,可供想要使用 X 服务器来显示窗口的任何 X 客户端使用。用户可以使用工具 xauth 检查文件 .Xauthority。如果您重命名了 .Xauthority 或者在主目录中意外删除了该文件,将无法打开任何新窗口或 X 客户端。

SSH(安全外壳)可用于加密网络连接并以透明方式将其转发到 X 服务器。这也称为 X 转发。要实现 X 转发,需要在服务器端模拟 X 服务器,并在远程主机上为 shell 设置 DISPLAY 变量。有关 SSH 的更多详细信息,请参见 第 18 章 “SSH:安全性网络操作

警告
警告:X 转发可能不安全

如果您认为用于登录的计算机不是安全主机,请不要使用 X 转发。如果启用了 X 转发,攻击者可能会通过您的 SSH 连接进行身份验证。然后,攻击者可能会侵入您的 X 服务器,并读取您的键盘输入(举例而言)。