Это старая версия документа.


Tor - система, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается как анонимная сеть, предоставляющая передачу данных в зашифрованном виде.

В статье будет рассмотрена работа через Tor с обычными браузерами, что не гарантирует анонимность. Если вы хотите большей безопасности, установите Tor согласно данной официальной инструкции.

Установка Tor

Устанавливаем необходимые пакеты.

 sudo apt-get install tor tor-geoipdb privoxy 

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

Настройка

Бэкап базовой и новая конфигурация для privoxy:

 sudo mv /etc/privoxy/config /etc/privoxy/config.backup 
 sudo gedit /etc/privoxy/config 

Вставляем следующее и сохраняем:

# Generally, this file goes in /etc/privoxy/config
#
# Tor listens as a SOCKS5 proxy here:
forward-socks5 / 127.0.0.1:9050 .
confdir /etc/privoxy
logdir /var/log/privoxy
# actionsfile standard  # Internal purpose, recommended
actionsfile default.action   # Main actions file
actionsfile user.action      # User customizations
filterfile default.filter
 
# Don't log interesting things, only startup messages, warnings and errors
logfile logfile
#jarfile jarfile
#debug   0    # show each GET/POST/CONNECT request
debug   4096 # Startup banner and warnings
debug   8192 # Errors - *we highly recommended enabling this*
 
user-manual /usr/share/doc/privoxy/user-manual
listen-address  127.0.0.1:8118
toggle  1
enable-remote-toggle 0
enable-edit-actions 0
enable-remote-http-toggle 0
buffer-limit 4096

Перезапустим службу:

 sudo /etc/init.d/privoxy restart 

Настроим Tor в браузере.

Для Firefox удобно данное дополнение.

Использовать torbutton для свежих версий firefox не рекомендуется (torbutton предназначен для версий firefox, включаемых в состав tor browser bundle). Скачать torbutton можно по следующим ссылкам:

Все версии

Текущая версия stable

Для быстрого переключения в любом браузере можно использовать любое дополнение, предназначенное для переключения прокси (proxy switcher).

Хочу отметить, что для Google Chrome единственным работоспособным расширением оказалось Proxy SwitchySharp.

Проверка

Жмем на torbutton.

Проверяем, видит ли нас Большой Брат:

https://check.torproject.org/

http://2ip.ru/

http://internet.yandex.ru/

Все!

*При использовании иных программ в их настройках нужно установить прокси по протоколу socks 4a или 5.0 с настройками:

узел: 127.0.0.1
 
порт: 9050

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

Получение нового НИМа (смена конечной ноды Tor)

Зачастую Tor используется в качестве обычного прокси. Если вас не устроила текущая выходная нода, ее легко менять с помощью скрипта.

sudo apt install empty-expect telnet

Задаем пароль new_tor_password для доступа к Tor по telnet и получаем в ответ его хэш в виде строки 16:47015F09825889D86059FF44D9562496912AC67CD0EB93DAA25427F194:

tor --hash-password 'new_tor_password'

Затем дополняем конфиг Tor

sudo nano /etc/tor/torrc

следующими строками:

ControlPort 9051
HashedControlPassword 16:47015F09825889D86059FF44D9562496912AC67CD0EB93DAA25427F194

Остается создать скрипт со следующим содержимым (обратите внимание, ваш пароль хранится в скрипте в открытом виде!):

#!/bin/sh
# Автоматическая смена НИМа в TOR
empty -f -i torin -o torout telnet 127.0.0.1 9051
empty -s -o torin "AUTHENTICATE \"new_tor_password\"\n"
empty -s -o torin "signal NEWNYM\n"
empty -s -o torin "quit\n"

дать ему права на выполнение и запускать при необходимости.

Работа с onion-ресурсами

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

Настройки браузеров для работы с onion-ресурсами

Mozilla Firefox

Заходим в about:config, ищем параметр network.proxy.socks_remote_dns и выставляем его значение в true.

Chromium/Google Chrome

Заходим в Настройки, выбираем «Показать дополнительные настройки» и в разделе «Личные данные» делаем пункт «Предсказывать сетевые действия для ускорения загрузки страниц» неактивным.

Использование pac-файла для упрощения доступа к onion-ресурсам

С помощью pac-файла можно настроить доступ к определенным доменным именам с помощью конкретных прокси (для доступа к onion-сайту вам не придется вручную переключать прокси). Пример конфигурации такого файла для совместного использования *.i2p и *.onion приведен ниже.

