SSH 隧道的安全性

SSH 隧道的安全性

我们在 NAT 后面有一个集群(当前有 10 台机器)。专用网络和常规公司网络之间有一个 NAT 网关/跳转主机。

用户可以ssh跳转主机,然后进入 NAT 后面的任何其他计算机。

我想提供一个简单的脚本,帮助他们将 NAT 后面的 Web 接口隧道连接到本地计算机。

所以我的第一个建议是:使用 SSHocks 代理并将接口隧道连接到本地主机。

所以我的问题是:如果我创建这两条隧道(一条从我同事的本地计算机到跳转主机,一条从跳转主机到 NAT 后面的相应计算机) - 这条隧道的安全性如何?

想象一下worker1谁正在这样做:

ssh -t [email protected] -L 10001:localhost:33388 ssh -t hostxyz.behindnat.tld

跳转主机上有一个开放端口 33388,正在侦听环回接口。如果worker2只是登录到跳转主机并使用本地主机端口 33388 以及已经建立的隧道连接,他一定不会再次向 进行身份验证hostxyz.behindnat.tld,对吗?

这对我来说似乎是一个巨大的安全漏洞,有更好的解决方案吗?

答案1

我假设您的场景意味着 Jumphost 和 Hostxyz 之间预先存在 ssh 会话,该会话将对所有有权访问 Jumphost 侦听端口的人开放。

您提到了袜子和隧道,这在技术上是两个不同的东西。

像这样设置worker1的socks代理: ssh [email protected] -D 127.0.0.1:10001

设置worker1的浏览器使用sockslocalhost:10001通过jumphost.tld进行浏览

如果您想直接从worker1 ssh 到hostxyz,您可以执行如下操作。

  ssh [email protected] -L localhost:10001:hostxyz:22
  ssh user@localhost:10001

这就是我所做的。我使用 .ssh/config 文件来组织一切。我建议阅读以下内容以获取有关配置文件和隧道的信息。https://man.openbsd.org/ssh_config观看 Michael W Lucas 关于 openssh 的演讲,了解另一本不错的入门书。

相关内容