Какой порт использует тор браузер
Когда Tor и фильтрующий прокси уже установлены пора настроить нужные сетевые приложения для работы с Tor.
Напомним, что сам факт установки Tor не анонимизирует сетевые соединения компьютера. Приложение, в простейшем случае это браузер, необходимо настроить на работу с Tor.
В принципе подключить к Tor можно любые сетевые приложения, работающие по транспортному протоколу TCP. Это дает возможность усиления анонимности их использования. Процесс называют "торификацией" приложений. Приложения, работающие по транспортному протоколу UDP в настоящее время не торифицируются (в планах разработчиков переход на UDP в недалеком будущем). Системы IP-телефонии (Skype и др.), помимо использования UDP, используют специфичный протокол VoIP. VoIP анонимизировать через Tor можно, но процесс весьма непростой и мы этим заниматься не будем.
Для взаимодействия сетевых процессов в пределах одного компьютера используется специальный внутренний IP-адрес 127.0.0.1. Когда программа посылает данные по IP-адресу 127.0.0.1, то данные не передаются по сети, а остаются в пределах данного компьютера.
Вместо IP-адреса 127.0.0.1 можно использовать значение "localhost", оно всегда обозначает, что соединяться следует с тем же компьютером, на котором запущено приложение.
Таким образом, алгоритм торификации приложения заключается в поиске и установке его настроек для работы с внутренним прокси-сервером (Tor, Vidalia и Polipo) по адресу localhost.
В настройках фильтрующего прокси Polipo (файл polipo.conf) указаны параметры прокси-сервера:
proxyAddress = "127.0.0.1"
proxyPort = 8118
а также его параметры по протоколу SOCKS:
socksParentProxy = "localhost:9050"
socksProxyType = socks5
Итак Tor внутри компьютера работает по адресу 127.0.0.1 и через порт 8118
Для торификации приложения необходимо прописать данные параметры в его настройках (Сеть-прокси):
- адрес прокси 127.0.0.1 (или localhost)
- порт 8118
- по протоколу SOCKS адрес тот же, а порт 9050
- тип протокола SOCKS - socks5
Вот так это выглядит, например, в браузере FirefoxPortable:
В случае использования фильтрующего прокси Privoxy следует поступить аналогично.
Если у вас перед инсталляцией пакета Vidalia Bundle был установлен браузер Firefox, то его торификация произойдёт автоматически после запуска плагина TorButton. Другие браузеры для работы с Tor придётся торифицировать.
Все прочие программы, умеющие работать с HTTP прокси (браузеры, FTP-клиенты, интернет-пейджеры и т. д.), настраиваются на работу с Tor таким же образом. Но в некоторых приложениях приходится выбирать между протоколами http (https, ssl, ftp и др.) и socks. Чтобы научить приложение работать с socks-протоколами их нужно "соксифицировать", для чего требуется дополнительно специальныя программа - соксификатор.
Не рекомендуется использовать через сеть Tor "качалки" и BitTorrent. Во-первых, потому, что сеть Tor сравнительно медленная, по причине задержки на промежуточных серверах. Во-вторых, анонимизировать процесс закачки в большинстве случаев просто бессмысленно. Например, ну что из того, если кто-то узнает, что вы скачали неприличный фильм или "крамольную" книгу.
Сложнее обстоит дело с анонимной отправкой почты. Дело в том, что почтовые клиенты отправляют почту по протоколу SMTP, а большинство почтовых серверов работает по этому протоколу через порт 25. Но порт 25 в сети Tor закрыт. Что делать?
Теоретически тут возможны два варианта решения проблемы:
1. Самый очевидный. Настроить браузер на работу через Tor и воспользоваться веб-интерфейсом для отправки и получения анонимной почты. Т.е. делать всё через браузер.
2. Искать для своего анонимного ящика почтовый сервер, который работает с нестандартным портом. (Например, Gmail использует нестандартный порт 587) И соответственно настраивать почтового клиента.
Для анонимной почты можно ещё воспользоваться римейлерами. (Римейлер – это сервис, пропускающий письмо через цепочку серверов, и заменяющий IP отправителя своими.) Но сервисы, работающих под видом римейлеров не всегда анонимны, и, кроме того, римейлеры безбожно уродуют кириллические кодировки, вплоть до абсолютной нечитаемости. Я бы этот способ не посоветовал.
Разумеется, прежде чем действительно отправлять анонимное письмо нужно проверить корректность настроек, отписавшись на какой-либо свой ящик.
Дополнительная информация по анонимности и настройкам браузеров
Когда у пользователей возникает необходимость скрыть свои личные данные и пользоваться Интернет анонимно, то закономерно, что появляются и ресурсы, по тем или иным причинам заинтересованные в раскрытии этой анонимности. (Такие вот "Единство и борьба противоположностей".)
Плагины - дополнения, устанавливаемые браузером для просмотра некоторых страниц. Многие плагины угрожают анонимности, посылая информацию в обход прокси-серверам (следовательно и в обход цепочки Tor). Например, Java, Flash, ActiveX, RealPlayer, Quicktime, Adobe PDF являются потенциально опасными для анонимности. Отключение плагинов может привести к неполному или искажённому отображению страниц. Однако всё равно рекомендуется отключать их при использовании Tor. (Анонимность требует жертв.)
Скрипты встраиваются непосредственно в исходный код страниц для увеличения их функциональности и исполняются браузером при получении.
Многие ошибочно полагают, что JavaScript - это то же самое, что и Java, лишь потому, что эти языки имеют схожие названия. На самом деле - это два совершенно различных языка, с разными задачами. Java язык программирования для приложений, которые вполне способны раскрыть анонимность. На языке JavaScript пишутся скрипты (сценарии), которые вставляются в страницы web-сайтов и выполняются в браузере пользователя. Он менее опасен для анонимности. Но помимо полезных функций, скрипты вполне способны при соответствующем написании определить IP-адрес или другую информацию, и передать это, минуя прокси. Поэтому для большей анонимности целесообразно отключать выполнение скриптов в вашем браузере.
Следующий потенциально опасный фактор - Cookies. Cookies (или Куки) - небольшой фрагмент служебной информации, помещаемый web-сервером на компьютер пользователя. Применяется для сохранения данных, специфичных для конкретного пользователя, и используемых веб-сервером для различных целей.
Почти все вышеперечисленные дополнительные угрозы раскрытия анонимности решаются применением браузера Firefox совместно с расширением для этого браузера - Torbutton.
Кроме того, в версии плагина Torbutton начиная с 1.2.0 добавлено несколько дополнительных возможностей безопасности, чтобы защитить вашу анонимность от всех главных угроз. Настройки, выставленные по умолчанию, должны быть подходящими (и самыми безопасными!) для большинства пользователей, но если вы хотите большей гибкости и безопасности, то можно выполнить следующие настройки плагина Torbutton:
1. Отключать плагины при использовании Tor! Эта опция является ключевой в безопасности Tor. Плагины выполняют свою работу в сети независимо от браузера, и многие плагины только частично подчиняются своим собственным настройкам прокси.
2. Ограничить динамическое содержание текущим режимом Tor.
3. Перехватывать опасный код Javascript!
Эта опция разрешает работу перехватывающего кода Javascript. Javascript встроен в страницы, чтобы перехватывать данные о дате и маскировать вашу временную зону, и, перехватывая данные о навигаторе, скрывать информацию об операционной системе и браузере. Эта функция не выполняется стандартными настройками браузера Firefox.
Целесообразно использовать Firefox с расширением Torbutton для анонимной работы в Интернет, а для обычной (неанонимной) работы - какой-либо другой браузер (например Opera), не торифицированный.
Поэтому надо взять себе за правило - для анонимной работы пользоваться одним набором логинов, паролей и т.д., а для неанонимной работы совсем другим набором. Это означает, что и почтовые ящики, номера счетов и прочие должны быть другими.
От веб-приложений 1.0 к HTML5
От веб-приложений 1.0 к HTML5 С самого начала WHATWG стала работать совершенно не так, как W3C. В W3C использовался подход, основанный на согласии: вопрос поднимается, обсуждается, затем по нему голосуют. В WHATWG вопросы тоже поднимаются и обсуждаются, а окончательное решение по тому,
Установка приложений
Установка приложений После того как гостевая ОС установлена и все необходимые внешние устройства подключены, можно переходить к установке приложений.Установка приложений в среде гостевой ОС ничем не отличается от установки приложений и хостовой ОС того же типа.
Поддержка приложений
Поддержка приложений Мы уже обсуждали новые продукты поддержки приложений и в этой, и в предшествующих главах. Вероятно, наиболее значительна в AS/400 поддержка Java. Java быстро становится универсальным языком разработки приложений. По некоторым оценкам уже сейчас его
Вызов приложений
Вызов приложений Открываются окна обычно вместе с запущенными в них приложениями. Способов же запуска последних в Cinnamon, как и во всех современных десктопах, несколько.Первый, наиболее универсальный – запуск из командной строки терминала путём ввода соответствующей
3.2.6 Службы для приложений
27.1.1.4. Уровень приложений
Идентификаторы приложений
Идентификаторы приложений В версии COM под Windows NT 4.0 введено понятие приложений COM (COM applications). Приложения COM идентифицируются с помощью GUID (называемых в этом контексте AppID – идентификаторы приложения) и представляют серверный процесс для одного или более классов. Каждый CLSID
О распространенности VBA-приложений
О распространенности VBA-приложений Практически всегда можно утверждать, что приложение, которое легко модифицировать, чтобы оно отвечало нужным требованиям, обладает большей привлекательностью. По этой причине YBA встречается в приложениях почти любого вида- от самых
Три класса приложений. NET
Три класса приложений. NET Приложения WebFormsДля конечного пользователя приложение WebForms выглядит как обычное веб-приложение. Если в нем не используется выборка данных, то можно даже не заподозрить наличия активной составляющей на стороне сервера. Для программиста же это
Разработка приложений
Разработка приложений Когда вы создали и заполнили данными базу данных, ее содержимое может быть доступно через клиентское приложение. Некоторые клиентские приложения - такие как инструмент Firebird isql и ряд прекрасных коммерческих и открытых инструментов администратора
Распространение приложений
Распространение приложений Даже если вы написали очень полезную программу, она не сможет обрести всемирную известность, пока вы держите ее на своем компьютере. Нужно все же распространить программу и, если она не бесплатная, то и немного заработать на отпуск. Программы
Если ты считаешь, что Tor - это исключительно средство для обеспечения
приватности в сети, то ты неправ дважды. Во-первых, его распределенную сеть
можно использовать в разных целях. А, во-вторых, не так уж безопасен черт, как
его малюют. Увы.
Замечательный инструмент для обеспечения анонимности и сохранности данных в
сети хорош по многим причинам. Сразу остаются не у дел любые сниферы, в том
числе установленные и на интернет-маршрутизаторах, потому как весь трафик
передается через цепочку узлов исключительно в зашифрованном виде. Крайне
затруднительно или, если полностью поверить разработчикам, то даже невозможно
становится отследить источник отправки данных благодаря постоянно меняющимся
цепочкам специальных узлов-посредников, через которые передаются данные. Кто не
пробовал использовать Tor, чтобы банально сменить свой IP? Минус на первый
взгляд один - скорость работы. Каждый из нодов, входящих в цепочку, вносит
серьезную задержку, как по времени отклика, так и банально по ширине канала. В
результате получаем анонимное соединение. Анонимное и модемное :). Но диалапный
коннект - это не самая главная проблема активных пользователей Tor. Гораздо
сильнее их должно волновать, что любые данные можно перехватить и, черт подери,
сделать это просто!
Откуда берутся. ноды
Чтобы пустить трафик приложения через Tor, достаточно указать в настройках
прокси - адрес локального SOCKS-сервера. В случае, если такой возможности не
предусмотрено можно использовать соксофикатор (например, Sockcap), но помнить
при этом, что через сокс можно пустить только TCP-трафик. Впрочем, для
большинства пользователей намного более интересны будут готовые сборки (так
называемые Bundles), включающие сам Tor, а также преконфигурированные браузер
Firefox и IM-клиент Pidgin. Поставил и все работает! Кстати говоря, для большего
удобства для Firefox'а реализован плагин
Torbutton.
Щелкнул - и весь безопасно трафик уже передается через цепочку промежуточных
узлов. Что вообще представляют собой эти узлы и как в принципе устроен Tor?
Попробуем разобраться.
Где зарылась собака?
Итак, маршрут постоянно меняется, данные через промежуточные узлы проходят в
виде белиберды, т.е. в зашифрованном виде - где подвох? Он есть. Ведь, как
серьезно бы ни защищались данные, как изощренно не выбирался и запутывался
маршрут, где-то на выходе данные все равно нужно расшифровывать. Ведь только так
их можно доставить до места назначения. Эта операция осуществляется на последней
ноде в цепочке - так называемой выходной нодой (Exit Node). Если на таком узле
установить снифер, то данным ничего больше не останется, как прямиком попасть в
логи :).
Ты можешь подумать, что система такого положения дел не допускает и поднять
Tor для работы выходной ноды нельзя? Запросто! Вся система строится на большом
количестве энтузиастов, участвующих в проекте и предоставляющие свои домашние
компьютеры как ноды, и в том числе выходные. Несколько строчек кода в конфиге -
твой билет их ряды.
Да здравствует Exit node!
Ну что ж, приступим. Для экспериментов нам понадобится любой никсовый
дистрибутив, пускай даже это будет
Backtrack,
запущенный с флешки, или Ubuntu на виртуальной машине - это совершенно не нужно.
Далее потребуется последняя версия Tor (на момент публикации - 0.2.1.19).
Любители GUI также могут скачать и установить Vidalia - мы же будем работать в
консоли. Итак скачиваем пакет, распаковываем и устанавливаем. Я думаю на этой
стадии никаких проблем быть не должно.
Для Tor'а важно, чтобы часы были установлены точно. В противном случае -
синхронизируем с публичными серверами времени. Забегая вперед скажу, что для
запуска Tor лучше создать отдельного пользователя - делается это командой
adduser. Я создал себе пользователя toruser: uid=111(toruser) gid=10(wheel)
groups=0(wheel),10(wheel). Теперь нужно создать файл конфигурации. Tor
использует для хранения своих данных папку .tor в домашней директории
пользователя (/home/toruser). Создаем папку .tor, создаем в ней файл torrc и
открываем его в текстовом редакторе.
Нас интересует несколько параметров :
ControlPort – на этом порту Tor будет принимать подключения для
управления Tor-сервером (т.е. можно подключиться удаленно для конфигурации Tor'а,
опция важна для тех, кто использует графические оболочки типа Vidalia или Tork).
Устанавливаем его в 9051.
DirPort – на этом порту Tor будет принимать данные от сервера
директорий. Устанавливаем в 9030.
ControlPort 9051
DirPort 9030
ExitPolicy – определяет, какой трафик мы будем принимать и форвардить.
Имеет формат "ExitPolicy Accept | reject address:port". По умолчанию политика
следующая:
reject *:25
reject *:119
reject *:135-139
reject *:445
reject *:563
reject *:1214
reject *:4661-4666
reject *:6346-6429
reject *:6699
reject *:6881-6999
accept *:*
Означает, что мы будем резать трафик, направленный на вышеперечисленные
порты, а весь остальной будем пропускать. В принципе можно ее и не
переопределять и оставить дефолтной, ну это уж на твой выбор. Я использовал
следующую:
ExitPolicy accept *:80, accept *:443, accept *:110, accept *:143,
accept *:993, accept *:995, reject *:*
HashedControlPassword – хеш пароля для доступа и конфигурации
Tor-сервера (чтобы никакой злобный хакер не смог переконфигурировать наш
сервер), создается при помощи команды: tor --hash-password.
Nickname – имя нашего сервера.
ORPort – порт, ожидающий подключения от других нодов.
SocksListenAddress - адрес, по которому Tor будет ждать подключений от
приложений, работающих через SOCKS. Формат: SocksListenAddress IP[:PORT]
Установим IP в 127.0.0.1, а порт оставим дефолтным (9050). Это понадобится нам,
если мы захотим использовать Tor в связке с Privoxy или другими прокси.
Сохраняем изменения и закрываем файл. Можно приступать к запуску. Открываем
консоль, логинимся под toruser и запускаем Tor, передав в качестве параметра
путь до конфиг-файла:
$ tor -f /home/toruser/.tor/torrc
Вот и появился наш сервер в списке. Посмотрим на строчку ниже HelloHacker.
Что мы видим: s Exit Fast Running V2Dir Valid. Exit - означает, что мы являемся
Exit Node!
Ловись-ловись, рыбка
Итак, выходная нода настроена, запущена, добавлена в базу - кто-нибудь
обязательно ею воспользуется уже в самое ближайшее время. Что ж, остается только
запустить любимый снифер Wireshark, выбрать Интерфейс, смотрящий во внешнюю сеть
и включить захват пакетов. А дальше нужно чуть подождать. В большинстве случаев
пакеты начинают сыпаться в логи уже очень скоро :))
$ python sslstrip.py -a -l 8080 -w today.log
$ iptables -t nat -I OUTPUT -p tcp -m owner -uid-owner 111 --dport 80 -j
DNAT --to-destination 127.0.0.1:8080
Анонимное сканирование
Перехватывать чужие логины и пароли мы научились. А вот задачка поинтересней.
Сталкивался ли ты c ситуацией, когда ты находишься во внутренней сети, а
посканировать интересующий тебя сервак нельзя, потому как это тут же привлечет
внимание IDS и соответственно админа. Или вот еще вариант: ты сканируешь
удаленный хост, а он распознает сканирование и блокирует твой айпишник.
Неприятные ситуации. Но и из них есть выход! Нам опять поможет Tor, который
можно использовать в качестве посредника для сканирования. Ведь, кто говорил,
что эта система можно использовать только для анонимного серфинга? 🙂
В чем преимущество такого сканирования? В нашем первом случае сканирование
сервера будет происходить из инета, а не из локальной сети. А во втором, даже
если нас заблокируют, мы всегда сможем пустить трафик через другой Tor-сервер,
благо их хватает. Итак, для наших экспериментов нам понадобится:
Устанавливаем, все, кроме tortunnel. Заходим в конфиг proxychains и, чтобы
пустить трафик через Tor, раскомментируем строчку:
Socks4 127.0.0.1 9050
Сохраняем и запускаем сканирование (адрес 92.241.175.142 - это IP xakep.ru):
" proxychains nmap -PN 92.241.175.142 ". На первый взгляд это кажется
быстрым и эффективным способом сканирования, но это не так. При дефолтном
SYN-сканировании пакеты через Tor не пойдут. Таким образом мы бы сканировали
сервер напрямую и, возможно, спалились бы. Хорошо - попробуем по-другому,
посмотрим, какие еще техники сканирования предлагает Nmap: "SCAN TECHNIQUES: -sS/sT/sA/sW/sM:
TCP SYN/Connect()/ACK/Window/Maimon scans".
Укажем Nmap использовать сканирование с полным соединением: " proxychains
nmap -sT -PN 92.241.175.142 "
Прокачиваем скорость
$ bootstrap.sh --libdir=/usr/lib --includedir=/usr/include
$ ./bjam --prefix=/usr
$ ./bjam install
После этого, заголовочные файлы должны оказаться в /usr/include/boost, а
библиотеки в /usr/lib. Теперь надо вручную создать символическую ссылку на
библиотеку libboost_system.so.1.40.0 (может кому и не понадобится, но у меня она
при установке автоматически не создалась):
$ ln -s /usr/lib/libboost_system.so.1.40.0 /usr/lib/libboost_system-mt.so
После этого можно компилировать и устанавливать tortunnel. Запускаем torproxy
- она выдает: torproxy . Теперь нужно выбрать подходящий exit
node. Для это идем сюда
http://128.31.0.34:9031/tor/status/all или сюда
http://moria.seul.org:9032/tor/status/authority и ищем узел с описанием "Exit,
Fast, Stable, Valid". Так обозначаются надежные и быстрые ноды - именно такие
нам и нужны. Далее копируем айпишик и выполняем: "./torproxy [ExitNodeIP]"
Теперь, для того чтобы все заработало, нужно через конфиг указать proxychains
использовать socks5. Итак, комментируем строку Socks4 127.0.0.1 9050
в /etc/proxychains.conf и добавляем socks5 127.0.0.1 5060 (5060 –
порт, который будет слушать tortunnel).
После этого можно запустить и Nmap:
@proxychains nmap -sT -p 80,443,21,23 92.241.175.142
Как ты видишь, скорость сканирования увеличилась (если нет – попробуй другой
нод). Теперь можно даже просканировать свою собственную машину. В довершении
научим Privoxy работать через tortunnel. Тем самым мы снизим уровень анонимности
(одна промежуточная нода вместо трех), но получим более шустрый серфинг. Заходим
в файл конфигурации и добавляем строчку:
Теперь открываем лиса и настраиваем http-proxy на 127.0.0.1:8118. После этого
идем на
http://torcheck.xenobite.eu/index.php проверять, действительно ли мы серфим
через Tor, если все ок - то отобразится страница с надписью "Your IP is
identified to be a Tor-EXIT.". Вот и все, теперь можно провести и ручной аудит
удаленной системы.
Tor Scanner
Torscanner сканирует все выходные узлы, что занимает достаточно много
времени. Но я думаю, что ты сумеешь модифицировать программу таким образом,
чтобы она проверяла только определенный диапазон или один конкретный сервер и
уже их использовать в качестве выходных серверов (Tor'у можно явно указать какой
или какие выходные узлы использовать).
Жди подвох 🙂
Вывод может быть один - используя Tor будь осторожен. Да, система
обеспечивает неплохой уровень анонимности, но не может защитить твои данные от
перехвата. И пусть ты даже ты убедился, что на последнем узле не запущен
sslstrip, все равно никто не даст гарантии, что проходящие пакеты не дампятся
снифером. С другой стороны необязательно рассматривать Tor как исключительно
инструмент для анонимного серфинга в Сети. Несколько наших примеров - тому в
подтверждение.
Держать Exit Node - задача для крепких парней
Скрытые сервисы - уникальная фишка Tor
Специализированные ОС
WARNING
Данная статья не является инструкцией или побуждением к действиям. Она
призвана лишь показать, что даже программы, создаваемые ради благих целей, могут
быть использованы во зло.
Tor – инструмент для анонимности, используемый людьми, стремящимися к приватности и борющимися с цензурой в интернете. Со временем Tor стал весьма и весьма неплохо справляться со своей задачей. Поэтому безопасность, стабильность и скорость этой сети критически важны для людей, рассчитывающих на неё.
Но как Tor работает «под капотом»? В этой статье мы с вами нырнем в структуру и протоколы, используемые в сети, чтобы близко ознакомиться с работой Tor.
Краткая история Tor
Концепция луковичной маршрутизации (позже поясним это название) впервые была предложена в 1995 году. Сначала эти исследования финансировались министерством военно-морских исследований, а затем в 1997 году к проекту подключилась DARPA. С тех пор Tor Project финансировали разные спонсоры, а не так давно проект победил в кампании по сбору пожертвований на reddit.
Код современной версии ПО Tor был открыт в октябре 2003 года, и это было уже 3-е поколение ПО для луковичной маршрутизации. Идея его в том, что мы оборачиваем трафик в зашифрованные слои (как у луковицы), чтобы защитить данные и анонимность отправителя и получателя.
Основы Tor
Сейчас (февраль 2015 года) в сети Tor передачей трафика занимаются около 6000 маршрутизаторов. Они расположены по всему миру и работают благодаря добровольцам, которые соглашаются отдать немного трафика для благого дела. Важно, что у большинства узлов нет никакого специального железа или дополнительного ПО – все они работают при помощи ПО Tor, настроенного на работу в качестве узла.
Скорость и анонимность сети Tor зависит от количества узлов – чем больше, тем лучше! И это понятно, поскольку трафик одного узла ограничен. Чем больше у вас выбор узлов, тем сложнее отследить пользователя.
Типы узлов
По умолчанию, Tor передаёт трафик через 3 узла. У каждого из них своя роль (разберём их подробно позже).
Клиент, охранный узел, промежуточный узел, выходной узел, пункт назначения
Обычно безопасный метод запуска сторожевого или промежуточного узла — виртуальный сервер (DigitalOcean, EC2) – в этом случае операторы сервера увидят только зашифрованный трафик.
Но на операторах выходных узлов лежит особая ответственность. Поскольку они отправляют трафик в пункт назначения, все незаконные действия, совершаемые через Tor, будут связываться с выходным узлом. А это может привести к полицейским рейдам, уведомлениям о нелегальной деятельности и другим вещам.
Встретите оператора выходного узла – скажите ему спасибо. Он того заслуживает.
Причём здесь лук?
Разобравшись в маршруте соединений, идущих через узлы, зададимся вопросом – а как мы можем им доверять? Можно ли быть уверенным в том, что они не взломают соединение и не извлекут все данные из него? Если кратко – а нам и не нужно им доверять!
Сеть Tor разработана так, чтобы к узлам можно было относиться с минимальным доверием. Это достигается посредством шифрования.
Так что там насчёт луковиц? Давайте разберём работу шифрования в процессе установки соединения клиента через сеть Tor.
Клиент шифрует данные так, чтобы их мог расшифровать только выходной узел.
Эти данные затем снова шифруются так, чтобы их мог расшифровать только промежуточный узел.
А потом эти данные опять шифруются так, чтобы их мог расшифровать только сторожевой узел
Получается, что мы обернули исходные данные в слои шифрования – как лук. В результате у каждого узла есть только та информация, которая нужна ему – откуда пришли зашифрованные данные, и куда их надо отправлять. Такое шифрование полезно всем – трафик клиента не открыт, а узлы не отвечают за содержимое передаваемых данных.
Узлы и мосты: проблема с узлами
После запуска Tor-клиента ему нужно получить списки всех входных, промежуточных и выходных узлов. И это список не является тайной – позже я расскажу, как он распространяется (можете сами поискать в документации по слову “concensus”). Публичность списка необходима, но в ней таится проблема.
Чтобы понять её, давайте прикинемся атакующим и спросим себя: что бы сделало Авторитарное Правительство (АП)? Размышляя таким образом, мы сможем понять, почему Tor устроен именно так.
- блокировать пользователей, выходящих из Tor;
- блокировать пользователей, входящих в Tor.
Первое – возможно, и это свободный выбор владельца маршрутизатора или веб-сайта. Ему всего лишь нужно скачать список выходных узлов Tor, и блокировать весь трафик с них. Это будет плохо, но Tor ничего с этим не может сделать.
Второй вариант серьёзно хуже. Блокировка выходящих из Tor пользователей может предотвратить посещение определённого сервиса, а блокировка всех входящих не даст им ходить ни на какие сайты – Tor станет бесполезным для тех пользователей, кто уже страдает от цензуры, в результате чего они и обратились к этому сервису. И если бы в Tor были только узлы, это было бы возможным, так как АП может скачать список сторожевых узлов и заблокировать трафик к ним.
Хорошо, что разработчики Tor подумали об этом и придумали хитрое решение проблемы. Познакомьтесь с мостами.
Мосты
По сути, мосты – непубликуемые в общем доступе узлы. Пользователи, оказавшиеся за стеной цензуры, могут использовать их для доступа в сеть Tor. Но если они не публикуются, как пользователи знают, где их искать? Не нужен ли какой-нибудь особый список? Поговорим о нём позже, но коротко говоря, да – есть список мостов, которым занимаются разработчики проекта.
Просто он не публичный. Вместо этого пользователи могут получать небольшой список мостов, чтобы соединиться с остальной частью сети. Этот список, BridgeDB, выдаёт пользователям только по нескольку мостов за раз. Это разумно, так как много мостов сразу им и не нужно.
Выдавая по нескольку мостов, можно предотвратить блокировку сети Авторитарным Правительством. Конечно, получая информацию о новых узлах, можно блокировать и их, но может ли кто-то обнаружить все мосты?
Может ли кто-то обнаружить все мосты
Список мостов строго секретен. Если АП получит этот список, оно сможет полностью заблокировать Tor. Поэтому разработчики сети проводили исследования возможностей получения списка всех мостов.
Я подробно опишу два пункта из этого списка, 2-й и 6-й, поскольку именно этими способами удалось получить доступ к мостам. В 6-м пункте исследователи в поисках мостов Tor просканировали всё пространство IPv4 посредством сканера портов ZMap, и нашли от 79% до 86% всех мостов.
2-й пункт подразумевает запуск промежуточного узла Tor, который может отслеживать приходящие к нему запросы. К промежуточному узлу обращаются только сторожевые узлы и мосты – и если обратившегося узла нет в публичном списке узлов, то очевидно, что этот узел – мост. Это серьёзный вызов Tor, или любой другой сети. Так как пользователям нельзя доверять, необходимо делать сеть анонимной и закрытой, насколько это возможно, поэтому сеть именно так и сделана.
Консенсус
Рассмотрим, как функционирует сеть на более низком уровне. Как она организована и как узнать, какие узлы в сети активны. Мы уже упоминали, что в сети существует список узлов и список мостов. Поговорим о том, кто составляет эти списки.
В каждом Tor-клиенте содержится фиксированная информация о 10 мощных узлах, поддерживаемых доверенными добровольцами. У них особая задача – отслеживать состояние всей сети. Они называются directory authorities (DA, управляющие списками).
Они распределены по миру и отвечают за распространение постоянно обновляемого списка всех известных узлов Tor. Они выбирают, с какими узлами работать, и когда.
Почему 10? Обычно не стоит делать комитет из чётного количества членов, чтобы при голосовании не случилось ничьей. Суть в том, что 9 DA занимаются списками узлов, а один DA (Tonga) – списком мостов
Список DA
Достижение консенсуса
Так каким же образом DA поддерживают работоспособность сети?
- каждый DA создаёт список известных узлов;
- затем подсчитывает все остальные данные – флаги узла, веса трафика и т.п.;
- отправляет данные как «голосование за статус» всем остальным;
- получает голоса всех остальных;
- комбинирует и подписывает все параметры всех голосов;
- отправляет подписанные данные остальным;
- большинство DA должны согласовать данные и подтвердить наличие консенсуса;
- консенсус публикуется каждым DA.
И что же он означает?
Анатомия консенсуса
Просто прочитав спецификацию, в этом документе разобраться сложновато. Мне нравится визуальное отображение, чтобы понять, как устроена структура. Для этого я сделал постер в стиле corkami. И вот (кликабельное) графическое представление этого документа.
Что случится, если узел пустится во все тяжкие
При подробном рассмотрении принципов работы сети мы пока не касались принципов работы выходных узлов. Это последние звенья в цепочке Tor, предоставляющие путь от клиента до сервера. Поскольку они отправляют данные на пункт назначения, они могут видеть их так, будто те только что покинули устройство.
Такая прозрачность подразумевает большое доверие к выходным узлам, и обычно они ведут себя ответственно. Но не всегда. А что же случается, когда оператор выходного узла решает ополчиться на пользователей Tor?
Дело снифферов
Выходные узлы могут видеть трафик так, будто он только что покинул устройство.
Засада в том, что мы ничего не можем с этим поделать (кроме использования шифрованных протоколов). Сниффинг, пассивное прослушивание сети, не требует активного участия, поэтому единственная защита — понимать проблему и избегать передачи важных данных без шифрования.
Но допустим, оператор выходного узла решит навредить сети по-крупному. Прослушивание – занятие дураков. Давайте будем модифицировать трафик!
Выжимаем максимум
Вспомним, что оператор выходного узла несёт ответственность за то, что трафик, проходящий от клиента и к нему, не будет изменён. Ага, конечно…
Посмотрим, какими способами его можно менять.
SSL MiTM & sslstrip
Удобным инструментом для эксплуатации уязвимостей служит sslstrip. Нам нужно лишь пропустить через него весь выходящий трафик, и во многих случаях мы сумеем навредить пользователю. Конечно, мы можем просто использовать самоподписанный сертификат, и заглянуть в SSL-трафик, проходящий через узел. Легко!
Подсадим браузеры на BeEF
Разглядев подробности трафика, можно приступать к вредительству. Например, можно использовать фреймворк BeEF, чтобы получать контроль над браузерами. Затем можно задействовать функцию из Metasploit «browser autopwn», в результате чего хост будет скомпрометирован, а мы получим возможность выполнять на нём команды. Приехали.
Бинарники с чёрным ходом
Допустим, через наш узел качают бинарники – ПО или обновления к нему. Иногда пользователь даже может не подозревать о том, что обновления скачиваются. Нам нужно всего лишь добавлять к ним чёрный ход посредством инструментов вроде The Backdoor Factory. Тогда после выполнения программы хост окажется скомпрометированным. Снова приехали.
Как поймать Уолтера Уайта
И хотя большинство выходных узлов Tor ведут себя прилично, не так уж и редки случаи деструктивного поведения некоторых из них. Все атаки, о которых мы говорили в теории, уже имели место.
К частью, разработчики подумали и об этом, и разработали меру предосторожности, направленную против использования клиентами плохих выходных узлов. Она работает как флаг в консенсусе под названием BadExit.
Для решения задачи отлова плохих выходных узлов разработана хитрая система exitmap. Работает она так: для каждого выходного узла запускается модуль на Python, который занимается логинами, скачиванием файлов, и прочим. Результаты его работы затем записываются.
exitmap работает с использованием библиотеки Stem (предназначенной для работы с Tor из Python), помогающей строить схемы для каждого выходного узла. Просто, но эффективно.
Exitmap была создана в 2013 году в рамках программы «испорченные луковицы». Авторы нашли 65 выходных узлов, меняющих трафик. Получается, что хотя это и не катастрофа (на момент работы всего существовало порядка 1000 выходных узлов), но проблема достаточно серьёзная для того, чтобы отслеживать нарушения. Поэтому exitmap по сей день работает и поддерживается.
Эта проблема свойственна не только Tor
Важно отметить, что это проблема не одного лишь Tor. Между вами и фотографией котика, на которую вы хотите посмотреть, и так расположено достаточно много узлов. Достаточно лишь одного человека с враждебными намерениями, чтобы причинить немало вреда. Лучшее, что тут можно сделать – принудительно включать шифрование, где возможно. Если трафик нельзя распознать, его нельзя легко изменить.
И помните, что это лишь пример плохого поведения операторов, а не норма. Подавляющее большинство выходных узлов очень серьёзно относятся к своей роли и заслуживают большой благодарности за все риски, которые они берут на себя во имя свободного распространения информации.
В этой статье будет рассказано, как пробросить весь трафик операционной системы через TOR так, чтобы о наличии TOR-а операционная система даже не подозревала.
Это поможет не думать о бесконечных настройках прокси и onion, перестать бояться на тему «а не сливает ли торрент клиент мой реальный IP адрес, так как не полностью поддерживает прокси?» и, наконец, быть застрахованным от законодательного запрета TOR-а в России.
Когда я говорю «TOR», я подразумеваю «TOR и I2P». По схожей методике сюда можно подключить любой даркнет.
Постановка задачи
1. Мой компьютер должен по нажатию одной кнопки переходить в режим «весь трафик — не русский».
2. По нажатию второй кнопки он должен переходить в режим «весь траффик идет через TOR»
3. Третья кнопка — для I2P.
5. Все это должно работать под linux, windows, android. Заранее: с OS X и iPhone тоже все в порядке, просто у меня их нету, так что протестить не смогу.
Дисклеймер
Хостинг
Первым делом нам понадобится сравнительно дешевая VPS-ка, владельцы которой не против, чтобы там крутился TOR (и не русская, разумеется). Лично я использую DigitalOcean. В их ToS не специфицирован запрещенный трафик (хотя если будете качать пиратские торренты прямо с их IP — заблокируют на раз. Ну, собственно, нам для этого и нужен TOR. ). Стоит это 5$ в месяц.
Если Вы знаете лучшие или хотя бы не худшие варианты хостинга под такие цели — пишите в комменты, обновлю статью.
Я не буду описывать конкретную процедуру создания VPS-ки, так как это зависит от хостинга и просто. Давайте предположим, что вы в итоге можете выполнить команду,
и получить shell на VPS-ку. Я буду считать, что на VPS-ке крутится debian 7. По крайней мере, эта статья тестировалась на debian 7. На убунте тоже заработает, наверное.
Установка пакетов
Сначала немного приложений, которые облегчают нам жизнь. Не забудьте поставить ваш любимый редактор, mc если нужно и т.п.
I2P нету в репозитории debian, так что придется добавить новый источник.
Теперь поставим основные пакеты — TOR, VPN и I2P. Также нам пригодится DNS сервер. Я использую unbound.
Настройка VPN
Я буду держать все настройки VPN в /opt/vpn. Для начала следует сгенерировать сертификаты для сервера и клиента.
N.B. Мы будем запускать несколько серверов (один под tor, второй под обычный трафик) и использовать для них один и тот же сертификат. Это не обязательно. Вполне можно (и нужно) генерировать независимый сертификат или даже свою CA для каждого из openvpn серверов.
Теперь сгенерируем новую CA и необходимые сертификаты.
Изучите папку /opt/vpn/rsa/keys. Теперь там есть несколько пар ключ+сертификат.
ca. — certificate authority
server. — ключ сервера
client. — ключ клиента.
Клиенту нужно отдать только ca.crt, client.crt и client.key, остальные файлы должны оставаться только на сервере.
Пора писать конфигурационный файл для сервера. Положите его в /etc/openvpn/00-standard.conf
Попробуйте запустить openVPN
ОК, VPN работает. Самое время подключиться к нему. Для этого на клиенте напишем конфиг-файл:
Теперь попробуйте подключиться
После появления надписи «Initialization Sequence Completed» вы подключены и должны успешно пинговать 10.8.1.1. Интернет пропадет, это нормально.
Настройка интернета
Допустим, мы не хотим использовать TOR, а просто хотим себе не русский внешний IP. В этом случае при помощи вот этого скрипта:
вы достигнете желаемого. Перепишите это в /etc/rc.local.
Настройка TOR
Если вы прочитали и выполнили предыдущую часть — не забудьте очистить iptables
Теперь допустим, что вы таки хотите VPN через TOR (и предыдущий пункт не выполняли). Тогда:
допишите в конец /etc/tor/torrc следующее:
также изменим наш конфиг-файл сервера /etc/openvpn/00-standard.conf. Измените DNS с гугловского на локальный. Не забудьте перезапустить openvpn.
Наконец, следующая конструкция на bash перенаправит весь входящий трафик vpn через tor
Готово. Подключитесь к VPN. Убедитесь, что у Вас TOR-овский IP-шник. Зайдите на какой-нибудь .onion сайт, чтобы проверить: dns тоже работает.
Настройка I2P
С I2P сложности. У них нет собственного DNS сервера, так что придется делать свой.
Откройте /etc/unbound/unbound.conf и допишите в конец:
После этого любой (!) домен будет раскрываться в заведомо несуществующий IP адрес 10.191.0.1. Осталось «ловить» такой трафик и перенаправлять на localhost:8118 — именно тут слушает I2P.
Кстати говоря, пока что не слушает. Выполните
и выставьте флаг, чтобы стартовал при загрузке.
Остановите tor. Запустите unbound.
Теперь настроим privoxy в связке в I2P. Допишите в конец /etc/privoxy/config
и рестартаните privoxy
Точно так же, как и в случае с TOR, смените DNS на локальный в конфигурации vpn-сервера:
Если вы уже пробовали редиректить TOR — не забудьте почистить iptables:
Осталось выполнить переадресацию:
Знакомо, правда? Единственное отличие — номер порта прокси.
Подключитесь к VPN. Вы в I2P. Откройте epsilon.i2p, убедитесь, что сеть работает.
Что дальше?
Дальше Вам пора сделать так, чтобы они не конфликтовали. Вместо одного сервера /etc/openvpn/00-standard сделать три: 00-standard для обычного трафика, 01-tor для tor-а, и 02-i2p для i2p. Назначьте им разные подсети (например, 10.8.2.* для tor и 10.8.3.* для i2p). После этого tor и unbound перестанут конфликтовать и вы сможете подключаться к любой из трех одновременно работающих сетей.
А еще можно запилить виртуалку, для которой выкатить tun0, трафик которого идет через TOR, после чего виртуалка не будет знать даже про VPN. А в хосте этой виртуалки прописать роутинг так, чтобы без VPN не подключалось вообще.
А еще надо лимит скорости в I2P поставить. И логи у VPN не ротируются. И веб-морды нет.
А еще… а еще я все это обязательно опишу — в других статьях. Засим — спасибо за внимание!
Если вы не знаете что такое Тор браузер, то прочитайте статью что такое сеть Tor.
Кстати Tor Browser сделан на основе браузера Mozilla Firefox, так как это единственный браузер, умеющий самостоятельно работать с Socks соединением без участия операционной системы.
После установки Tor Browser полностью готов к работе. Ниже представлен скриншот с официального веб-сайта.
Рекомендации по использованию Tor Browser
Главное окно Tor Browser.
Для настроек безопасности нажмите Security Settings.
Настройте уровень безопасности:
-
Low (default) – стандартный уровень безопасности.
Подходит для большинства пользователей. Веб-сайты открываются корректно и ничего не блокируется.
Так как большинство веб-сайтов использует Javascript, поэтому просматривать веб-сайты в режиме High проблематично, так как часть контента скрывается. Рекомендуем этот режим, когда нужно прочитать статью на каком-то веб-сайте, при этом авторизовываться на сайте не нужно.
Tor Browser готов к работе и можно сразу же приступать к анонимному серфингу.
Помните, что при такой настройке только Tor Browser использует сеть Tor. Все остальные программы используют прямое подключение к Интернету и передают ваш реальный IP адрес.
Настройка Proxifier через сеть Tor
Программа Proxifier умеет:
Главная страница официального сайта Proxifier.
Установите программу Proxifier. Эта программа умеет собирать весь трафик операционной системы и пропускать через определенный прокси-сервер.
Для настройки Proxifier необходимо узнать используемый порт сети Tor. Зайдите в раздел Preferences программы Tor Browser.
Выберите раздел Настройки сети.
Посмотрите используемый локальный IP адрес и порт подключения сети Tor. Эти данные необходимо вставить в программу Proxifier, чтобы весь трафик операционной системы проходил в Tor сеть. В нашем примере 127.0.0.1 и порт 9150.
Запустите программу Proxifier.
ВНИМАНИЕ! Важно, сначала запустить Tor Browser и подождать пока появится главное окно. И только после этого запустить программу Proxifier.
Нажмите на кнопку Proxies.
Введите IP адрес и порт. В нашем примере: 127.0.0.1 и порт 9150.
Выберите Yes - вы согласны использовать этот прокси по умолчанию.
Откройте любой браузер или почтовую программу. В программе Proxifier вы увидите список подключений через сеть Tor. В любом браузере можете проверить свой IP адрес и убедиться, что будет показываться IP адрес из сети Tor, а не ваш реальный IP адрес.
Если что-то не работает, то закройте Tor Browser и Proxifier. И затем запустите Tor Browser и дождитесь появления главного окна. Только затем запустите Proxifier. Никаких дополнительных настроек делать не нужно. Весь трафик автоматически будет идти через сеть Tor. Закройте программу Proxifier, чтобы вернуть свой реальный IP адрес.
VPN и прокси сервис защищает своих клиентов с 2006 года, используя надежные технологии в области анонимности передачи данных в Интернете.
Читайте также: