Тонкая настройка Tor
Как правило, стандартных настроек, которые реализованы в оболочке Vidalia вполне достаточно для полноценной анонимной работы в Интернет. Однако возможны случаи, когда могут потребоваться дополнительные изменения параметров Tor. Такие изменения производятся редактированием конфигурационного файла Tor и называются тонкой настройкой.
Конфигурационный файл - обычный текстовый файл. Он носит имя torrc (без расширения) и находится:
- при использовании сборки Tor Browser - в каталоге ..\<Каталог Tor Browser>\Data\Tor
- в инсталлированных пакетах - <Documents and Settings\<пользователь>\Application Data\Vidalia
- в ОС Ubuntu Linux - в каталоге /etc/tor
Программа Tor при загрузке (перезагрузке) первым делом считывает конфигурационный файл и устанавливает рабочие параметры в соответствии со значениями команд в файле torrc.
Редактирование файла torrc можно производить в простейшем текстовом редакторе: Блокнот, AkePad и т.д. Желательно перед правкой сохранить первоначальный файл torrc в той же папке. Например, прибавив к имени расширение *.bak, *.001 и т. д.
Чтобы изменения вступили в силу нужно перезагрузить всё ПО системы Tor!
1. Фиксирование выходного или входного узла сети Tor
Напомним, что выходные сервера в Tor постоянно меняются случайным образом. Для пользователя это означает, что его IP не стабилен. С точки зрения посещаемого ресурса пользователь в любой момент может превратиться из француза, скажем, в японца, или ещё кого хуже. При работе с сайтами, фиксирующими сессию пользователя, такой вариант совершенно неприемлем.
Есть возможность прямо указывать, какой сервер (нод) должен быть выходным. IP в этом случае будет постоянным. Для этого в torrc дописываем две строчки:
ExitNodes <имя узла>
StrictExitNodes 1
Где:
Переменная ExitNodes – указывает использовать определённый сервер в качестве выходного узла
StrictExitNodes 1 – указание в случае недоступности выбранного сервера не пытаться подключиться к другому, а выводить ошибку.
Допускается записывать несколько узлов через запятую или, например, указав ExitNodes {de} - получим только немецкие сервера в качестве выходных. ("Закосим" под немца!)
Найти необходимый сервер можно на: http://torstatus.kgprog.com/ или https://torstat.xenobite.eu/
Аналогично фиксируется и входной узел:
EntryNodes <имя узла>
StrictEntryNodes 1
Есть ещё одна полезная настройка из этой серии - TrackHostExits фиксирует выходной узел (host) для заданных доменов, что позволяет сохранять сессию для тех серверов, которые проверяют IP клиентов. Синтаксис записи такой:
TrackHostExits host,.domain,...
2. Исключение подозрительных узлов
Для исключения не вызывающих доверия узлов (Например - российских, украинских и белорусских) нужно добавить в torrc строку:
ExcludeNodes {ru}, {ua}, {by}
Или можно указать конкретный список имён.
Теперь если пытливые ребята с серенькими глазками в РФ, УА или РБ додумаются сделать подставной Tor-сервер и попытаются прослушивать выходные данные, то мы никак не сможем попасть на такой сервер.
Есть полезное свойство файла torrc. Это комментарий. Tor не выполняет строки в файле torrc если строка начинается с символа "#". Благодаря комментариям вы можете хранить в файле torrc заготовки, и при необходимости быстро включать их, убрав "#".
3. Прописывание прокси-сервера в Tor
Добавить следующие строки в конец конфигурационного файла Tor с заменой <адрес прокси> и <номер порта> (а также <логин> и <пароль>, если они есть) на конкретные значения прописываемого http или https прокси-сервера.
# Force Tor to make all HTTP directory requests through this host:port (or
# host:80 if port is not set).
HttpProxy <адрес прокси>:<номер порта>
# A username:password pair to be used with HTTPProxy.
HttpProxyAuthenticator <логин>:<пароль>
# Force Tor to make all TLS (SSL) connectinos through this host:port (or
# host:80 if port is not set).
HttpsProxy <адрес прокси>:<номер порта>
# A username:password pair to be used with HTTPSProxy.
HttpsProxyAuthenticator <логин>:<пароль>
После правки и сохранения файла torrc необходимо перезапустить Tor.
Для проверки настроек можно использовать графическую оболочку Vidalia или Tor-анализатор (зайти на http://check.torproject.org).
Список некоторых команд (настроек) Tor
EntryNodes nickname,nickname,...
Список серверов, которые предпочтительно использовать в качестве "входных" для установления TCP/IP-соединения с узловой цепочкой маршрутизаторов Tor, если это возможно.
ExitNodes nickname,nickname,...
Список серверов, которым предпочтительно отводить роль замыкающего звена в узловой цепочке маршрутизаторов Tor, если это возможно.
ExcludeNodes nickname,nickname,...
Список узлов, которые вовсе не следует использовать при построении узловой цепочки.
StrictExitNodes 0|1Если установлено в 1, Tor не будет использовать какие-либо узлы, кроме тех, которые присутствуют в списке выходных узлов в качестве посредников, устанавливающих соединение с целевым хостом и, соответственно, являющихся своеобразным замыкающим звеном в цепочке узлов.
StrictEntryNodes 0|1
Если данному параметру присвоено значение 1, Tor не будет использовать какие-либо узлы, кроме тех, которые присутствуют в списке входных узлов для подключения к сети Tor.
FascistFirewall 0|1
Если данному параметру присвоено значение 1, Tor при создании соединения будет обращаться исключительно на Луковые Маршрутизаторы, у которых для осуществления подключения открыты строго определённые номера портов, с коими позволяет устанавливать соединение Ваш файрволл (по умолчанию: 80-й (http), 443-й (https), см. FirewallPorts). Это позволит Tor, запущенному на вашей системе, работать в качестве клиента за файрволлом, имеющим жёсткие ограничительные политики. Обратное утверждение неверно, поскольку в этом случае Tor не сможет исполнять обязанности сервера, закрытого таким файрволлом.
FirewallPorts ПОРТЫ
Список портов, к которым Ваш файрволл позволяет подсоединяться. Используется только при установленном значении параметра FascistFirewall. (По умолчанию: 80, 443) (Default: 80, 443)
LongLivedPorts ПОРТЫ
Список портов для сервисов, которые имеют склонность устанавливать особо длительные соединения (к ним относятся преимущественно чаты, а также интерактивные оболочки) Узловые цепочки из маршрутизаторов Tor, которые используют эти порты, будут содержать только узлы c наиболее высоким аптаймом (характерным временем присутствия в сети), с целью уменьшения вероятности отключения узлового сервера от сети Tor до закрытия потока. (По умолчанию: 21, 22, 706, 1863, 5050, 5190, 5222, 5223, 6667, 8300, 8888).
MapAddress адрес:новый_адрес
Когда к Tor придёт запрос на указанный адрес, луковый маршрутизатор изменит адрес перед тем, как приступить к обработке запроса. Например, если вы хотите, чтобы при соединении с wwwindymedia.org была использована цепочка узлов Tor с выходом через torserver (где torserver – это псевдоним сервера), используйте "MapAddress wwwindymedia.org wwwindymedia.org.torserver.exit".
NewCircuitPeriod ЧИСЛО
Каждые ЧИСЛО секунд анализировать состояние соединения и принимать решение о том, нужно ли инициировать построение новой узловой цепочки. (По умолчанию: 30 секунд)
MaxCircuitDirtiness ЧИСЛО
Разрешить повторное использование цепочки, в первый раз собранная в определённом составе своих звеньев - самое большее - ЧИСЛО секунд назад, но никогда не присоединять новый поток к цепочке, которая обслуживала данный сеанс в течение достаточно продолжительного времени. (По умолчанию: 10 минут)
NodeFamily псевдоним,псевдоним,...
Именованные сервера Tor (закономерным образом, для повышения степени прозрачности иерархии сети Tor) объединяются в "семейства" по признаку общего или совместного администрирования, так что следует избегать использования любых 2-х из таких узлов, "связанных родственными узами", в одной и той же цепочке анонимных маршрутизаторов Tor. Специальное задание опции NodeFamily может понадобиться только тогда, когда сервер с данным псевдонимом сам не сообщает о том, к какому "семейству" он себя причисляет, что на стороне сервера OR должно быть продекларировано путём указания параметра MyFamily в файле torrc. Допускаются множественные указания этой опции.
RendNodes псевдоним,псевдоним,...
Список узлов, которые по возможности желательно использовать в качестве точек рандеву (встречи).
RendExcludeNodes псевдоним,псевдоним,...
Список узлов, которые ни в коем случае не следует использовать при выборе точек рандеву (точек встречи).
SOCKSPort ПОРТ
Известить Tor о том, что на этом порту должны прослушиваться соединения, устанавливаемые приложениями, использующими SOCKS-протокол. Обнулите этот параметр, если Вам вовсе ни к чему, чтобы приложения устанавливали соединения по SOCKS-протоколу посредством Tor. (Значение по умолчанию: 9050)
SOCKSBindAddress IP[:ПОРТ]
Установить привязку к данному адресу для прослушивания запросов на соединение от приложений, взаимодействующих по SOCKS-протоколу. (По умолчанию: 127.0.0.1). Также Вы можете указать порт (например, 192.168.0.1:9100), который, разумеется, на целевой машине должен быть "открыт" посредством соотв. настройки файерволла. Определение этой опции может быть повторено многократно для осуществления одновременной ("параллельной") привязки ко множеству различных адресов/портов.
SOCKSPolicy политика,политика,...
Задаёт политики входа на данный сервер с целью ограничения круга клиентских машин, которым разрешено подключаться к SOCKS порту. Описание этих политик вводится аналогично тому, как это делается для политик выхода (см. ниже).
TrackHostExits хост,.домен,...
Для каждого из значений в разделённом запятыми списке, Tor проследит недавние соединения для хостов, соответствующих этому значению и попытается использовать один и тот же выходной (замыкающий) узел для каждого из них. Если очередной элемент списка предваряется символом ".", то его значение будет трактоваться, как соответствующее домену в целом. Если один из элементов списка состоит из одной только "точки", то это указывает на его "универсальное" соответствие всем путевым именам. Эта опция может оказаться полезной, если Вы часто устанавливаете соединение с серверами, которые аннулируют все записи о пройденной Вами аутентификации (т.е. принуждают выйти и зарегистрироваться снова) при осуществлении попытки переадресации TCP/IP-соединения, установленного с одним из таких серверов, на Ваш новый IP-адрес после его очередной смены. Обратите особое внимание на то, что использование этой опции невыгодно для Вас тем, что это позволяет серверу напрямую ассоциировать историю соединений, запрашиваемых определённым IP, с Вашей пользовательской учётной записью. Хотя в принципе, если кому-то и понадобится собрать всю информацию о Вашем пребывании на сервере, желающие в любом случае смогут сделать это посредством cookies или других специфичных для используемого протокола обмена средств.
TrackHostExitsExpire ЧИСЛО
Поскольку серверы, являющиеся выходными звеньями узловой цепочки, имеют право начинать работу и завершать её по собственному усмотрению, т.е. так или иначе – произвольным, случайным образом, желательно, чтобы ассоциация между хостом и выходным узлом автоматически потеряла свою силу по истечении некоторого ЧИСЛА секунд полного отсутствия сетевой активности со стороны сервера. По умолчанию – 1800 секунд (30 минут).
Существующий набор команд Tor достаточно велик. Рассмотрение их всех выходит за рамки настоящего обозрения. Здесь были приведены лишь несколько наиболее типичных вариантов редактирования и лишь часть команд. Полный список и синтаксис команд (на английском языке) можно найти на сайте разработчиков Tor.