Как настроить Tor на OpenWrt и спрятать весь домашний трафик

DarkBuffer

⚡ Contributor
ACTIVE NODE
INITIATED
Бывают ситуации, когда нужно пропустить весь трафик устройства через сеть Tor, но сделать это на самом устройстве невозможно. Например, на старых версиях Windows, на устройствах без возможности установки софта или на каких-то специфических гаджетах. В этом случае есть решение — настроить Tor прямо на роутере OpenWrt. Тогда все устройства, которые подключаются к этому роутеру, будут автоматически использовать Tor. Никаких лишних настроек на телефонах, ноутбуках и приставках. Всё работает на уровне сети.

Для начала вам нужен роутер с прошивкой OpenWrt. Подключаетесь к нему по SSH через терминал. Адрес по умолчанию 192.168.1.1, логин root, пароль тот, который вы установили при настройке. Дальше все команды выполняются на роутере.

Первым делом обновляем список доступных пакетов:


Код:
opkg update
Устанавливаем всё необходимое:


Код:
opkg install tor tor-geoip obfs4proxy nano
Теперь создаём пользовательский конфиг. В нём мы пропишем параметры для работы Tor. Открываем файл custom:


Код:
nano /etc/tor/custom
Вставляем в него настройки:


Код:
AutomapHostsOnResolve 1
AutomapHostsSuffixes .
VirtualAddrNetworkIPv4 172.16.0.0/12
VirtualAddrNetworkIPv6 [fc00::]/8
DNSPort 0.0.0.0:9053
DNSPort [::]:9053
TransPort 0.0.0.0:9040
TransPort [::]:9040
UseBridges 1
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy
Bridge СЮДА ВСТАВИТЬ МОСТ
Мосты можно получить на сайте Tor Project. Важно, чтобы перед каждым мостом стояла подпись Bridge. Если у вас есть несколько мостов, добавляйте их все, каждый с новой строки.

Чтобы настройки сохранялись при обновлении прошивки, нужно добавить наш конфиг в список сохраняемых файлов. Открываем файл sysupgrade.conf:


Код:
nano /etc/sysupgrade.conf
Добавляем туда путь к нашему кастомному конфигу:


Код:
/etc/tor
Теперь применяем изменения в основном конфиге Tor:


Код:
uci del_list tor.conf.tail_include="/etc/tor/custom"
uci add_list tor.conf.tail_include="/etc/tor/custom"
uci commit tor
/etc/init.d/tor restart
Дальше настраиваем фаервол. Создаём скрипт, который будет перенаправлять весь TCP-трафик с локальной сети на порт Tor:


Код:
nano /etc/nftables.d/tor.sh
Вставляем в файл следующее:


Код:
TOR_CHAIN="dstnat_$(uci -q get firewall.tcp_int.src)"
nft list chain inet fw4 ${TOR_CHAIN} \
| sed -e "/Intercept-TCP/\
s/^/fib daddr type != { local, broadcast }/
1i flush chain inet fw4 ${TOR_CHAIN}" \
| nft -f -
Добавляем этот скрипт в конфиг фаервола:


Код:
uci -q delete firewall.tor_nft
uci set firewall.tor_nft="include"
uci set firewall.tor_nft.path="/etc/nftables.d/tor.sh"
uci -q delete firewall.tcp_int
uci set firewall.tcp_int="redirect"
uci set firewall.tcp_int.name="Intercept-TCP"
uci set firewall.tcp_int.src="lan"
uci set firewall.tcp_int.src_dport="0-65535"
uci set firewall.tcp_int.dest_port="9040"
uci set firewall.tcp_int.proto="tcp"
uci set firewall.tcp_int.family="any"
uci set firewall.tcp_int.target="DNAT"
Отключаем обычную переадресацию с LAN на WAN:


Код:
uci -q delete firewall.@forwarding[0]
uci commit firewall
/etc/init.d/firewall restart
Теперь настраиваем DNS. Создаём правило для перехвата DNS-запросов и перенаправляем их на порт 9053, где работает DNS-сервер Tor:


