Diskussion:Gratis Internet (3): DNS Tunnel unter Windows

Aus NOBAQ
Zur Navigation springenZur Suche springen

Comments on Gratis Internet (3): DNS Tunnel unter Windows <comments />


Dennis said ...

Hey, das aktuelle Putty hat’s auch schon drin. Mir fehlte wohl echt die nötige Perl-Kenntnis… Applaus!!! Hoffentlich finden das nicht zu viele Leute, sonst wirds bald das Netz überlasten und dann abgestellt werden, also nicht mehr lange funktionieren... Liebe Grüße, Dennis


--Dennis 00:48, 13. Jan 2008 (MSD)

User said ...

In der aktuellen CHIP 06/2009 in der DNS-Trick für kostenloses Surfen via HotSpots auf Seite 144 zu finden, auch der Name Nikolaus Hammler ist dort erwehnt im zusammenhang mit der Nutzung vonb Windows.

Der Artikel ist SUPER und freut mich sehr, dass ich jetzt vor deren Abzockerei gewappnet bin :-) .

--User 05:03, 9. Mai 2009 (MSD)

Chris said ...

Hallo, ich glaube ich bin zu dumm um das einzurichten...

Die Abfrage ./droute.pl -r *IP_VON_MEINSERVER* sshdns.*MEINSERVER.MEINEDOMAIN.TLD*

