Block außerhalb DNS, Fix DNS Leck Ubuntu 18.04


10

Unter Verwendung eines DNS-Lecktests unter meinem VPN stellte ich fest, dass es undicht war. Ich habe mein VPN über NetworkManager eingerichtet und es funktioniert bis auf das Leck ordnungsgemäß.

Zuerst habe ich versucht, block-outside-vpnzur Konfigurationsdatei hinzuzufügen , außer dass darunter /etc/NetworkManager/system-connectionsnicht das gleiche Format folgt. Ich konnte das Dokument nicht finden, wie man eines richtig für DNS-Lecks schreibt.

Auch die Verwendung von Ubuntu 18.04 resolv.conf funktioniert nicht wie zuvor, alle anderen Antworten basieren darauf.

Kurz gesagt, wie kann man externe DNS (Leck) mithilfe von Network Manager-Konfigurationsdateien oder der GUI blockieren?


block-outside-vpnIn der Regel handelt es sich nur um eine Windows OpenVPN-Verbindungsoption. Das Beheben des DNS- "Lecks" würde darin bestehen, einen bestimmten DNS-Server zu verwenden, der nur auf der anderen Seite des VPN vorhanden ist. Was waren die Ergebnisse des DNS-Lecktests, die Sie gesehen haben? (sie sind relevant)
Thomas Ward

Antworten:


3

Ich schlage vor, zu verwenden dnscrypt.

Installieren Sie es zuerst:

sudo apt install dnscrypt-proxy

Standardmäßig wird der 127.0.2.1Port abgehört 53.

Bearbeiten Sie Ihr VPN oder eine andere Verbindung, die Sie mögen, und legen 127.0.2.1Sie sie mithilfe der CLI, die Sie ausführen können , als DNS-Server fest:

nmcli connection modify [CONNECTION-NAME] ipv4.dns 127.0.2.1

Und für den Fall, dass die ausgehenden DNS-Anfragen blockiert werden:

sudo ufw deny out 53

Und stellen Sie sicher, dass die Firewall aktiviert ist:

sudo ufw enable

Mein DNS ist nach dem DNS-Lecktest immer noch undicht. Es ist auch wichtig zu erwähnen, dass das Deaktivieren von VPN bei aktiviertem ufw das Internet nicht verfügbar machen würde (blockierter Port 53).
Pobe

Führen Sie diesen Befehl aus: nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yesÜberprüfen Sie, ob er hilft.
Ravexina

3

Um DNS-Lecks unter Ubuntu 18.04 zu beheben, können Sie eine Datei mit dem Namen bearbeiten /etc/dhcp/dhclient.conf. Laut der Handbuchseite bietet diese Datei "eine Möglichkeit zum Konfigurieren einer oder mehrerer Netzwerkschnittstellen mithilfe des BOOTP-Protokolls (Dynamic Host Configuration Protocol) oder, falls diese Protokolle fehlschlagen, durch statische Zuweisung einer Adresse."

Um Ihre DNS-Lecks zu beheben, werden wir diese Datei bearbeiten. Wenn Sie es mit den richtigen Berechtigungen öffnen, wird eine kommentierte Zeile angezeigt, die ungefähr so ​​aussieht:

#prepend domain-name-servers 127.0.0.53;

Kommentieren Sie diese Zeile aus und ändern Sie den Domain-Name-Server in einen anderen, z. B. OpenDNS: 208.67.222.222. Bei Verwendung dieser OpenDNS-Adresse würde diese Zeile nun folgendermaßen aussehen:

prepend domain-name-servers 208.67.222.222;

Nach dem Speichern der Datei und dem Neustart Ihres Systems sollte dies die DNS-Lecks unter Ubuntu 18.04 beheben.


Oder Sie können Ihre Verbindung einfach in einer GUI bearbeiten und das gleiche Ergebnis erzielen: Öffnen Sie das Bearbeitungsfenster für Ihre Verbindung => IPv4 / IPv6-Einstellungen, ändern Sie "Methode" in "Automatisch, nur Adressen" und fügen Sie Ihre "DNS-Server" hinzu.
GoodGuyNick

Die Methode von @GoodGuyNick über die GUI hat bei mir nicht funktioniert. Ich habe dieses Problem den ganzen Tag gegoogelt und nur der Trick "Domain-Server-Server voranstellen" hat funktioniert. Halleluja für diese Antwort. Alles andere, was ich versuchte (einschließlich der GUI für DNS-Server), wurde überschrieben und überlebte den Neustart nicht.
Pestophagous

