[Gelöst] Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
dantai
Beiträge: 5
Registriert: 25.05.2016 20:29:50

[Gelöst] Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von dantai » 25.05.2016 20:38:22

Hallo liebe Debianer!

Ich bin mir sehr bewusst, dass es zum guten Stil gehört, sich zuallererst selbst um die Lösung seiner Probleme zu bemühen. Das habe ich selbstverständlich gemacht, da ich im Moment aber nur ein absolutes Minimum an Zeit hab, bitte ich um Nachsicht, falls es dem ein oder anderen zu wenig erscheint. Vielleicht findet sich ja trotzdem jemand der mir aus der Patsche helfen möchte? Ich bin auch über Hinweise sehr dankbar, die mir eine eigene Recherche erleichtern, mir geweissermaßen eine Richtung geben :)

Ich habe seit einiger Zeit zwei sehr nervige Probleme mit meinen Netzwerk. Ich denke, dass beide miteinander zu tun haben, deswegen schreibe ich sie beide in diesen Post, hoffentlich geht das konform mit den Forenregeln.
Das erste Problem ist, dass nachdem Start folgender Prozess läuft:

Code: Alles auswählen

foo@bar:~$ ps aux | grep vpn
root       847  0.0  0.1  33172  5164 ?        Ss   15:42   0:00 /usr/sbin/openvpn --daemon ovpn-mullvad --status /run/openvpn/mullvad.status 10 --cd /etc/openvpn --config /etc/openvpn/mullvad.conf
Netzwerkverbindungen sind erst möglich, wenn ich den Prozess gekillt habe. Ich habe in der letzten Zeit immer mal verschiedene VPNs ausprobiert (Mullvad ist einer davon), weil ich oft unterwegs bin und in öffentlichen oder diversen Uni-Netzwerken abhänge, aber auf manche Dinge nicht verzichten will. Dabei habe ich aber nie irgendwelche Tools oder Programme installiert sondern die Verbindungen mittels

Code: Alles auswählen

sudo openvpn /etc/openvpn/foo-client.conf
gestartet und via Strg+C gekillt (manchmal auch mit kill -9, je nach Erfolg des ersteren ;) ). Woher kommt dieser Service? Ich habe nichts dergleichen konfiguriert.
Leider weiß ich nicht mehr, wie ich darauf gekommen bin (ich kann es tatsächlich nicht mal mehr nachvollziehen, ich habe einfach so viel zu tun gerade), jedenfalls hatte ich dann folgendes gemacht:

Code: Alles auswählen

sudo systemctl disable openvpn@mullvad.service 
(history | grep sei Dank :) )
Danach schien sich das Problem erledigt zu haben, beim letzten Reboot aber war es wieder da.
Das zweite ist ein DNS-Problem.
Ich bin sicher, dass es ein DNS Problem ist, denn IP-Adressen lassen sich pingen. DNS-Anfragen werden oft nicht beantwortet oder es dauert viel zu lang. Das Problem tritt bei Verbindungen über wlan0 (Android Hotspot und fast alle WLANs) und usb0 (Android Tethering) auf. Über Ethernet gibt es diesbezüglich keine Probleme. Über Wireshark kann ich sehen, dass nicht nur der zugewiesene oder der in dhclient.conf (mit prepend/supersede) zugewiesene DNS-Server gefragt wird, sondern auch eine IP die zum Mullvad VPN gehört.
In der resolv.conf stand auch tatsächlich der VPN-DNS mit drin (als erster Eintrag vor dem "normalen"). Ich habe es mal spaßeshalber rausgelöscht und keine 2 Minuten später stand es wieder drin. Keine Ahnung welches Programm es da rein schreibt. Mir scheint, es ist ein Problem mit resolvconf, aber da fehlt mir jedliches Wissen dazu und die Readme bringt mich auch nicht weiter. Es schien mir auch als würde das Problem auch auftreten, wenn in der aktuellen Sitzung vorher kein VPN lief.

Alles was bei mir installiert ist und was ich mit DNS/DHCP in Verbindung bringe:

dhclient
resolvconf
wicd
openvpn
systemd (was ist mit systemd-resolve, spielt das eine Rolle in Jessie?)
Iceweasel/Chromium

Vor langer Zeit habe ich mal mit dem Netzwerk rumgepfuscht, dabei waren kurzzeitig sowohl NetworkManager als auch dnsmasq installiert.


