Прямой ВСЕ трафик Android через SSH туннель - PullRequest
3 голосов
/ 17 февраля 2012

Я пытаюсь полностью скрыть весь трафик на моем телефоне от поставщика услуг беспроводной связи.

Я хотел бы сделать это, направив трафик через туннель SSH на мой домашний маршрутизатор через iptables (не уверен, что онипомогите?).

Телефон рутирован и работает на CyanogenMod 7.1 (и, следовательно, поддерживает iptables).

Я посмотрел на этот вопрос , но яЯ все еще шокирован деталями.Этот вопрос как бы описывает, как это сделать для одного порта, но как я могу сделать это для каждого отдельного пакета на каждом порту?

Этот вопрос представляет как практический, так и академический интерес.Спасибо.

1 Ответ

3 голосов
/ 17 февраля 2012

Вы пробовали использовать sshtunnel ? Одного Iptables недостаточно, чтобы сделать это.

Что касается обзора того, как на самом деле это делается:

  1. Войдите на свой сервер с помощью ssh и перенаправьте HTTP-порт прокси на устройство Android. Таким образом, любой трафик, идущий на localhost:3128, будет фактически идти на удаленную машину (ваш домашний маршрутизатор).
  2. Поскольку Android не имеет глобальной настройки прокси, вы перенаправляете весь трафик, идущий на порт 80 (и 443 для HTTPS), на localhost:3128. Вот где приходит iptables:

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

Если вы хотите перенаправить и другие протоколы, вы используете прокси SOCKS с аналогичной настройкой. Чтобы перенаправить DNS, перенаправьте порт 53 через туннель и т. Д.

В общем, скрыть «весь трафик» не так просто, так что просто используйте приложение. Если вы хотите установить для этого патч Cyanogenmod, посмотрите на исходный код и измените сценарии запуска.

...