5

我目前在一个客户端工作,他们已经锁定了网络,除了端口 80 和 443。我需要使用 SSH 连接到我们的服务器,但同一台服务器也运行我们的网站。我们不想投资新服务器或放置第二张网卡。

我一直在互联网上搜索以设置我们的 linux 服务器(运行 CentOS 5),以便在端口 443 上侦听一个守护进程,该守护进程根据客户端协议将请求转发到正确的内部端口(SSH 22 或 HTTPS 移动到一个不同的端口_。

互联网上有很多人在寻找这种解决方案,但没有明确的说明如何做到这一点。

任何人都有想法/明确的说明如何做到这一点?

问候,尼德基尔

4

5 回答 5

6

sslh:http ://www.rutschle.net/tech/sslh.shtml

我正在使用 1.5;我还没试过1.6b,1.3有一个问题,就是让僵尸到处乱跑。

在端口 443 上运行它;如果 2 秒(默认)没有发送数据,它会转发到 ssh。否则,它会转发到您的 Web 服务器。

我在我的网站 ( http://mikeage.net ) 上运行它——如果你想看到两个登录横幅,你可以 netcat in。

就我而言,它还有另一个目的。我们的设置比您更严格:所有端口都被阻止,但可以通过代理访问 80 和 443。我可以让 SSH 使用类似 corkscrew(或本地 putty)的程序通过公司代理将我的 SSH 连接代理到我的服务器:443,在短暂延迟后,我的 SSH 服务器用它的登录横幅响应。我还可以通过标准 HTTPS 提供网页服务(事实上也是如此)。

于 2009-01-05T13:23:47.883 回答
3

防火墙限制的存在是有原因的。它们可能不是好的,但它们对实施它或促使它实施的人来说是有意义的。我不会试图违反公司关于外部连接的政策。

如果您的需要是合法的,我会要求向您需要的地址开放端口或替代端口。如果这不起作用,那么也许可以接受 VPN 解决方案。

如果网络人员只是疯狂地保护、不愿回应理由或完全无能,我想确保我得到了一位愿意在成为问题时为我效力的经理的签字在我实施解决方法之前。其他任何事情都可能导致您的工作被终止。毕竟,您是在谈论违反公司安全政策。

于 2009-01-04T14:34:30.253 回答
3

解决您的问题的一个简单方法可能是为您的机器分配多个 IP 地址,并将您的 SSH 绑定到单独 IP 上的端口 443;您通常可以为单个适配器分配多个 IP 地址,无需添加第二个网卡。否则,我不知道您想要做什么的任何开箱即用的解决方案。您可能必须为此创建一个自定义守护程序,这有点棘手但可行。

于 2009-01-04T14:07:28.967 回答
1

您可以构建一个小型 Web 应用程序,侦听端口 443,使用公钥身份验证启用反向 SSH shell 到传入连接的 IP。说:

  • 您在 Web 应用程序上进行身份验证;Web 应用程序检索您的 IP
  • 应用程序启动从其 IP 到您的 IP 的 SSH 隧道(在端口 22)
  • 您机器上的 SSH 服务器结束隧道并在 localhost:8080 进行侦听
  • 然后,您使用 localhost:8080 启动 SSH 会话。以下交互式会话中的命令被重定向到远程主机。
于 2009-01-04T14:26:43.797 回答
0

如果您在我们的 centos 机器上安装了 apache,您可以使用 mod_proxy 将请求从一个端口重定向到另一个端口。我用它来将请求重定向到http://webmin.myserver.comhttp://myserver.com:10000(webmin 在不可访问的端口上运行)

ServerName webmin.myserver.co.uk
SSLProxyEngine On

ProxyRequests Off
ProxyPass / https://myserver.co.uk:10000/
ProxyPassReverse / https://myserver.co.uk:10000/

将上述内容放在您的虚拟服务器指令中,您就可以开始了。这可能不适用于 Putty,但如果您安装 webmin,它有一个 SSH 模块,您可以通过浏览器访问。

于 2009-01-04T16:00:48.193 回答