id: Гость   вход   регистрация
текущее время 12:42 29/03/2024
Владелец: unknown (создано 24/06/2012 17:27), редакция от 12/08/2015 22:34 (автор: unknown) Печать
Категории: софт, анонимность, tor
http://www.pgpru.com/Библиотека/Руководства/СетеваяАнонимность/ПродвинутоеИспользованиеTorвUnix/РаздельноеИспользованиеTorbrowserсСистемнымTorиПрозрачнаяТорификация
создать
просмотр
редакции
ссылки

Раздельный запуск Torbrowser от нескольких пользователей с общим системным Tor-процессом и локальная прозрачная торификация


Оглавление документа:

Цель варианта


  1. Использовать торбраузер с локальным системным тором вместо поставляемого в составе TBB.
  2. Осуществить одновременную работу нескольких пользователей системы через системный тор с построением различных цепочек для каждого пользователя посредством подключения к разным портам SocksPort и посредством прозрачной торификации на разные порты TransPort, DNSPort для других програм (опционально — для самого TBB использование прозрачной торификации устарело и не рекомендуется).
  3. Все пакеты, посланные из под конкретного пользователя торбраузером должны направляться файрволлом только на определённые порты локального хоста, связанные с работой системного тора. Это существенно исключает возможность утечки пакетов при уязвимостях в торбраузере, но существенно не защищает от преднамеренных целевых атак на данную конфигурацию.

Конфигурация тор


Остановите системный тор: /etc/init.d/tor stop. Если в текущей версии с этим есть проблемы, используйте kill.
Закомментируйте в конфиг-файле /etc/tor/torrc опцию SocksListenAddress 127.0.0.1. Она устарела, по умолчанию тор слушает только локальные соединения.


В случае проблем с запуском /etc/init.d/tor start, можно в ответ на соответствующие ошибки добавлять опции:


Для прозрачной торификации по умолчанию и для работы через SocksPort тора используются опции:


Следует добавить нужное количество дополнительных портов:


Поскольку порт 9051 занят, то добавим опции управляющего порта:


Управляющий порт м.б. использован для работы с программой tor-arm, показывающий статистику соединений с сетью tor и позволяющей менять цепочки для всех соединений.


Запуск тор /etc/init.d tor start не должен приводить к ошибкам и должен показывать, что все внесённые в конфиг порты работают нормально.

Настройка iptables


Во многих системах по-умолчанию используется сложный механизм инициализации, конфигурирования и хранения конфигов iptables. Подразумевается, что этот механизм отключен, а вместо него используется шелл-скрипт, который пользователь поддерживает самостоятельно. В Debian/Linux он может быть размещён, например, в /etc/network/if-pre-up.d. Здесь приведены только фрагменты такого скрипта, относящиеся к рассматриваемому варианту торификации.


Закроем снаружи все открытые тор-порты, даже если они принимают только локальные соединения:

$IPTABLES -- переменная содержит путь к iptables, обычно:
IPTABLES="/sbin/iptables"

# $INET_IFACE -- внешний сетевой интерфейс, обычно:
INET_IFACE="eth0"

# blocked_myports -- пользовательская цепочка для заблокированных портов

iptables -N blocked_myports; iptables -F blocked_myports