führt in der Konsole zu der fortlaufenden Ausgabe:
  1. (Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=#(Ʋ×]·ç}DÛM=

Scheint eine Endlosschlaufe zu sein....

Und auf dem Server wird auf der Konsole folgendes ausgegeben:

UDP connection from *MEINE_PRIVATEIP*:1300 query 7887: (54-19184.id-8560.down.sshdns.*MEINSERVER.MEINEDOMAIN.TLD*, IN, TXT) - 54-19184.id-8560.down.sshdns.*MEINSERVER.MEINEDOMAIN.TLD*. 0 IN TXT "Hi: Mon May 11 23:53:35 CEST 2009" NOERROR

id = 7887
qr = 1 opcode = QUERY aa = 1 tc = 0 rd = 1
ra = 0 ad = 0 cd = 0 rcode = NOERROR
qdcount = 1 ancount = 1 nscount = 0 arcount = 0


Bei dig erhalte ich die richtige IP Adresse zurück, welche ich mit -i angegeben habe. Kann mir jemand helfen?

--Chris 01:40, 12. Mai 2009 (MSD)

Niki said ...

Hi Chris,

Was steht bei dir am Server (droute.pl) in der Zeile

$opts{forward}

?

Dieser SSH Server muss von dem Punkt an dem nomde läuft erreichbar sein, z.B. sshdns:127.0.0.1:22

lg Niki


--Niki 13:19, 12. Mai 2009 (MSD)

Berniebaer said ...

Hmm, irgendwie scheinen die Informationen aus dem Artikel in der Chip nicht mit den Informationen hier auf der Webseite übereinzustimmen. Brauche ich denn nun einen Server auf dem der SSH-Tunnel läuft?

Vielen Dank Bernd

--Berniebaer 14:05, 19. Mai 2009 (MSD)

Niki said ...

Hi Berniebaer,

Doch, im großen und ganzen stimmen sie überein.

Was nun stimmt: Ein Tunnel ist immer ein Konstrukt zwischen zwei PCs, das "rennt" nicht auf einem.

Du brauchst:

  • Einen Rechner/Server/Computer/vServer/... auf dem du die Möglichkeit hast ein Programm zu starten. Ausserdem muss ein UNIX System (z.B. Linux) drauf laufen.
  • Es muss perl installiert sein samt benötigter Module (z.B. Net::DNS)
  • Port 53 (DNS) muss frei sein und du musst ihn verwenden dürfen.
  • Du brauchst entweder root-Rechte oder Rechte, dein Programm an Port 53 lauschen zu lassen.

Also in Summe: Entweder einen eigenen Linux-Server zu Hause oder einen vServer.

Was du nun über den *DNS-Tunnel* laufen lässt bleibt dir überlassen. Am geschicktesten ist aber sicher SSH, d.h. über den DNS-Tunnel läuft dann eine SSH Verbindung, z.B. zum SSH Server auf dem gleichen Rechner. Erst über SSH werden dann mit Hilfe von Socks die restlichen Protokolle (www, Mail etc) getunnelt.


--Niki 21:23, 19. Mai 2009 (MSD)

Berniebaer said ...

Vielen Dank für die rasche Antwort, habe einfach nicht genau gelesen.

LG BB

--Berniebaer 23:05, 19. Mai 2009 (MSD)

Faustus said ...

Moin Ich hab mal eine Frage, ich habe es in der Praxis getestet funktioniert wirklich 1 A. Da kam mir nur eine Idee, ich benutze Proxifier um mit dem localen Socks5 alle Programme zu tunneln. Da kam mir folgende Idee : Warum machen wir nicht 3,4,5.... DNS Connections auf über droute (mir Putty), und binded alle geöffnetet Socks5 in ein proxychain mit ein, so sollte die Verbindung doch einigermassen schneller von statten gehen, falls mehrere Verbindungen angefordert werden. In der Praxis funktioniert das leider nicht, ich öffne mit Putty zwar einen neuen TunnelPort, aber wenn ich dann beide localen proxys in Proxifier eintrage, geht keine Verbindung mehr raus. Woran könnte das liegen? . Liege ich falsch mit meiner behauptung das dies funktionieren könnte auf einem Host ? Oder bräuchte ich dann mehrere Server ?

--Faustus 16:22, 27. Mai 2009 (MSD)

Niki said ...

@Faustus: Sorry, dazu kann ich dir nichts sagen. Ich habe das Ding eigentlich "für den Notfall" gebastelt. Aber normalerweise müsste es gehen, das Ding verwendet ja Sequenznummern. Unter Linux hab ich es gerade getestet: Zwei parallele SSH Sessions sind möglich, also muss das gleiche auch für Windows funktionieren. Probier zuerstmal parallel die droute.exe auszuführen. Normalerweise sollte das gehen. In weiterer Folge zweimal eine SSH Verbindung per PuTTY - jeweils über ein eigenes droute. Müsste eigentlich auch gehn. Ansonsten liegt der Fehler vielleicht bei Proxyfier (kenn das Programm nicht).

--Niki 20:00, 29. Mai 2009 (MSD)

onkelarnie said ...

Hi, ich habe jetzt auch einmal einen Tunnel aufgesetzt und versuche gerade diesen mit einem Win Client anzusteuern. mit #dig @<ip-des-servers> www.nobaq.net escheint auch schon eine Ausgabe auf der Cleint und Serverseite, daß der NS antwortet. Doch leider funktioniert der Proxy über Putty nicht. Wie aknn man die Clientseite testen ?

Danke Arne

--onkelarnie 14:27, 15. Jun. 2009 (MSD)

Niki said ...

@onkelarnie: Steht eh oben im Artikel:

droute -r <DNS-des-Providers-oder-lokaler> sshdns.<DNS-Eintrag-zum-Tunnel>

z.B.:

droute -r 195.3.96.67 sshdns.tunnel.nobaq.net.

Dann müsste der Banner des SSH Servers erscheinen, z.B.:

SSH-1.99-OpenSSH_4.3p2 Debian-9


--Niki 14:37, 15. Jun. 2009 (MSD)

onkelarnie said ...

hi, ich bekomme keinerlei ausgabe:

linux-server mit laufendem nomde.pl:

./nomde.pl -i 0.0.0.0 into.<domain1>.org
port 53 TCP/UDP vom router ist weitergeleitet
über dyndns ist ne subdomain weitergeleitet:
into.<domain3>.org > ip_des_routers

nameserverconfig: into.<domain1>.org IN NS into.<domain2>.org into.<domain2>.org CNAME into.<domain3>.org


wenn ich jetzt eingebe: droute -r <mein_DNS_SERVER> sshdns.into.<domain1>.org dann passiert gar nichts.

mit der eingabe: dig @into.<domain3>.org www.nobaq.net antwortet der server.


--onkelarnie 15:11, 15. Jun. 2009 (MSD)

Maël said ...

Hallo Zusammen. Beschäftige mich gerade mit der erstellung eines DNS Tunnels. Erstmals riiesen Danke für diese Anleitung. Leiter habe ich keine Kentnisse von Perl.

Deshalb nun meine Frage: Die droute.exe welche hier heruntergeladen werden kann. auf welchem Port läuft diese? Das heisst was muss forgewarded sein? SSH und DNS?

Danke und Gruss

--Maël 10:34, 17. Jun. 2009 (MSD)

Niki said ...

@onkelarnie: Wenn du willst dass ich dir helfe, schreib bitte deine echten Daten rein (kannst mir auch ein E-Mail schicken), aber raten fange ich jetzt sicher nicht an ;-) Was mir auf den ersten Blick auffällt: Was soll das sein?

