Security

IPtables : 不要重定向特定的 IP

  • February 1, 2017

我正在嘗試使用以下命令將所有網路流量重定向到電腦:

iptables -t nat -A PREROUTING -p tcp  –destination-port 80 -j REDIRECT –to-port 1000

它有效,但我想添加一條規則,以便不重定向特定目標 IP 的流量(例如:facebook.com)

在Google上找不到。預先感謝 !

我注意到您提供的範例目標 IP 實際上不是 IP 地址(這是iptables交易),而是完全限定的域名。但是,假設您確實引用了一個 IP 地址,並且假設它是198.51.100.1 (根據我們對範例 IP 地址的建議)。

只有一個地址可以豁免,您可以將其作為明確豁免添加到規則中:

iptables -t nat -A PREROUTING -p tcp --dport 80 \! -d 198.51.100.1 -j REDIRECT --to-port 1000

請注意使用反斜杠來保護否定 ( !) 免受 shell 的影響。如果您有更多地址要豁免,則編寫與這些地址匹配的顯式規則並使用無害的決定性目標完成處理會更簡單,然後在最後留下一條全能規則來處理其他所有內容:

iptables -t nat -A PREROUTING -p tcp --dport 80 -d 192.0.2.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 198.51.100.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 203.0.113.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 1000

請注意,與以往一樣,順序在 iptables 規則中很重要。這些在你的鏈條中的位置很重要,你需要小心把它做好。

編輯:您詢問將規則與目標匹配的數據包會發生什麼ACCEPT,即豁免數據包。一旦它們匹配ACCEPT,它們就會掉出nat 鏈,並且在該鏈中PREROUTING不會對它們進行進一步的處理。他們最終的命運將取決於他們隨後要經過的其他鏈中的規則和政策。

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