2 个 Linux 系统,代理和 ssh 隧道

2 个 Linux 系统,代理和 ssh 隧道

问题:我需要创建 ssh 转发到其他作为代理的 Linux 机器。

我有两个 Linux 机器(centos 5.5),一个在办公室(服务器1) 位于防火墙后面,其他位于主机托管处(服务器2

服务器1在端口上安装了 Squid 代理3128

我不能使用服务器1作为家里的直接代理,因为它位于防火墙后面。

我能够从服务器1服务器2当我登录到服务器2ican ssh root@localhost -p 12312 到服务器1

我需要的是配置服务器2所以它转发端口服务器2:3128 至服务器1:3128

我可以补充服务器2IP 地址和端口到 Firefox 代理并访问办公网络。

谢谢

答案1

猜测

如果我理解正确的话,您希望通过浏览器从客户端连接到服务器 2,然后将连接隧道传输到服务器 1,从而允许您通过安装在服务器 1 上的 squid-proxy 访问办公网络。

为了完成猜测,我认为你使用了类似

server1$ ssh -R 12312:localhost:22 server2

建立第一条隧道。

解决方案尝试

如果您确实希望能够在客户端的 Firefox 设置中以代理身份进入 server2,请确保在 server2 的 sshd_config (/etc/ssh/sshd_config) 中启用了 GatewayPorts:

 GatewayPorts yes

还要确保您想要使用的端口没有阻止 iptables 规则。

那么你可以使用以下方法来代替现有的隧道:

server1$ ssh -R *:3128:localhost:3128 server2

或者如果你真的想使用现有的隧道,你可以使用:

server2$ ssh -L *:3218:localhost:3218 -p 12312 localhost

一些旁注

如果您按照上述方式执行此操作,则所有可以访问服务器 2(无需登录)的人都可以使用端口 3128 作为代理端口,从而访问您的办公网络(如果没有其他措施)

我不知道贵公司存在什么样的政策,但在尝试此类隧道之前,请确保您没有违反任何政策。

另一种解决方案

将现有隧道更改为

server1$ ssh -R 3128:localhost:3128 server2

从您的客户发出

client$ ssh -L 3218:localhost:3128 server2

然后在您的 Firefox 中添加 localhost 和端口 3128 作为代理配置。

这样你就不需要配置 GatewayPorts,并且只有在 server2 上登录的人才能使用隧道到 server1

相关内容