for PROTOCOL in TCP UDP; do
    for PORT in $(seq 53 58) $(seq 9040 9045) \
        $(seq 9050 90559059 9060do

        $IPTABLES -A blocked_myports -i $INET_IFACE -o !lo -p $PROTOCOL \
        --dport $PORT -j DROP

    done
done

$IPTABLES -A INPUT -p TCP -j blocked_myports
$IPTABLES -A INPUT -p UDP -j blocked_myports


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


$IPTABLES -t nat -A OUTPUT -o lo -j RETURN
$IPTABLES -t nat -A OUTPUT -d 127.0.0.1 -j RETURN


Правило для первого анонимного пользователя:


#Разрешим соединение с SOCKS-портом
$IPTABLES -t filter -A OUTPUT -d 127.0.0.1 -p tcp -m owner \
--uid-owner anonym_1 --dport 9051 -j ACCEPT

###Прозрачная торификация [начало]###
#
#Не требуется при работе TBB
#Может быть использована для одновременной работы других програм
#При отсутствии необходимости эти опции м.б. закоментированы

# Прозрачная торификация TCP на порт 9041

$IPTABLES -t nat -A OUTPUT  -p tcp -m owner --uid-owner anonym_1  \
 -m tcp -j REDIRECT --to-ports 9041
 
$IPTABLES -t filter -A OUTPUT  -d 127.0.0.1 -p tcp -m owner --uid-owner anonym_1  \
 -m tcp --dport 9041 -j ACCEPT
 
#Прозрачная торификация DNS на порт 54

$IPTABLES -t nat -A OUTPUT  -p udp -m owner --uid-owner anonym_1  \
 -m udp --dport 53 -j REDIRECT --to-ports 54

$IPTABLES -t filter -A OUTPUT  -d 127.0.0.1 -p udp -m owner --uid-owner anonym_1  \
 -m udp --dport 54 -j ACCEPT

#
###Прозрачная торификация [конец]###

#Больше этому пользователю ничего не разрешено:

$IPTABLES -A OUTPUT -m owner --uid-owner anonym_1 -j REJECT


По аналогии, правило для второго анонимного пользователя (с закоментированной прозрачной торификацией):


$IPTABLES -t filter -A OUTPUT -d 127.0.0.1 -p tcp -m owner \
--uid-owner anonym_2 --dport 9052 -j ACCEPT

#Прозрачная торификация закоментирована

$IPTABLES -t nat -A OUTPUT  -p tcp -m owner --uid-owner anonym_2  \
# -m tcp -j REDIRECT --to-ports 9042
 
#$IPTABLES -t filter -A OUTPUT  -d 127.0.0.1 -p tcp -m owner --uid-owner anonym_2  \
# -m tcp --dport 9042 -j ACCEPT

#$IPTABLES -t nat -A OUTPUT  -p udp -m owner --uid-owner anonym_2  \
# -m udp --dport 53 -j REDIRECT --to-ports 55

#$IPTABLES -t filter -A OUTPUT  -d 127.0.0.1 -p udp -m owner --uid-owner anonym_2  \
# -m udp --dport 55 -j ACCEPT

$IPTABLES -A OUTPUT -m owner --uid-owner anonym_2 -j REJECT


Разрешим выход наружу самому системному тору:


TOR_UID="debian-tor"

$IPTABLES -A OUTPUT -m owner --uid-owner $TOR_UID -j ACCEPT

Использование tor-arm


Использование пакета Vidalia с системным Tor нецелесообразно из-за полного сворачивания её поддержки. Рекомендуется завести отдельно пользователя, включить его в группу tor-arm и запускать из под него утилиту tor-arm.


Следует избегать запуска tor-arm из под пользователя debian-tor, несмотря на то, что такая рекомендация имеется в пакете и долгое время оставалась неисправленной.


Настройка торбраузера

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


Скачанные файлы с подписями и суммами можно разместить в отдельном каталоге и проверить скриптом:

#! /bin/sh

echo > tbbchecklog.txt

sha256sum -c sha256sums-unsigned-build.txt 2>&1 | grep OK >> tbbchecklog.txt

echo >> tbbchecklog.txt

for a in sha256*.asc ; do 
 gpg --verify $a sha256sums-unsigned-build.txt >> tbbchecklog.txt 2>&1 ; 
 echo >> tbbchecklog.txt
done

echo >> tbbchecklog.txt

gpg --verify tor-browser-linux64*.asc >> tbbchecklog.txt 2>&1

echo >> tbbchecklog.txt


Перед ручным обновлением рекомендуется экспортировать старые закладки в файл, удалить старый распакованный каталог TBB. Впоследствии возможно импортировать закладки из файла обратно в новый распакованный браузер (вкладки: Bookmarks — Show all Bookmarks — Import and Backup).


Существует вероятность уязвимости в браузере, приводящая к утечке закладок. Поэтому следует рассмотреть целесообразность хранения определённых закладок торбраузера для конкретного анонимного профиля.


В распакованном каталоге TBB удалите расширение запуска Tor из связки:



Запустите TBB:



Зайдите в настройки: Edit → Preferences → Advanced → Network → Settings


И выберите опции:



Для другого пользователя следует выбирать другой порт, в соответствии с настройками файрволла. Следует также обращать внимание на возможность сброса этих настроек при перезапуске.


В адресной строке браузера нужно набрать about:config, для внесения некоторых опций, перечисленных в скрипте запуска start-tor-browser:


# extensions.torbutton.custom.socks_host  127.0.0.1
# extensions.torbutton.custom.socks_port  <SocksPort>
# extensions.torbutton.inserted_button    true
# extensions.torbutton.launch_warning     false
# extensions.torbutton.loglevel           2
# extensions.torbutton.logmethod          0
# extensions.torbutton.settings_method    custom
# extensions.torbutton.socks_port         <SocksPort>
# extensions.torbutton.use_privoxy        false
# app.update.auto                         false


В торбраузере, начиная с версии 4.5, организована корректная работа с SOCKS-портом, при этом для разных доменов выбираются разные исходящие узлы и существует возможность менять исходящий узел для каждой вкладки при помощи опции New Tor Circuit for this Site в Torbutton. При этом из-за удаления плагина tor-launcher, предназначенного для запуска локального (несистемного) Tor, часть опций tor-button будет недоступна. В связи с этим рекомендуется настраиваеть торбраузер на работу с системным тором именно через SOCKS-порт, а не через прозрачную торификацию. Прозрачная торификация может быть использована для этого же пользователя для работы с другими программами, но ей лучше не пользоваться при повышенных требования анонимности из-за опасениях утечки профилирующих и идентифицирующих данных, а также по другим возможным причинам.


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


Можно запустить два и более TBB из под разных пользователей одновременно. При одновременной проверке они должны показывать разный IP-адрес исходящих узлов при проверке на одном и том же домене.


При работе из-под одного пользователя для смены профиля рекомендуется перезапустить браузер и сменить все цепочки программной tor-arm или отправкой сигнала системному тор-процессу.


 
На страницу: 1, 2, 3, 4, 5, ... , 12, 13, 14, 15, 16 След.
Комментарии [скрыть комментарии/форму]
— Гость (10/12/2012 08:34)   <#>

Пусть один узел является сторожевым для одного Tor'а и при этом же exit'ом для другого Tor'а. Поясните, как оператор такого узла может легко распознать эту ситуацию.


Тот же вопрос, что и выше: как?! Даже рассматривались такие вырожденные сети-гидры, когда много миддлманов, и всего один или малое число экситов. Какие бы манипуляции не делал с выходным трафиком одного Tor'а эксит, как это может автоматически повлиять на трафик другого Tor'а, использующего тот же эксит? Как тайминг-атаки, так и атаки пересечения легко делаются, когда атакующий контрлирует 2 участка сети, принадлежащих одной и той же цепочке. В данном же случае цепочки совершенно разные: перекрывание трафика одной цепочке никак не повлияет на трафик, идущий по другим цепочкам.

В случае, когда узел сторожевой для одного Tor'а и эксит для другого Tor'а, ситуация идентична. Полное перекрывание кислорода одной цепочке не влияет никак на трафик на другой цепочке. Или меня сильно подглючивает в это зимнее утро, или вы писали вчера уже засыпая — что-то одно из двух... :)


