Тор прокси сервер

«Прокси сервер отказывается принимать соединения» — Что делать? Это очень распространенная ошибка, возникающая в комплекте с браузером tor или в обычной версии tor, которая помогает сделать ваш трафик анонимным. После этой ошибки вы больше не можете открывать какие-либо сайты с помощью tor, и это снижает производительность программного обеспечения. К счастью, есть очень простое решение этой ошибки «Прокси-сервер отказывает в соединении», и метод этого решения лежит в небольшом конфигурационном файле программного обеспечения. Но начнем с более простого способа

Решение 1. Отключите антивирус или переустановите Tor Browser

Часто это может быть вызвано тем, что у вас запущен антивирус или вы неправильно установили Tor. Вот что вы можете сделать:
— Отключите все свои антивирусы и полностью закройте (используйте диспетчер задач и убедитесь, что ничего не работает для него) и снова откройте его
— Удалите Tor и переустановите его, следуя этому браузеру Tor (прокрутите вниз и следуйте инструкциям для вашей операционной системы)

Решение 2. Исправления проблем с портом подключения

Вам понадобится текстовый редактор (мы использовали Sublime Text 3), чтобы применить этот патч, и после выполнения шагов, упомянутых в этой статье, вы сможете решить эту проблему с просмотром. На самом деле эта проблема возникает из-за неправильной настройки порта для пакетов браузера tor или обычного программного обеспечения tor, которые помогают вам анонимно посещать заблокированные веб-сайты.
1 — Перейдите в каталог tor и найдите этот файл » torcc «, если у вас есть пакет браузера tor, вы можете найти его в папке с именем Data >> Tor . Но поиск этого файла в общем каталоге tor более перспективен.
2 — Просто щелкните правой кнопкой мыши файл и отредактируйте его с помощью любого текстового редактора. В этом файле будет два значения SocksPort и ControlPort, проблема здесь. Если у вас нет записи SocksPort или ControlPort, создайте ее и присвойте значения, как показано ниже:

Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных уровнях с целью построения «модели» пользователя, которая позже против него же и может быть использована (или могла бы). Поэтому не удивительно, что все большее количество активных пользователей Интернета становятся уверены в необходимости механизмов проксирования и анонимизации. В связи с этим появляется все больше новых VPN-клиентов, но, как показывает практика, далеко не всем из них по-настоящему можно доверять: то не все работает из коробки, то анонимизируется только HTTP-трафик, то качество реализации хромает, а то и вовсе разработчики грешат сливанием данных о своих пользователях.
В этой статье мы попробуем собрать из ряда программных компонентов собственный инструмент с UI, который бы позволил полностью анонимизировать трафик локальной системы и не допустить утечек по «прослушиваемым» каналам ни на одном из этапов работы.
Главной нашей целью будет «сборка» надежной утилиты из готовых инструментов. Очевидно, что идея создания с нуля качественного инструмента за разумный срок чревата ошибками, а поэтому бытрее и надежнее будет выбрать готовые компоненты, а затем правильно их связать!
Что должен уметь инструмент?

  1. Перенаправлять весь трафик целевой системы на промежуточные узлы (желательно несколько) для надежной маскировки источника
  2. Отслеживать возможные нарушения анонимности, исправлять их и сообщать о них с помощью UI уведомлений

Выбранные компоненты для создания инструмента:

  • tor
  • iptables
  • python3
  • systemd

Перемешав все компоненты в оболочке под названием «Linux» мы определенно сможем получить что-то стоящее, что поможет достигнуть итоговой цели.

Компонент №1: Tor

