我有多台带有多个网络接口的机器:
- 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
然而,我该如何不允许来自eth1
或ppp0
路由到 eth0 的数据包,而不是仅有的允许tun0
使用该机器作为网关吗?
我是否需要使用一些 iptable 规则标记这些数据包,以便我可以将 MASQUERADE 规则限制为仅这些数据包?非常感谢 iptables 配置示例。
i386 上的 Debian Linux 6;eth0
子网根据机器而变化
答案1
http://syrlug.org/contrib/ipmasq.html
第 4.3 节应该可以帮到您。
有了这么多接口,您将需要一些转发规则。这样您就可以指定要转发的内容以及转发到哪里。
查看我发布的链接并阅读一些内容。它可能相当复杂,但第 4.3 节提供了一些我认为您正在寻找的有用信息。