Wenn ich über Gnome Network-Manager eine Verbindung zu einem VPN-Netzwerk herstelle, geht die DNS-Auflösung verloren, und in der Praxis kann ich weder innerhalb noch außerhalb des VPN-Netzwerks auf Ressourcen zugreifen.
Wenn ich Ubuntu 16.04 verwendete und das VPN verwendete, " /etc/resolv.conf/
" enthielt die Datei die DNS-Server des (VPN-) Netzwerks, mit dem ich verbunden war. Jetzt enthält es immer die folgenden Einträge:
nameserver 127.0.0.53
search myprovider.com
Soweit ich verstanden habe, 127.0.0.53
ist die Adresse des DNS-Stubs, der von der system-resolved
.
Ich vermute, dass dies ein Fehler ist, weil das VPN der Ubuntu 16.04 gut funktionierte. Kann ich die DNS-Server meines Netzwerks einstellen, wenn ich einen VPN-Dienst verwende?
Aktualisieren:
Ich habe versucht, mit der am Ende des Beitrags angehängten Konfigurationsdatei eine Verbindung zum OpenVPN-Netzwerk herzustellen, erhalte jedoch die folgende Fehlermeldung:
Authenticate/Decrypt packet error: cipher final failed
Ich habe überprüft, dass der Server die LZO-Komprimierung verwendet, und ich habe es auch aktiviert. Die Verbindung bleibt bestehen, ich kann jedoch nicht zu einer Seite innerhalb oder außerhalb des VPN navigieren.
In die unten aufgeführte Konfigurationsdatei habe ich die in den Antworten angegebenen Lösungen aufgenommen
client
dev tun
proto udp
remote openvpn.bibsys.no 1194
remote my-server-2 1194
resolv-retry infinite
nobind
user myuser
group myuser
persist-key
persist-tun
ca ca-cert.pem
cert openvpn.crt
key openvpn.key
cipher AES-256-CBC
comp-lzo yes
script-security 2
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved
down-pre
quelle
resolvectl status
undresolvectl help
um meine spezifische Lösung herauszufinden.Antworten:
Ich habe in diesem Blog-Beitrag eine Lösung gefunden . Obwohl zwei Lösungen erwähnt werden, bevorzuge ich die zweite, da dies bedeutet, dass mein DNS vom OpenVPN-Server festgelegt wird (die erste Lösung bedeutet, dass ich dieselben DNS-Server verwende, unabhängig davon, ob ich mit dem OpenVPN-Server verbunden bin oder nicht).
Zusamenfassend:
sudo mkdir -p /etc/openvpn/scripts
sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved
Bearbeiten Sie dann Ihre OpenVPN-Client-Datei (z. B. client.ovpn), indem Sie die Up- / Down-Skripte folgendermaßen ändern:
(Ich habe die ursprünglichen Auf- / Ab-Einstellungen auskommentiert).
quelle
config.ovpn
wird nicht "gefunden" - es ist die Client-Konfigurationsdatei, die für die Verbindung verwendet wird. Entweder generieren Sie es oder es wird Ihnen von Ihrem OpenVPN-Anbieter ausgestellt (und es wird möglicherweise nicht aufgerufenconfig.ovpn
- es kann auch anders lautenclient.ovpn
).WARNING: Failed running command (--up/--down): external program fork failed
Problem
Die Datei
/etc/resolv.conf
wird vom/etc/openvpn/update-resolv-conf
Skript nicht aktualisiert, da sie unterresolvconf
Ubuntu 18.04 nicht standardmäßig installiert ist.Tatsächlich sucht eine der ersten Zeilen dieses Skripts nach der
/sbin/resolvconf
ausführbaren Datei:Die Installation von resolvconf über
apt-get
ist keine Lösung, da das/etc/openvpn/update-resolv-conf
Skript die/etc/resolv.conf
Datei mit dem übertragenen DNS-Eintrag aktualisiert , das tun-Gerät sie jedoch anscheinend ignoriert.Lösung
Ubuntu 18.04 wird verwendet
systemd-resolved
, Sie müssen also nur das openvpn-Hilfsskript fürsystemd-resolved
via installierenoder mit dieser GitHub Anleitung
Aktualisieren Sie Ihre
config.ovpn
Datei und fügen Sie folgende Zeilen hinzu:Das, anstatt das Auf und Ab
/etc/openvpn/update-resolv-conf
der conf zu addieren.Um DNS-Leakage zu verhindern, sollten Sie diese Zeile am Ende der
config.ovpn
Datei einfügen (gemäß diesem Systemkommentar ):quelle
script-security 2
noch vor den Zeilen hoch / runter benötigt wird, sonst stürzt das Programm mit einem Fehler ab (OpenVPN 2.4.4)script-security 2
war das nicht nötig. Das liegt vielleicht daran, dass ich den openvpn-Client als root (mit sudo) verwendesudo apt-get install network-manager-openvpn-gnome
Dann sollten Sie in der Lage sein, .ovpn-Konfigurationsdateien in den gnome-Netzwerkmanager zu importieren. askubuntu.com/questions/187511/… Die Benutzeroberfläche hat sich im Laufe der Zeit geändert. Sie sollten dies unter settings-> network-> vpnTatsächlich gibt es eine viel einfachere Lösung für dieses Problem. Das Problem ist der DNS-Verkehr und wie Ubuntu 18 das schafft. Standardmäßig ist die IP-Weiterleitung deaktiviert, was OpenVPN benötigt, um eine ordnungsgemäße Vernetzung zu gewährleisten. Sie müssen lediglich den folgenden Befehl ausführen:
Sobald Sie diese Datei geöffnet haben, suchen Sie nach der Zeile, die enthält
net.ipv4.ip_forward
. Wenn diese Zeile kommentiert ist, entfernen Sie das # -Zeichen am Anfang der Zeile (wenn es nicht kommentiert ist, liegt ein anderes Problem vor). Speichern Sie die Datei und starten Sie die OpenVPN-Serverinstanz neu.Für dieses Update sind nach dem Upgrade auf Ubuntu 18 keine Änderungen am Client- oder OpenVPN-Code erforderlich. Das Funktionieren wurde getestet und bestätigt.
Dies erfordert jedoch natürlich, dass Sie den Server verwalten können. Und leider gibt es den Fehler für viele, die gerade mit 18.04 eine Verbindung zu einem OpenVPN-Server herstellen, der von jemand anderem verwaltet wird ...
quelle
Es gibt noch weitere nützliche Befehle, mit denen Sie die gewünschten Einstellungen über die Befehlszeile vornehmen können. In meinem Fall können Sie Ihre VPN-Verbindung jedoch sowohl über die Befehlszeile als auch über die grafische Benutzeroberfläche steuern.
sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --
sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes
Und noch viel mehr interessierter letzter Schliff:
nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'
Anschließend können Sie vpn mit der GUI steuern oder folgende Befehle verwenden:
sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com
quelle
Ich bin auch betroffen. In meinem Fall verwende ich OpenVPN mit einem internen Nameserver (der sich im VPN befindet). Das funktionierte bis Ubuntu 17.10 (mit "hosts: files dns" in /etc/nsswitch.conf).
/etc/resolv.conf wurde von den openvpn-Skripten korrekt aktualisiert (durch Aufrufe von / etc / openvpn / update-resolv-conf in der Konfigurationsdatei des openvpn-Clients).
Die Namensauflösung für Hosts im VPN funktionierte jedoch nicht mehr (oder zumindest sporadisch ... Ich denke, der lokale DNS-Cache hat die Namen ausgewählt, aber nach einer ziemlich langen Zeit).
Was zu helfen scheint oder sogar das Problem zu beheben (obwohl das noch zu früh ist), ist die Installation des folgenden Pakets:
sudo apt installiere openvpn-systemd-resolved
In ein paar Tagen werde ich mehr Erfahrung haben, ob dies mein Problem behebt oder nicht.
Wenn Sie auch betroffen sind, versuchen Sie dies und schreiben Sie Kommentare!
Prost,
Michael.
quelle