Leute, ich bin euch sehr sehr dankbar wenn ihr mir zumindest mit einem Ansatz helfen könntet mein DNS wieder flott zu kriegen. Ich habe im Moment absolout keine Resourcen frei, bin aber auf ein funktionierendes System angewiesen. Die ewigen Workarounds (eher "dirty"-Tricksereien) sind mit meinem Alltag eigentlich nicht kompatibel. Falls sich jemand genauer auslassen möchte, bitte bitte, sehr gerne. So kann ich vielleicht hoffentlich auch noch etwas lernen. Es soll eigentlich keiner dieser "Ich brauche driiingend Hiiilfee"-Post werden, aber es ist wohl doch einer geworden :oops: Nunja, ich kann Hilfe dringend gebrauchen...

Viele liebe Grüße
Dan

PS: Meine Kenntnisse mit Debian, speziell auch mit systemd sind rudimentär in vielen Dingen, obwohl es einige größere Inseln des Lichts gibt^^ Nicht wundern bitte!
Zuletzt geändert von dantai am 05.06.2016 12:01:41, insgesamt 2-mal geändert.

BenutzerGa4gooPh

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von BenutzerGa4gooPh » 28.05.2016 17:13:12

Herzlich willkommen!

wicd und Netzmanager vertragen sich nicht.
https://wiki.debian.org/WiFi/HowToUse
https://wiki.ubuntuusers.de/Wicd/
Versuche mal, wicd zu deinstallieren und mit Netzmanager zu konfigurieren.

Irgendein Programm muss den openvpn-Dienst starten, hast ihn ja eigentlich dauerhaft deaktiviert.
https://wiki.debian.org/systemd

Umgang mit openvpn, kannst ja auch mal deinstallieren und nur bei Bedarf erneut installieren.
https://wiki.debian.org/OpenVPN#Auto-start
https://wiki.ubuntuusers.de/OpenVPN/

Das Startverhalten des OS prüfen wäre der erste Schritt.

Code: Alles auswählen

journalctl -b
https://www.loggly.com/ultimate-guide/using-journalctl/

Mehr kann ich nicht helfen, bin selbst Anfänger, aber wenn kein anderer schreibt ...

Edit:
Komplett deinstallieren einschließlich Konfigurationsdateien: apt-get remove --purge <Pakete>, evtl. noch .Konfig-Dateiein im Home Verzeichnis manuell löschen.

dantai
Beiträge: 5
Registriert: 25.05.2016 20:29:50

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von dantai » 31.05.2016 11:48:45

Hallo Jana, danke dass du dich "erbarmst" :)
Nach allem was ich verstanden habe, sollte der Dienst ja tatsächlich nicht mehr starten.
Wie auch immer, eine Zeile aus einem Skript für NetworkManager aus dem ArchWiki hat mich auf eine Idee gebracht:
Statt den Service mit kill + PID zu "erlegen" beende ich ihn einfach mit

Code: Alles auswählen

sudo systemctl stop openvpn@vpnclient.service
Dann tut anscheinend das Skript update-resolv-conf in /etc/openvpn seine Arbeit und der DNS-Eintrag des VPN-Servers verschwindet aus der resolv.conf.
Was den Autostart angeht, da gibt es die Datei /etc/default openvpn, in der u.a. der Autostart für diverse VPNs configuriert werden kann:

Code: Alles auswählen

# This is the configuration file for /etc/init.d/openvpn

#
# Start only these VPNs automatically via init script.
# Allowed values are "all", "none" or space separated list of
# names of the VPNs. If empty, "all" is assumed.
# The VPN name refers to the VPN configutation file name.
# i.e. "home" would be /etc/openvpn/home.conf
#
# If you're running systemd, changing this variable will
# require running "systemctl daemon-reload" followed by
# a restart of the openvpn service (if you removed entries
# you may have to stop those manually)
#
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office"
#
Es würde mich wundern, wenn das die Ursache istm weil bei mir von vornherein alles auskommentiert war, ich habe jetzt aber trotzdem mal

Code: Alles auswählen

AUTOSTART="none"
unkommentiert eingetragen und werde nach dem nächsten reboot berichten.
Viele Grüße erstmal und vielen Dank,
Dan

BenutzerGa4gooPh

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von BenutzerGa4gooPh » 31.05.2016 22:06:18

