LINUX.ORG.RU

torxy — прозрачный HTTP/HTTPS-прокси, позволяющий перенаправлять трафик на выбранные домены через TOR-сервер

 , , ,


3

3

Представляю вниманию первую публичную версию своей разработки - прозрачный HTTP/HTTPS-прокси, позволяющий перенаправлять трафик на выбранные домены через TOR-сервер.

Проект создавался для повышения комфорта доступа из домашней локальной сети к сайтам, который может быть ограничен по разным причинам. Например, магазин homedepot.com недоступен по географическому признаку.

Возможности:

  • Работа исключительно в прозрачном режиме, настройка требуется только на роутере;
  • Для HTTPS название домена извлекается из SNI, если таковой имеется;
  • Неопознанный (не HTTP и не HTTPS) входящий TCP-трафик обрабатывается «как есть»;
  • В правилах редиректа в TOR поддерживаются поддомены;
  • Список правил формируется пользователем самостоятельно;

>>> Страница проекта

Я обычный пользователь линуксов и полный нубасий в каком-либо программировании, даже на баше не умею, но отрадно видеть когда ЛОРовцы пилят что-то полезное и для людей, я правда ещё не разбирался как вашей поделкой пользоваться, но чую что штука нужная, по крайней мере для меня, поэтому ОГРОМНОЕ СПАСИБО за то, что вы делаете! Продолжайте в том же духе, всех благ и удачи вам!

anonymous ()

Прошло уже 10 лет а торовских узлов больше не стало, как было в районе 2000 так и осталось. А нагрузка на сеть растёт. Как бы не загнулся.

anonymous ()

перенаправлять трафик на выбранные домены через TOR-сервер.

forward-socks5t   /               127.0.0.1:1080 .
forward-socks5t   .onion/               127.0.0.1:9050 .
forward-socks5t   .homedepot.com/               127.0.0.1:9050 .

# конфиг privoxy
# можно также любые домены направлять через tor

Чем это лучше privoxy?

hakavlad ()
Последнее исправление: hakavlad (всего исправлений: 1)
Ответ на: комментарий от anonymous

как было в районе 2000 так и осталось. А нагрузка на сеть растёт

  1. Их достаточно.
  2. По сравнению со старыми временами скорость выросла, скорость хорошая.
  3. Tor никуда не денется.
hakavlad ()
Ответ на: комментарий от hakavlad

А я припоминаю что тор раньше работал по-шустрее. Недавно загрузился под винду, а так как впн не настроен решил тор накатить чтоб чисто на торрент зайти. В итоге около 3-х минут ломился (предполагаю возникла очередь). Раньше такого не было. Я тоже верю что тор будет жить, но сейчас его как халявный набор айпишников пользует любой васян, в т.ч. и я. Сложность только возникает когда сервисы cloudflare кидают капча челлендж. Альтернатива купить ротатинг-прокси, но вот тор, халявен и от этого загружен. Вот бы какой нить миллиардер в ноды задонатил может быть мир изменился.

anonymous ()
Ответ на: комментарий от vimusov

Подключаюсь. Раньше HTTPS прокси тоже были и SOCKS4/5. В чём непригодность проксей? Ботнетов конечно стало дохера. Но раньше любой васян брутил через общественные прокси. Почему прокси стали непригодны?

anonymous ()

А вообще мне не особо понятно, чем отличие твоей разработки от проксирования просто через socks5 прокси тор, хоть через настройки программы, хоть через любой другой проксификатор. И https это разве не с подменой сертификатов? Почему именно https? Почему нет более удобного socks5?

Riniko ★★ ()
Ответ на: комментарий от Meyer

Подкинь идею кардерам, будут через товарища майора ворованные карточки на впсы пробивать и толкать в даркнете доступы как «100% левые серваки для трушных хакер0в».. хотя погодите, где-то я это уже видел ;)

mazdai ★★ ()
Последнее исправление: mazdai (всего исправлений: 1)
Ответ на: комментарий от hakavlad

Это еще почему?

Потому что на одном IP могут размещаться несколько разных сайтов. Отличить которые друг от друга без извлечения SNI возможным не представляется.

