it-swarm.com.de

Wie kann ein öffentlicher DNS-Server schlechte Ergebnisse liefern?

Ich lebe in einem Land, das unter vielen Sanktionen steht. Sowohl interne Sanktionen (Regierung gegen Menschen) als auch externe Sanktionen (USA gegen unser Volk).

In unserem Land sind YouTube, Twitter, Facebook und viele andere Websites standardmäßig blockiert und wir können nur über VPN darauf zugreifen.

Aber eines sollte funktionieren: DNS. Wenn ich mein DNS auf 8.8.8.8 Setze, sollte es theoretisch die richtige IP-Adresse für www.youtube.com Zurückgeben und diese IP-Adresse sollte vom ISP blockiert werden.

Aber es ist nicht. Es sieht so aus, als ob unsere Regierung die DNS-Server manipuliert, auch die öffentlichen.

Ich habe Ubuntu 18.04 (Bionic Beaver) und ich habe Network Manager DNS deaktiviert. Ich habe resolvconf und systemd-resolve Deaktiviert, womit ich meine, dass keine Entität in meinem eigenen System die Datei /etc/resolv.conf Ändern kann.

Ich habe den Inhalt von /etc/resolv.conf In Folgendes geändert:

nameserver 8.8.8.8

und nur dieser Nameserver. Jetzt verwendet jede Anwendung diesen Server standardmäßig und sie sollten diesen Server nach der IP-Adresse von Websites abfragen, aber leider tun sie dies nicht!

[email protected]:~$ nslookup google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 216.58.214.110
Name:   google.com
Address: 2a00:1450:4001:812::200e

[email protected]:~$ nslookup youtube.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   youtube.com
Address: 10.10.34.35
Name:   youtube.com
Address: 10.10.34.35

[email protected]:~$ nslookup Twitter.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   Twitter.com
Address: 10.10.34.35
Name:   Twitter.com
Address: 10.10.34.35

[email protected]:~$ █

10.10.34.35 Ist die Intranet-IP-Adresse für die Filterbehörde.

Wie erreicht der ISP dies? Stehlen sie wirklich und MITM-ing der Verkehr von 8.8.8.8? Ist es eine Art BGP Hijack?

Wie kann ich das ohne VPN umgehen?

38
AlwaysLearner

Wie erreichen sie (ISP) dies? Stehlen und MITMen sie wirklich den Verkehr von 8.8.8.8?

Sie leiten wahrscheinlich einfach alle Pakete mit dem Zielport 53 (d. H. DNS) auf ihre eigenen Server um und beantworten die Anfrage selbst. Das ist gar nicht so schwer.

Wie kann ich das ohne VPN umgehen?

Ein ordnungsgemäß konfiguriertes VPN (d. H. Keine DNS-Lecks) kann dies umgehen (es sei denn, sie blockieren auch das VPN). Die Verwendung eines HTTP-Proxys oder eines SOCKS-Proxys kann für den HTTP- und HTTPS-Verkehr hilfreich sein (stellen Sie sicher, dass Sie die externe Namensauflösung für den letzten konfigurieren). Auch DNS-Datenschutztechniken wie dnscurve, dnscrypt, DNS über TLS und DNS über HTTPS ( bereits von Firefox unterstützt ) helfen.

47
Steffen Ullrich

leider sie tun das nicht !

Sie sind tun dies, und Ihr TypeScript zeigt dies an, wobei nslookup diese IP-Adresse abfragt und Antworten von ihr erhält.

Ihre Verwirrung rührt teilweise von einem Missverständnis darüber her, was 8.8.8.8 ist. Es ist eine anycast IP-Adresse. Der an ihn gesendete Datenverkehr wird an die Netzwerkschnittstellen mehrerer Computer auf der ganzen Welt weitergeleitet, die von Google in verschiedenen Rechenzentren ausgeführt werden. Dieses Routing wird von jedem Knoten durchgeführt, an den es gesendet wird, einschließlich des eigenen ISP unmittelbar nachdem er sein eigenes Netzwerk verlassen hat.

Erstens kann Google selbst dafür sorgen, dass sich diese Computer in verschiedenen Ländern unterschiedlich verhalten. Dies kann dazu führen, dass die Maschinen in einem Land anders reagieren als die Maschinen in anderen Ländern, wenn dies beschlossen wird oder wenn dies von den Behörden in diesem Land verlangt wird.

Zweitens können die Inhalts-DNS-Server, die Google Public DNS von seinem Back-End abfragt, auf verschiedene Google-Computer unterschiedlich reagieren. Ihre Back-End-IP-Adressen und die Länder, denen sie entsprechen, werden im Rahmen des öffentlichen DNS-Dokuments von Google veröffentlicht. Inhalts-DNS-Server, die unterschiedliche Antworten an verschiedene Clients geben (Clients sind hier das Back-End beim Auflösen von Proxy-DNS-Servern), basierend auf ihren Quell-IP-Adressen, sind eine Funktion in mehreren DNS-Serversoftware.

Drittens kann ISPs, die der Gerichtsbarkeit eines bestimmten Landes unterliegen, angewiesen werden, den Anycast einfach an andere Computer unter der Kontrolle einer anderen Person als Google weiterzuleiten. Wie in der Türkei im Jahr 2014. Es wurde behauptet, dass Taiwan ähnliche Pläne hat.

Der Iran tat dies bereits ein Jahr vor der Türkei. Iranische ISPs fangen den gesamten durch sie geleiteten DNS/UDP-Verkehr ab und reagieren darauf von Computern unter iranischer Kontrolle. Interessanterweise scheint dies nicht sehr kompetent zu sein, da Dummy-Pakete TCP (sic!)) Immer noch an die ursprünglichen Maschinen weitergeleitet werden.

