Table of Contents

Tor клиент

Введение

Goals

Инструкции командной строки

1. Tor клиент

Установите необходимые пакеты. Настройте клиент Tor

# Установить пакеты
opkg update
opkg install tor
 
# Настроить клиент Tor 
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
TransPort 0.0.0.0:9040
TransPort [::]:9040
EOF
cat << EOF >> /etc/sysupgrade.conf
/etc/tor
EOF
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

Предпочитайте IPv6 by default по умолчанию или объявите маршрут IPv6 default route по умолчанию, если это необходимо.

2. Брандмауэр

Настройте брандмауэр для перехвата трафика локальной сети . Отключите переадресацию LAN - WAN , чтобы предотвратить утечку трафика.

# Перехват TCP-трафика
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
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

3. DNS через Tor

Configure firewall to intercept DNS traffic.

# Intercept DNS traffic
uci -q del firewall.dns_int
uci set firewall.dns_int="redirect"
uci set firewall.dns_int.name="Intercept-DNS"
uci set firewall.dns_int.family="any"
uci set firewall.dns_int.proto="tcp udp"
uci set firewall.dns_int.src="lan"
uci set firewall.dns_int.src_dport="53"
uci set firewall.dns_int.dest_port="53"
uci set firewall.dns_int.target="DNAT"
uci commit firewall
service firewall restart

Настройте брандмауэр для перехвата DNS- трафика.

# Перехват DNS-трафика 
/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

Тестирование

Убедитесь, что вы используете Tor.

Проверьте своего IP-адреса и DNS- провайдера.

Поиск неисправностей

Соберите и проанализируйте следующую информацию.

# Перезапустить сервисы
/etc/init.d/log restart; /etc/init.d/firewall restart; /etc/init.d/tor restart
 
#  Журнал и статус 
logread -e Tor; netstat -l -n -p | grep -e tor
 
#  Конфигурация среды выполнения 
pgrep -f -a tor
nft list ruleset
 
#  Постоянная конфигурация 
uci show firewall; uci show tor; grep -v -r -e "^#" -e "^$" /etc/tor