Перенаправляем весь трафик через TOR
Life-Hack [Жизнь-Взлом]/ХакингДля чего необходимо
Бывают ситуации когда необходима анонимность, но 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
Пробуем зайти на https://check.torproject.org/. Должны увидеть надпись "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 - капчи хороший тому пример), то заведите девственно чистую виртуальную машину с левым MAC-адресом сетевой платы, а в ней чистый профиль браузера и под ним (ес-но тоже под TOR) зарегистрируйте либо VPS-сервер (для последующей настройки VPN), либо уже готовый VPN-сервер, пользуясь анонимной валютой (qiwi с левой симкой, либо bitcoin) и левыми ФИО и мылом (который тоже зарегайте под тором в этой виртуалке) и используйте свежезарегистрированные почту/vpn исключительно в этой виртуалке, никогда не входите под ней в свою основную почту, социальные сети и т.д. (тоже самое с свежезареганной почтой и vpn - лишь в текущей виртуалке), т.к. достаточного одного раза, чтобы ваша вторая личность была навсегда связана с основной и тогда получится что все труды были напрасны.
- Ещё неплохой идеей будет запускать TOR в chroot-окружении. В интернете немало информации по настройке, например: https://trac.torproject.org/projects/tor/wiki/doc/TorInChroot (единственный плохой совет в статье - ставить TOR из исходников, ставьте лишь из репозитория вашего дистрибутива и регулярно обновляйте его и всю систему). Это дополнительно обезопасит вас от критических уязвимостей найденных в системе которую вы используете и в TOR. Хотя ещё лучшей идеей будет настроить TOR на отдельном роутере в chroot окружении, но это уже если у вас true-паранойя.