Как ускорить браузер Тор при медленной загрузке сайтов
Недавно загрузившие Tor Browser люди легко могут заметить, что он загружает страницы далеко не так быстро, если сравнивать с другими интернет-обозревателями (Chrome, Opera, Mozilla Firefox и т. д.). И это не слишком приятная новость, ведь каждый раз нужно ждать, пока не откроется та или иная ссылка. И вполне вероятно, что пользователь посчитает это за какую-то проблему и решит найти способ для ее устранения. Давайте разберемся, как ускорить Тор, и есть ли в этом какой-либо смысл.
Подробности
Главное достоинство Tor Browser заключается в том, что он максимально сильно скрывает местоположение и прочие данные пользователя в ходе интернет-серфинга. Достигается это за счет так называемой луковичной маршрутизацией, когда на входной сетевой трафик накладывается многократное шифрование, а сам он проходит через кучу промежуточных узлов, и так происходит множество раз.
Но такая степень защиты сопряжена с несколькими существенными недостатками. Самый заметный из них – медленная загрузка веб-страниц, и она протекает далеко не так быстро, как в других браузерах. Но стоит понимать, что это не какая-то проблема, которую нужно идти и решать. Это
Теперь вы понимаете, почему так медленно работает Тор, – так происходит из-за многократного шифрования входящего и исходящего сетевого трафика, без чего невозможно достижение анонимности пользователя в сети.
Но возможны и ситуации, когда интернет-обозреватель «думает» ну слишком уж долго, и, например, раньше такого не было. В таких случаях стоит проверить несколько нюансов:
- Использование прокси-сервера.
- Установленный в настоящий момент уровень безопасности.
Случай №1: Прокси-сервер
Для подключения в Сети пользователь может включить прокси-сервер. И если он является очень удаленным, обладает высоким пингом и низкой пропускной способностью, то веб-страницы будут грузиться еще медленнее обычного. Так что для увеличения скорости интернета в браузере Тор следует его сменить или полностью отключить. Разберемся, как это сделать:
- Перейдите к окну программы.
- Нажмите на иконку в виде луковицы, которую легко отыскать рядом с кнопками «Назад» и «Вперед» вблизи адресной строки.
- Перейдите в «Настройки сети…».
- Смените данные прокси-сервера или отключите эту функцию целиком (для этого нужно деактивировать пункт «Я использую прокси…»).
- Примените настройки, нажав на «ОК».
- На всякий случай перезагрузите компьютер
Случай №2: Уровень безопасности
Чтобы сменить данный параметр в обозревателе Tor, выполните следующие шаги:
- Опять щелкните мышкой на значок с изображенной на нем луковицей.
- Но на этот раз выберите «Настройки безопасности».
- В появившемся окне прокрутите ползунок в самый низ (значение «Стандартные»).
- Для применения изменений нажмите на кнопку «ОК».
- Перезапустите программу.
Дополнение
Проблемы со скоростью интернет-соединения могут заключаться не в Торе, а в других причинах. Перечислим основные случаи:
- Ограничения, наложенные провайдером. На всякий случай стоит связаться с ним для выяснения подробностей.
- Включенные загрузки, воспроизведение видео в высоком качестве, онлайн-игры и так далее. Завершите все связанные процессы.
- Нагруженность сетевого подключения ввиду работы антивирусов или прочего защитного ПО. Стоит приостановить их деятельность или добавить анонимный браузер в список исключений.
Читайте так же:
Включаем Tor на всю катушку — «Хакер»
Содержание статьи
Если ты считаешь, что Tor — это исключительно средство для обеспечения
приватности в сети, то ты неправ дважды. Во-первых, его распределенную сеть
можно использовать в разных целях. А, во-вторых, не так уж безопасен черт, как
его малюют. Увы.
Замечательный инструмент для обеспечения анонимности и сохранности данных в
сети хорош по многим причинам. Сразу остаются не у дел любые сниферы, в том
передается через цепочку узлов исключительно в зашифрованном виде. Крайне
затруднительно или, если полностью поверить разработчикам, то даже невозможно
становится отследить источник отправки данных благодаря постоянно меняющимся
цепочкам специальных узлов-посредников, через которые передаются данные. Кто не
пробовал использовать Tor, чтобы банально сменить свой IP? Минус на первый
взгляд один — скорость работы. Каждый из нодов, входящих в цепочку, вносит
серьезную задержку, как по времени отклика, так и банально по ширине канала. В
результате получаем анонимное соединение. Анонимное и модемное :). Но диалапный
коннект — это не самая главная проблема активных пользователей Tor. Гораздо
сильнее их должно волновать, что любые данные можно перехватить и, черт подери,
сделать это просто!
Откуда берутся… ноды
Чтобы пустить трафик приложения через Tor, достаточно указать в настройках
предусмотрено можно использовать соксофикатор (например, Sockcap), но помнить
при этом, что через сокс можно пустить только TCP-трафик. Впрочем, для
большинства пользователей намного более интересны будут готовые сборки (так
называемые Bundles), включающие сам Tor, а также преконфигурированные браузер
Firefox и IM-клиент Pidgin. Поставил и все работает! Кстати говоря, для большего
удобства для Firefox’а реализован плагин
Torbutton.
Щелкнул — и весь безопасно трафик уже передается через цепочку промежуточных
узлов. Что вообще представляют собой эти узлы и как в принципе устроен Tor?
Попробуем разобраться.
В основе лежит распределенная система узлов — так называемых нод, между
которыми в зашифрованном виде передаются данные. Для соединения обычно
используется три сервера, которые образуют временную цепочку. Каждый сервер
выбирается случайным образом, при этом он знает только то, от какого звена
меняются. Даже в случае перехвата данных на одном из серверов отследить полный
маршрут пакетов (в том числе и их отправителя) не представляется возможным.
Перед отправлением пакет последовательно шифруется тремя ключами: сначала для
третьей ноды, потом для второй и, в конце концов, для первой. Когда первая нода
получает пакет, она расшифровывает «верхний» слой шифра и узнает, куда отправить
пакет дальше. Второй и третий сервер поступают аналогичным образом.
Где зарылась собака?
Итак, маршрут постоянно меняется, данные через промежуточные узлы проходят в
виде белиберды, т.е. в зашифрованном виде — где подвох? Он есть. Ведь, как
серьезно бы ни защищались данные, как изощренно не выбирался и запутывался
маршрут, где-то на выходе данные все равно нужно расшифровывать. Ведь только так
их можно доставить до места назначения. Эта операция осуществляется на последней
установить снифер, то данным ничего больше не останется, как прямиком попасть в
логи :).
Ты можешь подумать, что система такого положения дел не допускает и поднять
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).
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,
HashedControlPassword – хеш пароля для доступа и конфигурации
Tor-сервера (чтобы никакой злобный хакер не смог переконфигурировать наш
сервер), создается при помощи команды: tor —hash-password.
Nickname – имя нашего сервера.
ORPort – порт, ожидающий подключения от других нодов.
SocksListenAddress — адрес, по которому Tor будет ждать подключений от
приложений, работающих через SOCKS. Формат: SocksListenAddress IP[:PORT]
Установим IP в 127.0.0.1, а порт оставим дефолтным (9050). Это понадобится нам,
если мы захотим использовать Tor в связке с Privoxy или другими прокси.
HashedControlPassword
16:91495A0B7CBC41C76073E1EC00A5CF1510D41462884391CCB24BF489F1
Log notice stdout – выводить сообщения в консоль
Nickname HelloXakep
ORPort 9001
SocksListenAddress 127.0.0.1
Сохраняем изменения и закрываем файл. Можно приступать к запуску. Открываем
консоль, логинимся под toruser и запускаем Tor, передав в качестве параметра
путь до конфиг-файла:
$ tor -f /home/toruser/.tor/torrc
И смотрим выдаваемые сообщения. Как только сервер сможет подсоединиться к
сети, он попытается определить доступность своих портов снаружи. Это может
занять до 20 минут. В логах появятся сообщения вида «Self-testing indicates your
ORPort is reachable from the outside. Excellent». Если таковых нет, это значит,
что сервер недоступен из Сети — тогда следует перепроверить файрволл.
Как только сервер определит доступность, он загрузит на сервер директорий
(базу нод) свой дескриптор. Это позволит клиентам узнать адрес, порты, ключи и
другую информацию о нашем сервере. Можно зайти на
http://moria.seul.org:9032/tor/status/authority и найти там nickname своего
сервера, чтобы убедиться, что он будет использоваться клиентами. Правда,
обновляется он не моментально — иногда может потребоваться некоторая время,
чтобы эта информация в базе обновилась.
Вот и появился наш сервер в списке. Посмотрим на строчку ниже HelloHacker.
Что мы видим: s Exit Fast Running V2Dir Valid. Exit — означает, что мы являемся
Exit Node!
Ловись-ловись, рыбка
Итак, выходная нода настроена, запущена, добавлена в базу — кто-нибудь
обязательно ею воспользуется уже в самое ближайшее время. Что ж, остается только
запустить любимый снифер Wireshark, выбрать Интерфейс, смотрящий во внешнюю сеть
и включить захват пакетов. А дальше нужно чуть подождать. В большинстве случаев
пакеты начинают сыпаться в логи уже очень скоро :))
После этого можно отключить захват и проанализировать полученный дамп
(например, осуществить поиск строки pass в пакетах). Как ты знаешь HTTP-протокол
передает все в открытом виде, так что может попасться что-нибудь интересное (мне
за 40 минут работы попались 2 логина и пасса к забугорным трекерам). Согласись,
неплохо. Но все же самое вкусное пролетает мимо нас (вернее проходит то оно как
раз через нас, но зашифрованным). Но и тут есть выход. Мы уже писали в
майском номере о
тулзе, перехватывающей данные в SSL-соединениях – sslstrip. На прошедшей в
августе конференции BlackHat2009 Moxie Marlinspike зарелизил новую версию этой
замечательной программульки (кстати, настоятельно рекомендую ознакомиться с его
докладом — все материалы с BlackHat мы выкладывали на
сентябрьском DVD).
Скачиваем sslstrip с сайта автора и устанавливаем (подробнее от том как
использовать sslstrip смотри
майским номер).
Запускаем:
$ python sslstrip.py -a -l 8080 -w today.log
Так как мы являемся последним узлом, то трафик от предыдущего узла передается
зашифрованным, расшифровывается на нашем сервере и уже потом отправляется
конечному адресату. Итак, нам необходимо пропускать исходящий http трафик через
sslstrip. Для этого добавим в iptables такое правило:
$ iptables -t nat -I OUTPUT -p tcp -m owner -uid-owner 111 --dport 80 -j
DNAT --to-destination 127.0.0.1:8080
где 111 — id пользователя toruser. Иными словами, мы задаем, чтобы весь
исходящий HTTP-трафик пользователя toruser шел на sslstrip. Все, теперь процесс
полностью автоматизирован, а нам осталось только ждать. А потом проверять логи.
🙂
Анонимное сканирование
Перехватывать чужие логины и пароли мы научились. А вот задачка поинтересней.
Сталкивался ли ты c ситуацией, когда ты находишься во внутренней сети, а
посканировать интересующий тебя сервак нельзя, потому как это тут же привлечет
внимание IDS и соответственно админа. Или вот еще вариант: ты сканируешь
удаленный хост, а он распознает сканирование и блокирует твой айпишник.
Неприятные ситуации. Но и из них есть выход! Нам опять поможет Tor, который
можно использовать в качестве посредника для сканирования. Ведь, кто говорил,
что эта система можно использовать только для анонимного серфинга? 🙂
В чем преимущество такого сканирования? В нашем первом случае сканирование
сервера будет происходить из инета, а не из локальной сети. А во втором, даже
если нас заблокируют, мы всегда сможем пустить трафик через другой Tor-сервер,
благо их хватает. Итак, для наших экспериментов нам понадобится:
- Tor — у нас уже установлен и настроен
- Privoxy (www.privoxy.org)
- proxychains (proxychains.sourceforge.net)
- tortunnel (www.thoughtcrime.org/software/tortunnel)
- Nmap (nmap.org)
Устанавливаем, все, кроме 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
Поздравляю! Вот теперь мы сканируем через Tor-сеть. Правда что-то долго. А
все потому, что наши пакеты проходят через три узла прежде, чем достигнуть цели,
причем эти узлы могут быть не самые быстрые на планете. В случае сканирования
целой подсети, процесс может затянуться на часы или даже дни. Кроме того, такое
сканирование все еще не является анонимным, так как перед сканированием Nmap
посылает icmp запросы (идущие напрямую от нашей машины), чтобы проверить
доступность удаленной машины. Что ж, придется резать файрволом весь исходящий
трафик, идущей к этой машине не через Tor или просто указать опцию -PN Nmap’у
(чтобы он не проверял доступность удаленной машины): «iptables -A OUTPUT -dest
«. Я указываю везде опцию -PN, так как фаервол на
92.241.175.142 -j DROP
xakep.ru рубит ICMP_трафик, поэтому я вручную указываю, что хост жив.
Прокачиваем скорость
А как же быть со скоростью? Ведь с такой скоростью много не посканируешь, что
лишает смысла все наши изыски. Тут нам поможет утилита torrtunnel. Она служит
для того, чтобы пускать трафик сразу через выходной узел, минуя два предыдущих.
И в данной ситуации скорость сканирования зависит только от того, какой
последний нод ты выберешь. Для установки утилиты потребуются дополнительные
библиотеки boost. Скачиваем последнюю версию библиотек с сайта
www.boost.org. Распаковываем,
заходим в папку и выполняем:
$ 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 <torExitNodeHost>. Теперь нужно выбрать подходящий 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. Тем самым мы снизим уровень анонимности
(одна промежуточная нода вместо трех), но получим более шустрый серфинг. Заходим
в файл конфигурации и добавляем строчку:
forward-socks5 / 127.0.0.1:5060
Теперь открываем лиса и настраиваем 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
Ну вот, мы и заставили Tor работать на себя. Можем сканировать через Tor,
перехватывать чужие пароли. А что если нам самим понадобится использовать Tor
чтобы, например, на Gmail зайти? Как не попасть в логи sslstrip’a? Выход есть! В
пакете tortunnel есть утилита torscanner, предназначенная для поиска Exit
Node’ов, использующих sslstrip. Работает она следующим образом: мы передаем
программе URL страницы, содержащей https ссылку(и), после чего она напрямую
соединяется со всеми Exit Node’ами и запрашивает указанную страницу. Полученные
данные выводятся в консоль, но можно перенаправить вывод в файл, для дальнейшего
изучения. Синтаксис для запуска — «torscanner destinationHost
«. Например:
destinationPort request
$ torscanner www.google.ru 80 / > 1.txt
Если проанализировав файл 1.txt в ответах одного и серверов ты обнаружишь
подмену HTTPS на HTTP, то на сервере однозначно работает sslstrip.
Torscanner сканирует все выходные узлы, что занимает достаточно много
времени. Но я думаю, что ты сумеешь модифицировать программу таким образом,
чтобы она проверяла только определенный диапазон или один конкретный сервер и
уже их использовать в качестве выходных серверов (Tor’у можно явно указать какой
или какие выходные узлы использовать).
Жди подвох 🙂
Вывод может быть один — используя Tor будь осторожен. Да, система
обеспечивает неплохой уровень анонимности, но не может защитить твои данные от
перехвата. И пусть ты даже ты убедился, что на последнем узле не запущен
sslstrip, все равно никто не даст гарантии, что проходящие пакеты не дампятся
снифером. С другой стороны необязательно рассматривать Tor как исключительно
инструмент для анонимного серфинга в Сети. Несколько наших примеров — тому в
подтверждение.
Держать Exit Node — задача для крепких парней
Надо понимать, что работая в качестве Exite Node’ы, человек серьезно
подставляет себя. Ведь именно его IP светиться во время взломов и т.д. В
процессе написания статьи через мой сервер дважды пытались провести атаку
типа SQL-injection. Так что держи ухо востро, за такие вещи можно запросто
схлопотать от правоохранительных органов или от провайдера. Вот лишь
некоторые примеры:В 2006 г. спецслужбы Германии осуществили захват шести компьютеров,
работавших нодами сети Tor на основании того, что они были незаконно
использованы для доступа к детской порнографии.В 2007 г.
Национальная полиция Швеции арестовала известного эксперта по компьютерной
безопасности Дена Эгерстада по обвинению в неправомерном доступе к
компьютерной информации. 22-летний сотрудник компании Deranged Security
опубликовал на своем рабочем сайте пароли к электронной почте посольств,
негосударственных организаций, коммерческих фирм и правительственным
агентств разных стран. По его словам, он в качестве эксперимента создал 5
выходных серверов Tor и перехватывал через них незашифрованный трафик.В 2007 г. немецкая
полиция арестовала в Дюссельдорфе Александра Янссена, организовавшего у себя
на компьютере сервер Tor, через который неизвестный отправил ложное
сообщение о теракте. Несмотря на то, что вскоре г-н Янссен был отпущен,
он решил отказаться от дальнейшего использования своего компьютера в
качестве точки выхода Tor.
Скрытые сервисы — уникальная фишка Tor
Есть у Tor еще одна интересная фича — скрытые сервисы. Пользователи Tor
могут предоставлять различные сервисы, такие как веб-доступ или сервер
системы мгновенного обмена сообщениями, не открывая своё истинное
местоположение. Скрытые службы доступны через специальные псевдо-домены
верхнего уровня .onion. Сеть Tor понимает эти домены и направляет информацию
анонимно к скрытым службам. Скрытая служба затем обрабатывает её посредством
стандартного софта, который настраивается на прослушивание только
непубличных (закрытых для внешнего доступа) интерфейсов. Данный функционал
можно использовать для размещения сайта, не беспокоясь о цензуре. Никто не
будет в состоянии определить владельца сайта, и владелец сайта не будет в
состоянии узнать, кто использовал сайт.
Специализированные ОС
- Anonym.OS — LiveCD-ОС на базе OpenBSD, в которой весь входящий трафик
запрещен, а весь исходящий автоматически и прозрачно для пользователя
шифруется и анонимизируется при помощи Tor —
http://sourceforge.net/projects/anonym-os/ - ELE — Damn Small Linux+Dillo+Tor+Privoxy+Scroogle (LiveCD) —
http://northernsecurity.net/download/ele/ - Incognito LiveCD —
Gentoo+Tor+TrueCrypt+Thunderbird+Enigmail+Firefox+Torbutton+FireGPG+GnuPG+KeePassX
—
http://anonymityanywhere.com/incognito/ - Phantomix — LiveCD-дистрибутив, предназначенный для анонимного
пользования Интернетом с помощью Tor и Privoxy-
http://phantomix.ytternhagen.de/ - Tor-ramdisk — Дистрибутив Linux, разработанный, чтобы обеспечить работу
Tor полностью в оперативной памяти, без использования жесткого диска или
иных устройств долговременного хранения данных —
http://opensource.dyc.edu/tor-ramdisk/
WWW
Tor+Vidalia+Proxomitron+Freecap —
wsnow.net/my_soft/41-narushaya-zaprety.html
OperaTor — Opera+Tor+Polipo —
archetwist.com/en/opera/operator
Portable Tor — портативный пакет Tor, не требующий инсталляции на компьютер —
portabletor.sourceforge.net/
Torbutton — расширение Firefox, добавляющее в него кнопку включения и
выключения Tor. Обеспечивает также улучшенную защиту приватности и изоляцию
состояния браузера —
addons.mozilla.org/ru/firefox/addon/2275
Vuze — клиент файлообменной сети BitTorrent со встроенной поддержкой Tor —
azureus.sourceforge.net/
Неплохой мануал по настройке Tor —
www.torproject.org/docs/tor-doc-relay.html.ru
Полный список поддерживаемых опций —
www.torproject.org/tor-manual.html
Настройка скрытых сервисов —
www.torproject.org/docs/tor-hidden-service.html.ru
WARNING
Данная статья не является инструкцией или побуждением к действиям. Она
призвана лишь показать, что даже программы, создаваемые ради благих целей, могут
быть использованы во зло.
Заворачиваем весь трафик ОС в Tor / Postuf corporate blog / Habr
Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHubВ последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных уровнях с целью построения «модели» пользователя, которая позже против него же и может быть использована (или могла бы). Поэтому не удивительно, что все большее количество активных пользователей Интернета становятся уверены в необходимости механизмов проксирования и анонимизации. В связи с этим появляется все больше новых VPN-клиентов, но, как показывает практика, далеко не всем из них по-настоящему можно доверять: то не все работает из коробки, то анонимизируется только HTTP-трафик, то качество реализации хромает, а то и вовсе разработчики грешат сливанием данных о своих пользователях.
В этой статье мы попробуем собрать из ряда программных компонентов собственный инструмент с UI, который бы позволил полностью анонимизировать трафик локальной системы и не допустить утечек по «прослушиваемым» каналам ни на одном из этапов работы.
Главной нашей целью будет «сборка» надежной утилиты из готовых инструментов. Очевидно, что идея создания с нуля качественного инструмента за разумный срок чревата ошибками, а поэтому бытрее и надежнее будет выбрать готовые компоненты, а затем правильно их связать!
Что должен уметь инструмент?
- Перенаправлять весь трафик целевой системы на промежуточные узлы (желательно несколько) для надежной маскировки источника
- Отслеживать возможные нарушения анонимности, исправлять их и сообщать о них с помощью 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-скрипта) будет достаточно утомительно, поэтому самое время приступить к написанию небольшой утилиты, помогающей нам конкретно в следующем:
- Автоматическая установка конфигурации
- Смена своего identity в пределах Tor в любой момент
- Отслеживание целостности правил iptables и их перезапись при нарушении
- Отслеживание текущего identity (IP)
- Уведомление о двух предыдущих пунктах с помощью уведомлений графическогой оболочки
При первом запуске утилита самостоятельно скачает все необходимые компоненты, а при последующих запусках будет конфигурировать 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[0-9]\\\\+\\\\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/
, тогда его автозапуск и последующий мониторинг с определенной гибкостью управления демоном будет таким:
[Unit]
Description=Toroxy
After=network.target
StartLimitIntervalSec=0
[Service]
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
[Install]
# запускаемся на 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.
Детальная настройка Tor Browser – пошаговая инструкция
Продвинутые пользователи компьютера понимают, что в большинстве случаев банальной установки программ бывает недостаточно для их корректной работы. Это же относится и к анонимному интернет-обозревателю. Чтобы веб-серфинг был более комфортным, крайне желательно настройка Tor Browser.
Пошаговое руководство
Мы решили поделить нашу инструкцию на четыре глобальных раздела:
- Инсталляция защищенного интернет-обозревателя.
- Подключение к сети Тор.
- Смена поисковой системы по умолчанию.
- Настройка уровня безопасности.
Предлагаем вам ознакомиться с каждым из них более детально.
Этап №1: Инсталляция защищенного интернет-обозревателя
Первое действие в нашем случае – установка программы. Загрузить актуальную версию анонимного браузера Tor в любой момент можно с официального сайта. Не забудьте при этом выбрать русский язык. Далее, откройте полученный файл и запустите процедуру.
Этап №2: Подключение к сети Тор
При первом запуске программы вы увидите примерно следующее:
Если нажать на «Соединиться», то выберутся стандартные настройки подключения. Но в некоторых случаях браузер при этом работать не будет. Тогда нужно перейти в «Настроить». Здесь доступна настройка мостов и прокси.
Этап №3: Смена поисковой системы по умолчанию
Изначально в качество поисковой системы в Tor Browser используется иностранный сервис DuckDuckGo. Но он не слишком подходит для того, чтобы «шастать» по Даркнету, ведь не индексирует onion-сайты. Соответственно, ее лучше сменить. Мы рекомендуем три поисковика:
Более подробно про них вы можете узнать в данной статье.
Этап №4: Смена уровня безопасности
Ну а завершим мы пошаговую инструкцию по настройке браузера Тор на одном примечательном нюансе. Дело в том, что для интернет-серфинга предусмотрено три уровня безопасности:
- Стандартные – классический режим с минимальными ограничениями.
- Более безопасные – тут все понятно из названия, интернет-серфинг становится более ограниченным (предупреждение о воспроизведении аудио- и видеоматериалов, недоступность JS на некоторых ресурсах и так далее).
- Наиболее безопасные – полное отключение JavaScript, не отображается ряд символов и многое другое.
Для смены режимов нужно сделать следующее:
- В окне программы кликните на «луковицу» (этот значок находится левее адресной строки).
- Выберите второй пункт из контекстного меню.
- Выставьте оптимальное значение и нажмите на «ОК».
Читайте так же:
Найден способ кардинально ускорить Tor
2362, Текст: Валерия Шмырова
Немецкие ученые нашли способ сократить задержки в работе Tor за счет уменьшения количества сообщений, которые нужно передать для установки соединения. Но у метода есть побочный эффект — он увеличивает нагрузку на процессор и оперативную память.
Метод T0RTT
Немецкие ученые нашли способ сделать Tor и подобные ему «луковые» сети более эффективными, а также сократить в них задержки при работе. Над решением проблемы работали сотрудники Рурского университета в Бохуме, Вуппертальского университета и Университета Падерборна. Результаты их исследований были опубликованы в материалах к Симпозиуму по технологиям повышения конфиденциальности (PETS 2019).
Ученые предложили оптимизированный и упрощенный подход к созданию каналов, по которым передается трафик. Метод получил название T0RTT: Tor zero Round-Trip-Time.
Суть метода
В Tor и подобных ему сетях трафик передается от источника к клиенту по цепочке так называемых узлов. Публичный IP-адрес пользователя удается скрыть за счет того, что соединение с источником трафика осуществляется через другие компьютеры, которые играют роль посредников — ретрансляторов. Благодаря этому Tor позволяет анонимно посещать сайты, вести переписку по почте и в мессенджерах, а также пользоваться приложениями, которые работают через протокол TCP.
При передаче от клиента данные шифруются таким образом, чтобы прочитать их мог только выходной узел. Впоследствии данные еще несколько раз шифруются при передаче между промежуточными и сторожевыми узлами. Из-за многочисленных «слоев» шифрования подобные сети и называются «луковыми». Ключи шифрования передаются по протоколу Диффи-Хеллмана — на это уходит время и часть пропускной способности.
Суть метода T0RTT заключается в том, что он дает возможность сократить количество этапов передачи данных. Для этого используется так называемое «прокалываемое» шифрование (puncturable encryption). Благодаря этой схеме отправитель сможет отсылать зашифрованные данные в первом же сообщении, не обмениваясь предварительно сообщениями, в которых содержится ключи.
Немецкие ученые нашли способ сократить задержки в сети Tor
Таким образом количество сообщений, которые нужны для установки соединения, снижается, что и приводит к сокращению задержек. Как пояснили ресурсу The Register соавторы исследования Себастьян Лауэр (Sebastian Lauer) и Кай Геллерт (Kai Gellert), в общей сложности количество сообщений сократится примерно на половину. За счет более быстрой установки соединения повысится и его безопасность.
Однако исследователи предупреждают, что данные, циркулирующие между узлами по методу T0RTT, будут сложными, и в результате существенно возрастет нагрузка на оперативную память и процессор. Чтобы решить эту проблему, в «луковых» маршрутизаторах придется использовать более производительную аппаратуру, или же усовершенствовать механизм инкапсуляции ключей.
Как развивается Tor
В сущности Tor является системой прокси-серверов, поддерживающих «луковую» маршрутизацию и позволяющих пользователю сохранить анонимность в интернете. Эта возможность сделала Tor популярным инструментом в руках нарушителей закона, промышляющих продажей наркотиков и оружия, распространением порнографии и т. д. В 2014 г. ФБР заплатило $1 млн исследователям из Университета Карнеги-Меллон в США за помощь в проникновении в Tor с целью деанонимизации его пользователей.
В ноябре 2016 г. команда Tor Project объявила о создании прототипа собственного Android-смартфона, оснащенного продвинутыми средствами кибербезопасности. Прототип, получивший название Mission Improbable, был создан разработчиком анонимной сети Tor Майком Перри (Mike Perry). В качестве аппаратной части были взяты в готовом виде смартфоны Google Nexus и Pixel, изменения претерпело только ПО. Устройство работает под ОС Copperhead — защищенной версией Android, созданной для смартфонов Nexus и Pixel.
В мае 2019 г. команда Tor Project выпустила первую стабильную версию браузера Tor для Android. Разработчики обещают такой же уровень безопасности, как в десктопной версии. Браузера для iOS не предвидится в связи с ограничениями со стороны Apple.
В августе американские ученые выяснили, что всего за несколько тысяч долларов в месяц сеть Tor можно настолько замедлить, что пользователи откажутся в ней работать. Исследователи предложили на выбор три вида атаки: на мосты, на узлы и на систему распределения трафика. Стоимость варьируется от $1,6 тыс. до $17 тыс. в месяц, что легко может себе позволить любое правительство.
FAQ — часто задаваемые вопросы по Tor Browser
Недавно загрузившие Tor Browser люди легко могут заметить, что он загружает страницы далеко не так быстро, если сравнивать с другими интернет-обозревателями (Chrome, Opera, Mozilla Firefox и т. д.). И это…
Читать далее »«Vidalia не смогла запустить Tor» – это та ошибка, с которой ранее могли столкнуться пользователи защищенного интернет-обозревателя. Сейчас же она появляется в исключительных ситуациях, которых можно полностью избежать. О том,…
Читать далее »Интернет-обозреватель Тор чрезвычайно полюбился огромному количеству пользователей из-за продвигаемой концепции «свободного интернета». А один из ее ключевых постулатов – возможность посещения любых веб-ресурсов без ограничений. А ограничения эти, к сожалению,…
Читать далее »Мир помешался на анонимности и конфиденциальности персональных данных. Новое течение активизировалось после скандалов на почве утечек информации и ее использовании в нелицеприятных вещах. Поэтому сегодня мы поговорим о том, как…
Читать далее »Современный тренд заключается в бесконечном повышении уровня конфиденциальности персональных данных. Для некоторых людей это реально важнейший вопрос в жизни и их можно понять. Но за все нужно платить. Сегодня мы…
Читать далее »Далеко не всегда интернет-обозреватель Tor работает стабильно. В принципе, это можно сказать про весь компьютерный софт. Рано или поздно пользователь все равно столкнется с какими-либо ошибками. И далеко не всегда…
Читать далее »Tor Browser далеко не всегда функционирует корректно. Пользователи нередко наблюдают проблемы при его запуске, настройке, загрузке сайтов и при других обстоятельствах. Особенно это неприятно, если попросту не удается зайти в…
Читать далее »Вполне логично, что многих российских пользователей анонимного интернет-обозревателя Tor волнует вопрос, касающийся его легальности. Ведь в одно время в новостях постоянно мелькал закон, гласящий об его официальном запрете вместе со…
Читать далее »Google, Yandex, Mail – существует множество поисковых систем, которые значительно облегчают веб-серфинг для пользователей. Но они работают только с так называемым верхним интернетом. А вот для Даркнета, доступ в который…
Читать далее »Темная сторона интернета, Даркнет, Deep Web – названий много, но суть одна. За ними кроются те веб-ресурсы, которые затруднительно открыть через браузер Chrome (и ему подобные) и практически невозможно отыскать…
Читать далее »Как пользоваться Tor Browser — подробное руководство
«Как пользоваться браузером Тор?» – это довольно популярный вопрос среди пользователей, которые совсем недавно его установили или только планируют. В действительности никаких сложностей с веб-серфингом через него возникнуть не должно, ведь по интерфейсу он ничем не отличается от тех же Google Chrome, Mozilla Firefox и Opera. Но все же мы подготовили подробное руководство.
Руководство
Представленная инструкция включает в себя четыре глобальных раздела:
Но в первую очередь мы хотим обозначить один важный нюанс. Дело в том, что посмотреть историю посещений в браузере Тор невозможно, хотя многим пользователям хотелось бы наличие такой функции. Но это бы противоречило концепции приватного интернет-серфинга. По этой причине в журнал не запишутся никакие сайты, даже если вы на них заходили.
Раздел №1: Инсталляция интернет-обозревателя
И начать следует именно с процедуры установки Tor Browser. Разберем ее отдельно для ПК и мобильных девайсов.
Инструкция для компьютеров и ноутбуков:
- Перейдите на страницу загрузки браузера https://www.torproject.org/download/download-easy.html.en.
- Выберите русский язык и кликните на Download.
- Сохраните предложенный файл, а затем откройте его.
- Выполните установку, следуя подсказкам на экране.
- По завершении процесса закройте окошко.
Инструкция для смартфонов и планшетов на Android и iOS:
- Запустите магазин приложений (Play Market и App Store соответственно).
- Введите в строку поиска Tor Browser.
- Перейдите на страницу нужного приложения.Активируйте опцию загрузки.
- Предоставьте все подтверждения, если они потребуются.
Более подробные статьи для разных платформ:
Раздел №2: Настройка
В принципе браузер Тор не требует детальной настройки. Пользователю достаточно в приветственном окне (в случае с компьютерами и ноутбуками) кликнуть на кнопочку «Соединиться» и дождаться появления основного окна программы.Сразу же после станет доступным веб-серфингом с возможностью посещения onion-ресурсов.
Раздел №3: Поиск сайтов из Даркнета
Вот с этой темой все гораздо интереснее. Ведь Tor приманивает огромное количество пользователя именно благодаря тому, что с его помощью возможно посещение Даркнета (Darknet, Deep Web, «Темная сторона интернета» и множество других обозначений). В действительности это просто ресурсы, открыть которые невозможно через стандартный браузер, а также их нельзя найти с помощью привычных нам поисковиков (Google, Yandex и так далее).
Во всех деталях с доступом в Даркнет вы можете ознакомиться в этом материале.
Почему-то в Сети нередко встречается вопрос: «Как очистить историю в браузере Тор». И ответ на него предельно прост: вручную это делать не нужно. Журнал посещений в данном интернет-обозревателе не ведется, поэтому и чистить ничего не нужно. Вот и все, что касается данного вопроса.
Раздел №4: Дополнительная информация
Также многих пользователей волнует аспект безопасности в ходе пребывания в Сети с помощью данного веб-обозревателя. И ситуация предельно простая: браузер обеспечивает высокую степень приватности для личных данных, но все же не защищает их целиком. Пользователю необходимо сменить интернет-привычки для сохранения статуса Инкогнито.
Более детально данный аспект разобран в нашей статье «Безопасен ли Tor Browser».