Iptables

IP 表攔截異常

  • September 7, 2017

我有一組如下所示的 iptable 規則:

-A PREROUTING  --jump intercept-nat
-A intercept-nat --jump DNAT -s 10.10.1.0/24 ! -d 10.10.1.1/32 -p tcp -m tcp --dport 80 --to-destination 10.10.1.1:3126 -m comment --comment "intercept-nat"
-A intercept-nat --jump DNAT -s 10.10.1.0/24 ! -d 10.10.1.1/32 -p tcp -m tcp --dport 443 --to-destination 10.10.1.1:3127 -m comment --comment "intercept-nat"
-A intercept-nat --jump DNAT -s 10.1.2.0/24 ! -d 10.10.1.1/32 -p tcp -m tcp --dport 80 --to-destination 10.10.1.1:3126 -m comment --comment "intercept-nat"
-A intercept-nat --jump DNAT -s 10.1.2.0/24 ! -d 10.10.1.1/32 -p tcp -m tcp --dport 443 --to-destination 10.10.1.1:3127 -m comment --comment "intercept-nat"

它的設計目的是向 http 記憶體代理 Squid 發送 80 和 443 流量。我想在 iptables 規則中添加一些不會將 443 流量定向到特定 IP 地址的行到 10.10.1.1:3127 (squid)

案例:我有一個 websocket 伺服器,代理後面的客戶端需要連接,但 squid 不支持 websocket。所以我希望那些流量繞過 squid

我會做以下事情:

-A PREROUTING -s 10.10.1.0/24 ! -d 10.10.1.1/32 --jump intercept-nat
-A PREROUTING -s 10.1.2.0/24 ! -d 10.10.1.1/32 --jump intercept-nat
-A intercept-nat -d target-ip -p tcp -m tcp --dport 443 -j RETURN
-A intercept-nat --jump DNAT -p tcp -m tcp --dport 80 --to-destination 10.10.1.1:3126 -m comment --comment "intercept-nat"
-A intercept-nat --jump DNAT -p tcp -m tcp --dport 443 --to-destination 10.10.1.1:3127 -m comment --comment "intercept-nat"

每次數據包目的地匹配target-ip時,它將跳過其餘的攔截-nat 規則。我還稍微更改了您的規則,以使它們更具可讀性和易於更改;-)。

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