Linux 网关/DNAT:限制到某些接口

Linux 网关/DNAT:限制到某些接口

我有多台带有多个网络接口的机器:

  • eth0:本地 LAN
  • eth1:有时用于连接互联网网关
  • ppp0:调制解调器上行链路,作为 eth1 的替代
  • tun0:OpenVPN 隧道

我想启用tun0访问本地 LAN 的功能eth0,这很容易:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 >/proc/sys/net/ipv4/ip_forward

然而,我该如何不允许来自eth1ppp0路由到 eth0 的数据包,而不是仅有的允许tun0使用该机器作为网关吗?

我是否需要使用一些 iptable 规则标记这些数据包,以便我可以将 MASQUERADE 规则限制为仅这些数据包?非常感谢 iptables 配置示例。

i386 上的 Debian Linux 6;eth0子网根据机器而变化

答案1

http://syrlug.org/contrib/ipmasq.html

第 4.3 节应该可以帮到您。

有了这么多接口,您将需要一些转发规则。这样您就可以指定要转发的内容以及转发到哪里。

查看我发布的链接并阅读一些内容。它可能相当复杂,但第 4.3 节提供了一些我认为您正在寻找的有用信息。

相关内容