Jetzt stoppst du openvpn, oben wolltest du den Dienst bereits beim Booten deaktivieren. Folglich brauchst du ihn nicht und kannst das Paket deinstallieren.
Wenn du das Paket deinstallierst - einschließlich aller Konfigs, wie ich oben beschrieb, wäre vermutlich sogar alles gut, wenn du es bei Bedarf wieder installierst.
Aber: Was du mit den Autostart-Dateien machst oder gemacht hast, kann ich momentan nicht einschätzen. Wenn es mein Problem wäre, würde ich googeln: "Debian Systemdateien" oder "Ubuntu Systemdateien". Manches ist gleich. :mrgreen:
Na, viel Glück beim Probieren und Googeln! :THX:

TomL

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von TomL » 31.05.2016 23:18:59

dantai hat geschrieben:

Code: Alles auswählen

AUTOSTART="none"
Autostart=none verhindert, dass OpenVPN (als Daemon über die runlevels) gestartet, ein (oder mehrere) Profile öffnet und entsprechende tap- oder tun-Devices erstellt/aktiviert. Vermutlich wird OpenVPN aber trotzdem als Daemon gestartet. Ich weiss jetzt gerade nicht, ob es sich ohne Profile beendet oder trotzdem aktiv bleibt. Das kann man aber einfach herausfinden. Um den Start als Daemon über die Runlevels bei Systemstart zu unterbinden, sollte das hier helfen:

Code: Alles auswählen

update-rc.d openvpn remove
Nach dem remove sollte in den runlevels nichts mehr gefunden werden.... danach erfolgt kein Start mehr von OpenVPN als Daemon.

BTW, den ganzen Kram benötigt man eigentlich sowieso nicht..... ich empfinde das alles viel zu kompliziert umgesetzt. Die OpenVPN-Binaries, eine Systemd-Unit und die notwendigen Client- oder Server-Confs... mehr ist eigentlich nicht notwendig....

dantai
Beiträge: 5
Registriert: 25.05.2016 20:29:50

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von dantai » 01.06.2016 11:01:58

Hallo! Danke für die rege Teilnahme.
Also zuallererst:

Code: Alles auswählen

AUTOSTART="none"
scheint geholfen zu haben. Nach dem letzten Reboot war kein VPN-Service mehr am laufen. Hoffe, dass das auch so bleibt. :D
Ich habe wohl

Code: Alles auswählen

# Allowed values are "all", "none" or space separated list of
# names of the VPNs. [b]If empty, "all" is assumed[/b].

falsch verstanden.
Mit "empty" ist demnach nicht

Code: Alles auswählen

AUTOSTART=""
gemeint, sondern anscheinend dass dieser Punkt im Configfile nicht auftaucht.

Nur um das nochmal kurz klarzustellen: Ich möchte OpenVPN und die entsprechenden Profile weiterhin benutzen, nur halt nicht die ganze Zeit, sondern nur wenn ich in öffentlichen LANs unterwegs bin. Da hab ich mich wohl nicht verständlich ausgedrückt.
TomL hat geschrieben:Autostart=none verhindert, dass OpenVPN (als Daemon über die runlevels) gestartet, ein (oder mehrere) Profile öffnet und entsprechende tap- oder tun-Devices erstellt/aktiviert. Vermutlich wird OpenVPN aber trotzdem als Daemon gestartet. Ich weiss jetzt gerade nicht, ob es sich ohne Profile beendet oder trotzdem aktiv bleibt. Das kann man aber einfach herausfinden. Um den Start als Daemon über die Runlevels bei Systemstart zu unterbinden, sollte das hier helfen:

Code: Alles auswählen

update-rc.d openvpn remove
Danke für die Einordnung! Dazu 2 Fragen:
1.) Ich dachte, Debian 8 (Jessie) nutzt jetzt systemd, d.h. der Weg über die Services (mit enable/disable) ist der korrekte Weg? ein schnelles G**glen zeigt mir dass, das alte init-System noch parallel zu existieren scheint. Wenn das alles so noch funktioniert wäre es toll, damit komme ich glaube ich noch klar. läuft das tatsächlich reibungslos parallel? Mmh, da ist ein wenig Recherche nötig.
2.) Wenn die Service(enable/disable)-Geschichte tatsächlich (wie ich das verstanden habe) äquivalent zu rc.d sein sollte, wie kommt es dass dann OpenVPN trotzdem als Service gestartet wird, wenn es doch disbled ist. Mit anderen Worten, wie trägt der Eintrag in /etc/default/openvpn dazu bei, dass mein

Code: Alles auswählen

