Iptables

在 CentOS 7 上的 iptables 中使用 Forward 限制源 IP 不起作用

  • October 2, 2016

我有一台帶有 NAT 的單介面設置的 CentOS 7 機器。我有一台帶有單個介面的 Windows 8.1 機器作為 NAT 客戶端。兩台機器在同一個IP網路上

以下是相關的iptables條目

配置 1(工作)

-A POSTROUTING -o eth0 -j MASQUERADE
-A FORWARD -i eth0 -j ACCEPT

配置 2(工作)

-A POSTROUTING -o eth0 -j MASQUERADE
-A FORWARD -s 0.0.0.0/0 -i eth0 -j ACCEPT

配置 3 - 所需的配置(不工作)

-A POSTROUTING -o eth0 -j MASQUERADE
-A FORWARD -s x.x.x.x/32 -i eth0 -j ACCEPT

配置 1 和 2 有效。並whatismyipaddress.com從 Win8.1 機器上的瀏覽器顯示 NAT 機器的地址。所以我知道 NAT 正在工作,並且在 Win8.1 機器上正確設置了網關等。

但是當我嘗試按照配置 3 限制源 IP 時,我在 Win8.1 機器上失去了網際網路。而且,是的,我確定源 IP 是正確的。

有任何想法嗎?需要額外資訊嗎?

如果在第 3 種情況下,您的 FORWARD 策略是 DROP,那麼您不允許將返回流轉發回客戶端電腦。我會說添加一個-A FORWARD -d x.x.x.x/32 -j ACCEPT. 如果沒有看到您的所有規則,我無法確定。

順便說一句,只使用一個界面不是一個好主意,但您必須已經知道它。

-A FORWARD -s x.x.x.x/32 -i eth0 -j ACCEPT

這意味著x.x.x.xIP地址將被允許從網際網路轉發eth0

更改eth0介面女巫連接到您的本地網路。轉發表在後路由表之前應用。

引用自:https://serverfault.com/questions/806514