dig @into.<domain3>.org www.nobaq.net

Damit fragst du den Server auf into.<domain3>.org rekursiv nach den Daten für www.nobaq.net. Du willst doch wohl eher was wie:

NS_SERVER=`grep '^nameserver' /etc/resolv.conf | awk '{print $2}'`
dig @$NS_SERVER into.<domainX>.org

@Maël: Nein, die droute.exe ist der Clientteil, der braucht gar kein Portforwarding. Genau das ist ja der Clou daran wieso es auch hinter Firewalls funktioniert: Weil DNS meistens immer durchgeht. Den Server (nomde) wirst du wohl auf einem UNIX System installieren müssen. Hast du eine öffentliche IP am Rechner passt alles, sonst musst du nur Port 53 (vor allem UDP aber auch TCP) weiterleiten.


--Niki 01:20, 18. Jun. 2009 (MSD)

Marvin said ...

Hi, hoffe mir kann hier jmd helfen... Bin auf den Trick durch einen Chip-Artikel aufgmerksam geworden und bin seit gestern dabei, es umzusetzen... ist nur leider alles schwerer als gedacht...

Ich habe einen VServer mit statischer IP sowie, bei einem anderen Provider, eine Domain. Bei meinem Domainprovider (Xlhost) kann ich DNS-A, TXT und CNAME festlegen. Ich habe nun also eine Subdomain dns.meine-url.de anlegt, diese leitet auf die IP des Servers. Diese Weiterleitung klappt schonmal. Auf dem VServer (Debian) habe ich dann das besagte Tool installiert und mit ./nomde.pl -i 0.0.0.0 .dns.meine-domain.de. gestartet. Es sagt dann "Waiting for connections". Wenn ich auf dem gleichen VServer " dig @62.75.211.21 test.passwort.tunnel.meine-domain.de. TXT" ausführe bekomme ich eine Antwort und die Uhrzeit, mit A am Ende bekomme ich als Antwort 0.0.0.0. Werde später nochmal probieren den Befehl von einem anderen Commputer auszuführen...

Nun möchte ich als Client einen Windows-PC nutzen und habe Putty wie angegeben konfiguriert, leider ffunktioniert ab hier nichts mehr. Putty gibt nichts aus, surfen lässt sich auch nicht, auf dem Server wird auch keine eingehende Verbindung angezeigt. Ich habe mal mit Wireshark den Datenstro mitgesnifft und da sind so einige DNS anfragen an den Server unterwegs, ka was davon wichtig ist...


Würde mich wirklich über jede Hilfe freuen!!


--Marvin 21:47, 17. Jul. 2009 (MSD)

Niki said ...

@Marvin: Ja, das System ist definitiv nicht unkompliziert und erfordert einiges an Wissen um es anständig zum Laufen zu bekommen. Wieso es Chip abgedruckt hat ist mir zumindest ein Rätsel ;-)

1.) Zu deinen Fragen: Du benötigst unbedingt die Möglichkeit einen NS Eintrag zu setzen (Delegation). Anders wird der Tunnel nie funktionieren!! (Das System verwendet Labels unterhalb als Sequenznummern).

