Tor: от азов до продвинутого уровня (ч. 5): Как перенаправить весь трафик через сеть Tor


Оглавление

1. Знакомство с Tor

2. Tor в Windows: установка службы, создание скрытого сервиса, использование браузерами и для пентеста

3. Как сделать свой прокси с Tor’ом в Windows

4. Подсказки по использованию браузера и службы Tor

5. Как перенаправить весь трафик через сеть Tor в Linux

5.1 Как использовать Tor как прозрачный прокси

5.2 Прокси или iptables для перенаправления трафика

5.3 Программы для перенаправления всего трафика через Tor

5.4 orjail

5.5 torctl

5.6 AnonSurf

5.7 Nipe

5.8 TOR Router

5.9 TorIptables2

5.10 autovpn

5.11 Tor Browser

6. Как получить красивое доменное имя для скрытого сервиса Tor

7. Анонимные сканирования с Nmap, sqlmap и WPScan через Tor

8. Служба Tor в Linux

9. Опции тонкой настройки Tor


10. Рецепты и подсказки по использованию Tor

11. Настройка скрытого сервиса Tor в Debian (Kali Linux, Linux Mint, Ubuntu)


Эта статья расскажет о возможностях и ограничениях сети Tor, а также о нескольких программах, которые повысят вашу анонимность за счёт сокрытия реального IP. Эта статья рекомендуется к прочтению даже если вы пользуетесь дистрибутивом Linux, который поддерживает включение анонимного режима одной кнопкой.

Как использовать Tor как прозрачный прокси

Сеть Tor, в первую очередь, предназначена для обеспечения анонимности пользователей при выходе в Интернет за счёт сокрытия их реального IP адреса. Передаваемые по сети данные шифруются, но на выходном узле, который делает непосредственный запрос к сайту и получает от него ответ, трафик находится в своём исходном состоянии (то есть тот трафик, который шифруется сторонними средствами, например, HTTPS — он зашифрован, а трафик, передаваемый в виде простого текста, доступен для выходной ноды в незашифрованном виде).

Сеть Tor в первую очередь предназначена для доступа к веб-сайтам, по этой причине, а также чтобы избежать сбора отпечатков пользователя (например, о версии операционной системы по особенностям сетевых пакетов), сеть Tor поддерживает очень ограниченный набор передаваемого трафика. Например, через сеть Tor можно сделать запрос к веб-сайту (протокол TCP), но невозможно передать UDP пакеты или сырые пакеты (запрещено всё, кроме полноценного подключения к сайту).

Сеть Tor подходит для:

  • сокрытия IP от сайта, к которому вы подключаетесь
  • обход блокировок сайтов
  • DNS запросов через Tor (DNS нужен для получения IP адресов сайтов — ваш браузер и система постоянно отправляют эти запросы). При этом не используются UDP пакеты, а данные передаются в зашифрованном виде
  • для сканирования открытых портов методом создания полного подключения (более медленный и более заметный по сравнению с методом полуоткрытых соединений)

По этой причине, когда мы говорим «перенаправление всего трафика через Tor» на самом деле имеется ввиду «перенаправление всего трафика, поддерживаемого этой сетью, через Tor».

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

Прокси или iptables для перенаправления трафика

При настройке системы для использования Tor, можно выбрать разные варианты реализации: прокси или iptables.

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

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

Программы для перенаправления всего трафика через Tor

Итак, как мы уже узнали, нужно решить ряд задач для корректной работы с Tor:

  • правильно перенаправить трафик
  • заблокировать пакеты, которые невозможно переслать через Tor
  • настроить выполнение DNS запросов через Tor
  • позаботиться об IPv6 трафике либо заблокировать его
  • быстро восстанавливать систему до исходного состояния, поскольку сеть Tor медленная и нужна не всегда

По этой причине имеется много разных программ от разных авторов, реализующих в той или иной степени описанный функционал.

orjail

