我花了几个小时查看 Super/Stack 和其他网站,但还没有找到答案。所以,我打算再试一次在这里提问。我会指出我在链接中找到的一些部分答案,但它们太复杂或回答了一半,我认为这可能会让任何读到这篇文章的人的情况变得更糟。
到目前为止,我已经能够使用自签名证书在本地 PC 上设置运行的 Apache 服务器。我的路由器端口 443 已转发到此服务器。我还在本地 PC 上的端口 22 上运行 OpenSSH。我的目标是:
我希望能够从 Putty/WinSCP 连接到我的 PC 的端口 22,通过 443 SSL 连接建立隧道,并通过 SOCKS 进行浏览,就像我在所述 PC 上一样。
我可以尝试 Stunnel、SSHL、HTTPProxy、Httptunnel、Corkscrew 客户端或任何可以清楚解释如何操作(或链接到指南)的东西,但它必须在 Windows 上运行。
我倾向于设置 Apache 服务器(mod_proxy / proxy pass?)(自行?)将传入的 443 转发到端口 22,以便 OpenSSH 接收连接并使用 SOCKS 进行浏览。
注意:以下是流程的描述。我无法使用 VPN(已在使用 VPN),也无法在 SSH 上使用 443,因为第 7 层防火墙会发现 SSH 协议并将其阻止。客户端 PC 已在使用 VPN,因此无法使用 VPN。
Win PcA > Win ServerB 运行某些东西(Apache/Nginx?){SSL}
然后当 HTTPS 处于活动状态并加密时发送:
Win PcA > Win ServerB 通过 WinSCP 或 Putty 为 SFTP 运行 OpenSSH {SSH}
&
Win PcA > Win ServerB 通过 Putty 运行 OpenSSH {SSH},通过浏览器进行 SOCKS
这主要是为了知识目的,但我意识到它也是为了 FW 攻击。由于它们都是我的计算机,如果需要,我可以在客户端安装软件,但最好的办法是除了 Putty/WinSCP 和浏览器之外没有其他软件,我可以在客户端更改代理端口。这样,如果我必须从不属于我的 PC 上运行它,我很可能可以使用 putty/WinSCP 而无需发出警告或需要管理员权限。
我听说过 Squid 和 Ngnix 可以作为服务器端的代理服务器,但目前我运行的是 Apache 2.4。我想我可以改变它。基本上我想创建一种 Inet 浏览(通过 SOCKS 代理)和文件传输端点(通过 22 完全隐藏在 SSL 中),我可以从任何地方访问它,只要我所在的网络允许 SSL 连接,它就不会被阻止。
那里的 Apache 设置和自签名证书指南帮助我走到了这一步……现在我面临太多选择。谢谢阅读。
编辑:有很多这样的问题,没有答案,答案也令人困惑。但对我来说,它们都不完整。另外,我不确定我的问题格式是否正确。我是新来的。
答案1
SSH 已使用 SSL 加密流量。为了使用(通常)允许的 HTTPS 端口 tcp/443 连接到您的家庭 SSH 服务器,您只需配置 SSH 客户端和 SSH 服务器以使用端口 tcp/443。WinSCP 作为客户端允许这样做。根据用于 SSH 服务器的软件,这也应该是可能的,以及安装您自己的 SSL 证书。
您无需为此安装 Apache。事实上,由于 Apache 会终止 SSL 连接,因此从该服务器到本地 SSH 服务器的加密流量将无法实现(但例如未加密的 telnet 可以实现)。
如果您需要逃避应用程序识别,可以考虑创建一个 SSL VPN 隧道,然后通过该隧道启动 SSH 隧道……您提到的一部分是 Apache + OpenSSH。您需要为 SSL VPN 服务器添加一个附加软件,例如 (?) OpenVPN,它根本不是 Apache 的一部分。