iptables - ポート 80 宛てのローカルおよび一時的な送信トラフィックをポート 8080 にリダイレクトします

iptables - ポート 80 宛てのローカルおよび一時的な送信トラフィックをポート 8080 にリダイレクトします

私は iptables にほとんど関与していないため、問題が発生しています。

私は TOR 出口リレーを設定しており、すべてのローカルおよび TOR トラフィックをポート 8080 でボックスから出るようにリダイレクトしようとしています。

現在は以下のように設定しています:

-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

しかし、これはボックスから発信されるトラフィックではなく、ルーターとして動作しているときに一時的なトラフィックをリダイレクトするだけのようです。

答え1

TOR については知識があまりないのでコメントしません。

しかし、iptablesの目的のために、ここにあります。PREROUTINGルーティングが含まれます。地元OUTPUTシステムでは、ルーティングは行われません。の代わりに/に加えてを使用する必要がありますPREROUTING

の範囲REDIRECT:

REDIRECT
このターゲットは、nat テーブル、PREROUTING および OUTPUT チェーン、およびこれらのチェーンからのみ呼び出されるユーザー定義チェーンでのみ有効です。宛先 IP を着信インターフェイスのプライマリ アドレスに変更することで、パケットをマシン自体にリダイレクトします (ローカルで生成されたパケットは、ローカルホスト アドレス (IPv4 の場合は 127.0.0.1、IPv6 の場合は ::1) にマップされます)。

それで:

iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

編集:

特定のユーザーまたはグループがリダイレクトされるのを回避するには (例: ポート 8080 のサービスで無限ループを回避する)、上記の代わりに次のようにします (有効なグループで実行されているサービスの例tor)。

iptables -t nat -N OUTPUT intercept
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j intercept
iptables -t nat -A intercept -m owner --gid-owner tor -j RETURN
iptables -t nat -A intercept -j REDIRECT --to-ports 8080

関連情報