Хотя все рассматриваемые далее программы немного разные, начнём с самой необычной из них. Она называется orjail. Программа на момент запуска создаёт собственное сетевое окружение для запускаемой программы и в этом окружении программа может выходить в Интернет только через сеть Tor.

Установка orjail в Kali Linux


sudo apt install tor bc firejail
git clone https://github.com/orjail/orjail
cd orjail
sed -i 's/USERHOME=$(getent passwd les | cut -d: -f 6)/USERHOME=$(getent passwd $USER | cut -d: -f 6)/' ./usr/sbin/orjail
sed -i 's/chown "$USERNAME" "$TORCONFIGFILE"/#chown "$USERNAME" "$TORCONFIGFILE"/' ./usr/sbin/orjail
sudo make install

Установка orjail в BlackArch

sudo pacman -S orjail
sudo sed -i 's/chown "$USERNAME" "$TORCONFIGFILE"/#chown "$USERNAME" "$TORCONFIGFILE"/' /usr/bin/orjail

Если вы хотите, чтобы ПРОГРАММА выходила в сеть через Tor, то запустите команду вида:

sudo orjail ПРОГРАММА АРГУМЕНТЫ

Например, следующая команда показывает внешний IP вашего компьютера:

curl suip.biz/ip/

А теперь запустим эту же команду с помощью orjail:

sudo orjail curl suip.biz/ip/

Обратите внимание — служба Tor необязательно должна быть запущена. Программа orjail сама создаёт виртуальные сетевые интерфейсы, сама запускает новый экземпляр службы Tor и когда основная программа завершается, останавливает Tor и удаляет временные сетевые интерфейсы.

Чтобы вы наглядно это увидели, просмотрите информацию о ваших сетевых интерфейсах:

ip a

А теперь посмотрите, что видят программы, запущенные с помощью orjail:

sudo orjail ip a

Они совершенно в другом окружении!

Таким образом можно запускать и программы с графическим пользовательским интерфейсом:

sudo orjail firefox -P /tmp/tmpprofile

Но с веб-браузерами будьте осторожны: orjail это скорее супер быстрое решение, когда нужно обойти блокировку или сменить свой IP. В более серьёзных ситуациях используйте Tor Browser — этот вариант безопаснее.

Если запустить orjail с опцией -v, то можно увидеть все происходящие процессы:

sudo orjail -v curl suip.biz/ip/

Обратите внимание, что orjail не умеет работать с IPv6 протоколом! Дело в том, что создаваемым временным сетевым интерфейсам назначаются только IP адреса. В принципе, думаю добавить поддержку IPv6 несложно, но в настоящий момент IPv6 трафик просто никуда не уходит.


Как мы уже знаем, через Tor невозможно передать пакеты UDP протокола, тем не менее, orjail может выполнять DNS запросы:


sudo orjail dig suip.biz

В качестве сервера, от которого получен ответ DNS, будет указано что-то вроде:

10.200.194.2#53

То есть DNS запросы обрабатываются в сети Tor.

Ошибки в orjail

Ошибка «User root: invalid name or no home directory.»

Вы можете столкнуться с ошибкой:

User root: invalid name or no home directory.

где вместо «root» будет имя вашего пользователя.

Так ошибка выглядит при выводе отладочной информации:

User root: invalid name or no home directory.
[Error] in command: exit 1
 * Remove Tor temporary configuration
 * Killing Tor process 
 * Killed 
 * Remove Tor DataDirectory: /tmp/orjail-orjail
 * Remove in-orjail network interface
Cannot find device "in-orjail"
 * Delete network namespace orjail
Cannot remove namespace file "/run/netns/orjail": No such file or directory
 * Cleaning up iptables rules...

Для исправления откройте файл orjail (если вы уже выполнили установку, то этот файл размещён по пути /usr/sbin/orjail), найдите там строку

USERHOME=$(getent passwd les | cut -d: -f 6)

