Strona domowa GDR!a Tor Hidden Service

V 3.8


Tunelowanie przez DNS na Androidzie

Tunelowanie ruchu przez DNS jest genialnym rozwiązaniem, ale potrzebne jest zazwyczaj w tych momentach, kiedy nie ma się pod ręką laptopa, jest zimno, pada, nie wiemy w którą stronę iść, a na dodatek jesteśmy poza zasięgiem aktualnie posiadanej mapy. Prosi się więc o odpalenie tego rozwiązania na telefonie.

Do wykonania potrzebujemy: zrootowany telefon z Androidem, linuxowy serwer, własną domenę, oraz podstawową wiedzę na temat DNS i obsługi shella.

Proces instalacji jest zgapiony z http://dnstunnel.de/ i tam proszę się udać w razie niepowodzeń.

Zakładam, że example.com to nazwa domeny, a 1.2.3.4 to IP serwera z Linuxem.

DNS

Oddelegujemy wszystkie zapytania z sub.example.com na serwer DNS stojący na Linuxie. Wystarczy dodać następujące dwa rekordy:

sub.example.com.     IN NS serv.example.com.
serv.example.com     IN A  1.2.3.4

Serwer z Linuxem

Na początku uprzedzę, że stawianie takiego serwera powinno odbywać się w dedykowanej tylko do tego maszynie wirtualnej bądź kontenerze, ponieważ istnieje spore niebezpieczeństwo, że ktoś się tam włamie.

Ściągamy pakiet OzymanDNS, instalujemy zależności:

sudo apt-get install libnet-dns-perl libmime-base32-perl

Serwer odpala się poleceniem

sudo ./nomde.pl -i 0.0.0.0 sub.example.com
, które to powoduje że serwer nasłuchuje na wszystkich interface'ach sieciowych (0.0.0.0) oraz akceptuje tunelowany ruch kierowany do sub.example.com.

Warto w tym momencie przetestować łącznośc z domowego komputera następującym poleceniem:

ssh -vv -o ProxyCommand="./droute.pl sshdns.sub.example.com" user@localhost

Może to potrwać dłuższy okres czasu. Jeśli SSH się połączy i da się zalogować, warto uruchomić nomde.pl w nieco bardziej wyrafinowany sposób niż screen sudo. Oto skrypt do supervisord:

[program:nomde]
command = /root/nomde.pl -i 0.0.0.0 sub.example.com
autostart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/nomde.log

Ponadto, będzie potrzebny zainstalowany jakiś serwer proxy - ja używałem tinyproxy. Warto ustawić go na słuchanie wyłącznie na localhoście, żeby nie stać się publicznym proxy. Ja zwyczajowo ustawiam również port na 6666.

Android

Przypominam - Android musi być zrootowany.

Pierwszym krokiem na Androidzie będzie instalacja Linuxa. Służy do tego aplikacja o nazwie Linux Installer. Przed instalacją polecam wejść do menu wybrać "Quick tutorial" - program ciężko nazwać intuicyjnym w obsłudze. Z Marketu przydadzą się jeszcze: ConnectBot oraz ProxyDroid.

Po zainstalowaniu Linuxa, wchodzimy do ConnectBot, z dropdowna w dolnej części ekranu wybieramy "local", wpisujemy dowolną nazwę połączenia i wciskamy enter. Powinna pojawić się konsola, w której wpisujemy: linuxchroot (lub inną komendę podaną w Linux Installerze). Najpierw zainstalujmy niezbędne pakiety:

apt-get update && apt-get install openssh-client libnet-dns-perl libmime-base32-perl

Następnie ściągamy na telefon i rozpakowujemy OzzymanDNS - tar, wget i scp działają normalnie. Kopiujemy droute.pl do /usr/bin/. Nawiązujemy pierwsze połaczenie:

ssh -C -vv -L 6666:localhost:6666 -o ProxyCommand="/usr/bin/droute.pl sshdns.sub.example.com" user@localhost

Jeśli połaczenie zostało nawiązane, to na porcie 6666 Androida mamy tunel do proxy na serwerze. Teraz pozostaje nam ustawić ProxyDroid tak, żeby korzystały z niego pozostałe aplikacje.

W ustawieniach ProxyDroid:

  • Proxy Switch = True
  • Host = localhost
  • Port = 6666
  • Proxy type = HTTP
  • Global Proxy = True

Teraz pozostaje wejść np. na stronę http://myip.dk/ i sprawdzić czy adres przez nią wskazywany to 1.2.3.4 (adres serwera). Jeśli tak, tunel po DNS działa.

URL encoded in QR Code Statystyki:

Email
Comments