私の現在のセットアップは、次の要素で構成されています。
eth0
はゲートウェイへのアクセスであり、eth1
はローカルネットワーク(192.128.2.0/24)を管理しますeth1
)HTTPおよびHTTPSプロキシとして192.168.2.1:4000を使用するようにeth1
のクライアントを設定すると、すべてうまくいきます。しかし、iptablesを使用してこのリダイレクトプロセスを自動化しようとする私の試みは、これまですべて失敗しています。これが私が行った最後の試みです:
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --dport 80,443 -j TPROXY --on-ip 0.0.0.0 --on-port 4000 --tproxy-mark 1/1
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -t mangle -A PREROUTING -i eth0 -d 192.168.1.0/24 -j ACCEPT
iptables -t mangle -A PREROUTING -i eth0 -m multiport --sport 80,443 -j MARK --set-mark 1/1
私の理解は次のとおりです。
次に、ip
を使用して、iptables
で設定したマークに基づいて、ポリシールーティングのルートを定義しました。
ip rule add fwmark 1/1 table 1
ip route add local 0.0.0.0/0 dev lo table 1
そしてもちろん、それは機能せず、理由もわかりません...多分私のプロキシサーバーはTPROXY
機能をサポートしていないので、MARK
ルールのみを使用する必要があります。 。しかし、それでも私はここで少し迷っています。
まず最初に、こちらをご覧ください。 インターセプトキャッシングの概念 透過プロキシを使用することの利点、欠点、または起こり得る問題についてのアイデアがあります。
次に、HTTPSまたはsslトラフィックは、通常の透過プロキシでは機能しません。 ssl-bump と呼ばれる特別な設定が必要です。これには、プライバシーに関して考慮すべき独自の問題があります。
第三、
eth0を外部およびeth1を内部(lan、192.168.1.0/24)インターフェースと仮定して、httpトラフィックをリダイレクトするための2つのサンプルiptablesルールを次に示します。
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
これには、Tproxyを使用しません。