id: Гость   вход   регистрация
текущее время 09:34 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 След.
Комментарии [скрыть комментарии/форму]
— Гость (28/07/2012 13:01)   <#>
Но я бы принципиально делал только статичные настройки. Никаких изменений и перезагрузок правил файрволла в процессе работы. Чтобы не было так: захотели поработать анонимно — надо подгружать одни правила, захотели поработать неанонимно и быстро — надо загружать другие.


А я так и не делаю. Просто бывает, что начинаешь дебажить настройки фаервола, особенно когда тестируешь, и параллельно работаешь. Это, конечно, не очено правильно и лучше так не делать, но жизно периодически вносит свои коррективы.
Интересно, если при такой схеме dns идет по своим цепочкам, соединение – по своим (а при использовании еще и сокс-порта в приложении – то то, что идет на него по своим, то, что "утекает" – по цепочкам транс-порта), это хуже или лучше для анонимности?
Я все таки попробовал юзать сокс + прозрачную торификацию как последний бастион защиты (за исключением всяких консольных команд типа ssh, msmtp), и обнаружил, что запуск видалии почему-то заставляет Tor прекращать слушать другие открытые сокс-порты, я еще не понял, все или только часть.
Надо дебажить и разбираться.
На транс- и днс-порты ее запуск не влияет.
— Гость (28/07/2012 13:10)   <#>
Кстати, видалия убивает все открытые сокс-порты, кроме 9050. Точнее, стала убивать, вчера вроде бы этого не делала.
После запуска видалии в логах Tor такое:
— Гость (28/07/2012 13:13)   <#>
При запущенной видалии pkill -1 tor и /etc/init.d/tor reload не релоадят конфиг тора:
— Гость (01/08/2012 21:46)   <#>
Методом научного тыка я обнаружил, что такое гадское поведение vidalia лечиться удалением ее домашней диры перед каждым новым запуском:
— unknown (04/11/2012 21:28)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В текущей версии торбраузера починена (пока снова не поломали) прозрачная торификация. С нею удалось запустить несвязанные профили торбраузеров на общем системном торе. Изменения внесены в документ.
— Гость (05/11/2012 01:09)   <#>
Спасибо, позитивная новость.


Я бы сделал ещё одну оговорку, уже упоминавшуюся:

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

Грубо говоря, если всё нужно легко проксифицируется, то зачем прозрачная торификация? Случись чего, зловредная программа не сможет выйти в сеть (например, чтобы слить информацию об используемом железе), если не достаточно умна, чтобы подцепить правильный прокси из настроек — хоть какой-то препон для потенциально уязвимых приложений...
— Гость (09/12/2012 00:08)   <#>
В текущей версии торбраузера починена (пока снова не поломали) прозрачная торификация. С нею удалось запустить несвязанные профили торбраузеров на общем системном торе. Изменения внесены в документ.


Ох, а я проспал эту инфу... С последним работает?!
P.S. А на прокси кроме 9050 натравляется?
— Гость (09/12/2012 01:45)   <#>
С последним работает?!
Проверяйте.

А на прокси кроме 9050 натравляется?
Предыдущие версии точно натравлялись на произвольный IP:порт, но иногда подглючивало. Впрочем, я делал не как тут описано, а через двойное заворачивание в Tor с последующим переключением на одинарное заворачивание после того, как firefox запустится. Трюк приходится повторять каждый раз после перезапуска TBB.
— Гость (09/12/2012 07:46)   <#>
Вроде бы работает, и "прозрачная торификация", и перенаправление на другой soks-порт. netstat показывает, что соединение идет через другой порт, нежели 9050, через 9050 не идет. Это архигут.
Однако теперь надо подумать головой, как теперь работать с разными приложениями в сети. А то из-за прежнего бардака с невозможностью этого уже ментально сформировались определенные правила работы, главное их грамотно поменять, чтобы не напороться на грабли деанона.
Надо будет еще попробовать http-порты и т.п.
— unknown (09/12/2012 20:08)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Развести разных псевдопользователей прозрачно по разным портам — вполне хорошее дело.

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

