id: Гость   вход   регистрация
текущее время 12:46 28/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, ... , 6, 7, 8, 9, 10, ... , 16 След.
Комментарии [скрыть комментарии/форму]
— Гость (22/07/2014 13:56)   <#>

Приводит ли это к деанону при конкретных правилах iptables — другой вопрос, но главное, что баг есть. :(
— Гость (08/08/2014 04:28)   <#>
Ещё немного про iptables: было замечено, что кто-то шлёт ICMP-пакеты во вне, и эти пакеты блокируются. Включил логи, и там было обнаружено, что-то предельно странное, причём всё на интерфейсе lo:



У меня есть глюки (или хардвар или активные атаки подтверждения со стороны ISP, возможно вкупе с недокументированными возможностями сетевой), из-за которых, если-таки случились, пока не сделаю ifconfig eth0 down и не перезапущу потом сеть, интерфейс вообще не видит ответных пакетов из сети. Из-за этого Tor постоянно испытвает обрывы, и чем интенсивнее используется сеть, тем чаще обрывы, но интенсивность глюков сильно зависит от фазы Луны.

Кто-нибудь может объяснить, на каком основании и зачем Tor шлёт ICMP? Или это ядро начинает слать за него? Соединения не с guard-узлами заблокированы средствами iptables. Если что, MyIP — это MyIP на eth0, а не на lo — как такое вообще могло получиться?

Тут пишут, что полностью блочить ICMP плохо, это приводит к проблемам со связью из-за нестандартных MTU у провайдеров, поэтому типа надо разрешить их на приём (но не на ответ) правилом наподобие
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
Не знаю, может ли это быть как-то связанным с вышеописанной проблемой.
— unknown (11/08/2014 00:34, исправлен 11/08/2014 00:37)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

После выхода версии 3.6.4 в инструкции переделан нижеследующий фрагмент, который раньше выглядел так:



При каждом запуске TBB он стремится проверить наличие обновлений, что отнимает время при частых перезапусках и выделяет пользователя от обычного случая использования связки TBB без частых перезапусков. В качестве решения можно набрать в адресной строке браузера about:config, запустить поиск по строке torproject и заменить некоторые найденные url на about:blank.
На данный момент это касается двух опций:


Их значение следует заменить на:


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


Внесение изменений в about:config может потенциально искажать профиль пользователя, например, в случае уязимостей, приводящих к утечке информации из браузера.



Теперь достаточно только удалить tor-launcher, а в about:config лазать не нужно. Во-первых и без его правки при установке прозрачной торификации кнопка с луковицей отрабатывает проверку нормально (иногда требуется перезапуск браузера и не при каждом старте она отрабатывает из-за таймаута, но в целом терпимо в большинстве случаев). Во-вторых, при попытке изменения конфига через about:config вылезают предупреждения о некорректности конфига и внесённые изменения не работают корректно — соответствующие поля, похоже, просто игнорируются. Так что, ещё раз, в about:config теперь не нужно ничего править и больше нет повода опасаться, что это приведёт к какому-то профилированию.


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


Кстати, стандартный способ с прописыванием некоего параметра в стартовый скрипт вместо грубого удаления tor-launcher'a, у меня не работает. Разбираться и тикет, честно говоря, создавать лень. Раз с удалением плагина дело решается даже проще.

— Гость (11/08/2014 02:46)   <#>

Как-то она «недовышла» ещё: тут оно есть, а тут ещё нету.

P.S. Спасибо за update.
— Гость (22/08/2014 14:45)   <#>
Не знаю, куда ткнуть, но пусть будет здесь.

Задача:
Ваш ПК общается с фиксированным набором узлов вида IP:порт по TCP. Надо показать весь трафик, который идёт к вам, за исключением того, что внутри оговоренных ваших легитимных соединений. Ну, т.е., показать всех, кто вас сканит (как правило, ответы на такой трафик заблокированы файерволлом).

Допустим, у нас есть файл HOST_LIST.lst, каждая строчка в котором имеет вид X.X.X.X:PORT, а также может иметь пустые строки, пробелы в начале/конце и закомментированные. Надо содержимое этого файла как-то скормить tcpdump'у (это будет файл со списком легитимных узлов). Возможно, есть вариант сделать это проще, но я пока додумался, как это сделать, только через вуду-скрипт:
#!/bin/sh
 
ConfPath=/path/to/ConfFileDir
 
outIF=`ifconfig -a |sed '2,$d;s/[[:space:]].*$//'` 
outIP=`ifconfig $outIF |grep 'inet addr:' |sed 's/^.*addr:\([^ ]*\) \(.*\)/\1/'`
 
part1=`echo tcpdump -n -i $outIF host $outIP and not`
part2=`cat $ConfPath/HOST_LIST.lst \
        |sed '1i\\"(' \
        |sed 's/#.*//;/^[[:space:]]*$/d' \
        |sed 's/\([[:space:]]*$\)//' \
        |sed 's/\(^.*\):\(.*\)$/(host \1 and port \2) /' \
        |sed '3,$s/\(^.*$\)/or \1/' \
        |sed '$a)\\"'`
echo $part1 $part2 |sh
Этот скрипт фактически формирует команду
# tcpdump -n -i $outIF host $outIP and not "( \
          (host $host1 and port $port1) \
       or (host $host2 and port $port2) \
       or (host $host3 and port $port3) \
       or (host $host4 and port $port4) \
)"
Можно её редактировать вручную и запускать, но когда узлы меняются, каждый раз это редактировать задалбывает, поэтому было автоматизировано.
— unknown (22/08/2014 15:00)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Может, позаимствуете какие-то идеи из корридора?
— Гость (22/08/2014 19:41)   <#>
Это практически он и есть, только всё это крутится не на внешнем роутере, а локально. В файле перечисляете список гуардов и их портов — вот и всё, за остальное файерволл отвечает. Только вот если IP белый, это как мёртвому припарка.

