Что нового

Article Установка и запуск TOR на OpenWRT.

Человек Тьмы 0
19.04.2020
24
59
Описанные в предыдущих статьях способы анонимизации интернет-трафика, пропущенного через маршрутизатор под управлением OpenWRT не исчерпывают собою все возможности этой операционной системы.
Вот лишь некоторые дополнительные программы, установка которых на маршрутизаторр под управлением OpenWRT увеличит шансы на приватность каждого желающего :
  • Анонимизация траффика, используя программы проксификации Polipo, Redsocks, Privoxy.
  • Анонимизация траффика с использованием клиента Wireguard
  • Анонимизация траффика с использованием клиента Softether VPN
  • Анонимизация всего траффика через I2P.
  • Анонимизация всего траффика через TOR.

В этой статье пойдёт речь об установке последнего на маршрутизатор под управлением OpenWRT.

Для того, чтобы трафик пересылался с одного интерфейса на другой, необходимо, чтобы был включен соответствующий параметр ядра Linux. Это можно сделать с помощью команды:
sysctl -w net.ipv4.ip_forward=1
или
echo 1 > /proc/sys/net/ipv4/ip_forward

Для проверки можно использовать команду:
# cat /proc/sys/net/ipv4/ip_forward
Она должна вернуть «1»

screen09.png

Команда cat /proc/sys/net/ipv4/ip_forward должна вернуть «1»

Потенциальные подводные камни:
1) Синхронизация времени.
Поскольку tor выполняет криптооперации с проверкой временных меток, то время должно быть синхронизировано.

ШАГ № 1
Первым делом, установим тор.
Код:
# opkg update
# opkg install tor
Сразу после установки появляется в папке /etc/init.d/tor
А также появляется ссылка на этот файл в папке /etc/rc.d
Это говорит о том, что установка тор-а ставит программу в автозагрузку, то есть команда
/etc/init.d/tor enable - выполнена и выполнять её не надо.

Сразу после установки можно посмотреть системные логи командой
# logread -e Tor
Вывод гласит:
Код:
Thu Apr  9 08:29:10 2020 daemon.notice Tor[1389]: Bootstrapped 90% (ap_handshake_done): Handshake finished with a relay to build circuits
Thu Apr  9 08:29:10 2020 daemon.notice Tor[1389]: Bootstrapped 95% (circuit_create): Establishing a Tor circuit
Thu Apr  9 08:29:11 2020 daemon.notice Tor[1389]: Bootstrapped 100% (done): Done

То есть TOR успешно запустился и приконнектился.
Но почему-то после перезагрузки ТОР не запускается, логи будут пустыми.
Причиной тому является какие-то неполадки, связанные с ранним стартом тора.
Решить проблему можно следующим образом:
1. убираем тор из автозагрузки:
# /etc/init.d/tor disable - исчезнет ссылка в папке /etc/rc.d
Редактируем файл /etc/rc.local:
перед строкой exit 0 прописываем команду, которая запустит TOR после 10-секундной паузы:

# vi /etc/rc.local
Код:
sleep 10
/etc/init.d/tor start
exit 0
Повторный перезапуск маршрутизатора и просмотр логов свидетельствует об успешном запуске Тор-а.

# logread -e Tor
Thu Apr 9 08:29:10 2020 daemon.notice Tor[1389]: Bootstrapped 95% (circuit_create): Establishing a Tor circuit
Thu Apr 9 08:29:11 2020 daemon.notice Tor[1389]: Bootstrapped 100% (done): Done

Очистка системных логов и журнала ядра:
/etc/init.d/log restart

Об успешном запуске также свидетельствует вывод команды:
Код:
# ps | grep tor
1389 tor      21564 S    /usr/sbin/tor --runasdaemon 0
1516 root      1212 S    grep tor
Но простой запуск тора - ни чём не говорит )
Переходим к его настройке.

ШАГ № 2 Редактирование конфигурационного файла.

едактируем конфигурационный файл TOR - /etc/tor/torrc :
В сети Интернет много примеров.
Но внесение в этот файл лишних или неверных параметров приводит к неработоспособности ТОР или перезагрузке памяти роутера,
что также приводит к неработоспособности.

#cp /etc/tor/torrc /etc/tor/torrc_backup
# cat /dev/null > /etc/tor/torrc
# vi /etc/tor/torrc
Дописать, но не перезаписывать файл !

Код:
User tor
TransPort 0.0.0.0:9040
DNSPort 0.0.0.0:9053
SocksPort 0.0.0.0:9050 # чтобы socks-прокси был доступен другим машинам
SocksPolicy accept 192.168.0.0/16:* # разрешаем подключение к нему из локальной сети
SocksPolicy reject *:* # и запрещаем подключение из всех остальных мест
ExitRelay 0 # чтобы наш узел не был выходным
ExcludeExitNodes {am}, {az}, {by}, {ee}, {ge}, {kg}, {kz}, {lt}, {ly}, {md}, {ru}, {tj}, {tm}, {ua}, {uz} # чтобы исключить использование выходных узлов, расположенных в странах с государственной цензурой
Контролируем работу тор по логам:
# logread -e Tor

screen07.png

Настройки конфигурационного файла /etc/tor/torrc, с которыми тор работает без ошибок.

Потенциальные подводные камни:
Процесс парсинга файлов ....
GeoIPFile /usr/share/tor/geoip
GeoIPv6File /usr/share/tor/geoip6
.... Почему-то приводит к неработоспособности тора. Возможо, роутеру не хватает памяти. Поэтому они не включены в мой файл конфигурации. Кроме того, программа парсит их и без упоминания этих файлов в /etc/tor/torrc .

ШАГ №3. Настройка фаерволла.
Для того, чтобы интернет-трафик всех устройств локальной сети проксифицировался через установленный в роутере TOR, необходимо внести изменения в файл /etc/firewall.user

# vi /etc/firewall.user

Дописываем следующие правила iptables:

Код:
iptables -F
iptables -t nat -F

iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 -j REDIRECT --to-ports 9053
iptables -t nat -A PREROUTING -i br-lan -p tcp --syn \! --dport 22 -j REDIRECT --to-ports 9040

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o wlan0-1 -m owner --uid-owner 52 -j ACCEPT

iptables -A OUTPUT -o wlan0-1 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i wlan1 -j DROP
screen08.png

Возможные настройки фаерволла на маршрутизаторе.

В случае, если необходимо торифицировать только интернет -трафик клиентов локальной сети, подключенных с помощью кабеля ( то есть НЕ торифицировать подключенные через беспроводное соединение клиенты роутера) , то нужно оставить лишь две строчки:


# vi /etc/firewall.user
Код:
iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 -j REDIRECT --to-ports 9053
iptables -t nat -A PREROUTING -i br-lan -p tcp --syn \! --dport 22 -j REDIRECT --to-ports 9040


PostScriptum.
В последнее время в моду вошёл трэнд с установкой obfsproxy с целью сокрытия факта использования TOR-прокси от провайдера.
Упомянутая программа устанавливается следующей командой:
# opkg install obfsproxy
При установке нужно иметь ввиду, что эта программа тянет за собою немало зависимостей и требует сравнительно много свободного места.
 
Последнее редактирование:
Верх Низ