LINUX.ORG.RU

Проблема со входом на EmercoinDNS-домены через Tor

 , , , ,


3

3

Здравствуйте.
Готовлюсь к Северной Корее на 1/6(7?) части суши.
Прошу совета по конфигу Tor, всего Гугла излазил и ман Tor, не помогает (во всяком случае мне).

На роутере имеем:

  • bind9 на :53
  • dnscrypt-proxy на нецензурируемый россиянами DNS-сервер на 127.0.2.1:53
  • emercoin на 127.0.0.1:5335
  • tor на 127.0.0.1:9050
  • polipo на 0.0.0.0:8118

Задача: Сделать так, чтобы Тор не пытался резолвить домены, а жрал только то, что ему дают в виде «Socks4a на IPv4:port». Потому как (рандомные) выходные ноды не умеют в домены .lib, .coin, .bazar и т.д. А надо это всё, т.к. провайдер на любые упоминания «rutracker» (и, вероятно, много чего еще) в доменном имени по протоколу http выдает свою заглушку.

Анамнез: На «обычных» доменах работает замечательно (только медленно, но «это норма»).
На EmercoinDNS-доменах при использовании в браузере polipo в качестве прокси (в цепочке браузер->polipo->tor->домен) получаем

504 Connect to flibusta.lib:80 failed: SOCKS request rejected or failed
, т.к. Тор безуспешно пытается резолвить .lib-домен с ExitNode'ы.

user@router:[~]:#uname -a
Linux router 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

user@router:[~]:#cat /etc/os-release | grep PRET
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"

user@router:[~]:#tor-resolve flibusta.lib
Jan 23 22:39:04.853 [warn] Got SOCKS5 status response '4': host is unreachable

user@router:[~]:#nslookup flibusta.lib
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
Name:   flibusta.lib
Address: 81.17.19.227

Схема работы: bind9 форвардит «обычные» запросы на dnscrypt-proxy, запросы зон .lib и иже с ними в emercoin (я знаю, что OpenNIC DNS резолвят домены EmercoinDNS, это к вопросу не относится). Polipo форвардит http-запросы в socks4a Тора на 127.0.0.1:9050.

Конфиги:

/etc/resolv.conf

nameserver 192.168.1.1
nameserver 127.0.2.1:53

/etc/bind/named.conf

options {
        ...
        forwarders {
        // local DNSCrypt-proxy to OpenNIC DNS
        127.0.2.1 port 53;
        };
};
zone "lib." {
 	type forward;
 	forward only;
 	forwarders {
   	    127.0.0.1 port 5335; // Local EmerCoin wallet
 	};
};

/etc/dnscrypt-proxy/dnscrypt-proxy.conf

#
ResolverName cs-nl
Daemonize no
# LocalAddress only applies to users of the init script. systemd users must
# change the dnscrypt-proxy.socket file.
LocalAddress 127.0.2.1:53

/var/lib/emc/.emercoin/emercoin.conf

rpcuser=emccoinrpc
rpcpassword=LONGPASSWORD
debug=1
listen=1
server=1
rpcallowip=127.0.0.1
rpcport=6662
maxconnections=80
gen=0
daemon=1
rpcssl=1
rpcsslcertificatechainfile=/etc/ssl/emc/emercoin.crt
rpcsslprivatekeyfile=/etc/ssl/emc/emercoin.key
rpcsslciphers=HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2

upnp=1

emcdns=1 # Activate DNS
emcdnsallowed=.coin|.emc|.lib|.bazar # Allowed TLDs
emcdnsverbose=4
emcdnsport=5335 # Port for DNS, default is 5335

noirc=1
rpcconnect=127.0.0.1

keypool=100
splash=0

/etc/polipo/config:

proxyAddress = "0.0.0.0"
proxyPort = 8118
allowedClients = 127.0.0.1, 192.168.1.0/24
allowedPorts = 1-65535
proxyName = "localhost"
disableLocalInterface = false

dnsUseGethostbyname = reluctantly # true|false|happily|reluctantly(default) 

maxConnectionAge = 5m
maxConnectionRequests = 120
tunnelAllowedPorts = 1-65535
chunkHighMark = 67108864
localDocumentRoot = ""
disableConfiguration = true
#use socks4a for TOR
socksParentProxy = "127.0.0.1:9050"
socksProxyType = socks4a

/etc/tor/torrc:

SOCKSPolicy accept 192.168.1.0/8
SocksPort 127.0.0.1:9050 KeepAliveIsolateSOCKSAuth
SOCKSPolicy accept 127.0.0.0/8
SOCKSPolicy reject *
WarnUnsafeSocks 1
SafeSocks 0
ExitRelay 0

#DNSPort 9053
#DNSListenAddress 127.0.0.1 

SafeLogging 0 # requests debugging
Log notice file /var/log/tor/notices.log
Log warn file /var/log/tor/warnings.log
Log err file /var/log/tor/errors.log
# Log debug file /var/log/tor/debug.log

RunAsDaemon 1
DataDirectory /var/lib/tor
AvoidDiskWrites 1
StrictNodes 1
ExcludeExitNodes {RU},{UA},{BY},{KZ}

В Тор есть параметр NoDNSRequest, означающий

Do not ask exits to resolve DNS addresses in SOCKS5 requests. Tor will connect to IPv4 addresses, IPv6 addresses (if IPv6Traffic is set) and .onion addresses.
, но при любом его упоминании в конфиге сервис не запускается.

Подскажите, как быть, чего делать?
Или я перемудрил и всё гораздо проще делается?
И если да, то как?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.