vimusov ()
Ответ на: комментарий от anonymous

Почему прокси стали непригодны?

Публичные прокси никуда не делись. Только вот геморроя с ними меньше не стало - отслеживать доступность и вовремя переключаться, выбирать наиболее быстрые; надеяться, их владелец не хранит логи, когда кто куда ходил; и всё прочее.

vimusov ()
Ответ на: комментарий от bernd

чем отличается от плагина foxyproxy

Покрывает не один единственный браузер на одном единственном хосте, а всю локалку сразу и любой софт, в том числе вообще не умеющий или не желающий в прокси.

vimusov ()
Ответ на: комментарий от Riniko

отличие твоей разработки от проксирования просто через socks5 прокси тор, хоть через настройки программы, хоть через любой другой проксификатор

Работа в прозрачном режиме. В локалке ничего нигде перенастраивать не требуется.

И https это разве не с подменой сертификатов?

Без подмены, потому как SNI доступен в открытом виде в Client Hello, чем я как раз невозбранно цинично воспользовался. Главное чтобы клиент его вообще присылал. С HTTP/2 и HTTP/3 такое уже не прокатит, но это совсем другая история.

Почему именно https? Почему нет более удобного socks5?

Потому что если сделать конфигурируемый правилами не HTTPS-прокси, а просто SOCKS5-прокси, то куда направлять трафик на хосты, которые в TOR заворачивать не требуется? Это первое. И второе - опять же, даже тогда всё равно придётся обрабатывать SNI, только уже выковыривая его сперва из SOCKS. А раз придётся, тогда зачем вообще SOCKS, если можно сразу сделать нормальный HTTP/HTTPS-прокси?

vimusov ()
Ответ на: комментарий от amd_amd

невозможно пользоваться - капча долбит…

Это уже вопросы к серверу TOR. Его настройка выходит за рамки моего проекта, поскольку на эту тему впору книги писать - столько там тонкостей, особенностей и подводных граблей.

vimusov ()
Ответ на: комментарий от pon4ik

А чем это лучше встроенного socks5 прокси?

Настраиваемостью. В TOR заворачивается только то, что реально нужно. Иначе можно было бы вообще не заниматься никакими прокси и TOR-ами, а тупо бахнуть вообще весь трафик в VPN.

vimusov ()
Ответ на: комментарий от anonymous

torsocks

Работает только на одном хосте, только с отдельными программами и только если в них есть поддержка SOCKS-прокси. И да, опять же - никаких настраиваемых правил по доменам.

openvpn

Эт можно. Только юзать потом дико неудобно.

vimusov ()
Ответ на: комментарий от vimusov

Отличить которые друг от друга без извлечения SNI возможным не представляется.

Пользуюсь privoxy, проблем никаких нет, все открывается. Что я делаю нет так?

anonymous ()
Ответ на: комментарий от vimusov

на одном IP могут размещаться несколько разных сайтов. Отличить которые друг от друга без извлечения SNI возможным не представляется.

Можешь ли привести воспроизводимый пример, когда privoxy не справится? Какие домены я должен открыть, чтоб privoxy споткнулось о SNI?

anonymous ()
Ответ на: комментарий от vimusov

никаких настраиваемых правил по доменам.

Правила для доменов нужны обычно в браузерах. В них это настраивается с помощью proxy.pac-файла

Работает … с отдельными программами и только если в них есть поддержка SOCKS-прокси.

torify

однако, объединить всё в одной программе идея хорошая.

anonymous ()
Ответ на: комментарий от Meyer

За экзитноды стали сажать на бутылку не только в РФ.

Сажание на бутылку - чисто украинские словосочетание и развлечение. Сразу запахло немытыми шаровароми. Опять кастрюли зеркалют свои укрореалии на Россию

anonymous ()
Ответ на: комментарий от anonymous

Можешь ли привести воспроизводимый пример, когда privoxy не справится?

Стал искать примеры, поставил privoxy и обнаружил, что оно в принципе не умеет в прозрачный режим для HTTPS. Так что примеров не будет, к сожалению - самому интересно было затестить.

vimusov ()
Ответ на: комментарий от anonymous

