【问题标题】:OpenVPN - How do you NAT a client to another client's networkOpenVPN - 你如何将一个客户端 NAT 到另一个客户端的网络
【发布时间】:2020-06-25 22:43:42
【问题描述】:

我在 AWS 实例上设置了一个 openVPN 服务器,我想使用它将流量从我的家庭客户端(client1,192.168.0.0/24)路由到客户端(client2,10.81.0.0/16)通过 openVPN 服务器在第二个网络上的机器。我想将连接从 client1 路由到 client2 的网络,以便我可以连接到 client2 网络中的多个设备。但是,我无法控制 client2 网络中的网关,因此我无法将路由添加回 vpn。

据我所知,我已经设置了 openVPN 配置,一旦连接了客户端 1 和客户端 2,我就可以从客户端 1 访问客户端 2,还设置了路由,这样如果我在客户端 2 的网络上 ping 一台机器,流量就会通过vpn 但没有响应发生,因为 client2 的网络设备不知道如何将 vpn ips 路由回 client2。

我假设我需要在 client2 上设置 nat 伪装,但我不确定如何正确处理这个问题,因为我对 iptables 不太熟悉。

在客户端 2 上试过:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

server.conf

port 1194
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
route 10.81.0.0 255.255.0.0
push "route 10.81.0.0 255.255.0.0"
dh none
ecdh-curve prime256v1
... encryption info ...
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
verb 3

ccd/client2

iroute 10.81.0.0 255.255.0.0

【问题讨论】:

  • 不是一个编程问题,请拿这个去例如superuser.com。

标签: nat openvpn


【解决方案1】:

对于任何有类似问题的人,我发现这个https://arashmilani.com/post?id=53 帮助我解决了这个问题。

对我来说,我需要添加以下内容而不是我尝试过的内容。

iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eno2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eno2 -o tun+ -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno2 -j MASQUERADE

tun0 是来自 VPN 的隧道接口,而 eno2 是 client2 网络的接口。 10.8.0.0/24 是 VPN 子网的默认子网。

转发是个大问题,伪装也是基于输出接口上VPN的IP地址范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多