И замените на:

USERHOME=$(getent passwd $USER | cut -d: -f 6)

Ошибка «./usr/sbin/orjail: строка 563: /tmp/torpVKzn4: Отказано в доступе»

Пример ошибки:

sudo ./usr/sbin/orjail curl suip.biz/ip/
./usr/sbin/orjail: строка 563: /tmp/torpVKzn4: Отказано в доступе
[Error] in command: cat >> "$TORCONFIGFILE" <<EOF
  DataDirectory /tmp/orjail-${NAME}
  AutomapHostsSuffixes .onion,.exit
  AutomapHostsOnResolve 1
  PidFile      /tmp/orjail-${NAME}/pid
  User         ${USERNAME}
  VirtualAddrNetworkIPv4 ${IPNETNS}/16
  TransPort ${IPHOST}:${TRANSPORT}
  DNSPort ${IPHOST}:${DNSPORT}
  SOCKSPort 0
  RunAsDaemon 1
EOF

[Error] Enable verbose mode to debug (using -v)

Вместо /tmp/torpVKzn4 может быть любое произвольное имя.

Для исправления вновь откройте файл orjail (если вы уже выполнили установку, то этот файл размещён по пути /usr/sbin/orjail), найдите там строку

chown "$USERNAME" "$TORCONFIGFILE"

и замените на

#chown "$USERNAME" "$TORCONFIGFILE"

torctl

Далее рассматриваемые программы очень схожи, они все используют Tor + iptables, но все чуть по-разному.

Начнём с самой многофункциональной программы torctl.

Эта программа написана для BlackArch, но довольно легко портируется на другие дистрибутивы.

Установка torctl в Kali Linux

