TORトランスペアレントプロキシ - TCPリダイレクトの仕組み

TORトランスペアレントプロキシ - TCPリダイレクトの仕組み

iptables例 ルー​​ルセットに基づいてルールセットを使用しました。https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy、Linux部分、TorTorを透明プロキシに設定してローカルリダイレクト。

私はルールセットを理解したと思いましたが、私が理解していないものが1つあります。TCPセグメントは、SYNフラグが設定されたときにTorが待機するポートにのみリダイレクトされます。

たとえば、私は訪問したいと思いますhttp://www.example.com。私のブラウザはDNS要求を実行し、そのIPアドレスを取得し、そのアドレスにTCPセグメントを送信してSYNフラグを設定します。

ルールセットによると、セグメントはTorポートにリダイレクトされるため、Torはプロキシとして機能し、IPパケットをhttp://www.example.comWebサイトサーバーにルーティングし、Webサイトサーバーの応答を自分のブラウザに返します。私のブラウザは、送信元IPがサーバーのIPであり、TCPペイロードにACKフラグが設定されているパケットを受信します。

したがって、私のブラウザはwww.example.com IPアドレスに送信される次のTCPセグメントにSYNフラグを設定しなくなりました。

ただし、SYNフラグが設定されていないため、NATテーブルには対応するルールはありません。したがって、リダイレクトされた後、または出力テーブルで許可されてはいけません。

それでもすべてがうまくいきます。私が逃したものは何ですか?

ベストアンサー1

最初のパケット以降のパケット処理規則は次ACKのとおりです。

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

これは、デフォルトで確立されたセッションに属するか、関連するすべてのパケットを通過することを意味します。最初のパケットSYN(有効な応答があると仮定)の後、コンピュータからのすべての着信パケットは確立されたセッションの一部であるため、通過します。
RELATEDこのモジュールを有効にすると、「一般」セッションに複数のTCPセッションを含めることができるFTPなどのプロトコルに使用されます。)

TorへのDNSリダイレクトも設定して使用したため、ブラウザAutomapHostsOnResolve(およびその他のソフトウェア)が表示するIPアドレスは、www.example.comのIPアドレスではなく、指定した仮想アドレス範囲内のIPアドレスです。 (10.192.0.0/10)。これは正しくありません。一部のサフィックスだけがローカルスコープ(デフォルト.exit)にマップされます.onion

おすすめ記事