Именно вокруг этого компонента будет построена вся остальная инфраструктура инструмента. Tor предоставляет механизм, который находится в составе любого VPN-клиента — механизм заворачивания трафика через промежуточные анонимные для внешнего наблюдателя узлы (в стандартной конфигурации таких узла 3).
По умолчанию клиент Tor из стандартных пакетных репозиториев после установки начинает слушать порт 9050, принимающий любого клиента, «умеющего» socks. Проблема заключается в том, что помимо socks-трафика в нашей системе может быть куча другого трафика от приложений, не работающих по этому протоколу. В связи с этим прежде всего в пределах локальной системы придется прорубить окно в сеть Tor для любого нового сетевого соединения. Делается это достаточно просто с помощью поднятия transparent proxy в конфигурации torrc:
/etc/tor/torrc … TransPort 9040 # а это нам еще понадобится в дальнейшем для автоматизации из python ControlPort 9051 …
Отдельного внимания заслуживает UDP трафик. Дело в том, что в основе принципа луковой маршрутизации лежит концепция «соединения» (stream), существующего, как известно, только в TCP. Отправив через Tor UDP-пакет, целевая система не сможет получить на него ответ, так как ответный пакет не найдет обратной дороги. Но несмотря на эту особенность, у нас остается возможность анонимизировать DNS запросы, которые, как известно осуществляются по UDP, а заодно и включить .onion резолв:
/etc/tor/torrc … AutomapHostsOnResolve 1 DNSPort 53 …
На этом доступ в Tor открыт в пределах loopback’а.

Компонент №2: Iptables

Так как наша задача заключается в сокрытии истинного источника трафика от внешнего наблюдателя в пределах всей системы, а окно в Tor уже открыто, осталось только завернуть весь трафик в это окно. Поможет нам в этом системный файрвол, находящийся в комплекте с ядром Linux:
# заворачиваем tcp iptables -t nat -A OUTPUT -p tcp —syn -j REDIRECT —to-ports $TRANS_PORT # заворачиваем частично udp (dns only) iptables -t nat -A OUTPUT -p udp —dport 53 -j REDIRECT —to-ports 53 iptables -A OUTPUT -m state —state ESTABLISHED,RELATED -j ACCEPT # запрещаем всему остальному трафику покидать систему iptables -A OUTPUT -j REJECT ip6tables -A OUTPUT -j REJECT

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

Компонент №3: python + Desktop Evironment UI

Каждый раз производить ручную конфигурацию из консоли (даже если это будет запуск bash-скрипта) будет достаточно утомительно, поэтому самое время приступить к написанию небольшой утилиты, помогающей нам конкретно в следующем:

  1. Автоматическая установка конфигурации
  2. Смена своего identity в пределах Tor в любой момент
  3. Отслеживание целостности правил iptables и их перезапись при нарушении
  4. Отслеживание текущего identity (IP)
  5. Уведомление о двух предыдущих пунктах с помощью уведомлений графическогой оболочки