2.) Deine Ergebnisse passen schonmal. Bei einem TXT Request soll die Uhrzeit kommen und bei einem A-Request das was du als "-i" eingegeben hast, in deinem Fall also 0.0.0.0. Nur wirst du so keine Freude haben, da du deinen eigenen Server direkt befragst. Der Trick mit dem Tunnel basiert ja darauf dass du deine Anfragen an den DNS Server des Hotspots stellst und dieser wiederum deinen DNS Server befragt (und das kann er nur wenn die Tunnel-Domain ordentlich mit einem NS Record deligiert wurde).

3.) nomde führst du mit ".dns.meine-domain.de." aus. Der erste Punkt ist falsch und gehört nicht hin. Ausserdem fragst du dann mit "test.passwort.tunnel.meine-domain.de." ab. Das verstehe ich nicht, das müsste wenn lauten "test.dns.meine-domain.de".

4.) Natürlich, bisher kann das aus mehreren Gründen nicht funktionieren!

Wie ich schon oft geschrieben habe mein Tipp: Alles nach und nach überprüfen:

  1. Antwortet der Server korrekt authoritiv (auf TXT und A Records)
  2. Antwortet der Server rekursiv mit Hilfe eines rekursiven Servers (z.B. des Providers)? Falls nein stimmt was mit der Delegation nicht.
  3. Antwortet der Server mit dem SSH Banner wenn man "nackt" mit nomde verbindet? Wenn nein, stimmt was mit der Konfiguration von nomde nicht...

Erst dann darf man wagen sich an Versuche mit PuTTY & Co ranzuwagen...

HTH, Niki


--Niki 22:19, 17. Jul. 2009 (MSD)

Marvin said ...

Danke für deine schnelle Antwort! Ja... da hast du recht, ist schon sehr komplex...

Ich habe mal anstelle des DNS-A Records DNS-TXT mit "IN NS serverip" (Das ist doch der besagte NS-Eintrag, oder?) gesetzt aber nun ist der Server unter der Domain nicht mehr erreichbar (Ping). Oder geht es einfach bei meinem Provider nicht und ich sollte es mal bei dnstunnel.com probieren?

Was meinst du mit Punkt 4, Unterpunkte 3? Kannst du mir das nochmal genauer erklären?


--Marvin 22:48, 17. Jul. 2009 (MSD)

Niki said ...

Sieht so aus dass das mit deinem Provider nicht geht, ja. dnstunnel wäre hier eine Option (oder zu einem anständigem Provider wechseln ;-) )

Die Punkte sind keine Unterpunkte von Punkt 4.

Das sind allgemein nur die Schritte mit denen du den Tunnel testen sollst.


--Niki 23:30, 17. Jul. 2009 (MSD)

Tim said ...

Moin!

Super Idee und super Dokumentation!!

Solche Prozesse sind in den meisten "HOW-TO" Dokus unglaublich mangelhaft beschrieben und setzen zudem kommentarlos voraus, dass Triviale Sachverhalte sowieso allseits bekannt und daher nicht explizit zu dokumentieren sind. Bestenfalls werden zu diesen "Trivialen" Themen noch ein paar Verweise auf andere Dokumente und Sites aufgeführt (die dann zumeist ebenfalls mangelhaft sind...).

Daher ist dieses "How-To" doch noch etwas außergewöhnliches und sollte erwähnt werden! Tausend Dank dafür (und für die super-Idee)! :-)

P.S. Übrigens funktioniert das Surfen via DNS-TUNNEL nicht nur in W-LAN Netzwerken, sondern auch in vielen GSM/UMTS/HSDPA Netzwerken (ohne Veränderungen an dem hier beschriebenen Prozess machen zu müssen :-) ). Es funktioniert bei all jenen Providern die zuerst eine z.B. UMTS-Verbindung benötigen um dann auf der automatisch aufgerufenen Web-Site die Art der Bezahlung zu wählen. Soll heißen: Die Einwahl funktioniert immer und ist normalerweise auch kostenlos. Sobald die Einwahl funktioniert und man sich nun im Mobilfunk-Netz befindet, folgt man einfach dem hier beschriebenen Prozess um kostenlos Mobil-Surfen zu können.

