Iptables

Ubuntu 路由器/網關上的 Squid TPROXY

  • October 4, 2016

好的,所以我有一個 Ubuntu 盒子作為我的 LAN 的路由器/網關;帶 3 個網卡,2 個用於 WAN,1 個用於本地網路。它被設置為在需要時在 WAN 和故障轉移之間進行負載平衡。哦,我不得不在等式中加入魷魚。目前設置為 nat 將 http/s 埠重定向到 squid 埠,如下所示:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3126
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3127

我相信它工作正常……但我不想停在那裡。我想嘗試 TPROXY,但我似乎無法讓它工作。我在 access.log 中沒有流量,並且客戶端正在超時訪問站點。

三角路由是不可能的,我認為我不應該使用網橋?所以下面是我的嘗試:

iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 80 -j TPROXY --on-ip 0.0.0.0 --on-port 3126 --tproxy-mark 0x1/0x1
iptables -t mangle -A PREROUTING -i eth1 -p tcp --dport 443 -j TPROXY --on-ip 0.0.0.0 --on-port 3127 --tproxy-mark 0x1/0x1

# this is supposed to mark wan traffic going back to lan?
iptables -t mangle -A PREROUTING -i eth2 -p tcp -d 192.168.1.0/24 -j MARK --set-mark 0x1/0x1
iptables -t mangle -A PREROUTING -i eth3 -p tcp -d 192.168.1.0/24 -j MARK --set-mark 0x1/0x1

ip rule add fwmark 0x1/0x1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

好吧,我不確定我的設置是否可以使用 TPROXY。如果這不可能,我將不得不暫時放棄。但如果是的話,有人會知道怎麼做嗎?

如果您的網路拓撲使用位於路由器內部的 squid 盒,它將數據包傳遞給 Squid。然後,您將需要顯式添加一些額外的配置。 比如什麼配置?

謝謝。

我想我得到了它 - 我在 wiki 中使用了轉移鏈,但明確定義了網際網路連接的 2 個介面:)

對於那些感興趣的人,這是我的最終路由/防火牆規則:點擊這裡

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