function FindProxyForURL(url, host)
	{
		if (dnsDomainIs(host, ".i2p"))
			{
				return "PROXY 127.0.0.1:4444";
			}		
		if (dnsDomainIs(host, ".onion"))
			{
				return "SOCKS 127.0.0.1:9050";
			}
		else
			{
				return "DIRECT";
			}
	}

Обход блокировки Tor

В связи с последними изменениями в законодательстве Российской Федерации и Республики Беларусь возможно блокирование Tor провайдерами. Два основных метода - это блокирование известных IP-адресов узлов Tor (этому противодействует использование непубличных адресов - мостов) и глубокий анализ трафика (в связи с чем рекомендуется обфусцировать трафик).

Здесь нужно отметить, что Tor Bundle, скачиваемый с официального сайта, предоставляет более удобный механизм работы с обфускацией и мостами, чем представленный ниже в этом руководстве.

Обфускация трафика

Нам нужно обновить Tor до последней stable-версии из официального репозитория и установить утилиту для обфускации (проверяйте на официальном сайте torproject.org информацию о наиболее актуальных утилитах обфускации: чем новее утилита, тем сложнее расшифровать ваш трафик). Актуальной на момент конца 2016-го года является утилита obfs4proxy. Ищем нужный нам пакет в репозиториях Ubuntu:

apt-cache show obfs4proxy

Если его там не окажется, установим его из репозиториев Torproject:

 sudo nano /etc/apt/sources.list 

Добавляем в конец файла следующую строку:

 deb http://deb.torproject.org/torproject.org obfs4proxy main 

И обновляем информацию о репозиториях:

 sudo apt update 

Устанавливаем:

 sudo apt-get install obfs4proxy 

После этого заменяем содержимое файла /etc/tor/torrc следующим

SocksPort 9050
ORPort auto
BridgeRelay 1
Exitpolicy reject *:*
ExtORPort auto
 
## CHANGEME_1 -> provide a nickname for your bridge, can be anything you like
#Nickname CHANGEME_1
## CHANGEME_2 -> provide some email address so we can contact you if there's a problem
#ContactInfo CHANGEME_2
 
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Перезапускаем Tor:

sudo service tor restart

Если при перезапуске Tor в логе

cat /var/log/tor/log|grep obfs4

вы увидели подобное:

Jul 17 20:01:37.000 [warn] Server managed proxy encountered a method error. (obfs4 Could not set up listener.)

, не пугайтесь - obfs4proxy не был перезапущен и удерживает требуемый порт, все будет работать.

Чтобы убедиться в правильности работы настроенного Tor, проверьте содержимое /var/log/tor/log на наличие следующих строк:

Nov 05 16:40:45.000 [notice] We now have enough directory information to build circuits.
Nov 05 16:40:45.000 [notice] Bootstrapped 80%: Connecting to the Tor network.
Nov 05 16:40:46.000 [notice] Bootstrapped 85%: Finishing handshake with first hop.
Nov 05 16:40:46.000 [notice] Bootstrapped 90%: Establishing a Tor circuit.
Nov 05 16:40:48.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Nov 05 16:40:48.000 [notice] Bootstrapped 100%: Done.

Использование мостов

Мосты мы будем использовать при настроенной обфускации трафика (смотри предыдущий пункт). Чтобы получить мосты, заходим сюда либо отправляем на адрес bridges@bridges.torproject.org письмо с темой get transport obfs4 и ждем в ответ список из трех адресов следующего вида:

obfs4 111.111.111.113:2222 FF7652873C326B0AF41587409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0
obfs4 111.111.111.114:2222 FF7652873C326B0EFC1587409E88C8612B8FE654 cert=fP23efkIdfeawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0
obfs4 111.111.111.115:2222 FF7652873C326B0AFDF658409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEeftWGgAgnBO97lOA iat-mode=0

После этого остается изменить файл /etc/tor/torrc следующим образом: добавить в начало данные адреса в следующем формате:

UseBridges 1
 
SocksPort 9050
Exitpolicy reject *:*
ExtORPort auto
 
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed
 
bridge obfs4 111.111.111.113:2222 FF7652873C326B0AF41587409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0
bridge obfs4 111.111.111.114:2222 FF7652873C326B0EFC1587409E88C8612B8FE654 cert=fP23efkIdfeawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEfgesGgAgnBO97lOA iat-mode=0
bridge obfs4 111.111.111.115:2222 FF7652873C326B0AFDF658409E88C8612B8FE654 cert=fP23efkIrlPawTerdcUpN3Uatrh9jQcP0UpnPkfcfge5WiPP1mVffEeftWGgAgnBO97lOA iat-mode=0

Перезапускаем Tor:

sudo service tor restart