Answers:
Ubuntu的社区文档解释了不建议在生产服务器系统上运行GUI 的真正原因:
大多数Ubuntu Server开发人员不建议在服务器上安装X。不安装GUI有多个原因。
不安装GUI的一些原因包括:
- 您将拥有更多受安全漏洞影响的代码,更多需要更新的软件包以及更多服务器停机时间。
- LTS服务器版本的完整5年生命周期不支持X11和桌面程序包。
- GUI可能会消耗资源(内存,硬盘空间,CPU等),因此性能可能会受到影响。
- 最佳做法是仅在生产服务器上安装所需的软件。
- GUI可能包括其他不适合服务器的网络服务。
- 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
)重新配置内置功能来阻止。
相比之下,上面列出的问题并不是很容易通过重新配置来解决。
每个正在运行的进程都存在安全风险。特别是那些侦听网络端口的设备(X11可以)。
一般的良好做法是,不要在绝对不需要的服务器上运行任何东西,而且X11当然也不必在要SSH连接的服务器上运行。
我怀疑您所读的文章谈论的是X11中的特定漏洞(如果已解决,该漏洞将得到修复,漏洞不会长期徘徊于未修复状态),而只是一个很好的实践。
-nolisten tcp
默认情况下,xinit / startx使用
这是因为如果未正确保护X Window系统,则会带来严重的安全风险。X11“显示器”是在桌面上运行的X11服务器,包括屏幕,键盘和鼠标。如果您的X11显示器不安全,它将允许在Internet上任何地方运行的程序连接到它,并且该连接可能对您完全不可见。连接后,该程序即可完全访问您的显示器,这意味着它可以:
请勿使用拇指法则xhost +
-完全禁用显示器的安全性。
一个很好的方法是转发X ssh
摘自:http : //www2.slac.stanford.edu/computing/security/xwindow/
xhost +
命令
xhost +
但是无法覆盖-nolisten tcp
,只要打开您与localhost之间的任何连接即可。