Нужно больше TOR!

2015-02-03

TOR - the Onion Router

Вроде бы с настройкой tor/privoxy разобрались.

Теперь будем гнать весь траффик принудительно через данную связку. Настройка на Linux, в деле iptables и shell.

Зачем ? Чтобы уже об этом не думать.

Предположим, мы успешно установили tor и privoxy из предыдущей заметки. Теперь чтобы не думать о включении/выключении прокси, мы будем гонять весь траффик через tor или privoxy/tor.

Итак, для начала добавим записи в /etc/tor/torrc:

VirtualAddrNetworkIPv4 10.192.0.0/10 AutomapHostsOnResolve 1 TransPort 9040 DNSPort 53

Это, в частности, запускает собственный DNS-сервер и все dns-запросы уже идут через него, а также открывает порт, через который весь траффик будет гоняться. Для чего нужна самая первая строка - затрудняюсь сказать.

Теперь мы будем писать скрипт, который настроит iptables так, чтобы опять-таки весь траффик будет ходить через TOR.

`#!/bin/sh

Тут список подсетей, в которых TOR использовать НЕ надо. Сюда можно добавить собственный VPN

NON_TOR=“192.168.1.0/24” # добавляем новые подсети через пробел.

TOR UID

TOR_UID=“115” #в Debian/Ubuntu создается собственный пользователь для tor

Tor’s TransPort

TRANS_PORT="9040"
iptables -F
iptables -t nat -F # эта и предыдущая строка чистить iptables
#внимание! следующая строка принудительно гоняет весь http-траффик через privoxy. её можно закомментировать, например, если рекламорез не нужен.
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8118
#остальное заворачивает траффик и dns-запросы на TOR, за исключением тех подсетей, которые указаны в переменной non-tor.
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
for NET in $NON_TOR 127.0.0.0/9 127.128.0.0/10; do
iptables -t nat -A OUTPUT -d $NET -j RETURN
done
iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $TRANS_PORT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
for NET in $NON_TOR 127.0.0.0/8; do
iptables -A OUTPUT -d $NET -j ACCEPT
done
iptables -A OUTPUT -m owner --uid-owner $TOR_UID -j ACCEPT
iptables -A OUTPUT -j REJECT`

Сохранем скрипт под именем prxvy.sh в /usr/local/bin и не забываем сделать файл исполняемым.
После его запуска (от root) траффик будет идти уже через TOR.
Для отключения нужно выполнить следующие команды:

iptables -F iptables -t nat -F

Их тоже можно записать в скрипт, ну или расширить текущий, чтобы он принмал параметры on и off.

Ну и дополнение для самых серьезных параноиков - по ссылке дополнительные настройки iptables, которые предотвращают утечку пакетов.
Вроде всё. В другой раз поговорим о настройке wireless middle box - точки доступа, которая “пускает в интернет” исключительно через tor, и ей глубоко все равно, на какой ОС вы работаете, подойдет даже китайский телефон с WiFi.


В массы

В трубу