ユーザーごとのtproxy

ユーザーごとのtproxy

私のボックスにいくつかの子供保護機能(httpフィルタリング)を追加しています。

ボックスは家族全員で使用され(メンバーごとに1つのアカウント)、Squidは同じコンピュータで実行されます。

2 つの Squid インスタンスがあります。 1つはキャッシュ専用で、もう1つはsquidGuardを使用することです。

--uid-owner2つのイカインスタンスから選択するためにNATルールを使用します。

iptables -t nat -A OUTPUT -m owner --uid-owner $owner -p tcp -m tcp --dport 80 -j REDIRECT --to-ports $port

(上記のようにip6tables)

現在、私はIPv4とIPv6(かなり新しいLinuxカーネルを使用)にNATを使用していますが、Squidは「傍受」がIPv4のみをサポートしていると述べています。 IPv6も欲しい。

TPROXYを使ってみました(例:これら--uid-ownerルール)しかし、POSTROUTING(PREROUTINGの代わりに)に設定したいiptableが必要なので失敗しました。

これらのルールは次のとおりです。

iptables -t mangle -N DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129

--uid-ownerこのマングルテーブルに適切なルールを追加するにはどうすればよいですか?つまり、ポート3128または3129に転送することをどのように決定しますか?

編集する:私のNATルールが正しく機能していると返信しないでください。わかりました。 SquidのNATはIPv4のみをサポートしているため、NATを排除する必要があります。もう一度申し上げますが、NATを使用しないでください。 TPROXY、mangle、または何と呼ぶか​​は、mangle上記の規則に従います。

ベストアンサー1

--uid-ownerでは必要ありません。例のようにPREROUTINGで必要です。OUTPUT

おすすめ記事