首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NATing w/ iptables + OpenVPN而不影响主机

NATing w/ iptables + OpenVPN而不影响主机
EN

Server Fault用户
提问于 2020-02-09 23:32:13
回答 1查看 876关注 0票数 0

我希望利用Linux设备作为默认网关,在不影响主机路由互联网的情况下,通过OpenVPN连接路由离开主机的通信量。我不想让主机通过VPN出口,只有来自其他设备的流量。

我已经成功地配置了NATing,使用主机上的默认路由(例如,如果VPN是打开的,则通过VPN,如果不是,则通过主机正常的互联网连接,主机作为traceroute中的附加跳),使用主机作为默认网关出口的通信量。

但是,我无法成功地配置它,这样OpenVPN连接就不会影响主机网络并使主机路由网关流量通过OpenVPN接口

我所做的事情:-配置了IP转发并验证了它的工作能力-能够停止OpenVPN用route-nopullpull-filter ignore redirect-gateway更新主机上的默认路由。

我猜想这其中有一个动态部分(从开放的vpn配置中提取路由信息),或者希望‘不是,真的,只是将这些路由应用于NAT流量’标志/设置。

网络配置:

  • 互联网接入是通过一个无聊的路由器,没有奇特的功能
  • 连接到网络上的Linux设备(Raspberry Pi),运行ufw、iptables、openvpn
  • 其他设备(S)连接,其中一些我想手动设置他们的默认网关到Linux设备。
  • 子网是192.168.0.0/24
EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-02-10 06:26:03

现在不是坐在电脑前,但我的总体想法是:

第一项:

让Raspberry有一个静态ip地址,它的默认网关是无聊的路由器。

如果无聊的路由器充当DHCP服务器,那么关闭它!让Raspberry代替DHCP服务器(或者网络上的另一个主机)。

让DHCP服务器广播Raspberry设备作为网络的默认路由器,而不是无聊的路由器。

Traceroute将是:

主机->覆盆子->无聊路由器>互联网

现在魔法来了。

如果你想转移流量通过虚拟专用网,而不是默认的方式走出房子,那么你应该使用source based routing的覆盆子。

对于通过VPN的特定主机,Traceroute将是:

主机->覆盆子-> Openvpn隧道->互联网。

为此,必须在Raspberry和VPN服务器上启用ip forwarding

当我下班回家时,我将详述答案。:-)

编辑

简要回顾一下基于源的路由:

我正在使用此页作为解决方案的基础。

这样做的目的是根据流量的来源确定通信量是如何转发的。

Linux中的默认路由表称为main。您可以使用命令ip rule show查看所有路由表的名称。

它应该将此输出作为默认输出:

代码语言:javascript
复制
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Raspberry将遍历所有匹配规则,并使用匹配的第一个规则转发包。

由于表main包含一条规则,上面写着如下内容:

代码语言:javascript
复制
default via <boring routers ip address> dev eth0

然后,它将转发所有的流量到无聊的路由器,以便到达互联网。

但是这里有一个问题:您可以为您想要通过VPN连接发送的所有主机分别创建一个路由表。为了简单起见,让我们调用这个路由表openvpn

您必须更改/etc/iproute2/rt_tables,使其看起来如下所示:

代码语言:javascript
复制
#
# reserved values
#
255     local
254     main
253     default
200     openvpn # <-- Note THIS line!
0       unspec
#
# local
#
#1      inr.ruhep

假设您想通过VPN转移另一台具有IP地址192.168.0.100的机器,然后您将制定一条规则,如下所示:

代码语言:javascript
复制
ip rule add from 192.168.0.100 table openvpn

如果假设隧道内VPN网关的ip地址为10.0.0.1,则可以使用以下命令设置默认路由:

代码语言:javascript
复制
ip route add default via 10.0.0.1 table openvpn dev tun0

如果网络上的所有主机都使用Raspberry作为网关,那么它们的所有通信量都将被转发到路由器,除非流量来自192.168.0.100。在这种情况下,它将通过VPN链路转发。

这就是你要找的吗?:-)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1002430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档