我想在我负责的系统上安装X。我计划只使用本地连接运行它,例如使用startx -- -nolisten tcp (据我所知,这是目前的默认情况)。
一些关于安全性的比较老的注释,X视窗安全速成课程,暗示显示本质上是不安全的:
在使用'xhost -‘启用访问控制的情况下运行您的显示,将防止您通过端口号6000进行XOpenDisplay尝试。但是有一种方法可以让窃听者绕过这种保护。如果他可以登录到您的主机,他可以连接到本地主机的显示。..。当然,入侵者必须在您的系统上有一个帐户,并能够登录到特定X服务器运行的主机。在有大量X终端的网站上,这意味着没有X显示器是安全的,从那些访问。如果可以在主机上运行进程,则可以连接到(任意)其X显示。
这里的含义是,没有办法为X显示器提供本地的基本安全性。
这是真的吗?如果没有,是否需要考虑可以防止这种情况的配置设置?
发布于 2016-04-12 00:13:22
你正在读的文件是上个世纪的。我不记得本世纪我使用过的任何不使用cookie的系统(在文档的第8节中描述过)。使用cookie,应用程序连接到X服务器时需要做的第一件事是显示“cookie”,这是一个密码,当服务器启动并存储在只有您可以读取的文件中时,这个密码是随机生成的。应用程序知道cookie文件的位置,因为它是XAUTHORITY环境变量的值,默认为~/.Xauthority。如果一个进程可以读取您的cookie,这意味着它可以访问您帐户上的私有文件,因此X服务器的安全性是一个没有意义的问题。
因为这是默认的,所以您不需要采取明确的步骤来保护X服务器。
你确实需要抑制一些行为:
ForwardX11 yes,命令行上的ssh -X )。如果应用程序可以访问X服务器,请考虑它可以访问您的帐户。虽然有些应用程序禁用了最明显的击键监视和注入功能,但有些功能不能禁用;X不区分屏幕截图应用程序、键盘宏应用程序和一些您不信任的随机应用程序。如果您想要运行您不信任的GUI应用程序,请在虚拟机中运行它(在VM中显示),或者在一个单独的帐户上运行它,并让它显示在一个单独的X服务器上,比如克尼斯特。
https://unix.stackexchange.com/questions/275733
复制相似问题