В них это настраивается с помощью proxy.pac-файла

Раньше именно так и делал. Потом задрало терпеть, что доступ к сайтам есть только из одного конкретного браузера с одной конкретной машины. Что на каждой машине под каждый браузер нужно настраиваться. Что конфиги нужно либо синхронизировать, либо выкладывать куда-то на общедоступный в локалке HTTP-сервер… Короче, слишком много геморроя, боли и страданий для такой простой задачи. Прозрачный прокси на роутере несравнимо удобнее - поставил, настроил и забыл про него, про хосты в сети и целый зоопарк подключенных девайсов.

torify

И как это запустить в iOS и iPadOS?

vimusov ()
Ответ на: комментарий от vimusov

Прошу еще раз объяснить:

Работаю с привокси, проблем не видел. Все https как надо проксируются в соответствии с конфигом. Почему я не замечаю проблем?

anonymous ()

Если кому-то интересно: я делал аналогичное по сути ПО, но работающее через DNS.

https://bitbucket.org/anticensority/antizapret-vpn-container/src/master/

Нестандартный способ маршрутизации

В отличие от обычных VPN, осуществляющих перенаправление отдельных IP-адресов или диапазонов средствами маршрутизации ОС, VPN АнтиЗапрета использует маршрутизацию на основе доменных имен, с помощью специального DNS-сервера, созданного для этой цели.

На VPN-сервере запущен специальный DNS-резолвер, устанавливающий отображение (соответствие, маппинг) настоящего IP-адреса домена в свободный IP-адрес большой внутренней подсети, и отдающий запрашиваемому клиенту адрес из внутренней подсети.

У такого подхода есть множество преимуществ:

  • Клиенту устанавливается только один или несколько маршрутов, вместо десятков тысяч маршрутов;
  • Маршрутизируются только заблокированные домены, а не все сайты на заблокированном IP-адресе;
  • Возможность обновления списка заблокированных сайтов без переподключения клиента;
  • Корректная работа с доменами, постоянно меняющими IP-адреса, и с CDN-сервисами;
  • Корректная работа с провайдерами, блокирующими все поддомены заблокированного домена (блокировка всей DNS-зоны). Пример такого провайдера — Yota.

Но есть и минусы:

  • Необходимо использовать только DNS-сервер внутри VPN. С другими DNS-серверами работать не будет.
  • Работает только для заблокированных доменов и программ, использующих доменные имена. Для заблокированных IP-адресов необходимо использовать обычную маршрутизацию.
ValdikSS ★★★★★ ()
Ответ на: комментарий от anonymous

Как это влияет? Все сайты нормально открываются.

Для меня была и остаётся принципиально, просто критически важной способность прокси работать исключительно в прозрачном режиме. Чтобы не требовалось указывать нигде и никаких настроек.

vimusov ()
Ответ на: комментарий от vimusov

privoxy при этом работает с HTTPS в прозрачном режиме или нет?

Откуда мне знать. Жалоб нет, все проксируется без проблем. Зачем мне это знать, если всё работает?

anonymous ()
Ответ на: комментарий от vimusov

Чтобы не требовалось указывать нигде и никаких настроек.

А какие настройки могут понадобиться, кроме основных - какие домены как проксировать.

anonymous ()
Ответ на: комментарий от anonymous

Откуда мне знать. Жалоб нет, все проксируется без проблем

Ладно, спрошу иначе - в софте типа браузера адрес и порт прокси требуется указывать явно или нет? Если требуется, то это НЕ прозрачный прокси.

vimusov ()
Ответ на: комментарий от anonymous

А какие настройки могут понадобиться

Адрес и порт самого прокси. Которые потребуется указывать везде, в каждой отдельной взятой программе на каждом подключенном к сети хосте.

vimusov ()
Ответ на: комментарий от vimusov

в софте типа браузера адрес и порт прокси требуется указывать явно или нет? Если требуется, то это НЕ прозрачный прокси.

Разумеется непрозрачный. Прзрачность достигается установкой на роутер, или правкой iptables.

Ваш скрипт включает прозрачное проксирование, так что весь софт получает торифицированный доступ к доменам без указания прокси в софте?

anonymous ()