通过一台机器连接到 SSH/RDP/VNC?

通过一台机器连接到 SSH/RDP/VNC?

我被要求提出一个解决方案,通过 DMZ 上的一个盒子连接到公司防火墙/代理中的 ssh、vnc 和 rdp 服务。

任务是让用户连接到这个盒子,然后连接到他们想要连接的服务。

目前,我在 DMZ 上有一台用于 ssh 的 ubuntu 机器。用户通过 ssh 连接到 Ubuntu-DMZ,然后连接到他们的目标机器,VNC 和 RDP 的思路也是一样的。

解决方案应该尽可能采用开源/ubuntu?

答案1

使用 ssh 的 localforward 可以很容易地实现这一点:

假设您有一个主机 GATEWAY 和一个可从 GATEWAY 访问的主机 RDPSERVER。您希望授予用户在登录 GATEWAY 时访问 RDPSERVER:5900 的权限。

用户使用以下方式登录 GATEWAY

ssh -N -L 33642:RDPSERVER:5900 user@GATEWAY

这将在用户计算机上打开端口 33642,该端口将透明地转发到 RDPSERVER:5900。因此,用户可以启动 RDP 查看器,将其指向 localhost:33642,所有数据都将被加密并通过隧道传输到 GATEWAY,然后从那里传输到 RDPSERVER。用户登录后,可以使用以下命令检查连接是否已建立

telnet localhost 33642

如果你需要为不同的主机提供多种服务,只需添加更多 -L 参数实例

在 unix 主机上,最好分发带有参数的 ssh 配置文件。

如您所见,ssh 具有强大的功能(除了 localforward 之外,还有更多功能,请查看 remoteforwards 和动态端口转发)。

相关内容