2012-02-16 12 views
3

私は自分の携帯電話のすべてのトラフィックをワイヤレスプロバイダから完全に隠そうとしています。SSHトンネルを経由してALLアンドロイドトラフィックを直接

私はSSHトンネルを通って私の家のルータにiptables経由でトラフィックを誘導することでこれをしたいと思います。

携帯電話はルートされていて、CyanogenMod 7.1を実行しています(iptables対応)。

私はthis questionを見てきましたが、私はまだ細部に不安定です。 そのような質問は、単一のポートでこれを行う方法を説明していますが、単一のポートごとに1つのパケットごとにこれを行うにはどうすればよいですか?

この質問は実用的で学問的なものです。おかげさまで

答えて

3

sshtunnelを試しましたか? iptablesだけではこれを行うには不十分です。それは実際に行うの方法の概要については

  1. sshでサーバにログインし、AndroidデバイスへのHTTPプロキシポートを転送します。したがって、localhost:3128に行くトラフィックは、実際にはリモートマシン(ホームルータ)に送られます。
  2. Androidにはグローバルプロキシ設定がないため、ポート80(HTTPSの場合は443)へのすべてのトラフィックをlocalhost:3128にリダイレクトします。あなたが同様の設定でSOCKSプロキシを使用して、あまりにも他のプロトコルをリダイレクトしたい場合は

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to localhost:3128

:iptablesのの出番です。 DNSをリダイレクトするには、トンネルなどを介してポート53をリダイレクトします。

すべてを隠すために、すべてのトラフィックを隠すのは簡単ではないので、アプリを使用してください。これを行うためにCyanogenmodにパッチを当てたい場合は、ソースを見て起動スクリプトを修正してください。

+0

これはユーザー空間で動作するアプリなので、私は持っていません。私は、起動からシャットダウンまでのすべてのパケットを暗号化したい。そのアプリでは、アプリを有効にするまで、パケットは通常通りキャリアを通過します。 – CatZilla

+0

その場合、独自のファームウェアを構築する必要があります。 sshtunnelのソースを調べ、実行しているコマンド(トンネルの設定、実行、プロキシ、リダイレクトなど)を確認し、それらを起動スクリプトに追加します。 'userspace'の部分は、プロセス全体をキックスタートするための単なるGUIです。基本的に透過的なプロキシです.iptablesはすべてのトラフィックをプロキシにリダイレクトするために使用されます。 –

+0

ところで、それは 'Auto connect'オプションを持っています。ネットワークが利用可能になるとトンネルを有効にするので、実際にアプリを手動で実行する必要はありません。 –

関連する問題