Beispielsweise funktioniert Der N24 (www.n24.de) Internet-Stick durch nachträgliche Anmeldung. Die Einwahl ins Vodafone-Netz erfolgt ohne Anmeldung und ist kostenlos! Also ist zwar das Medium ein anderes (GSM statt W-LAN), jedoch gleicht es exakt dem typischen Verfahren zur Verwendung von kostenpflichtigen W-LAN Hotspots.

Hab´s ausprobiert und es funktioniert prima!!

--Tim 00:04, 19. Jul. 2009 (MSD)

Oli said ...

Hallo an alle. Erstmal vielen Dank für das Howto. Sowas ist wirklich selten geworden. Ich habe es mit meinem N24-Stick ausprobiert. Der Server antwortet dem Client, aber leider bekomm ich keine Verbindung zu anderen Seiten ausser N24.de. Sobald ich die Proxy-Einstellungen auf SOCKS-Host localhost:5000 ändere, funktioniert gar nichts mehr. Kann es vielleicht sein, daß der Port hier noch angegeben werden muß? ssh -C -o ProxyCommand="./droute.pl sshdns.server.example.com" user@localhost

Wie gesagt, sobald ich ssh auf dem Client ausführe, verbindet er sich mit dem Server problemlos.

Danke für eure Hilfe.

--Oli 01:19, 19. Jul. 2009 (MSD)

Niki said ...

@Oli: Natürlich, du musst dynamisches Portforwarding auch noch aktivieren: -D5000 (siehe man ssh)


--Niki 13:39, 19. Jul. 2009 (MSD)

Oli said ...

@Niki - Danke für die schnelle Antwort. Leider funktioniert das mit der Portangabe -D5000 leider nicht. Der Browser meldet jedesmal "Die Verbindung zum Proxyserver konnte nicht hergestellt werden. Zugriff verweigert." Unter Proxyeinstellungen steht: localhost:5000. Mein Terminal: ssh -C -o ProxyCommand="./droute.pl sshdns.tunnel.*meinedomain*.de" -D5000 user@ubuntu904desktop. Der Server antwortet zwar, Daten werden auch ständig ausgetauscht nur will Firefox und Opera net so richtig. Hm - hat noch jemand ne Idee???

Viele Grüße, Oli.


--Oli 18:00, 19. Jul. 2009 (MSD)

Niki said ...

Hmm. Hast du Vista? Hast du IPv6 aktiviert? Probier mal statt localhost 127.0.0.1.

Sonst:

telnet 127.0.0.1 5000

Kriegst du ne Verbindung?

netstat -a -o

Scheint das Socket auf? Passt alles?

Auf alle Fälle hat dein Problem nicht mehr mit dem DNS Tunnel zu tun...Probier es mit einer "normalen" SSH-Verbindung.

hth


--Niki 01:35, 20. Jul. 2009 (MSD)

Tyler said ...

@Marvin: Bist du sicher, dass das an XLhost.de liegt? Überlege grade nur dafür bei XLhost.de ne Dom zu bestellen mit 1MB Speicherplatz, macht 6,12 EUR / Jahr und ist damit unschlagbar günstig (wills in der eigenen Hand haben und nicht von Julius die Einträge auf dnstunnel.de gesetzt bekommen). Laut XLhost sollte man alle notwendigen Einträge im DNS (A-Record und CNAME) ändern können. @Niki: Hast du ihm gesagt, dass es vermutlich am Provider XLhost liegt um nicht weiter mit Fragen gelöchert zu werden, die du im HOWTO schon längst beantwortet hast und denkst du dass mit den DNS Records die man bei XLhost anlegt das auch funktioniert? Schließlich hat Marvin ein paar Verständnisprobleme und bereits Fehler gemacht bei den Tests der Verbindung.

Desweiteren bin ich perl-noob, verstehe so grade was ein perl script macht, wenns nicht zu kompliziert ist. Mein Ziel ist eine openvpn Verbindung statt ssh über den DNS Traffic zu tunneln, aber da werde ich wohl droute.pl und nomde.pl anpassen müssen. Hat da jemand evtl. schonmal was erfolgreich getestet, oder muss ich mich in perl einarbeiten?

--Tyler 19:18, 21. Jul. 2009 (MSD)

Tyler said ...