3

Wenn Sie ein DNS-Leck haben, wie durch Überprüfen auf browserleaks.com oder dnsleaktest.com angezeigt ,

  1. Schalten Sie Ihre VPN-Verbindung aus

  2. Versuchen Sie, alle Änderungen an der .conf-Datei rückgängig zu machen, für die Sie bereits Zeit verschwendet haben. Wenn Sie viele verschiedene Vorschläge ausprobiert haben, besteht Ihre beste Chance möglicherweise darin, eine Neuinstallation durchzuführen und sicherzustellen, dass Sie auch networkmanager-openvpn-gnome installiert haben, da in Ubuntu standardmäßig kein VPN-Konfigurationsimport bereitgestellt wird.

  3. Installieren Sie dnsmasq

    sudo apt update
    sudo apt install dnsmasq  
    
  4. Deaktivieren deaktiviert

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service 
    
  5. Entfernen Sie / etc/resolv.confund erstellen Sie eine neue:

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf  
    
  6. Geben Sie in Ihre leere .confDatei ein:

    nameserver 127.0.0.1`         that's all!
    
  7. Drücken Sie Ctrl+ x , um den Editor zu verlassen. Geben Sie yzum Speichern ein und drücken Sie , um EnterIhre neue resolv.confDatei zu überschreiben .

  8. Bearbeiten Sie Ihre NetworkManager.conf-Datei

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    und fügen Sie Folgendes hinzu:

    dns=dnsmasq 
    

    Unter den Zeilen (navigieren Sie mit den Pfeiltasten), [main] und plugins = ifupdown, geben Sie die Schlüsseldatei genau so ein, wobei die neue Zeile hinzugefügt wird.

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

    Drücken Sie Ctrl+ x, um den Editor zu verlassen. Geben Sie y zum Speichern ein und drücken Sie dann , um Enterdie Datei zu überschreiben.

  9. Verlassen Sie das Terminal, starten Sie das System neu und überprüfen Sie Ihre dnsleak-Testsite auf Ergebnisse.

Dank Anonymous VPN, dessen Lösungen für Leaks unter Ubuntu / Network Manager gut recherchiert und erfolgreich zu sein scheinen. SIE ARBEITEN und wenn keine anderen Lösungen für mich funktionierten, taten dies. Die oben gezeigte Lösung funktioniert für Ubuntu 17.x und 18.04 LTS . Siehe seine andere Lösung für 16.04 LTS .


Ich habe diese Lösung auf einer VM getestet und alles hat funktioniert. Dann habe ich auf einem Hauptcomputer versucht und DNS von VPN und DNS-Leck gesehen. Auf einer VM, nameserverdie von 127.0.2.1zu geändert wurde , 192.168.122.1und wenn ich eine Verbindung zu VPN herstelle, werden resolv.confzwei nameserverLeitungen 192.168.122.1angezeigt , eine mit und eine mit VPNs-DNS. Auf einem Hauptcomputer werden jedoch immer zwei Leitungen angezeigt search lan nameserver 127.0.1.1.
GoodGuyNick

Wie kann ich was ohne Netzwerkmanager tun? einfach die DNS in / etc / network / interfaces setzen?
Mehdi

1

Ich habe 2 Tage lang mit genau diesem Problem zu kämpfen, bevor ich hier die Lösung gefunden habe, die für mich funktioniert hat: /unix//a/470940

TL; DR

$ cd /etc/NetworkManager/system-connections

Hier werden mit dem Netzwerkmanager erstellte Verbindungen gespeichert.

$ sudo nmcli connection modify <vpn-connection-name> ipv4.dns-priority -42

Einfacher Befehl zum Ändern der Verbindungskonfigurationsdatei. Könnte auch manuell gemacht werden, aber auf diese Weise ist es meiner Meinung nach einfacher.

$ sudo service network-manager restart

Nehmen Sie die Änderungen auf Ihr System vor.

Grundsätzlich Kopie über den obigen Link eingefügt, Gutschrift an den ursprünglichen Autor.

Wenn Ihr System nmcli nicht kennt oder das Hinzufügen von Verbindungen über die Network Manager-Benutzeroberfläche einen Fehler auslöst, empfehle ich diesen Link

Nun zu dem, was weniger eine Erklärung als ein Kommentar ist (ich selbst bin eher ahnungslos).

Ich habe viele der Lösungen ausprobiert, einschließlich resolv.conf, dnsmasq und dnscrypt. All dies führte dazu, dass mein Internet entweder vollständig blockiert wurde oder die VPN-Verbindung deaktiviert wurde. Keiner von ihnen hat laut dnsleaktest.com das DNS- Leck behoben . Wenn einer dieser Versuche unternommen wird, sollte jeder Schritt auf dem Weg nachverfolgt werden, um sie im Falle eines unerwünschten Ergebnisses rückgängig machen zu können. Ich brauchte nicht wenig Zeit, um mein kaputtes Internet immer und immer wieder ohne Internet zu reparieren. Ich behaupte nicht, dass diese Lösungen nicht funktionieren, ich habe möglicherweise irgendwo einen Fehler gemacht.
Die Lösung, mit der ich verbunden bin, hat jedoch den großen Vorteil, dass sie nicht mit den allgemeinen Netzwerkeinstellungen, sondern nur mit der einen Verbindung, die Sie ändern, in Konflikt gerät.

Als nächstes ist Block-Outside-DNS, wie hier zuvor erwähnt, eine reine Windows-Lösung und hat einen nicht erkannten Optionsfehler auf meinem Ubuntu-System ausgelöst.

Die Verwendung von ovpn cli-Befehlen hat das Leck auch für mich nicht gelöst.

Der Link, den ich bereitgestellt habe, erwähnt ( hier ) eine Erklärung zu einigen Versionsinkonsistenzen, die in Ubuntu 18.10 behoben wurden. Vielleicht möchte jemand mit mehr Fachwissen zu diesem Thema weitere Erklärungen abgeben. Wenn das stimmt, müssen LTS-Benutzer afaik bis April nächsten Jahres warten.

Abschließend möchte ich darauf hinweisen, dass DNS-Leck für Einwohner von Ländern mit Internet-Zensur ein großes Problem darstellt, da das Zulassen des lokalen ISP-Zugriffs auf Ihren Datenverkehr dazu führen kann und wird, dass zensierte Domains blockiert werden, obwohl sie mit einem VPN verbunden sind. Für zukünftige Besuche in China usw. sollten Sie sich also vorher darum kümmern.

Hoffe das hilft.


0

Versuchen Sie, das update-systemd-resolvedSkript zu verwenden, das keine Änderungen an der vorgenommen hat resolv.conf, und verwendet stattdessen den systemd-resolvedDienst mithilfe der DBus-API

Holen Sie es sich von Git und installieren Sie es durch:

git clone https://github.com/aghorler/update-systemd-resolved.git
cd update-systemd-resolved
make

Jetzt bearbeiten nsswitch.confvon:

sudo nano /etc/nsswitch.conf

und ändern Sie dann die Zeile beginnend mit hosts:zu sagen

hosts: files resolve dns myhostname

Aktivieren Sie den Dienst und stellen Sie sicher, dass er automatisch ausgeführt wird:

sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service

HINWEIS: Wenn Sie die obigen Schritte nicht ausführen möchten und mit der Verwendung des Terminals einverstanden sind, tritt das DNS-Leck nur bei Verwendung von NetworkManager auf. Meiner Erfahrung nach tritt es bisher nicht auf, wenn Sie openvpn vom Terminal mit ausführensudo openvpn --config config.ovpn


Was wäre die Zeile in config.ovpn, die das Leck blockieren würde? Hast du ein Beispiel dafür? (Die obige Lösung hat bei mir nicht funktioniert).
Pobe

0

Ich habe fast jede Lösung ausprobiert, die ich online finden konnte, um das DNS-Leckproblem zu beheben. Openvpn startete einwandfrei, zeigte aber, dass es undicht war, als ich zu den Teststellen ging. Nachdem ich keine Freude daran hatte, alle Mittel auszuprobieren, ging ich in meine WLAN- und Ethernet-Einstellung und verwendete die DNS-Server von openvpn anstelle meiner ISPs, und von da an war alles in Ordnung. Ich bin sicher, Sie haben die IP-Adressen überall gesehen, aber hier sind sie, wenn Sie nicht haben: 208.67.222.222 und 208.67.220.220.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.