iptables
例 ルールセットに基づいてルールセットを使用しました。https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy、Linux部分、Tor
Torを透明プロキシに設定してローカルリダイレクト。
私はルールセットを理解したと思いましたが、私が理解していないものが1つあります。TCPセグメントは、SYNフラグが設定されたときにTorが待機するポートにのみリダイレクトされます。
たとえば、私は訪問したいと思いますhttp://www.example.com
。私のブラウザはDNS要求を実行し、そのIPアドレスを取得し、そのアドレスにTCPセグメントを送信してSYNフラグを設定します。
ルールセットによると、セグメントはTorポートにリダイレクトされるため、Torはプロキシとして機能し、IPパケットをhttp://www.example.com
Webサイトサーバーにルーティングし、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
。