Кстати, да, тоже интересный вопрос. Разработчики торчата не делают дистрибуции, позволяющие привязать сервис к альтернативному Tor'у? Как там с задержками доставки сообщений? Большие лаги? Вообще, торчат — скрытый сервис, а они, как известно, не очень много анонимность для себя имеют, в отличие от их клиентов. Я к тому, что поднятие торчата на основном торе может ли снизить анонимность? Ведь тогда любой сможет сам инициировать сообщение с моим тором, строить цепочки к нему (конечно, не сам, а рандеву-точка, но это уже детали).
— unknown (10/12/2012 10:37, исправлен 10/12/2012 10:39)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Пусть один узел является сторожевым для одного Tor'а и при этом же exit'ом для другого Tor'а. Поясните, как оператор такого узла может легко распознать эту ситуацию.

Наверное, насчёт легко я действительно переборщил. Сейчас буду выкручиваться :)


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


А если не ждать, пока порвётся и при помощи DPI трафик на входе в тор сеть слегка помодулировать?


Это скорее маловероятная ситуация (вспоминается "не было ни единого разрыва"), но ничто не мешает гварду-экситу логировать такие подозрительные совпадения. Это увеличивает шансы на атаку на раскрытие IP путём пересечения, но не позволяет связать профили из разных цепочек, т.к. вторая цепочка уйдёт на другой эксит.


