CentOS - 防止通过 NIC #1 上的默认网关转发来自 NIC #2 的连接

CentOS - 防止通过 NIC #1 上的默认网关转发来自 NIC #2 的连接

我有一个带有 2 个 NIC(eth0 和 eth1)的 CentOS 7 系统。

NIC 配置:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 10.43.96.210  netmask 255.255.255.192  broadcast 10.43.96.255

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 146.81.34.150  netmask 255.255.255.128  broadcast 146.81.34.255

我当前的路由表:

Kernel IP routing table
Destination    Gateway        Genmask         Flags Metric Ref    Use Iface
0.0.0.0        10.43.96.193   0.0.0.0         UG    100    0        0 eth0
10.43.96.192   0.0.0.0        255.255.255.192 U     100    0        0 eth0
146.81.34.0    0.0.0.0        255.255.255.128 U     0      0        0 eth1
146.81.34.128  146.81.34.254  255.255.255.128 UG    0      0        0 eth1
169.254.0.0    0.0.0.0        255.255.0.0     U     1003   0        0 eth1

NIC eth0 连接到 10.43.96.x 网络,默认网关(10.43.96.193)用于从 10.43.96.x 网络内的计算机到公共互联网的传出连接。

NIC eth1 连接到 146.81.34.128/25 网络(NIC IP 146.81.34.150、网络掩码 255.255.255.128、网关 146.81.34.254,这些由客户定义)并且需要访问 IP 为 146.81.34.11 的服务器。

146.81.0.0/16 网络的其他服务器需要通过 ping 访问我的服务器 (146.81.34.150)(通过网关 146.81.34.254)。例如,146.81.23.95 的服务器需要 ping 我的服务器。我不太了解该网络中的网络和路由配置详情,我被告知使用其网关 146.81.34.254。

当前问题:

客户说 146.81.0.0/16 网络(146.81.xx)上的其他服务器可以正确访问 146.81.34.128/25 网络(因此可以 ping 到我的 146.81.34.150 服务器)。这样就没问题了。

但是,146.81.0.0/16 网络中的其他服务器现在尝试使用我的默认网关 (10.43.96.193) 通过我的服务器访问其他 IP 地址(146.81.34.128/25 以外的其他网络),这应该被阻止。

问题:

我应该如何阻止来自 146.81.0.0/16 网络中的服务器通过此服务器转发连接?它们不应该使用我服务器上的默认网关 (10.43.96.193)。

答案1

我应该如何阻止 146.81.0.0/16 网络中的服务器通过此服务器转发连接?

最简单的选择是完全地通过 sysctl 禁用 IP 转发:

  • net.ipv4.conf.all.forwarding=0
  • net.ipv6.conf.all.forwarding=0

如果一些有些类型的流量必须通过服务器转发,但其他类型的流量则不需要,请使用防火墙 - 只需添加规则来接受想要的流量,并拒绝(或丢弃)其余流量。

  • iptables 有一个FORWARD正是为了这个目的而设立的链。
  • nft 同样有forward钩子。

相关内容