如何通过 ssh 连接到公司防火墙后面的 Linux 服务器?

如何通过 ssh 连接到公司防火墙后面的 Linux 服务器?

我公司有一台 Linux 服务器 (CentOS 6 VM),位于企业防火墙后面,我拥有 VM 的完全 root 控制权,但无法控制防火墙。它上面运行着一个 ssh 服务器,我可以在公司网络内通过 ssh 连接到它。

当我在公司网络之外时,我想通过 ssh 连接到此虚拟机。我该如何实现?

这个 Linux VM 在 Mac 主机上运行,​​我可以使用 logmein 连接,然后访问 Linux VM。我想直接 ssh 到 Linux VM。

我猜测 Linux VM 必须与外部机器发起某种握手才能使其工作?

答案1

我会询问 IT 部门。他们安装此防火墙是有原因的,而您尝试执行的操作可能违反了安全策略。他们必须知道您需要从公司网络外部访问此服务器。如果安全策略没有问题,他们会帮助您获得此访问权限。

答案2

你修复了公司防火墙,允许 SSH 进入。你可能无法控制防火墙,但如果有业务需要访问,那么任何合理的公司政策都应该允许它,如果你为一家没有合理政策的公司工作,那么赶紧http://careers.serverfault.com/

答案3

如果您有一个可以从两个位置访问的服务器,则可以设置反向 ssh 隧道

http://www.marksanborn.net/howto/bypass-firewall-and-nat-with-reverse-ssh-tunnel/

答案4

behindvpn您可以创建从主机到主机的ssh 隧道outsidevpn

behindvpn$ ssh -R 1234:localhost:22 outsidevpn

这将打开主机1234上的端口outsidevpn,并将连接转发到主机22上的端口behindvpn

现在你可以使用以下命令连接到 behindvpn 主机:

$ ssh outsidevpn -p 1234

笔记:您可能需要确保您的连接不会由于不活动或 shell 超时等原因而中断。

笔记:您可能还需要采取一些预防措施,以免降低内部网的安全性:

  • 使ssh虚拟机上的所有密码都难以猜测
  • 确保您创建隧道的机器是安全的(只能由您访问,具有防病毒软件、防火墙等)
  • 设置bind_address到不可路由地址的隧道(例如127.0.0.1)或隐藏防火墙后面的端口
  • 仅在真正需要时限制端口开放的时间
  • 限制只有您可以访问端口

相关内容