Если же просто с одного эксита выходят две разные цепочки. То, тоже, не совсем ясно: если эксит резко затормозит скорость на одной, не подрастёт ли слегка скорость на второй (и наоборот), если в тор-сети нет более узких мест.


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


Разработчики торчата не делают дистрибуции, позволяющие привязать сервис к альтернативному Tor'у?

То он был на питоне, то его забросили, то возобновили, то хотели делать на свободных аналогах визуал бэйсика и дельфи (Lazarus? Free Pascal?), то форкнули на плюсах, а теперь делают на Java. Там в архивах хотя бы электронные подписи есть? И торпроджект этот многострадальный проект как-то никогда не рекомендовал.

— Гость (11/12/2012 04:01)   <#>

В альтернативной ситуации всё тоже было бы плохо: если цепочки строились так, что экситы для разных портов должны быть непременно разные, то сторожевой узел, порвав/промоделировав входящий трафик, вызовет одновременную реакцию на экситах всех цепочек. Сторожевой узел — он как ствол дерева, за него потрясёшь — и сразу все ветки затряслись. Если считать, что у сторожевого узла есть какие-то кооперации с экситом, не спасёт ничего, т.к. тривиальная атака пересечения.


Есть миллион разных типов подозрительностей, но начиная защищаться от одного типа атаки, мы одновременно усиливаем все остальные типы атак. Вам показалось, что одна из n возможных атак заслуживает внимания, и от неё надо избавляться, во что бы ни было. Вы избавляетесь, а противник теперь точно знает, что эту атаку пробовать не надо, а надо пробовать какие-то из n-1 оставшихся. Т.е. вы таким образом уменьшили общее количество возможностей для перебора атакующим. Если из каких-то k атак все они равновероятны и равноэффективны, то приписывание большего веса одной из этих атак (по сравнению с другими) приводит лишь к упрощению жизни атакующего. На самом деле, если нет теории и строгих оценок на вероятности и эффективности разных атак, такие наивные попытки защиты превращаются в голые интуиционистские инсинуации. Я сам через них недавно прошёл, но мне немного вправили мозги, осталось только заформализовать идею и изложить тут. Жаль, пока нету поста про парадокс кодовых замков, так что сослаться не на что. Как только будет, так сразу и обсудим.


Зависит от того, как написан Tor-клиент. Если же Tor-клиенты разные, то такого влияния эксита нет вообще.


Я уверен в этом :) Но «один Tor-клиент, одна программа, его использующая, и один профиль её» — слишком нацистская далёкая от реального мира ситуация. Не везде это подходит.


А что вы хотели от кулхацкерско-наркоманско-педофильской разработки? Наверно, писали всем миром скрытых ресурсов, где каждый вносил в проект всё, что у него было и что он лично умел :) Несколько лет назад кто-то где-то писал, что там после запуска надо 10-15 минут ждать, пока он сообщения начнёт доставлять. Это пофиксили?

> Возможно, я действительно был не прав, но стоит подумать хорошенько.
Не бойтесь спорить с самом unknown'ом и задавать ему вопросы! Как видите, даже unknown тоже человек может ошибаться. Авторитет авторитетом, но ошибаемся мы все :)
— Гость (29/12/2012 11:17)   <#>
Как в текущей сборке обстоят дела со сменой дефолтного IP:PORT Tor'а в сетевых настройках? Например, я хочу заставить firefox из TBB работать через IP:PORT на внешнем «Tor-роутере». Основная проблема ранних релизов TBB была в том, что при рестарте TBB все сетевые настройки сбрасывал до дефолтных, из-за чего приходилось изворачиваться следующим образом:
  1. Ставим временно прозрачную торификацию.
  2. Запускаем TBB и ждём, пока он выкачает статистику (через двойное заворачивание в Tor), после чего запустит firefox.
  3. Менем сетевые настройки в firefox в TorButton на заданный IP:PORT.
  4. Отключаем прозрачную торификацию и разрешаем соединение только на заданные IP:PORT, на которых слушает «административная Tor-прокси».
