欢迎光临齐鲁信息港!

齐鲁信息港
当前所在位置:齐鲁信息港主页 > 商讯 > 正文 >

CentOS7 - 通过SSH隧道传输VNC连接!

2021-03-03 11:16:32 来源:互联网 阅读:-

通过SSH隧道传输VNC连接

上一个配方向您展示了如何通过VNC远程访问用户的桌面。 但是,如果服务在不受信任的网络上运行,则显然存在一些安全问题。 只需要显示号码和密码进行连接,并且由于只有前八个字符很重要,恶意用户才能相对容易地破解密码。 此外,流量未加密,可能会被窥探。 为了帮助减轻这些风险,本配方教您如何通过加密的SSH隧道路由VNC连接.

准备

此配方需要两个系统,一个托管VNC服务器的CentOS系统(远程系统)和一个连接VNC客户端的本地计算机。 它假定远程系统正在运行OpenSSH SSH服务器和TigerVNC服务器,并配置了IP地址192.168.56.100。 它还假定您具有管理权限。 应按照上一个配方中的说明配置VNC服务器。 本地计算机应安装OpenSSH SSH客户端(ssh)和VNC客户端。

怎么做

请按照以下步骤通过加密的SSH隧道路由VNC连接:

  • 在远程服务器上,使用文本编辑器打开vncserver @ .service配置文件:
vi /etc/systemd/system/vncserver-tboronczyk@.service
  • 找到ExecStart条目并将-localhost参数添加到runuser调用的vncserver命令:
 ExecStart=/usr/sbin/runuser -l tboronczyk -c "/usr/bin/vncserver
-localhost %i"
  • 保存更改并关闭文件。
  • 根据需要对其他用户的配置文件重复步骤1到3。
  • 重新加载systemd的配置以使其了解更新:
systemctl daemon-reload
  • 启动VNC服务器:
systemctl start vncserver-tboronczyk@:1.service
  • 在本地系统上,使用-L建立与服务器的SSH会话以定义隧道:
ssh -L 5901:localhost:5901 192.168.56.100
  • 使用VNC客户端连接到隧道的本地端点(localhost:1).

工作原理

此配方向您展示了如何通过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。 整个过程是相同的:将服务器配置为在本地侦听,然后在客户端上建立隧道。

See also

Refer to the following resources to learn more about SSH tunneling:

  • The ssh manual page (man 1 ssh)
  • Securing network traffic with SSH (https://security.berkeley.edu/resources/best-practices-how-articles/securing-network-traffic-ssh-tunnels)
  • SSH tunneling made easy (http://www.revsys.com/writings/quicktips/ssh-tunnel.html)

推荐阅读:长城商圈网