为什么X11在服务器中存在安全风险?


Answers:


8

Ubuntu的社区文档解释了不建议在生产服务器系统上运行GUI 的真正原因

大多数Ubuntu Server开发人员建议在服务器上安装X。不安装GUI有多个原因。

不安装GUI的一些原因包括:

  1. 您将拥有更多受安全漏洞影响的代码,更多需要更新的软件包以及更多服务器停机时间。
  2. LTS服务器版本的完整5年生命周期不支持X11和桌面程序包。
  3. GUI可能会消耗资源(内存,硬盘空间,CPU等),因此性能可能会受到影响。
  4. 最佳做法是仅在生产服务器上安装所需的软件。
  5. GUI可能包括其他不适合服务器的网络服务。
    1. Ubuntu桌面版的目标之一是使用户更容易使用Linux。在安装某些桌面环境时,将安装您可能不需要的服务。例如,用于帮助配置网络的avahi-daemon添加了另一个开放端口,并可能与.local域引入不必要的DNS冲突。

因此,对于最安全的服务器,最好不要安装GUI。

由“ Ubuntu文档Wiki的撰稿人”提供的“ ServerGUI”,在此处按CC-BY-SA 3.0的规定进行了复制

与一些常见的误解相反,作为服务器的 X11 实际上与从安全角度来看为什么在生产服务器上运行GUI被认为不理想无关实际上,默认情况下,从不将X11 配置为可以在任何操作系统上通过网络访问。没有哪个版本的Ubuntu在默认配置下运行过网络可访问的服务器。(要通过TCP在Ubuntu上访问X11,必须通过SSH转发它或手动重新配置服务器。)

此外,即使X11确实运行了可通过网络访问的服务器,这也不是不将其安装在生产服务器系统上的原因。任何运行生产服务器的人都可以根据自己的需要对其进行配置并对其进行审核,以确保不运行不需要的服务。(如果它们不能这样做,那么与安装GUI相比,将对其安全性构成更大的威胁。)即使X11 必须具有侦听物理网络接口的端口(事实并非如此),该端口可以很容易地通过netfilter使用iptables(或更高级别的前端,例如ufw)重新配置内置功能来阻止。

相比之下,上面列出的问题并不是很容易通过重新配置来解决。


1
10.04对服务器和台式机的支持寿命不同,而12.04及更高版本则没有。另外,一个空闲的gui不会消耗任何CPU,它所使用的RAM将被换出。
psusi 2014年

@psusi关于支持生命周期更改的观点很不错。至于CPU和RAM问题,(1)我不同意经验,空闲的GUI永远不会消耗CPU;(2)如果GUI正在运行,那么当有人在本地计算机上工作时,他们是否会使用它,是否他们是否愿意,这将导致它消耗更多的CPU和内存资源。但是,第1、4和5点确实是(并且可能一直是)考虑不在生产服务器上运行GUI 的最重要原因,并且它们独立于支持生命周期或资源利用率问题。
伊利亚·卡根

我可以补充一点,默认情况下Xorg也以root用户身份运行。
Wadih M.

5

每个正在运行的进程都存在安全风险。特别是那些侦听网络端口的设备(X11可以)。

一般的良好做法是,不要在绝对不需要的服务器上运行任何东西,而且X11当然也不必在要SSH连接的服务器上运行。

我怀疑您所读的文章谈论的是X11中的特定漏洞(如果已解决,该漏洞将得到修复,漏洞不会长期徘徊于未修复状态),而只是一个很好的实践。


2
在大多数现代Linux发行版(如Ubuntu)上,默认情况下X服务器不侦听网络端口,而仅通过域套接字接受本地连接。
Florian Diesch

@FlorianDiesch甚至在服务器上未配置的服务器上?
Amith KK

大+1表示X11是网络服务器。
Stefano Palazzo

2
阿米斯:是的。-nolisten tcp默认情况下,xinit / startx使用
Florian Diesch 2012年

5

这是因为如果未正确保护X Window系统,则会带来严重的安全风险。X11“显示器”是在桌面上运行的X11服务器,包括屏幕,键盘和鼠标。如果您的X11显示器不安全,它将允许在Internet上任何地方运行的程序连接到它,并且该连接可能对您完全不可见。连接后,该程序即可完全访问您的显示器,这意味着它可以:

  • 使用标准的X11实用程序查看和复制屏幕内容;
  • 监视您的击键;
  • 远程控制桌面和Forge击键上的任何Netscape浏览器,就像您自己键入它们一样(尽管并非所有X11应用程序都容易受到此影响)。

请勿使用拇指法则xhost +-完全禁用显示器的安全性。

一个很好的方法是转发X ssh


摘自http : //www2.slac.stanford.edu/computing/security/xwindow/


1
本文已有10年历史了。信息仍然有效吗?
Stefano Palazzo

1
通常,是的...因为AFAIK,我们有xhost +命令
Amith KK

xhost +但是无法覆盖-nolisten tcp,只要打开您与localhost之间的任何连接即可。
alanc

通过为每个应用程序分别启动一个xserver是否可以解决这些问题?
phil294

-6

真正的原因是管理员可以通过从命令行运行内容来将自己视为超级聪明。在Ubuntu服务器上运行GUI没有安全风险。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.