expertenaustausch > comp.os.* > comp.os.unix.apps.misc

Sebastian Suchanek (16.05.2018, 15:19)
Hallo NG!

Auf meinem Server (Debian) läuft schon seit längerer Zeit ein
OpenVPN-Server (mit tun-Device) zu meiner vollen Zufriedenheit.
Jetzt würde ich aber gerne von der gleichen Kiste aus
*zusätzlich* noch als Client eine weitere OpenVPN-Verbindung
(ebenfalls mit tun-Device) zu einem externen Server aufbauen -
und das auch nur bei Bedarf, skriptgesteuert.

Die zusätzliche Konfiguration habe ich unter
/etc/openvpn/client.conf schon angelegt und ein Test mittels

| openvpn --config /etc/openvpn/client.conf

verläuft auch insofern erfolgreich, als dass die Verbindung
aufgebaut wird. Danach lassen sich sowohl der Server, zu dem
sich der Client verbunden hat, als auch Clients, die mit dem
lokalen Server verbunden sind, problemlos anpingen.

ABER: Wenn man wie o.g. den OpenVPN-Client startet, läuft der
Client weiterhin, d.h., er wechselt nicht wie ein Daemon in den
Hintergrund. Zum Einbetten in ein Shell-Skript taugt das so
natürlich nicht. Auch, wie man diese Client-Verbindung hinterher
am besten beendet, weiß ich aktuell noch nicht. Das ganze soll
im späteren, "umgebenden" Shell-Skript ungefähr so aussehen:

- OpenVPN-Client starten
- irgendwas tun
- OpenVPN-Client stoppen

Und während alldem soll der "parallel" laufenden OpenVPN-
*Server* tunlichst nicht beeinträgt werden. (D.h., Späßchen wie
"killall openvpn" sind keine gute Idee...)

Lange Rede, kurzer Sinn: wie kann man das oben beschriebene am
besten erreichen?

Tschüs,

Sebastian
Friedemann Stoyan (16.05.2018, 15:59)
Sebastian Suchanek wrote:

> Lange Rede, kurzer Sinn: wie kann man das oben beschriebene am
> besten erreichen?


Also ehrlich gesagt, verstehe ich das Problem nicht ganz. Ich betreibe
ebenfalls seit ewiger Zeit OpenVPN Clientinstanzen auf Debian und habe nie
Probleme gehabt, dass diese hübsch in den Hintergrund gehen.

Bei neumodischen Installationen geht das so: Man packt die Config Dateien
nach: '/etc/openvpn/client'. Dadurch werden diese als Clients erkannt. Man
kann auch mehrere davon problemlos haben:

$ systemctl status openvpn-client@*
? openvpn-client - OpenVPN tunnel for tb2
Loaded: loaded (/lib/systemd/system/openvpn-client@.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-05-09 04:42:23 CEST; 1 weeks 0 days ago
Docs: man:openvpn(8)


Main PID: 2026 (openvpn)
Status: "Initialization Sequence Completed"
Tasks: 1 (limit: 4915)
CGroup: /system.slice/system-openvpn\x2dclient.slice/openvpn-client
??2026 /usr/sbin/openvpn --suppress-timestamps --nobind --config tb2.conf

? openvpn-client - OpenVPN tunnel for tunnelbroker
Loaded: loaded (/lib/systemd/system/openvpn-client@.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-05-09 04:42:24 CEST; 1 weeks 0 days ago
Docs: man:openvpn(8)


Main PID: 2029 (openvpn)
Status: "Initialization Sequence Completed"
Tasks: 1 (limit: 4915)
CGroup: /system.slice/system-openvpn\x2dclient.slice/openvpn-client
??2029 /usr/sbin/openvpn --suppress-timestamps --nobind --config tunnelbroker.conf

Starten/Stoppen:

systemctl {start|stop} openvpn-client

Rebootfest:

$ systemctl is-enabled openvpn-client
enabled

Wie gesagt: An dieser Stelle noch nie Probleme gehabt.

mfg Friedemann
Sebastian Suchanek (16.05.2018, 16:45)
Thus spoke Friedemann Stoyan:
[..]
> Starten/Stoppen:
> systemctl {start|stop} openvpn-client
> [...]


Danke für den Denkanstoß. Ganz so wie bei Dir klappt's bei mir
(Debian Jessie) nicht, aber zumindest habe ich's jetzt
hinbekommen.
Das systemd-Gerafffel erwartet bei mir die Konfigurationsdatei
in /etc/openvpn statt in /etc/openvpn/client und statt des o.g.
Befehls, der bei mir nicht funktioniert, muss ich das hier
verwenden:

service openvpn@client (start|stop)

Aber, wie gesagt: mit diesen Abwandlungen scheint es wunschgemäß
zu funktionieren.

Tschüs,

Sebastian
Ähnliche Themen