Tor: от азов до продвинутого уровня (ч. 5): Как перенаправить весь трафик через сеть Tor
Оглавление
3. Как сделать свой прокси с Tor’ом в Windows
4. Подсказки по использованию браузера и службы Tor
5. Как перенаправить весь трафик через сеть Tor в Linux
5.1 Как использовать Tor как прозрачный прокси
5.2 Прокси или iptables для перенаправления трафика
5.3 Программы для перенаправления всего трафика через Tor
6. Как получить красивое доменное имя для скрытого сервиса Tor
7. Анонимные сканирования с Nmap, sqlmap и WPScan через 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. Плюсы этого варианта — дополнительные меры для анонимности.
Минусы вытекают из плюсов: чем больше мер для анонимности, тем неудобнее пользоваться.
Связанные статьи:
- Как быстро поменять IP в Linux (78.8%)
- Меню Kali Linux: восстановление, добавление и изменение программ (77.7%)
- Tor: от азов до продвинутого уровня (ч. 1): Знакомство с Tor (67.3%)
- Как пользоваться Whonix (операционная система для анонимности, приватности и безопасности) (67.3%)
- Решение проблемы «W: не удалось получить http://http.kali.org/kali/dists/kali-rolling/InRelease» из-за блокировок провайдера (66.3%)
- Новая версия bettercap 2.x: как установить и использовать в Kali Linux (RANDOM - 2.6%)