在 VPN 后使用 SSH

在 VPN 后使用 SSH

我有一台服务器 (192.168.1.1),用作路由器/默认网关。此服务器连接到 openvpn 并通过此 vpn 路由所有网络,然后将其(加密)发送到调制解调器 (192.168.1.254)。我已配置端口转发,以便我的公共 IP 上的 SSH 连接路由到服务器。vpn 的 IP 不能用于连接到服务器。

每当我断开 VPN 连接时,我都可以从远程位置使用 SSH 访问服务器,但通过 VPN 路由时,这是不可能的。这一切似乎合乎逻辑,因为服务器会尝试从不同的 IP 回复。

我希望服务器继续通过 VPN 路由我的 LAN 流量,但接受我的公共 IP 上的 SSH。因此,如果您将所有流量从调制解调器路由到服务器,然后再路由回调制解调器。然后我可以在服务器上指定仅允许 SSH 连接的规则。另一个可能更好的选择是只有 SSH (22) 通过调制解调器路由。问题是我无法让这个从调制解调器到服务器再返回的路由正常工作。

我尝试过的:

我发现他们建议如下来源:

ip rule add from 192.168.1.1 table 128
ip route add table 128 to 192.168.1.0 dev eth0
ip route add table 128 default via 192.168.1.254

这感觉就像撤销了我之前所做的所有 vpn 路由。每当我这样做时,我仍然可以从远程位置访问服务器,但 VPN 将不再起作用。

答案1

我有一个解决方案,虽然不能完全满足我的要求,但也许能帮到一些人。您至少可以在服务器位于 VPN 后面时从远程位置访问它。

你可以做的是建立一个反向 SSH 隧道连接到未使用 VPN 的另一台服务器,或使用提供隧道的服务,例如开放端口。这些服务很容易设置,但不允许您使用自己的 IP(通常还有端口)进行连接。

答案2

我会尝试在服务器上使用 iptables。

我使用的是openvpn,并且使用以下命令来处理ssh:

-A 输入 -s 17#.48.#.##/32 -i eth0 -p tcp -m tcp --dport 22 -j 接受

-A 输入-i tun0 -p tcp -m tcp --dport 22 -m iprange --src范围 10.8.0.1-10.8.0.24 -j 接受

第一条规则仅允许来自我的源 IP(主工作站)

第二个允许任何设备连接到 vpn,所以如果我可以连接到我的 vpn,那么无论什么设备,我都可以连接到 ssh。

我发现的技巧是利用 /dev/tun0 的存在来发挥你的优势,因为很少有设备(你的)可以访问它。

我不是专家,我不确定这些规则可能带来的安全风险,但它们对我来说很有用。也许稍微调整一下就能得到你想要的东西。

不确定这是否正是您要找的,但我希望它能有所帮助。

相关内容