При первом запуске утилита самостоятельно скачает все необходимые компоненты, а при последующих запусках будет конфигурировать Tor в связке с iptables, как описано выше.
При желании смены своего внешнего IP адреса, будет происходить взаимодействие со служебным портом Tor — 9051, открытым в самом начале для автоматизации смены IP:
with Controller.from_port(port = 9051) as controller: controller.authenticate() controller.signal(Signal.NEWNYM)
Отслеживание целостности можно реализовать достаточно банально (делаем же на коленке) с помощью периодического чтения структуры правил iptables и проверки их SHA256-суммы:
def rulesOk(self): RULES_CHECKSUM_CMD = «{ iptables-save && ip6tables-save; } | sed s/\-\-uid\-owner\\\\s\\\\+\\\\s//g | grep -viE ‘^#’ | grep -viE ‘^\:’ | sort | uniq | sha256sum | cut -d’ ‘ -f 1» checkSum = getoutput(RULES_CHECKSUM_CMD).strip() alright = checkSum == Strings.RULES_CHECKSUM_CORRECT_HASH if not alright: rules = getoutput(‘iptables-save && ip6tables-save’) self.lastSnapshotFileName = «/tmp/broken-rules-%s.log» % time.strftime(«%d-%m-%Y_%I-%M-%S») open(self.lastSnapshotFileName, «w»).write(rules) return False else: return True
Также при обнаружении несостыковок с ожидаемой контрольной суммой можно сохранить дамп правил iptables в /tmp/broken-rules-%d-%m-%Y_%I-%M-%S.log для дальнейших разбирательств. Если окажется, что rulesOk() == False то будет инициирована перезапись таблицы правил iptables.
Наблюдение за текущим IP будет происходить с помощью постоянного обращения на какой-нибудь внешний ресурс, предоставляющий IP-клиента — например, ident.me.
Ну, и напоследок задействуем DE UI для сообщения о проблемах с правилами либо о смене IP. Каждое графическое окружение в каком-то роде уникально, особенно когда речь идет об использовании UI из процесса-демона, но все же на большинстве Linux’ов такой bash-код, вызываемый из Python будет успешно показывать уведомления:
# root UI eval «export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)» export DISPLAY=:0 for USR in `ls /home && echo root` do # ubuntu gnome + root UI export XAUTHORITY=/home/$USR/.Xauthority notify-send -u {0} ‘{1}’ ‘{2}’ # ubuntu parallels for UID in `ls /run/user/` do su $USR -c «DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus notify-send -u {0} ‘{1}’ ‘{2}'» done done
Объединив все это в 200-строчном Python скрипте, получаем то, чего добивались. Вот, например, как будет выглядеть уведомление о том, что наш identity обновился:
А вот так будет выглядеть уведомление о том, что была нарушена целостность правил Iptables с указанием выгруженного дампа, содержащего нарушение:

Компонент №4: systemd

Ну и напоследок нам определенно хотелось бы произвести единоразовую настройку и не думать в дальнейшем о своей безопасности, а потому на помощь приходят автозапуск и сервисы. В Linux есть несколько стандартных подсистем управления демонами: systemd, sysV, init. В нашем случае выбор пал на systemd из-за гибкости его настройки.
Предположим, что написанный в предыдущем шаге python-скрипт называется «toroxy» и лежит в /usr/bin/, тогда его автозапуск и последующий мониторинг с определенной гибкостью управления демоном будет таким:
Description=Toroxy After=network.target StartLimitIntervalSec=0 Type=simple Restart=always RestartSec=1 User=root # service toroxy start ExecStart=/usr/bin/toroxy service # service toroxy stop ExecStop=/usr/bin/toroxy stop # service toroxy reload ExecReload=/usr/bin/toroxy switch # запускаемся на init 3, чтобы с пользовательского уровня до загрузки UI трафик уже шел через Tor WantedBy=multi-user.target
Почти все готово для «промышленной» эксплуатации. Последний штрих, который хотелось бы внести в инструмент для дополнительной надежности — это автоматическая инициализация правил iptables при запуске системы (как известно, правила iptables при перезагрузке сбрасываются) с помощью iptables-persistent:
iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6 netfilter-persistent start && netfilter-persistent save

Заключение

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

Многие пользователи сети интернет не раз сталкивались с региональными блокировками веб-ресурсов различными провайдерами или регулирующими организациями. Зачастую, для обхода таких блокировок достаточно подменить свой реальный IP-адрес, перенаправив свой трафик через SOCKS-прокси, либо используя такой программный инструмент, как Tor.

Что такое Tor

Tor (сокр. от английского The onion router) – свободное программное обеспечение с открытым исходным кодом, позволяющее пользователям устанавливать анонимное и защищенное соединение через виртуальный туннель с несколькими узлами. Tor является эффективным инструментом для обхода региональных блокировок доступа к веб-ресурсам (например, к определенным веб-страницам или торренту), а также сокрытия своего реального IP-адреса от злоумышленников.

Настройка Tor проста и не требует от пользователя никаких специальных навыков. Пользователю достаточно скачать и установить пакет Tor, в состав которого входит специально настроенный браузер. Tor автоматически запускается и организует защищенный канал при запуске этого браузера пользователем. При этом пользователю не нужно ничего настраивать, он просто пользуется этим браузером для серфинга, не беспокоясь о компрометации своих персональных данных и своего IP-адреса.