Здесь был смысл именно посмотреть, не идёт ли что левое вовне вдруг случайно, какие левые пакеты приходят — и в этом плане удобно, на экран пишутся все зловредные чужие пакеты для всех левых протоколов. В принципе, на роутере тоже можно такое запускать, разницы нету, это чисто диагностика.
— SATtva (08/09/2014 18:10)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Вскрытие показало, что требование JS было симптоматичным: веб-интерфейс для настройки устройства не защищён даже от CSRF.
— unknown (18/10/2014 22:14)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В четвёртой версии изменился путь к тор-лаунчеру. В ответ на небезопасный механизм автоапдейта, к счастью пока отключаемый, дополнено откуда скачивать и каким скриптом удобнее проверять новые релизы.
— Гость (20/10/2014 00:00)   <#>
В четвёртой версии вообще всё сломали. Все сайты на JS глючат, ютуб глючит... один-два ролика просмотрел — и всё, дальше ссылки открываются, а ничего не играется, пока браузер не перезапустишь. На некоторых сайтах перестали показываться картинки. На rghost перестали загружаться файлы. Сломали вообще всё, как у них только совести хватило вышвырнуть такой ужас в релиз. Придаётся параллельно держать «старую небезопасную» версию TBB, ибо что теперь делать-то?
— unknown (20/10/2014 09:45)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Не заметил никаких изменений. Даже в ютубе, что проигрывалось, то и проигрывается. И идиотская ютубовская опция играть ролики в плейлисте друг за другом без остановки осталась. Насчёт остального — не знаю, может посещаю больше сайтов где это всё некритично.
— Гость (20/10/2014 18:06)   <#>

Это, наверно, как раз для того, чтобы те, кому не нравится, логинились и отключали эту опцию, рассказывая гуглу, что и как они смотрят.
— Гость (20/10/2014 18:09)   <#>
Попробуйте посмотреть подряд роликов 5-10, поиграйте с перемоткой, потыкайте на разные позиции времени в роликах... и тогда проблема появится. Если только это не гугловская проблема того дня, которая сейчас вдруг решит самопофикситься. Бывало, что перемотка, например, вообще не работала. Попорядку смотрится, а если ткнёшь в будущее, то нет. В $HOME появилась директория ~/.gstreamer-0.10, которой там раньше никогда отродясь не появлялось. После старта TBB она стабильно возникает.
— Гость (20/10/2014 18:13)   <#>
А ещё вот в логах TBB:

unknown reason
unknown
— Гость (23/10/2014 13:18)   <#>
Сломали вообще всё

Просто сменили версию Firefox с 24ESR на 31ESR. С каждой новой версией мазилла добавляет всё больше разных "перделок" в браузер, а тут сразу такой прыжок. 1.5 разработчика Tor Browser не могут исправить результат работы разработчиков мазиллы, а простое исключение кода не всегда возможно.

В $HOME появилась директория /.gstreamer-0.10, которой там раньше никогда отродясь не появлялось. После старта TBB она стабильно возникает.
Теперь браузер поддерживает проигрывание видео через gstreamer, попробуйте отключить поддержку через опцию media.gstreamer.enabled, но это возможно демаскирует вас и уменьшит число контента воспроизводимого в браузере.
На страницу: 1, ... , 6, 7, 8, 9, 10, ... , 16 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3