客户端防火墙阻止除 80 和 443 以外的所有端口,需要将端口 443 上的请求转发到 SSH 或 HTTPS

Posted

技术标签:

【中文标题】客户端防火墙阻止除 80 和 443 以外的所有端口,需要将端口 443 上的请求转发到 SSH 或 HTTPS【英文标题】:Client firewall blocks all ports but 80 and 443, need away to forward requets on port 443 to SSH or HTTPS 【发布时间】:2010-09-29 11:41:22 【问题描述】:

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

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

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

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

问候,nidkil

【问题讨论】:

大多数时候443端口也是开放的。如果您的网络服务器不支持 HTTPS,您可以将该端口转发到防火墙中的 22。 是的,但他想运行 HTTPS! 【参考方案1】:

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

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

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

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

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

【讨论】:

不错。 +1。请参阅***.com/questions/487737 的 cmets。 1 下来,14 去(每天 1 次)【参考方案2】:

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

【讨论】:

如果他有多个可用的IP,这可能是最好的解决方案。【参考方案3】:

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

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

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

【讨论】:

假装他在泰国或其他阻止 SSH 的国家。当然,你会冒着秘密警察的风险,而不仅仅是你雇主的愤怒。可能还需要在 gif 中隐藏 SSH ;) 关于使用 SSH 绕过安全性的要点。大多数安全人员不喜欢你规避他们的规则,而且他们通常有很大的吸引力。至于让某人打开端口,我猜您之前从未在一家大公司工作过,那里的政策胜过任何可能有的充分理由?【参考方案4】:

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

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

【讨论】:

【参考方案5】:

如果您在我们的 centos 机器上安装了 apache,您可以使用 mod_proxy 将请求从一个端口重定向到另一个端口。我用它来将请求重定向到http://webmin.myserver.com 到http://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 模块,您可以通过浏览器访问。

【讨论】:

以上是关于客户端防火墙阻止除 80 和 443 以外的所有端口,需要将端口 443 上的请求转发到 SSH 或 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

MySQL可以使用443端口吗?因为防火墙只开放了80,443端口。

阻止 NGINX 移除端口

如何阻止 Skype 使用 HTTP 或 HTTPS 端口 80 和 443? [关闭]

通过 80 或 443 以外的端口查看 http

linux怎么打开5005端口和80端口?

CentOs web服务器安全防范经验总结