使用 RealVNC

使用 RealVNC

我正在尝试从三星 Chromebook(ARM Arch Linux)远程控制 Raspberry Pi(Raspbian Jessie)的桌面。

Pi 上运行的 VNC 服务器是 RealVNC。

Chromebook 上的 VNC 查看器是 TigerVNC

当我尝试连接到服务器时出现以下错误:

$ vncviewer

TigerVNC Viewer 32-bit v1.7.1
Built on: 2017-01-23 06:48
Copyright (C) 1999-2016 TigerVNC Team and many others (see README.txt)
See http://www.tigervnc.org for information on TigerVNC.

Sat Apr  1 17:25:49 2017
 DecodeManager: Detected 4 CPU core(s)
 DecodeManager: Creating 4 decoder thread(s)
 CConn:       conectado a puerto 192.168.1.200 de origen 5900
 CConnection: Server supports RFB protocol version 5.0
 CConnection: Using RFB protocol version 3.8
 CConnection: No matching security types
 CConn:       No matching security types

据我通过阅读手册页所理解,vncviewer默认情况下会尝试每个支持的方案:

   -SecurityTypes sec-types
          Specify  which security schemes to attempt to use when authenti‐
          cating with the server.  Valid values are a comma separated list
          of  None,  VncAuth,  Plain, TLSNone, TLSVnc, TLSPlain, X509None,
          X509Vnc and X509Plain. Default is  to  attempt  every  supported
          scheme.

RealVNC 是否使用了 TigerVNC 不支持的某些加密方案?

答案1

使用 RealVNC

正如用户 rodrunner 在评论中所建议的,建立 VNC 连接的一种方法是使用 RealVNC 的vncviewer

在继续之前,请确保卸载 TigerVNC 或任何其他 VNC 实现。

包裹RealVNC 查看器目前在 AUR 中,你可以通过以下方式安装aura

sudo aura -A realvnc-vnc-viewer

假设你的 Raspberry Pi 的主机名是默认的,使用以下命令连接它

vncviewer raspberrypi

系统将提示您输入 Raspberry Pi 的登录凭据:

RealVNC 登录提示

按下OK即可连接:

Raspberry Pi 桌面

警告

RealVNC 于 2019 年 5 月 28 日在其公司博客上发表了一篇题为“基于开源 VNC 软件的危险”的文章。文章声称专有软件在安全性、支持、法规遵从性和用户友好性方面优于开源软件。

结合 RealVNC 与其他 VNC 实现的不兼容性,它似乎是一种供应商锁定的尝试,使我避开 RealVNC。

该博客文章原先位于https://discover.realvnc.com/blog/the-dangers-of-open-source-vnc-based-software,现已被删除,但 2020 年 9 月 3 日的版本仍可通过以下方式访问此 Wayback Machine 条目

以下是完整的博客文章:

基于 VNC 的开源软件的危险

作者:Eden Jefford | 2019 年 5 月 28 日

ErrorBox:OpenSource.exe - 您的业务可能面临风险 - 使用基于 VNC 的开源软件可能会让您面临不必要的危险。

每个人都喜欢免费的东西,无论是商场里的巧克力样品还是促销减压球,但这总是个好主意吗?对于糖果和杂货,我们不会阻止你,除非你从货车里的陌生人那里拿走它们,但对于软件,风险可能比你想象的要大。

虽然“糖果车里的陌生人”场景的风险相当明显,但使用没有价格标签的开源程序在纸面上看起来危险性要小得多。它可以完成您需要的工作,不会超出您的预算,并且得到了人们的热烈评价,他们非常欣赏它最吸引人的特点:不花一分钱——这有什么不对呢?我们列出了一些很好的理由,说明为什么基于 VNC 的开源软件可能是披着羊皮的狼。漏洞的公开性

开源的核心意味着程序背后的所有代码对互联网上的任何人都是可见的。当出现错误时,这可以发挥很好的作用——大量热情的目光注视着代码,意味着可以更快地发现潜在问题,从而更快地修补——但这也可能给使用该程序的人带来非常现实的安全风险。虽然社区中的大多数用户将专注于改进软件,但有些人会检查代码,寻找利用和入侵任何漏洞的方法。

尤其是使用远程访问软件时,一次精心策划的黑客攻击可能会造成毁灭性的后果,黑客无需亲自靠近您的计算机即可将整个网络暴露给黑客。但是,对于闭源(也称为专有)软件,源代码不会在拥有其权利的组织之外发布。

这使得它比开源软件更不容易受到攻击,因为不是任何人都可以仔细检查代码,因此更难破解。想象一下在黑暗中拼出 10,000 块拼图——从技术上讲这仍然是可行的,但如果有灯,那就容易多了!

缺乏支持

虽然拥有广泛技能和专业知识的社区可以很好地为您遇到的问题找到解决方案,但它也有缺点。开源软件支持论坛上的每个用户都是志愿者。他们没有义务回复查询,甚至没有义务首先检查是否有新问题。

这意味着您完全依赖互联网的善意来提供支持,而当使用该软件对您的业务至关重要时,这不仅意味着浪费时间,还意味着损失收入。

