Hallo Gemeinde,
edit by maxl: click here for the english version
da mir sehr viel geholfen wurde, hier mein erstes How-To zum Installieren eines Openvpn-Servers auf dem aktuellen Gemini. Aufwand für mich (ohne Schlüsselerstellung: ca. 35 Minuten)
1.) Gemini installieren
2.) Per Telnet verbinden
3.) NewNigma Feed suchen. (Google hilft)
4.) Per ipkg openvpn_2*_mipsel.ipk installieren
a. Eventuell benötigte bibliotheken nachinstallieren
b. Derzeit tunctl und liblzo1
5.) Openvpn-Daten (Zertifikate, Konfigurationsdateien, etc. siehe auch Dokumentation) nach /etc/openvpn kopieren
6.) Openvpn versuchen zu starten… (zuerst manuell)
a.
7.) Weinen, weil es nicht will und logdatei überprüfen
a. Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19) => also
b.
c. noch mal weinen, weil schon da…
d. also:
und noch mal 7.b)
8.) Openvpn noch mal starten (siehe 6.a.)
wenn es jetzt nicht geht, liegt ein Fehler innerhalb von openvpn vor (siehe Openvpn Dokumentation)
9.) Nun machen wir uns an die Datei openvpn in /etc/init.d
Mein Beispiel
#!/bin/sh -e
#
# Original version by Robert Leslie
# <rob@mars.org>, edited by iwj and cs
# Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
test $DEBIAN_SCRIPT_DEBUG && set -v -x
DAEMON=/usr/sbin/openvpn
CONFIG_DIR=/etc/openvpn
test -x $DAEMON || exit 0
test -d $CONFIG_DIR || exit 0
start_vpn () {
$DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
--config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
echo -n " $NAME"
}
stop_vpn () {
kill `cat $PIDFILE` || true
rm $PIDFILE
}
case "$1" in
start)
echo -n "Do create tun interface"
if test -e /dev/net/tun ; then
rm /dev/net/tun || modprobe -r tun
fi
#insmod /lib/modules/2.6.12-5.1-brcmstb-dm8000/kernel/drivers/net/tun.ko
#tunctl -u root -t tun
modprobe tun
echo -n "Starting openvpn:"
if test -z $2 ; then
for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
NAME=${CONFIG%%.conf}
start_vpn
done
else
if test -e $CONFIG_DIR/$2.conf ; then
NAME=$2
start_vpn
else
echo -n " No such VPN: $2"
fi
fi
echo "."
;;
stop)
echo -n "Stopping openvpn:"
if test -z $2 ; then
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn
echo -n " $NAME"
done
else
if test -e /var/run/openvpn.$2.pid ; then
PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null`
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn
echo -n " $NAME"
else
echo -n " No such VPN: $2"
fi
fi
echo "."
;;
# We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'.
reload|force-reload)
echo -n "Reloading openvpn:"
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
# If openvpn if running under a different user than root we'll need to restart
if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
stop_vpn
sleep 1
start_vpn
echo -n "(restarted)"
else
kill -HUP `cat $PIDFILE` || true
# start-stop-daemon --stop --signal HUP --quiet --oknodo \
# --exec $DAEMON --pidfile $PIDFILE
echo -n " $NAME"
fi
done
echo "."
;;
restart)
$0 stop $2
sleep 1
$0 start $2
;;
*)
echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
# vim:set ai et sts=2 sw=2 tw=0:
Alles anzeigen
10.) Jetzt noch links erzeugen: am besten in /etc/rc4.d und /etc/rc3.d:
11.) Box einmal komplett neu starten…
12.) Per telnet schauen, ob das tun-interface auch da ist
13.) Freuen. Zeitaufwand ca. 30-40 minuten (inkl. How-To schreiben ohne VPN-Daten)
Viel Spaß beim nachmachen,
elfi12
Edit: Fehler im Skript beseitigt, openvpn für /etc/init.d einmal als Beispiel drangehangen
Edit2: Mit Erscheinen von Gemini 5.1 nicht mehr nötig, da alles im Bauch...