允许已建立的流量来回传递

允许已建立的流量来回传递

我很难设置正确的 iptable 以便将 OpenVPN 流量路由到我的内部 OpenVPN 客户端。

我的网络与此类似

                      +-------------------------+
           (public IP)|                         |   
{INTERNET}============{ eth1     Router         |
                      |                         |
                      |         eth2            |
                      +------------+------------+
                                   | (192.168.0.254)
                                   |
                                   |              +-----------------------+
                                   |              |                       |
                                   |              |        OpenVPN        |  eth0: 192.168.0.1/24
                                   +--------------{eth0    server         |  tun0: 10.8.0.1/24
                                   |              |                       |
                                   |              |           {tun0}      |
                                   |              +-----------------------+
                                   |
                          +--------+-----------+
                          |                    |
                          |  Other LAN clients |
                          |                    |
                          |   192.168.0.0/24   |
                          |   (internal net)   |
                          +--------------------+

所以基本上,我想接受端口并将 VPN 流量从路由器转发到内部 OpenVPN 盒。然后我希望 OpenVPN 盒从 eth 端口获取流量并将其发送到 tun。

以下是我尝试过的:

路由器上的 iptable:

$ iptables -A 输入 -i tun+ -j 接受 $ iptables -A 转发 -i tun+ -j 接受

# 允许 udp 1194 # iptables -A INPUT -p udp --dport 1194 -j ACCEPT

# 允许从 VPN 发起的流量访问 LAN iptables -I FORWARD -i tun0 -o eth2 \ -s 10.8.0.0/24 -d 192.168.0.0/24 \ -m conntrack --ctstate NEW -j ACCEPT

允许已建立的流量来回传递

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
     -j ACCEPT

伪装来自 VPN 客户端的所有流量——在 nat 表中完成

iptables -t nat -I POSTROUTING -o eth0 \
      -s 10.8.0.0/24 -j MASQUERADE

OpenVPN 上的 iptable

有人能指点我该如何解决这个问题吗?

答案1

如果我的猜测正确,则您正在尝试10./8从公共网络之外使用 VPN 的范围。这行不通,因为您只能从外部通过公共 IP 地址路由流量,并且只能从192.168./16网络内部路由范围。

一个关键要素:你的 VPN 服务器是一个普通应用程序在您的网络内部,可通过网络接口访问192.168.0.1/24。想要从外部连接到您的 VPN 的客户端需要通过公共 IP 地址和端口进行连接,该端口从您的路由器转发到您的 VPN 应用程序。

您的路由器既不知道接口,tun也不知道10./8VPN 地址范围。两者都在 OpenVPN 框上处理。加密流量使用192.168./16专用网络封装在 IP 数据包中,在路由器上进行 NAT。

相关内容