sudo systemctl disable openvpn@mullvad.service
ignoriert wird?


Aber am allerwichtigsten: Was ist denn nun der korrekte Befehl um OpenVPN bei Bedarf im laufenden System sauber zu starten und wieder zu beenden?


Danke für eure Hilfe,
Dan

TomL

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von TomL » 01.06.2016 15:38:01

Ja, Debian Jessie nutzt systemd als Startsystem. Nein, sysvinit ist nicht AUCH NOCH installiert, sondern systemd kann aus Gründen der Kompatibilität auch noch mit sysvinit-Startscripten umgehen. Der korrekte Weg zur Deaktivierung eines Dienstes unter systemd wäre eigentlich:

Code: Alles auswählen

systemctl disable openvpn
Aber leider funktionierte das auch bei mir (an anderer Stelle und bei mehreren Tests) nicht 100% zuverlässig. Um alte sysvinit-Startscripte wirklich komplett zu deaktivieren, ist der genannte "remove" besser geeignet und auf jeden Fall erfolgreich. Aus dem Grunde beseitige ich die runlevel-Scripts mittlerweile, wo sie mir begegnen und ersetze sie durch systemd-Units.
Mit "empty" ist demnach nicht

Code: Alles auswählen

 AUTOSTART=""
gemeint, sondern anscheinend dass dieser Punkt im Configfile nicht auftaucht.
Mit AUTOSTART="none" wäre gemeint, dass er die in seinem default-Dir (/etc/openvpn) liegenden Confs bei Systemstart NICHT automatisch startet. "All" würde hingegen alle gefundenen *.confs starten. Namentlich genannte, durch Blank getrennt sind explizit ausgewählt und gestartet. Dewegen "" ist eigentlich kein gültiger Eintrag.... der vermutlich aber als "none" interpretiert wird (weiss ich aber nicht so genau).

Wenn Du OpenVPN nur gelegentlich als RoadWarrior (Client) benötigst, ist es auch nicht notwendig, OpenVPN permanent als Daemon laufen zu lassen. Nur wenn es sich um einen ständig "lauschenden" Server handelt ist es imho erforderlich bzw. sinnvoll, OpenVPN bei systemstart als Daemon zu starten. Auf einem Client kannst Du es bei Bedarf ganz einfach von Hand im Terminal starten, oder wenns beliebt auch über einen Desktop-Starter.... mit einem etwa wie folgt aussehenden Befehl:

Code: Alles auswählen

/usr/bin/openvpn --config /etc/openvpn/client_udp_77555.conf
/usr/bin/openvpn --config /home/thomas/.keys/conf/client_udp_77555.conf

Meine Confs sagen mir immer mit dem Namen, was sie sind (Client/Server), welches Device sie generieren und auf welchem Port sie laufen. Früher hatte ich die *.Confs im OpenVPN-Dir in /etc gespeichert, heute liegen sie für meinen Laptop auf einem USB-Stick, der bei Einstecken nach /home/thomas/.keys gemountet wird. Da sind dann auch die Zertifikate und Keys für OpenVPN enthalten, sowie ssh-Keys und Crypt-Credentials für /dev/sda2 gespeichert. USB-Stick raus und alle Schlüssel und Zugangsregeln sind komplett vom Rechner entfernt.

HTH

dantai
Beiträge: 5
Registriert: 25.05.2016 20:29:50

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von dantai » 04.06.2016 13:02:37

TomL hat geschrieben:[...]systemd kann aus Gründen der Kompatibilität auch noch mit sysvinit-Startscripten umgehen. Der korrekte Weg zur Deaktivierung eines Dienstes unter systemd wäre eigentlich:

Code: Alles auswählen

systemctl disable openvpn
Aber leider funktionierte das auch bei mir (an anderer Stelle und bei mehreren Tests) nicht 100% zuverlässig. Um alte sysvinit-Startscripte wirklich komplett zu deaktivieren, ist der genannte "remove" besser geeignet und auf jeden Fall erfolgreich.
Danke für's Klarstellen und die wichtige Info zur Funktionalität. :)
TomL hat geschrieben:
Mit "empty" ist demnach nicht

Code: Alles auswählen

 AUTOSTART=""
