Socks 代理连接 Iptables 设置

Socks 代理连接 Iptables 设置

我希望有人能帮助我,因为我无法进一步:

我有以下设置:

系统 1:PC Windows (192.168.240.2) 系统 2:PC Ubuntu (192.168.240.3)

在 Ubuntu 系统上,我打开了与 VPN 提供商的 ssh 连接,

Ubuntu 系统上的本地端口是 5080 VPN 提供商的远程端口是 3128(http 代理):

ssh -N -oUserKnownHostsFile=perfect_privacy_known_hosts -L 5080:127.0.0.1:3128 -v[电子邮件受保护]

如果我在 Ubuntu 系统上使用 Firefox 和 Foxy Proxy 并连接到 localhost:5080,流量会通过 ssl 隧道到达 VPN 提供商,一切正常。

现在我想通过 Ubuntu 客户端从 Windows 客户端连接到 VPN 提供商。所以我做了同样的事情,在Window客户端上我把Ubuntu客户端的IP地址192.168.240.3和端口5080放入狡猾的代理中。但这不起作用(我认为因为ubuntu客户端上的ssh隧道在本地主机上侦听而不是 192.168.240.3)

我需要做什么才能让它发挥作用

最好的问候桑古尔

答案1

这是执行此操作的一种方法。

  • 同时添加ExitOnForwardFailure=yes选项

    ...以避免ssh错误地保留多个。无论如何,只有第一个可以打开端口的人才能处理转发的端口。

  • 更改ssh命令,使其不再使用 127.0.0.1 进行监听

    • 要么听 192.168.240.3

      ...通过将此可选 IP 地址添加到-L范围。这意味着 Firefox 代理必须更新为 192.168.240.3:5080 而不是 127.0.0.1:5080 。

      ssh -N -o ExitOnForwardFailure=yes -o UserKnownHostsFile=perfect_privacy_known_hosts -L 192.168.240.3:5080:127.0.0.1:3128 -v [email protected]
      
    • 或听 0.0.0.0

      ...绑定到 IPv4INADDR_ANY通配符地址,避免更改 Firefox 代理设置,尤其是在 Ubuntu 主机具有动态 IP 地址且没有已知 DNS 的情况下。

      ssh -N -o ExitOnForwardFailure=yes -o UserKnownHostsFile=perfect_privacy_known_hosts -L 0.0.0.0:5080:127.0.0.1:3128 -v [email protected]
      

    注:该-g选项(即-o GatewayPorts=yes) 与上面的效果相同,只是它也绑定到in6addr_any::)地址,因此即使没有 IPv6 防火墙,IPv6 访问也将不受限制:最好避免-g这种情况。


  • 可选:使用限制访问iptables。如果不需要的话可以完全省略。

    由于OP添加了标记,也只允许主机本身和192.168.240.2访问此端口。 (几乎)不会影响任何其他访问,因为OP没有要求这样做,这真的会开始变得偏离主题。

    我正在考虑目前没有iptables(也不是 UFW/firewalld)到位。考虑更新提供的工具iptables规则(如果存在此类工具)。下面的规则应该首先让它们正常工作,所以我使用-I+ 数字(以保持升序),而不是-A允许它们在可能的防火墙工具之前添加的规则之前添加,但这不会有太大帮助用于启动时自动设置。

    iptables -I INPUT 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -I INPUT 2 -i lo -j ACCEPT
    iptables -I INPUT 3 -m conntrack --ctstate INVALID -j DROP
    iptables -I INPUT 4 -p tcp -s 192.168.240.2 --dport 5080 -j ACCEPT
    iptables -I INPUT 5 -p tcp --dport 5080 -j REJECT --reject-with tcp-reset
    

    这允许之前的连接继续,来自主机本身的任何连接,然后只允许从 192.168.240.2 访问端口 5080。

    注意:... INVALID -j DROP存在REJECT规则时这是强制性的(请参阅此犯罪了解技术细节)。

相关内容