Теперь можно параллельно пользоваться разными программами и анонимными профилями, а наблюдатель вида ISP будет видеть общий трафик от системного тора через три гварда, не зная сколько конкретно приложений или псевдопрофилей его используют.
— Гость (09/12/2012 21:02)   <#>

Ценой достижения
не зная сколько конкретно приложений или псевдопрофилей его используют.
появилась единая точка отказа. Выше ли вероятность выбрать одну и ту же цепочку, если порты разные, а tor один? Иногда tor глючит, из-за чего в статистике может появиться что-то не то — в таких случаях проблема скажется на обоих "портах" сразу, ибо статистика общая. Опция свежая, не факт, что хорошо оттестированная, не известно, есть ли у неё сайд-эффекты. Как по мне, так пока лучше по старинке пользоваться: разные профили — разные tor'ы, причём запретить fw'ом слать пакеты торифицированному юзеру в чужой тор вообще. Ну, это всё, как всегда, на случай, когда смешивание профилей действительно смертельно опасно.
— unknown (09/12/2012 23:53, исправлен 09/12/2012 23:59)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

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


В этом алгоритме есть и недостаток. Предположим, пользователь параллельно бродит под двумя профилями по подконтрольным противнику ресурсам. В одно и то же время. Похожим образом. Это могут быть даже разные сайты, но с общей баннерной сетью. И у двух профилей никогда не совпадают экситы в одинаковый момент времени. При том, что экситов в сети мало и некоторые хватают на себя ощутимый процент трафика. Тоже своего рода утечка информации. Антикорреляция. Вопрос, что сложнее выявить противнику — антикорреляцию на общем торе или корреляцию на разных? Вроде как решили, что антикорреляция допустима.

— Гость (10/12/2012 00:41)   <#>
Понятно. Да, я именно такой способ коррелирования и предполагал, как один из возможных.


А как они собираются отлавливать корреляцию на разных? По сторожевым узлам, разве что... Впрочем, да, компромисс между подходами понятен, но мне кажется, что зря они запретили совпадение цепочек. Оптимум по отсутствию корреляций реализуется тогда, когда выбор цепочки для одного пользователя никак не связан с выбором цепочки для другого (хотя могут быть и другие тонкости/минусы от совпадения цепочек).

Напоминает проблему кодовых замков. Надо бы собраться и родить развёрнутый пост на тему.
— unknown (10/12/2012 01:42)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
А как они собираются отлавливать корреляцию на разных? По сторожевым узлам, разве что...

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

У него первый Tor-процесс может выбрать гвард, а второй Tor-процесс может периодически выбирать этот же гвард в качестве исходящего (эксита). Ведь большинство экситов — ещё и гварды. Это может быть даже не просто два узла, подконтрольные одному противнику, но даже один и тот же узел! Который два параллельных анонимных профиля выберут одновременно, устроив себе сразу одновременно и корреляцию за счёт связывания профилей и деанон айпишника за счёт атаки пересечения. И чем больше торов пользователь параллельно запускает с одного айпишника, тем проще их связать в локальное множество анонимности, вплоть до одного анонима. Упрощается и создание активных атак на поиск таких пользователей. Ну там, экситы могут немного помутить с трафиком для подозреваемых профилей с целью подтверждения.

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

зря они запретили совпадение цепочек.

Одно дело два злонамеренных эксита будут пытаться искать корреляцию между анонимами, а другое дело ОДИН общий эксит, который знает даже предыдущего миддлмана, решит провести какую-то активную атаку на подтверждения связывания профилей. Вот зайдут два анонима на общий ресурс, а он им слегка переставит местами HTTP-ответы с сайта (можно даже в виде скрытых меток, да хоть с таймингом) и посмотрит, как они на это отреагируют. Как бы там связь профилей за один шаг и при минимуме затрат ресурсов не раскрылась.


Или невозможных дифференциалов в криптоанализе.
— Гость (10/12/2012 02:20)   <#>
В связи с описанной ситуацией, появляется актуальность проблемы "прибивания" торчата "гвоздями" к системному тору.
Я пока так и не разобрался, как это сделать, видимо надо как-то сырцы править?
На страницу: 1, 2, 3, 4, 5, ... , 12, 13, 14, 15, 16 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3