Перенаправляем весь трафик через TOR в Linux

Статус
В этой теме нельзя размещать новые ответы.

Ens

Местный
Подтвержденный
Сообщения
3.462
Реакции
2.369
Для чего необходимо

Бывают ситуации когда необходима анонимность, но VPN под рукой нет. VPN вряд ли можно назвать анонимным инструментом, ведь вы на него заходите как правило со своего IP (если это не двойной VPN), а значит оставляете следы, даже если не ведутся логи. Что уж говорить о VPN-услугах, которые вы покупаете у чужих людей. Они в свою очередь чаще всего ведут и логи и сниффают трафик и при любом обращении местных спецслужб эту информацию послушно предоставляют.

TOR - неплохой инструмент для анонимности и иногда необходимо через него пропускать не только трафик из вашего браузера (что делает например tor-browser), но и вообще трафик всей системы + не все необходимые вам программы могут поддерживать socks-прокси.

Установка и настройка TOR

Устанавливаем:
Код:
sudo apt-get install tor
Для настройки используется конфиг /etc/tor/torrc, открываем/создаём и вписываем туда следующее:
Код:
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
DNSPort 53
# для жителей СНГ рекомендую исключить Exit-ноды следующих стран
ExcludeExitNodes {RU},{UA},{BY}
Настройка DNS

Использовать ДНС-сервера от Google, либо чьи-нибудь ещё - плохая идея, т.к. они тотчас вас деанонимизируют. Будем использовать локальный ДНС средствами TOR. Для этого выполним следующее:
Код:
sudo rm -f /etc/resolv.conf # удалим, т.к. иногда это сим-линк
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
Поскольку всякие NetworkManager очень любят перезаписывать этот файл - лучше его вообще залочить на запись:
Код:
sudo chattr +i /etc/resolv.conf
(для анлока вместо +i используйте -i)

Настройка Iptables и проверка работоспособности

Создаём скрипт iptables_setup.sh:
Код:
#!/bin/sh

### set variables
#destinations you don't want routed through Tor
_non_tor="192.168.1.0/24 192.168.0.0/24"

#the UID that Tor runs as (varies from system to system)
_tor_uid="XYZ" # XYZ меняем на UID пользователя TOR (!)

#Tor's TransPort
_trans_port="9040"

### flush iptables
iptables -F
iptables -t nat -F

### set iptables *nat
iptables -t nat -A OUTPUT -m owner --uid-owner $_tor_uid -j RETURN
iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53

#allow clearnet access for hosts in $_non_tor
for _clearnet in $_non_tor 127.0.0.0/9 127.128.0.0/10; do
   iptables -t nat -A OUTPUT -d $_clearnet -j RETURN
done

#redirect all other output to Tor's TransPort
iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $_trans_port

### set iptables *filter
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#allow clearnet access for hosts in $_non_tor
for _clearnet in $_non_tor 127.0.0.0/8; do
   iptables -A OUTPUT -d $_clearnet -j ACCEPT
done

#allow only Tor output
iptables -A OUTPUT -m owner --uid-owner $_tor_uid -j ACCEPT
iptables -A OUTPUT -j REJECT
Переменную_tor_uid меняем на uid пользователя под которым работает tor. Определить это значение можно так:
Код:
grep tor /etc/passwd
debian-tor:x:135:145::/var/lib/tor:/bin/false
Первая цифра, то есть 135 - uid, меняем в скрипте
Код:
_tor_uid="135"
Запускаем:
Код:
chmod +x iptables_setup.sh
sudo ./iptables_setup.sh
Проверяем работу. Включаем tor:
Код:
sudo /etc/init.d/tor restart
Пробуем зайти на . Должны увидеть надпись "Congratulations. This browser is configured to use Tor".

Теперь останавливаем TOR:
Код:
sudo /etc/init.d/tor stop
И повторно пробуем зайти на сайт, либо запускаем любую другую программу (например, IM-клиент), интернет не должен работать, т.к. выключен TOR. Если всё верно, то прописываем правила iptables в автозагрузку:
Код:
sudo iptables-save > /etc/iptables_tor
Открываем файл /etc/rc.local и перед exit 0 вставляем:
Код:
iptables-restore < /etc/iptables_tor
Добавляем запуск TOR в автозагрузку:
Код:
sudo update-rc.d tor enable