sudo apt install tor macchanger secure-delete
git clone https://github.com/BlackArch/torctl
cd torctl
sudo mv service/* /etc/systemd/system/
sudo mv bash-completion/torctl /usr/share/bash-completion/completions/torctl
sed -i 's/start_service iptables//' torctl
sed -i 's/TOR_UID="tor"/TOR_UID="debian-tor"/' torctl
sudo mv torctl /usr/bin/torctl
cd .. && rm -rf torctl/
torctl --help

Установка torctl в BlackArch

sudo pacman -S torctl

Чтобы узнать свой текущий IP, выполните:

torctl ip

Чтобы запустить Tor в качестве прозрачного прокси:

sudo torctl start

Для проверки статуса служб:

torctl status

Если вы хотите поменять IP в сети Tor:

sudo torctl chngid

Для работы с Интернетом напрямую, без Tor, запустите:

sudo torctl stop

Чтобы поменять MAC адреса на всех сетевых интерфейсах выполните команду:

sudo torctl chngmac

Чтобы вернуть исходные MAC адреса:

sudo torctl rvmac

Следующая команда добавит службу torctl в автозагрузку, то есть сразу после включения компьютера весь трафик будет пересылаться через Tor:

sudo systemctl enable torctl-autostart.service

Для удаления службы из автозагрузки выполните:

sudo systemctl disable torctl-autostart.service

Ещё вы можете включить автоматическую очистку памяти каждый раз при выключении компьютера:

sudo systemctl enable torctl-autowipe.service

Для отключения это функции:

sudo systemctl disable torctl-autowipe.service

Этот скрипт знает о существовании IPv6 трафика и успешно блокирует его. Запросы DNS перенаправляются через Tor.

AnonSurf

Если вы знакомы с Parrot Linux, то программа AnonSurf тоже должна быть вам знакома — она включает режим анонимности в системе. AnonSurf при желании закрывает программы, которые могут скомпрометировать анонимность, перенаправляет трафик и DNS запросы через Tor, блокирует IPv6.

AnonSurf слишком интегрирована в Parrot Linux и на других системах я бы рекомендовал выбрать какой-нибудь другой вариант, благо, выбор есть. Ещё мне не нравится, что программа пытается запустить/остановить какие-то сервисы без проверки их наличия и выводит ошибки, если они отсутствуют — из-за избытка ненужно информации можно пропустить что-то действительно важное. Тем не менее далее показано, как установить AnonSurf в Kali Linux. Основная часть функциональности сохранена, но команда «dns — Замена вашего DNS на сервера OpenNIC DNS» работать не будет!

Установка AnonSurf в Kali Linux

sudo apt install tor
git clone https://github.com/ParrotSec/anonsurf
cd anonsurf
sudo make install
sudo mkdir -p /etc/resolvconf/run/
sudo cp /etc/resolv.conf /etc/resolvconf/run/resolv.conf
sudo mv /etc/tor/torrc /etc/tor/torrc.back
sed 's/9061/53/' /etc/tor/torrc.back > /etc/tor/torrc
sed 's/9051/9040/' /etc/tor/torrc.back > /etc/tor/torrc
sed -i 's/ln -s \/etc\/resolvconf\/run\/resolv.conf \/etc\/resolv.conf || true//' /usr/bin/anonsurf
sed -i 's/rm \/etc\/resolv.conf || true/mv \/etc\/resolv.conf.bak \/etc\/resolv.conf || true/' /usr/bin/anonsurf
sed -i 's/\/usr\/sbin\/service tor stop/systemctl stop tor/' /usr/bin/anonsurf
anonsurf --help

Показ своего внешнего IP адреса:

sudo anonsurf myip

Запуск редиректа всего трафика через сеть Tor:

sudo anonsurf start

Прекращение редиректа трафика через Tor:

sudo anonsurf stop

Nipe

Nipe — это скрипт, который делает сеть Tor вашим шлюзом по умолчанию.

Этот скрипт на Perl позволяет вам напрямую направлять весь ваш трафик с вашего компьютера в сеть Tor, через которую вы можете анонимно выходить в Интернет, не беспокоясь о том, что за вашим IP будут следить или вас смогут вычислить по IP.

В настоящее время Nipe поддерживает только IPv4, но ведутся работы для добавления поддержки IPv6.

TOR Router

Tor Router позволяет использовать сеть Tor как прозрачный прокси и отправлять весь ваш трафик, в том числе DNS запросы, через Tor. Сеть Tor станет шлюзом по умолчанию для всех Интернет-соединений, что увеличит приватность/анонимность за счёт минимальных усилий. Скрипт будет работать на любой системе, использующей systemd (если вы хотите использовать этот инструмент как службу) и tor.

TOR Router не меняет системные файлы, как это делают другие инструменты для маршрутизации вашего трафика, благодаря минимальному воздействию на систему, в случае ошибки в службе TOR Router или после удаления этого инструмента, ваша остальная система не будет затронута.

В данный момент Tor-router поддерживает только IPv4 трафик, но автор планирует добавить поддержку и IPv6.

TorIptables2

Скрипт Tor Iptables — это анонимайзер, который настраивает iptables и tor для перенаправления всех служб и трафика, включая DNS, через сеть Tor.

Более подробно об этом скрипте я уже рассказывал в статье «Как быстро поменять IP в Linux».

Последние три скрипта я бы не рекомендовал использовать пока в них не добавят IPv6, иначе можно случайно сильно облажаться…

autovpn

Эта программа добавлена в качестве бонуса — autovpn также позволяет быстро сменить IP адрес, но вместо Tor использует случайный публичный OpenVPN из указанной страны. Больше подробностей в статье «Как быстро поменять IP в Linux».

Рассмотрим ещё несколько вариантов использования сети Tor.

Tor Browser

Tor Browser — является полностью настроенным и портативным браузером, для просмотра веб-сайтов через сеть Tor. Плюсы этого варианта — дополнительные меры для анонимности.

Минусы вытекают из плюсов: чем больше мер для анонимности, тем неудобнее пользоваться.


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *