OpenVPN Client unter FreeBSD als normaler User starten

crotchmaster

happy BSD user
Moin Jungs,

ich bin gerade dabei, mein Home FreeBSD-System als OpenVPN-Client unseres Firmen-VPNs einzurichten. Ich will den Client nur bei Bedarf starten, also nicht zur Bootzeit. Als root klappt das Ganze schon hervorragend, mal abgesehen davon, dass der Client die Vorgabe des DNS-Servers durch den VPN-Server ignoriert und ich durch einen Hack im Startscript von openvpn eingebaut habe.

Nun moechte ich dass Ganze als normaler User starten und dachte an sudo und habe das schnell eingerichtet. Da ist leider noch etwas Handarbeit noetig. Aber ich merke schon jetzt, so richtig prickelnd werde ich diese Loesung nicht finden, wenn sie fertig ist.

Nun meine Frage. Wie macht Ihr das. Wechselt Ihr zu root und startet den OpenVPN-Client haendisch, nutzt Ihr openvpn-admin und wenn ja, wie geht das als User, oder wie ist sonst Eure Loesung fuer das Problem? Ich waere fuer Tipps sehr dankbar.

Gruss c.
 
Hi crotch,

ich nutze für Remote-Verbindungen zu Kunden etliche OpenVPN-Profile.
Dazu habe ich mir ein kleines Skript geschrieben, mit dem ich die VPN-Verbindungen via sudo starte bzw. beende. Ist kein großes Kunstwerk, aber funktioniert erstklassig und ich finde das inzwischen sogar wesentlich komfortabler als mit GUI.
Kann Dir das Skript gerne zur Verfügung stellen.

Gruß,

Ice
 
Hier mal mein Skript:

#!/bin/sh
PIDFILE=/var/run/$2.pid
DIR=/etc/openvpn
CONFIG=/etc/openvpn/$2.conf

case $1 in
start)
if [ -e $PIDFILE ];then
echo "Die VPN-Verbindung wurde bereits gestartet"
exit 1
else
echo "Starting VPN $2"
openvpn --cd $DIR --daemon --config $CONFIG --writepid $PIDFILE
fi
;;
stop)
echo "Stopping VPN $2"
kill -TERM `cat $PIDFILE`
rm $PIDFILE
;;
restart)
$0 stop $2
$0 start $2
;;
status)
ps ax|grep vpn|grep daemon
;;
*)
echo "USAGE: $0 {start|stop|restart|status} NAME"
exit 1
;;
esac

Evtl. habt ihr ja noch ein par Tips, wie man das noch etwas eleganter gestalten oder ausfeilen kann.
Ich habe mir dazu noch einen Alias angelegt in der Form
vpn='/etc/openvpn/openvpn.sh'

Nun kann ich mit

vpn start/stop kunde1
usw.

meine Verbindungen starten und stoppen und mit

vpn status

prüfen, welche Verbindungen aktiv sind.

Funktioniert bei mir nun schon seit einigen Monaten prima.

Da ich kein Skript-Guru bin, gibt es bestimmt noch Verbesserungsptential an dem Skript.

Gruß,

Ice
 
Zurück
Oben