Бывают случаи, когда очень нужно сменить свой IP-адрес, например, обойти блокировку провайдера, либо анонимно посетить тот или иной ресурс. Конечно, можно воспользоваться VPN — это действительно хороший способ, когда VPN проверенный. Но что, если не хочется покупать, а бесплатным не доверяешь? На эту тему можно много болтать, и речь совсем не об этом. Я хочу показать, как пропускать весь свой трафик через сеть Тор.
Proxychains
Это первый из двух инструментов, про которые хочу рассказать. Служит он для перенаправления запросов, полученных от команды, переданной в параметре, через указанный в конфиге прокси.
Перейдем сразу к примеру, чтобы стало понятно.
Установка
Установим для начала proxychains следующей командой:
sudo apt install -y proxychains
Кстати, я работаю с Debian, но установка не должна сильно отличаться на других дистрибутивах (на бубунте так вообще такая же будет)
Теперь проверим, что все установилось:
Получили версию программы, значит все ок. Но возникает вопрос, а как завернуть трафик через Тор? Для этого мы установим его в качестве системного сервиса. Делается это не сложно следующей командой:
sudo apt install tor
И все, по сути локальная прокся готова. Системный сервис должен сразу запуститься. Это можно проверить так:
Видим, что горит active — значит сервис запущен. В противном случае нужно будет добавить его в автозагрузку и запустить вручную:
sudo systemctl enable tor; sudo systemctl start tor;
После этих команд можно проверить статус сервиса (как было выше) и удостовериться, что все запущено.
Отлично. Теперь настроим proxychains, чтобы перенаправлял весь наш трафик через тор. Для этого пойдем в файл /etc/proxychains.conf:
Спускаемся в самый низ и видим место, где определяется список проксей, через которые нужно пропускать трафик. Тут уже по дефолту будет стоять socks4 127.0.0.1 9050. Это значит, что proxychains уже готов к использованию в нашем контексте.
В случае же, если у вас прокся находится в другом месте (другом IP) либо другом порту, то тут стоит это прописать. Тут еще есть много интересных настроек, например:
Я сейчас говорю о random_chain, strict_chain, dynamic_chain — это настройки того, как использовать те прокси, которые вы указали. Либо использовать по одному, либо выбирать рандомно и строить цепочки или идти по каждой указанной проксе. Тут есть описание, можно почитать.
Также иногда proxychains обвиняют в DNS leaks. Однако тут видно опцию proxy_DNS, которая перенаправляет все DNS запросы так же через прокси. Я предлагаю не разбрасываться словами и проверить это на деле.
Использование
Как я уже сказал, proxychains у нас настроен, системный сервис Tor запущен, давайте попробуем совершить два запроса на определение IP-адреса и сравним результаты. Кстати, proxychains запускается так: proxychains <программа> [аргумент] [аргумент]. Выглядит несложно. Попробуем (сначала без прокси):
Теперь запустим с проксированием трафика через Тор:
При этом мы видим, как проходит каждый сетевой запрос. При использовании Proxychains наш IP-адрес изменился (конечной точкой стал выход из какой-то случайной ноды Тора).
Абсолютно таким же образом мы можем запускать любую программу, включая браузер (я использую Mozilla Firefox):
Давайте проверим IP адрес на каком-нибудь сайте (2ip.ru):
Видим, что у нас новый IP-адрес. При этом веб-сервис определил, что мы заходим с тора. Давайте теперь проверим на DNS leaks, как это делалось в статье:
Как мы видим, DNS у нас ходят там, где и определен IP. Но что мы видим! Технологии WebRTC полностью слили мой IP-адрес! Более того, они слили адрес моей виртуальной машины (с которой я все показываю) в локальной сети! Это сюрприз даже для меня, и я не думал о таком, когда садился писать статью. Однако proxychains тут не при чем. То есть если мне действительно важно полностью скрыть свой IP, то нужно настроить еще и браузер. Для отключения WebRTC я использовал инструкцию этих товарищей. Проверим теперь:
Отлично! Теперь мой адрес точно скрыт! И нет никаких DNS leaks. То есть зря кричали на proxychains. Кстати, IP-адрес тоже сменился. Это связано с тем, что цепочка нод в сети Тор, по которым я отправлял запросы, перестроилась. Делается это не слишком часто. ниже я опишу, как делать это каждые 10 секунд.
Torghost
Недавно наткнулся на этот инструмент и обнаружил его крайне удобным. Помимо этого он очень прост в установке (намного проще предыдущего примера).
Установка
Начала получим репозиторий из гитхаба (кстати, сначала нужно установить git):
git clone https://github.com/SusmithKrishnan/torghost.git
После этого заходим в папку torghost (она появится после клонирования репозитория) и делаем файл build.sh исполняемым:
cd torghost; chmod +x build.sh
Запускаем установку:
sudo ./build.sh
Установщик сам подтянет все зависимости и поставит Тор. На этом установка закончена!
Использование
Инструкция использования крайне проста:
- torghost -s (—start) — запуск
- torghost -x (—stop) — остановка
- torghost -r (—switch) — смена IP-адреса
- torghost -h (—help) — справка
Запустим программу и проверим наш адрес все тем же curl:
Видим, что все отлично работает. Проверим теперь на DNS leaks:
Видим, что все отлично. Одним сильным преимуществом данного инструмента является то, что можно менять выходную ноду тора с помощью —switch. Это очень удобно, если вы хотите совершать много запросов в какому-нибудь сервису (например, тестировать WAF). При этом не нужно собирать список проксей. Запустим следующий однострочник:
for ((;;)) do torghost —switch; done
и смотрим результат:
Видим, что наш адрес меняется теперь каждые 10 секунд.
Единственным минусом инструмента является то, что его нельзя настроить в качестве какого-нибудь внешнего шлюза, чтобы через него проксировать трафик с других систем. В нашем же случае (когда хотим проксировать только свой) подходит идеально.
Подписывайтесь на нас в Яндекс.Дзен
Источник: IT Проповедник