gemeint, sondern anscheinend dass dieser Punkt im Configfile nicht auftaucht.
Mit AUTOSTART="none" wäre gemeint, dass er die in seinem default-Dir (/etc/openvpn) liegenden Confs bei Systemstart NICHT automatisch startet. "All" würde hingegen alle gefundenen *.confs starten. Namentlich genannte, durch Blank getrennt sind explizit ausgewählt und gestartet. Dewegen "" ist eigentlich kein gültiger Eintrag.... der vermutlich aber als "none" interpretiert wird (weiss ich aber nicht so genau).
Ja, ich hatte es erst genauso verstanden, nämlich, dass "empty"

Code: Alles auswählen

 AUTOSTART=""
bedeutet. Darum bin ich nicht auf die Idee gekommen, dass der bei mir fehlende AUTOSTART-Eintrag als "all" interpetiert wird. Ist ein bisschen unglücklich formuliert wie ich finde und jetzt noch weiter drauf einzugehen stiftet jetzt evtl. noch mehr Verwirrung. :lol:

Um es kurz zu machen:
Alles funktioniert nun so wie ich es möchte.
Ich fasse mal zusammen:
1.)
OpenVPN wird als Daemon beim Booten gestartet. Und zwar werden standardmäßig alle VPNs (.conf's in /etc/openvpn) gestartet, wenn nicht explizit ein Wert für

Code: Alles auswählen

 AUTOSTART="[vpn-name]"
in /etc/default/openvpn gesetzt wird. Kein solcher Eintrag ("empty") bedeutet Standardverhalten, bedeutet alle werden aktiviert.
2.)
Den Start des Daemon mittels

Code: Alles auswählen

sudo systemctl disable openvpn@VPN-CONF-NAME.service
bzw.

Code: Alles auswählen

systemctl disable openvpn
zu unterbinden funktioniert nicht (richtig). Die SysVinit-Kompatibilität versagt hier offensichtlich.
Ein Weg, den ich jetzt nicht noch einmal getestet habe wäre das Entfernen der Startskripte mittels:

Code: Alles auswählen

update-rc.d openvpn remove
3.)
Die Probleme, die bei mir auftraten, kamen offensichtlich daher, dass ich den Daemon zuerst nicht als solchen erkannt hatte, sondern ihn als normalen Prozess angesehen habe. "kill -9" war hier wohl etwas zu grob und das Ergebnis war, dass das update-resolv-conf Skript in /etc/openvpn wahrscheinlich nicht mehr ausgeführt wurde und somit der VPN-Nameserver in der /etc/resolv.conf verblieb bzw. von resolvconf immer wieder hineingeschrieben wurde, so wie es der Fall sein sollte, wenn der VPN gelaufen wäre.
Auch sonst scheint irgendwetwas nicht richtig funktioniert zu haben, denn bevor ich den Daemon "abgeschossen" habe, war ja keine Verbindung herzustellen (keine DNS-Replies, was sonst noch schief hing - keine Ahnung). Das soll meines Erachtens auch nicht de Fall sein, die Verbindung hätte in diesem Fall eigentlich standardmäßig über den VPN zustande kommen müssen. Das soll mir jetzt aber nicht mehr den Schlaf rauben :D
4.)
Um VPN im normalen Betrieb bei Bedarf zu nutzen, brauch man es nicht als Daemon, sondern ein normaler Prozess reicht aus.

Code: Alles auswählen

sudo openvpn /etc/openvpn/VPN-client.conf
oder

Code: Alles auswählen

sudo /usr/bin/openvpn --config /etc/openvpn/VPN-client.conf
.
Strg+C reicht um alles vernünftig zu beenden.

Ich möchte mich nochmal für eure Hilfe bedanken, endlich wieder funktionierendes Netzwerk und wieder ein paar Puzzlestückchen mehr in meinem Debian-Wissen. Mühsam nährt sich das Eichhörnchen... :)
Dankeschön!

Dan


[EDIT]:
PS: Ich finde leider keine Möglichkeit das Thema als gelöst/solved zu markieren. Vielleicht kann ja ein Admin aushelfen?

BenutzerGa4gooPh

Re: Unbekannte DNS-Probleme, Zusammenhang mit OpenVPN?

Beitrag von BenutzerGa4gooPh » 04.06.2016 20:46:32

Einfach in erstem Beitrag Titel ändern, [gelöst] davor setzen.

dantai
Beiträge: 5
Registriert: 25.05.2016 20:29:50

Re: [Gelöst] Unbekannte DNS-Probleme, Zusammenhang mit OpenV

Beitrag von dantai » 05.06.2016 12:02:07

Danke!

Antworten