SSH 和 FoxyProxy - 通过 X 将浏览器会话从 B 带到 A

SSH 和 FoxyProxy - 通过 X 将浏览器会话从 B 带到 A

我会尽量简短。英语是我的第二语言,所以请原谅我语法上的不足。

我做了很多研究,但找不到合适的文章(可能是因为我没有使用合适的搜索字符串)。我希望有一个简单的现成的解决方案,但我也热衷于学习这些东西,所以如果有人至少能给我一个指点,我会很高兴。

我会将其分为两类:我目前正在做的事情以及我想要做但失败的事情。

两个运行 Ubuntu 10.04 的机器 -盒子A(SSH 客户端、Firefox、FoxyProxy)--> 盒子 B(运行安全应用程序 - Apache 端口 8080)为了将在 Box B 上运行的安全应用程序带到我的 Box A,我按照以下步骤从 A 连接到 B:步骤 1:命令:

ssh -D 1080 <user>@<Box_B_IP>

第 2 步:我将启动本地 Firefox(运行在盒子A's),并安装 FoxyProxy 并配置为监听端口 1080,我将其设为我的默认代理。

步骤 3:然后我只需在本地浏览器中输入服务器 IP(盒子A's) 指定应用程序正在监听的端口:8080

https://<Box_B_IP>:8080

这使我能够运行在盒子 B就好像它坐在我自己的客户身上(盒子A)这一切都很棒,除了我的盒子 B向世界开放(好吧,有 iptables 和防火墙,但这不是重点)。

因此,我想做的是在游戏中添加第三个框,中间有一个“跳跃”框盒子 A(叫它方框十),这样我就可以在盒子 B仅接受来自方框十, 像这样: A-->X-->B

我的假设是盒子A我应该 SSH 到方框十使用某个参数然后通过 SSH 进入盒子 B使用另一个参数绑定端口并能够运行在A通过X

我尝试了我愚蠢的大脑能想到的所有参数组合,例如-D和端口绑定。-L

我该如何实现这一点?任何建议都将不胜感激。

答案1

我通常会这样做:

  1. 开始ssh -D <local_port> <serverX>
  2. localhost配置您的 FoxyProxy(firefox)以使用在端口上监听的 socks5 代理<local_port>
  3. 导航到您的常用<serverB>地址,并激活代理。

瞧!

我仍在寻找一种在访问特定子域时自动启动本地代理的方法。

答案2

根据您的情况,您可以使用认证通过 Box A 和“跳转”Box X 创建与在 Box B 上运行的 Web 应用程序的更安全连接。步骤如下:

  1. 隔离你的 Web 应用程序:在 Box B 上运行安全应用程序并记下它运行的端口。为了防止不必要的访问,请使用防火墙阻止对 Box B 上这些端口的访问。

  2. 生成证书:您可以使用以下命令为 Box B 上的应用程序生成本地主机证书:mkcert localhost

  3. 设置端口转发:使用 SSH 通过 Box X 和端口转发创建从 Box A 到 Box B 的安全隧道。命令如下:ssh -L local_port:Box_X:remote_port user@Box_X。其中,local_port是 Box A 上的端口,Box_X是您的“跳转”盒,remote_port是 Box B 上运行应用程序的端口,user是 Box X 上的用户名。此命令应从 Box A 运行。

  4. 访问应用程序:现在,您可以使用以下地址从框 A 访问您的隔离且安全的 Web 应用程序:https://localhost:local_port

此方法允许您以更加独立和安全的方式在 Box B 上运行安全应用程序,并且只能通过 Box X 从 Box A 访问。mkcert 有助于简化生成本地主机证书的过程。

这只是一个高层次的概述。具体细节可能会根据您实际的系统配置而变化。如果您需要进一步的帮助来完成这些步骤,请随时询问!我还做了一个有关使用 mkcert 进行 SSH 隧道运行实际远程浏览器应用程序的有用指南,请点击此处,这可能更能说明您的具体用例。

相关内容