在端口 443 上运行多个服务,通过 HTTPS 隧道 SSH

laj*_*tte 7 firewall https ssh-tunnel lighttpd

情况: 我想通过 HTTPS 建立 SSH 会话隧道。我有一个非常严格的防火墙/代理,它只允许 HTTP、FTP 和 HTTPS 流量。

什么工作: 通过代理建立一个隧道到一个远程 linux 机器,在端口 443 上有一个 sshd 监听

问题: 我必须在端口 443 上运行一个 Web 服务器(轻量级)。代理禁止到其他端口的 HTTPS 流量。

到目前为止的想法: 设置虚拟主机并将所有传入请求代理到本地主机:(例如22)

$HTTP["host"] == "tunnel.mylinux.box" {                                         
    proxy.server = (                                                            
        "" => (("host" => "127.0.0.1", "port" => 22))                           
    )                                                                           
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这行不通。我做错了什么,还是有原因,这行不通?

小智 5

你可以使用一些 Perl 来解决这个问题:

sslh - 在 SSH 和 SSL/HTTPS 服务器之间切换传入连接


Ken*_*ert 5

您可能想查看sslhC 实现

从网站:

sslh 允许在同一端口上同时接受 HTTPS 和 SSH 连接。它可以连接到端口 443 上的 SSH 服务器(例如,从公司防火墙内部),同时仍然在该端口上提供 HTTPS 服务。此功能已作为 Perl 脚本实现。

sslh 有两个问题:
- 它在 Perl 中。这意味着它非常需要 RAM,而且速度可能不是很快。
- 它不管理权限下降,这是相当有问题的。

这两个问题的明显解决方案是用 C 重新实现它,这就是这个程序的目的。