CentOS - 防止透過 NIC #1 上的預設閘道從 NIC #2 轉送連接

CentOS - 防止透過 NIC #1 上的預設閘道從 NIC #2 轉送連接

我有一個 CentOS 7 系統,有 2 張網路卡(eth0 和 eth1)。

網路卡配置:

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 網路內的電腦到公共 Internet 的傳出連線。

NIC eth1 連接到 146.81.34.128/25 網路(NIC IP 146.81.34.150、網路遮罩 255.255.255.128、gw 146.81.34.254,這些由客戶定義的伺服器 1.34.134.

來自 146.81.0.0/16 網路的其他伺服器需要透過 ping(透過網關 146.81.34.254)到達我的伺服器(146.81.34.150)。例如,位於 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鉤子。

相關內容