(Dasselbe gilt für Cloudflares 1.1.1.1-Dienst, jedoch weniger aus politischen und zensuristischen Gründen als vielmehr aufgrund menschlicher Faulheit und Dummheit. Er wurde lange Zeit von Programmierern als Test-IP-Adresse oder als inoffizieller zusätzlicher privater IP-Adressbereich missbraucht Router und andere.)

Wenn man dafür sorgt, dass der DNS-Verkehr den eigenen Computer verlässt über das VPN und nicht direkt zum ISP, ändern sich alle drei. Der Datenverkehr wird über das VPN an einen anderen Google-Computer in einem anderen Land gesendet, der seine Back-End-Anfragen von einer anderen Quell-IP-Adresse sendet und der vom ISP nicht an 8.8.8.8 weitergeleitet wird.

Der Nachteil des Auftretens, als ob man sich für den DNS-Dienst in einem anderen Land befindet, ist als ob man sich in einem anderen Land befindet, wie Australier, die 2010 Google Public DNS verwenden, feststellten. CDNs leiten einen an Content-HTTP-Server weiter, die viel weiter entfernt und nicht lokal sind. Dienste, die kostengünstig oder kostenlos sind, aber nur innerhalb des eigenen Landes, werden plötzlich von teuren Inhalts-HTTP-Servern bereitgestellt.

Weiterführende Literatur

20
JdeBP

Kurz gesagt, Sie werden MITMed. Der Zensor, mit dem Sie konfrontiert sind, tut etwas mit Ihren DNS-Anfragen, die an 8.8.8.8 gerichtet sind, damit Sie nicht echte Antworten erhalten. Es gibt viele Möglichkeiten, dies zu erreichen, und verschiedene Einheiten führen diese Zensur auf unterschiedliche Weise durch. Verwenden Sie für einen genaueren Blick Ihr bevorzugtes Paketerfassungstool (Wireshark oder tcpdump).

Als Demonstration habe ich eine Aufnahme von mir gemacht, als ich den DNS-Server von Google unter 8.8.8.8 nach den Adressen von "www.google.com" abgefragt habe.

(Screenshot of nslookup

(Screenshot of Wireshark

Wie im Wireshark-Screenshot zu sehen ist, sendet mein Computer zwei DNS-Abfragen an den DNS-Server, eine für den A-Eintrag (IPv4-Adressen) und eine für den AAAA-Eintrag (IPv6-Adressen). Für jede Anfrage gingen 3 Antworten ein. Die ersten beiden Antworten enthalten gefälschte Adressen, und interessanterweise enthalten die ersten beiden Antworten für die AAAA-Abfrage einen A-Datensatz in der Antwort - eindeutig eine fehlerhafte Antwort. Die dritte und letzte Antwort für jede Anfrage enthält die tatsächliche IP-Adresse für www.google.com. Das Tool nslookup, das es nicht besser wusste, akzeptierte die erste Antwort für jede Anforderung und zeigte diese Adressen an.

Dies deutet darauf hin, was mein nationaler Zensor tut. Offensichtlich blockieren sie den Netzwerkverkehr nicht vollständig auf 8.8.8.8. Stattdessen überwachen sie diesen Datenverkehr, und wenn eine DNS-Anforderung für eine blockierte Domäne gefunden wird, fügt der Zensor gefälschte Antworten ein. Der Zensor kann sich nicht die Mühe machen, eine korrekte AAAA-Antwort zu erstellen, daher die fehlerhaften Antworten. Die authentischen Antworten vom echten DNS-Server werden ebenfalls nicht gelöscht. Die frühen gefälschten Antworten reichen jedoch aus, um den Client, der die DNS-Anfrage gestellt hat, dazu zu bringen, gefälschte Adressen zu akzeptieren.

Ihr Zensor könnte etwas Ähnliches tun, oder sie könnten etwas völlig anderes tun. Nehmen Sie einige Paketerfassungen, und wir können möglicherweise mehr erzählen.

Um dies zu umgehen, ist die praktische Antwort wahrscheinlich ein lokal verschlüsselter DNS-Proxy wie DNSCrypt Proxy oder Stubby . Diese Tools führen einen DNS-Server auf Ihrem Computer aus, und an sie gerichtete DNS-Anforderungen werden verschlüsselt und an einen DNS-Server gesendet, der das Verschlüsselungsprotokoll versteht. Auf diese Weise kann der Zensor nicht wissen, für welche Domäne die Anforderung bestimmt ist, und keine Antworten fälschen. Der Zensor kann diese Server jedoch weiterhin vollständig blockieren.

(Wenn Sie versuchen, einen nationalen Zensor zu umgehen, reicht es möglicherweise nicht aus, die DNS-Vergiftung allein zu besiegen. Möglicherweise müssen Sie für verschiedene Gelegenheiten unterschiedliche Tools verwenden.)

13

Da Sie Linux verwenden, ist SSH-Tunelling ein einfacher Weg, dies ohne ein vollwertiges VPN zu umgehen. Wenn Sie ein Konto auf einem Server an einem neutralen, ungefilterten Ort einrichten oder einrichten können, können Sie Ihren Datenverkehr mit SSH mit nur wenigen Befehlen durch diesen Ort tunneln. Sie können sowohl Ihren DNS-Verkehr auf Port 53 als auch Ihren Webverkehr über den Remotecomputer tunneln.

Sie können eine Amazon Web Services- oder Google Compute Engine-Instanz oder nur eine normale Remote-VPS verwenden.

https://www.ssh.com/ssh/tunneling/example#sec-What-Is-SSH-Port-Forwarding-aka-SSH-Tunneling

https://serverfault.com/questions/78351/can-i-create-ssh-to-tunnel-http-through-server-like-it-was-proxy

4
Cameron Roberts