Отключение перенаправления трафика

Для того чтобы привести правила iptables к девственному виду и отключить перенаправление трафика в сеть TOR можно создать скрипт со следующим содержанием:
Код:
#!/bin/sh

echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Несколько советов
  • Неплохим вариантом будет использование на хосте VPN, а в виртуальной машине TOR, но в некоторых случаях лучше действовать наоборот. Зависит от того, какие цели вы преследуете.

  • Если необходимо скрыть от местного провайдера ваше использование TOR, то запускайте TOR внутри VPN.

  • Если же необходима более серьёзная анонимность и постоянный IP (некоторые сайты блокируют, или не любят TOR - капчи хороший тому пример), то заведите девственно чистую виртуальную машину с , а в ней чистый профиль браузера и под ним (ес-но тоже под TOR) зарегистрируйте либо VPS-сервер (для последующей настройки VPN), либо уже готовый VPN-сервер, пользуясь анонимной валютой (qiwi с левой симкой, либо bitcoin) и левыми ФИО и мылом (который тоже зарегайте под тором в этой виртуалке) и используйте свежезарегистрированные почту/vpn исключительно в этой виртуалке, никогда не входите под ней в свою основную почту, социальные сети и т.д. (тоже самое с свежезареганной почтой и vpn - лишь в текущей виртуалке), т.к. достаточного одного раза, чтобы ваша вторая личность была навсегда связана с основной и тогда получится что все труды были напрасны.

  • Ещё неплохой идеей будет запускать TOR в chroot-окружении. В интернете немало информации по настройке, например: (единственный плохой совет в статье - ставить TOR из исходников, ставьте лишь из репозитория вашего дистрибутива и регулярно обновляйте его и всю систему). Это дополнительно обезопасит вас от критических уязвимостей найденных в системе которую вы используете и в TOR. Хотя ещё лучшей идеей будет настроить TOR на отдельном роутере в chroot окружении, но это уже если у вас true-паранойя.
Авторы: Cryptopunks
 
Хорошая статейка,давненько еще читал ее на офф сайте панков.
Хочу добавить,что тест данного мануала лучше всего проводить в виртуальных машинах.
К примеру у меня все монипуляции привели к отрубанию интеа вообще.)
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Приветствую, киберсамурай Для начала необходимо оплатить и поднять сервер. Можешь выбрать любой хостинг по сути, но советую тот, на котором можно оплачивать сервер в крипте. Карты с дропами есть не у всех, да и заведомо выбирать сервис, который не поддерживает оплату в крипте, я не советую...
Ответы
4
Просмотры
Привествую уважаемый читатель. Данный гайд будет больше направлен на владельцев шопов или кому надо придерживать анонимную и безопасную связь с работниками или коллегами, чем на обычного юзера даркнет сети. Здесь расскажу как поднять "свой мессенджер" в сети ТОР. Много где находил вопросы по...
Ответы
17
Просмотры
В условиях усиливающейся интернет-цензуры важно иметь надёжный инструмент для обхода блокировок и защиты данных. Один из лучших способов — установка Shadowsocks или VLESS на VPS/VDS, что позволит создать личный VPN-сервер, устойчивый к современным ограничениям. Мы применим «китайский метод»...
Ответы
31
Просмотры
Настройте VPN ProxyVM: Пропустите этот шаг, если вы не хотите использовать VPN и используете только Tor, или если VPN тоже не подходит. Это руководство также должно работать с любым провайдером OpenVPN (например, Mullvad, IVPN, Safing.io или Proton VPN). Это основано на руководстве...
Ответы
2
Просмотры
661
В данной статье я хотел бы описать процесс поднятия своего VPN с протоколом Wireguard с удобнным веб-интерфейсом, а так же показать, как настроить функциб kill-switch, когда блокируется весь трафик в обход VPN (работает только на Linux), у меня уже была статья про поднятие своего VPN на...
Ответы
9
Просмотры
Назад
Сверху Снизу