使用专有软件,您可以拿起电话、发送电子邮件或使用实时聊天,因为您知道训练有素的专职人员会尽快回复您,并尽其所能为您提供帮助:事实上,帮助您解决问题确实是他们的工作。此外,客户服务代理要对他们提供的建议负责——在论坛上,匿名用户名可以很容易地给出故意错误或有害的“建议”,而不会产生任何后果。

赔款

不幸的是,数据泄露风险始终存在,而且似乎每隔一天就会有新的新闻报道。尤其是随着近期数据保护法的出台,例如针对在欧洲开展业务的企业的 GDPR,此类泄露的后果也可能是灾难性的。

由于开源软件不属于任何人,并且是根据通用公共许可证 (GPL) 提供的,因此没有一家公司可以保证其安全性(或不安全性)。如果通过该软件发生数据泄露,则完全由用户(即您或您的企业)承担责任。您将对泄漏造成的任何法律或财务影响负责,其后果可能相当严重,具体取决于泄露的规模和暴露数据的敏感度。

即使您的公司有专业责任保险,如果您使用的软件不安全且不符合您所在行业的数据保护法规,您的保险可能会因故意疏忽而失效。更不用说声誉损害了。

遵守行业治理

合规性是许多行业关注的重点,许多行业都有非常具体的要求以满足必要的标准,无论是 HIPAA、PCI-DSS、GDPR 还是任何其他监管法律。由于记录现在几乎完全数字化,软件遵守行业治理比以往任何时候都更加重要,而且并非所有软件都能满足要求。

任何人都可以添加开源软件,无需经过彻底的测试或审查,默认情况下不符合规定。这不仅抵消了使用免费软件的节省,因为需要自定义代码(熟练的程序员并不便宜!),而且还会因缺乏更新而使您容易受到攻击。

例如,基于开源 VNC 的软件在 RFB(远程帧缓冲区)协议的最新公开版本 - v3.8 上运行,该版本于 2010 年发布:具体来说,RFB 的当前版本是 v6,于 2019 年初发布。

过去十年,技术飞速发展,定期更新对于保证软件安全至关重要。使用任何软件的过时版本都可能对安全造成危险,不遵守标准的罚款数额可能相当可观。您真的不需要冒这个险吗?

安全级别低

暴力密码攻击仍然是黑客获取您的帐户和数据的最简单方法,因为许多人使用的密码很简单,自动程序可以很快破解这些密码,尤其是在互联网上流传着如此多的破解密码的情况下。

使用更长更复杂的密码以及多因素身份验证 (2FA/MFA) 是解决此漏洞的最佳方法,但对于基于开源 VNC 的软件,密码长度有 8 个字符的硬性限制,并且没有原生 2FA/MFA。基于开源 VNC 的软件不会加密任何会话数据,但在专有软件上,所有会话现在都采用 128/256 位 AES 加密。这又是由于前面提到的 RFB 协议的版本过时,并且可能是此列表中基于开源 VNC 的软件中最危险的部分。

使用专有远程访问软件,可以内置并定期更新安全工具,因为安全性是远程访问行业最关心的问题。高级别加密、复杂密码功能、2FA/MFA 和丰富的会话权限现在已成为许多付费远程访问服务的标准配置,让您和您的公司高枕无忧,而这是开源无法实现的。

不方便用户使用

开源项目主要是为开发人员构建和更新的,因此对于技术水平较低的人而言,可用性可能会受到很大影响。从笨重而混乱的用户界面到复杂的安装和设置,它们根本不适合外行人使用。

这不仅会给用户带来糟糕的体验,还会带来额外的漏洞。由于用户界面令人困惑,缺乏经验的用户很容易在一次会话中将访问权限授予未经授权的人员,陷入奇怪的故障,并打开通往地下世界的门户。

睁开你的眼睛,不是你的来源!

考虑总拥有成本 (TCO),而不是前期成本——虽然免费很吸引人,但从长远来看,它的成本可能远高于付费服务。您的业务值得投资,免费软件不值得承担可能的风险。

作者:Eden Jefford

答案2

假设您使用的平台不支持 RealVNC(我使用 arm64 Arch 的情况),我找到了以下解决方案。

  1. 以 root 身份编辑 /root/.vnc/config.d/vncserver-x11 中的配置文件
  2. 在文件底部插入以下内容
Authentication=VncAuth
Encryption=AlwaysOff
Password=e0fd0472492935da
  1. 重新启动 RealVNC sudo systemctl restart vncserver-virtuald.service(或者只是重启)
  2. 更改密码(显然是 foobar,但永远不要将密码留给已经发布的内容。)
sudo vncpasswd -service

现在,您可以使用另一个 VNC 客户端访问 RealVNC 服务器。您将收到一条警告,提示连接不安全,据我所知,这就是访问的代价;但是,在我的 LAN 内,这可能没问题。

答案3

如果您只是想尝试tigervnc-viewer连接到qemuVNC 终端之类的东西,请不要在命令行上指定端口或 IP 地址,只需运行它并取消选中安全菜单中的冗余安全选项。

答案4

从更新的 Manjaro (20240112) TigerVNC 客户端连接到 Centos Stream 9 VNC 屏幕共享时,我遇到了同样的错误(“没有匹配的安全类型”)。

通过切换到 gtk-vnc 修复gvncviewer

相关内容