来源: 阅读:- 2020-08-14 05:55:59
上一个配方向您展示了如何通过VNC远程访问用户的桌面。 但是,如果服务在不受信任的网络上运行,则显然存在一些安全问题。 只需要显示号码和密码进行连接,并且由于只有前八个字符很重要,恶意用户才能相对容易地破解密码。 此外,流量未加密,可能会被窥探。 为了帮助减轻这些风险,本配方教您如何通过加密的SSH隧道路由VNC连接.
此配方需要两个系统,一个托管VNC服务器的CentOS系统(远程系统)和一个连接VNC客户端的本地计算机。 它假定远程系统正在运行OpenSSH SSH服务器和TigerVNC服务器,并配置了IP地址192.168.56.100。 它还假定您具有管理权限。 应按照上一个配方中的说明配置VNC服务器。 本地计算机应安装OpenSSH SSH客户端(ssh)和VNC客户端。
请按照以下步骤通过加密的SSH隧道路由VNC连接:
vi /etc/systemd/system/vncserver-tboronczyk@.service
ExecStart=/usr/sbin/runuser -l tboronczyk -c "/usr/bin/vncserver
-localhost %i"
systemctl daemon-reload
systemctl start vncserver-tboronczyk@:1.service
ssh -L 5901:localhost:5901 192.168.56.100
此配方向您展示了如何通过SSH隧道传输其流量来保护VNC。 我们将TigerVNC服务器配置为仅接受来自其localhost的连接,然后在本地客户端设置隧道以通过SSH连接路由流量。 这有助于缓解上述一些安全风险,因为需要正确的身份验证来建立隧道并加密VNC流量。
首先,您在用于启动VNC服务器实例的单元文件中编辑了ExecStart命令。 vncserver的-localhost参数指示服务器仅与本地系统通信; 来自网络的任何传入连接都将被拒绝:
ExecStart=/usr/sbin/runuser -l tboronczyk -c "/usr/bin/vncserver
-localhost %i"
在客户端,用户现在需要使用ssh建立SSH隧道,然后才能连接到远程显示器:
ssh -L 5901:localhost:5901 192.168.56.100
-L参数将隧道定义为local-port:target-host:target-port。目标主机和端口表示与ssh连接的服务器相关的最终目标。例如,我们知道配方在显示器1上运行用户的桌面,该桌面使用端口5901.我们也知道TigerVNC服务器在192.168.56.100上运行,但配置为仅侦听其localhost。这意味着,我们需要从192.168.56.100连接到localhost:5901。因此,localhost:5901是与该系统相关的目标。
一旦用户建立了隧道,他们就可以最小化会话的终端。 (不要关闭它!)ssh连接到远程系统,同时也在本地端口(也是5901)上侦听。在远程服务器上,ssh已建立到目标主机和端口的第二个连接。 VNC客户端将使用地址localhost:1连接到本地端口,然后将流量通过SSH隧道路由到远程服务器,然后转发到最终目标。
当流量从客户端的隧道传输到最终目的地时,远程系统充当网关。请记住,除非在远程服务器上创建了到目标的隧道,否则数据旅程的第二段未加密。这不是本配方的问题,因为远程和目标主机是相同的。如果您的最终目的地不是localhost,请确保网络可信或创建第二个隧道。
可以使用SSH以这种方式路由流量以保护其他服务,例如,NFS,FTP,HTTP,POP3和SMTP。 整个过程是相同的:将服务器配置为在本地侦听,然后在客户端上建立隧道。
Refer to the following resources to learn more about SSH tunneling:
(正文已结束)
免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!