Бывают ситуации, когда нужно пропустить весь трафик устройства через сеть Tor, но сделать это на самом устройстве невозможно. Например, на старых версиях Windows, на устройствах без возможности установки софта или на каких-то специфических гаджетах. В этом случае есть решение — настроить Tor прямо на роутере OpenWrt. Тогда все устройства, которые подключаются к этому роутеру, будут автоматически использовать Tor. Никаких лишних настроек на телефонах, ноутбуках и приставках. Всё работает на уровне сети.
Для начала вам нужен роутер с прошивкой OpenWrt. Подключаетесь к нему по SSH через терминал. Адрес по умолчанию 192.168.1.1, логин root, пароль тот, который вы установили при настройке. Дальше все команды выполняются на роутере.
Первым делом обновляем список доступных пакетов:
Устанавливаем всё необходимое:
Теперь создаём пользовательский конфиг. В нём мы пропишем параметры для работы Tor. Открываем файл custom:
Вставляем в него настройки:
Bridge СЮДА ВСТАВИТЬ МОСТ
Мосты можно получить на сайте Tor Project. Важно, чтобы перед каждым мостом стояла подпись Bridge. Если у вас есть несколько мостов, добавляйте их все, каждый с новой строки.
Чтобы настройки сохранялись при обновлении прошивки, нужно добавить наш конфиг в список сохраняемых файлов. Открываем файл sysupgrade.conf:
Добавляем туда путь к нашему кастомному конфигу:
Теперь применяем изменения в основном конфиге Tor:
Дальше настраиваем фаервол. Создаём скрипт, который будет перенаправлять весь TCP-трафик с локальной сети на порт Tor:
Вставляем в файл следующее:
Добавляем этот скрипт в конфиг фаервола:
Отключаем обычную переадресацию с LAN на WAN:
Теперь настраиваем DNS. Создаём правило для перехвата DNS-запросов и перенаправляем их на порт 9053, где работает DNS-сервер Tor:
Чтобы предотвратить утечки DNS, останавливаем dnsmasq и меняем его настройки:
Перезагружаем роутер:
Теперь все устройства в вашей сети автоматически используют Tor. Весь трафик шифруется и маршрутизируется через сеть Tor, скрывая ваше реальное местоположение и активность. Но важно помнить, что Tor не обеспечивает полную анонимность, если вы нарушаете правила безопасности, например, заходите в личные аккаунты или передаёте личные данные. Для максимальной анонимности используйте Tor браузер и соблюдайте цифровую гигиену. Но для скрытия факта посещения сайтов и базовой защиты от слежки эта настройка работает отлично. Наслаждайтесь приватностью.
Для начала вам нужен роутер с прошивкой OpenWrt. Подключаетесь к нему по SSH через терминал. Адрес по умолчанию 192.168.1.1, логин root, пароль тот, который вы установили при настройке. Дальше все команды выполняются на роутере.
Первым делом обновляем список доступных пакетов:
Код:
opkg update
Код:
opkg install tor tor-geoip obfs4proxy nano
Код:
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
Мосты можно получить на сайте Tor Project. Важно, чтобы перед каждым мостом стояла подпись Bridge. Если у вас есть несколько мостов, добавляйте их все, каждый с новой строки.
Чтобы настройки сохранялись при обновлении прошивки, нужно добавить наш конфиг в список сохраняемых файлов. Открываем файл sysupgrade.conf:
Код:
nano /etc/sysupgrade.conf
Код:
/etc/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
Код:
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"
Код:
uci -q delete firewall.@forwarding[0]
uci commit firewall
/etc/init.d/firewall restart
Код:
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
Код:
/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