防火墙 – 在一个NIC Linux上的两个虚拟接口之间路由

前端之家收集整理的这篇文章主要介绍了防火墙 – 在一个NIC Linux上的两个虚拟接口之间路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一台Ubuntu机器是我的防火墙

机器有2个NIC卡. eth0和eth1. eth1连接到调制解调器,使其IP为10.10.1.X

eth1需要在192.168.2.X上提供DHCP,并且从连接到路由器的交换机获得另一个IP,该路由器在192.168.1.X上提供DHCP

目前该机器具有以下IP

eth0 - 10.10.0.4
eth1 - 192.168.2.1 (DHCP Server,Gateway)
eth1:0 - 102.168.1.103

我正在努力完成以下任务

如果一台机器通过交换机连接到eth1,它应该能够ping 192.168.1.10

[Modem+Router 10.1.1.0/24]
   |
   |
   |
 (eth0)                  |----- [ Server 192.168.1.10]
 Ubuntu                  |
Firewall (eth1) ----- [Switch]-----[Modem+Router 192.168.1.0/24]
         (eth1:0)--------| \
                            \
                             \--------[EndPoint 192.168.2.4]

我的根本问题在于我收到来自2.4的数据包,这些数据包是发往互联网的,我可以使用IpTables正确地路由它们.然而,如果数据包到达1.10,我应该将其发送回具有相应选项集的交换机.

我尝试了以下内容

>将1.0的默认网关设置为2.1为2.4并设置下一个
跳到1.1我希望能做正确的转发
>我还使用bridge-utils桥接了eth1和eth1:0,然后为希望从10.10.0.1上网的2.X中的任何人应用iptables转发

解决方法

您的配置通常应该是开箱即用的. Linux路由代码原则上支持路由,与Netfilter无关. “iptables”是用于配置内核Netfilter框架的用户空间实用程序,它可以进行过滤和数据包修改(修改和地址转换),但不进行任何路由.所以说“我使用iptables路由”是不正确的.

桥接也是不同类型的东西,不应该在这里帮助你.桥接别名接口可能应该进行循环,从而破坏该以太网段中的网络.

您需要两侧的路由,例如,在192.168.1.0/24网络中的主机上通过192.168.1.103 ip route add 192.168.2.0/24,并在192.168.2.0/24网络中的主机上设置192.168.2.1作为默认网关.

如果您在防火墙框上设置了防火墙,则需要启用从eth1到eth1:1的流量转发并返回:

iptables -A FORWARD -i eth1 -o eth1:0 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth1:0 -j ACCEPT

或者您可能只需要一条第一条规则,如果您已经使用iptables配置了状态防火墙-A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT或-m state(废弃).

只有在想要伪装该流量时才需要特殊的iptables配置,对于192.168.1.0/24中的主机,不知道您是从192.168.2.0/24网络连接.然后你不需要.1.0 / 24端的任何其他路由,但需要NAT规则和转发启用规则:

iptables -t nat -A POSTROUTING -o eth1:1 -s 192.168.2.0/24 -o 192.168.1.0/24 -j SNAT --to-source 192.168.1.103
iptables -A FORWARD -i eth1 -o eth1:0 -j ACCEPT

猜你在找的Linux相关文章