确保管理的持久反向 SSH 连接安全

确保管理的持久反向 SSH 连接安全

我正在我无法控制的环境中部署演示 Ubuntu 10.04 LTS 服务器,并且希望有一种简单安全的方法来管理这些机器,而不必让目标防火墙转发端口 22 以进行 SSH 访问。

我找到了一些使用反向端口执行此操作的指南(例如howtoforge 反向 ssh 隧道指南),但我担心自动打开隧道所需的存储的 ssh 凭据的安全性。

如果机器被入侵(主要担心的是机器的物理访问不受我的控制)我该如何阻止某人使用存储的凭据在反向 ssh 隧道目标机器中四处探索?

是否可以确保此设置的安全,或者您是否建议采用其他方法?

答案1

您可以使用autossh维护一个反向隧道,以便您使用 SSH 登录。隧道应使用具有限制的 SSH 密钥创建,~/.authorized_keys以便它唯一能做的事情就是设置隧道(有关man authorized_keys详细信息,请参阅)。以下内容仅允许从 1.2.3.4 开始使用此密钥,而不允许用它执行任何命令。

from="1.2.3.4",command="/bin/false",no-agent-forwarding,no-pty,no-X11-forwarding ssh-rsa AAAA...

答案2

我会使用 OpenVPN,因为我知道它能做什么,我知道它能做我需要的事情,而且很容易保护——正如你正确指出的那样,默认情况下,SSH 凭证会将你带入机器本身,这不是一个好主意。我知道较新版本的 SSH 提供了某种通用 VPN 功能,毫无疑问,有很多很好的方法可以防止它做你不想做的事情,但我自己不会冒这个险。按照你所了解的去做。

答案3

在防火墙上打个洞或在旁路设置代理。是的,您可以有反向 ssh 连接 - 但这只是一个隧道套接字连接 - 您仍然需要在其上运行一些协议(是的,您可以在 ssh 连接上运行 ssh,或者您甚至可以为 vpn 连接运行 pppd)- 当一端断开时尝试维护/恢复连接将非常难以自动化。它只有在您围绕它构建大量代码时才会起作用 - 此时您可能会破坏安全性。这真的不值得付出努力。

相关内容