OpenWRT. Установка Tor.
⚠ Такое решение потребует большого количества оперативной памяти на роутере!
https://gekkk.co/0e68eeda2cfc43f62f2d562c5274f888

В связи с проблемами в работе мостов obfs4 в РФ собираем WebTunnel, но вместо команды
amnesia@amnesia:~/Persistent/webtunnel_mips/main/client$ go build
собираем его для архитектуры вашего роутера. Для используемого в качестве примера wndr3800 ath79/generic mips_24kc командой:
amnesia@amnesia:~/Persistent/webtunnel_mips/main/client$ GOOS=linux GOARCH=mips GOMIPS=softfloat go build -a
Переименовываем полученный файл client в webtunnel-client и записываем на USB-накопитель.
Подключаемся к роутеру по SSH.
ssh root@192.168.135.1 -o port=5863
Устанавливаем openssh-sftp-server
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install openssh-sftp-server
Перезапускаем dropbear.
root@OpenWrt:~# /etc/init.d/dropbear restart
Создаём точку монтирования
mkdir /home/user/openwrt
Монтируем файловую систему роутера.
sshfs root@192.168.135.1:/ /home/user/openwrt -o port=5863
Записываем файл webtunnel-client с USB накопителя на ротуер в каталог /home/user/openwrt/usr/bin/
Устанавливаем Tor.
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install tor
Настраиваем клиент Tor.
root@OpenWrt:~# cat << EOF > /etc/tor/custom
AutomapHostsOnResolve 1
AutomapHostsSuffixes .
VirtualAddrNetworkIPv4 172.16.0.0/12
VirtualAddrNetworkIPv6 [fc00::]/8
DNSPort 0.0.0.0:9053
DNSPort [::]:9053
#SOCKSPort 0.0.0.0:9050
#SOCKSPort [::]:9050
TransPort 0.0.0.0:9040
TransPort [::]:9040
HardwareAccel 1
UseBridges 1
ClientTransportPlugin webtunnel exec /usr/bin/webtunnel-client
Bridge webtunnel [2001:db8:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:443 XXXXX url=https://XXX…/ ver=0.0.1
EOF
root@OpenWrt:~# cat << EOF >> /etc/sysupgrade.conf
/etc/tor
EOF
root@OpenWrt:~# uci del_list tor.conf.tail_include="/etc/tor/custom"
root@OpenWrt:~# uci add_list tor.conf.tail_include="/etc/tor/custom"
root@OpenWrt:~# uci commit tor
root@OpenWrt:~# /etc/init.d/tor restart
root@OpenWrt:~# /etc/init.d/tor enable
Заворачиваем весь трафик локальной сети в Tor.
Настраиваем переадресацию TCP-трафика на порт прозрачного прокси Tor.
root@OpenWrt:~# cat << "EOF" > /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 -
EOF
root@OpenWrt:~# uci -q delete firewall.tor_nft
root@OpenWrt:~# uci set firewall.tor_nft="include"
root@OpenWrt:~# uci set firewall.tor_nft.path="/etc/nftables.d/tor.sh"
root@OpenWrt:~# uci -q delete firewall.tcp_int
root@OpenWrt:~# uci set firewall.tcp_int="redirect"
root@OpenWrt:~# uci set firewall.tcp_int.name="Intercept-TCP"
root@OpenWrt:~# uci set firewall.tcp_int.src="lan"
root@OpenWrt:~# uci set firewall.tcp_int.src_dport="0-65535"
root@OpenWrt:~# uci set firewall.tcp_int.dest_port="9040"
root@OpenWrt:~# uci set firewall.tcp_int.proto="tcp"
root@OpenWrt:~# uci set firewall.tcp_int.family="any"
root@OpenWrt:~# uci set firewall.tcp_int.target="DNAT"
Отключаем переадресацию LAN в WAN
root@OpenWrt:~# uci -q delete firewall.@forwarding[0]
root@OpenWrt:~# uci commit firewall
root@OpenWrt:~# /etc/init.d/firewall restart
Настраиваем переадресацию DNS-трафика на DNS-порт Tor.
root@OpenWrt:~# uci -q del firewall.dns_int
root@OpenWrt:~# uci set firewall.dns_int="redirect"
root@OpenWrt:~# uci set firewall.dns_int.name="Intercept-DNS"
root@OpenWrt:~# uci set firewall.dns_int.family="any"
root@OpenWrt:~# uci set firewall.dns_int.proto="tcp udp"
root@OpenWrt:~# uci set firewall.dns_int.src="lan"
root@OpenWrt:~# uci set firewall.dns_int.src_dport="53"
root@OpenWrt:~# uci set firewall.dns_int.target="DNAT"
root@OpenWrt:~# uci commit firewall
root@OpenWrt:~# /etc/init.d/firewall restart
Настраиваем DNS-сервер.
root@OpenWrt:~# /etc/init.d/dnsmasq stop
root@OpenWrt:~# uci set dhcp.@dnsmasq[0].boguspriv="0"
root@OpenWrt:~# uci set dhcp.@dnsmasq[0].rebind_protection="0"
root@OpenWrt:~# uci set dhcp.@dnsmasq[0].noresolv="1"
root@OpenWrt:~# uci -q delete dhcp.@dnsmasq[0].server
root@OpenWrt:~# uci add_list dhcp.@dnsmasq[0].server="127.0.0.1#9053"
root@OpenWrt:~# uci add_list dhcp.@dnsmasq[0].server="::1#9053"
root@OpenWrt:~# uci commit dhcp
root@OpenWrt:~# /etc/init.d/dnsmasq start
Проверяем утечки трафика с помощью Internet-сервисов.
https://browserleaks.com/
https://www.dnsleaktest.com/