【发布时间】:2021-06-19 03:56:15
【问题描述】:
问题
是否可以使用 socks 隧道(或端口 80 或 443 上的任何其他形式的隧道)来控制从远程计算机创建隧道的本地计算机?基本上,ssh -R [...] 当ssh 不是一个选项并且只有端口80 和443 上的TCP 连接是可能的?
具体场景
由于我们的一位客户的安全政策非常严格,我们目前必须连接到 Windows 跳转主机,而无法在那里复制和粘贴内容。从那里,我们通过网络浏览器下载需要的文件并通过 ssh 复制到目标机器,或者直接使用ssh 在目标机器上进行维护工作。然而,这个工作流程非常耗时,而且真的很烦人。
不幸的是,防火墙似乎能够区分真正的 HTTP 流量和 ssh,因为在我们的服务器上打开指示 sshd 以接受 443 上的连接不起作用。
Firewall
(HTTP only)
┌──────────────┐
│ │
│ ┌─────────┐ │ ??? ┌──────────┐
│ │Jumphost ├─┼───────►│Our Server│
│ │(Windows)│ │ └───▲──────┘
│ └──┬──────┘ │ │
│ │ssh │ │ssh
│ │ │ │
│ ┌─▼─────┐ │ ┌───┴─────┐
│ │Target │ │ │Developer│
│ │(Linux)│ │ │Machine │
│ └───────┘ │ └─────────┘
│ │
└──────────────┘
任何提示都非常感谢????????
【问题讨论】:
-
如果客户不想要它,他必须支付你的时间,但绕过他的安全似乎是个坏主意
-
您可以尝试打开一个 websocket,它们使用 TCP 连接并支持全双工数据流量。我对系统一无所知,因此我无法告诉您如何打开 websocket,但 javascript 可以作为示例。
-
@jeb 我看不出我们如何规避任何事情。只要从 jumphost 到我们服务器的连接是安全的,我看不到由此引入的任何漏洞。
-
@DFSFOT 这当然是一种选择。但是,我不知道有任何软件可以让你做这样的事情:/
-
@NickLehmann 您可以尝试 NodeJS 或在浏览器中使用 javascript 打开 websocket。我刚刚意识到虽然 ssh 通常也通过 TCP 运行,所以如果你不能使用 ssh 运行连接,那么它不是 ssh 被阻止,而是可能有很多基于 TCP 的协议。你可能仍然可以使用 websocket,因为它们是 HTTP。