После каждого рестарта TBB этот цирк приходилось повторять заново. Можно ли теперь это делать проще? Или надо руками лезть в скрипт запуска и что-то там менять на свой страх и риск?
— Гость (09/04/2013 23:47)   <#>
Все в курсе, что номер порта в tor поменялся на 9150.
— Гость (10/04/2013 00:28)   <#>
Все в курсе, что номер порта в tor поменялся на 9150.
В TBB порт выбирается случайно из числа свободных.
— unknown (10/04/2013 09:45)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В системном конфиге при использовании системного демона Tor, отличнго от Tor-связки, механизм случайного выбора порта не используется. А прописать вручную в конфиге можно тот, который нужно. Чтобы и рулить его файрволлом.

Подозреваю, что и в связке (TBB) при некоей необходимости можно настроить также.
— Гость (13/04/2013 01:59)   <#>
Все в курсе, что номер порта в tor поменялся на 9150.

Заметил. Видать, теперь 2 TBB впараллель искаропки работать не будут. В чём была мотивация? Всё сломали.
— Гость (13/04/2013 11:37)   <#>
В TBB порт выбирается случайно из числа свободных.
господа-товаристчи! а что мешает снять галку в Настройки-Дополнительные-Настроить ControlPort автоматически? у кого там гвоздями забито?

Заметил. Видать, теперь 2 TBB впараллель искаропки работать не будут.
может попробовать сделать уникальными пути к каждому пакету все в там же "Настройки-Дополнительные" и там же присвоить хоть рандомный (ControlPort) хоть фиксированный номер порта?
— Гость (13/04/2013 11:43)   <#>
Все в курсе, что номер порта в tor поменялся на 9150
да хоть какой ставьте из свободных и открытых для файервола. только нужно не забывать редактировать torrc. если выбрали 9250, соответственно подправить в нем (torrc) вот здесь: ControlPort 9251. проверено на собственном опыте, все работает. и конечно не забыть приложениям показать, что у вас нестандартный 9050 (9150).
— Гость (13/04/2013 11:46)   <#>
ЗЫ и в этой строке:
SocksPort 9250

пардоньте))
— Гость (01/05/2013 23:19)   <#>
Последняя версия TBB с внешним IP:порт в качестве Tor-прокси ведёт себя чуть лучше, но смысл тот же:
  1. Включаем прозрачную торификацию.
  2. После запуска TBB с двойным заворачиванием редактируем настройки, переключаясь на иной IP:порт Tor'а.
  3. При последующем старте TBB сетевые настройки на нужный IP:порт сохраняются (раньше сбрасывались в дефолт), но TBB всё равно ждёт, когда запустится его собственный Tor и состроит цепочки. Следовательно, приходится ради его старта опять включать прозрачную торификацию и ждать старта через двойное заворачивание.
Из коробки, в общем, не работает (подозреваю, что с чисто прозрачной торификацией дела обстоят точно так же).
— unknown (02/05/2013 16:41)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Не совсем так же. Первый раз приходится помучиться с двойной торификацией, затем надо отключить проверку версии в about:config, настройки запоминаются и прозрачная торификация работает сразу после старта.
— Гость (02/05/2013 16:58)   <#>
Не понимаю зачем нужна двойная торификация, если можно сразу запускать браузер отдельно, правкой скрипта запуска? Настройки сохраняются, всё работает. Зачем?!
— Гость (02/05/2013 17:47)   <#>
./App/Firefox/firefox -profile ./Data/profile -style

Откуда взята опция style? Тут такой нет. Не помешала бы опция -no-remote
На страницу: 1, 2, 3, 4, 5, ... , 12, 13, 14, 15, 16 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3