OpenVPN + chroot + DNS

µRaCoLi

Mitglied
Mitglied seit
22 Sep 2005
Beiträge
239
Punkte für Reaktionen
0
Punkte
0
Ich habe zwei Boxen per OpenVPN miteinander verbunden, was auch seit Monaten hervorragend läuft. Nachdem das Ganze jetzt mit chroot läuft, kann eine Box nach einer Zwangstrennung den Dyndns-Namen der anderen Box nicht mehr auflösen.
Code:
Apr 14 07:48:50 fritz daemon.err openvpn[1966]: RESOLVE: Cannot resolve host address: xxx.dyndns.org: [HOST_NOT_FOUND] The specified host is unknown.
 
Kommt vielleicht vorher ein Fehler, dass er die resolv.conf oder hosts nicht lesen kann? Mit dnsmasq gabs hier ein ähnliches Problem.

MfG Oliver
 
Es scheint so zu sein, daß openvpn die libresolv und libdns nicht offen lässt. Auch wird /etc/resolv.conf nicht offen gelassen.

Bei diesem Fehler bin ich mir aber nicht mehr sicher, ob wir das chroot setzen sollten - libs umkopieren kostet wertvollen Speicher.

Vielleicht sollten wir chroot als Option anbieten?

Ciao
Stephan
 
Oder das chroot-Verzeichnis ins gleiche Dateisystem wie das Root-Dateisystem. Dann kann man mit Hardlinks die Bibliotheken setzen, was keinen Platz kostet.
 
Dies ist eine gute Idee, aber / ist nicht schreibbar, also sollte diese Idee flach fallen.

Ciao
Stephan
 
Das ginge vor dem Flashen.
 
guter Punkt - wie macht man denn so etwas? D.h. wo muß ich denn im Build-Prozess anfassen, damit im Image diese Links entstehen?

Danke
Stephan
 
Du musst das Verzeichnis bzw. die Links im openvpn Verzeichnis (make/openvpn/files/root anlegen)? Aber ob das mit Hardlinks funktioniert weiß ich gar nicht.

MfG Oliver
 
Hard links kann man nur anlegen, wenn die Datei existiert - die Hardlinks werden ja direkt in die Inode der Datei geschrieben.

Ciao
Stephan
 
Kann man die Hardlinks nicht zur Laufzeit auf der Box anlegen?

MfG Oliver
 
Das openvpn chroot ist doch aber nicht im Flash!?

MfG Oliver
 
Derzeit ist das chroot in /tmp/openvpn - das kann man aber überhall hinlegen.

Hardlinks kann man nur innerhalb einer Partition anlegen. D.h. wenn unsere Quelldateien in /lib liegen, muss unser chroot dir mit den hardlinks auch auf der root-Partition liegen.

Ciao
Stephan
 
Wenn das chroot nicht im Flash ist, dann gehen die Hard-Links auf Dateien im Flash nicht. Hard Links funktionieren nur innerhalb eines Dateisystems, im Gegensatz zu den Soft/Symbolischen Links.

Evtl. könnte etwas mit dem "mount bind" funktionieren, daß man da die Dateien über Dateisystem Grenzen hinweg verfügbar machen kann.

Bevor wir uns aber in der Hinsicht übermäßig Gedanken machen, wäre es sinnvoll, wenn man mit strace oder aus Protokoll-Meldungen sicher wüßte, ob/welche Libraries genau fehlen. Normalerweise sollten alle Libraries beim Start geladen werden und danach nicht nochmal benötigt werden.
 
So, hab jetzt /etc/resolv.conf und /lib/libresolv.so.0 ins chroot rüberkopiert und /lib/libc.so.0 per mount -o bind rübergemountet. Es läuft :) Bei der resolv.conf muss man noch überlegen, wann man die beim Booten rüberkopiert, weil die ja verschiedene Inhalte haben kann: Als Router 192.168.180.1, als Client hinter nem Router halt nen Eintrag per DHCP...
 
Ich denke, dass es auch nur mit der /etc/resolv.conf klappen sollte. Kannst du mal bitte die Libs löschen und probieren?

MfG Oliver
 
Oh ja, da bin ich etwas übers Ziel hinausgeschossen ;-) /etc/resolv.conf reicht.
 
/etc/resolv.conf reicht?

Wenn dies so ist, sollten wir ein chroot für openvpn im Flash, sagen wir mal /var/run/openvpn haben und darin ein etc/resolv.conf welches ein hardlink auf die echte /etc/resolv.conf sein sollte.

Nur habe ich keine Ahnung, an welcher Stelle das Image noch als Verzeichnisbaum vorliegt, damit man solch ein hardlink erzeugen kann.

Ciao
Stephan
 
Also die "echte" /etc/resolv.conf ist ein Symlink auf /var/tmp/resolv.conf, da die ja je nach Konfiguration der Box anders ausfällt. Einen Hardlink hierhin fände ich nicht ganz so praktisch, weil ich nicht weiss, wann diese Datei überhaupt erstellt wird und sollte sie mal gelöscht und neuerstellt werden (Umkonfiguration) ist der Hardlink auch tot und man hat 2 verschiedene Dateien. Ich plädiere für ein "cp" vorm Starten von OpenVPN.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.