ups - hatte es selber noch nicht verstanden gehabt. Für openVPN muss ich nix an droute und nomde ändern, einfach ssh nen socks proxy aufmachen lassen und darüber die openVPN Verbindung laufen lassen.

Bleibt nur noch die Frage, ob XLhost DNS Records funktionieren?

--Tyler 19:39, 21. Jul. 2009 (MSD)

Oli said ...

@Niki Vielen vielen Dank. Es hat mit folgender Syntax geklappt: ssh -C -o ProxyCommand="./droute.pl sshdns.tunnel.<meine_domain>.de" -D5000 -NL 5000:localhost:5000 user@host

Nun reagiert der Browser endlich auf die Proxy-Einstellungen Port 5000.

Grüße, Oli.


--Oli 21:27, 21. Jul. 2009 (MSD)

Tyler said ...

@ Niki: danke fürs tutorial, ich war nur durch den windows kram verwirrt. openvpn kann mit socks proxys also muss das direkt gehen, wenn ich den openvpn client an den Port hänge an den ich sonst firefox hängen würde. Dass der openvpn server derselbe ist, wie der server, auf dem nomde.pl laufen soll ist nen anderes problem ;-)

@ Oli: Ich glaube da fehlt nur die ssh option -N und -L und die Schleife, die du dann fliegst ist unnötig. Müsste doch auch so gehen: ssh -C -o ProxyCommand="./droute.pl sshdns.tunnel.<meine_domain>.de" -ND 5000 user@host

Außerdem wundere ich mich, dass ssh sich nicht beschwert, erst sagst du ihm er soll auf allen interfaces port 5000 über nen socks dynamisch weiterleiten an den ssh server, der dafür nen socks aufmacht (-D 5000). Danach sagts du ihm er soll auf allen interfaces port 5000 über ssh forwarden an den ssh server und der soll dann aus seiner sicht ne Verbindung zu localhost:5000 herstellen, was bestimmt nix wird, wenn du da auf Port 5000 keinen socks laufen hast.

Das größte Problem ist auf jeden Fall nen Provider zu finden, der einem erlaubt den NS Record zu setzten. CNAME und A Record darf man bei den meisten, aber nen NS Record auf ne Subdomain legen lassen hab ich noch nirgendwo gelesen, bei meinem VServer darf ich das auch nicht. Und Julius hat nach dem Chip Artikel bestimmt ganz schnell keine Lust mehr die tausend Einträge in seinen DNS zu tippen ;-)

--Tyler 02:35, 22. Jul. 2009 (MSD)

Niki said ...

@Tyler: Wie gesagt, A und CNAME reicht nicht. Auch nicht das "Anlegen von Subdomains". Du brauchst volle Kontrolle über deine Domain damit du einen NS-Record beliebig setzen kannst! Mein Tipp: Bestelle dir eine nackte Domain bei dem Registrar deines Vertrauens (du zahlst nur die Registrierung und keinen Webspace etc!). Dann gibt es tausende Services die dir gratis Primary NS machen (hatte ich auch mal). Den (und dazu einen anderen als Backup) lässt du einfach als deine NSe eintragen, fertig. Ist noch billiger & flexibler. Nur als Beispiel: http://www.xname.org/ (Primary), http://www.twisted4life.com/ (secondary)..aber ich hab x andere auch schon gesehen. Google halt mal. Man muss sich dazu halt ein bisschen mit DNS auskennen.

Zu deiner Anschuldigung: Nein, würde ich nicht gelöchert werden wollen bräuchte ich doch gar nicht zu antworten...oder? Ich kenne XLHost nicht, aber ich habe lediglich es gesagt, A und CNAME ist ZU WENIG!! Man braucht die Möglichkeit für NS Records!

Zu OpenVPN: Ja, das wäre wohl die einfachste Lösung nachdem OpenVPN ja SOCKS unterstützt. Aber pass auf dass dich die rasante Geschwindigkeit nicht vom Hocker reisst ;-)

Zu "anderen Problem": Das ist doch gar keines. Bei "remote" gibst dann halt einfach "127.0.0.1" ein...


--Niki 13:33, 22. Jul. 2009 (MSD)