Мы не будем подробно описывать работу Tor – всю необходимую и подробную информацию можно получить на официальном сайте проекта. Упомянем лишь плюсы и минусы данного программного обеспечения.

Плюсы:

— Tor бесплатен и имеет открытый код, что является своего рода косвенной гарантией отсутствия каких-либо лазеек или бэкдоров;

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

— Tor очень прост в установке и настройке.

Минусы:

— Относительно низкая скорость;

— Нельзя скрыть факт использования Tor обычными настройками ПО, соответственно многие узлы могут распознать, что Вы используете Tor и запретить Вам доступ;

— Существует вероятность, что узлы Tor прослушиваются заинтересованными организациями. В частности, Tor изначально разрабатывался в ВМС США, что само по себе наводит на некоторые подозрения. Несмотря на то, что исходный код является открытым и в нем нет бэкдоров, никто не может гарантировать добросовестность выходных узлов сети Tor;

— Tor не поддерживает UDP, то есть не позволяет использовать VoIP и торренты без риска утечек.

Таким образом, только лишь одного Tor недостаточно для организации по-настоящему анонимного и безопасного для конечного пользователя доступа. В данном случае, предпочтительнее использовать SOCKS5-прокси (желательно в сочетании с VPN), который не имеет вышеперечисленных недостатков.

А можно ли использовать связку Tor + Socks-прокси для повышения анонимности?

Такая возможность существует, однако она, по сути, не предоставляет пользователям особых преимуществ. Tor позволяет настроить проброс трафика через SOCKS-прокси, однако такой проброс осуществляется до выхода трафика в сеть Tor, то есть таким образом пользователь может только скрыть факт использования Tor от своего провайдера, что не имеет практической ценности. Гораздо эффективнее использовать связку VPN+Socks-прокси, поскольку Вы будете уверены в надежности выходного узла такой связки в отличие от выходного узла Tor.

К сожалению, актуальные версии Tor для Windows не позволяют пользователям использовать SOCKS-прокси на выходе сети Tor, поэтому пользователи не могут использовать связку Tor+Socks-прокси для сокрытия факта использования Tor для конечного узла.

Выводы

Сам по себе Tor обеспечивает достаточно высокий уровень надежности и анонимности, однако существуют некоторые сомнения по поводу надежности выходного узла. Использование связки Tor+Socks-прокси не несет особой практической ценности для пользователей, поэтому использование такой связки нецелесообразно. Достаточного уровня анонимности можно добиться при использовании связки Socks5-прокси + VPN, поскольку пользователь может быть уверен в надежности используемого VPN-сервера. Кроме того, такая реализация, в отличие от Tor, не режет пропускную способность канала. Подробные инструкции по настройке Socks-прокси+VPN можно найти в соответствующем разделе на нашем веб-сайте.

Proxy Browser – это браузер для Android, который позволяет получать доступ к заблокированным сайтам, обходя ограничения. Эта функция может быть очень полезна, например, в общественных заведениях, на работе и даже в учебных заведениях с беспроводными сетями, где в большинстве случаев ограничивается доступ к определенным сайтам.

Поддерживает Facebook и YouTube на 100%.

Proxy Browser также позволяет получать доступ к веб-страницам с географическими ограничениями. Не можете посмотреть видео в Интернете в вашей стране? Это приложение для вас.

Характеристики

  • Доступ к заблокированным сайтам.
  • Скройте ваш настоящий IP-адрес. Обеспечьте вашу анонимность в сети.
  • Изменяемые куки.
  • Удаляйте историю посещения веб-страниц мгновенно.
  • Переключайтесь между различными клиентами браузеров.
  • Отключение файрволов.
  • Огромное количество прокси-серверов.

Просматривать веб-страницы, используя прокси-серверы, это одно из решений для доступа к заблокированным сайтам. Скачайте Proxy Browser для Android и получите полную свободу при просмотре веб-страниц.