我们大学的语言系有一个英特尔NUC,它将很快提供教师和学生使用的networking应用程序。 NUC运行Ubuntu(14.10)。
我很熟悉terminal和SSH到服务器,但我发现,我需要做的很多任务是通过屏幕共享(VNC)更容易。
我向我们的新技术总监build议,我们在这个服务器上安装VNC,让我的生活变得更轻松(事实上,在他被雇用之前,他已经安装了VNC,然后卸载了它)。 不过,他回答了以下评论:
如果我们能逃脱,我宁愿不要在服务器上运行X或VNC。 毕竟它是一台服务器。
我真的不明白这个逻辑。 它没有连接到显示器; 通过SSH的唯一访问。 让VNC访问我不知道的服务器有一些奇迹般的缺点吗?
显然你正在为攻击者开放另一个端口。 反驳:我们落后于两所大学防火墙(主要的大学networking防火墙以及我们的子网自己的专用防火墙)。 VNC只能在我们的子网内完成,所以我不知道为什么这个问题不是“这是另一个需要维护的软件包”,而且Ubuntu的apt
软件包pipe理器也不成问题。
在服务器上安装VNC有什么缺点?
编辑 :这不只是一个Web服务器。 它承载了许多其他应用程序。 不知道这是否有所作为。
有很多原因:
攻击面:更多的程序,特别是networking程序,意味着有更多的机会findbug并进入。
缺陷表面:如上所述,但用“ 墨菲 ”取代“某人”,用“毁了你的一天”取代“入门”。 其实“毁了你的一天”也可能适用于前一点。
系统效率:X11以及人们倾向于在其上运行的GUI环境都消耗大量内存,特别是在像NUC这样有限的资源系统上。 不运行它们意味着更多的资源来做有用的工作。
操作员效率:GUI不适用于脚本和其他forms的自动化。 点击事情会感觉很有成效,但实际上这是一种深度技术上最糟糕的做法。 如果你不能编写脚本并自动化你的工作,你也会发现你的未来就业机会受到严重限制 – 这个行业正在远离 GUIpipe理工具。 哎呀,即使Windows服务器可以安装GUI,这些天,如果这不让你想到只知道点击事物的相对优点,我真的不知道该怎么说。
问题不是VNC – 不要误解我的意思,VNC是一个可怕的协议,有很多缺陷(最大的缺乏encryption支持,所以一切都以纯文本的forms通过networking),但它不是主要的不推荐在服务器上使用它的用法。
您将安装VNC来访问黑屏? 不,你想访问整个桌面环境,这是真正的问题。
一旦你安装了所有这个桌面级Gnome(或者类似的)软件,你就可以认为你的服务器已经被攻破了,因为在这个可怕的,巨大的应用程序集合中,还有很多的bug可以被利用(除了它不是为了生产力而devise的并使用大量的资源)。 我之所以不推荐这个软件和大多数Linux桌面环境,其他一些原因就是他们接pipe整个系统几乎就像一个rootkit,并且实现了他们自己的所有版本(身份validation?没有更坚如磐石的用户和组织,让我们以root身份运行这个Policykit废话,根据一些不可读,晦涩的XML文件提供权限…configuration?谁需要可读的configuration文件?我们将所有的东西都存储在二进制数据库中,除非您使用他们提供的实用程序,就像Windowsregistry一样,也让我们以root身份启动一堆守护程序,即使在不使用桌面的情况下也可以使用资源。
试图在我的Archlinux服务器上安装Gnome桌面环境告诉我“总安装大小:1370.86 MiB”。 这是非常巨大的,想象一下,这个前端服务器安装后会有额外的攻击面。 其他桌面环境并不好。
显然你正在为攻击者开放另一个端口。 反驳:我们落后于两所大学防火墙(主要的大学networking防火墙以及我们的子网自己的专用防火墙)。 VNC只能在我们的子网内完成,所以我不知所措
永远不要以为你的系统在防火墙后面,在私人networking上,你不需要担心安全。 许多(如果不是绝大多数的话)成功的入侵是由可以访问上述networking的内部人员(雇员,学生等)执行的。
试试这个让技术总监高兴:
安装VNC和任何你喜欢的桌面
不要安装任何forms的屏幕保护程序。 为什么? 你没有一个屏幕,而坐在那里的桌面不会占用很多资源。
不要转发VNC端口。 如果您需要使用它,请通过SSH(端口22)隧道连接VNC端口(5900)。
这个过程可以让你获得encryption和所有已经打开的SSH的安全。 您不会添加您以前没有的任何安全问题。
我已经在自己的服务器上执行了这个操作,与直接连接相比,VNC进程没有明显的额外延迟。