Iptables
在 CentOS 7 上的 iptables 中使用 Forward 限制源 IP 不起作用
我有一台帶有 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.x
IP地址將被允許從網際網路轉發eth0
。更改
eth0
介面女巫連接到您的本地網路。轉發表在後路由表之前應用。