Введение в Tor для новичков. Обход блокировки в России. Как использовать службу Tor и Tor browser
Что такое Tor
Tor - это сеть, которая создана с целью анонимной и безопасной передачи данных. Сеть состоит из множества компьютеров, которые называются узлами. Когда вы подключаетесь к сети Tor, ваш трафик проходит по нескольким узлам и таким образом удаётся добиться той самой анонимности, ведь конечный узел не знает вашего реального IP.
Tor разработали в военно-морской исследовательской лаборатории США для анонимной передачи данных среди военных. В 2004 году был опубликован открытый исходный код под свободной лицензией и произошло это благодаря Роджеру Динглдайну, одному из разработчиков, который убедил военное руководство что агенты смогут эффективнее скрывать свою личность, если они растворятся среди обычных пользователей. В 2005 году была открыта некоммерческая организация The Tor Project, которая сейчас продолжает заниматься развитием Tor.
Вся информация предоставлена исключительно в образовательных целях. Автор никого не призывает к противозаконным действиям и не несет за вас ответственность.
Как работает Tor
Вот как выглядит схема подключения к Tor:
Жёлтый человечек - это пользователь, который подключён к сети Tor.
ISP - это его интернет-провайдер, который может передавать данные правоохранительным органам. Провайдер видит, что пользователь использует Tor, но не видит какие именно сайты он посещает и какие данные передаёт через эту сеть.
NSA - это другие ISP и магистральные соединения, через которые педедаются данные.
TOR RELAY - это узлы Tor, через которые проходит трафик пользователя. Обратите внимание, что первый узел Tor знает ваш IP, но не знает какие данные запрашиваются и передаются. Второй узел уже не обладает такой информацией и служит исключительно посредником для обеспечения наибольшей анонимности. Конечный узел видит передаваемые данные, но он не знает кто эти данные передаёт.
Слабым местом Tor является конечный узел, т.к. иногда он может использоваться для перехвата данных. Да, идентифицировать пользователя по нему не получится, однако узнать какие данные передаются через этот узел можно. В дальнейшем эта информация может использоваться для деанонимизации пользователя. Ещё не стоит забывать, что трафик от выходного узла до сайта также не зашифрован, если сайт использует HTTP.
Если же сайт использует HTTPS, то данные уже передаются в зашифрованном виде:
Схемы были взяты с данной страницы. Вы можете воспользоваться на ней интерактивными переключателями и посмотреть как меняется ситуация в зависимости от использования той или иной технологии.
По умолчанию трафик передаётся через 3 узла. Узлы создаются простыми пользователыями-добровольцами, которые вносят свой вклад в разработку и развитие Tor. На владельцах выходных узлов лежит особая ответственность, ведь если через них происходит какая-то незаконная деятельность, то это может привести к полицейским рейдам.
Как получить доступ к Tor
К сожалению, в России Tor заблокирован, поэтому необходимо прибегать к различным методам обхода этой блокировки. Я бы показал как это сделать через VPN, но увы, суровый закон... Зато есть мосты!
Мосты
Мосты Tor - это точно такие же узлы Tor за тем исключением, что список этих узлов не находится в публичном доступе, а значит и заблокировать их все разом нельзя. Tor project специально создали непубличный список мостов, чтобы бороться с блокировками Tor. Пользователи могут запросить небольшое количество мостов из этого непубличного списка и использовать их для подключения.
Всего существует 3 основных типа мостов:
- obfs4. Делает трафик Tor случайным и скрывает мост от обнаружения путём сканирования интернета;
- meek. Создаёт впечатление, что пользователь просматривает крупный веб-сайт вместо использования Tor. Meek-azure создаёт впечатление, что пользователь просматривает сайт Microsoft;
- snowflake. Перенаправляет трафик через WebRTC со встроенным обходом NAT.
Какой из этих типов лучше всего использовать зависит от ситуации, но чаще всего obfs4 справляется с задачей обхода блокировки.
Получение и использование мостов
Первый и самый простой способ заключается в использовании встроенной функции в веб-браузере. Просто переходим в настройки соединения и нажимаем «Request bridges»:
После этого автоматически начнётся подключение к сети Tor через мост:
Следующий способ заключается в использовании данной веб-страницы, где вы можете запросить мосты, нажав на соответствующую кнопку:
Выбираем obfs4 и нажимаем «Get Bridges»:
Копируем полученные мосты и добавляем их через настройки подключения:
И пробуем подключиться к сети Tor:
Ещё можно получить мосты, отправив пустое письмо на эл. почту bridges@torproject.org. В ответ вы получите мосты для подключения. Важно, чтобы вы использовали gmail или riseup. Или воспользуйтесь Telegram-ботом. Он тоже выдаёт мосты по запросу.
Tor browser
Теперь более подробно разберёмся с Tor browser. Данный веб-браузер является модифицированной версией Firefox и сделан с упором на конфиденциальность. В него включены некоторые расширения и настройки для повышения безопасности.
Самый безопасный и простой способ скачать Tor Browser — с официального сайта Проекта Tor по адресу https://www.torproject.org/ru/download/.
Иногда сайт может быть недоступен, поэтому вы можете использовать VPN или отправить специальное письмо на эл. почту. Отправьте письмо по адресу gettor@torproject.org, а в теле сообщения просто напишите "windows", "osx" или "linux" (без кавычек) в зависимости от вашей операционной системы. Например, чтобы получить ссылки для загрузки Tor Browser для Windows, отправьте электронное письмо на адрес gettor@torproject.org со словом "windows".
Чтобы получить Tor browser через Telegram, отправьте запрос боту @GetTor_Bot:
Настройка Tor browser
Для безопасного веб-сёрфинга нам нужно настроить Tor browser. Сначала пройдёмся по основным настройкам. Выберите поисковую систему, которую хотите использовать по умолчанию:
Изначально установлена поисковая система DuckDuckGo, однако при необходимости вы можете выбрать любую другую. Это исключительно ваш выбор, но учтите что поисковики являются хорошим источником сбора персональных данных, поэтому использовать их нужно максимально осторожно. DuckDuckGo создан с упором на конфиденциальность, но он не защищает на 100% от сбора данных.
Обратите внимание на разрешения для сайтов и исключите возможность предоставления новых разрешений:
В случае, если вам нужно заняться простым веб-сёрфингом, подойдут обычный и высокий уровни защиты. Для более специализированных действий понадобится высший уровень защиты.
Включите режим «Только HTTPS» во всех окнах:
Проверьте остальные настройки и поменяйте их по своему предпочтению.
Переходим к более детальной настройке браузера для повышения приватности и начнём с защиты от фингерпринтинга. Фингерпринтинг - это систематический сбор данных о браузере пользователя с целью его дальнейшей идентификации. Да, Tor скрывает ваш IP-адрес и шифрует трафик, однако не стоит забывать, что настройки вашего браузера могут тоже влиять на вашу конфиденциальность. Язык интерфейса, разрешение экрана, операционная система, версия веб-браузера, количество ядер процессора, список установленных шрифтов и многие другие параметры могут повлечь за собой вашу идентификацию. Для сбора этой информации не нужно запрашивать разрешения у пользователя.
В браузере Tor по умолчанию встроены некоторые меры защиты от фингерпринтинга, например такие как:
- Letterboxing. Защищает от определения истинных размеров экрана пользователя с помощью добавления полей по краям веб-страницы:
Пока пользователь самостоятельно не увеличит размер окна браузера или не переведёт его в полноэкранный режим, letterboxing будет защищать его от определения размеров экрана.
- Интеграция NoScript. Это специальное расширение, которое предназначено для блокировки исполнения скриптов на сайте. Дело в том, что некорые скрипты могут намеренно деанонимизировать пользователей и выявлять их реальный IP-адрес, а также другую информацию.
В первую очередь отключим JS и повысим уровень безопасности. Это можно сделать путём выбора соответствующего уровня защиты в настройках:
Дополнительно советую ввести в адресную строку about:config
и в открывшейся вкладке найти параметр javascript.enabled
. Переведите его в состояние false
, чтобы javascript был отключён даже если у вас изменился уровень защиты:
Здесь же мы защищаемся от утечки IP-адреса через WebRTC (технология видеосвязи через браузер):media.peerconnection.enabled
- false
Запрещаем проверку скачанных файлов:browser.safebrowsing.malware.enabled
- false
Запрещаем доступ к геоположению:geo.enabled
- false
Настраиваем NoScript. Это расширение, которое блокирует javascript, апплеты java, flash и другие опасные компоненты веб-сайтов, которые могут негативно повлиять на вашу безопасность и конфиденциальность. Перейдите в настройки расширения:
Вкладка «ПО УМОЛЧАНИЮ» отвечает за любые сайты. «ДОВЕРЕННЫЕ» за сайты, которые находятся в списке доверенных. «НЕДОВЕРЕННЫЕ» за сайты, которых нет в списке доверенных. Список доверенных и недоверенных сайтов можно настроить на вкладке «Разрешения для сайтов»:
Давайте настроим разрешения для сайтов:
- script - различные типы скриптов, которые сайты пытаются выполнить;
- object - участки кода с HTML-элементом object (данный элемент сообщает браузеру, как загружать и отображать объекты, которые исходно браузер не понимает, например Flash или java-апплеты);
- media - любой мультимедийный контент (аудио, видео);
- frame - фрэймы которые сайты пытаются загрузить (фрэйм - это разделитель браузерных окон на отдельные области);
- font - элементы font (отвечает за шрифты);
- webgl - элементы WebGL (это технология для визуализации 2D и 3D-графики в веб-браузерах без использования плагинов);
- fetch - запросы, которые используют Fetch API для получения ресурсов;
- ping - запросы ping;
- noscript - HTML-теги noscript, которые отвечают за отображение контента, в случае если у пользователя отключён javascript;
- lazy load - возможность отложить загрузку медиаконтента;
- unrestricted CSS - код на чистом CSS, который может повлиять на конфиденциальность;
- LAN - опрос локальной сети (сайты могут отслеживать устройства в локальной сети пользователя);
- other - неизвестные элементы.
Рекомендуемые настройки для сёрфинга по onion-ресурсам:
Далее (если вы ранее использовали Tor browser) удаляем все данные и cookies:
В приложениях по умолчанию для каждого пункта указываем действие «Всегда спрашивать»:
Как пользоваться Tor browser
Адресная строка
Даже если вы соединились с двумя разными сайтами, использующими один и тот же сторонний сервис отслеживания пользователей, браузер Tor подключится к ним через разные цепочки Tor. Посмотреть цепочку соединения для сайта можно нажав на специальную кнопку в адресной строке:
Guard или входной узел является первым узлом в цепи. Он определяется Tor'ом случайным образом и автоматически. Входной узел отличается от всех остальных. В целях защиты от профилирующих атак этот узел обновляется всего раз в 2-3 месяца, в отличие от остальных, которые обновляются с каждым новым доменом.
Новая личность
Эта опция полезна, если вы хотите разорвать связь между вашими предыдущими и последующими действиями, чтобы было сложнее идентифицировать вас. Будут закрыты все окна и вкладки, удалены все личные данные (например, куки-файлы и история посещений страниц), построены новые цепочки Tor. Учтите: при создании "новой личности" все действия на сайтах и все загрузки будут остановлены. Браузер Tor предупредит вас об этом.
Новая цепочка Tor для конкретного сайта
Эту опцию можно найти там же, где и опцию для создания новой личности:
Она нужна для того, чтобы создать новую цепочку соединений для конкретного сайта. Может быть полезно, если текущая цепочка имеет проблемы при работе с сайтом. Эта опция не очищает приватную информацию и не разъединяет вашу активность, а также не влияет на текущие соединения с другими веб-сайтами.
Вы также можете получить доступ к этой опции, нажав на значок в адресной строке для просмотра текущей цепочки.
В остальном, Tor browser используется точно также как обычный браузер Firefox. Главное соблюдать правила использования Tor browser для сохранения анонимности.
Правила использования Tor browser для сохранения анонимности
- Меняйте личности. Таким образом вы сможете снизить риск идентификации;
- Не открывайте Tor browser в полноэкранном режиме, в противном случае сайт может узнать ваше разрешение экрана и использовать эту информацию для идентификации;
- Проверяйте настройки безопасности и при необходимости измените их;
- Не используйте javascript и иные компоненты HTML-страниц, которые могут вас идентифицировать. Отключите javascript в настройках браузера и используйте расширение NoScript;
- Устанавливайте расширения в Tor browser с особой осторожностью. В данном браузере предустановлено единственное расширение - NoScript. Другие расширения могут снизить уровень вашей безопасности;
- Обновляйте Tor browser. Это необходимо, т.к. новые обновления могут содержать в себе исправления и улучшения, связанные с безопасностью.
Onion
Onion - это сервисы, например, веб-сайты, которые доступны только через сеть Tor. Местоположение onion-сервисов и их IP-адреса скрыты. Весь трафик между пользователями Tor и onion-сервисами зашифрован сквозным шифрованием, поэтому вам не нужно беспокоиться о подключении через HTTPS.
Чтобы получить доступ к onion-сервису, нужно знать его адрес, который состоит из 56 букв и и цифр с окончанием «.onion». Если вы пытаетесь получить доступ к onion-сервису из 16 символов (короткий формат V2), то у вас ничего не выйдет. Этот тип адреса больше не работает в современной сети Tor.
Если у веб-сайта, который вы посещаете, есть onion-версия, в строке URL появится фиолетовая табличка с надписью «.onion доступно»:
Когда вы нажмёте на эту отметку, сайт перезагрузится. Вместо "обычного" сайта появится его onion-версия.
Данная иконка показывает состояние подключения к onion:
На неё можно нажать, чтобы получить дополнительные сведения о безопасности.
Служба Tor
Вы можете посещать сайты через сеть Tor, но что делать, если нам нужно запустить какую-то программу и провести её трафик через сеть Tor? Для этого нужно использовать службу Tor.
Служба Tor - это специальная программа, которая позволяет создать подключение к сети Tor. Вы можете использовать эту программу для запуска других программ, трафик которых нужно провести через сеть Tor. Например, программа NMap позволяет сканировать удалённые хосты на наличие открытых портов, но иногда сканирование нужно сделать анонимным. Для этого мы можем запустить NMap, но через сеть Tor.
Установка и запуск
Установка:sudo apt install tor
Запуск:sudo systemctl start tor
Проверка статуса:systemctl status tor
Для добавления службы Tor в автозагрузку, чтобы она запускалась при каждом включении компьютера:sudo systemctl enable tor
Для удаления из автозагрузки:sudo systemctl disable tor
Для остановки службы Tor:sudo systemctl stop tor
Чтобы запустить службу Tor без перевода в фон:sudo tor
Конфигурация
Конфигурационный файл находится по пути /etc/tor/torrc
. Если файл не найден, то будет сделана попытка найти файл $HOME/.torrc
. Если такого файла тоже нет, то Tor просто продолжит загрузку без конфигурационного файла, т.к. он не является обязательным.
Некоторые полезные опции для работы с конфигурацией:
- --verify-config. Проверка конфигурационного файла на правильность (например,
sudo tor --verify-config
); - -f. Вручную указать путь к файлу конфигурации.
Настройка журналов Tor
Мы можем настроить логи Tor. Для этого необходимо отредактировать конфигурационный файл, указать уровень серьёзности и источник вывода в таком формате:Log УРОВЕНЬ_СЕРЬЁЗНОСТИ ИСТОЧНИК_ВЫВОДА
Например, вот так:Log notice stdout
, - здесь мы делаем вывод сообщений уровня notice в стандартный вывод.
- debug;
- info;
- notice;
- warn;
- err.
Допустимо указывать диапозон вида:Log МИНИМАЛЬНАЯ_СЕРЬЁЗНОСТЬ-МАКСИМАЛЬНАЯ_СЕРЬЁЗНОСТЬ ИСТОЧНИК_ВЫВОДА
Например, для вывода сообщений от уровня info до уровня err в файл tor.log
нужно записать в конфигурационный файл следующую директиву:Log info-err file /var/lib/tor/tor.log
- stderr - стандартный вывод ошибок;
- stdout - стандартный вывод;
- syslog - системный журнал;
- file ИМЯ_ФАЙЛА - сохранение журнала в файл.
Службу Tor можно запускать с опциями, для замены значений конфигурационного файла. Например:sudo tor Log 'info stdout'
(Если значение для опции состоит из более чем одного слова, либо включает в себя специальные символы, то его необходимо поместить в кавычки).
Просмотр журналов
Для просмотра журналов используйте команду journalctl -u tor
или journalctl -u "tor.service"
.
Получаем доступ к Tor
Если вы запустили службу Tor, но подключиться к целевому хосту не удалось, то скорее всего Tor заблокирован в вашей стране или вашим интернет-провайдером. В таком случае придётся прибегнуть к использованию мостов.
Скачиваем obfs4proxy. В Debian для этого можно ввести команду sudo apt install obfs4proxy
, а в Arch sudo pacman -S obfs4proxy
.
После этого получаем мосты. Как это сделать Я уже рассказал ранее. Указываем мосты в конце конфигурационного файла службы Tor:
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy Bridge obfs4 185.246.188.76:7180 0F14... Bridge obfs4 208.87.97.172:1701 08AA... Bridge obfs4 54.196.245.125:9162 7966... UseBridges 1
После этого мы можем свободно использовать службу Tor.
Чтобы убедиться, что всё работает, можете ввести следующую команду, которая выведет ваш конечный IP-адрес:curl --socks5 localhost:9050 https://2ip.ru
Проверьте IP-адрес и убедитесь, что он принадлежит конечному узлу Tor.
Ещё один способ использования мостов:
- Установите torctl. Это скрипт для перенаправления трафика через сеть Tor, который поддерживает использование мостов. Инструкция по установке в Debian расположена в официальном GitHub-репозитории:
https://github.com/JohnMcLaren/torctl-bridged
Для установки в Arch:sudo pacman -S torctl
- Создайте файл и пропишите в него мосты в следующем виде:
obfs4 151.67.213.75:8080 0D0E74... iat-mode=0
obfs4 185.192.124.64:993 97818... iat-mode=0` - Запустите torctl и укажите путь к файлу с мостами
sudo torctl start --bridges ./1.bridges
Анонимное использование программ с Tor
Когда мы используем команду curl --socks5 localhost:9050 https://2ip.ru
, мы явно указываем SOCKS5-прокси, который становится доступен на нашем компьютере после запуска службы Tor. Не все программы поддерживают работу с прокси, поэтому иногда приходится использовать сторонние средства для того, чтобы запустить программу с прокси. О таких средствах Я сейчас и расскажу.
Orjail
Orjail - это программа, которая позволяет быстро создать подключение к сети Tor и перенаправить трафик какой-либо программы через неё. Orjail создаёт изолированное сетевое окружение, в котором весь трафик передаётся исключительно через Tor, блокируя любой другой трафик, неподдерживаемый Tor'ом. После завершения работы программы, orjail автоматически закрывает соединение с Tor'ом.
Официальный репозиторий программы:
https://github.com/orjail/orjail
На странице репозитория вы найдёте всю необходимую информацию по установке orjail. После установки можно приступать к запуску. Например, узнаем наш IP-адрес с помощью curl через orjail и укажем использование файла torrc, в котором мы ранее прописали мосты:sudo orjail --host-torrc curl https://2ip.ru
Мы можем запустить оболочку, в которой весь трафик будет перенаправляться через Tor:sudo orjail --host-torrc -s
Proxychains-NG
На замену программе Proxychains пришла программа Proxychains-NG, - улучшенная версия с исправлениями ошибок. Я рекомендую использовать именно Proxychaing-NG вместо устаревшей Proxychains. Перед использованием необходимо её настроить. Откройте конфигурационный файл /etc/proxychains.conf
и закомментируйте строки strict_chain, random_chain и round_robin_chain, а dynamic_chain наоброт раскомментируйте. Таким образом вы сможете избежать утечки DNS. Утечка DNS - это серьёзная проблема безопасности, которая возникает, когда трафик передаётся не через анонимную сеть (например Tor), а напрямую к пункту назначения. Некоторые программы могут игнорировать общесистемные настройки прокси - это и вызывает утечку DNS, поэтому нам нужно использовать dynamic_chain, чтобы Proxychains-NG читал список настроенных прокси в строгом порядке, пропуская нерабочие. Когда Proxychains-NG пропускает нерабочие прокси, трафик просто не отправляется.
dynamic_chain: читает прокси, в том порядке, как вы их задали, пропуская нерабочие; random_chain: берёт их в произвольном порядке; strict_chain: то же, что и dynamic_chain, только не пропускает нерабочие.
Убедитесь, что строка proxy_dns не закомментирована, а proxy_dns_old и proxy_dns_daemon закомментированы.
Добавьте в конец файла socks5 127.0.0.1 9050
, после socks4 127.0.0.1 9050
. Должно получиться вот так:
[ProxyList] # add proxy here ... # meanwile # defaults set to "tor" socks4 127.0.0.1 9050 socks5 127.0.0.1 9050
Далее запустите службу Tor и попробуйте запустить curl через proxychains4 для проверки своего IP-адреса:proxychains4 curl https://2ip.ru
Если трафик проходит через Tor, то всё успешно настроено. Проверьте на утечку DNS с помощью сайта dnsleaktest:proxychains4 firefox dnsleaktest.com
(убедитесь, что у вас закрыты любые другие окна Firefox).
Перенаправление всего трафика через Tor
Сеть Tor в первую очередь предназначена для анонимного доступа к веб-сайтам, поэтому Tor поддерживает очень ограниченный набор передаваемого трафика. Мы можем получать доступ к веб-сайтам, используя протокол TCP, но не можем использовать ping, DNS-запросы по UDP и т.д. Именно поэтому, когда идёт речь о перенаправлении всего трафика, имеется ввиду перенаправление всего трафика, поддерживаемого Tor'ом. Значительная часть трафика просто не может быть отправлена через сеть Tor.
Если мы хотим перенаправить весь трафик через Tor, а непподерживаемый трафик заблокировать (чтобы избежать утечки IP-адреса), то лучше использовать iptables, ежели реализацию через прокси. Tor работает в качестве SOCKS5-прокси и нужно помнить, что не все программы поддерживают этот протокол. Более того, некоторые программы могут игнорировать общесистемные настройки прокси, поэтому наилучшим вариантом будет iptables, который при правильной настройке избавит нас от этой проблемы и не даст неподдерживаемому трафику просочиться в интернет.
Iptables - это мощный инструмент для управления входящими и исходящими пакетами данных. Iptables проверяет пакеты на соответствие определённым критериям и если пакет не соответствует им, то они просто не отправляется/не принимается.
В качестве программ для перенаправления трафика через Tor посредством iptables могу порекомендовать orjail и torctl.
Детальная конфигурация
Теперь предлагаю рассмотреть более детальную конфигурацию службы Tor. Это может быть полезно, если вы хотите запретить подключение к выходным узлам из определённых стран, запретить подключение к onion-ресурсам, запретить использование IPv4 и так далее. Детальная настройка позволит вам более гибко и безопасно использовать Tor.
Порт
По умолчанию Tor использует порт 9050, но мы можем это изменить:SocksPort 10050
, - теперь Tor будет использовать порт 10050.
В качестве значений SocksPort могут быть:
Адрес:порт подразумевает собой использование определённого IP и порта, например:SocksPort 192.168.1.12:9100
Если вы укажете auto, то служба Tor сама определит предпочтительный порт для работы.
Помимо указания порта, вы можете использовать флаги, например:
- NoIPv4Traffic - не подключаться к адресам IPv4 в ответ на запросы SOCKS по этому соединению;
- IPv6Traffic - разрешить IPv6 в ответ на запросы SOCKS по этому соединению, при условии, что используетчся SOCKS5 (SOCKS4 не уммет обрабатывать IPv6);
- PreferIPv6 - если хост имеет как IPv4, так и IPv6-адрера, то мы предпочли бы подключаться к нему по IPv6 (по умолчанию используется IPv4);
- NoDNSRequest - не просит выходные узлы преобразовывать DNS-адреса в SOCKS5-запросах. Tor будет подключаться к IPv4, IPv6 и onion;
- NoOnionTraffic - не подключаться к onion в SOCKS5 запросах;
- OnionTrafficOnly - подключаться только к onion в ответах за SOCKS5-запросы для этого подключения.
Фильтрация узлов
Бывает, что нужно исключить подключения к выходным узлам из определённых стран. Дело в том, что некоторые узлы могут быть преднамеренно скомпрометированными, поэтому для повышения безопасности стоило бы исключить узлы из своей страны, а также из дружественных стран, например из России и Китая.
Или наоборот, бывает что нужно подключиться к выходному узлу из определённой страны, например если какой-то сайт некорректно работает с IP-адресами из других стран. Такое тоже можно сделать.
Для начала нам нужно заставить Tor использовать файлы определения местоположения по IP. Они находятся по путям /usr/share/tor/geoip
и /usr/share/tor/geoip6
. В конфигурационном файле Tor укажите эти пути:
GeoIPFile "/usr/share/tor/geoip" GeoIPv6File "/usr/share/tor/geoip6"
После этого мы можем фильтровать узлы по странам.
Вот, как исключить все узлы из РФ и Китая:ExcludeNodes {ru}, {cn}
На самом деле, по умолчанию этот параметр рассматривается как предпочтение, ежели исключение. Если служба Tor определит, что невозможно выполнить подключение, исключив узлы, которые прописаны в ExcludeNodes, то он переопределит правила. Если вы на 100% хотите исключить узлы из определённых стран, то используйте SctrictNodes [0|1]. Если для StrictNodes установлено значение 1, то Tor будет рассматривать ExcludeNodes как обязательный, а не как предпочтительный, даже если это нарушит функциональность. Если установлен параметр 0, то Tor всё равно будет избегать узлов, прописанных в ExcludeNodes, но при этом, более высоким приоритетом будет являться обеспечение работоспособности подключения.
И вот, как исключить только выходные узлы из определённых стран:ExcludeExitNodes {ru}, {cn}
Имейте ввиду, что это относится только к тем узлам, страну которых невозможно идентифицировать.
Если мы хотим выбрать определённую страну выходного узла для подключения, то используем ExitNodes:ExitNodes {kz}
Запомните, если вы укажете здесь слишком мало узлов или исключите слишком много выходных узлов с помощью ExcludeExitNodes, вы можете снизить функциональность.
StrictNodes не применяется к ExcludeExitNodes и ExitNodes.
Точно также можно отфильтровать входные узлы:EntryNodes {ua}
Блокировка доступа к IP-диапазонам и портам через Tor
По умолчанию, Tor блокирует доступ к следующим портам:
А также блокирует доступ к локальным IP-адресам и наши главные внешние IPv4, IPv6-адреса.
Мы можем добавить свои собственные правила блокировки с помощью ExitPolicy. Синтаксис простой:ExitPolicy ПОЛИТИКА АДРЕС[/СЕТЬ][:ПОРТ]
В качестве ПОЛИТИКИ может быть:
- accept — разрешить IPv4 и IPv6 трафик;
- accept6 — разрешить IPv6 трафик;
- reject — запретить IPv4 и IPv6 трафик;
- reject6 — запретить IPv6 трафик.
Например, мы можем разрешить доступ к nntp через порт 119 (по умолчанию он заблокирован):ExitPolicy accept *:119
Защита от идентификации
Tor шифрует трафик, но существуют определённые техники идентификации пользоваля исходя из характера его поведения. Чтобы защититься от таких техник, мы можем заставить Tor посылать ненужный трафик (он называется заполнением), тем самым сбивая с толку анализаторы трафика.
ConnectionPadding 0|1|auto
Этот параметр отвечает за защиту от некоторых методов анализа трафика. Если установлено значение auto, Tor будет отправлять заполнение только если и клиент, и узел поддерживают его. Если установлено значение 0, Tor не будет отправлять заполнение. Если установлено значение 1, Tor будет отправлять заполнение независимо от поддержки узлом. По умолчанию auto.
ReducedConnectionPadding 0|1
Если установлено значение 1, Tor не будет держать OR-соединения открытыми в течение очень долгого времени и будет меньше заполнять эти соединения. По умолчанию 0.
CircuitPadding 0|1
Если установлено значение 0, Tor не будет заполнять клиентские каналы дополнительным трафиком покрытия. Если установлено значение 1, заполнение будет согласовываться в соответствии с консенсусом и поддержкой узлом (в отличие от ConnectionPadding, данная опция не может быть принудительно включена). По умолчанию 1.
ReducedCircuitPadding 0|1
Если установлено значение 1, Tor будет использовать только те алгоритмы заполнения, которые имеют низкие издержки. По умолчанию 0.
EnforceDistinctSubnets 0|1
При построении маршрутов трафика Tor, которые состоят из трёх случайных узлов, можно включить настройку, которая будет запрещать использование узлов, которые находятся слишком близко друг к другу. Если она установлена на 1, Tor не будет помещать два сервера, чьи IP «слишком близки» в один контур. По умолчанию 1.
Ещё мы можем настроить временной диапазон смены контура трафика. То есть, мы можем указать через какое количество секунд будет происходить автоматическая смена нашего IP:NewCircuitPeriod 30
, - здесь мы указали менять IP каждые 30 секунд.
Выбор сетевого интерфейса
Если у вас есть несколько Wi-Fi-адаптеров, или и Wi-Fi, и проводное подключение, вы можете выбрать какой именно сетевой интерфейс использовать для подключения к сети Tor:OutboundBindAddress 192.168.0.1
Эту опцию можно использовать дважды, один раз для IPv4-адреса и ещё один раз для IPv6-адреса. IPv6-адреса должны быть помещены в квадратные скобки.
Чтобы узнать IP-адрес конкретного сетевого интерфейса, используйте команду ifconfig
.
Заключение
Мы рассмотрели базовые возможности сети Tor и даже несмотря на это материал получился довольно информативный. С помощью сети Tor вы можете анонимизировать свои данные и обходить цензуру в интернете. Если вы хотите больше узнать о сети Tor, то рекомендую прочитать статью про Tor на смартфоне.