Код:
uci -q delete firewall.dns_int
uci set firewall.dns_int="redirect"
uci set firewall.dns_int.name="Intercept-DNS"
uci set firewall.dns_int.src="lan"
uci set firewall.dns_int.src_dport="53"
uci set firewall.dns_int.proto="tcp udp"
uci set firewall.dns_int.target="DNAT"
uci set firewall.dns_int.family="any"
uci commit firewall
/etc/init.d/firewall restart
Чтобы предотвратить утечки DNS, останавливаем dnsmasq и меняем его настройки:


Код:
/etc/init.d/dnsmasq stop
uci set dhcp.@dnsmasq[0].boguspriv="0"
uci set dhcp.@dnsmasq[0].rebind_protection="0"
uci set dhcp.@dnsmasq[0].noresolv="1"
uci -q delete dhcp.@dnsmasq[0].server
uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#9053"
uci add_list dhcp.@dnsmasq[0].server="::1#9053"
uci commit dhcp
/etc/init.d/dnsmasq start
Перезагружаем роутер:


Код:
reboot
Теперь все устройства в вашей сети автоматически используют Tor. Весь трафик шифруется и маршрутизируется через сеть Tor, скрывая ваше реальное местоположение и активность. Но важно помнить, что Tor не обеспечивает полную анонимность, если вы нарушаете правила безопасности, например, заходите в личные аккаунты или передаёте личные данные. Для максимальной анонимности используйте Tor браузер и соблюдайте цифровую гигиену. Но для скрытия факта посещения сайтов и базовой защиты от слежки эта настройка работает отлично. Наслаждайтесь приватностью.
 

Biker_77

🔹 Member
INITIATED
Отличная инструкция. Я как сисадмин могу подтвердить, что всё работает. Сам настроил себе такую схему на домашнем роутере, чтобы все устройства в сети шли через Tor. Единственное, что добавлю, внимательно проверяйте мосты. Если они перестанут работать, роутер просто отрежет вам интернет. А так вещь удобная, особенно для тех, кто не хочет заморачиваться с настройкой каждого устройства отдельно.
 

Wizard_BY

🔹 Member
INITIATED
Инструкция толковая, но я бы предупредил новичков. Tor на роутере это не панацея. Скорость упадёт сильно, и некоторые сервисы будут блокировать соединение из-за того, что трафик идёт через Tor. Если вы просто хотите скрыть свой IP, это вариант. Но если вам нужна анонимность на уровне Tor Browser, одной настройки роутера мало. Тем не менее, для бытовых задач сойдёт. Автору респект за подробный гайд.
 

Pro100Tak

🔹 Member
INITIATED
Я пробовал такую схему на OpenWrt, работает. Но если у вас старый роутер, он может захлебнуться от нагрузки, особенно с obfs4 мостами. Тор требует ресурсов. Поэтому перед тем как ставить, убедитесь, что у роутера есть запас по памяти и процессору. А так гайд хороший, всё подробно расписано. Спасибо автору.
 

ZzzSleepy

🔹 Member
INITIATED
Я не очень технический человек, но инструкция понятная. Правда, когда я попробовал повторить, роутер перестал подключаться к интернету. Пришлось перепрошивать. Наверное, я что-то не так сделал. Но если вы дружите с терминалом, думаю, проблем не будет. Я бы посоветовал новичкам сначала потренироваться на старом роутере, чтобы не остаться без интернета на весь вечер.
 

CrazyPanda42

🔹 Member
INITIATED
Я далёк от IT, но статья заинтересовала. У нас в деревне иногда интернет отключают, и я слышал, что через Tor можно обойти блокировки. Но честно говоря, я испугался этих команд. Слишком сложно для меня. Наверное, я просто куплю уже готовый роутер с предустановленным Tor, если такие бывают. Но тем, кто разбирается, статья будет полезна.
 
Верх