Raspberry PiにprivoxyとSocksプロキシソフトウェアをインストールしました。
すべてのトラフィックをREDSOCKS_FILTERチェーンにリダイレクトしたいと思います。ポート80のすべてのTCPプロトコルトラフィックはprivoxyを通過し、REDSOCKS_FILTERチェーンに到達します。 REDSOCKS_FILTERチェーンから一部のローカルIPアドレスを削除し、最後に処理されたトラフィックがソックスプロキシソフトウェアに移動します。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118
iptables -t nat -A OUTPUT -p tcp --dport 8118 -j REDSOCKS_FILTER
iptables -t nat -A PREROUTING -p tcp -j REDSOCKS_FILTER
このaseを作成しましたが、privoxyのポート80を通過するトラフィックはREDSOCKS_FILTERチェーンに到達できません。しかし、私が入力すると
iptables -t nat -A OUTPUT -p tcp --dport 8118 -j REDSOCKS_FILTER
テストした結果、うまくいかないようですが、結果はまだ同じです。何が間違っていたのか混乱しています。
答え1
私はREDSOCKS_FILTER
それがfilter
テーブルではiptables
なくnat
テーブルにあると仮定していますか? TCP / IPドライバスタック内の異なる場所で異なるテーブルが処理されるため、あるテーブルから別のテーブルに移動できません。
NAT テーブルの PREROUTING および OUTPUT チェーンでリダイレクトされているため、対応するfilter
INPUT テーブルと OUTPUT テーブルでパケットを処理するときに、これらの変更はすでに適用されています。したがって、次のようなものが必要です。
iptables -t filter -A INPUT -p tcp --dport 8118 -j REDSOCKS_FILTER
iptables -t filter -A OUTPUT -p tcp --dport 8118 -j REDSOCKS_FILTER
filter
これは基本テーブルなので、このオプションは省略できます-t filter
。
さまざまなNetfilterテーブル間のパケットフロー図が役に立ちます。
https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
ブリッジングではないため、実行するすべての操作は、iptables
このイメージの緑色の「ネットワークレイヤー」内で発生します。